Network-Assisted MPTCP IETF#98, Chicago, March 2017 M. Boucadair (Orange) C. Jacquenet (Orange) O. Bonaventure (Tessares) W. Henderickx (ALU/Nokia) R. Skog (Ericsson) D. Behaghel (OneAccess) S. Secci (Universite Pierre et Marie Curie) S. Vinapamula (Juniper) S. Seo (Korea Telecom) W. Cloetens SoftAtHome U. Meyer Vodafone LM. Contreras Telefonica B. Peirens Proximus
Documents Structure • Deployment considerations – draft-nam-mptcp-deployment-considerations • Core specification – draft-boucadair-mptcp-plain-mode • Provisioning – draft-boucadair-mptcp-dhc (customer side) – draft-boucadair-mptcp-radius (network side)
Why MCPs are Needed? • More and more MIF devices – Need to optimize the usage of available resources T T T T 1 1 1 1 H1 3 4 1 2 PLMN b PLMN x T T T T 2 2 2 2 3 4 1 2 LAN CPE UE Fixed T T T T Network 3 3 3 3 Access 3 4 1 2 #a H2 DC e.g., Cellular/WLAN e.g., Fixed/Wireless • Operators do not control the devices located in the LAN side – MPTCP support at the servers is close to null • Means for an operator to assist MIF devices are needed: MCP (Multipath Conversion Point)
MCP Design Goals • 0-RTT proxy • No overhead: Avoid the use of tunnels/encapsulation • Accommodate various deployments – Be compatible with IPv4/IPv6 – Do not impose any constraint on addressing – Do not require nor exclude the use of distinct IP prefix pools for the network-assisted MPTCP – Do not assume the MCP is located on a default forwarding path – Support both transparent and non-transparent operations – Support both single and dual proxy deployments • Avoid interfering with native MPTCP connections • Support future extensions • Allow for providers’ policies
Target Communication Segments: Single Proxy e.g., Datacenter case Multipath Multipath Client MCP MCP Server Server Client TCP MPTCP MPTCP TCP Multipath Multipath Multipath Multipath MCP MCP Client Server Client Server MPTCP MPTCP MPTCP e.g., Cellular/WLAN bonding service
(Some) Target Communication Segments: Dual Proxy Multipath CPE Multipath CPE Server dMCP Client dMCP Server uMCP Client uMCP TCP MPTCP TCP MPTCP Multipath Multipath CPE CPE Client dMCP dMCP Server Client Server uMCP uMCP MPTCP MPTCP TCP TCP MPTCP MPTCP Multipath Multipath CPE Multipath CPE dMCP dMCP Server Client Server Client uMCP uMCP MPTCP MPTCP MPTCP TCP
(Some) Target Communication Segments: Dual Proxy Multipath CPE Multipath CPE Server dMCP Client dMCP Server uMCP Client uMCP TCP MPTCP TCP MPTCP This may not be optimal given that the client does not have any visibility Multipath CPE Client dMCP on the CPE available paths Server uMCP Multipath CPE Server dMCP Client uMCP TCP MPTCP MPTCP MPTCP MPTCP TCP Policies are dMCP can orchestrate its provided to the withdrawal from the CPE connection Multipath CPE Multipath dMCP Client Server uMCP Multipath CPE dMCP Server Client uMCP MPTCP MPTCP MPTCP TCP dMCP can orchestrate its withdrawal from the connection
How MCPs are inserted in an outbound connection? • Implicit Mode : an MCP is positioned on a default forwarding path • The initial subflow must be placed over that path • Inspects all TCP traffic to determine MPTCP connections • Then, it advertises itself to a peer by means of MP_JOIN or ADD_ADDR H1 PLMN b PLMN x LAN CPE UE MCP Fixed Network Access MCP #a H2 Advertises itself using Advertises itself using MPTCP signals MPTCP signals
How MCPs are inserted in an outbound connection? • Explicit Mode : MPTCP data are sent explicitly to an MCP’s IP address – No need for traffic inspection – No adherence to the underlying routing and forwarding policies • The MCP can be located anywhere in the network • The initial subflow may be placed via any of the available network attachments • Allows for backup service Provision Provision MCP@s MCP@s H1 PLMN b PLMN x MCP MCP LAN CPE UE Fixed Network Access #a H2
How MCPs are inserted in an inbound connection? • Specific routing announcements must be injected to intercept incoming traffic – Achieved by the MCP or a router to which it is attached to – The prefix/address aggregates to be announced are deployment-specific • The address/port to use to place an incoming connection can be retrieved from a rendezvous service H1 H1 PLMN b PLMN b MCP LAN CPE LAN PLMN x CPE Fixed Fixed MCP Access Access UE H2 H2 Network MCP #a The MCP (or the router it The MCP (or the router it is attached to) must is attached to) must inject inject specific routes to specific routes to intercept intercept rghe incoming packets
Transparent MCPs • Preserves the source IP address/prefix of the CPE/UE – That is, packets sent by the MCP are sourced with an IP address/prefix that belongs to the CPE/UE – Applies for both Implicit and Explicit modes • Various configurations are supported IPv4 source CPE address Client dMCP Server uMCP cpe@1 cpe@1 i_IPv4@ LAN preservation cpe@2 … IPv6 source CPE Client dMCP Server prefix uMCP cpe@1 cpe@1 hIPv6@ LAN cpe@2 preservation … IPv6 source CPE address Client dMCP Server uMCP cpe@1 hIPv6@ preservation hIPv6@ LAN cpe@2 …
Non-transparent MCPs • Requires IP address pool(s) to be provisioned to the MCP – Packets sent to the Internet are sourced with an IP address from this pool – Both IPv4 and IPv6 pools may be configured • Several configurations can be supported – IPv4 address sharing (N:1) – 1:1 address translation – IPv6 Network Prefix Translation (NPTv6) • Straightforward for an MCP to intercept incoming packets • Applies only for the explicit mode
Encourage End-to-End MPTCP Connections • IMPLICIT Mode: An MCP does only intervene in MPTCP connections that include MP_PREFER_PROXY signal – This signal may be set by the UE or by an MCP – MP_PREFER_PROXY is included in the initial SYN (MP_CAPABLE) Multipath Multipath MCP Client Server MPTCP No MP_PREFER_PROXY • Operators want to reserve MCP resources to proxied connections
Encourage End-to-End MPTCP Connections • IMPLICIT/EXPLICIT Modes – DEFAULT : The MCP must not strip MP_CAPABLE from the SYN segments it forwards to the server • A configuration parameter to disable it for some servers • Whether an MCP must be maintained in the processing of an MPTCP connection that involve MPTCP-capable client and server is a configurable parameter – PROPOSED DEFAULT : Maintain the MCP in the communication Multipath Multipath Multipath Multipath MCP MCP Client Server Client Server MPTCP MPTCP MPTCP MCP is not involved in MCP inserts itself in the this connection connection
Encourage End-to-End MPTCP Connections • Blindly removing the MCP may be problematic – Issues with addressing: private IPv4, IPv4-only server while IPv6-only prefixes are assigned on some networks – An MPTCP-capable host does not have S is MPTCP- capable the visibility nor the control on available paths upstream second subflow PLMN b Internet S Private IPv4@ MPTCP LAN CPE MCP Fixed Access MPTCP H2 The presence of MPTCP- MP_CAPABLE in capable SYN_ACK is a trigger to remove the MCP from the connection
How 0-RTT proxying is possible? Implicit Mode • Intrinsic to the implicit mode CPE Client dMCP Server uMCP @1@2 dMCP@ h@1 rm@ src=h@ src=@1 src=@1 dst=rm@ dst=rm@ dst=rm@ src=@2 src=@1 dst=rm@ dst=rm@ dst=rm@ Dual Proxy Client dMCP Server h@1h@2 dMCP@ rm@ src=h@1 src=h@1 dst=rm@ dst=rm@ src=h@2 src=h@1 dst=rm@ dst=rm@ Single Proxy
How 0-RTT proxying is possible? Implicit Mode • Supply (forwarding) data during the 3WHS of the initial subflow – Supply at least the ultimate destination IP address [and port] by means of MP_CONVERT elements – No overhead for subsequent MPTCP messages • Which channel to use to supply data during the 3WHS? – The payload of the SYN of the initial subflow • What if data is present in the original SYN? – That data must be placed right after the MP_CONVERT IEs when the MCP creates the initial SYN of the MPTCP leg – MP_CONVERT IEs will be striped by the dMCP • How to distinguish MP_CONVERT elements from application supplied data? – Uses a 32-bit magic number to unambiguously determine this is about supplied proxy data: 0xFAA8 0xFAA8 • FAA8=11 1101010101000 • (RFC) 6824=00 1101010101000
How 0-RTT proxying is possible? Implicit Mode • How supplied data is structured? – TLV format that does not require any MPTCP code point – Multiple elements can be supplied 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 +---------------------------------------------------------------+ | Magic Number("0xFAA8 0xFAA8") | +---------------+---------------+---------------------------+-+-+ | Type | Length | Reserved |D|M| +---------------+---------------+---------------------------+-+-+ | Address (IPv4 - 4 octets / IPv6 - 16 octets) | +-------------------------------+-------------------------------+ | Port (2 octets, optional) | +-------------------------------+ More bit. Must Type 0 is defined. be set for the last source/destinatio New types can MP_CONVERT IE n IP address/port be defined in the future, if needed.
Recommend
More recommend