Lecture 16: Multi-path TCP - University of California, …CSE 222A – Lecture 16: Multipath TCP" 15...
Transcript of Lecture 16: Multi-path TCP - University of California, …CSE 222A – Lecture 16: Multipath TCP" 15...
![Page 1: Lecture 16: Multi-path TCP - University of California, …CSE 222A – Lecture 16: Multipath TCP" 15 TCP: Sequence #s and ACKs! Browser: Send 3KB of data HTTP Server: Read Request](https://reader030.fdocuments.us/reader030/viewer/2022040611/5ed815b5cba89e334c6737a3/html5/thumbnails/1.jpg)
CSE 222A: Computer Communication Networks Alex C. Snoeren
Lecture 16:Multi-path TCP"
Thanks: Costin Raiciu
![Page 2: Lecture 16: Multi-path TCP - University of California, …CSE 222A – Lecture 16: Multipath TCP" 15 TCP: Sequence #s and ACKs! Browser: Send 3KB of data HTTP Server: Read Request](https://reader030.fdocuments.us/reader030/viewer/2022040611/5ed815b5cba89e334c6737a3/html5/thumbnails/2.jpg)
Lecture 16 Overview" TCP review
MPTCP Overview
2 2 CSE 222A – Lecture 16: Multipath TCP"
![Page 3: Lecture 16: Multi-path TCP - University of California, …CSE 222A – Lecture 16: Multipath TCP" 15 TCP: Sequence #s and ACKs! Browser: Send 3KB of data HTTP Server: Read Request](https://reader030.fdocuments.us/reader030/viewer/2022040611/5ed815b5cba89e334c6737a3/html5/thumbnails/3.jpg)
TCP Connection Setup
HTTP server listening on port 80
3 3 CSE 222A – Lecture 16: Multipath TCP"
![Page 4: Lecture 16: Multi-path TCP - University of California, …CSE 222A – Lecture 16: Multipath TCP" 15 TCP: Sequence #s and ACKs! Browser: Send 3KB of data HTTP Server: Read Request](https://reader030.fdocuments.us/reader030/viewer/2022040611/5ed815b5cba89e334c6737a3/html5/thumbnails/4.jpg)
TCP Connection Setup
SYN DPORT 80 SPORT 12572
4 4 CSE 222A – Lecture 16: Multipath TCP"
![Page 5: Lecture 16: Multi-path TCP - University of California, …CSE 222A – Lecture 16: Multipath TCP" 15 TCP: Sequence #s and ACKs! Browser: Send 3KB of data HTTP Server: Read Request](https://reader030.fdocuments.us/reader030/viewer/2022040611/5ed815b5cba89e334c6737a3/html5/thumbnails/5.jpg)
TCP Connection Setup
SYN/ACK
DPORT 80 SPORT 12572
5 5 CSE 222A – Lecture 16: Multipath TCP"
![Page 6: Lecture 16: Multi-path TCP - University of California, …CSE 222A – Lecture 16: Multipath TCP" 15 TCP: Sequence #s and ACKs! Browser: Send 3KB of data HTTP Server: Read Request](https://reader030.fdocuments.us/reader030/viewer/2022040611/5ed815b5cba89e334c6737a3/html5/thumbnails/6.jpg)
TCP Connection Setup
ACK DPORT 80 SPORT 12572
6 6 CSE 222A – Lecture 16: Multipath TCP"
![Page 7: Lecture 16: Multi-path TCP - University of California, …CSE 222A – Lecture 16: Multipath TCP" 15 TCP: Sequence #s and ACKs! Browser: Send 3KB of data HTTP Server: Read Request](https://reader030.fdocuments.us/reader030/viewer/2022040611/5ed815b5cba89e334c6737a3/html5/thumbnails/7.jpg)
TCP Data Transmission
Browser: Send 3KB of data HTTP Server: Read Request
7 7 CSE 222A – Lecture 16: Multipath TCP"
![Page 8: Lecture 16: Multi-path TCP - University of California, …CSE 222A – Lecture 16: Multipath TCP" 15 TCP: Sequence #s and ACKs! Browser: Send 3KB of data HTTP Server: Read Request](https://reader030.fdocuments.us/reader030/viewer/2022040611/5ed815b5cba89e334c6737a3/html5/thumbnails/8.jpg)
TCP Data Transmission
Data: 0-1000
Browser: Send 3KB of data HTTP Server: Read Request
8 8 CSE 222A – Lecture 16: Multipath TCP"
![Page 9: Lecture 16: Multi-path TCP - University of California, …CSE 222A – Lecture 16: Multipath TCP" 15 TCP: Sequence #s and ACKs! Browser: Send 3KB of data HTTP Server: Read Request](https://reader030.fdocuments.us/reader030/viewer/2022040611/5ed815b5cba89e334c6737a3/html5/thumbnails/9.jpg)
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"
![Page 10: Lecture 16: Multi-path TCP - University of California, …CSE 222A – Lecture 16: Multipath TCP" 15 TCP: Sequence #s and ACKs! Browser: Send 3KB of data HTTP Server: Read Request](https://reader030.fdocuments.us/reader030/viewer/2022040611/5ed815b5cba89e334c6737a3/html5/thumbnails/10.jpg)
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"
![Page 11: Lecture 16: Multi-path TCP - University of California, …CSE 222A – Lecture 16: Multipath TCP" 15 TCP: Sequence #s and ACKs! Browser: Send 3KB of data HTTP Server: Read Request](https://reader030.fdocuments.us/reader030/viewer/2022040611/5ed815b5cba89e334c6737a3/html5/thumbnails/11.jpg)
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"
![Page 12: Lecture 16: Multi-path TCP - University of California, …CSE 222A – Lecture 16: Multipath TCP" 15 TCP: Sequence #s and ACKs! Browser: Send 3KB of data HTTP Server: Read Request](https://reader030.fdocuments.us/reader030/viewer/2022040611/5ed815b5cba89e334c6737a3/html5/thumbnails/12.jpg)
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"
![Page 13: Lecture 16: Multi-path TCP - University of California, …CSE 222A – Lecture 16: Multipath TCP" 15 TCP: Sequence #s and ACKs! Browser: Send 3KB of data HTTP Server: Read Request](https://reader030.fdocuments.us/reader030/viewer/2022040611/5ed815b5cba89e334c6737a3/html5/thumbnails/13.jpg)
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"
![Page 14: Lecture 16: Multi-path TCP - University of California, …CSE 222A – Lecture 16: Multipath TCP" 15 TCP: Sequence #s and ACKs! Browser: Send 3KB of data HTTP Server: Read Request](https://reader030.fdocuments.us/reader030/viewer/2022040611/5ed815b5cba89e334c6737a3/html5/thumbnails/14.jpg)
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"
![Page 15: Lecture 16: Multi-path TCP - University of California, …CSE 222A – Lecture 16: Multipath TCP" 15 TCP: Sequence #s and ACKs! Browser: Send 3KB of data HTTP Server: Read Request](https://reader030.fdocuments.us/reader030/viewer/2022040611/5ed815b5cba89e334c6737a3/html5/thumbnails/15.jpg)
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"
![Page 16: Lecture 16: Multi-path TCP - University of California, …CSE 222A – Lecture 16: Multipath TCP" 15 TCP: Sequence #s and ACKs! Browser: Send 3KB of data HTTP Server: Read Request](https://reader030.fdocuments.us/reader030/viewer/2022040611/5ed815b5cba89e334c6737a3/html5/thumbnails/16.jpg)
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"
![Page 17: Lecture 16: Multi-path TCP - University of California, …CSE 222A – Lecture 16: Multipath TCP" 15 TCP: Sequence #s and ACKs! Browser: Send 3KB of data HTTP Server: Read Request](https://reader030.fdocuments.us/reader030/viewer/2022040611/5ed815b5cba89e334c6737a3/html5/thumbnails/17.jpg)
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"
![Page 18: Lecture 16: Multi-path TCP - University of California, …CSE 222A – Lecture 16: Multipath TCP" 15 TCP: Sequence #s and ACKs! Browser: Send 3KB of data HTTP Server: Read Request](https://reader030.fdocuments.us/reader030/viewer/2022040611/5ed815b5cba89e334c6737a3/html5/thumbnails/18.jpg)
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"
![Page 19: Lecture 16: Multi-path TCP - University of California, …CSE 222A – Lecture 16: Multipath TCP" 15 TCP: Sequence #s and ACKs! Browser: Send 3KB of data HTTP Server: Read Request](https://reader030.fdocuments.us/reader030/viewer/2022040611/5ed815b5cba89e334c6737a3/html5/thumbnails/19.jpg)
MPTCP Operation
SYN
MP_CAPABLE X
19 19 CSE 222A – Lecture 16: Multipath TCP"
![Page 20: Lecture 16: Multi-path TCP - University of California, …CSE 222A – Lecture 16: Multipath TCP" 15 TCP: Sequence #s and ACKs! Browser: Send 3KB of data HTTP Server: Read Request](https://reader030.fdocuments.us/reader030/viewer/2022040611/5ed815b5cba89e334c6737a3/html5/thumbnails/20.jpg)
MPTCP Operation
SYN/ACK MP_CAPABLE Y
20 20 CSE 222A – Lecture 16: Multipath TCP"
![Page 21: Lecture 16: Multi-path TCP - University of California, …CSE 222A – Lecture 16: Multipath TCP" 15 TCP: Sequence #s and ACKs! Browser: Send 3KB of data HTTP Server: Read Request](https://reader030.fdocuments.us/reader030/viewer/2022040611/5ed815b5cba89e334c6737a3/html5/thumbnails/21.jpg)
MPTCP Operation STATE 1 CWND Snd.SEQNO Rcv.SEQNO
21 21 CSE 222A – Lecture 16: Multipath TCP"
![Page 22: Lecture 16: Multi-path TCP - University of California, …CSE 222A – Lecture 16: Multipath TCP" 15 TCP: Sequence #s and ACKs! Browser: Send 3KB of data HTTP Server: Read Request](https://reader030.fdocuments.us/reader030/viewer/2022040611/5ed815b5cba89e334c6737a3/html5/thumbnails/22.jpg)
MPTCP Operation STATE 1 CWND Snd.SEQNO Rcv.SEQNO
SYN JOIN Y
22 22 CSE 222A – Lecture 16: Multipath TCP"
![Page 23: Lecture 16: Multi-path TCP - University of California, …CSE 222A – Lecture 16: Multipath TCP" 15 TCP: Sequence #s and ACKs! Browser: Send 3KB of data HTTP Server: Read Request](https://reader030.fdocuments.us/reader030/viewer/2022040611/5ed815b5cba89e334c6737a3/html5/thumbnails/23.jpg)
MPTCP Operation STATE 1 CWND Snd.SEQNO Rcv.SEQNO
SYN/ACK
JOIN X
23 23 CSE 222A – Lecture 16: Multipath TCP"
![Page 24: Lecture 16: Multi-path TCP - University of California, …CSE 222A – Lecture 16: Multipath TCP" 15 TCP: Sequence #s and ACKs! Browser: Send 3KB of data HTTP Server: Read Request](https://reader030.fdocuments.us/reader030/viewer/2022040611/5ed815b5cba89e334c6737a3/html5/thumbnails/24.jpg)
MPTCP Operation STATE 1 CWND Snd.SEQNO Rcv.SEQNO
STATE 2 CWND Snd.SEQNO Rcv.SEQNO
24 24 CSE 222A – Lecture 16: Multipath TCP"
![Page 25: Lecture 16: Multi-path TCP - University of California, …CSE 222A – Lecture 16: Multipath TCP" 15 TCP: Sequence #s and ACKs! Browser: Send 3KB of data HTTP Server: Read Request](https://reader030.fdocuments.us/reader030/viewer/2022040611/5ed815b5cba89e334c6737a3/html5/thumbnails/25.jpg)
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"
![Page 26: Lecture 16: Multi-path TCP - University of California, …CSE 222A – Lecture 16: Multipath TCP" 15 TCP: Sequence #s and ACKs! Browser: Send 3KB of data HTTP Server: Read Request](https://reader030.fdocuments.us/reader030/viewer/2022040611/5ed815b5cba89e334c6737a3/html5/thumbnails/26.jpg)
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"
![Page 27: Lecture 16: Multi-path TCP - University of California, …CSE 222A – Lecture 16: Multipath TCP" 15 TCP: Sequence #s and ACKs! Browser: Send 3KB of data HTTP Server: Read Request](https://reader030.fdocuments.us/reader030/viewer/2022040611/5ed815b5cba89e334c6737a3/html5/thumbnails/27.jpg)
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"
![Page 28: Lecture 16: Multi-path TCP - University of California, …CSE 222A – Lecture 16: Multipath TCP" 15 TCP: Sequence #s and ACKs! Browser: Send 3KB of data HTTP Server: Read Request](https://reader030.fdocuments.us/reader030/viewer/2022040611/5ed815b5cba89e334c6737a3/html5/thumbnails/28.jpg)
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"
![Page 29: Lecture 16: Multi-path TCP - University of California, …CSE 222A – Lecture 16: Multipath TCP" 15 TCP: Sequence #s and ACKs! Browser: Send 3KB of data HTTP Server: Read Request](https://reader030.fdocuments.us/reader030/viewer/2022040611/5ed815b5cba89e334c6737a3/html5/thumbnails/29.jpg)
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"
![Page 30: Lecture 16: Multi-path TCP - University of California, …CSE 222A – Lecture 16: Multipath TCP" 15 TCP: Sequence #s and ACKs! Browser: Send 3KB of data HTTP Server: Read Request](https://reader030.fdocuments.us/reader030/viewer/2022040611/5ed815b5cba89e334c6737a3/html5/thumbnails/30.jpg)
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"
![Page 31: Lecture 16: Multi-path TCP - University of California, …CSE 222A – Lecture 16: Multipath TCP" 15 TCP: Sequence #s and ACKs! Browser: Send 3KB of data HTTP Server: Read Request](https://reader030.fdocuments.us/reader030/viewer/2022040611/5ed815b5cba89e334c6737a3/html5/thumbnails/31.jpg)
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"
![Page 32: Lecture 16: Multi-path TCP - University of California, …CSE 222A – Lecture 16: Multipath TCP" 15 TCP: Sequence #s and ACKs! Browser: Send 3KB of data HTTP Server: Read Request](https://reader030.fdocuments.us/reader030/viewer/2022040611/5ed815b5cba89e334c6737a3/html5/thumbnails/32.jpg)
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"
![Page 33: Lecture 16: Multi-path TCP - University of California, …CSE 222A – Lecture 16: Multipath TCP" 15 TCP: Sequence #s and ACKs! Browser: Send 3KB of data HTTP Server: Read Request](https://reader030.fdocuments.us/reader030/viewer/2022040611/5ed815b5cba89e334c6737a3/html5/thumbnails/33.jpg)
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"
![Page 34: Lecture 16: Multi-path TCP - University of California, …CSE 222A – Lecture 16: Multipath TCP" 15 TCP: Sequence #s and ACKs! Browser: Send 3KB of data HTTP Server: Read Request](https://reader030.fdocuments.us/reader030/viewer/2022040611/5ed815b5cba89e334c6737a3/html5/thumbnails/34.jpg)
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"
![Page 35: Lecture 16: Multi-path TCP - University of California, …CSE 222A – Lecture 16: Multipath TCP" 15 TCP: Sequence #s and ACKs! Browser: Send 3KB of data HTTP Server: Read Request](https://reader030.fdocuments.us/reader030/viewer/2022040611/5ed815b5cba89e334c6737a3/html5/thumbnails/35.jpg)
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"
![Page 36: Lecture 16: Multi-path TCP - University of California, …CSE 222A – Lecture 16: Multipath TCP" 15 TCP: Sequence #s and ACKs! Browser: Send 3KB of data HTTP Server: Read Request](https://reader030.fdocuments.us/reader030/viewer/2022040611/5ed815b5cba89e334c6737a3/html5/thumbnails/36.jpg)
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"
![Page 37: Lecture 16: Multi-path TCP - University of California, …CSE 222A – Lecture 16: Multipath TCP" 15 TCP: Sequence #s and ACKs! Browser: Send 3KB of data HTTP Server: Read Request](https://reader030.fdocuments.us/reader030/viewer/2022040611/5ed815b5cba89e334c6737a3/html5/thumbnails/37.jpg)
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"
![Page 38: Lecture 16: Multi-path TCP - University of California, …CSE 222A – Lecture 16: Multipath TCP" 15 TCP: Sequence #s and ACKs! Browser: Send 3KB of data HTTP Server: Read Request](https://reader030.fdocuments.us/reader030/viewer/2022040611/5ed815b5cba89e334c6737a3/html5/thumbnails/38.jpg)
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"
![Page 39: Lecture 16: Multi-path TCP - University of California, …CSE 222A – Lecture 16: Multipath TCP" 15 TCP: Sequence #s and ACKs! Browser: Send 3KB of data HTTP Server: Read Request](https://reader030.fdocuments.us/reader030/viewer/2022040611/5ed815b5cba89e334c6737a3/html5/thumbnails/39.jpg)
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"
![Page 40: Lecture 16: Multi-path TCP - University of California, …CSE 222A – Lecture 16: Multipath TCP" 15 TCP: Sequence #s and ACKs! Browser: Send 3KB of data HTTP Server: Read Request](https://reader030.fdocuments.us/reader030/viewer/2022040611/5ed815b5cba89e334c6737a3/html5/thumbnails/40.jpg)
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"
![Page 41: Lecture 16: Multi-path TCP - University of California, …CSE 222A – Lecture 16: Multipath TCP" 15 TCP: Sequence #s and ACKs! Browser: Send 3KB of data HTTP Server: Read Request](https://reader030.fdocuments.us/reader030/viewer/2022040611/5ed815b5cba89e334c6737a3/html5/thumbnails/41.jpg)
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"
![Page 42: Lecture 16: Multi-path TCP - University of California, …CSE 222A – Lecture 16: Multipath TCP" 15 TCP: Sequence #s and ACKs! Browser: Send 3KB of data HTTP Server: Read Request](https://reader030.fdocuments.us/reader030/viewer/2022040611/5ed815b5cba89e334c6737a3/html5/thumbnails/42.jpg)
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"
![Page 43: Lecture 16: Multi-path TCP - University of California, …CSE 222A – Lecture 16: Multipath TCP" 15 TCP: Sequence #s and ACKs! Browser: Send 3KB of data HTTP Server: Read Request](https://reader030.fdocuments.us/reader030/viewer/2022040611/5ed815b5cba89e334c6737a3/html5/thumbnails/43.jpg)
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"
![Page 44: Lecture 16: Multi-path TCP - University of California, …CSE 222A – Lecture 16: Multipath TCP" 15 TCP: Sequence #s and ACKs! Browser: Send 3KB of data HTTP Server: Read Request](https://reader030.fdocuments.us/reader030/viewer/2022040611/5ed815b5cba89e334c6737a3/html5/thumbnails/44.jpg)
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"
![Page 45: Lecture 16: Multi-path TCP - University of California, …CSE 222A – Lecture 16: Multipath TCP" 15 TCP: Sequence #s and ACKs! Browser: Send 3KB of data HTTP Server: Read Request](https://reader030.fdocuments.us/reader030/viewer/2022040611/5ed815b5cba89e334c6737a3/html5/thumbnails/45.jpg)
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"
![Page 46: Lecture 16: Multi-path TCP - University of California, …CSE 222A – Lecture 16: Multipath TCP" 15 TCP: Sequence #s and ACKs! Browser: Send 3KB of data HTTP Server: Read Request](https://reader030.fdocuments.us/reader030/viewer/2022040611/5ed815b5cba89e334c6737a3/html5/thumbnails/46.jpg)
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"
![Page 47: Lecture 16: Multi-path TCP - University of California, …CSE 222A – Lecture 16: Multipath TCP" 15 TCP: Sequence #s and ACKs! Browser: Send 3KB of data HTTP Server: Read Request](https://reader030.fdocuments.us/reader030/viewer/2022040611/5ed815b5cba89e334c6737a3/html5/thumbnails/47.jpg)
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"
![Page 48: Lecture 16: Multi-path TCP - University of California, …CSE 222A – Lecture 16: Multipath TCP" 15 TCP: Sequence #s and ACKs! Browser: Send 3KB of data HTTP Server: Read Request](https://reader030.fdocuments.us/reader030/viewer/2022040611/5ed815b5cba89e334c6737a3/html5/thumbnails/48.jpg)
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"