Vous êtes sur la page 1sur 50

Multipath TCP

Protocol Overview and Standards

Slides from:
Costin Raiciu
Department of Computer Science
University Politehnica of Bucharest
TCP is the main transport protocol on the
Internet
 Defined in RFC 793 and used by many apps
 Web

 Email

 Remote login

 Chat

 Video streaming

 Peer-to-peer

 TCP provides two functions: reliable delivery and


congestion control.
TCP: How do we use it?
 You open your browser and type www.google.com
 The browser figures out the IP address using DNS
 Creates a TCP connection to IP on port 80

 Writes request (GET INDEX.HTML)

 Reads reply (HTML page)

 The server:
 Wait for connections

 Reads requests

 Writes web-pages
TCP Connection Setup

HTTP server
listening on port 80
TCP Connection Setup

SYN
DPORT 80 SPORT
12572
TCP Connection Setup

SYN/ACK
DPORT 80 SPORT
12572
TCP Connection Setup

ACK
DPORT 80 SPORT
12572
TCP Service:
reliable, in order, byte stream delivery

 Apps send any numbers of bytes


 Say 100.000B

 TCP split bytes into segments


 Because network works with limited-size

packets
 Sends them over the network
 Segments can be lost/reordered

 TCP receiver MUST read data in order


TCP Data Transmission

Browser: Send 3KB of data HTTP Server:


Read Request
TCP Data Transmission

Data: 0-1000

Browser: Send 3KB of data HTTP Server:


Read Request
TCP Data Transmission

Data: 1000-
Data: 0-1000
2000

Browser: Send 3KB of data HTTP Server:


Read Request
TCP Data Transmission

Data: 2001- Data: 1001-


Data: 1-1000
3000 2000

Browser: Send 3KB of data HTTP Server:


Read Request
TCP Data Transmission: Lost Packets

Data: 2001-
Data: 1-1000
3000

Browser: Send 3KB of data HTTP Server:


Read Request
TCP Data Transmission: Reordering

Data: 1001- Data: 2001-


Data: 1-1000
2000 3000

Browser: Send 3KB of data HTTP Server:


Read Request
TCP Data Transmission:
Sequence Numbers and ACKs

SEQ Data: 2001- SEQ Data: 1001- SEQ


2001 1001 1 Data: 1-1000
3000 2000

Browser: Send 3KB of data HTTP Server:


Read Request
TCP Data Transmission:
Sequence Numbers and ACKs

SEQ Data: 2001- SEQ Data: 1001-


2001 3000 1001 2000

ACK 1001

Browser: Send 3KB of data HTTP Server:


Read Request
TCP Data Transmission:
Sequence Numbers and ACKs

SEQ Data: 2001-


2001 3000

ACK 1001 ACK 2001

Browser: Send 3KB of data HTTP Server:


Read Request
TCP Data Transmission:
Sequence Numbers and ACKs

ACK 1001 ACK 2001 ACK 3001

Browser: Send 3KB of data HTTP Server:


Read Request
TCP is stuck with using the path given it by
the routing system.

there

here

Source: Bill Cheswick, Lumeta


The routing system is not aware of
congestion. TCP can’t choose a better
uncongested path.
there

here

link is very
congested

Source: Bill Cheswick, Lumeta


Mobility with TCP

3G celltower
Mobility with TCP

3G celltower
Mobility with TCP

3G celltower
Mobility with TCP

3G celltower

Make Before Break


What is a good mobility strategy?

3G celltower
Redundancy is the only way to get reliability
greater than that of all the parts.

 If an Internet link fails, routing can switch to a


different path.

 Routing is too slow to congverge.


 Can we use redundancy at the TCP level?

 Routing doesn’t know about congestion.


 Can we avoid congestion at the TCP level?
Obvious answer:
Use more than one path
Smartphone

3G celltower

Mobile client
Server

Wifi
Multi-homed server

Client Stripe data from one


connection across both
paths.
We call these subflows.

Load balances between


access links
Server
Sending simultaneously across more than
one path can provide robustness.
Client

If any path dies, can


detect it immediately and
switch all traffic to the
working path.

Server
So, why would you care?

 Companies can multihome to different networks.


 Network outages have minimal effect.

 Your iPhone can use WiFi and 3G simultaneously.


 Sleep radios when unneeded for better battery
life.
 Share your DSL and your neighbour’s Cable
broadband.
 Very high reliability possible by using many paths.
Multipath TCP Primer [IETF MPTCP WG]

 MPTCP is a drop in replacement for TCP


 Works with unmodified applications

 Over the existing network


MPTCP Operation
MPTCP Operation
MPTCP Operation

STATE 1
CWND
Snd.SEQNO
Rcv.SEQNO
MPTCP Operation

STATE 1
CWND
Snd.SEQNO
Rcv.SEQNO
MPTCP Operation

STATE 1
CWND
Snd.SEQNO
Rcv.SEQNO
MPTCP Operation

STATE 1
CWND
Snd.SEQNO
Rcv.SEQNO

STATE 2
CWND
Snd.SEQNO
Rcv.SEQNO
MPTCP Operation
options
STATE 1
SEQ DSEQ
… … DATA CWND
1000 10000 Snd.SEQNO
Rcv.SEQNO

STATE 2
CWND
Snd.SEQNO
Rcv.SEQNO
MPTCP Operation
options
STATE 1
SEQ DSEQ
… … DATA CWND
1000 10000 Snd.SEQNO
Rcv.SEQNO

STATE 2
CWND
Snd.SEQNO
Rcv.SEQNO
MPTCP Operation
options
STATE 1
SEQ DSEQ
… … DATA CWND
1000 10000 Snd.SEQNO
Rcv.SEQNO

STATE 2
options CWND
Snd.SEQNO
SEQ DSEQ
… … DATA Rcv.SEQNO
5000 11000
MPTCP Operation
options
STATE 1
SEQ DSEQ
… … DATA CWND
1000 10000 Snd.SEQNO
Rcv.SEQNO

STATE 2
options CWND
Snd.SEQNO
SEQ DSEQ
… … DATA Rcv.SEQNO
5000 11000
MPTCP Operation
options
STATE 1
SEQ DSEQ
… … DATA CWND
1000 10000 Snd.SEQNO
Rcv.SEQNO

STATE 2
options CWND
Snd.SEQNO
SEQ DSEQ
… … DATA Rcv.SEQNO
5000 11000
MPTCP Operation
options
STATE 1
SEQ DSEQ
… … DATA CWND
1000 10000 Snd.SEQNO
Rcv.SEQNO

STATE 2
options CWND
Snd.SEQNO
SEQ DSEQ
… … DATA Rcv.SEQNO
5000 11000
MPTCP Operation

STATE 1
ACK
… … CWND
2000 Snd.SEQNO
Rcv.SEQNO

STATE 2
CWND
Snd.SEQNO
Rcv.SEQNO
MPTCP Operation
options
STATE 1
SEQ DSEQ
… … DATA CWND
2000 11000 Snd.SEQNO
Rcv.SEQNO

STATE 2
CWND
Snd.SEQNO
Rcv.SEQNO
Summary

 The Internet was designed to be cheap, general


purpose, and inherently redundant.
 Hard to utilize the redundancy in practice.

 Not easy to make it dependable for today’s


demanding applications.
 But we think we finally know how to utilize

redundancy effectively.

Vous aimerez peut-être aussi