APP下载

MPTCP 动态预留数据调度策略研究

2013-09-20庆,邹然,刘

关键词:条子接收端个数

胡 庆,邹 然,刘 鹏

(重庆邮电大学软件技术中心,重庆 400065)

0 引言

多路径传输协议(multipath transmission control protocol,MPTCP)以资源共享的方式,把数据流分发到多条链路上来提高网络带宽。其思想最早是由Christian Huitema于1995 年在一篇 IETF 的 daft[1]中提出。2009年,IETF为此专门成立了MPTCP工作组,主要致力解决MPTCP体系结构、拥塞控制、路由、API、安全方面[3-5]的问题。在2011年3月形成rfc文案[2]。本文主要针对包调度功能进行研究并提出一种改进算法。

W-SCTP(westwood stream control transmission protocol)利用一次RTT(round trip time)中发送的所有数据建立算法估计带宽[7],但是不能很好地考虑传输时延的影响;CMT(concurrent multipath transfer)协议中提出流与路径绑定策略[8],但是妨碍了与标准SCTP(stream control transmission protocol)和现有CMT传输的兼容性。在2009年,针对MPTCP提出的数据调度方案有2种:①数据从应用层到达后马上分配给各个路径传输;②利用各个子路径的拥塞窗口数来分配数据给可用路径。这2种方法都非常简单,对于解决链路拥塞和缓冲拥塞几乎没有太大作用。2011年,在MPTCP的rfc文案[2]中提出利用数据序号映射结合数据段在不同子路径中的链接级序号编号,数据以轮询的方式分配给每条子路径进行传输。然而,以上调度方案都处于起草阶段,只是提出了调度思想,现在MPTCP协议中大多还是采用的轮询方式对数据进行分配。

在本文中,笔者提出一种基于MPTCP的数据调度算法,利用对子路延迟时间(round trip time,RTT)和接收端成功接收到的数据包个数为参数,对传输性能进行估计,利用这些参数以动态预留方式进行调度,减少接收端缓存压力,提高MPTCP的传输速率和带宽利用率。

1 数据调度算法设计

在这部分中,首先,笔者分析了影响MPTCP协议传输性能的因子:RTT、丢包率、接收窗口大小等,当中RTT尤其重要,它是链路性能的主要参数之一;然后,笔者综合考虑每条子路径接收端成功接收到的数据包个数,针对MPTCP提出了一种新的数据调度算法,即动态预留数据调度(dynamic resource reservation data scheduling,DR-RS)算法。

1.1 MPTCP传输性能分析

在MPTCP协议中,由于各条子路径性能的差异,不能使得各子路径达到最佳性能,将引起传输吞吐量下降,即MPTCP的适应性问题。各条子路径可能具有不同的特点,如带宽、延迟和错误率等,当子路径之间的性能差异较大时,会使数据包不能按序到达接收端,引起数据包的乱序,其问题的根源在于MPTCP协议的数据流控制机制,当接收端的接收窗口小于发送端的拥塞窗口时,发送端发送数据包的速率受接收窗口大小的影响。当接收窗口大小为0时,发送端将停止发送数据。

MPTCP协议的传输性能与路径相关系数、丢包率、延迟接收窗口大小相关。首先,影响MPTCP协议整体性能的关键因素是路径的RTT,它是路径传输速度的重要体现。其次,丢包率也是影响MPTCP协议整体性能的原因,丢包主要分为2种情况:一是丢包引起快重传,可能会降低另一条子路径的速率;二是丢包引起超时,另一条子路径需要等待丢失包重新传输并达到接收端。最后,接收窗口大小也是造成适应性问题的因素。MPTCP协议中接收窗口分为MPTCP总接收窗口和子路径TCP的接收窗口,前者会影响其整体性能,它是所有已接收到的数据包最终的缓存,发生适应性问题主要是由于总接收窗口的缓存空间被占满;后者会影响该子路径的整体性能,当总接收窗口被占满后,子路径中发送的数据会被缓存在子路径的缓存中,所以,子路径TCP接收窗口的大小也会影响MPTCP的整体性能。

1.2 DR-RS算法的设计

在MPTCP中建立一种有效调度机制是十分必要的,笔者提出一种针对MPTCP的数据调度的DRRS算法。该算法首先预测每条子路径接收端成功接收到的数据包个数,结合该条子路径的性能参数RTT,对所有子路径进行排序并预留空间,依次分配数据包传输。以下为该算法的具体内容。

1)当需要为各子路径分配数据包时,首先分别估算出每条子路径接收端成功收到的数据包个数

2)将各子路径按照比例:N/RTT(成功传包数与延迟的比值)为参数进行排序,并分别计算出各子路径发送窗口剩余空间:Cwndi。

3)以Ni/RTTi最小的子路径作为基准路径,在每条子路径的接收缓存中依次分配预留的空间大小。数据包的分配会按Ni/RTTi由大到小的顺序分配给各子路径。

算法的伪代码如下。

其中,R为子路径的RTT;E为子路成功传包数量;S为预留空间;B为最小传输包的大小;F为两路径的关联系数。

1.3 DR-RS算法与现有MPTCP算法对比分析

