基于MPTCP的自适应拥塞控制算法

时间:2022-08-17 05:56:03

基于MPTCP的自适应拥塞控制算法

针对传统并行多路径传输中子流间传输时延差较大的问题,提出了一种基于mptcp自适应拥塞控制算法ACW-MPTCP,通过动态调整每一条TCP流的拥塞控制窗口大小的方法,减小多路径传输中子流间的传输时间差。仿真实验结果表明,该算法能够有效地提高系统传输的有效吞吐量,并减小汇点所需的接收缓存大小。

多路径传输协议 拥塞控制 有效吞吐量 接收缓存

An Adaptive Congestion Control Algorithm Based on MPTCP

MA Kuang1,2, HE Jia-ming1,2, ZHENG Zi-wei1, ZENG Xing-bin1, FAN Ling-hui3

(1. Institute of Communication, Ningbo University, Ningbo 315211, China;

2. Key Laboratory of Mobile Internet Application Technology of Zhejiang Province, Ningbo 315211, China;

3. Ningbo SunRun ELEC. &INFOR ST&D Co., Ltd., Ningbo 315211, China)

Considering the transmission delay is too large among subpaths in the traditional parallel multipath transmission, a MPTCP (Multipath Transport Control Protocol) based adaptive congestion control algorithm ACW-MPTCP is proposed, by dynamically adjusting the congestion control window of every TCP flow ,the transmission delay among subpaths in multipath transmission is decreased . By means of simulation, the results prove that the transmission throughput can be effectively improved as well as the receive buffer requirement of the point can be reduced .

MPTCP congestion control effective throughput receive buffer

1 引言

近年来,市场上的主流移动设备已经配备多个无线接口。多数的无线电移动设备通常都至少有一个内置的无线广域网(WWAN)接口,如高速分组接入(HSPA),以及一个短程的无线网络接口,如Wi-Fi和蓝牙。这提供了一个很好的机会去研究多路径传输的接口,以便聚合多个无线链路的可用带宽,并进一步提高带宽密集型应用程序的服务质量(QoS),如视频流和视频会议。

传输控制协议(TCP)是传输层的标准协议。然而,TCP应用到多路径时会发生数据包的乱序问题。传统的TCP,如TCP Reno和SACK,当从汇点接收到三个重复的ACK时源节点的拥塞窗口自动减半,这意味着丢包的发生。在多路径传输中,由于每条路径的往返时间(RTT)不同,很容易使得较低序列号的报文段在较慢的路径上发送,而较高序列号的报文段在较快的路径上发送。这将会导致汇点接收到乱序的数据包,而汇点则误以为发生丢包并且发送重复的ACK。为此,源节点将发送端的拥塞窗口减半,进入快速重传与恢复阶段,源节点的发送窗口被错误地设置成较小的值[1],大大降低了TCP的传输效率。

MPTCP(Multipath Transport Control Protocol,多路径传输控制协议)在2011年由互联网工程任务组(IETF)标准化[2]。图1为MPTCP在无线网络中的一个典型的场景,其中MPTCP被应用在多宿主移动设备上,实现多条路径同时传输数据包以及可用带宽的共同管理。尽管MPTCP提高了上层的有效吞吐量,但是它仍然没有解决数据包的乱序问题。而吞吐量表示的是整个网络成功接收到的数据包的总量,它所反映的是实际应用中单位时间内可以被接收者直接利用的有效吞吐量。因此,增加传输层按序接收的数据包的数量,也就增加了有效吞吐量。最近一些研究工作大都是采用网络编码[3]以及选择在较快的路径上重传数据包[4]来提高MPTCP有效吞吐量。然而,这些研究仅仅在较长期内提高了有效吞吐量。事实上,以协议栈最小的变化来获得稳定的有效吞吐量,才能够为实时应用提供更好的服务质量。

图1 无线网络中多路径传输场景

研究发现,当两条传输路径的端到端延迟无限接近的时候,MPTCP有效吞吐量接近最优,多条路径传输时多条子流间的传输时延差间接决定MPTCP的有效吞吐量大小。基于此结论,本文提出一种基于拥塞窗口自适应的MPTCP算法——ACW-MPTCP。在该算法中,MPTCP源节点动态调整每个子流的TCP拥塞窗口,保证每条路径端到端的延迟差较小。

2 MPTCP的基本原理

如图2所示,MPTCP把传输层分成两个子层,即MPTCP层与TCP子流层,由此MPTCP可以很容易地被应用到当前的网络堆栈中。TCP子流各自在不同的路径上运作,保证MPTCP可以使用传统TCP的大部分功能。MPTCP中TCP流与原有TCP的主要区别在于每条路径上的拥塞控制被委托给MPTCP的子层[5]。尽管每条TCP流在源端获取一个拥塞控制窗口,而每个拥塞控制窗口是由一个Coupled拥塞控制算法进行更新,以均衡链路负载在不损害原有的TCP的前提下提高网络传输的吞吐量。

