Presentation is loading. Please wait.

Presentation is loading. Please wait.

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?

Similar presentations


Presentation on theme: "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?"— Presentation transcript:

1 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?

2 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

3 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; } time [0-8 sec] bandwidth [0-100 kB/sec]

4 How TCP shares capacity sum of flow bandwidths time available bandwidth individual flow bandwidths

5 Random Walks, Electrical Networks Kakutani (1945) Consider a particle performing a random walk on a network

6 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/r ij i j r ij

7 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/r ij

8 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/r ij

9 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/r ij

10 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/r ij

11 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/r ij

12 Random Walks, Electrical Networks Let V i be the probability that, starting at i, the particle hits node 1 before it hits node 0 Let I ij =(V j -V i )/r ij node 1 node 0 ViVi

13 Random Walks, Electrical Networks Let V i be the probability that, starting at i, the particle hits node 1 before it hits node 0 Let I ij =(V j -V i )/r ij Then V i are the potentials and I ij the currents in this electrical circuit node 1 node 0 resistance r ij

14 Three Levels of Description Microscopic: particle-level rules of motion Macroscopic: Ohm’s law and Kirchhoff’s laws Teleological: I ij are such as to minimize heat dissipation minimize ½  i,j I ij 2 r ij over I ij

15 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 is p = (y-C) + /y The TCP algorithm achieves average increase in rate = average decrease in rate 1/RTT 2 = (p x) x/2

16 Teleological description Consider several TCP flows sharing a single link Let RTT be the round-trip time [sec] Let x r 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 solve maximise  r U(x r ) - (y - C log y/C-1) + over x r where y=  r x r x U(x)U(x)

17 Teleological description Consider several TCP flows sharing a single link Let RTT be the round-trip time [sec] Let x r 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 solve maximise  r U(x r ) - (y - C log y/C-1) + over x r where y=  r x r x U(x)U(x) little extra valued attached to high- bandwidth flows severe penalty for allocating too little bandwidth

18 Teleological description Consider several TCP flows sharing a single link Let RTT be the round-trip time [sec] Let x r 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 solve maximise  r U(x r ) - (y - C log y/C-1) + over x r where y=  r x r x U(x)U(x) small RTT large RTT

19 Teleological description Consider several TCP flows sharing a single link Let RTT be the round-trip time [sec] Let x r 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 solve maximise  r U(x r ) - (y - C log y/C-1) + over x r where y=  r x r x U(x)U(x) no penalty until y>C i.e. the link is overloaded

20 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? x U(x)U(x)

21 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?

22 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?

23 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


Download ppt "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?"

Similar presentations


Ads by Google