一种降低sctp多路径传输数据包乱序影响的方法

文档序号:7753954阅读:712来源:国知局
专利名称:一种降低sctp多路径传输数据包乱序影响的方法
技术领域
本发明涉及网络通讯技术领域,具体涉及一种降低SCTP多路径传输数据包乱序 影响的方法。
背景技术
随着网络技术的发展,一方面网络接入技术不断多样化,包括广域网、局域网和 个域网接入技术,有线和无线接入技术都不断成熟并且商用,例如XDSL,xPON, 3G, WLAN, WiMAX, Bluetooth等;另一方面,接入设备的成本不断降低,越来越多的终端开始配置多种 网络适配器,例如移动终端laptop通常配有LAN接口和WLAN接口,也可以支持3G无线接 入;而一般PDA都支持WLAN和3G接入;一些固定终端也同时支持LAN和WLAN接入。因此, 基于多种接入技术的多家乡终端和端到端多路径传输技术正在成为下一代互联网的主要 特征。相比于单路径传输,端到端多路径可以有效地聚合多条路径的带宽,从而为用户 提供更好的QoS保障;由于同时使用多条端到端的路径,单条路径失败不会影响服务的连 续性,从而为端节点提供网络层冗余;多条路径同时使用,可以根据网络中的拥塞状况动态 的调整在不同路径的发送速率,从而实现在网络边缘处的负载均衡;所有的应用数据都从 多条路径传输,对任一单条路径的监听嗅探无法有效的恢复初始数据内容,具有更好的安 全性。但是,由于TCP和UDP只能使用一条端到端路径,无法充分利用端到端多路径的优 势;SCTP虽然支持多条路径传输数据,但是仅将其中的一条路径作为主要传输路径,其他 作为重传路径,其特性不能完全满足端到端多路径的需求。对SCTP进行扩展后可以使得标 准SCTP支持多条路径并行传输数据,但不同路径的带宽时延差异引起的数据包乱序会造 成SCTP多路径的性能急剧下降,甚至达不到使用任一单路径时的性能。SCTP的快速重传是 基于端到端单路径产生的,该背景下乱序很难发生,因此快速重传是对丢包的快速响应,而 端到端多路径条件下,由于路径差异,乱序很容易发生,SCTP将之错误理解为丢包进而引起 拥塞窗口降低,造成性能下降。因此,一方面端到端多路径的使用使得数据包乱序到达接收 端的情况大量出现;另一方面,SCTP自身机制在应对乱序的问题上存在不足,需要做出改 进。

发明内容
有鉴于此,本发明的主要目的在于提供一种降低SCTP多路径传输中数据包乱序 影响的方法,进而提高SCTP多路径的性能,达到聚合多条路径带宽的目的。为达到上述目的,本发明的技术方案是这样实现的—种降低SCTP多路径传输数据包乱序影响的方法,包括(1)根据各独立路径实 时测量的路径带宽、时延与丢包率获取该路径的度量值并以此进行路径调度以及数据包分 发;(2)发送端通过接收端发送的SACK块判断丢失数据包的路径并实施基于端到端路径的数据包快速重传。优选地,所述各独立路径采取加权轮询调度分发数据包,并根据各条端到端路径 权值将发送队列中的数据包分发到各条端到端路径中。优选地,所述数据包进行分发时,若路径的拥塞窗口小于其应发包数量,则将拥塞 窗口填满;若路径拥塞窗口为0,则跳到下一条路径发送;若一轮调度完成发送队列仍有数 据,则进行下一轮调度发送。优选地,所述各个独立路径分发的数据包具有单独的传输序列号以及与该路径对 应的路径顺序序列号。优选地,所述SACK块包括已全部收到数据的CUm_aCk块以及存在着未收到数据的
gap 已ck:^。优选地,接收端收到数据包后,延迟200ms时间再发送SACK块;并且,所述SACK块 发送路径对应其中最后一个gap ack块确认的数据的传输序列号的到来路径。优选地,当在未收到数据的gap ack块中三次未出现特定数据包时,则需要对该数 据包进行重传;并且,发送端通过该数据包的路径顺序序列号判断丢包的路径,从而快速重 传数据。优选地,接收端接收到数据包后,首先判断SACK块的CUm_aCk的值是否增加,如果 增加,则遍历新的被确认的传输序列号值,并与对应的路径顺序序列号比较,更新每条路径 的 path—min_ack 值;如果cum—ack没有增加,则遍历SACK块中的gap ack块,如果gapack确认的传输 序列号对应的路径顺序序列号是其相应路径的path—min—ack+Ι,则将path—min—ack设为 path—min_ack+l ;如果该路径拥塞控制处于慢启动阶段,则该路径拥塞窗口 cwnd = cwnd+1 ;如处于拥塞避免阶段,则该路径cwnd = cwnd+1/cwnd ;如果gap ack确认的传输序列号对应的路径顺序序列号大于其相应路径的path_ min_ack+l,则将path_min_ack+l对应的数据传输序列号丢包计数加一,如果该路径拥塞 窗口允许,则发送新的数据包。优选地,当数据包进行快速重传时,路径拥塞窗口降低为其原来的一半,慢启动门 限降低为原值的一半,并将对应路径度量值设为原值的2倍。优选地,当数据包进行快速重传时,数据包重传采用权值最大的路径进行传输,并 且重传数据包的源-目的地址保持不变。本发明有效降低了因数据包乱序对SCTP多路径传输的影响,提升了基于SCTP的 端到端多路径的性能。


