If multiple drops occur in the same session

- Current TCPs wait for time-out

- Selective acknowledge may be a workaround

- New "fast retransmit" phase takes several round-trip times to recover

- New "fast retransmit" phase takes several round-trip times to recover

Although the TCP slow-start behavior is appropriately responsive to congestion, problems can arise when multiple TCP sessions are concurrently carried on the same router and all TCP senders slow down transmission of packets at the same time.

If a TCP sender does not receive acknowledgement for sent segments, it cannot wait indefinitely before it assumes that the data segment that was sent never arrived at the receiver. TCP senders maintain the retransmission timer to trigger a segment retransmission. The retransmission timer can impact TCP performance. If the retransmission timer is too short, duplicate data will be sent into the network unnecessarily. If the retransmission timer is too long, the sender will wait (remain idle) for too long, slowing down the flow of data.

The selective acknowledgment (SACK) mechanism, as proposed in RFC 2018, can improve the time it takes for the sender to recover from multiple packet losses, because noncontiguous blocks of data can be acknowledged, and the sender only has to retransmit data that is actually lost. SACK is used to convey extended acknowledgement information from the receiver to the sender to inform the sender of noncontiguous blocks of data that have been received. Using the example in the slide, instead of sending back an ACK N + 1, the receiver can send a SACK N + 1 and also indicate back to the sender that N + 3 has been correctly received with the SACK option.

In standard TCP implementations, a TCP sender can only discover that a single packet has been lost each round-trip time (RTT), causing poor TCP performance when multiple packets are lost.

Remember, the sender must receive three duplicate ACK packets before it realizes that a packet has been lost. As a result of receiving the third ACK, the sender will immediately send the segment referred to by the ACK. This TCP behavior is called fast retransmit.

Was this article helpful?

0 0

Post a comment