Multipath TCP Yifan Peng Oct 11, 2012

Slides:



Advertisements
Similar presentations
WELCOME! Multipath TCP Implementors Workshop Saturday 24 th July Maastricht Philip Eardley MPTCP WG Co-chair.
Advertisements

TCP--Revisited. Background How to effectively share the network? – Goal: Fairness and vague notion of equality Ideal: If N connections, each should get.
Multipath TCP Costin Raiciu University Politehnica of Bucharest Joint work with: Mark Handley, Damon Wischik, University College London Olivier Bonaventure,
CISCO NETWORKING ACADEMY Chabot College ELEC Transport Layer (4)
Jennifer Rexford Fall 2014 (TTh 3:00-4:20 in CS 105) COS 561: Advanced Computer Networks Multipath.
Guide to TCP/IP, Third Edition
TDTS21 Advanced Networking
Improving Datacenter Performance and Robustness with Multipath TCP Costin Raiciu, Sebastien Barre, Christopher Pluntke, Adam Greenhalgh, Damon Wischik,
BZUPAGES.COM 1 User Datagram Protocol - UDP RFC 768, Protocol 17 Provides unreliable, connectionless on top of IP Minimal overhead, high performance –No.
© 2007 Cisco Systems, Inc. All rights reserved.Cisco Public 1 Version 4.0 OSI Transport Layer Network Fundamentals – Chapter 4.
CS 268: Wireless Transport Protocols Kevin Lai Feb 13, 2002.
CS335 Networking & Network Administration Tuesday, April 20, 2010.
TCP. Learning objectives Reliable Transport in TCP TCP flow and Congestion Control.
WXES2106 Network Technology Semester /2005 Chapter 8 Intermediate TCP CCNA2: Module 10.
Gursharan Singh Tatla Transport Layer 16-May
Second year review Resource Pooling Damon Wischik, UCL.
What Can IP Do? Deliver datagrams to hosts – The IP address in a datagram header identify a host IP treats a computer as an endpoint of communication Best.
1 Chapter 1 OSI Architecture The OSI 7-layer Model OSI – Open Systems Interconnection.
Introduction to Networks CS587x Lecture 1 Department of Computer Science Iowa State University.
Multipath TCP Signaling Options or Payload? Costin Raiciu
TCP Transport Control Protocol Information management 2 Groep T Leuven – Information department 2/35 Introduction UDP provides the connection.
CS332, Ch. 26: TCP Victor Norman Calvin College 1.
University of the Western Cape Chapter 12: The Transport Layer.
ECE453 – Introduction to Computer Networks Lecture 14 – Transport Layer (I)
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 2.5 Internetworking Chapter 25 (Transport Protocols, UDP and TCP, Protocol Port Numbers)
TCP1 Transmission Control Protocol (TCP). TCP2 Outline Transmission Control Protocol.
Transmission Control Protocol
CCNA 1 v3.0 Module 11 TCP/IP Transport and Application Layers.
Congestion control for Multipath TCP (MPTCP) Damon Wischik Costin Raiciu Adam Greenhalgh Mark Handley THE ROYAL SOCIETY.
CISC856 University of Delaware
MultiPath TCP Proxy Presented by: Yongzhi Zhuang, Wei Zeng, Jianlei Zhang.
Multipath TCP ACM Queue, Volume 12 Issue 2, pp. 1-12, February 2014 Christoph Paasch and Olivier Bonaventure University College London 1.
4343 X2 – The Transport Layer Tanenbaum Ch.6.
IP1 The Underlying Technologies. What is inside the Internet? Or What are the key underlying technologies that make it work so successfully? –Packet Switching.
TCP/IP1 Address Resolution Protocol Internet uses IP address to recognize a computer. But IP address needs to be translated to physical address (NIC).
Network Models. The OSI Model Open Systems Interconnection (OSI). Developed by the International Organization for Standardization (ISO). Model for understanding.
1 Three ways to (ab)use Multipath Congestion Control Costin Raiciu University Politehnica of Bucharest.
11 CS716 Advanced Computer Networks By Dr. Amir Qayyum.
1 TCP ProtocolsLayer name DNSApplication TCP, UDPTransport IPInternet (Network ) WiFi, Ethernet Link (Physical)
© 2006 Cisco Systems, Inc. All rights reserved.Cisco Public 1 OSI transport layer CCNA Exploration Semester 1 – Chapter 4.
Computer Networking A Top-Down Approach Featuring the Internet Introduction Jaypee Institute of Information Technology.
1 Chapter 24 Internetworking Part 4 (Transport Protocols, UDP and TCP, Protocol Port Numbers)
Chapter 5 Network and Transport Layers
CIS 700-5: The Design and Implementation of Cloud Networks
Introduction to TCP/IP networking
Lecture (2).
By, Nirnimesh Ghose, Master of Science,
5. End-to-end protocols (part 1)
Improving Datacenter Performance and Robustness with Multipath TCP
Transport Layer.
Process-to-Process Delivery, TCP and UDP protocols
Long-haul Transport Protocols
Process-to-Process Delivery
© 2003, Cisco Systems, Inc. All rights reserved.
Hubs Hubs are essentially physical-layer repeaters:
Improving Datacenter Performance and Robustness with Multipath TCP
MULTIPATH TCP -Tejas Rajput -Ridip De -Shreyas S Rao.
Hubs Hubs are essentially physical-layer repeaters:
Multi-addressed Multipath TCP
CSCI-1680 Transport Layer I
MultiPath TCP Material from
Data and Computer Communications by William Stallings Eighth Edition
COS 561: Advanced Computer Networks
TRANSMISSION CONTROL PROTOCOL
CPEG514 Advanced Computer Networkst
Computer Networking A Top-Down Approach Featuring the Internet
Network Architecture Models: Layered Communications
Transport Layer 9/22/2019.
Lecture 5, Computer Networks (198:552)
Electrical Communications Systems ECE
Presentation transcript:

