一种对抗链路乱序的方法

文档序号:7683490阅读:263来源:国知局
专利名称:一种对抗链路乱序的方法
技术领域
本发明涉及数据通讯领域,尤其涉及一种对抗链路乱序的方法。
技术背景传输控制协议(Transmission Control Protocol, TCP )和流量控制传输协 议(Stream Control Transmission Protocol, SCTP)是当前最广泛应用的可靠 传输协议,不但保证了报文被可靠有序地传输,同时还具有良好的网络拥塞 控制和拥塞恢复机制。但是,如果网络中存在报文乱序(例如网络中存在多 路径的情形),可能会导致TCP和SCTP启动快速重传(Fast Retransmit)。 选择确认(SACK, Selective Acknowledgement)算法被普遍应用于可靠传输 协议中,SCTP协议规定其作为SCTP的确认方式(rfc2960) , TCP协议规 定其作为TCP的可选确认方式(rfc2883 )。如图l所示,是现有技术中乱序导致的快速重传报文时序图。如果发送 端几乎在同一时刻连续发送了 5个报文,这5个报文也几乎在同一时刻到达 了接收端。但由于链路乱序,报文l最后一个到达;接收端收到了报文2、 3、 4、 5后,因为报文l尚未到达,会立即回应带缺失块(GapAckBlocks) 的SACK;按照快速重传的算法规定,发送端连续收到了 4个对报文1的缺 失指示,启动快速重传,重发了报文l。这样接收端便会收到2次报文1, 而实际上第一个报文很快就到达了接收端,重发报文其实是没有必要的,也 就是说报文l被不必要的重传了。这是快速重传算法本身的不足,即无法区 分乱序和真正的丟包。另一方面,虽然接收端收到重复报文后,会在确认报 文SACK中设置duplicate字段,但目前并无资料说明该字段的使用场景, 即发送端并不知道如何处理SACK中的duplicate字段。TCP和SCTP启动快速重传(Fast Retransmit)实际上是不必要的,因 为报文并未真正丟失,时延也没有问题,报文乱序可能只是网络中存在着多条通路,而非真正的链路质量问题。这种情形下启动快速重传不但增加了不 必要的网络负荷,同时也会因为误判造成的拥塞窗口缩小而影响了发送速率。发明内容本发明要解决的技术问题是提供一种对抗链路乱序的方法,解决在报文 乱序的情况下网络重传的问题。技术方案如下一种对抗链路乱序的方法,步骤包括(1) 在快速重传算法中设定"快速重传启动门限,,;(2) 当发生快速重传或者超时重传时,发送端对所述"快速重传启动 门限"的值进行修改;(3) 当某个报文的丢失指示累计值超过所述"快速重传启动门限"的 值时,对该报文进行快速重传。进一步,步骤(1)中,当基于可靠传输协议建链后,所述"快速重传 启动门限"的默i人值至少为4。进一步,步骤(2)中,当发生快速重传时,对重传报文的传输序号TSN 进行记录,将收到的所述SACK中duplicate字段的TSN与本地记录的TSN 进行比较,相等时,则增加所述"快速重传启动门限"的值;当发生超时重 传时,降低所述"快速重传启动门限"的值。进一步,步骤(2)中,如果所述收到的SACK的duplicate字段中所有 的TSN均是由快速重传引起的,则增加所述"快速重传启动门限,,的值。进一步,步骤(2)中,记录本连接最近一次重传的原因,如果所述最 近一次重传是快速重传,则对所述"快速重传启动门限"加l。进一步,步骤(2)中,对于超时重传则降低所述"快速重传启动门限,, 的值,将所述"快速重传启动门限"恢复成所述默认值;或者将所述"快速 重传启动门限,,变为当前值的一半,并且不小于所述默认值。进一步,步骤(l)中,所述可靠传输协议为传输控制协议TCP或者流 量控制传输协议SCTP。进一步,步骤(2)中,当在一定时间内未发生所述快速重传或者未收 到带有所述duplicate字段的SACK,则降低所述"快速重传启动门限"的值。本发明基于可靠传输协议(包括SCTP和TCP等)利用SACK中的 duplicate字段对抗链路乱序,解决了在报文乱序的情况下网络重传的问题, 同时提高传输速率。


