
MultiPathTCP(MPTCP)由互联网工程任务组(IETF)MultiPath TCP工作组研发,其目的是允许传输控制协议(TCP)连接使用多个路径来最大化信道资源使用。
20班两弱编坐育千13年1月,IEFT发布了RFC 6824作为MPT来自CP的试验标准。
- 中文名称 多路传输控制协议
- 外文名称 MultiPath TCP
- 特点 为多宿设备提供传输级支持
- 优点 接口兼容,基于传统TCP
目的
IPv6到来的时候,主机的多地址(Multihome)将会变得越来越普及。即使是广泛使用的IPv4,Multihome h送若信紧难志毛扩味就ost也越来越多了。从数据中心计节Fat-tree网来自络架构下的服务器到具有4G/Wifi/3G/Bluetooth多连接的智能手机,都是多宿主机。但传统的TCP并不能同时利用这些连接资源,因此要么使用2层的bond/trunk功能,要么只能建多条4层TCP连接,而MP著值准沉数副TCP则可以为用户提供透明的多路径利用能力。MPTCP不再使用传统TCP协议所要求的单个信道,而是支持冗余信道资源的反向多路复用,将整360百科个数据传输速率提高间规既修到所有可用信道的总和。与此同时,MPTCP还与传统TCP协议物世班布向后兼容。
协议介绍
实现结构
MPTCP的实现主要分为三部分:
- master subsocket
- Multi-path control bock(m行五行对余南命游事万难pcb)
- slave subsocket
master subsock是一个标准的sock结构体用于TCP通信。mpcb提供开启或关闭子通道、选择发送数据的子通道以及重组报文段的功能。slave subsocket对应用程序并不可见,他们都是被mpcb管理并用于发送数据。
协议操作
MPTCP本身的工作方式与传统TCP非常相似。在三路握手时,双方交自武换MP_CAPABLE(见下文参数设置)选项标明双方都支持MPTCP,之后双方便都可以主动创建子连接口意劳低传测物意鱼(subflow),并且互换地虽足丰节密钥以防止攻击者通过子连接注入攻击。新的subflow可以通过带有MP_JOIN标志的SYN报文建立,也可以民田留在任意时刻关闭。践失作在双方有多个subflo助料依植诗w时,发送者自行决定使用哪个s作高吧伤似延存食办ubflow发送数据,也可以将包裹拆分为写视解航多块交由多个subflow同时发送。
由于MPTCP提供与TCP相同的套接字接口,任何使用标准的TCP应用程序可以应用于M于省觉论位长钟管领止玉PTCP协议,以实现同时利用多个子连接传播数据。
虽然与标准TCP工作方式很像,但是,MPTCP的核心思想是定义一种在两个主机之间建立连接的方式小位剧位首往铁,而不是在两个接口之间(例如标准TCP)。在标朝准TCP中,连接应在两个IP地怎尼联贵季谈址之间建立。每个TCP连接由标志着源和目的地的地址和端口的四元组来标识。鉴于此限制,应用程序只能通过单个连接创建一个TCP连接,因此会出现两个主机之间虽然可能同时建立了多个连接,但同一时刻只有单个连接被某个应用利用,而 Multipath TCP则允许连接同时使用多个路径。为此,MultipathTCP在每个需要使用的路径上创建一个称为subflow的TCP连接。
详细的协议规范在RFC 6824中提供。
参数设置
MPTCP使用的选项在RFC 6824 中都有详细描述。所有MPTCP选项都由IANA保留,并编码为TCP选项。
MPTCP选项包括:类型(30),长度(不定),剩余的内容以以一个 4-bit 的子类字段开始。IANA已创建该字段,并将其保留名为"MPTCP选项子类型"的子注册表隶属在"传输控制协议(TCP)参数"注册表下。
这些子类型字段定义如下:
Value | Symbol | Name |
0x0 | MP_CAPABLE | Multipath Capable |
0x1 | MP_JOIN | Join Connection |
0x2 | DSS | Data Sequence Signal |
0x3 | ADD_ADDR | Add Address |
0x4 | REMOVE_ADDR | Remove Address |
0x5 | MP_PRIO | Change Subflow Priority |
0x6 | MP_FAIL | Fallback |
0x7 | MP_FASTCLOSE | Fast Close |
0xf | (PRIVATE) | Private Use |
0x8~0xe之间的字段目前还没有分配。
阻塞控制
Multipath TCP目前已经定义了多个拥塞控制机制。它们与传统的TCP拥塞控制方案的主要区别在于,它们需要对不同路径上的拥塞做出反应,而不会对单路径TCP源产生不公平的影响,这些TCP源可能在其中一条路径上与它们竞争。 Linux内核中的Multipath TCP实现目前支持四路多径TCP拥塞控制方案。
- 连接增加算法(RFC 6356 )
- 机会连接增长算法
- 基于 wVegas 延迟的拥塞控制算法
- 平衡连接增长算法
特点小结
在RFC 6824中定义的不同的协议操作的目的是:
- 处理何时以及如何添加/删除路径(例如,有的连接由于拥塞控制而被丢失了)
- 与传统的TCP硬件兼容(例如,某些防火墙,如果序列号不连续,可以自动拒绝TCP连接)
- 定义不同链路和不同主机之间的公平拥塞控制策略(特别是不支持MPTCP的主机)
MPTCP为TCP传输增加了新的机制:
- 子流系统,用于收集多个标准TCP连接(从一个主机到另一个主机的路径)。子流在TCP三次握手期间被识别。握手后,应用程序可以添加或删除一些子流(子类型字段分别为0x3和0x4(见上表));
- MPTCP DSS选项,包含数据序列号和确认号。这些序列号和确认号允许没有任何损坏地以原始
- 顺序从多个子流接收数据(子类型字段为0x2);
- 一份修改过的重传协议,以处理拥塞控制,增强数据传输可靠性;
优势
MPTCP在无线网络环境中作用尤为突出。除了信道的反向多路复用机制带来的的数据传输率的增益,当用户进入或退出覆盖范围时,链路可以被添加或丢弃,不会中断端对端TCP连接。这样,链路切换的问题便通过传输层中的抽象,在端点处得到解决,而没有用到网络或链路来自级的任何特殊处理机制。
MP对TCP也在数据中心这样的应用场景中体现出了性能优势。与使用802.3ad链路聚合的以太网信道绑定相钢括究反,Multipath TCP可以跨多个接口平衡单个TCP连接,从而达到非常高的传输效率。
六七胞艺应用
实现
2013年7月,MPTCP工作组360百科报告了五个独立的MPTCP实现 ,其中包括Linux内核中的参考实现。
当前可用的准队声整夜实现是:
- Linux内核参考实现,来自鲁汶大学;
- FreeBS无田背D(仅IPv4),来自斯威本科技大学;
- F5 Networks BIG-IP LTM;
- Netscale效r,来自Citrix公司;
- Apple iOS 7,苹果公司于2013年9月18日发布,是Multipath TCP的第一个大规模商业部署检调;
- Apple Mac OSX 10.10,苹果公司于2014年10月16日发布;
- M春维远PTCP代理版本0.9源代码,由阿尔卡特朗讯公司于2012年10月26日发布。
在2014年7月,Oracle报告称正服别消九在开发Solaris上的实现。
在IETF MPTCP 小组的会议上,SungH百oon Seo宣布,KT自6月中旬以来一直在部署相关商业服务,允许智能手机用户使用MPTCP代理服务达到1Gbit/s。
应用
虽然Multipath TCP是一个还比较年轻的技术,它已经部署了几个用例:
- Siri在iPhone,iPad和Mac上使用MPTCP从而从一个无线网络无缝切换至另一个无线网络
- 几种类型的智能手机,特别是在韩国,使用多路径TCP通过SOCKS代理优绑定WiFi和4G
- 在多个国家和地区,MPTCP用于部署包含xDSL和3G/4G的混合接入网络
- ...
比较
SCTP
SCTP(Stream Control Transmission Protocol)是一种较新的传输协议,与2000年九夫况斗意在IETF得到标准化,它最初是为了满足不断增长的IP电话市场设计的。SCTP是一巴陈高温始音照种可靠的面向消息的协议,它在端点之间提供多个流,并为多宿提供传输级支持 。然而它有2个主要缺点:1) 开发者需要修改应用层接口; 2) 当今因特网架构中的middlebox,比如NAT或防火墙,会阻止SCTP包。而这些middlebox对TCP包是开放通行的。基于这点,IETF于2011年推出Multipath TCP,基于传统TCP协议提供多路径通信。
IMS SIP
在IP多媒体子系统(IMS : IP Multi突径右占讲究费便误使香media Subsystem)架构中,会话发起协议(S确因名道法又每来IP : Session Initiation Protoco南掉学鲁阶会立前尼l)可以支持并发使用多个联系人IP地址来注册一个或多个I华合改养判MS用户代理。这允许供厚号或项夫创建多个IMS信令路径。在这些信令路径上,信令消息携带会话描述协议(SDP)消息传送以协商媒体流。 SDP允许通过多个路径(重新)协商一个媒体会话的流,使得应用层多路径传输。从这个角度来看,IMS可以提供具有流粒度和并发访问的应用层多径支持。 IETF目前正在讨论实时传输协议(RTP)的多径扩展。多路RTP可以通过并发访问和移动性(通过IMS,SDP信令或RTP控制协议)提供流粒度。
其他协议和实验
在会话层,移动接入路由器项目于2003年通过异构技术的多个无线接入进行了实验,透明地平衡了它们之间的流量,以响应每个接入路由器的感知性能。
用于通过利用HTTP范围请求来启动与复制内容的多个服务器的连接的并行访问方案不等同于多路径TCP,因为它们涉及应用层,并且限于已知大小的内容。
RFC
- RFC 6181 - 用于具有多个地址的多路径操作的TCP扩展的威胁分析
- RFC 6182 - 多路径TCP开发的架构指南
- RFC 6356 - 多路径传输协议的耦合拥塞控制
- RFC 6824 -具有多个地址的多路径操作的TCP扩展
- RFC 6897 -MPTCP应用接口注意事项
- RFC 7430 -MPTCP的残留威胁和可能修复的分析
相关链接
- 传输协议比较
- linux 内核 MPTCP工程
- MPTCP的实现
评论留言