Multipath TCP Yifan Peng Oct 11, 2012 CISC856 TCP/IP and Upper Protocol (Much influenced by Costin Raiciu and Wei Wang)

Outline Introduction and motivation MPTCP connection MPTCP data sequence number Congestion control

Mobile devices have multiple wireless connections

Poor performance for cellphones 3G Celltower UDel Wifi CIS Wifi

Poor performance for cellphones 3G Celltower UDel Wifi CIS Wifi

Poor performance for cellphones 3G Celltower UDel Wifi CIS Wifi

Poor performance for cellphones 3G Celltower UDel Wifi CIS Wifi

Good performance for cellphones 3G Celltower UDel Wifi CIS Wifi

Servers are multi-homed Al-Fares et al. A Scalable, Commodity Data Center Network Architecture

Collisions in datacenter

Collisions in datacenter

Collisions in datacenter

Mismatch between network and transport Networks are becoming multipath TCP is single path Uses a single-path in the network regardless of network topology Is tied to the source and destination addresses of the endpoints Mismatch between network and transport

Multipath TCP Multipath reliable data transfer is needed Multipath TCP (MPTCP) is an evolution of TCP that provides an ability to simultaneously use multiple TCP paths between peers

Multipath TCP protocol stack Application TCP IP Application MPTCP Subflow (TCP) IP mptcp connection, subflow path

Terminology Path: a sequence of links between a sender and a receiver Subflow: a flow of TCP segments operating over an individual path, which forms part of a larger MPTCP connection MPTCP connection: a set of one or more subflows, over which an application can communicate between two hosts Token: MPTCP connection ID

Outline Introduction and motivation MPTCP connection create a MPTCP connection add a subflow to existing MPTCP connection close a MPTCP connection MPTCP data sequence number Congestion control

MPTCP connection A B SYN+MP_CAPABLE (Key-A) SYN/ACK+MP_CAPABLE (Key-B) Address A1 Address A2 Address B1 SYN+MP_CAPABLE (Key-A) SYN/ACK+MP_CAPABLE (Key-B) ACK+MP_CAPABLE (Key-A,Key-B) SYN+MP_JOIN (Token-B, R-A) MAC-B = SHA-1 ( Key-B + Key-A, R-B + R-A) SYN/ACK+MP_JOIN (MAC-B, R-B) MAC-A = SHA-1 ( Key-A + Key-B, R-A + R-B) SYN/ACK+MP_JOIN (MAC-A) ACK

Closing a subflow connection DATA FIN used to signal to the other end that all the data has been transmitted. Once received, the endpoint knows to close all its subflows. Why use the DATA FIN option? bi-direction

Closing a subflow connection Two cases of TCP-FIN: FINs are subflow specific, which means that the connection will be closed by a timeout, finishing with an error. FINs sent on any subflow mean connection FIN. This means subflows cannot be torn- down except with the whole connection

Outline Introduction and motivation MPTCP connection MPTCP data sequence number Congestion control

Sequence numbers Options One sequence space shared across all paths? One sequence space per path, plus an extra one to put data back in the correct order at the receiver?

Single sequence space is not enough 1400 1401 1402 1403 1404 1400 1401 1403 1404 Host A Host B Address A1 Address A2 Address B1 SEQ: 1400 ACK: 1401 SEQ: 1401 ACK: 1402 SYN SEQ: 1402 SEQ: 1403 ACK: 1402 SEQ: 1404 ACK: 1402

Separate sequence space per subflow Each subflow has its own sequence number space Data sequence numbers (DSN) are mapped on the subflow that sends them DSN is also called MPTCP sequence numbers

