当前位置: 首页 > 专利查询>湖南大学专利>正文

无线网络中基于链路状态信息的MPTCP调度方法技术

技术编号:22420531 阅读:16 留言:0更新日期:2019-10-30 02:39
本发明专利技术公开了一种无线网络中基于链路状态信息的MPTCP调度方法,涉及计算机网络技术领域。所述调度方法,每条TCP子流在接收到ACK数据包后,根据该TCP子流的网络状态更新其在所有TCP子流网络状态好坏排序中的位置,再根据该TCP子流在排序中的位置选择所发送的数据包;每条TCP子流只要接收到ACK数据包即更新其网络状态,再进行下一轮的数据包的发送,无需等待所有TCP子流完成数据包传输任务后再进行下一轮的调度,大大缩短了等待时间,提高了数据传输效率。

【技术实现步骤摘要】
无线网络中基于链路状态信息的MPTCP调度方法
本专利技术属于计算机网络技术,尤其涉及一种MPTCP对网络链路状况好的传输路径预分包的调度方法。
技术介绍
随着网络和移动设备的发展,越来越多的网络应用和技术,如直播、VR和云计算,需要更大的网络带宽来实现更高的性能。多宿主技术使移动设备能够配备多个网络接口卡,例如移动设备可以同时连接多个WiFi和4G蜂窝网络,实现多路径并行传输(如图1所示,包含三条TCP子流的多路径网络拓扑结构)。显然,多路径并行传输带来了很多好处:一方面,当单一路径的带宽有限时,它可以聚合带宽来增加流量和吞吐量;另一方面,它可以提高数据传输的可靠性,例如,当一条路径被中断,其他路径仍然可以连接传输数据。MPTCP(MultiPathTransportControlProtocol)多路径TCP传输数据是在发送端和接收端之间建立多条TCP子流(如图1所示),并行调度多条路径进行数据传输。由互联网工程任务组(IETF)标准化的MPTCP具有良好的适应性和可扩展性,易于应用到实际的网络应用程序中。目前,MPTCPv0.94版本是在Linux内核v4.14上实现的,部署在OpenMPTCProuter、17wifi等路由器中作为代理,用于智能手机的操作系统中,甚至在数据中心网络中。MPTCP扩展了常规TCP,以提供支持传输连接同时跨多条路径操作的服务。MPTCP定义中,每条已建立的路径都是一条TCP子流,每个子流的启动和终止与常规TCP连接类似。MPTCP通过DSN(datasequencenumber)来管理数据包的发送,DSN统计总的报文段序号,而每个TCP子流通道中的序号始终是连续的。数据包的无序到达是MPTCP必须面对的主要问题,之前的研究告诉我们,路径或者链路条件的巨大差异,包括延迟、包丢失率和共享缓冲区大小,都会导致严重的数据包乱序到达,接收缓冲区将频繁阻塞,吞吐量(速率)将严重下降,甚至比单条TCP路径更糟。因此,调度算法是设计MPTCP的关键,它可以尽可能的保证数据包顺序到达,当考虑路径的质量或状态时,调度算法决定如何将数据包发送到相应的网络链路。目前,MPTCP的默认调度算法称为轮询算法(RoundRobin),轮询算法轮询每个子流来交付数据包,而不考虑路径质量或状态;第二个备选调度器MiniRTT总是将往返时延(Round-TripTime,RTT)最小的包分配给具有空闲窗口的子流。然而,当DSN小的数据包被发送到状态差的链路时,MiniRTT也会导致大量的缓冲区阻塞。因此,在设计调度算法时,DAPS和STMS提出将DSN较小的数据包发送到低延迟、高带宽的路径,将DSN较大的数据包发送到网络状态较好的路径,但是在调度数据包时,没有考虑到接收端缓存阻塞的情况,两条路径必须在同一段时间完成各自的传输任务才进行下一轮调度,这样导致了传输效率下降;另外,STMS是一个相对高级的改进后的预分配调度算法,它会选择数据包到合适的子流或者路径,但是STMS需要等待所有子流完成数据传输后,才可以进行下一轮调度,导致吞吐率的下降。
技术实现思路
针对现有技术中,改进轮询算法和MiniRTT不考虑DSN直接给子流发送数据包而造成接收端阻塞的问题,以及预分配调度算法需要等待所有子流完成数据而导致吞吐率下降的问题,本专利技术提供一种无线网络中基于链路状态信息的MPTCP调度方法。本专利技术是通过如下的技术方案来解决上述技术问题的:一种无线网络中基于链路状态信息的MPTCP调度方法,包括以下几个步骤:步骤1:将所有TCP子流按照网络状态的好坏排序,根据排序为每条TCP子流分配待发送数据包,每条TCP子流按照DSN发送数据包;步骤2:更新TCP子流i在所有TCP子流网络状态好坏排序中的位置pri;步骤3:若该TCP子流i的网络状态为最好,则发送DSN最靠前的未发送的数据包;若该TCP子流i的网络状态不是最好,则转入步骤4;步骤4:判断是否需要给比该TCP子流i网络状态更好一级TCP子流预留数据包;若不需要预留数据包,且上一次处于位置pri的TCP子流有未发送的数据包,则发送上一次处于位置pri的TCP子流未发送的数据包,否则选择DSN更大的数据包发送;若需要预留数据包,则发送的数据包的DSN为当前预留数据包的数量与上一次处于位置pri的TCP子流发送的数据包的DSN之和;步骤5:重复步骤2-4,直到所有数据包发送完毕。本专利技术的MPTCP调度方法每条TCP子流在发送完一次数据包后均重新更新其在所有TCP子流网络状态好坏排序中的位置,根据网络状态的好坏再选择所发送的数据包,网络状态好的TCP子流所发送的数据包的DSN靠前,且网络状态差的TCP子流为比其网络状态更好一级的TCP子流预留数据包,网络状态差的TCP子流所发送的数据包的DSN靠后,每条TCP子流在(完成一次数据包发送)收到ACK数据包,更新网络状态后均根据其网络状态的好坏再进行下一次数据包的发送,无需等待所有TCP子流完成数据包发送后再进行下一轮的调度,大大缩短了等待时间,提高了数据传输效率;同时,网络状态好的TCP子流发送的数据包所属的DSN靠前,且发送的数据包多,而网络状态差的TCP子流发送的数据包所属的DSN靠后,且发送的数据包少,使得所有数据包尽可能有序到达,缓解了接收缓冲区频繁阻塞的问题,进一步提高了数据的传输效率。进一步地,所述步骤1中,待发送数据包包括预留数据包,预留数据包的数量与该TCP子流的网络状态有关,TCP子流网络状态越好,预留数据包的数量越多。进一步地,所述步骤2中,TCP子流i在每次接收到该TCP子流的ACK数据包时更新该TCP子流i在所有TCP子流网络状态好坏排序中的位置。进一步地,所述步骤4中,判断是否需要预留数据包的具体操作为:判断上一次预留数据包的数量之和是否小于上一次拥塞窗口之和的三倍;其中,上一次预留数据包的数量之和是指上一次处于位置pri的TCP子流为比该TCP子流网络状态好的所有的TCP子流预留的数据包的数量之和;上一次拥塞窗口之和是指比上一次处于位置pri的TCP子流网络状态好的所有的TCP子流的拥塞窗口之和;若是,则需要预留数据包;若不是,则不需要预留数据包。进一步地,所述步骤4中,需要预留数据包的数量的计算公式为:Res=(RTTP×BWP+Rud÷CWNDpri-1)×(DSNpri-1-DSN0)其中,Res表示当前预留数据包的数量;SRTTpri-1表示当前处于位置pri-1的TCP子流的平滑往返时延,SRTTpri表示当前处于位置pri的TCP子流的平滑往返时延;BWP表示当前处于位置pri-1的TCP子流与当前处于位置pri的TCP子流的带宽之比,即Rud表示当前接收端的数据包的冗余大小;CWNDpri-1表示当前处于位置pir-1的TCP子流的拥塞窗口;DSNpri-1表示当前处于位置pir-1的TCP子流发送的数据包的DSN;DSN0表示当前网络状态最好的TCP子流发送的数据包的DSN。进一步地,处于位置pri的TCP子流的平滑往返时延SRTTpri的计算公式为:SRTTpri=(α×SRTThis,pri)+((1-α)×RTTpri)其中,α表示影响因子,用来表示对RTTpri的接本文档来自技高网
...

