MultiPath TCP Material from

Slides:



Advertisements
Similar presentations
REVEALING MIDDLEBOXES INTERFERENCE WITH TRACEBOX Gregory Detal*, Benjamin Hesmans*, Olivier Bonaventure*, Yves Vanaubel° and Benoit Donnet°. *Université.
Advertisements

TCP/IP Christopher Zacky. lolwut Decimal Numbers.
Multipath TCP: Overview, Design, and Use-Cases Benno Overeinder NLnet Labs.
Jennifer Rexford Fall 2014 (TTh 3:00-4:20 in CS 105) COS 561: Advanced Computer Networks Multipath.
Transmission Control Protocol (TCP)
CSEE W4140 Networking Laboratory Lecture 6: TCP and UDP Jong Yul Kim
UDP & TCP Where would we be without them!. UDP User Datagram Protocol.
1 TCP - Part I Relates to Lab 5. First module on TCP which covers packet format, data transfer, and connection management.
1 CS 4396 Computer Networks Lab Transmission Control Protocol (TCP) Part I.
Instructor: Sam Nanavaty TCP/IP protocol. Instructor: Sam Nanavaty Version – Allows for the evolution of the protocol IHL (Internet header length) – Length.
5/6/2015© 2010 Raymond P. Jefferis IIILect Transport Layer.
Transport Layer – TCP (Part1) Dr. Sanjay P. Ahuja, Ph.D. Fidelity National Financial Distinguished Professor of CIS School of Computing, UNF.
Computer Networks 2 Lecture 2 TCP – I - Transport Protocols: TCP Segments, Flow control and Connection Setup.
Copyright 1999, S.D. Personick. All Rights Reserved. Telecommunications Networking II Lecture 32 Transmission Control Protocol (TCP) Ref: Tanenbaum pp:
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
William Stallings Data and Computer Communications 7 th Edition (Selected slides used for lectures at Bina Nusantara University) Transport Layer.
CSCE 515: Computer Network Programming Chin-Tser Huang University of South Carolina.
TCP. Learning objectives Reliable Transport in TCP TCP flow and Congestion Control.
1 ELEN 602 Lecture 15 More on IP TCP. 2 byte stream Send buffer segments Receive buffer byte stream Application ACKs Transmitter Receiver TCP Streams.
Transport Layer TCP and UDP IS250 Spring 2010
Gursharan Singh Tatla Transport Layer 16-May
The Transport Layer.
6.1. Transport Control Protocol (TCP) It is the most widely used transport protocol in the world. Provides reliable end to end connection between two hosts.
Introduction to Networks CS587x Lecture 1 Department of Computer Science Iowa State University.
1 LAN Protocols (Week 3, Wednesday 9/10/2003) © Abdou Illia, Fall 2003.
TCP : Transmission Control Protocol Computer Network System Sirak Kaewjamnong.
Copyright 2002, S.D. Personick. All Rights Reserved.1 Telecommunications Networking II Topic 20 Transmission Control Protocol (TCP) Ref: Tanenbaum pp:
TCP1 Transmission Control Protocol (TCP). TCP2 Outline Transmission Control Protocol.
© Introduction to Internetworking – Alex Kooijman 04/04/2000 Introduction to internetworking Part Two.
Transmission Control Protocol
CISC856 University of Delaware
81 Sidevõrgud IRT 0020 loeng okt Avo Ots telekommunikatsiooni õppetool, TTÜ raadio- ja sidetehnika inst.
Multipath TCP ACM Queue, Volume 12 Issue 2, pp. 1-12, February 2014 Christoph Paasch and Olivier Bonaventure University College London 1.
UDP & TCP Where would we be without them!. UDP User Datagram Protocol.
TCP/IP1 Address Resolution Protocol Internet uses IP address to recognize a computer. But IP address needs to be translated to physical address (NIC).
Transmission Control Protocol (TCP) TCP Flow Control and Congestion Control CS 60008: Internet Architecture and Protocols Department of CSE, IIT Kharagpur.
11 CS716 Advanced Computer Networks By Dr. Amir Qayyum.
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.
Two Transport Protocols Available Transmission Control Protocol (TCP) User Datagram Protocol (UDP) Provides unreliable transfer Requires minimal – Overhead.
3. END-TO-END PROTOCOLS (PART 1) Rocky K. C. Chang Department of Computing The Hong Kong Polytechnic University 22 March
Advanced Computer Networks
09-Transport Layer: TCP Transport Layer.
Chapter 3 Transport Layer
DMET 602: Networks and Media Lab
Introduction to TCP/IP networking
By, Nirnimesh Ghose, Master of Science,
COMP2322 Lab 6 TCP Steven Lee Mar 29, 2017.
5. End-to-end protocols (part 1)
Transport Layer.
Process-to-Process Delivery, TCP and UDP protocols
Long-haul Transport Protocols
Process-to-Process Delivery
TCP.
© 2003, Cisco Systems, Inc. All rights reserved.
Multipath TCP Yifan Peng Oct 11, 2012
MULTIPATH TCP -Tejas Rajput -Ridip De -Shreyas S Rao.
Multi-addressed Multipath TCP
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
Figure 3-23: Transmission Control Protocol (TCP) (Study Figure)
TRANSMISSION CONTROL PROTOCOL
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
Network Architecture Models: Layered Communications
Transport Protocols: TCP Segments, Flow control and Connection Setup
Transport Layer 9/22/2019.
TCP Connection Management
Electrical Communications Systems ECE
Presentation transcript:

