MPTCP

目录导航

简介

IPv6到来的时候,主机的多地址(Multihome)将会变得越来越普及。即使是广泛使用的IPv4,Multihome host也越来越多了。从数据中心Fat-tree网络架构下的服务器到具有Wifi/3G/Bluetooth多连接的智能手机,都是多宿主机。但传统的TCP并不能同时利用这些连接资源,因此要么使用2层的bond/trunk功能,要么只能建多条4层TCP连接,而MPTCP则可以为用户提供透明的多路径利用能力。

MPTCP的工作方式与传统TCP非常相似:在三路握手时,双方交换MP_CAPABLE选项标明双方都支持MPTCP,之后双方都可以主动创建子连接(subflow),并且还会互换密钥,这是为了防止攻击者子连接注入攻击。新的子连接可以通过带有MP_JOIN标志的SYN报文建立,子连接也可以在任意时刻关闭。在双方有多个子连接时,发送者自行决定使用哪个子连接发送数据。在整个TCP连接上维护有“接收窗口”。每条子连接也与独立的TCP连接相似,有自己的序号,但整个TCP连接还有一个全局序号,新的TCP option(DSS,或者Data Sequence Signal)可以让双方将这两种序号保持同步。如果设计实现的完善,可以将这些细节完全对用户屏蔽掉。

设计TCP的实用扩展,有一个巨大的挑战,那就是万恶的middle box,比如各种firewall,NAT box等。MPTCP的设计者可不是理论家,他们在设计了做了大量聪明的权衡,比如上面DSS,基于增量的序号映射,接口的抽象标识等。

与SCTP的对比

SCTP是一种较新的传输协议,与2000年在IETF得到标准化,它最初是为了满足不断增长的IP电话市场设计的。SCTP是一种可靠的面向消息的协议,它在端点之间提供多个流,并为多宿提供传输级支持 。然而它有2个主要缺点:1) 开发者需要修改应用层接口; 2) 当今因特网架构中的middlebox,比如NAT或防火墙,会阻止SCTP包。而这些middlebox对TCP包是开放通行的。基于这点,IETF于2011年推出Multipath TCP,基于传统TCP协议提供多路径通信。

相关百科
返回顶部
产品求购 求购