【技术保护点】
1.一种无线网络中基于链路状态信息的MPTCP调度方法,其特征在于,包括以下几个步骤:步骤1:将所有TCP子流按照网络状态的好坏排序,根据排序为每条TCP子流分配待发送数据包,每条TCP子流按照DSN发送数据包;步骤2:更新TCP子流i在所有TCP子流网络状态好坏排序中的位置pri;步骤3:若该TCP子流i的网络状态为最好,则发送DSN最靠前的未发送的数据包;若该TCP子流i的网络状态不是最好,则转入步骤4;步骤4:判断是否需要给比该TCP子流i网络状态更好一级TCP子流预留数据包;若不需要预留数据包,且上一次处于位置pri的TCP子流有未发送的数据包,则发送上一次处于位置pri的TCP子流未发送的数据包,否则选择DSN更大的数据包发送;若需要预留数据包,则发送的数据包的DSN为当前预留数据包的数量与上一次处于位置pri的TCP子流发送的数据包的DSN之和;步骤5:重复步骤2‑4,直到所有数据包发送完毕。

【技术特征摘要】
1.一种无线网络中基于链路状态信息的MPTCP调度方法,其特征在于,包括以下几个步骤:步骤1:将所有TCP子流按照网络状态的好坏排序,根据排序为每条TCP子流分配待发送数据包,每条TCP子流按照DSN发送数据包;步骤2:更新TCP子流i在所有TCP子流网络状态好坏排序中的位置pri;步骤3:若该TCP子流i的网络状态为最好,则发送DSN最靠前的未发送的数据包;若该TCP子流i的网络状态不是最好,则转入步骤4;步骤4:判断是否需要给比该TCP子流i网络状态更好一级TCP子流预留数据包;若不需要预留数据包,且上一次处于位置pri的TCP子流有未发送的数据包,则发送上一次处于位置pri的TCP子流未发送的数据包,否则选择DSN更大的数据包发送;若需要预留数据包,则发送的数据包的DSN为当前预留数据包的数量与上一次处于位置pri的TCP子流发送的数据包的DSN之和;步骤5:重复步骤2-4,直到所有数据包发送完毕。2.如权利要求1所述的一种无线网络中基于链路状态信息的MPTCP调度方法,其特征在于,所述步骤1中,待发送数据包包括预留数据包,预留数据包的数量与该TCP子流的网络状态有关,TCP子流网络状态越好,预留数据包的数量越多。3.如权利要求1所述的一种无线网络中基于链路状态信息的MPTCP调度方法,其特征在于,所述步骤2中,TCP子流i在每次接收到该TCP子流的ACK数据包时均更新该TCP子流i在所有TCP子流网络状态好坏排序中的位置。4.如权利要求1所述的一种无线网络中基于链路状态信息的MPTCP调度方法,其特征在于,所述步骤4中,判断是否需要预留数据包的具体操作为:判断上一次预留数据包的数量之和是否小于上一次拥塞窗口之和的三倍;其中,上一次预留数据包的数量之和是指上一次处于位置pri的TCP子流为比该TCP子流网络状态好的所有的TCP子流预留的数据包的数量之和;上一次拥塞窗口之和是指比上一次处于位置pri的TCP子流网络状态好的所有的TCP子流的拥塞窗口之和;若是,则需要预留数据包;若不是,则不需要预留数据包。5.如权利要求1或4所述的一种无线网络中基于链路状态信息的MPTCP调度方法,其特征在于,所述步骤4中,需要预留数据包的数量的计算公式为:Res=(RTTP×BWP+Rud÷CWNDpri-1)×(DSNpri-1-DSN0)其中,Res表示当前预留数据包的数量;SRTTpri-1表示当前处于位置pri-1的TCP子流的平滑往返时延,SR...

【专利技术属性】
技术研发人员:李玮张天云张大方
申请(专利权)人:湖南大学
类型:发明
国别省市:湖南,43

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1