48
CSE 222A: Computer Communication Networks Alex C. Snoeren Lecture 16: Multi-path TCP Thanks: Costin Raiciu

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

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  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

  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

  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

  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

  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

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

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

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

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

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

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

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

  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

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"