图2 MPTCP的层次结构

MPTCP子层负责多条路径上数据包调度问题,例如汇点接收到的数据包重排序、源端在多条路径上调度数据包以及平衡每条TCP流的拥塞窗口。数据包重排序是MPTCP的另一个主要功能,由于每一条TCP流维护一个独立的序列号空间,汇点可能会收到两个具有相同序列号的数据包。此外,每条路径循环往返时间的不同,导致了汇点接收到的数据包乱序,源节点有必要告诉汇点如何重新组合所接收到的数据包。针对此问题,MPTCP采用数据编号分层的两级模式。首先是SSN(Subflow Sequence Number,子流层序列号)跟原有的TCP里的很相似。SSN单独工作在每条子流内,确保每条流的数据包成功按序发送到汇点。其次是MPTCP层的序列号,其又被称为DSN(Data Sequence Number,数据层序列号),汇点接收到的每一个数据包都包含有一个不同的DSN。因此,汇点通过DSN能够很容易地按顺序重新组装所接收到的数据包。

3 相关工作

现有的研究中,很多多路径传输的体系结构都是在TCP基础上提出的,例如pTCP[6]、mTCP[7]和PRISM[8],都是为了聚合多条路径上的可用带宽,而对原有的TCP进行了大量的修改。然而对原有的协议进行大量的修改会造成协议的后向兼容性不强,从而不能被广泛地应用。为满足一些有带宽需求的应用,也有一些研究利用多个TCP传输来提高吞吐量的稳定性。在文献[9]中,TCP数据流在IP层被分成多条,然后在多条路径传输,提高了视频流传输的实时性。文献[10]提出通过聚合多条路径上的可用带宽来提高视频流的传输性能。文献[11]提出调整多条路径传输中接收窗口的大小的方案,提高了多媒体流传输的吞吐量。大多数的解决方案都是假设聚合较大的带宽能够提高视频传输的性能。虽然在理论上这是真实的,但是接收端乱序接收到的数据报文,可能会严重降低由传输层传送到应用层的有效数据量。

在2012年,有一些提高MPTCP有效吞吐量的研究。文献[4]提出适当地选择数据包重传路径的方案,提高了有效吞吐量。当接收缓存中存满乱序数据包时,慢路径会发生阻塞,而源端将会选择快路径重传数据包,同时使慢路径的拥塞窗口大小减半。这种方案仅仅是当接收缓存满的时候,才会触发拥塞控制操作,因此不能处理在正常传输阶段时有效吞吐量急剧恶化的情况。文献[3]和文献[12]采用网络编码方案恢复汇点处的丢包,从而增加了有效吞吐量。在这种基于编码的方案中,源端在一条子流中发送原始的数据包,在其他的子流中发送编码的数据包。因此,冗余的编码数据包就可以被用来恢复丢包以及延迟的数据包。但是这些方案都需要通信节点支持网络编码操作,增加了网络传输的复杂性。文献[3]和文献[4]的解决方案主要集中在长期实现吞吐量的提高,而忽略了短期内有效吞吐量的变化。本文主要提出一种基于MPTCP的自适应拥塞控制算法,动态调整每一个子流的控制窗口,减小子流间延迟差,使有效吞吐量的变化最小化,为应用程序提供了一个稳定可靠的吞吐量。

4 自适应拥塞控制算法

4.1 问题分析

在研究中发现,MPTCP可以通过聚合多条路径的网络资源给应用提供聚合带宽。本文的研究主要侧重于提高有效吞吐量,它是一个重要的性能度量标准。这里把MPTCP的有效吞吐量定义为单位时间内MPTCP向应用层发送按序排放的数据包数量。

此外,为了弄清影响有效吞吐量的主要因素,本文测试了两个特殊的MPTCP场景。假设有两条可用路径,令τi表示数据包在MPTCP源端发送的时间间隔,其中i为指定的路径(i=1,2)。假设路径1的吞吐量大于路径2的吞吐量,路径i的端到端的延迟用di表示,则有d1

如图3所示,考虑两种特殊的情况,按序单元由4个具有连续DSN(1、2、3和4)的数据包组成,假设数据包1和数据包2同时被分别发送到路径1与路径2。图3(a)表明ΔD=|d2-d1|>τ1,可以得到T=ΔD,则有:

图3(b)为ΔD≤τ1的特殊场景,其中MPTCP的汇点在一个按序单元内接收到所有数据包需要更少的时间。若接收按序单元内所有的N个数据包所用的时间就等于路径1接收(N-1)个数据包所用的时间,则有:

公式(2)所求的G就是两条路径的聚合吞吐量,用Γ表示两条路径的聚合吞吐量,则有:

通过观察可以发现,有效吞吐量与端到端的延时差ΔD成反比。两条路径的延时差越大,MPTCP汇点在一个按序单元内接收到所有数据包的时间就越长,有效吞吐量就越小。因此,若在不损害聚合吞吐量的前提下达到有效吞吐量的最大值,需要使多条路径传输时端到端的延时差最小。

4.2 拥塞窗口自适应算法

在原有的TCP中,TCP源节点维持一个拥塞控制窗口以控制当前发送数据包的最大数量。当源节点重复收到3个ACKs,就被视作发生了丢包,然后为了减少链路负载就把拥塞控制窗口减半。而在MPTCP中,每一条TCP流维持一个独立的拥塞控制窗口,当其收到2个重复的ACKs时,就触发减小拥塞控制窗口的操作。作为对比,MPTCP子流拥塞控制窗口的增大是由一个Coupled算法控制的,这种拥塞窗口控制算法可以聚合每条路径的可用带宽以及阻止MPTCP源端占用过多的网络资源,确保TCP的公平性。其思想是仅仅当节点收到重复的ACKs时被才会被视作为发生丢包,然后出发拥塞控制机制减少拥塞控制窗口。然而,实际上每条路径的拥塞窗口可能存在很大的不同,导致每条路径间的延时差较大,从而造成有效吞吐量性能的急剧恶化。

综上所述,本文提出一种自适应拥塞控制算法ACW-MPTCP,可实时检测每条路径的时延,从而控制每条路径间的时延差保持在一个很小的范围内。在这里,定义延迟比为最大的路径延迟与最小的路径延迟的比率。当侦听到有一个更大的延迟比时,源节点就成比例地减少拥塞控制窗口,而不考虑有没有侦听到丢包的发生。该算法的主要思想是通过使路径间的延迟差ΔD最小来增加网络传输的有效吞吐量。此外,所有子流的拥塞控制窗口的变化都共同由MPTCP源端的拥塞控制算法来控制。具体的拥塞控制算法如下:

if θmin

i=arg maxp(路径p的端到端的延迟)

if counti

cwndicwndi/θ

if ssthreshi>cwndi then

ssthreshi=cwndi

end if

counticounti+1

else

counti=0

end if

end if

在该算法中,当延迟比在一个特定的变化范围[θmin,θmax]内,触发拥塞控制窗口的自适应操作。具有最大延迟的路径i的拥塞控制窗口大小与延迟比θ成反比例函数,而较大的延迟比表明高延迟路径的链路负载较大,要减轻链路负荷以及减小路径延迟,必须要减小其拥塞窗口。此外,θmax的引入可以避免慢路径上的过度拥塞所造成的聚合吞吐量的急剧下降。同时,如果ssthreshi>cwndi,新的cwndi值将替换TCP慢启动阈值(ssthreshi)。否则cwndi将进入快恢复阶段,即cwndi的值加1,将会很难保证慢路径上能有足够的时间减小拥塞控制窗口与端到端的延迟。

由图3(b)可知,尽管cwnd的自适应能够减小不同路径间的端到端的延迟,但是不能保证所有路径都能取得较相近的时延。除了链路负载影响端到端的延迟原因之外,还存在一些其他的原因,比如路由器、基站以及节点之间的通信存在着传输、处理和排队延迟。链路层的干扰以及无线媒介上的数据超时重传,也导致了不同路径上的延迟不同。虽然通过减小慢路径的拥塞控制窗口以及减轻链路负载,可以减少路径间的延迟差异,但是传输层本身不可能完全消除路径延迟差异。针对此问题,本文引入参数counti来限制单一路径上连续减少拥塞控制窗口的次数m,避免了单条路径上的吞吐量急剧下降。

5 性能评估

本文使用NS-2.35对所提出的方案进行仿真,为每个无线电接收器节点配备两个网络接口,并连接到一个具有多通道的典型无线链路中。源节点和目的节点之间的通信采用两个FTP应用。链路1上的平均带宽为4.0Mbit/s,链路2上的平均带宽为2.0Mbit/s。最小延迟比θmin为1.0,最大延迟比θmax为3.0。中继节点的接收缓存大小为0.38Mbit(33MSS),汇点处的接收缓存大小为1.16Mbit(100MSS)。为了长期提高吞吐量以及有效吞吐量的性能,使用大文件作为数据传输。根据算法1,拥塞控制窗口每隔0.5s会更新一次。每当汇点每收到100个具有连续DSN的数据包时,就记录一下有效吞吐量的值和接收缓存的大小。

