Van Jacobson describes the development of TCP congestion avoidance and control algorithms to prevent network congestion. In 1986, the Internet experienced a congestion collapse, prompting research into improving TCP performance. Seven key algorithms were introduced into 4BSD TCP: round-trip-time variance estimation, exponential retransmit timer backoff, slow-start, aggressive receiver acknowledgment policy, dynamic window sizing on congestion, Karn's clamped retransmit backoff, and fast retransmit. These algorithms aim to ensure that TCP connections obey a 'conservation of packets' principle, where packet flow is stable and robust against congestion.
Slow-start is used to gradually increase the amount of data in transit, ensuring that data flows are properly timed and spaced. It works by using acknowledgments as a 'clock' to send new packets into the network, matching the packet spacing on the slowest link in the path. This ensures that the sender's packet spacing matches the receiver's, maintaining a stable flow.
Round-trip timing is crucial for retransmit timer backoff. A good round-trip time estimator helps prevent spurious retransmissions and ensures that the retransmit timeout interval is set appropriately. The algorithm estimates the mean round-trip time using a low-pass filter and adjusts the retransmit timeout based on this estimate.
Congestion avoidance involves adjusting the window size based on network conditions. If congestion is detected, the window size is reduced, and if no congestion is detected, the window size is increased. This ensures that the network is used efficiently and fairly.
The paper also discusses future work, including gateway-based congestion control, which aims to ensure fair sharing of network resources. The algorithms described are implemented in TCP and have been shown to improve performance and reduce congestion in network environments. The paper concludes with a detailed description of the algorithms and their implementation in TCP.Van Jacobson describes the development of TCP congestion avoidance and control algorithms to prevent network congestion. In 1986, the Internet experienced a congestion collapse, prompting research into improving TCP performance. Seven key algorithms were introduced into 4BSD TCP: round-trip-time variance estimation, exponential retransmit timer backoff, slow-start, aggressive receiver acknowledgment policy, dynamic window sizing on congestion, Karn's clamped retransmit backoff, and fast retransmit. These algorithms aim to ensure that TCP connections obey a 'conservation of packets' principle, where packet flow is stable and robust against congestion.
Slow-start is used to gradually increase the amount of data in transit, ensuring that data flows are properly timed and spaced. It works by using acknowledgments as a 'clock' to send new packets into the network, matching the packet spacing on the slowest link in the path. This ensures that the sender's packet spacing matches the receiver's, maintaining a stable flow.
Round-trip timing is crucial for retransmit timer backoff. A good round-trip time estimator helps prevent spurious retransmissions and ensures that the retransmit timeout interval is set appropriately. The algorithm estimates the mean round-trip time using a low-pass filter and adjusts the retransmit timeout based on this estimate.
Congestion avoidance involves adjusting the window size based on network conditions. If congestion is detected, the window size is reduced, and if no congestion is detected, the window size is increased. This ensures that the network is used efficiently and fairly.
The paper also discusses future work, including gateway-based congestion control, which aims to ensure fair sharing of network resources. The algorithms described are implemented in TCP and have been shown to improve performance and reduce congestion in network environments. The paper concludes with a detailed description of the algorithms and their implementation in TCP.