Jennifer Rexford Fall 2014 (TTh 3:00-4:20 in CS 105) COS 561: Advanced Computer Networks Multipath.

Slides:



Advertisements
Similar presentations
TCP--Revisited. Background How to effectively share the network? – Goal: Fairness and vague notion of equality Ideal: If N connections, each should get.
Advertisements

TCP - Part I Relates to Lab 5. First module on TCP which covers packet format, data transfer, and connection management.
© 2007 Cisco Systems, Inc. All rights reserved.Cisco Public ITE PC v4.0 Chapter 1 1 OSI Transport Layer Network Fundamentals – Chapter 4.
Transmission Control Protocol (TCP)
IS333, Ch. 26: TCP Victor Norman Calvin College 1.
TDTS21 Advanced Networking
Fundamentals of Computer Networks ECE 478/578 Lecture #20: Transmission Control Protocol Instructor: Loukas Lazos Dept of Electrical and Computer Engineering.
CSEE W4140 Networking Laboratory Lecture 6: TCP and UDP Jong Yul Kim
UDP & TCP Where would we be without them!. UDP User Datagram Protocol.
CSE551: Computer Network Review r Network Layers r TCP/UDP r IP.
1 TCP - Part I Relates to Lab 5. First module on TCP which covers packet format, data transfer, and connection management.
Winter 2008CS244a Handout #61 CS244a: An Introduction to Computer Networks Handout 6: The Transport Layer, Transmission Control Protocol (TCP), and User.
1 CS 4396 Computer Networks Lab Transmission Control Protocol (TCP) Part I.
Networks I Transmission Control Protocol Instituto Tecnológico y de Estudios Superiores de Monterrey Campus Estado de México Prof. MSc. Ivan A. Escobar.
TCP: Transmission Control Protocol Overview Connection set-up and termination Interactive Bulk transfer Timers Improvements.
BZUPAGES.COM 1 User Datagram Protocol - UDP RFC 768, Protocol 17 Provides unreliable, connectionless on top of IP Minimal overhead, high performance –No.
Transport Layer – TCP (Part1) Dr. Sanjay P. Ahuja, Ph.D. Fidelity National Financial Distinguished Professor of CIS School of Computing, UNF.
Chapter 7 – Transport Layer Protocols
Computer Networks 2 Lecture 2 TCP – I - Transport Protocols: TCP Segments, Flow control and Connection Setup.
TCP EE 122, Fall 2013 Sylvia Ratnasamy Material thanks to Ion Stoica, Scott Shenker, Jennifer Rexford, Nick McKeown,
EEC-484/584 Computer Networks Lecture 15 Wenbing Zhao (Part of the slides are based on Drs. Kurose & Ross ’ s slides for their Computer.
CSEE W4140 Networking Laboratory Lecture 6: TCP and UDP Jong Yul Kim
CSCE 515: Computer Network Programming TCP Details Wenyuan Xu Department of Computer Science and Engineering.
EEC-484/584 Computer Networks Lecture 13 Wenbing Zhao (Part of the slides are based on Drs. Kurose & Ross ’ s slides for their Computer.
TCP. Learning objectives Reliable Transport in TCP TCP flow and Congestion Control.
Transport Layer TCP and UDP IS250 Spring 2010
Gursharan Singh Tatla Transport Layer 16-May
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.
TCP : Transmission Control Protocol Computer Network System Sirak Kaewjamnong.
TCP Lecture 13 November 13, TCP Background Transmission Control Protocol (TCP) TCP provides much of the functionality that IP lacks: reliable service.
CS332, Ch. 26: TCP Victor Norman Calvin College 1.
Transport Layer: UDP, TCP
TCP1 Transmission Control Protocol (TCP). TCP2 Outline Transmission Control Protocol.
Transmission Control Protocol
CISC856 University of Delaware
Transport Layer Mike Freedman COS 461: Computer Networks Best-effort local packet delivery Best-effort.
Chapter 24 Transport Control Protocol (TCP) Layer 4 protocol Responsible for reliable end-to-end transmission Provides illusion of reliable network to.
Multipath TCP ACM Queue, Volume 12 Issue 2, pp. 1-12, February 2014 Christoph Paasch and Olivier Bonaventure University College London 1.
Slide #1 CIT 380: Securing Computer Systems TCP/IP.
© Jörg Liebeherr (modified by Malathi Veeraraghavan) 1 Overview Formats, Data Transfer, etc. Connection Management.
Transport Protocols.
UDP & TCP Where would we be without them!. UDP User Datagram Protocol.
Retransmission. Automatic Repeat reQuest (ARQ) 2 Time Packet ACK Timeout Automatic Repeat Request –Receiver sends acknowledgment (ACK) when it receives.
TCP/IP1 Address Resolution Protocol Internet uses IP address to recognize a computer. But IP address needs to be translated to physical address (NIC).
Multi-addressed Multipath TCP draft-ford-mptcp-multiaddressed-02 Alan Ford Costin Raiciu, Mark Handley.
11 CS716 Advanced Computer Networks By Dr. Amir Qayyum.
Computer Networks 1000-Transport layer, TCP Gergely Windisch v spring.
1 TCP ProtocolsLayer name DNSApplication TCP, UDPTransport IPInternet (Network ) WiFi, Ethernet Link (Physical)
1 Transmission Control Protocol (TCP) RFC: Introduction The TCP is intended to provide a reliable process-to-process communication service in a.
3. END-TO-END PROTOCOLS (PART 1) Rocky K. C. Chang Department of Computing The Hong Kong Polytechnic University 22 March
Advanced Computer Networks
Introduction to TCP/IP networking
5. End-to-end protocols (part 1)
Chapter 17 and 18: TCP is connection oriented
Long-haul Transport Protocols
Process-to-Process Delivery
TCP.
Multipath TCP Yifan Peng Oct 11, 2012
TCP - Part I Karim El Defrawy
Multi-addressed Multipath TCP
CSCI-1680 Transport Layer I
TCP - Part I Relates to Lab 5. First module on TCP which covers packet format, data transfer, and connection management.
COS 561: Advanced Computer Networks
Transport Layer Jennifer Rexford COS 461: Computer Networks
TCP - Part I Relates to Lab 5. First module on TCP which covers packet format, data transfer, and connection management.
Transport Protocols: TCP Segments, Flow control and Connection Setup
Transport Protocols: TCP Segments, Flow control and Connection Setup
Transport Layer 9/22/2019.
TCP Connection Management
Presentation transcript:

Jennifer Rexford Fall 2014 (TTh 3:00-4:20 in CS 105) COS 561: Advanced Computer Networks Multipath TCP

Multipath Mobile user –WiFi and cellular at the same time High-end servers –Multiple Ethernet cards Data centers –Rich topologies with many paths Benefits of multipath –Higher throughput –Failover from one path to another –Seamless mobility 2

Bringing Multipath to the End Host Multiple addresses –One or more addresses at an end host –E.g., one per interface card Multiple paths –Sequence of links between sender and receiver –E.g., four-tuple of source and dest address and port Multiple subflows –Flow of TCP segments over an individual path –All associated with a single TCP connection 3

Review of TCP Protocol 4

Establishing a TCP Connection Three-way handshake to establish connection – Host A sends a SYN (open) to the host B – Host B returns a SYN acknowledgment (SYN ACK) – Host A sends an ACK to acknowledge the SYN ACK 5 SYN SYN ACK ACK Data A B Each host tells its Initial Sequence Number (ISN) to the other host.

Initial Sequence Number (ISN) Sequence number for the very first byte – E.g., Why not a de facto ISN of 0? Practical issue: reuse of port numbers – Port numbers must (eventually) get used again – … and an old packet may still be in flight – … and associated with the new connection Security issue: adversary injecting packets –Adversary may try to inject packets in a connection –… by guessing the Initial Sequence Number –… to send counterfeit packets to the receiving host –… e.g., counterfeit packets that reset the connection –Some firewalls change the ISN to further randomize 6

Step 1: A’s Initial SYN Packet 7 A’s portB’s port A’s Initial Sequence Number Acknowledgment Advertised window 20 Flags 0 ChecksumUrgent pointer Options (variable) Flags: SYN FIN RST PSH URG ACK A tells B it wants to open a connection…

Step 2: B’s SYN-ACK Packet 8 B’s portA’s port B’s Initial Sequence Number A’s ISN plus 1 Advertised window 20 Flags 0 ChecksumUrgent pointer Options (variable) Flags: SYN FIN RST PSH URG ACK B tells A it accepts, and is ready to hear the next byte… … upon receiving this packet, A can start sending data

Step 3: A’s ACK of the SYN-ACK 9 A’s portB’s port B’s ISN plus 1 Advertised window 20 Flags 0 ChecksumUrgent pointer Options (variable) Flags: SYN FIN RST PSH URG ACK A tells B it is okay to start sending Sequence number … upon receiving this packet, B can start sending data

Sequence Number 10 Host A Host B TCP Data ISN (initial sequence number) Sequence number = 1 st byte Byte 81

TCP Header 11 Source portDestination port Sequence number Acknowledgment Advertised window HdrLen Flags 0 ChecksumUrgent pointer Options (variable) Data Flags: SYN FIN RST PSH URG ACK

Receive Buffering: Flow Control Receive window size – Amount that can be sent without acknowledgment – Receiver must be able to store this amount of data Receiver tells the sender the window – Tells the sender the amount of free space left 12 Window Size Outstanding Un-ack’d data Data OK to send Data not OK to send yet Data ACK’d

TCP Header: Receive Window 13 Source portDestination port Sequence number Acknowledgment Advertised window HdrLen Flags 0 ChecksumUrgent pointer Options (variable) Data Flags: SYN FIN RST PSH URG ACK

Tearing Down the Connection Closing (each end of) the connection – Finish (FIN) to close and receive remaining bytes – And other host sends a FIN ACK to acknowledge – Reset (RST) to close and not receive remaining bytes 14 SYN SYN ACK ACK Data FIN ACK time A B FIN ACK

Extending TCP: TCP Options TCP header –Ten mandatory fields –Optional extension field (usually during handshake) Examples –Maximum segment size (MSS) –Window scaling –Support for Selected ACKs Unknown options –Ignored by receiving host Routers and TCP options –Should ignore them, passing them through unchanged 15 But, some middleboxes: (i) strip TCP options from some packets or (ii) drop packets with TCP options

Incremental Deployment Challenges 16

Keeping the Same Socket API Backwards compatibility with existing apps –Present the same socket API and expectations Establish the TCP connection in the same way –Create a socket to a single remote IP address/port –… and then add more subflows to the connection Work in all scenarios where regular TCP works –If a subflow fails, the connection should continue –… as long as some other subflow has connectivity 17

MPTCP in the Network Stack 18 From

Negotiating MTTCP Capability How do end-points know they both speak MPTCP? –During the 3-way SYN/SYN-ACK/ACK handshake What if middleboxes strip the TCP option? –On the SYN? On the SYN-ACK? 19

Negotiating MTTCP Capability Include capability on the ACK of the SYN-ACK? –What if the ACK is lost? –Carry on all subsequent packets What if the middlebox drops SYN packets with unfamiliar options? –Sender can retransmit lost SYN without the option –… and fall back to regular TCP behavior 20

Adding Subflows, Idealized How to associate a new subflow with the connection? –Use the source/destination IPs and ports How to start using the new subflow? –Simply start sending packets with new IP/port pairs –… and associate them with the existing connection How could two end-points learn about extra IP addresses for establishing new subflows? –Implicitly: one end-point establishes a new subflow, to already-known address(es) at the other end-point 21

Challenges: NAT Network Address Translators (NAT) –Problem: NAT changes the IP address and port number How to identify a connection? –Using a token established during connection set-up How to establish new subflows? –Allow one end-point to tell another about its addresses 22 NAT1 NAT2 WiFi LTE

Challenges: Security Security –Malicious parties creating subflows –To highjack (part of) the connection How to bootstrap security? –Include a random key during connection set-up –… and use it to verify authenticity of new subflows How to identify the connection on new subflows? –A token generated from the key How to authenticate the addition of subflows? –Exchanging nonces and computing message authentication codes using the keys 23

Establishing New Flows, Reality 24

Sequence Numbers Challenges across subflows –Out-of-order packets due to RTT differences –Access networks that rewrite sequence numbers –Middleboxes upset by discontinuous TCP byte stream –Need to retransmit lost packets on a different subflow Two levels of sequence numbers –Sequence numbers per subflow –Sequence numbers for the entire connection Enables –Efficient detection of loss on each subflow –Retransmission of lost packet on a different subflow 25

Sending the Second Sequence # Mapping of subflow bytes to data sequence space –To associate segments in a subflow –… with their position in the connection Encoding the information –Send the additional data in TCP options –Carry the additional data in the TCP payload Problems with using TCP payload –Flow control may keep receiver from sending a data ACK –Simply exclude the data-ACKs from flow control? –… but middleboxes won’t know to do this…  26

Sending the Second Sequence # So, encode in TCP options Encode as a mapping –Subflow sequence # to connection sequence #? But, middleboxes may rewrite subflow sequence # Instead, map as an offset –Offset from the subflow’s initial sequence number –… robust to middleboxes that shift the sequence numbers Middleboxes that modify contents (and length)? –Include checksum in the mapping –… and terminate the subflow if modifications occur 27

Receive Buffer Space Each TCP connection has a receive buffer –Buffer space to store incoming data –… until it is read by the application TCP flow control –Receiver advertises the available buffer space –… using the “receive window” Should each subflow have its own receive window? –Starvation of some subflows in a connection? –Fairness relative to other TCP connections? –Fragmentation of the available buffer space? Instead, use a common receive window 28

Use of Multipath TCP in iOS 7 Multipath TCP in iOS 7 –Primary TCP connection over WiFi –Backup TCP connection over cellular data Failover –If WiFi becomes unavailable… –… iOS 7 will use the cellular data connection For destinations controlled by Apple –E.g., Siri 29

Multipath Congestion Control Slides from Damon Wischik 30

Goal #1: Fair at Shared Bottlenecks 31 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

Use Efficient Paths 32 Each flow has a choice of a 1-hop and a 2-hop path. How should split its traffic? 12Mb/s

Use Efficient Paths 33 If each flow split its traffic 1:1... 8Mb/s 12Mb/s

Use Efficient Paths 34 If each flow split its traffic 2:1... 9Mb/s 12Mb/s

Use Efficient Paths 35 Better: Each connection on a one-hop path Each connection should send all traffic on the least- congested paths 12Mb/s

Use Efficient Paths 36 Better: Each connection on a one-hop path Each connection should send all traffic on the least- congested paths But keep some traffic on the alternate paths as a probe 12Mb/s

Discussion 37