230 likes | 248 Views
Learn about the history of the Internet, congestion control, and how TCP shares capacity in the network. Explore the concepts of random walks and electrical networks in optimizing network performance. Discover how TCP and the network work together to maximize bandwidth and minimize latency for a better user experience.
E N D
New Designs for the Internet • Why can’t I get higher throughput? • Why is my online video jerky? • How is capacity shared in the Internet?
Some Internet History • 1974: First draft of TCP/IP“A protocol for packet network interconnection”, Vint Cerf and Robert Kahn • 1983: ARPANET switches on TCP/IP • 1986: Congestion collapse • 1988: Congestion control for TCP“Congestion avoidance and control”, Van Jacobson “A Brief History of the Internet”, the Internet Society
TCP if (seqno > _last_acked) { if (!_in_fast_recovery) { _last_acked = seqno; _dupacks = 0; inflate_window(); send_packets(now); _last_sent_time = now; return; } if (seqno < _recover) { uint32_t new_data = seqno - _last_acked; _last_acked = seqno; if (new_data < _cwnd) _cwnd -= new_data; else _cwnd=0; _cwnd += _mss; retransmit_packet(now); send_packets(now); return; } uint32_t flightsize = _highest_sent - seqno; _cwnd = min(_ssthresh, flightsize + _mss); _last_acked = seqno; _dupacks = 0; _in_fast_recovery = false; send_packets(now); return; } if (_in_fast_recovery) { _cwnd += _mss; send_packets(now); return; } _dupacks++; if (_dupacks!=3) { send_packets(now); return; } _ssthresh = max(_cwnd/2, (uint32_t)(2 * _mss)); retransmit_packet(now); _cwnd = _ssthresh + 3 * _mss; _in_fast_recovery = true; _recover = _highest_sent; } bandwidth [0-100 kB/sec] time [0-8 sec]
How TCP shares capacity individualflowbandwidths availablebandwidth sum of flowbandwidths time
Random Walks, Electrical Networks • Kakutani (1945) • Consider a particle performing a random walk on a network
Random Walks, Electrical Networks • Kakutani (1945) • Consider a particle performing a random walk on a network • From node i it jumps to neighbouring node j at rate 1/rij j rij i
Random Walks, Electrical Networks • Kakutani (1945) • Consider a particle performing a random walk on a network • From node i it jumps to neighbouring node j at rate 1/rij
Random Walks, Electrical Networks • Kakutani (1945) • Consider a particle performing a random walk on a network • From node i it jumps to neighbouring node j at rate 1/rij
Random Walks, Electrical Networks • Kakutani (1945) • Consider a particle performing a random walk on a network • From node i it jumps to neighbouring node j at rate 1/rij
Random Walks, Electrical Networks • Kakutani (1945) • Consider a particle performing a random walk on a network • From node i it jumps to neighbouring node j at rate 1/rij
Random Walks, Electrical Networks • Kakutani (1945) • Consider a particle performing a random walk on a network • From node i it jumps to neighbouring node j at rate 1/rij
Random Walks, Electrical Networks • Let Vi be the probability that, starting at i, the particle hits node 1 before it hits node 0 • Let Iij=(Vj-Vi)/rij node 1 Vi node 0
Random Walks, Electrical Networks • Let Vi be the probability that, starting at i, the particle hits node 1 before it hits node 0 • Let Iij=(Vj-Vi)/rij • Then Vi are the potentials and Iij the currents in this electrical circuit node 1 resistance rij node 0
Three Levels of Description • Microscopic:particle-level rules of motion • Macroscopic:Ohm’s law and Kirchhoff’s laws • Teleological:Iij are such as to minimize heat dissipation minimize ½åi,jIij2rij over Iij
Macroscopic description • Consider several TCP flows sharing a single link • Let RTT be the round-trip time [sec]Let x be the mean bandwidth of a flow [pkts/sec]Let y be the total bandwidth of all flows [pkts/sec]Let C be the total available capacity [pkts/sec] • The total fraction of packets that are lost isp = (y-C)+/y • The TCP algorithm achievesaverage increase in rate = average decrease in rate1/RTT2 = (p x) x/2
Teleological description • Consider several TCP flows sharing a single link • Let RTT be the round-trip time [sec]Let xr be the mean bandwidth of flow r[pkts/sec]Let y be the total bandwidth of all flows [pkts/sec]Let C be the total available capacity [pkts/sec] • TCP and the network act so as to solvemaximise årU(xr) - (y - C log y/C-1)+ over xr where y=år xr U(x) x
Teleological description • Consider several TCP flows sharing a single link • Let RTT be the round-trip time [sec]Let xr be the mean bandwidth of flow r[pkts/sec]Let y be the total bandwidth of all flows [pkts/sec]Let C be the total available capacity [pkts/sec] • TCP and the network act so as to solvemaximise årU(xr) - (y - C log y/C-1)+ over xr where y=år xr U(x) little extra valued attached to high-bandwidth flows severe penalty for allocating too little bandwidth x
Teleological description • Consider several TCP flows sharing a single link • Let RTT be the round-trip time [sec]Let xr be the mean bandwidth of flow r[pkts/sec]Let y be the total bandwidth of all flows [pkts/sec]Let C be the total available capacity [pkts/sec] • TCP and the network act so as to solvemaximise årU(xr) - (y - C log y/C-1)+ over xr where y=år xr U(x) small RTT large RTT x
Teleological description • Consider several TCP flows sharing a single link • Let RTT be the round-trip time [sec]Let xr be the mean bandwidth of flow r[pkts/sec]Let y be the total bandwidth of all flows [pkts/sec]Let C be the total available capacity [pkts/sec] • TCP and the network act so as to solvemaximise årU(xr) - (y - C log y/C-1)+ over xr where y=år xr no penalty until y>Ci.e. the link is overloaded U(x) x
Teleological description • Is this what we want the Internet to optimize? • Does it make good use of the network? • Can it deliver high bandwidth? • Is it a fair allocation? • Can we design a better allocation? U(x) x
Stability of TCP • TCP was designed to prevent congestion collapse. How well does it work? • A more detailed macroscopic model for TCP is • Is this dynamical system stable?How fast does it converge?
Ongoing work • Kelly (Cambridge statslab) • Vinnicombe (Cambridge engineering)proposed+analysed a good macro model • Tom Kelly (CERN)implemented it in Linux: ScalableTCP • Raina (Cambridge management science)analysed stability & instability • Wischik (UCL computer science)micro/macro models for the link:how big should buffers be?
Ongoing work • Low, Doyle (Caltech electrical engineering)Proposed further micro/macro models, FAST TCP • Cottrell (SLAC)Testbed for TCP variants • Srikant (UIUC electrical/computer engineering)Towsley (UMass computer science)Fluid model analysis • Baccelli (ENS mathematics)Marsan (Turin electrical engineering)Mean field limit theory for TCP