图l是现有技术中乱序导致的快速重传报文时序图;图2是本发明中增大快速重传启动门限后的报文乱序时序图;图3是本发明中快速重传启动门限改变前后超时重传的时序图。
具体实施方式
快速重传(Fast Retransmit)算法规定,如果报文被4次通告缺失,则 启动快速重传对该l艮文进行重传,本发明将这个次^:称为"快速重传启动门 限",同时将其作为可变参量,并可以动态调整。1、 当基于可靠传输协议(TCP或SCTP)建链后,将"快速重传启动 门限"默认值设置为4。2、 当发生快速重传后,对重传报文的传输序号(TSN, Transmission Sequence Number)进行记录。如果收到的SACK中带有duplicate字段,则 将duplicate字段的TSN与本地记录的TSN进行比较。如果SACK的duplicate 字段中所有的TSN均是由快速重传引起的,则对"快速重传启动门限"值 加1。3、 当发生超时重传时,降低"快速重传启动门限"的值。"快速重传启动门限"调整尺度只与携带有duplicate字段的SACK数 目有关,而与duplicate字段中的TSN数目无关。因为收到带有duplicate字 段的SACK时,对应的数据报文通常都已经从发送緩存中释放,所以记录每个快速重传报文的TSN实现上比较复杂,可以用一种筒单的方法近似即 记录本连接最近一次重传的原因,如果收到了带duplicate字段的SACK,且 最近一次重传是快速重传,则对"快速重传启动门限"力口l。对于超时重传则降低"快速重传启动门限"的值,可以将"快速重传启 动门限"恢复成默认值,也可以将其变为当前值的一半,但不能小于默认值。 也可以通过其它的方式降低"快速重传启动门限",例如,如果长时间未发 生快速重传,或者长时间未收到带有duplicate字段的SACK的情况下,可 以考虑降低"快速重传启动门限,,。图2是本发明中增大快速重传启动门限后的报文乱序时序图,下面结合 实施例和附图来说明本发明的工作原理。延承图1的时序,发送端在收到了带有duplicate字段的SACK后,将 其"快速重传启动门限"值加l,门限值变为5。再次连续发送5个才良文, 同样出现了乱序,报文1后于报文2、 3、 4、 5到达。当报文2、 3、 4、 5到达时,接收端会因为未收到报文1而立即回应带 有缺失块的SACK;发送端收到SACK后,记录报文1的丟失次数;报文5 的确认到达后,报文1丢失指示的累计值增加为4,但由于未达到"快速重 传启动门限",不启动快速重传;收到报文l的确认后,发送端清除了报文 1的丟失指示值。至此,所有发送报文得到了确认,无需再启动重传。可以看出,虽然发 送场景和网络状况未改变,但由于调整了 "快速重传启动门限",避免了不 必要的重传。当然如果发送端流量增大, 一次发送了更多的报文,仍有可能 误启动快速重传;但启动快速重传会导致SACK中携带duplicate字段(如 图l所示),采用本发明的算法后,将触发"快速重传启动门限"的值进一 步的提升,最终报文达到传输乱序却不需要重传的效果。图3是本发明中快速重传启动门限改变前后超时重传的时序图。"快速重传启动门限"并非越大越好,提高"快速重传启动门限,,会增 大超时重传发生的可能。如果报文真的丟失,当"快速重传启动门限,,的值 为4时,会在收到报文5的确认后立即启动快速重传,如图3右图;但如果启动门限为5,因为缺失指示没有达到门限值而未启动快速重传,如果此后 再没有新的数据发送,则会导致超时重传(timeout retransmission),如图3 左图。所以如果发生超时重传,则说明链路质量确实出现了问题,应该及时 降低快速重传启动门限,降低再次发生超时重传的可能。综上所述,本发明通过甄别乱序和丢包,动态地调节"快速重传启动门 限,,,可以有效地避免乱序造成的快速重传,同时也可以在报文丟失后,有 效恢复,具有更好的适应性和流量控制效果。
权利要求
1、一种对抗链路乱序的方法,其特征在于,包括以下步骤(1)在快速重传算法中设定“快速重传启动门限”;(2)当发生快速重传或者超时重传时,发送端对所述“快速重传启动门限”的值进行修改;(3)当某个报文的丢失指示累计值超过所述“快速重传启动门限”的值时,对该报文进行快速重传。
2、 如权利要求1所述的对抗链路乱序的方法,其特征在于,步骤(l) 中,当基于可靠传输协议建链后,所述"快速重传启动门限"的默认值至少 为4。
3、 如权利要求1所述的对抗链路乱序的方法,其特征在于,步骤(2) 中,当发生快速重传时,对重传报文的传输序号TSN进行记录,将收到的 确认报文SACK中duplicate字段的TSN与本地记录的TSN进行比较,相等 时,则增加所述"快速重传启动门限"的值;当发生超时重传时,降低所述"快速重传启动门限"的值。
4、 如权利要求3所述的对抗链路乱序的方法,其特征在于,步骤(2) 中,如果所述收到的SACK的duplicate字段中所有的TSN均是由快速重传 引起的,则增加所述"快速重传启动门限"的值。
5、 如权利要求1所述的对抗链路乱序的方法,其特征在于,步骤(2) 中,记录本连接最近一次重传的原因,如果所述最近一次重传是快速重传, 则对所述"快速重传启动门限"加l。
6、 如权利要求1所述的对抗链路乱序的方法,其特征在于,步骤(2) 中,对于超时重传,则降低所述"快速重传启动门限,,的值,将所述"快速 重传启动门限"恢复成所述默认值;或者将所述"快速重传启动门限"变为 当前值的一半,并且不小于所述默认值。
7、 如权利要求1所述的对抗链路乱序的方法,其特征在于,步骤(l)中,所述可靠传输协议为传输控制协议TCP或者流量控制传输协议SCTP。
8、如权利要求1所述的对抗链路乱序的方法,其特征在于,步骤(2) 中,当在一定时间内未发生所述快速重传或者未收到带有所述duplicate字 段的SACK,则降低所述"快速重传启动门限"的值。
全文摘要
本发明公开了一种对抗链路乱序的方法,应用于数据通讯领域,包括以下步骤在快速重传算法中设定“快速重传启动门限”;当发生快速重传或者超时重传时,发送端对所述“快速重传启动门限”的值进行修改;当某个报文的丢失指示累计值超过所述“快速重传启动门限”的值时,对该报文进行快速重传。本发明技术方案解决了在报文乱序的情况下网络重传的问题,同时提高了传输速率。
文档编号H04L29/06GK101227478SQ200810007170
公开日2008年7月23日 申请日期2008年2月2日 优先权日2008年2月2日
发明者闫新成 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1