MPTCP中一种减缓缓存阻塞的重传策略

2013-01-31 05:23敏,刘鹏,邹
电视技术 2013年17期
关键词:重传包率接收端

胡 敏,刘 鹏,邹 然

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

随着互联网中各种新应用的兴起,用户对网络资源(主要是带宽)的需求越来越大。同时,宽带接入技术逐渐多样化,很多设备同时具有如ADSL、WiFi、3G等接入方式,即越来越多的设备具有多个网络接口,并且可以配备多个网络地址。MPTCP[1-3]是对TCP的扩展,支持多宿主,可以同时使用多条路径并行传输数据。MPTCP的一大目标是兼容现有应用及中间件,并且向后兼容TCP。因此,研究MPTCP具有非常重要的实际应用价值。

但是,多路同时传输时接收端有限的缓存容易导致缓存阻塞[4-7],使整体性能受到严重影响,MPTCP也是如此。目前减缓并行传输时接收端缓存阻塞的方法主要有两种:1)保证数据按序到达接收端;2)尽快将丢失数据重传到接收端。本文考虑第二个方法,提出一种新的基于综合参数的重传策略,使未及时到达的数据尽可能快地被重传到接收端,从而减缓接收端缓存阻塞,提高MPTCP吞吐量。

1 相关研究

Janardhan R.Iyengar[4-8]等人对CMT-SCTP(基于流传输控制协议的多路同时传输)进行了大量研究。研究表明通过合适的重传策略可以在一定程度上减缓缓存阻塞,提高端到端连接的吞吐量。他们提出了5种重传策略[8],分别是:1)RTX-SAME,重传数据块被发送到原关联上;2)RTX-ASAP,重传数据块被发送到拥有可用窗口空间的关联(SCTP中表示连接的术语)上,如果有多条关联满足条件,则随机选择一条;3)RTX-CWND,重传数据块被发送到拥有最大拥塞控制窗口的关联上,如果多条关联满足条件,则随机选择一条;4)RTX-SSTHRESH,重传数据块被发送到拥有最大慢启动门限的关联上,如果多条关联满足条件,则随机选择一条;5)RTX-LOSSRATE,重传数据块被发送到拥有最低报文丢失率的关联上,如果多条关联满足条件,则随机选择一条。

在MPTCP中,一条子流即相当于CMT中的一条关联。重传时,可以选择原先相同的子流,可以选择拥有窗口空间的子流,可以选择拥有最大拥塞控制窗口的子流,可以选择拥有最大慢启动门限的子流,可以选择拥有最低丢包率的子流。但是无论基于哪一种策略,都只考虑单一因素,这在网络性能参数多变的现实环境中并不能达到理想结果。因此本文研究一种基于综合参数考虑的重传策略。

2 基于综合参数的RTX-DLCS

根据RFC6182,MPTCP中快速重传应该选择相同子流传输,超时重传应该选择不同子流传输。因此,MPTCP中超时重传技术可分为如下几种:1)随机选择一条拥有可用窗口空间的子流;2)选择拥有最大拥塞控制窗口的子流;3)选择拥有最大慢启动门限的子流;4)选择丢包率最小的子流。

MPTCP中:第一种策略相当于一种随机选择策略,几乎不考虑底层子流的性能差异,不能达到较好的重传性能;最后一种方法选择使用报文丢包率低的子流,其目的是为了减少报文丢失,从而减少重传次数;中间两种方法根据CWND和SSTHRESH值反映路径状况的优劣,同样倾向于选择丢包率低的子流。

考虑到实际环境中各子流状态不断变化,本文综合考虑子流传输时延和丢包率,提出基于综合参数的MPTCP重传策略RTX-DLCS。RTX-DLCS重传策略的核心思想是:快速重传时选择原先的子流;超时重传时,计算不同子流报文段传输成功的平均时间,选择拥有最小时间的子流;如果有相同最小时间,则选择拥有最大拥塞控制窗口(CWND)的子流;如果CWND值也相同,则继续选择拥有最大慢启动门限的子流。

设子流Si的丢包率为li,延迟为di,超时时间为RTO,假设包之间丢包事件相互独立。则一个数据包一次就成功到达接收端的时间R0为

数据包经历一次重传才成功到达接收端的时间R1为

