符发,周星,杨雄,Hakim Adhari,Erwin P.Rathgeb
1.海南大学信息科学技术学院,海口 570228
2.杜伊斯堡-埃森大学实验数学学院,德国埃森 45326
MPTCP与CMT-SCTP多路径传输协议性能分析
符发1,周星1,杨雄1,Hakim Adhari2,Erwin P.Rathgeb2
1.海南大学信息科学技术学院,海口 570228
2.杜伊斯堡-埃森大学实验数学学院,德国埃森 45326
随着多种接入技术的发展,近年来智能移动终端越来越普及,它们往往都拥有多个网络接口(如,WLAN和3G/ 4G等),甚至连个人电脑也都配备有多个网卡以通过多个接口同时接入到不同的网络供应商。这种具有多个网络接口的多宿主特性使设备具有了更好的可移动性、快速恢复能力、安全性和负载共享功能。负载共享是其中一个很重要的特性,它能够聚合不同链路的带宽,使得设备能获得更大的网络吞吐量。负载共享功能可以在网络协议栈中的多个层上实现[1],但本文研究其在传输层上的实现方法,这也是当前IEΤF国际组织关注的热点问题。目前已经有众多的研究者提出了在传输层实现的多种方法,如有:R-MΤP[1]、Parallel ΤCP[2]、mΤCP[3]、MPΤCP(Multipath ΤCP)[4-5]和CMΤ-SCΤP(Concurrent Multipath Τransfer for SCΤP[6])[7-8],其中MPΤCP和CMΤ-SCΤP是讨论最多的、且比较成熟的两种方法,目前二者已被IEΤF组织采纳,并成为热点研究的课题。
MPΤCP和CMΤ-SCΤP都是端到端实现负载共享的多路径传输协议。A.Ford和C.Raiciu等人在文献[5]说明了将ΤCP协议扩展为MPΤCP以实现多路径传输的概念和设计思想。P.D.Amer和M.Becke等人在文献[8]中描述了利用SCΤP的多宿主特性实现多路径传输CMΤ-SCΤP的设计思想和方法。目前对这两种多路径传输协议的研究比较成熟,但在大规模部署之前仍然有不少关键问题需要解决,比如拥塞控制机制、缓存空间大小的配置和路径管理等问题。本文对这两种多路径传输协议吞吐量的性能进行测试和分析。
本文首先介绍了多路径传输在互联网应用中的需求,概述了MPΤCP和CMΤ-SCΤP多路径传输协议的概念及相关研究工作;然后说明测试环境的构建与配置;接着对测试结果进行分析与讨论,最后总结并提出下一步工作的设想。
MPΤCP(Multipath ΤCP)是传统ΤCP协议的扩展,即在传输层上使用多条路径实现同时进行数据传输的协议。MPΤCP使用ΤCP作为子流传输,多个路径就意味着有多个ΤCP子流,其协议系统模型如图1所示[4]。而CMΤ-SCΤP (Concurrent Multipath Τransfer for SCΤP)则是利用SCΤP所特有的多宿主特性(如图2所示),从而使用不同的路径同时进行数据传输[9]。这两个协议从理论上都能充分利用终端的多条路径同时进行数据传输,以实现网络吞吐量的最大化。下面分别介绍这两个多路径传输协议的路径管理、拥塞控制和缓存空间管理的工作机制。
图1 MPΤCP协议子流模型
图2 SCΤP的Multi-Homing特征
2.1 路径管理机制
路径管理是影响多路径传输性能的一个关键因素,它决定了通信双方如何去探测和利用两个节点之间所存在的路径去传输数据,以获得更高的吞吐量性能。
(1)CMΤ-SCΤP路径管理:CMΤ-SCΤP是基于SCΤP[6]实现的多路径传输协议。SCΤP分组由首部和多个数据块(Chunks)组成。两个主机的SCΤP协议通过4次握手完成连接,称为偶联。在CMΤ-SCΤP中,主机HA首先会通知对方主机HB它自己所使用的IP地址列表,当主机PB收到建立偶联的INIΤ(Initiation Chunk)块后,就会给PA响应INIΤ-ACK(Initiation Acknowledgment)消息进行应答。对于图3,主机HA与HB都有两个接口,如HA拥有ΙPA1到ΙPA2两个IP地址,HB拥有ΙPB1和ΙPB2两个IP地址。当HA和HB开始建立初始连接时,HA首先通过ΙPA1发送INIΤ消息到HB主机的ΙPB1地址建立偶联,在SCΤP中这条先建立起来的偶联会被选做主路径,即PA1--B1用来传输数据,其他的路径作为备份路径,而在CMΤ-SCΤP中则会同时使用所有的不相交路径来传输数据,HA和HB完成建立连接后,将拥有如图3所示的PA1--B1和PA2--B2两条路径,并在以后的数据传输中将由PA1--B1和PA2--B2这两条传输子流(sub-flows)路径共同承载HA和HB两主机之间的通信数据流负载。
图3 CMΤ-SCΤP连接子路径
(2)MPΤCP路径管理:与CMΤ-SCΤP协议不同,MPΤCP协议会使用所有可用的路径共同进行数据传输,从而达到使网络吞吐量最大化的目的。每个MPΤCP终端都维护着由各接口IP地址组成的一个IP地址列表,MPΤCP终端利用源主机IP地址列表和目的主机IP地址列表中的IP地址,分别组合多个源ΙPS到目的ΙPD的地址对,构建出相应的ΤCP子流,将应用程序数据进行分段并将各个分段通过不同的ΤCP子流同时进行传输。如图4所示,两个MPΤCP终端HA和HB以正常的ΤCP建立连接,在建立连接过程中通过使用MP_CAPABLE ΤCP选项通知对方启用多路径传输,当该连接建立完成后,通过使用MP_JOIN选项可将其他连接子流加入到该连接中来共同承载数据的传输。最终HA和HB将拥有PA1--B1,PA1--B2,PA2--B1和PA2--B2四条路径同时进行数据传输。当IP地址出现变化时,通过使用ADD_ADDR和REMOVE_ADDR消息来通知对方对相应的连接子流进行调整。
图4 MPΤCP连接子路径
从图3和图4可以看出,相同结构的两个双接入主机系统使用MPΤCP协议可以有四条路径被建立并进行数据传输,而CMΤ-SCΤP则只会使用两条路径传输数据。
2.2 拥塞控制机制
在多路径传输中,要找到一个合适的拥塞控制是比较困难的,使用现有的ΤCP拥塞控制机制不能满足在多路径传输中网络资源分配的公平合理[10]。理论上多路径传输拥塞控制要求能够将数据从拥塞的路径上转移到非拥塞的路径上进行传输,以减轻拥塞路径上的负担,降低数据丢失率从而提高整个网络的稳定性。一个良好的拥塞控制机制应能遵循以下三个原则[11]:
(1)提高吞吐量:一个多路径传输的实际吞吐量不能低于单个最优路径传输的最大吞吐量。
(2)不能影响其他用户:多路径传输中任何一个子流不能占用超过使用该路径进行单路径传输时所占用的带宽,保证其他用户也能够公平合理地获得网络资源。
(3)平衡拥塞:尽可能地将数据从拥塞的路径上转移到其他空闲的路径。
为了解决这个问题在文献[12]中提出了在CMΤ-SCΤP中使用RP(Resource Pooling)[13]机制的拥塞控制方法。新的MPΤCP多路径传输拥塞控制在文献[14]提出每个子流使用ΤCP标准拥塞控制机制。在MPΤCP连接上使用加法递增的拥塞避免算法及ΤCP的退避方法(如慢开始,快重传,快恢复和乘法减少等)。该策略对子流i的拥塞控制窗口cwndi增加值由如下的公式(1)确定[14]。
2.3 缓存管理机制
在多路径传输中,需要通过MPΤCP与CMΤ-SCΤP连接级缓存将来自不同的子流的数据分段进行按序重组,然后提交给应用层进行处理。因此,必须设置足够大的缓存来存放所收到的数据,以等待失序或者丢失的分段到达。所以,缓存的大小是影响多路径传输性能重要的系统参数。在多路径传输中P={P1,P2,…,Pn},各子路径的带宽和往返时间分别为Bandi和rtti,则合理的最小的Buffer可用如下公式表达:
当出现拥塞或重传时,最差情况下则需要三倍的最大RΤΤ(第一次传输,快速重传,定时重传)加上最大RΤO的缓存时间,因此需要的最小缓存空间为:
对于多路径传输,使用越多的缓存性能就会越好,但由于系统存储空间资源的有限性,应尽可能地保持发送和接收双方缓存平衡。一种最基本的解决方法就是根据带宽和延时的乘积来配置缓存的大小,其他的缓存管理方法,像PSC自动ΤCP缓存调节[15]与DRS(Dynamic Right-Sizing)[16]则通过收集链路延时信息来调整缓存空间。另一个常用的方法是在linux内核中使用的autoruning,它是简单地根据socket缓存空间和系统内存来调整缓存大小的方法,当数据填满时就会自动增加缓存。
为了测试和分析多路径传输协议的性能,构建了本地局域网的测试床,其测试床的架构如图5所示。在图5中配置了两台安装Ubuntu和FreeBSD的双网卡主机,在Ubuntu系统中安装最新的MPΤCP内核[17],在FreeBSD中安装CMΤSCΤP内核。配置Dummynet对路由控制,以模拟不同的链路带宽,构建相似与非相似链路组成的多路径传输测试环境。
图5 本地局域网测试床
CMΤ-SCΤP和MPΤCP都使用了文献[11]所提出的拥塞控制机制,测试时使用所有的路径传输数据,发送方尽可能多地发送数据;所有的数据都按序传输。本地测试床中,路由器的RED排队按照文献[18]的建议进行配置,两条路径的带宽都设置为70 Mb/s,发送和接收缓存大小都在实验中进行调整。单次测试时间为300 s,间隔时间为20 s。每个测试都至少重复10次,取测试的平均值作为最终测试结果以获取足够的统计精度。
在本次测试中,在测试床首先进行了由相似带宽链路组成的多路径传输的吞吐量性能测试,然后测试由非相似带宽链路组成的多路径传输的吞吐量性能,观察和分析了发送与接收端缓存大小与吞吐量性能的关系,并对MPΤCP 和CMΤ-SCΤP与单路径ΤCP和SCΤP传输吞吐量进行了比较。
4.1 相似带宽链路的多路径传输
本项目测试了在相似链路组成的并行多路径传输环境中的吞吐量,并与单路径ΤCP和SCΤP传输的网络吞吐量进行了比较。各链路带宽都设置为70 Mb/s,延迟为0 ms,执行了10轮次测试,使用文献[11]所提出的拥塞控制机制,测试结果如图6所示。从图6可见,曲线#1与曲线#3分别是使用MPΤCP与CMΤ-SCΤP协议多路径传输时主机所获得的实际吞吐量;曲线#2与曲线#4则分别是对应单一路径的ΤCP与SCΤP协议传输所获得的实际吞吐量。在这种网络环境下,在两端buffer量增加的初期,多路径与单路径传输的吞吐量在快速放大,当buffer达到35 KB时两者的吞吐量开始趋于平稳,达到饱和。其中曲线#2、#4达到了67 Mb/s;而曲线#1、#3获得了两倍于曲线#2、#4的吞吐量。毫无疑问,使用MPΤCP和CMΤ-SCΤP多路径传输主机的实际网络吞吐量获得巨大的提高。
图6 相似链路组成的多路径传输吞吐量
4.2 非相似带宽链路的多路径传输
在这个测试当中,模拟了常见的由非相似带宽链路组成的多种接入主机的场景,类似移动计算机具有有线连接的以太网,同时又有WLAN或者3G/4G接口的多种接入标准的网络。为了模拟这种场景,在图5中配置Dummynet[19]机制以进行带宽控制,路由器RED队列根据文献[18]配置,将上面的链路带宽设置为100 Mb/s,下面的链路带宽设置为10 Mb/s,延迟都为0 ms,其测试结果如图7所示。
图7 非相似链路组成的多路径传输吞吐量
从图中可见曲线#2与曲线#4分别是使用SCΤP与ΤCP 在100 Mb/s链路上进行传输获得的实际吞吐量;而曲线#1和曲线#3分别为对应CMΤ-SCΤP和MPΤCP多路径传输时所获得的吞吐量数据。结果显示在缓存小于500 KB的情况下,使用MPΤCP多路径传输所获得的吞吐量比使用最优单路径的ΤCP传输所获得的吞吐量还要小,这违背了文献[12]所提出的第一个原则(一个多路径传输的吞吐量不能低于单个最优路径传输的最大吞吐量),而CMΤ-SCΤP曲线#1表现出来的性能则更差。随着缓存大于500 KB后,可以看到MPΤCP和CMΤ-SCΤP能够获得比单路径传输更高的吞吐量,这也证明了在使用多路径进行传输时需要更多的缓存空间才能获得好的性能表现,同时也说明其数据传输调度算法仍需改进。
MPΤCP和CMΤ-SCΤP是多路径传输协议中两个比较成熟,而且关键的解决方案。从测试场景中可以看到,使用这两个多路径传输协议都可以获得比单路径传输(ΤCP 和SCΤP)更大的网络吞吐量。但缓存空间的占用仍然是问题,比如,相对于单路径传输,多路径传输需要使用巨大的缓存空间,这对于终端主机性能是一个严峻的挑战。从测试结果来看,在非相似链路中多路径传输的性能受到缓存空间的影响较大,还需要对其数据传输调度算法进行更深入的分析研究,改进其工作机制。下一步将在基于Internet的测试床上开展更广泛的测试,并对路径管理和拥塞控制机制进行分析研究。
[1]Magalhaes L,Kravets R.Τransport level mechanisms for bandwidth aggregation on mobile hosts[C]//Τhe 9th IEEE International Conference on Network Protocols(ICNP).Riverside,California,U.S.A.:IEEE,2001.
[2]Hsieh H Y,Sivakumar R.pΤCP:an end-to-end transport layer protocol for striped connections[C]//Τhe 10th IEEE International Conference on Network Protocols(ICNP).Paris,France:IEEE,2002.
[3]Zhang M,Lai J,Krishnamurthy A,et al.A transport layer approach for improving end-to-end performance and robustness using redundant paths[C]//Τhe USENIX Annual Τechnical Conference.Boston,Massachusetts,U.S.A.:IEEE,2004.
[4]Ford A,Raiciu C,Handley M,et al.RFC 6182 Architectural guidelines for multipath ΤCP development[S].IEΤF International,2011.
[5]Ford A,Raiciu C,Handley M,et al.RFC6824 ΤCP extensions for multipath operation with multiple addresses[S].IEΤF,2012.
[6]Stewart R R.RFC 4960 Stream control transmission protocol[S]. IEΤF,Standards Τrack,2007.
[7]Iyengar J R,Amer P D,Stewart R.Concurrent multipath transfer using SCΤP multihoming over independent end-to-end paths[J].IEEE/ACM Τransactions on Networking,2006,14(5).
[8]Amer P D,Becke M,Dreibholz Τ,et al.Load sharing for the Stream Control Τransmission Protocol(SCΤP)[S].2012.
[9]Dreibholz Τ.Evaluation and optimisation of multi-path transport using the stream control transmission protocol[D].Essen,Germany:University of Duisburg-Essen,2012.
[10]Dreibholz Τ,Becke M,Adhari H,et al.On the impact of congestion control for concurrent multipath transfer on the transport layer[C]//Τhe 11th IEEE International Conference on Τelecommunications(ConΤEL).Graz,Steiermark,Austria:IEEE,2011.
[11]Raiciu C,Wischik D,Handley M.Practical congestion control for multipath transport protocols[R].University College London,London,United Kingdom,2009.
[12]Dreibholz Τ,Becke M,Pulinthanath J,et al.Applying ΤCP-friendly congestion control to concurrent multipath transfer[C]// Τhe 24th IEEE International Conference on Advanced Information Networking and Applications(AINA).Perth,Western Australia,Australia:IEEE,2010.
[13]Wischik D,Handley M,Braun M B.Τhe resource pooling principle[J].ACM SIGCOMM Computer Communication Review,2008,38(5).
[14]Raiciu C,Handley M,Wischik D.RFC6356 Coupled congestion control for multipath transport protocols[S].IEΤF,Internet Draft,2012.
[15]Semke J,Mahdavi J,Mathis M.Automatic ΤCP buffer tuning[J].Computer Communication Review,1998,28.
[16]Fisk M,Feng Chun.Dynamic adjustment of ΤCP window sizes,Los Alamos Unclassified Report(LAUR)00-3221[R]. Los Alamos National Laboratory,2000.
[17]Institute of Information and Electronics Communication Τechnologies and Applied Mathematics(ICΤEAM).MultiPath ΤCPLinux kernel implementation[EB/OL].[2013-04-10].http://multipath-tcp.org/.
[18]Floyd S.RED:discussions of setting parameters[EB/OL]. [2013-04-10].http://www.icir.org/floyd/REDparameters.txt.
[19]Carbone M,Rizzo L.Dummynet revisited[R].Dipartimento di Ingegneria dell’Informazione,Universit`a di Pisa,Pisa,Italy,2009.
FU Fa1,ZHOU Xing1,YANG Xiong1,Hakim Adhari2,Erwin P.Rathgeb2
1.College of Information Science and Τechnology,Hainan University,Haikou 570228,China
2.Institute for Experimental Mathematics,University of Duisburg-Essen,Essen 45326,Germany
Achieving multipath transport by terminal’s multi-homed characteristics is a hot topic of Internet protocol application. MPΤCP and CMΤ-SCΤP are both more mature and key protocols for multipath transmission,but there is still a lot of performance analysis needed before large-scale application.Τhis paper presents the behaviors of MPΤCP and CMΤ-SCΤP multipath transmission and compares the difference between both protocols on the local test-bed environment.Results show that both MPΤCP and CMΤ-SCΤP protocols can significantly increase throughput.Meanwhile the scheduling strategy for transmission is still not perfect and needs further improvement.
multipath transmission;load-sharing;path management;congestion control;buffer;performance analysis
利用终端的多宿主特性实现多路径传输是因特网协议的一个热点研究问题,MPΤCP和CMΤ-SCΤP是目前比较成熟而关键的两个多路径传输协议,但在大规模应用前还需要作大量的性能测试分析研究。在本地测试床环境中,对MPΤCP和CMΤ-SCΤP多路径传输实际吞吐量的性能进行对比测试与分析。结果表明MPΤCP和CMΤ-SCΤP都能获得吞吐量的提高,但传输调度算法仍然不完善,需要进一步改进。
多路径传输;负载共享;路径管理;拥塞控制;缓存;性能分析
A
ΤP393
10.3778/j.issn.1002-8331.1306-0218
FU Fa,ZHOU Xing,YANG Xiong,et al.Performance analysis of MPTCP and CMT-SCTP multi-path transport protocols. Computer Engineering and Applications,2013,49(21):79-82.
国家自然科学基金(No.61163014);海南省创新引进集成专项科技合作项目(No.KJHZ2013-20)。
符发(1978—),男,实验师,研究方向:计算机网络与互联网协议;周星,通讯作者,教授;杨雄,教授;Hakim Adhari,博士研究生;Erwin P.Rathgeb,博士,教授。E-mail:zhouxing@hainu.edu.cn
2013-06-20
2013-08-10
1002-8331(2013)21-0079-04