MultiPath TCP Material from http://multipath-tcp.org/ ECE 671 – Lecture 15 MultiPath TCP Material from http://multipath-tcp.org/

Motivation Mobile, wireless clients ECMP Data Centers ECE 671

Traditional Wireless 3G celltower IP 1.2.3.4 ECE 671

Traditional Wireless 3G celltower IP 1.2.3.4 IP 5.6.7.8 ECE 671

Traditional Wireless 3G celltower IP 1.2.3.4 IP 5.6.7.8 When IP addresses change TCP connections have to be re-established ! ECE 671

Equal Cost Multipath Packets from one TCP connection (same 5-tupel) follow same path Different flows might follow different paths ECMP implementation Packet arrival : Hash(IPsrc, IPdst, Prot, Portsrc, Portdst) mod #oif ECE 671

CLOS Data Center Network ECE 671

Design Objectives Evolution of TCP Does not require modification of applications Work in the current Internet Works everywhere were regular TCP works! ECE 671

TCP Connection Establishment Three-way handshake SYN,seq=1234,Options SYN+ACK,ack=1235,seq=5678,Options ACK,seq=1235,ack=5679 ECE 671

Data Transfer seq=1234,"abcd" ACK,ack=1238,win=4 seq=1238,"efgh" ECE 671

Connection Release seq=1234,"abcd" RST ECE 671

Connection Release seq=1234,"abcd" FIN, seq=1238 ACK,ack=1239 seq=345,"ijkl" FIN,seq=349 FIN,ack=350 ECE 671

Identification of TCP Connection Four tuple IPsource IPdest Portsource Portdest All TCP segments contain the four tuple Source port Destination port Checksum Urgent pointer THL Reserved Flags Acknowledgment number Sequence number Window Ver IHL ToS Total length TTL Protocol Flags Frag. Offset Source IP address Identification Destination IP address Payload Options IP TCP ECE 671

New Bytestream Model Client Server ABCDEF...111232 0988989 ... XYZZ D IP:2.3.4.5 IP:6.7.8.9 IP:4.5.6.7 IP:1.2.3.4 ECE 671

MultiPath TCP Protocol Control Plane How to manage TCP connection that uses several paths? Data Plane How to transport data? Congestion Control How to perform congestion control over multiple paths? ECE 671

MultiPath TCP Protocol Control Plane How to manage TCP connection that uses several paths? Data Plane How to transport data? Congestion Control How to perform congestion control over multiple paths? ECE 671

A naïve Approach SYN+ACK+Option ACK seq=123, "abc" seq=126, "def" ECE 671

There is no corresponding TCP connection Not Working! SYN+Option SYN+ACK+Option ACK seq=123, "abc" There is no corresponding TCP connection seq=126, "def" ECE 671

Design Decisions A multipath TCP connection is composed of one or more regular, combined TCP subflows Host maintains state that glues TCP subflows that compose a TCP multipath connection together Each TCP subflow is sent over a single path and appears like a regular TCP connection along this path ECE 671

Multipath TCP Architecture Application socket Application Multipath TCP Transport TCP1 TCP2 TCPn Network ... Datalink Physical A. Ford, C. Raiciu, M. Handley, S. Barre, and J. Iyengar, “Architectural guidelines for multipath TCP development", RFC6182 2011. ECE 671

