1 / 62

Multipath TCP Protocol Overview and Standards

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

melosa
Télécharger la présentation

Multipath TCP Protocol Overview and Standards

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Multipath TCP Protocol Overview and Standards Costin Raiciu Department of Computer Science University Politehnica of Bucharest

  2. 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.

  3. 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

  4. TCP Connection Setup HTTP server listening on port 80

  5. TCP Connection Setup SYN DPORT 80 SPORT 12572

  6. TCP Connection Setup SYN/ACK DPORT 80 SPORT 12572

  7. TCP Connection Setup ACK DPORT 80 SPORT 12572

  8. 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

  9. TCP Data Transmission HTTP Server: Read Request Browser: Send 3KB of data

  10. TCP Data Transmission Data: 0-1000 HTTP Server: Read Request Browser: Send 3KB of data

  11. TCP Data Transmission Data: 1000-2000 Data: 0-1000 HTTP Server: Read Request Browser: Send 3KB of data

  12. TCP Data Transmission Data: 1001-2000 Data: 1-1000 Data: 2001-3000 HTTP Server: Read Request Browser: Send 3KB of data

  13. TCP Data Transmission: Lost Packets Data: 1-1000 Data: 2001-3000 HTTP Server: Read Request Browser: Send 3KB of data

  14. TCP Data Transmission: Reordering Data: 1-1000 Data: 2001-3000 Data: 1001-2000 HTTP Server: Read Request Browser: Send 3KB of data

  15. 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

  16. 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

  17. 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

  18. TCP Data Transmission: Sequence Numbers and ACKs ACK 1001 ACK 2001 ACK 3001 HTTP Server: Read Request Browser: Send 3KB of data

  19. TCP is stuck with using the path given it by the routing system. there here Source: Bill Cheswick, Lumeta

  20. 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

  21. Mobility with TCP 3G celltower

  22. Mobility with TCP 3G celltower

  23. Mobility with TCP 3G celltower

  24. Mobility with TCP 3G celltower Make Before Break

  25. What is a good mobility strategy? 3G celltower

  26. 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?

  27. Obvious answer: Use more than one path

  28. Smartphone 3G celltower Mobile client Server Wifi

  29. Multi-homed server Stripe data from one connection across both paths. We call these subflows. Client Load balances between access links Server

  30. 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

  31. Multipath TCP Primer [IETF MPTCP WG] • MPTCP is a drop in replacement for TCP • Works with unmodified applications • Over the existing network

  32. MPTCP Operation SYN MP_CAPABLE X

  33. MPTCP Operation SYN/ACK MP_CAPABLE Y

  34. MPTCP Operation STATE 1 CWND Snd.SEQNO Rcv.SEQNO

  35. MPTCP Operation STATE 1 CWND Snd.SEQNO Rcv.SEQNO SYN JOIN Y

  36. MPTCP Operation STATE 1 CWND Snd.SEQNO Rcv.SEQNO SYN/ACK JOIN X

  37. MPTCP Operation STATE 1 CWND Snd.SEQNO Rcv.SEQNO STATE 2 CWND Snd.SEQNO Rcv.SEQNO

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

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

  40. 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

  41. 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

  42. 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

  43. 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

  44. MPTCP Operation STATE 1 CWND Snd.SEQNO Rcv.SEQNO STATE 2 CWND Snd.SEQNO Rcv.SEQNO … ACK 2000 …

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

  46. 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.

  47. 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.

  48. 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)

  49. 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

  50. 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)

More Related