640 likes | 921 Views
Multipath TCP Protocol Overview and Standards. 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
E N D
Multipath TCP Protocol Overview and Standards 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 HTTP Server: Read Request Browser: Send 3KB of data
TCP Data Transmission Data: 0-1000 HTTP Server: Read Request Browser: Send 3KB of data
TCP Data Transmission Data: 1000-2000 Data: 0-1000 HTTP Server: Read Request Browser: Send 3KB of data
TCP Data Transmission Data: 1001-2000 Data: 1-1000 Data: 2001-3000 HTTP Server: Read Request Browser: Send 3KB of data
TCP Data Transmission: Lost Packets Data: 1-1000 Data: 2001-3000 HTTP Server: Read Request Browser: Send 3KB of data
TCP Data Transmission: Reordering Data: 1-1000 Data: 2001-3000 Data: 1001-2000 HTTP Server: Read Request Browser: Send 3KB of data
TCP Data Transmission: Sequence Numbers and ACKs SEQ 2001 Data: 2001-3000 SEQ 1001 Data: 1001-2000 SEQ 1 Data: 1-1000 HTTP Server: Read Request Browser: Send 3KB of data
TCP Data Transmission: Sequence Numbers and ACKs SEQ 2001 Data: 2001-3000 SEQ 1001 Data: 1001-2000 ACK 1001 HTTP Server: Read Request Browser: Send 3KB of data
TCP Data Transmission: Sequence Numbers and ACKs SEQ 2001 Data: 2001-3000 ACK 1001 ACK 2001 HTTP Server: Read Request Browser: Send 3KB of data
TCP Data Transmission: Sequence Numbers and ACKs ACK 1001 ACK 2001 ACK 3001 HTTP Server: Read Request Browser: Send 3KB of data
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?
Smartphone 3G celltower Mobile client Server Wifi
Multi-homed server Stripe data from one connection across both paths. We call these subflows. Client 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
Multipath TCP Primer [IETF MPTCP WG] • MPTCP is a drop in replacement for TCP • Works with unmodified applications • Over the existing network
MPTCP Operation SYN MP_CAPABLE X
MPTCP Operation SYN/ACK MP_CAPABLE Y
MPTCP Operation STATE 1 CWND Snd.SEQNO Rcv.SEQNO
MPTCP Operation STATE 1 CWND Snd.SEQNO Rcv.SEQNO SYN JOIN Y
MPTCP Operation STATE 1 CWND Snd.SEQNO Rcv.SEQNO SYN/ACK JOIN X
MPTCP Operation STATE 1 CWND Snd.SEQNO Rcv.SEQNO STATE 2 CWND Snd.SEQNO Rcv.SEQNO
MPTCP Operation STATE 1 CWND Snd.SEQNO Rcv.SEQNO STATE 2 CWND Snd.SEQNO Rcv.SEQNO options … SEQ 1000 … DSEQ 10000 DATA
MPTCP Operation STATE 1 CWND Snd.SEQNO Rcv.SEQNO STATE 2 CWND Snd.SEQNO Rcv.SEQNO options … SEQ 1000 … DSEQ 10000 DATA
MPTCP Operation STATE 1 CWND Snd.SEQNO Rcv.SEQNO STATE 2 CWND Snd.SEQNO Rcv.SEQNO options options … … SEQ 1000 SEQ 5000 … … DSEQ 10000 DSEQ 11000 DATA DATA
MPTCP Operation STATE 1 CWND Snd.SEQNO Rcv.SEQNO STATE 2 CWND Snd.SEQNO Rcv.SEQNO options options … … SEQ 1000 SEQ 5000 … … DSEQ 10000 DSEQ 11000 DATA DATA
MPTCP Operation STATE 1 CWND Snd.SEQNO Rcv.SEQNO STATE 2 CWND Snd.SEQNO Rcv.SEQNO options options … … SEQ 1000 SEQ 5000 … … DSEQ 10000 DSEQ 11000 DATA DATA
MPTCP Operation STATE 1 CWND Snd.SEQNO Rcv.SEQNO STATE 2 CWND Snd.SEQNO Rcv.SEQNO options options … … SEQ 1000 SEQ 5000 … … DSEQ 10000 DSEQ 11000 DATA DATA
MPTCP Operation STATE 1 CWND Snd.SEQNO Rcv.SEQNO STATE 2 CWND Snd.SEQNO Rcv.SEQNO … ACK 2000 …
MPTCP Operation STATE 1 CWND Snd.SEQNO Rcv.SEQNO STATE 2 CWND Snd.SEQNO Rcv.SEQNO options … SEQ 2000 … DSEQ 11000 DATA
So, why would you care? • Google 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.
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.
What is a protocol? • A set of rules that participants MUST obey • Some rules they SHOULD obey • Other rules they MAY obey • Rules prescribe: • Packet formats • What the acceptable sequence of packets is (e.g. SYN/SYN-ACK/ACK)
Standardization • Internet Engineering Task Force: • A group of volunteers: anybody can go • Meets three times per year • Organized in area directorates, each with many working groups • Transport – tcpm, mptcp, etc. • Routing • Security • Applications
IETF Standards • Protocols defined as Internet Drafts • Written in plaintext format • Anyone can submit an Internet Draft • Standards are called Request for Comments (RFC) • Even some keywords to use in RFC are standardized (RFC2119, RFC1208)