Chapter 5 – Critical Networking
5.1 Flow Control
The receiver uses buffers to collect incoming data segments. Flow control is managing transmissions from the receiver; problems include buffer overflow, packet errors and maintaining correct sequence numbers. Sequence numbers are a concept of assigning a number to each data segment being transmitted. A 3-bit binary number can represent eight data segments, label 0 to 7. The modulo-8 configuration allows reuse of binary number (…,6,7,0,1,…) this allows frames to be wrapped around. When acknowledgement frames are maintained in windows of data segment transmission (in blocks), contain more information (frame number error (error control), and transmission rate (flow control)), and send less frequently than the stop-and-wait ARQ, higher data-throughput is maintained. Protocols such as High Data Link Control (HDLC) sends ‘piggybacked’ acknowledgements to both transmitter and receiver. The control field inside a HDLC frame contains, previous information frames, frame error control and flow control [163].
125
5.1.1 The Three Way Handshake
A reliable connection is setup using three way handshakes; this handshake procedure is a process that sets up an agreement for connection between the two parties (transmitter and receiver). These conditions allow packets to be traceable, whether as lost, delayed or duplicated. In the first step, the two parties exchange their initial sequence number. These numbers are randomly generated by the transmitter. Node A first sends a synchronisation segment to Node B; this sets up the starting sequence number of the communications. Node B then replies by acknowledging the first synchronisation segments and by adding the synchronisation segment with the acknowledgement number. Node A then sends data through this established transmission window by sequence number. When Node A closes the connection, Node A sends a finish bit set with the acknowledgement number to indicate that node A has terminated the connection. Node B acknowledges the receive segments also with the finish bit set and the acknowledgement number, and Node A sends an acknowledgement to finally terminate the connections [164].
Adaptive retransmission is a process that manages errors in transmission and packets dropping from the receiver. This process sets up the procedure for resending erroneous or dropped packets. The reduction of response between acknowledgements reduces the effectiveness of TCP/IP. The two models are immediate response (empty segments are sent from a receiver to acknowledge every successful segment received) or a cumulative acknowledge response (groups of acknowledgement wait before sending).
The two main operations of TCP are positive acknowledgement and window timeouts. Negative acknowledgement is missing in TCP, and may play a bigger part
126
in the future. A data segment dropout is unacknowledged. Unacknowledged data segments would be retransmitted, similarly acknowledgements that are received after the period of timeout window, would also trigger retransmission. The timeout window period should be much longer than the round-trip time (The time for a bi-directional communicate between the two nodes). A Timeout window period that is smaller than the round-trip time, results in all data segments being retransmitted. Similarly, a timeout window period that is much longer than the round-trip time, results in an inept transport protocol. The ideal timeout window period should be just over the round-trip time, this is both responsible for retransmitting unacknowledged data segments and manageable retransmission. The ideal timeout window is flexible because round-trip time periods are dynamically changing in a networks, the traffic condition in links and router routing algorithm often dictate the pace of the round-trip time. Singularity round- trip time (SRTT) operates ineffectively over IP networks. Early approach to an adaptive retransmission scheme is described in RFC793. The average round-trip time (ARTT) (arithmetic average across many round-trip times) is calculated in this format (Equation 5-1-4), where k is the number of request and α is the average request time [165]
𝑨𝑹𝑻𝑻(𝒌 + 𝟏) = 𝟏 𝒌 + 𝟏∑ 𝑹𝑻𝑻(𝒌) 𝒌+𝟏 𝒌=𝟏 Equation 5-1 𝑨𝑹𝑻𝑻(𝒌 + 𝟏) = 𝒌 𝒌 + 𝟏𝑨𝑹𝑻𝑻(𝒌) + 𝟏 𝒌 + 𝟏𝑨𝑹𝑻𝑻(𝒌 + 𝟏) Equation 5-2 𝑺𝑹𝑻𝑻(𝒌 + 𝟏) =𝜶𝑺𝑹𝑻𝑻(𝒌) + (𝟏 − 𝜶)𝑹𝑻𝑻(𝒌 + 𝟏) Equation 5-3
127 5.1.2 High Level Data Link Control
HLDC is a standard protocol for flow control, protocols based on this move the timeout window based on acknowledgement. The traditional flow control parameters are [166]: Sequence number (SN), Acknowledgement number (AN) and Timeout Window (W). The timeout window period is decided for data segments to be transmitted without the receiver acknowledgement. The issue of overflow is avoided from the receiver advertising a timeout window to the transmitter before sending actual data segments. The window value advertised is also the maximum amount of data segments in a timeout window buffer. The timeout window period remains at standard period if the receiver accepts TCP data segments faster than the arrival rate of the transmission. Each transmission from the transmitter reduces the timeout window period. TCP transmitter waits for transmission when the timeout window reaches zero. The transmitter waits for a new timeout window before the next transmission. The receiver advertises a new timeout window before accepting the last transmission inside the timeout window. Network traffic increases when the transmitter sends out a blank 8 bits data segments during the new advertising window, this is also called a ‘probe segments’, this will most likely be rejected by a receiver, if the receiver responds, this will trigger another non-zero windows.
5.1.3 Automatic Repeat Request (ARQ)
There are two ways to recover from errors, namely correction or sending a request for a repeat message. Errors can be corrected using hard forward error correction (FEC); this is similar to advance parity check in a matrix form and Hamming code. Code for detecting errors uses less code that detects and corrects the codes. In this section,
128
this study focuses on the effects of retransmitted request to the network system. Assuming the fact that powerful error detection is used (no missed error undetected), the three key types of ARQ scheme are stop-and-wait ARQ, go-back-N ARQ and selective-repeat ARQ [167].
Stop-and-wait ARQ is often used in a half-duplex network. The receiver sends positive acknowledgement if there is no error detected and negative acknowledgement if there are errors detected. This Stop-and-Wait simple network scheme is inefficient because of waiting (two times the full round trip time).
Go-back-N ARQ on the other hand uses full-duplex links. Duplex links give an option to continuously transmit without any pause via downlink, acknowledgments and negative acknowledgments are sent via uplink. Go-back-N ARQ organises transmissions in blocks (a sum of transmission packets), negative acknowledgements trigger block retransmission. Acknowledgements still suffer from a round trip delay. This method is ineffective when there are high error rates, as many retransmission blocks block transmission channels. Selective-repeat ARQ only retransmits packets received with negative acknowledgement. Packets are later rearranged in order by the receiver, this is not suitable for real time order transmission [168].