new designs for the internet why can’t i get higher throughput? why is my online video jerky? how...

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

Upload: marcus-peters

Post on 25-Dec-2015

218 views

Category:

Documents


3 download

TRANSCRIPT

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

TCPif (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]

band

wid

th [

0-10

0 kB

/sec

]

How TCP shares capacity

sum of flowbandwidths

time

availablebandwidth

individualflow

bandwidths

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

i

j

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

• 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

node 0

Vi

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

node 0

resistance rij

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,j Iij2 rij 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 rate

1/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 r U(xr) - (y - C log y/C-1)+ over xr where y=

r xr

x

U(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 r U(xr) - (y - C log y/C-1)+ over xr where y=

r xr

x

U(x

)

little extra valued attached to high-bandwidth flowssevere penalty for

allocating too little bandwidth

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 r U(xr) - (y - C log y/C-1)+

over xr where y=r xr

x

U(x

)

small RTT

large RTT

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 r U(xr) - (y - C log y/C-1)+

over xr where y=r xr

x

U(x

)

no penalty until y>Ci.e. the link is overloaded

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

)

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