19
Katrina LaCurts | [email protected] | 6.033 2021 6.033 Spring 2021 Lecture #10: Reliable Transport adding reliability while also keeping things ecient and fair

adding reliability while also keeping things efficient and fair

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Katrina LaCurts | [email protected] | 6.033 2021

6.033 Spring 2021Lecture #10: Reliable Transport adding reliability while also keeping things efficient and fair

Katrina LaCurts | [email protected] | 6.033 2021

1978: flexibility and layering

link

network

transport

application the things that actually generate traffic

sharing the network, reliability (or not)examples: TCP, UDP

1993: commercialization

1970s: ARPAnet early 80s: growth → change

OSPF, EGP, DNS

late 80s: growth → problems

policy routinghosts.txt

naming, addressing, routingexamples: IP

communication between two directly-connected nodesexamples: ethernet, bluetooth, 802.11 (wifi)

TCP, UDPdistance-vectorrouting

congestion collapse CIDR

today: moving up to the transport layer to discuss reliable transport

CAIDA’s IPv4 AS Core, February 2017

(https://www.caida.org/research/topology/

as_core_network/2017/)

(which led to congestion control)

Katrina LaCurts | [email protected] | 6.033 2021

link

network

transport

application the things that actually generate traffic

sharing the network, reliability (or not)examples: TCP, UDP

naming, addressing, routingexamples: IP

communication between two directly-connected nodesexamples: ethernet, bluetooth, 802.11 (wifi)

our (first) goal today is to create a reliable transport protocol, which delivers each byte of data exactly once,

in-order, to the receiving application

Sending Application

Receiving Application

unreliable networkReliable Sender

Reliable Receiver

each byte of data is delivered exactly once and in-order

Katrina LaCurts | [email protected] | 6.033 2021

reliable transport protocols deliver each byte of data exactly once, in-order, to the receiving application

sender receivertimeout

12345

6

8910

117

7

X

12345

6

666

611

W = 5 sequence numbers: used to order the

packets

acknowledgments (“ACKs”): used to confirm that a packet has been received

timeouts: used to retransmit packets

the sender is allowed to have W outstanding

packets at once, but no

more

this is known as a sliding-window protocolthe window of outstanding (un-ACKed) packets slides along the sequence number space

an ACK with sequence number k indicates that the receiver has received all packets up to and including k

Katrina LaCurts | [email protected] | 6.033 2021

reliable transport protocols deliver each byte of data exactly once, in-order, to the receiving application

sender receivertimeout

12345

6

8910

117

12345

6

8910

1111

W = 5

7

X7

notice that (in this example) the timeout

expired before the sender got an ACK

indicating that 7 had been received

sequence numbers: used to order the packets

acknowledgments (“ACKs”): used to confirm that a packet has been received

an ACK with sequence number k indicates that the receiver has received all packets up to and including k

timeouts: used to retransmit packets

Katrina LaCurts | [email protected] | 6.033 2021

reliable transport protocols deliver each byte of data exactly once, in-order, to the receiving application

sender receivertimeout

12345

6

8910

117

12345

6

W = 5

7

78910

question: what is the correct value for W?

sequence numbers: used to order the packets

acknowledgments (“ACKs”): used to confirm that a packet has been received

an ACK with sequence number k indicates that the receiver has received all packets up to and including k

timeouts: used to retransmit packets

Katrina LaCurts | [email protected] | 6.033 2021

question: how can a single reliable sender, using a sliding-window protocol, set its window size to maximize utilization — but prevent congestion and unfairness — given that there are many other end

points using the network, all with different, changing demands?

Katrina LaCurts | [email protected] | 6.033 2021

congestion control: controlling the source rates to achieve efficiency and fairness

0

2

4

6

8

10

12

14

0 5 10 15 20 25

Win

do

w S

ize

Time (RTTs)

efficiency: minimize drops, minimize delay, maximize bottleneck utilization

fairness: under infinite offered load, split bandwidth evenly among all sources sharing a bottleneck

AIMD: every RTT, if there is no loss, W = W + 1; else, W = W/2

Katrina LaCurts | [email protected] | 6.033 2021

congestion control: controlling the source rates to achieve efficiency and fairness

R 1

(S1’s

sen

ding

rate

)

R2 (S2’s sending rate)

efficiency(utilization)

R1 + R

2 = B

B

B

under-utilization

congestion

the network is fully utilized when the bottleneck link is “full”

efficiency: minimize drops, minimize delay, maximize bottleneck utilization

fairness: under infinite offered load, split bandwidth evenly among all sources sharing a bottleneck

AIMD: every RTT, if there is no loss, W = W + 1; else, W = W/2

Katrina LaCurts | [email protected] | 6.033 2021

congestion control: controlling the source rates to achieve efficiency and fairness

R 1

(S1’s

sen

ding

rate

)

R2 (S2’s sending rate)

efficiency(utilization)

R1 + R

2 = B

B

B

the network is fully utilized when the bottleneck link is “full”

fairnessthe network is fair when S1 and S2 are sending at the same rate

R1 = R

2

S1 is se

nding more

than S2

S2 is se

nding more

than S1

efficiency: minimize drops, minimize delay, maximize bottleneck utilization

fairness: under infinite offered load, split bandwidth evenly among all sources sharing a bottleneck

AIMD: every RTT, if there is no loss, W = W + 1; else, W = W/2

Katrina LaCurts | [email protected] | 6.033 2021

congestion control: controlling the source rates to achieve efficiency and fairness

efficiency(utilization)

