of a particular set of functionality • Allows the separation of concerns to facilitate interoperability and platform independence IP Network Wired Communication Wireless Communication
that uses ACK and timeouts to achieve reliable data transmission over unreliable service A B Window SIze: 4 1 2 2 Retransmission TimeOut (RTO) 2 2 Error Recovery
October 1986. • 32 Kbps link à 40 bps • What is the problem? 1. A buffer is overflowed 2. New arrival packets are dropped 3. Retransmissions to recover packet losses 4. Drastic reduction of the traffic • How to detect a network congestion? • Packet loss Congestion Control
data the TCP can send into network before receiving an ACK • Receiver Window (RWND) • Advertises the amount of data that the destination side can receive • Slow Start Threshold (ssthresh) • A threshold between slow-start mode and congestion avoidance mode • Rount Trip Time (RTT) • A time delay between sending a signal and receiving its ack Congestion Control
1 MSS (Maximum segment size) • When ack is received: • cwnd += 1 MSS • It increase cwnd exponentially on each RTT • cwnd *= 2 (on each RTT) • Congestion Avoidance and Control, Van Jacobson, 1988 Congestion Control
and Bob Kahn 1973 Ack Congestion Avoidance and Control Van Jacobson 1988 Congstion Window, Slow Start, Congestion Avoidance TCP Tahoe 4.3 BSD Tahoe 1988 Fast Retransmission TCP Reno 4.3 BSD Reno 1990 Fast Recovery TCP Vegas Lawrence Brakmo et al. 1994 Detect congestion based RTT TCP CUBIC Sangtae Ha et al. 2008 window size is cubic function TCP BBR Van Jacobson et al, Google 2016 Model-based Congestion Control
Overreact à Increase queue size to reduce packet loss • Deep Queue • Let the server know the packet loss late • Bufferbloat (2011) à Priority queue, threshold, track the time a packet stays in queue • All approaches: Increase the accuracy of packet loss as an indicator of congestion 2 Packet/s