Host A Host B SEQ: 1400, DSN: 19600 ACK: 1401, DA: 19601 19602 19603 19604 DSN 19600 19601 19602 19603 19604 subflow1 1400 1401 1402 subflow1 1400 1401 1402 subflow2 7001 7002 subflow2 7001 7002 Host A Host B Address A1 Address A2 Address B1 SEQ: 1400, DSN: 19600 ACK: 1401, DA: 19601 SEQ: 1401, DSN: 19601 ACK: 1402, DA: 19602 SEQ: 7001, DSN: 19602 ACK: 7002, DA: 19603 SEQ: 1402, DSN: 19603 ACK: 1403, DA: 19604 SEQ: 7002, DSN: 19604 ACK: 7003, DA: 19605

Separate sequence space per subflow One sequence space per path is preferable Loss inference is more reliable Some firewalls/proxies expect to see all the sequence numbers on a path Outer TCP header holds subflow sequence numbers Where do we put the data sequence numbers?

TCP Header Source port address 16 bits Destination port address Sequence number 32 bits Acknowledgment number HLEN 4 bits Reserved 6 bits Code Window size Checksum Urgent pointer Options

MPTCP Header Subflow Source port address 16 bits Subflow Destination port address Subflow Sequence number 32 bits Subflow Acknowledgment number HLEN 4 bits Reserved 6 bits Code Window size Checksum Urgent pointer MPTCP Data sequence number MPTCP Data acknowledge number

Outline Introduction and motivation MPTCP connection MPTCP data sequence number Congestion control

Congestion control Circuits dedicates a channel (inflexible) TCP controls how a link is shared (flexible) MPTCP: how should a pool of links be shared? Two circuits A link In a circuit-switched network, there is a dedicated channel for each flow. It’s rigid and inflexible: when one flow is silent, the other flow can’t fill in. Packet switching gives you much more flexibility (whether you use it for ATM virtual circuits, or for full-blown IP). Multipath brings flexibility of the same sort. Pic 3 is rigid and inflexible, Pic 4 is flexible. In the case of packet switching, you need to be careful about how the flows share the link. Pic 1 circuits made it easy – they give strict isolation between flows. But with Pic 2 packet switching, you need a control plan. It could be with ATM and admission control. Or it could be TCP congestion control, which says how end-systems should adapt their rates so that the network shares its capacity fairly. What sort of control plan do we need, to ensure that a multipath network works well? A pool of links

Congestion control Why not just run regular TCP congestion control on each subflow?

Fairness at shared bottlenecks To be fair, MPTCP should take as much capacity as TCP at a bottleneck link, no matter how many subflows MPTCP is using. A MPTCP with two subflows A regular TCP This is the very first thing that comes to mind with multipath TCP

Congestion control A weighted version of TCP on each subflow Split the traffic evenly? Would not make very efficient use of the network

MPTCP should choose efficient paths A scenario to illustrate the importance of choosing the less-congested path

MPTCP should choose efficient paths Suppose that the three links each have capacity 12Mb/s. Assume all RTTs are equal. If each flow split traffic evenly, each flow will would get 4Mb/s Hence each MPTCP would get 8Mb/s 8 Mb/s 8 Mb/s 8 Mb/s

MPTCP should choose efficient paths The core idea is that a multipath flow should shift all traffic onto the least-congested path. the two-hop paths will have higher drop probability than the one-hop paths Use a path if that path has lower drop among available paths. 12 Mb/s 12 Mb/s 12 Mb/s

Problem of choosing path with lower data loss There are two single-path TCPs on each link, and one multipath TCP able to use both links Choosing path with lower data loss should end up balancing evenly across the two links

Problem of choosing path with lower data loss Suppose now that one of the flows on the top link terminates, so the top link is less congested The multipath TCP flow moves all traffic onto the top link

Problem of choosing path with lower data loss No matter how much extra congestion there is on the top link, the multipath TCP flow is not using the bottom link MPTCP gets no ACKs on the bottom link Unable to increase the window size on the bottom subflow

Problems with RTT mismatch 3G path: low loss, high RTT 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, low RTT

Summary MPTCP connection MPTCP data sequence number Congestion control initiating a MPTCP connection adding new subflow closing MPTCP connection MPTCP data sequence number multi sequence number Congestion control regular TCP congestion control choosing path with lower data loss RTT mismatching

Resources Internet-Draft Paper Presentation Video TCP Extensions for Multipath Operation with Multiple Addresses, Oct 2012 Coupled Congestion Control for Multipath Transport Protocols, July 2011 Paper C. Raiciu, et al. Improving Datacenter Performance and Robustness with MPTCP. SIGCOMM '11, August 2011. M. Al-Fares, et al. A Scalable, Commodity Data Center Network Architecture. SIGCOMM '08, October 2008. Presentation http://nrg.cs.ucl.ac.uk/mptcp/ Video Multipath TCP: http://www.youtube.com/watch?v=02nBaaIoFWU