R1 + R

2 = B

B

B

the network is fully utilized when the bottleneck link is “full”

fairnessthe network is fair when S1 and S2 are sending at the same rate

R1 = R

2

eventually, R1 and R2 will come to oscillate around the fixed point

R 1

(S1’s

sen

ding

rate

)

R2 (S2’s sending rate)

efficiency: minimize drops, minimize delay, maximize bottleneck utilization

fairness: under infinite offered load, split bandwidth evenly among all sources sharing a bottleneck

AIMD: every RTT, if there is no loss, W = W + 1; else, W = W/2

Katrina LaCurts | [email protected] | 6.033 2021

congestion control: controlling the source rates to achieve efficiency and fairness

0

2

4

6

8

10

12

14

16

0 5 10 15 20 25

Win

do

w S

ize

Time (RTTs)

efficiency: minimize drops, minimize delay, maximize bottleneck utilization

fairness: under infinite offered load, split bandwidth evenly among all sources sharing a bottleneck

AIMD: every RTT, if there is no loss, W = W + 1; else, W = W/2

slow-start: at the start of the connection, double W every RTT

Katrina LaCurts | [email protected] | 6.033 2021

congestion control: controlling the source rates to achieve efficiency and fairness

something has happened to

packet 7

sender receiver12345

6

8910

11

7

X

12345

6

666

6

W = 5

timeout

7

efficiency: minimize drops, minimize delay, maximize bottleneck utilization

fairness: under infinite offered load, split bandwidth evenly among all sources sharing a bottleneck

AIMD: every RTT, if there is no loss, W = W + 1; else, W = W/2

slow-start: at the start of the connection, double W every RTT

Katrina LaCurts | [email protected] | 6.033 2021

congestion control: controlling the source rates to achieve efficiency and fairness

something has happened to

packet 7

sender receiver12345

6

8910

11

7

X

12345

6

666

6

W = 5

timeout

7

efficiency: minimize drops, minimize delay, maximize bottleneck utilization

fairness: under infinite offered load, split bandwidth evenly among all sources sharing a bottleneck

AIMD: every RTT, if there is no loss, W = W + 1; else, W = W/2

slow-start: at the start of the connection, double W every RTT

fast retransmit/fast recovery: retransmit packet k+1 as soon as four

ACKs with sequence number k are received

(four = original ACK + 3 “dup” ACKs)

Katrina LaCurts | [email protected] | 6.033 2021

congestion control: controlling the source rates to achieve efficiency and fairness

sender receiver

in practice, if a single packet is lost, the three “dup” ACKs will be received before the RTO for that packet

expires

efficiency: minimize drops, minimize delay, maximize bottleneck utilization

fairness: under infinite offered load, split bandwidth evenly among all sources sharing a bottleneck

AIMD: every RTT, if there is no loss, W = W + 1; else, W = W/2

slow-start: at the start of the connection, double W every RTT

fast retransmit/fast recovery: retransmit packet k+1 as soon as four

ACKs with sequence number k are received

(four = original ACK + 3 “dup” ACKs)

Katrina LaCurts | [email protected] | 6.033 2021

congestion control: controlling the source rates to achieve efficiency and fairness

AIMD: every RTT, if there is no loss, W = W + 1; else, W = W/2

slow-start: at the start of the connection, double W every RTT

0

2

4

6

8

10

12

14

16

0 5 10 15 20 25

Win

do

w S

ize

Time (RTTs)

retransmission dueto timeout fast retransmit/fast recovery:

retransmit packet k+1 as soon as four ACKs with sequence number k are

received (four = original ACK + 3 “dup” ACKs)

efficiency: minimize drops, minimize delay, maximize bottleneck utilization

fairness: under infinite offered load, split bandwidth evenly among all sources sharing a bottleneck

Katrina LaCurts | [email protected] | 6.033 2021

congestion control: controlling the source rates to achieve efficiency and fairness

AIMD: every RTT, if there is no loss, W = W + 1; else, W = W/2

slow-start: at the start of the connection, double W every RTT

fast retransmit/fast recovery: retransmit packet k+1 as soon as four

ACKs with sequence number k are received

(four = original ACK + 3 “dup” ACKs)

efficiency: minimize drops, minimize delay, maximize bottleneck utilization

fairness: under infinite offered load, split bandwidth evenly among all sources sharing a bottleneck

in practice, fairness is tough to define and assess

in certain types of networks, this style of congestion control can make these problems worse

AIMD is not the final word in congestion avoidance; modern versions (e.g. CUBIC TCP) use different rules to set the window size

Katrina LaCurts | [email protected] | 6.033 2021

6.033 in the news

https://www.nytimes.com/2019/09/04/science/sally-floyd-dead.html

Katrina LaCurts | [email protected] | 6.033 2021

1978: flexibility and layering

link

network

transport

application the things that actually generate traffic

sharing the network, reliability (or not)examples: TCP, UDP

1993: commercialization

1970s: ARPAnet early 80s: growth → change

OSPF, EGP, DNS

late 80s: growth → problems

policy routinghosts.txt

naming, addressing, routingexamples: IP

communication between two directly-connected nodesexamples: ethernet, bluetooth, 802.11 (wifi)

TCP, UDPdistance-vectorrouting

congestion collapse CIDR

CAIDA’s IPv4 AS Core, February 2017

(https://www.caida.org/research/topology/

as_core_network/2017/)

(which led to congestion control)

next time: TCP congestion control doesn’t react to congestion until after it’s a problem; could we get senders to react before queues are full?