Two Subflow Example SYN+Option SYN+ACK+Option ACK SYN+OtherOption SYN+ACK+OtherOption ACK ECE 671

How to combine subflows? SYN+Option SYN+ACK+Option ACK SYN+OtherOption SYN+ACK+OtherOption How to link with blue subflow ? ECE 671

A NAT could change addresses and port numbers How to link subflows? SYN, Portsrc=1234,Portdst=80+Option SYN+ACK[...] A NAT could change addresses and port numbers ACK SYN, Portsrc=1235,Portdst=80 +Option[link Portsrc=1234,Portdst=80] ECE 671

How to link subflows? SYN, Portsrc=1234,Portdst=80 +Option[Token=5678] SYN+ACK+Option[Token=6543] ACK MyToken=5678 YourToken=6543 MyToken=6543 YourToken=5678 SYN, Portsrc=1235,Portdst=80 +Option[Token=6543]

Subflow Agility Multipath TCP supports Addition of subflows Removal of subflows ECE 671

TCP Subflows Which subflows can be associated to a Multipath TCP connection ? At least one of the elements of the four-tuple needs to differ between two subflows Local IP address Remote IP address Local port Remote port ECE 671

MultiPath TCP Protocol Control Plane How to manage TCP connection that uses several paths? Data Plane How to transport data? Congestion Control How to perform congestion control over multiple paths? ECE 671

How to Transfer Data? seq=123,"a" ack=124 seq=125,"c" ack=126 seq=124,"b" ack=125 seq=126,"d" ack=127 ECE 671

In today’s Internet seq=123,"a" ack=124 seq=125,"c" ack=126 Gap in sequence numbering space Some DPI will not allow this ! seq=124,"b" ack=125 ECE 671

Multipath Data Transfer Two levels of sequence numbers ABCDEF socket socket Multipath TCP Multipath TCP Data sequence # TCP1 TCP1 TCP1 sequence # TCP2 TCP2 sequence # TCP2 ECE 671

Multipath Data Transfer Dseq=0,seq=123,"a" DAck=1,ack=124 DSeq=2, seq=124,"c" DAck=3, ack=125 DSeq=1, seq=456,"b" DAck=2,ack=457 ECE 671

How to deal with losses? Data losses over one TCP subflow Fast retransmit and timeout as in regular TCP Dseq=0,seq=123,"a" DAck=1,ack=124 Dseq=0,seq=123,"a" DAck=1,ack=124 ECE 671

Subflow failure Dseq=0,seq=123,"a" DSeq=1, seq=456,"b" DSeq=0,ack=457 DAck=2,ack=458 ECE 671

Retransmission heuristics Fast retransmit is performed on the same subflow as the original transmission Upon timeout expiration, reevaluate whether the segment could be retransmitted over another subflow Upon loss of a subflow, all the unacknowledged data are retransmitted on other subflows ECE 671

Flow Control How should the window-based flow control be performed ? Independent windows on each TCP subflow A single window that is shared among all TCP subflows ECE 671

Independent Windows Dseq=0,seq=123,"a" DAck=1,ack=124,win=0 DSeq=1, seq=456,"b" DAck=2,ack=457,win=100 Dseq=2,seq=457,"c" DAck=3,ack=458,win=100 ECE 671

Independent Windows Problem Dseq=0,seq=123,"a" DSeq=1, seq=456,"b" DAck=2,ack=457,win=0 Impossible to retransmit, window is already full on green subflow ECE 671

Single window approach Dseq=0,seq=123,"a" DAck=1,ack=124,win=10 DSeq=1, seq=456,"b" DAck=2,ack=457,win=10 Dseq=2,seq=457,"c" DAck=3,ack=458,win=10 ECE 671

Middle box impact Dseq=0,seq=123,"a" DAck=1,ack=124,win=100 DSeq=1, seq=456,"b" DAck=2,ack=457,win=100 DAck=2,ack=457,win=5 ECE 671

Multipath TCP Windows Multipath TCP maintains one window per Multipath TCP connection Window is relative to the last acked data (Data Ack) Window is shared among all subflows It's up to the implementation to decide how the window is shared Window is transmitted inside the window field of the regular TCP header If middleboxes change window field, use largest window received at MPTCP-level use received window over each subflow to cope with the flow control imposed by the middlebox ECE 671

Comparison with QUIC HOL blocking FEC Middle boxes? ECE 671