Upload
others
View
4
Download
0
Embed Size (px)
Citation preview
CSE 222A: Computer Communication Networks Alex C. Snoeren
Lecture 16:Multi-path TCP"
Thanks: Costin Raiciu
Lecture 16 Overview" TCP review
MPTCP Overview
2 2 CSE 222A – Lecture 16: Multipath TCP"
TCP Connection Setup
HTTP server listening on port 80
3 3 CSE 222A – Lecture 16: Multipath TCP"
TCP Connection Setup
SYN DPORT 80 SPORT 12572
4 4 CSE 222A – Lecture 16: Multipath TCP"
TCP Connection Setup
SYN/ACK
DPORT 80 SPORT 12572
5 5 CSE 222A – Lecture 16: Multipath TCP"
TCP Connection Setup
ACK DPORT 80 SPORT 12572
6 6 CSE 222A – Lecture 16: Multipath TCP"
TCP Data Transmission
Browser: Send 3KB of data HTTP Server: Read Request
7 7 CSE 222A – Lecture 16: Multipath TCP"
TCP Data Transmission
Data: 0-1000
Browser: Send 3KB of data HTTP Server: Read Request
8 8 CSE 222A – Lecture 16: Multipath TCP"
TCP Data Transmission
Data: 1000-2000 Data: 0-1000
Browser: Send 3KB of data HTTP Server: Read Request
9 9 CSE 222A – Lecture 16: Multipath TCP"
TCP Data Transmission
Data: 1001-2000 Data: 1-1000 Data:
2001-3000
Browser: Send 3KB of data HTTP Server: Read Request
10 10 CSE 222A – Lecture 16: Multipath TCP"
TCP: Lost Packets
Data: 1-1000 Data: 2001-3000
Browser: Send 3KB of data HTTP Server: Read Request
11 11 CSE 222A – Lecture 16: Multipath TCP"
TCP: Reordering
Data: 1001-2000 Data: 1-1000 Data:
2001-3000
Browser: Send 3KB of data HTTP Server: Read Request
12 12 CSE 222A – Lecture 16: Multipath TCP"
TCP: Sequence #s and ACKs
Data: 1001-2000 Data: 1-1000 Data:
2001-3000
Browser: Send 3KB of data HTTP Server: Read Request
SEQ 1
SEQ 1001
SEQ 2001
13 13 CSE 222A – Lecture 16: Multipath TCP"
TCP: Sequence #s and ACKs
Data: 1001-2000
Data: 2001-3000
Browser: Send 3KB of data HTTP Server: Read Request
SEQ 1001
SEQ 2001
ACK 1001
14 14 CSE 222A – Lecture 16: Multipath TCP"
TCP: Sequence #s and ACKs
Data: 2001-3000
Browser: Send 3KB of data HTTP Server: Read Request
SEQ 2001
ACK 2001 ACK 1001
15 15 CSE 222A – Lecture 16: Multipath TCP"
TCP: Sequence #s and ACKs
Browser: Send 3KB of data HTTP Server: Read Request
ACK 2001 ACK 1001 ACK 3001
16 16 CSE 222A – Lecture 16: Multipath TCP"
MPTCP is a drop in replacement for TCP ◆ Works with unmodified applications ◆ Over the existing network
Multipath TCP"
17 17 CSE 222A – Lecture 16: Multipath TCP"
18"
TCP
IP
user space socket API
MPTCP MPTCP
addr1 addr2 addr
The sender stripes packets across paths
The receiver puts the packets in the correct order
Drop-in TCP Replacement"
18 18 CSE 222A – Lecture 16: Multipath TCP"
MPTCP Operation
SYN
MP_CAPABLE X
19 19 CSE 222A – Lecture 16: Multipath TCP"
MPTCP Operation
SYN/ACK MP_CAPABLE Y
20 20 CSE 222A – Lecture 16: Multipath TCP"
MPTCP Operation STATE 1 CWND Snd.SEQNO Rcv.SEQNO
21 21 CSE 222A – Lecture 16: Multipath TCP"
MPTCP Operation STATE 1 CWND Snd.SEQNO Rcv.SEQNO
SYN JOIN Y
22 22 CSE 222A – Lecture 16: Multipath TCP"
MPTCP Operation STATE 1 CWND Snd.SEQNO Rcv.SEQNO
SYN/ACK
JOIN X
23 23 CSE 222A – Lecture 16: Multipath TCP"
MPTCP Operation STATE 1 CWND Snd.SEQNO Rcv.SEQNO
STATE 2 CWND Snd.SEQNO Rcv.SEQNO
24 24 CSE 222A – Lecture 16: Multipath TCP"
MPTCP Operation STATE 1 CWND Snd.SEQNO Rcv.SEQNO
STATE 2 CWND Snd.SEQNO Rcv.SEQNO
DATA
SEQ 1000
DSEQ 10000
options
…
…
25 25 CSE 222A – Lecture 16: Multipath TCP"
MPTCP Operation STATE 1 CWND Snd.SEQNO Rcv.SEQNO
STATE 2 CWND Snd.SEQNO Rcv.SEQNO
DATA
SEQ 1000
DSEQ 10000
options
…
…
26 26 CSE 222A – Lecture 16: Multipath TCP"
MPTCP Operation STATE 1 CWND Snd.SEQNO Rcv.SEQNO
STATE 2 CWND Snd.SEQNO Rcv.SEQNO
DATA
SEQ 1000
DSEQ 10000
options
…
…
DATA
SEQ 5000
DSEQ 11000
options
…
…
27 27 CSE 222A – Lecture 16: Multipath TCP"
MPTCP Operation STATE 1 CWND Snd.SEQNO Rcv.SEQNO
STATE 2 CWND Snd.SEQNO Rcv.SEQNO
DATA
SEQ 1000
DSEQ 10000
options
…
…
DATA
SEQ 5000
DSEQ 11000
options
…
…
28 28 CSE 222A – Lecture 16: Multipath TCP"
MPTCP Operation STATE 1 CWND Snd.SEQNO Rcv.SEQNO
STATE 2 CWND Snd.SEQNO Rcv.SEQNO
DATA
SEQ 1000
DSEQ 10000
options
…
…
DATA
SEQ 5000
DSEQ 11000
options
…
…
29 29 CSE 222A – Lecture 16: Multipath TCP"
MPTCP Operation STATE 1 CWND Snd.SEQNO Rcv.SEQNO
STATE 2 CWND Snd.SEQNO Rcv.SEQNO
DATA
SEQ 1000
DSEQ 10000
options
…
…
DATA
SEQ 5000
DSEQ 11000
options
…
…
30 30 CSE 222A – Lecture 16: Multipath TCP"
MPTCP Operation STATE 1 CWND Snd.SEQNO Rcv.SEQNO
STATE 2 CWND Snd.SEQNO Rcv.SEQNO
ACK 2000
…
…
31 31 CSE 222A – Lecture 16: Multipath TCP"
MPTCP Operation STATE 1 CWND Snd.SEQNO Rcv.SEQNO
STATE 2 CWND Snd.SEQNO Rcv.SEQNO
DATA
SEQ 2000
DSEQ 11000
options
…
…
32 32 CSE 222A – Lecture 16: Multipath TCP"
Each path runs its own congestion control, to detect and respond to the congestion it sees. But link the congestion control parameters, so as to move traffic away from the more congested paths.
��� [Kelly & Voice, Key, Massoulie & Towsley]
be less aggressive
be more aggressive
Pool BW to Balance Load"
33 33 CSE 222A – Lecture 16: Multipath TCP"
Design goal 1:Be fair to regular TCP"
To be fair, Multipath TCP should take as much capacity as TCP at a bottleneck link, no matter how many paths it is using.
A multipath TCP flow with two subflows
Regular TCP
34 34 CSE 222A – Lecture 16: Multipath TCP"
Each flow has a choice of a 1-hop and a 2-hop path. How should split its traffic?
12Mb/s
12Mb/s
12Mb/s
Design goal 2:MPTCP should use efficient paths"
35 35 CSE 222A – Lecture 16: Multipath TCP"
If each flow split its traffic 1:1 ...
8Mb/s
8Mb/s
8Mb/s
12Mb/s
12Mb/s
12Mb/s
Design goal 2:MPTCP should use efficient paths"
36 36 CSE 222A – Lecture 16: Multipath TCP"
If each flow split its traffic 2:1 ...
9Mb/s
9Mb/s
9Mb/s
12Mb/s
12Mb/s
12Mb/s
Design goal 2:MPTCP should use efficient paths"
37 37 CSE 222A – Lecture 16: Multipath TCP"
If each flow split its traffic 4:1 ...
10Mb/s
10Mb/s
10Mb/s
12Mb/s
12Mb/s
12Mb/s
Design goal 2:MPTCP should use efficient paths"
38 38 CSE 222A – Lecture 16: Multipath TCP"
If each flow split its traffic ∞:1 ...
12Mb/s
12Mb/s
12Mb/s
12Mb/s
12Mb/s
12Mb/s
Design goal 2:MPTCP should use efficient paths"
39 39 CSE 222A – Lecture 16: Multipath TCP"
12Mb/s
12Mb/s
12Mb/s
12Mb/s
12Mb/s
12Mb/s
Theoretical solution (Kelly+Voice 2005; Han, Towsley et al. 2006) MPTCP should send all its traffic on its least-congested paths. "Theorem. This will lead to the most efficient allocation possible, given a network topology and a set of available paths.
Design goal 2:MPTCP should use efficient paths"
40 40 CSE 222A – Lecture 16: Multipath TCP"
Design goal 3:Perform as well as TCP"
Design Goal 2 says to send all your traffic on the least congested path, in this case 3G. But this has high RTT, hence it will give low throughput.
wifi path: high loss, small RTT
3G path: low loss, high RTT
Goal 3a. A Multipath TCP user should get at least as much throughput as a single-path TCP would on the best of the available paths. Goal 3b. A Multipath TCP flow should take no more capacity on any link than a single-path TCP would.
41 41 CSE 222A – Lecture 16: Multipath TCP"
Design goals"
Goal 1. Be fair to TCP at bottleneck links
Goal 2. Use efficient paths ...
Goal 3. as much as we can, while being fair to TCP
Goal 4. Adapt quickly when congestion changes
Goal 5. Don’t oscillate
How does MPTCP achieve all this?
redundant
42 42 CSE 222A – Lecture 16: Multipath TCP"
TCP congestion control" Maintain a congestion window w.
Increase w for each ACK, by 1/w
Decrease w for each drop, by w/2
43 43 CSE 222A – Lecture 16: Multipath TCP"
MPTCP congestion control" Maintain a congestion window wr, one window
for each path, where r ∊ R ranges over the set of available paths.
Increase wr for each ACK on path r, by
Decrease wr for each drop on path r, by wr /2
44 44 CSE 222A – Lecture 16: Multipath TCP"
Design goal 3: At any potential bottleneck S that path r might be in, look at the best that a single-path TCP could get, and compare to what I’m getting.
MPTCP congestion control" Maintain a congestion window wr, one window
for each path, where r ∊ R ranges over the set of available paths.
Increase wr for each ACK on path r, by
Decrease wr for each drop on path r, by wr /2
45 45 CSE 222A – Lecture 16: Multipath TCP"
Design goal 2: We want to shift traffic away from congestion. To achieve this, we increase windows in proportion to their size.
MPTCP congestion control" Maintain a congestion window wr, one window
for each path, where r ∊ R ranges over the set of available paths.
Increase wr for each ACK on path r, by
Decrease wr for each drop on path r, by wr /2
46 46 CSE 222A – Lecture 16: Multipath TCP"
How much of the Internet can be pooled? »
What are the implications for network operators? How should we fit multipath congestion control to
CompoundTCP or CubicTCP?
Is it worth using multipath for small flows?
Discussion"
47 47 CSE 222A – Lecture 16: Multipath TCP"
For Next Class…" Read and review wireless paper posted later today
Keep going on projects! ◆ Checkpoint 2 only 1 weeks away
48 48 CSE 222A – Lecture 16: Multipath TCP"