Multi-addressed Multipath TCP

Slides:



Advertisements
Similar presentations
MPTCP Application Considerations draft-scharf-mptcp-api-01 Michael Scharf Alan Ford IETF 77, March 2010.
Advertisements

Draft-ietf-mptcp-api-01 Michael Scharf, Alan Ford March 31, 2011.
WELCOME! Multipath TCP Implementors Workshop Saturday 24 th July Maastricht Philip Eardley MPTCP WG Co-chair.
TCP--Revisited. Background How to effectively share the network? – Goal: Fairness and vague notion of equality Ideal: If N connections, each should get.
IPv4 - The Internet Protocol Version 4
Jennifer Rexford Fall 2014 (TTh 3:00-4:20 in CS 105) COS 561: Advanced Computer Networks Multipath.
© 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)
TDTS21 Advanced Networking
1 IP - The Internet Protocol Relates to Lab 2. A module on the Internet Protocol.
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.
Instructor: Sam Nanavaty TCP/IP protocol. Instructor: Sam Nanavaty Version – Allows for the evolution of the protocol IHL (Internet header length) – Length.
10. UDP/TCP WWW page: Text book: Mastering Networks (Chapter 10) Network IP protocol is routes the data.
Chapter 5 Transport Layer: UDP, TCP Professor Rick Han University of Colorado at Boulder
1 Internet Networking Spring 2003 Tutorial 11 Explicit Congestion Notification (RFC 3168)
Stream Control Transmission Protocol 網路前瞻技術實驗室 陳旻槿.
1 CCNA 2 v3.1 Module Intermediate TCP/IP CCNA 2 Module 10.
WXES2106 Network Technology Semester /2005 Chapter 8 Intermediate TCP CCNA2: Module 10.
Routing of Outgoing Packets with MP-TCP draft-handley-mptcp-routing-00 Mark Handley Costin Raiciu Marcelo Bagnulo.
MPTCP Proxy Support Costin Raiciu. Explicit Proxies The MPTCP host knows about the proxy (e.g. via DHCP) All connections are made to the proxy – Signaling.
1 Semester 2 Module 10 Intermediate TCP/IP Yuda college of business James Chen
Multipath TCP Signaling Options or Payload? Costin Raiciu
TCP : Transmission Control Protocol Computer Network System Sirak Kaewjamnong.
TCP1 Transmission Control Protocol (TCP). TCP2 Outline Transmission Control Protocol.
MPTCP Proxies & Anchors Georg Hampel & Thierry Klein Bell Labs – Alcatel-Lucent draft_hampel_mptcp_proxies_anchors_00.
The Internet Protocol Dr. Adil Yousif. 2  IP (Internet Protocol) is a Network Layer Protocol. Orientation.
Multipath TCP Update Philip Eardley, MPTCP WG Co-Chair tsvarea 1 st August, IETF-87, Berlin 1.
SHIM6 Protocol Drafts Overview Geoff Huston, Marcelo Bagnulo, Erik Nordmark.
CISC856 University of Delaware
MultiPath TCP Proxy Presented by: Yongzhi Zhuang, Wei Zeng, Jianlei Zhang.
CS 4396 Computer Networks Lab
Multipath TCP Security Issues: A Request for Assistance Alan Ford (MPTCP WG)
An Update on Multihoming in IPv6 Report on IETF Activity RIPE IPv6 Working Group 22 Sept 2004 RIPE 49 Geoff Huston, APNIC.
Multipath TCP ACM Queue, Volume 12 Issue 2, pp. 1-12, February 2014 Christoph Paasch and Olivier Bonaventure University College London 1.
Multipath TCP Signaling Options or Payload? Costin Raiciu
MPTCP Protocol draft-ietf-mptcp-multiaddressed-02 Update and Open Issues Alan Ford IETF79 – Beijing 1.
MPTCP Protocol – Updates draft-ietf-mptcp-multiaddressed-03 Alan Ford, Costin Raiciu, Mark Handley, Olivier Bonaventure.
UDP & TCP Where would we be without them!. UDP User Datagram Protocol.
MPTCP Threat analysis draft-bagnulo-mptcp-threat-00 marcelo bagnulo IETF76 – MPTCP WG.
© 2002, Cisco Systems, Inc. All rights reserved..
Multi-addressed Multipath TCP draft-ford-mptcp-multiaddressed-02 Alan Ford Costin Raiciu, Mark Handley.
11 CS716 Advanced Computer Networks By Dr. Amir Qayyum.
MPTCP Proxy MPTCP Client MPTCP Proxy Server.
3. END-TO-END PROTOCOLS (PART 1) Rocky K. C. Chang Department of Computing The Hong Kong Polytechnic University 22 March
Chapter 9: Transport Layer
TCP Selective Acknowledgement Options
Instructor Materials Chapter 9: Transport Layer
By, Nirnimesh Ghose, Master of Science,
Internet Networking recitation #9
IP - The Internet Protocol
MPTCP – Multipath TCP WG Meeting Berlin, IETF-87, 30th July 2013
5. End-to-end protocols (part 1)
ECE 4605 Edgar Duskin Ifiok Udowana
Long-haul Transport Protocols
IP - The Internet Protocol
Multipath TCP Yifan Peng Oct 11, 2012
MultiPath TCP Material from
TCP - Part I Relates to Lab 5. First module on TCP which covers packet format, data transfer, and connection management.
IP - The Internet Protocol
TCP Connection Establishment and Termination
COS 561: Advanced Computer Networks
TCP Connection Establishment and Termination
Quick-Start for TCP and IP
IP - The Internet Protocol
Quick-Start for TCP and IP
Internet Networking recitation #10
IP - The Internet Protocol
IP - The Internet Protocol
Transport Layer 9/22/2019.
Presentation transcript:

Multi-addressed Multipath TCP draft-ford-mptcp-multiaddressed-02 Alan Ford <alan.ford@roke.co.uk> Costin Raiciu, Mark Handley

MPTCP: Where are we now? Work has been ongoing for ~2 years Three implementations and two simulators This talk represents our current understanding of the most appropriate design We welcome broader feedback in order to make this the protocol the best it can be

Objectives An easy-to-deploy Multipath TCP solution Our constraints: Assume that one or both endpoints are multihomed and multi-addressed Backwards-compatible with current, regular TCP External: function through middleboxes Applications: provide same service to regular TCP Fall-back: to regular TCP in case of failure

Basic Scenario: Throughput Address A1 9 8 6 4 Address B1 Source A Destination B 9 8 7 6 5 4 MPTCP Subflows 9 8 7 6 5 4 7 5 Address A2 Address B2

Basic Scenario: Resilience 7 5 9 8 6 4 Source Destination 9 8 7 6 5 4 9 8 7 6 5 4 7 5

MPTCP Operation An MPTCP Connection between endpoints is formed of one or more MPTCP Subflows Subflows will be created between different IP address pairs TCP Options used in subflows: For a new subflow to join an existing connection For data-level sequence numbering For closing connections

MPTCP Example Host A Host B Address A1 Address A2 Address B1 Initial connection setup Additional subflow setup

Session Initialisation Standard TCP SYN/ACK exchange with additional MPTCP option: Sender’s token to identify this connection Initial data-level sequence number Host A Host B SYN + TokA + DSN SYN/ACK + TokB + DSN

“Multipath Capable” Option To declare a sender’s token for this connection in the first SYN/ACK exchange 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +---------------+---------------+-------------------------------+ | Kind=OPT_MPC | Length = 7 |(resvd)|Version| Sender Token : : Sender Token (continued: 4 octets total) | +-----------------------------------------------+

Starting a New Subflow One or both of local and remote IP addresses will be new TCP option contains: Receiver’s token to identify this connection Sender’s identifier for source address Host A Host B SYN + TokB + Address ID SYN/ACK + TokA + Address ID

“Join Connection” Option Added to SYN containing the receiver’s identifying token for the connection the sender wishes to join Also contains sender’s identifier for their source address 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +---------------+---------------+-------------------------------+ | Kind=OPT_JOIN | Length = 7 |Receiver Token (4 octets total): +---------------+---------------+----------------+--------------+ : Receiver Token (continued) | Address ID | +-------------------------------+----------------+

Address Knowledge Exchange But how to know a remote end’s addresses? Add Address is signalled in TCP options on existing subflow, containing: Address (v4 or v6 depending on IPVer) Sender’s unique Address Identifier Can be correlated with that seen in SYN Remove address also possible when interface is unexpectedly lost Removed by Address ID, to permit NATs

Adding Addresses Add Address: declares a local address to a remote endpoint, with local identifier 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +---------------+---------------+---------------+-------+-------+ | Kind=OPT_ADDR | Length | Address ID | IPVer |(resvd)| | Address (IPv4 - 4 octets) | +---------------------------------------------------------------+ ( ... further ID/Version/Address fields as required ... ) Remote endpoint can attempt to set up new subflow(s) to this address

Removing Addresses Remove Address: declares a previously announced address as no longer valid and to be removed from connection 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +---------------+---------------+---------------+ |Kind=OPT_REMADR| Length = 2+n | Address ID | ... Will trigger receiving endpoint to close all subflows using that address

Need for Address Signalling Many hosts will have firewalls/NATs that permit connections only in one direction Therefore, signalling addresses allows a receiver to open a connection in the opposite direction, e.g. Host A Host B Address A1 Address B1 Address B2 Initial connection setup Try subflow setup Signal Address B2 Setup new subflow

General Operation MPTCP connection is formed of multiple TCP subflows, with coupled congestion control and shared receive buffer Subflows have contiguous sequence numbering Data is reassembled by connection-level sequence numbering MPTCP can retransmit failures on original or new path (but if using a new path, must also retransmit on original for continuity)

Data Sequence Numbering Data Sequence Mapping option declares: Subflow sequence number mapped to data-level sequence number Number of bytes for which this mapping is valid Data sequence number can be 64-bits 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +---------------+---------------+------------------------------+ | Kind=OPT_DSN | Length | Data Sequence Number ... : : ... ( (length-8) octets ) | Data-level Length (2 octets) | +-------------------------------+------------------------------+ | Subflow Sequence Number (4 octets) |

More on Data Sequence Mapping The Data Sequence Mapping need not be sent in every packet, and can be omitted when the sender is sure the receiver will understand (e.g. multiple packets covered by same length; or lone subflow) An initial data sequence number should be set at the first handshake

Closing Connection Subflows operate independently so can be closed with a FIN as normal If an interface is unexpectedly lost, the Remove Address option can initiate a rapid cleanup from both endpoints The DATA FIN option (on top of a TCP-level FIN) indicates the end of the connection RST has subflow-only relevance

Security and Threats Aim for baseline: no worse than current TCP Some security considerations so far: Use of existing TCP for subflows minimises new threats from targeting third party addresses Hijacking could be plausible with token guessing Additional security with e.g. ensuring correlation with signals on existing subflows This would also reduce issues with time-shifted attacks

Open Issues Is proposed handshake mechanism sufficient? Receiver policy control – how? Do we want Subflow IDs or Address IDs? Do we need any data-level ACKs? Do we want Connection IDs given in every packet? (Possibility of aiding IDS etc?)

Next Steps Is this specification ready to become a WG document?