2011年,在MPTCP的rfc文案[2]中提出利用路径管理原件中提供的可用路径,数据包按照轮询的方式,及RRS(round robin scheduling)数据调度策略,依次将请求调度的数据包按照公式i=(i+1)mod n进行调度。该算法的优点是简洁易实现。但它并没有考虑各条子路径之间的性能差异,是一种无状态调度,所以,它无法满足多路径并行传输的适应性,降低了整体链路的传输性能。

笔者提出的DR-RS算法,对在接收端成功接收到数据包的个数进行预测,结合性能参数RTT来进行数据调度,是一种动态预留算法,它满足了MPTCP的适应性,提高了整理吞吐量及整体链路的性能。

2 仿真与性能分析

采用NS-3仿真工具对DS-RS算法进行性能评估。方案如下:假定主机H1,H2间已建立多路径传输通道,主机H1需要同时利用各条子路径给主机H2传输一个 FTP数据流,主机之间同时使用MPTCP中现有RRS数据调度方案和改进后的DRRS数据调度方案持续传输同样的数据流。设定2条子路径间路径延迟比例为1∶4和1∶6,拓扑采样时间设为30 s。

图1为2种方案在不同时延下,接收端成功接收到的数据包个数的对比,图1中RRS 1-6和RRS 1-4表示RRS中子路径延迟的比率分别设置为1∶6和1∶4时的情况,DR-RS算法中同理。DR-RS中子路径接收端的成功收包数更高于RRS机制中子路径接收端的成功收包数。

图1 不同机制中成功传包数量Fig.1 Number of packets delivered by different mechanisms’settings

图2为2种方案的拥塞窗口数Cwnd对比,DRRS估计网络中端到端间的成功传包数和延迟,使得包在子路径上有效传输,因此,拥塞窗口更加稳定,增长速度更快且更高。

图2 延时比率为1∶4时的拥塞窗口增长情况Fig.2 Cwndgrowth pattern with delay ratio 1∶4

另一方面,RRS方案下的拥塞窗口增长稳定性并不理想。因为传播延迟在path-2(RRS Path2)上比在path-1(RRS Path1)大,path-2上的包传输比path-1上的包传输时间更长,同时传输的包path-2比path-1后抵达。

在图3对比了2种方案的吞吐量。在DR-RS中,吞吐量更高;另一方面,RRS方法中由于失序数据从而发生快重传,使得拥塞窗口一直很小,导致堵塞,降低了吞吐量。

图3 延时比率为1∶4时的吞吐量情况Fig.3 Throughput achieved with path delay ratio 1∶4

3 结束语

本文分析了在MPTCP中影响数据传输质量的因素,在MPTCP现有数据调度机制上提出综合考虑子路径的往返时延和接收端成功接收到的数据包个数的DR-RS算法。通过使用NS-3进行验证,对比结果表明,提出的调度机制减少了MPTCP中的重传数,提高了吞吐量。下一步深入MPTCP数据调度的研究,尝试建立一个完整的数据调度方案,从而达到更好的负载均衡。

[1]HUITEMA C. Multi-homed TCP draft-huitema-multihomed-0 [S].[s.l.]:IETF,1995.

[2]FORD A,RAICIU C,HANDLEY M,et al.Architectural Guidelines for Multi-path TCP Development[S].[s.l.]:RFC 6182,2011.

[3]FORD A,RAICIU C.Draft-ietf-mptcp-multiaddressed-07[S].[s.l.]:IETF,2012.

[4]RAICIU C,HANDLEY M,WISCHIK D,et al,Draftietf-mptcp-congestion-07[S].[s.l.]:IETF,2011.

[5]BAGNULO M.Threat Analysis for TCP Extensions for Multipath Operation with Multiple Addresses[S].[s.l.]:RFC8181,2011.3

[6]AHMED Abd El Al,TAREK Saadawi,LEE Myung.Bandwidth Aggregation in Stream Control Transmission Protocol[EB/OL].(2004-12-12)[2012-06-21].http://libra.msra.cn/Publication/2200111/bandwidth-aggregation-in-stream-control-transmission-protocol.

[7]CASETTI C,GAIOTTO W.Westwood SCTCP:load balancing over multipaths using bandwidth-aware source scheduling[EB/OL].(2004-12-24)[2012-06-21].http://www.researchgate.net/publication/4127846_Westwood_SCTP_load_balancing_over_multipaths_using_bandwidth-aware_source_scheduling.

[8]吴晓丹,秦亚娟.流与路径绑定的CMT研究与实现[D].北京:北京交通大学,2008.WU Xiaodan,Tai Yajuan.Research and Implementation of flow path bound under CMT[D].Beijing:Beijing Jiaotong University.2008.

猜你喜欢

条子接收端个数
条子泥:只此湿地间 万物皆可爱
基于扰动观察法的光通信接收端优化策略
怎样数出小正方体的个数
顶管接收端脱壳及混凝土浇筑关键技术
基于多接收线圈的无线电能传输系统优化研究
等腰三角形个数探索
怎样数出小木块的个数
相亲漫画二则
酸槽内钢带位置测量传感器
怎样数出小正方体的个数