数据包经历两次重传才成功到达接收端的时间R2为

以此类推,经历m次重传后成功到达接收端的时间Rm为

因此,一个数据包成功到达接收端的平均时间Ti为

带入以上各式,化简得

在实际网络环境中,利用MPTCP协议出现连续3次超时重传的概率基本为零,因此式(6)中m为3,带入得

RTX-DLCS中采用式(7)计算不同子流的时间Ti,RTX-DLCS重传策略为:

if data outstanding on subflows that have timed out

Tmin=∞ //存放最小平均时间

CWND=0 //存放最大拥塞窗口

SSTHR=0 //存放最大慢启动门限

RTXSUB=NULL //存放备选路径

for each subflow Si

if Ti<Tmin

RTXSUB=Si

TminTi

else if T=Tmin

if CWND<Si->cwnd

RTXSUB=Si

CWND=Si->cwnd

else if CWND=Si->cwnd

if SSTHRE<Si->ssthre

RTXSUB=Si

SSTHRE=Si->ssthre

Choose Sito sent a retransmission

return

else

Choose the same subflow to sent a retransmission

3 仿真及结果分析

3.1 仿真拓扑

本文以NS-3为仿真平台,采用一个较简单的模拟拓扑结构,如图1所示。忽略网络瓶颈链路、最后一跳等因素的影响,重点关注在不同丢包率、不同延迟、不同接收端缓存下RTX-DLCS重传策略的性能表现。

图1模拟拓扑结构

图1 中节点A表示源端,节点B表示目的端。源端和目的端都配备两个IP地址,端到端传输速率都为5 Mbit/s,参考时延为40 ms,80 ms和160 ms。子流1的丢包率固定为1%,子流2的丢包率在1%~10%之间变化。链路前向和后向丢包率相同,数据包丢包事件相互独立。

为了评估不同缓存大小下各策略的性能表现,设置接收缓存大小分别为32 kbyte,64 kbyte和128 kbyte。

3.2 性能分析

根据RFC6182建议,仿真过程中快速重传一律选择相同子流,超时重传时选择各种不同重传策略。因为RTX-SAME最简单,且性能较低,因此超时重传中只使用除RTX-SAME外的4种策略。

3.2.1 不同延迟下性能评估

现在大多数终端都配备了2 Gbyte的内存,64 kbyte接收缓存区很合理,因此本文在64 kbyte缓存下评估不同往返时延时RTX-DLCS的性能表现。图2展示了5种重传策略在不同丢包率、不同延迟情况下的性能对比曲线。

图2 5种重传策略在不同丢包率、不同延迟情况下的性能对比曲线

图2 a中,子流1和子流2的延迟都为40 ms,MPTCP采用5种不同重传策略重传数据。由于两条子流延迟相同,所以RTX-DLCS策略重传选路实质上首先根据丢包率,然后再考虑拥塞窗口和慢启动门限。从图2中可以看出,RTX-ASAP性能相对来说较差;RTX-LOSSRATE,RTX-CWND和RTX-SSTHRESH性能互相有好有坏,整体上性能相当;RTX-DLCS与此3种策略相比并无明显优势,性能只是略好。其原因是,子流1和子流2延迟相同,RTX-DLCS策略根据式(7)计算Ti时,Ti仅受丢包率影响,即实际上是先考虑丢包率对重传选路的影响,而RTXLOSSRATE选择数据丢失率最低的路径作为重传路径,减少了重传数据的丢失,RTX-SSTHRESH选择最大慢启动门限的路径,RTX-CWND选择拥有最大窗口值的路径,它们二者都考虑了路径状况,本质上也减少了重传数据的丢失。因此这4种策略实质上都以丢包作为参考因素,所以性能差别不大。如果两条子流丢包率相同,RTX-DLCS还会再综合考虑拥塞控制窗口和慢启动门限,而其他策略只考虑单一因素,因此这种情况出现时RTX-DLCS性能就要优于其他策略。图2b、2c中,子流1的延迟分别为80 ms和160 ms,子流2的延迟固定为40 ms。图2b中MPTCP连接整体性能下降是受子流延迟影响,延迟增加,缓存区阻塞更严重,即影响MPTCP吞吐量。这种影响随着延迟增加不断恶化,如图2c所示。将图2b,图2c分别与图2a对比,发现RTX-DLCS性能优势更加明显。这是因为子流1的延迟发生变化,RTX-DLCS策略根据延迟和丢包综合考虑选择正确的重传子流。