图1为SCTP端到端多路径并行传输示意图;图2为SCTP多路径接收端对SACK块的处理流程;图3为SCTP端到端多路径数据发送流程;图4为SCTP传输序列和路径序列号映射关系图。
具体实施例方式本发明的核心是根据路径的时延带宽丢包特性生成路径度量值,依据度量值合 理的在不同路径分发数据包,使之尽可能在接收端按序到达;形成实时的端到端路径带宽 测量机制;形成改进的快速重传功能,降低因多路径乱序引起的不必要的快速重传;形成 新的基于路径的超时时间计算方法。本发明的方法包括(1)根据各独立路径实时测量的路径带宽、时延与丢包率获 取该路径的度量值并以此进行路径调度以及数据包分发;(2)发送端通过接收端发送的 SACK块判断丢失数据包的路径并在上述路径实现基于端到端路径的数据包快速重传。下面对该方法进行详细的描述首先,发送端为每条路径上发送的数据包维持一个顺序号,该顺序号与SCTP的传 输序列号TSN—一对应,同时每条路径维持一个最低确认序列号记录path_min_ack。并且, 在发送数据包之前,根据调度算法为数据包选定发送路径,如果该路径的RTT计时器没有 开启,则启用该路径的RTT计时器。为了使得数据包能够按序到达接收端,数据包的发送端需要根据每条路径的特性 进行路径调度,以使数据包发送后尽可能按序到达接收端,减少乱序发生。为了达到该效 果,我们根据各独立路径实时测量的路径带宽、时延与丢包率获取该路径的度量值并以此 进行路径调度以及分发数据包。为数据包根据路径特性进行调度的具体方法包括如下Cl每条路径记录在一个路径RTT测量过程中的被确认包的数量,并用测得的包的 数量和RTT时间计算当前可用带宽的估计值,计算方法为Bi = mi/RTTi,估计带宽值为Bk = α *Bi+ (1- α ) *Bk-1C2每条路径根据各自的丢包记录和发送数据包的数量,计算各自的丢包率P ;C3每条路径根据独立测量到的RTT,计算得到的估计带宽和丢包率,计算每条路 径的发送度量值,该值计算方法如下metric = 107/B+RTT/10+P*106其中带宽单位为Kbits,延时时间单位为μ s,丢包率为百分比。当SCTP初始关联 建立后,所有路径的初始设置为B值为100000000kbps,RTT为100000 μ s,P为0 ;C4根据每条路径计算的metric值计算各条路径的metric比例作为路径调度的权 值,其中metric越大的路径得到的权值越小;根据每条路径的权值,发送端在路径间执行 加权轮询调度算法(Weighted Round Robin)在各路径间分发数据包。若路径的拥塞窗口 小于其应发包数量,则将拥塞窗口填满;若路径拥塞窗口为0,则跳到下一条路径发送;若 一轮调度完成发送队列仍有数据,则进行下一轮调度发送。接着,在发送端接收到SACK块以后,按照每条路径的序列号独立判断快速重传及 拥塞窗口增长等操作,具体操作方法如下Dl接收端判断SACK块的CUm_aCk的值是否增加,如果增加,则遍历新的被确认的 TSN值,并与对应的路径序列号比较,更新每条路径的path_min_ack值。如果cum_ack没有 增加,则执行D2 ;D2遍历SACK块中的gap ack块,如果gap ack确认的TSN对应的路径序列号是 其相应路径的path_min_ack+l,则将path_min_ack设为path_min_ack+l。如果该路径拥塞控制处于慢启动阶段,则该路径拥塞窗口 cwnd = cwnd+1,如处于拥塞避免阶段,则该路 径cwnd = cwnd+l/cwnd0如果gap ack确认的TSN对应的路径序列号大于其相应路径的 path_min_ack+l,则将path_min_ack+l对应的TSN丢包计数加一,如果该路径拥塞窗口允 许,则发送新的数据包;D3当对应的TSN在其发送路径上的丢包计数达到3,则快速重传该数据包,同时将 对应路径拥塞窗口 cwnd降低为其原来的一半,慢启动门限ssthresh降低为原值的一半,并 将其metric值设为原值的2倍。快速重传采用当前权值最大的路径进行传输,重传数据包 的源-目的地址保持不变。另外,接收端接收到乱序的数据包后,无需每接收到一个数据包就向发送端发送 一个SACK块,而是延迟一段时间后再发送SACK块,这里的延迟时间根据需要进行设定,也 可以设定初始恒定值200ms。SACK发送路径对应其中最后一个gap ack确认的数据的TSN 的到来路径。另外,在该种传输方式之下,每条路径根据测量的RTT,独立的计算每条路径的超 时重传时间RT0。如果该条路径进入超时重传阶段,则将该路径的metric值设为原来的2 倍。超时重传的数据包采用度量值最小的路径重传,重传数据包的源-目的地址不变。图1为SCTP端到端多路径并行传输示意图;图2为SCTP多路径接收端对SACK块 的处理流程;图3为SCTP端到端多路径数据发送流程,我们接着进行描述如附图1所示为 使用SCTP端到端多路径传输的直观示意图。其中主机A配置有三块网络接入卡,主机B配 置有两块网络接入卡,每块接入卡可以采用同构的接入方式,也可以采用异构的接入方式。下面对基于SCTP的端到端多路径工作流程和细节进行简单描述当终端主机A希望与对端主机B通信时,由主机A发起SCTP关联建立请求INIT 块,并携带自身可以使用的地址信息,对端主机B收到请求后,向主机A回一个INITACK,同 样携带主机B可以使用的地址信息,按照标准SCTP的连接建立方式,主机A与主机B建立 关联。由于网络接口卡的初始设置中所有参数都相同,因此主机A按照每条路径拥塞窗 口的设置,向每条路径发送数据包。当每条路径都有数据传输后,SCTP即进入端到端多路 径的操作模式,每条路径执行相对独立的拥塞控制和数据发送机制,以及计时机制。而终端 在关联层面执行路径调度机制,以期使不同的网络接口发送的数据包经历了不同特性的路 径后到达接收端的乱序尽可能较少。当进入SCTP端到端多路径传输阶段后,每条路径根据测量得到的带宽,时延,丢 包率等特性计算得到路径度量值metric,并根据metric的值生成所属路径的权值。当SCTP 协议栈调用发送函数时,则根据路径权值,对发送数据队列进行加权轮询调度。如果关联的 控制块队列非空,则按照控制块设定的目的地址选择相应路径发送数据;如果关联的重传 队列非空,则按照各数据块的目的地址在其相应路径发送;如果关联的数据发送队列为空, 则跳过发送函数,否则,根据各路径权值执行WRR算法分发数据。关于SCTP多路径发送的 流程见附图2。当主机A收到主机B返回的SACK块后,首先判断关联的cum_ack是否增长,如果 增长,则检查所有被cim_ack确认的传输序列号TSN,并根据其对应的路径序列号更新每条 路径的path_min_ack。如果cum_ack没有增长,则查看gap ack块,检查被gap ack的TSN对应的路径序列号,并更新对应路径的path_min_ack。关于SCTP端到端多路径对SACK块 的处理流程见附图3,关于SCTP端到端多路径传输序列号与路径序列的映射关系见图4。如图4所示,虚线框为路径序列号,实线框为传输序列号。首先,第一个sack块确 认数据块11和14,表明11和14收到,第二个sack确认了 11,14和15,表明11,14和15 收到,第三个表明11、14、15、16收到,这样三个sack同样表明12和13没有收到,当这样的 三个sack到达发送端,按照标准sctp算法,发送端要重传12和13。以11 :14_16为例,11 表示CUm_aCk表示其前面数据全部收到,14-16表示gap ack,表示这些数据块收到,但前后 有未收到的数据。如果收到SACK经过判断使得某条路径发生快速重传,则降低该路径的拥塞窗口 到原值的一半,同时增加路径metric值为原值的2倍,以减少数据包调度到该条路径。主机B接收到主机A发送过来的数据包,不论其到达是乱序与否,都延迟200ms再 发送SACK块。发送的路径选择SACK中确认的最后一个TSN发送的反向路径。以上流程即为一个基于SCTP的端到端多路径传输减少乱序影响的简要流程。上面的流程是基于附图1的一种简单的实现SCTP端到端多路径减少乱序到达的 流程。由于实际网络中的各种拥塞、抖动、丢包等情况以及伪造攻击的黑客攻击,SCTP端到 端多路径减少乱序到达的过程可能要比上面的描述复杂,但也在本发明内容包括的范围之 内。以上所述,仅为本发明较佳的具体实施方式
,但本发明的保护范围并不局限于此, 任何本领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖 在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。
权利要求
一种降低SCTP多路径传输数据包乱序影响的方法,其特征在于,该方法包括(1)根据各独立路径实时测量的路径带宽、时延与丢包率获取该路径的度量值并以此进行路径调度以及数据包分发;(2)发送端通过接收端发送的SACK块判断丢失数据包的路径并实施基于端到端路径的数据包快速重传。
2.根据权利要求1所述的降低SCTP多路径传输数据包乱序影响的方法,其特征在于, 所述各独立路径采取加权轮询调度分发数据包,并根据各条端到端路径权值将发送队列中的数据包分发到各条端到端路径中。
3.根据权利要求2所述的降低SCTP多路径传输数据包乱序影响的方法,其特征在于, 所述数据包进行分发时,若路径的拥塞窗口小于其应发包数量,则将拥塞窗口填满;若路径拥塞窗口为0,则跳到下一条路径发送;若一轮调度完成发送队列仍有数据,则进行下 一轮调度发送。
4.根据权利要求1所述的降低SCTP多路径传输数据包乱序影响的方法,其特征在于, 所述各个独立路径分发的数据包具有单独的传输序列号以及与该路径对应的路径顺序序列号。
5.根据权利要求1所述的降低SCTP多路径传输数据包乱序影响的方法,其特征在于, 所述的SACK块包括已全部收到数据的CUm_aCk块以及存在着未收到数据的gap ack块。
6.根据权利要求1所述的降低SCTP多路径传输数据包乱序影响的方法,其特征在于, 接收端收到数据包后,延迟200ms时间再发送SACK块;并且,所述SACK块发送路径对应其中最后一个gap ack块确认的数据的传输序列号的到来路径。
7.根据权利要求5所述的降低SCTP多路径传输数据包乱序影响的方法,其特征在于, 当在未收到数据的gap ack块中三次未出现特定数据包时,则需要对该数据包进行重传;并且,发送端通过该数据包的路径顺序序列号判断丢包的路径,从而快速重传数据。
8.根据权利要求5所述的降低SCTP多路径传输数据包乱序影响的方法,其特征在于, 接收端接收到数据包后,首先判断SACK块的CUm_aCk的值是否增加,如果增加,则遍历新的被确认的传输序列号值,并与对应的路径顺序序列号比较,更新每条路径的path_min_ ack 值;如果cum_ack没有增加,则遍历SACK块中的gap ack块,如果gapack确认的传输序列 号对应的路径顺序序列号是其相应路径的path_min_ack+l,则将path_min_ack设为path_ min_ack+l ;如果该路径拥塞控制处于慢启动阶段,则该路径拥塞窗口 cwnd = cwnd+1 ; 如处于拥塞避免阶段,则该路径cwnd = cwnd+1/cwnd ;如果gap ack确认的传输序列号对应的路径顺序序列号大于其相应路径的path_min_ ack+1,则将path_min_ack+l对应的数据传输序列号丢包计数加一,如果该路径拥塞窗口 允许,则发送新的数据包。
9.根据权利要求1所述的降低SCTP多路径传输数据包乱序影响的方法,其特征在于, 当数据包进行快速重传时,路径拥塞窗口降低为其原来的一半,慢启动门限降低为原值的一半,并将对应路径度量值设为原值的2倍。
10.根据权利要求1所述的降低SCTP多路径传输数据包乱序影响的方法,其特征在于, 当数据包进行快速重传时,数据包重传采用权值最大的路径进行传输,并且重传数据 包的源-目的地址保持不变。
全文摘要
一种降低SCTP多路径传输数据包乱序影响的方法,包括(1)根据各独立路径实时测量的路径带宽、时延与丢包率获取该路径的度量值并以此进行路径调度以及数据包分发;(2)发送端通过接收端发送的SACK块判断丢失数据包的路径并实施基于端到端路径的数据包快速重传。本发明可有效地降低因数据包乱序对SCTP多路径传输的影响,并且可提升基于SCTP的端到端多路径的性能。
文档编号H04L29/06GK101895466SQ20101022400
公开日2010年11月24日 申请日期2010年7月2日 优先权日2010年7月2日
发明者宋飞, 张宏科, 苏伟, 董平, 薛淼, 高德云 申请人:北京交通大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1