在MPTCP中,接收窗口指定了汇点可以接收和缓存的最大数据包的数量,即MPTCP中汇点的所有接口具有的总接收容量。本文使用接收缓存来表示汇点容纳K个具有连续DSN的数据包所需的存储空间大小。采用多路径传输汇点可能会接收到乱序的数据包,因此实际需要的存储空间要比K个数据包的实际存储空间要大许多。因此,接收缓存内数据包的大小代表了汇点沿着多条路径所接收的乱序数据包的大小。仿真结果如图4和图5所示,分别为原有的MPTCP与本文提出的ACW-MPTCP的有效吞吐量和接收缓存大小的比较。

图4 MPTCP与ACW-MPTCP吞吐量的比较

图5 MPTCP与ACW-MPTCP接收缓存的比较

从图4可以看出,ACW-MPTCP的有效吞吐量几乎达到了聚合吞吐量的最大值6Mbit/s;而MPTCP的聚合吞吐量很低,在某些时间很接近慢路径的吞吐量。因此,ACW-MPTCP能够减小两条路径间的路径延迟差异,大大提高了有效吞吐量并增加了网络传输的稳定性。

从图5可以看出,ACW-MPTCP接收缓存中的数据包大小很接近100个连续数据包的大小;而MPTCP的只是在某些时间接近。因此,ACW-MPTCP能够在不损耗聚合吞吐量的前提下减少汇点接收的乱序数据包数量。

6 结束语

本文提出了一个拥塞窗口自适应算法ACW-MPTCP,通过动态调整每条子流的拥塞控制窗口大小的方法来减小多条路径间的延迟差异。大大地提高了MPTCP的有效吞吐量并减小了汇点处所需的接收缓存大小。通过仿真模拟端到端的多路径网络,结果表明ACW-MPTCP能够提高MPCTCP的有效吞吐量,并减少汇点所需的实际接收缓存大小。

参考文献:

[1] Zhang M, Karp B, Floyd S, et al. RR-TCP: a reordering-robust TCP with DSACK[A]. Network Protocols, 2003. Proceedings. 11th IEEE International Conference on[C]. IEEE, 2003: 95-106.

[2] Ford A, Raiciu C, Handley M, et al. Architectural guidelines for multipath TCP development[J]. RFC6182 (March 2011), 2011.

[3] Li M, Lukyanenko A, Cui Y. Network coding based multipath TCP[A]. Computer Communications Workshops(INFOCOM WKSHPS), 2012 IEEE Conference on[C]. IEEE, 2012: 25-30.

[4] Raiciu C, Paasch C, Barre S, et al. How hard can it be ? Designing and implementing a deployable multipath TCP[C]. NSDI, 2012: 29-29.

[5] Raiciu C, Handley M, Wischik D. Coupled congestion control for multipath transport protocols[J]. IETF RFC 6356, 2011.

[6] Hsieh H Y, Sivakumar R. pTCP: An end-to-end transport layer protocol for striped connections[A]. Network Protocols, 2002. Proceedings. 10th IEEE International Conference on[C]. IEEE, 2002: 24-33.

[7] Zhang M, Lai J, Krishnamurthy A, et al. A Transport Layer Approach for Improving End-to-End Performance and Robustness Using Redundant Paths[A]. USENIX Annual Technical Conference, General Track[C]. 2004: 99-112.

[8] Kim K H, Shin K G. Improving TCP performance over wireless networks with collaborative multi-homed mobile hosts[A]. Proceedings of the 3rd international conference on Mobile systems, applications, and services[C]. ACM, 2005: 107-120.

[9] Tsai M F, Chilamkurti N, Park J H, et al. Multi-path transmission control scheme combining bandwidth aggregation and packet scheduling for real-time streaming in multi-path environment[J]. Communications, IET, 2010(8): 937-945.

[10] Wang B, Wei W, Guo Z, et al. Multipath live streaming via TCP: scheme, performance and benefits[J]. ACM Transactions on Multimedia Computing, Communications and Applications(TOMCCAP), 2009(3): 25.

[11] Tullimas S, Nguyen T, Edgecomb R, et al. Multimedia streaming using multiple TCP connections[J]. ACM Transactions on Multimedia Computing, Communications and Applications(TOMCCAP), 2008(2): 12.

[12] Cui Y, Wang X, Wang H, et al. FMTCP: A fountain code-based multipath transmission control protocol[A]. Distributed Computing Systems(ICDCS), 2012 IEEE 32nd International Conference on[C]. IEEE, 2012: 366-375.

上一篇:CDMA的局部载波扩容优化 下一篇:好夫妻不蹚“浑水”