3.2.2 不同接收缓存下性能评估

为了深入分析不同缓存大小下RTX-DLCS重传策略性能表现,又分别设置接收缓存为32 kbyte和128 kbyte。

图3展示了接收缓存为32 kbyte时各重传策略的性能表现,由于缓存区阻塞,整体吞吐量受到较严重的影响。图4展示了接收缓存为128 kbyte时各重传策略的性能表现,由于接收缓存的增加,缓存区阻塞有所减小,MPTCP整体吞吐量受重传策略的影响减小。在图3、图4中,RTXDLCS性能整体上优于其他重传策略,且优势随着缓存大小不同而不同,这也证明上述分析的正确性。

图3 接收缓存为32 kbyte,延迟为40 ms

对比图2、图3和图4中可以发现,RTX-DLCS性能整体上优于其他4种重传策略。因为考虑了丢包率的重传策略能在一定程度上避免重复的超时重传,但是仅考虑单一的影响因素并不能达到最好的效果。综合考虑延迟和丢包率等因素的重传策略能进一步减少超时重传,从而减缓缓存阻塞,提高MPTCP吞吐量。

图4 接收缓存为128 kbyte,延迟为40 ms

4 小结

深入研究了多路同时传输中的重传策略和MPTCP协议,重点研究了MPTCP中超时重传时选路策略,提出了一种基于综合参数考虑的重传策略RTX-DLCS,减缓了缓存阻塞,提高了MPTCP吞吐量。仿真表明,RTX-DLCS整体性能较优。在延迟和丢包率均不同的情况下,RTX-DLCS表现最好。

本文主要对比了缓存为64 kbyte时子流1丢包率不变、子流2延迟不变的情况和不同缓存大小时RTX-DLCS的性能表现。为了进一步验证RTX-DLCS性能的优越性,下一步工作中将设置更加复杂的仿真环境、更全面的对比,综合评估RTX-DLCS性能表现。

[1]RFC 6182,Architectural guidelines for multipath TCP development[S].2011.

[2]RFC 6356,Coupled congestion control for multipath transport protocols[S].2011.

[3]FORD A,RAICIU C,HANDLEY M.TCP extensions for multipath operation with multiple addresses,draft-ietf-mptcp-multiaddressed-09[EB/OL].[2012-10-10].http://tools.ietf.org/pdf/draft-ietf-mptcp-multiaddressed-12.pdf.

[4]IYENGAR J,AMER P,STEWART R.Concurrent multipath transfer using CTP multihoming over independent end-to-end paths[J].IEEE/ACM Transactions on Networking,2006,14(5):951-964.

[5]IYENGAR JR,AMER PD,STEWART R.Receive buffer blocking in concurrent multipath transfer[C]//Proc.IEEE Global Telecommunications Conference.Louis,USA:IEEE Press,2005:1-7.

[6]IYENGAR JR,AMER PD,STEWART R.Performace implications of a bounded receive buffer in concurrent multipath transfer[J].Computer Communication,2007,30(4):818-829.

[7]LIU Jiemin,ZOU Hongxing,DOU Jingxin.Reducing receive buffer blocking in concurrent multipath transfer[C]//Proc.Circuits and Systems for Communications.Shanghai:IEEE Press,2008:367-371.

[8]IYENGAR J,AMER P,STEWART R.Retransmission policies for concurrent multipath transfer using SCTP multihoming[C]//Proc.12th IEEE International Conference.Singapore:IEEE Press,2004:713-719.

猜你喜欢
重传包率接收端
支持向量机的船舶网络丢包率预测数学模型
基于扰动观察法的光通信接收端优化策略
一种基于喷泉码的异构网络发包算法*
顶管接收端脱壳及混凝土浇筑关键技术
电磁线叠包率控制工艺研究
基于多接收线圈的无线电能传输系统优化研究
无线网络中基于网络编码与Hash查找的广播重传研究
酸槽内钢带位置测量传感器
面向异构网络的多路径数据重传研究∗
一种基于散列邻域搜索网络编码的机会中继重传方法