MPTCP是什么

小白 QA 2020-07-07 14:00:06 阅读(...)

MultiPath TCP(MPTCP)由互联网工程任务组(IETF)MultiPath TCP工作组研发,其目的是允许传输控制协议(TCP)连接使用多个路径来最大化信道资源使用。

MultiPathTCP(MPTCP)由互联网工程任务组(IETF)MultiPath TCP 工作组研发,其目的是允许传输控制协议(TCP)连接使用多个路径来最大化信道资源使用。

MPTCP是什么

2013 年 1 月,IEFT 发布了 RFC 6824 作为 MPTCP 的试验标准。

目的

IPv6 到来的时候,主机的多地址(Multihome)将会变得越来越普及。即使是广泛使用的 IPv4,Multihome host 也越来越多了。从数据中心 Fat-tree 网络架构下的服务器到具有 4G/Wifi/3G/Bluetooth 多连接的智能手机,都是多宿主机。但传统的 TCP 并不能同时利用这些连接资源,因此要么使用 2 层的 bond/trunk 功能,要么只能建多条 4 层 TCP 连接,而 MPTCP 则可以为用户提供透明的多路径利用能力。MPTCP 不再使用传统 TCP 协议所要求的单个信道,而是支持冗余信道资源的反向多路复用,将整个数据传输速率提高到所有可用信道的总和。与此同时,MPTCP 还与传统 TCP 协议向后兼容。

协议介绍

实现结构

MPTCP 的实现主要分为三部分:

master subsocket

Multi-path control bock(mpcb)

slave subsocket

master subsock 是一个标准的 sock 结构体用于 TCP 通信。mpcb 提供开启或关闭子通道、选择发送数据的子通道以及重组报文段的功能。slave subsocket 对应用程序并不可见,他们都是被 mpcb 管理并用于发送数据。

协议操作

MPTCP 本身的工作方式与传统 TCP 非常相似。在三路握手时,双方交换 MP_CAPABLE(见下文参数设置)选项标明双方都支持 MPTCP,之后双方便都可以主动创建子连接(subflow),并且互换密钥以防止攻击者通过子连接注入攻击。新的 subflow 可以通过带有 MP_JOIN 标志的 SYN 报文建立,也可以在任意时刻关闭。在双方有多个 subflow 时,发送者自行决定使用哪个 subflow 发送数据,也可以将包裹拆分为多块交由多个 subflow 同时发送。

由于 MPTCP 提供与 TCP 相同的套接字接口,任何使用标准的 TCP 应用程序可以应用于 MPTCP 协议,以实现同时利用多个子连接传播数据。

虽然与标准 TCP 工作方式很像,但是,MPTCP 的核心思想是定义一种在两个主机之间建立连接的方式,而不是在两个接口之间(例如标准 TCP)。在标准 TCP 中,连接应在两个 IP 地址之间建立。每个 TCP 连接由标志着源和目的地的地址和端口的四元组来标识。鉴于此限制,应用程序只能通过单个连接创建一个 TCP 连接,因此会出现两个主机之间虽然可能同时建立了多个连接,但同一时刻只有单个连接被某个应用利用,而 Multipath TCP 则允许连接同时使用多个路径。为此,MultipathTCP 在每个需要使用的路径上创建一个称为 subflow 的 TCP 连接。

详细的协议规范在 RFC 6824 中提供。

优势

MPTCP 在无线网络环境中作用尤为突出。除了信道的反向多路复用机制带来的的数据传输率的增益,当用户进入或退出覆盖范围时,链路可以被添加或丢弃,不会中断端对端 TCP 连接。这样,链路切换的问题便通过传输层中的抽象,在端点处得到解决,而没有用到网络或链路级的任何特殊处理机制。

MPTCP 也在数据中心这样的应用场景中体现出了性能优势。与使用 802.3ad 链路聚合的以太网信道绑定相反,Multipath TCP 可以跨多个接口平衡单个 TCP 连接,从而达到非常高的传输效率。

应用

实现

2013 年 7 月,MPTCP 工作组报告了五个独立的 MPTCP 实现,其中包括 Linux 内核中的参考实现。

当前可用的实现是:

Linux 内核参考实现,来自鲁汶大学;

FreeBSD(仅 IPv4),来自斯威本科技大学;

F5 Networks BIG-IP LTM;

Netscaler,来自 Citrix 公司;

Apple iOS 7,苹果公司于 2013 年 9 月 18 日发布,是 Multipath TCP 的第一个大规模商业部署;

Apple Mac OSX 10.10,苹果公司于 2014 年 10 月 16 日发布;

MPTCP 代理版本 0.9 源代码,由阿尔卡特朗讯公司于 2012 年 10 月 26 日发布。

在 2014 年 7 月,Oracle 报告称正在开发 Solaris 上的实现。

在 IETF MPTCP 小组的会议上,SungHoon Seo 宣布,KT 自 6 月中旬以来一直在部署相关商业服务,允许智能手机用户使用 MPTCP 代理服务达到 1Gbit/s。

和其他协议的比较

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 Multimedia Subsystem)架构中,会话发起协议(SIP : Session Initiation Protocol)可以支持并发使用多个联系人 IP 地址来注册一个或多个 IMS 用户代理。这允许创建多个 IMS 信令路径。在这些信令路径上,信令消息携带会话描述协议(SDP)消息传送以协商媒体流。 SDP 允许通过多个路径(重新)协商一个媒体会话的流,使得应用层多路径传输。从这个角度来看,IMS 可以提供具有流粒度和并发访问的应用层多径支持。 IETF 目前正在讨论实时传输协议(RTP)的多径扩展。多路 RTP 可以通过并发访问和移动性(通过 IMS,SDP 信令或 RTP 控制协议)提供流粒度。

其他协议和实验

在会话层,移动接入路由器项目于 2003 年通过异构技术的多个无线接入进行了实验,透明地平衡了它们之间的流量,以响应每个接入路由器的感知性能。

用于通过利用 HTTP 范围请求来启动与复制内容的多个服务器的连接的并行访问方案不等同于多路径 TCP,因为它们涉及应用层,并且限于已知大小的内容。

收藏 0个人收藏
走进科技生活方式

评论交流

泪雪默认头像 请「登录」后参与评论
  1. 加载中..