一种数据包的传输方法、系统的制作方法

文档序号:7770326阅读:164来源:国知局
专利名称:一种数据包的传输方法、系统的制作方法
技术领域
本发明属于互联网技术领域,尤其涉及一种数据包的传输方法、系统。
背景技术
传输控制协议(Transmission Control Protocol,TCP)是目前互联网中使用最广泛的协议。根据2009年11月份的最新统计:互联网总字节数的90%和总报文数的87%均使用TCP协议进行传输,可见TCP协议的重要性。现行的TCP协议一般采用两种方式来判定数据包的丢失:重传定时器超时或者数据发送端接收到一定数量DUP ACK消息(对同一个数据包的第二个及以上的ACK消息称为Duplicate ACK,简称DUP ACK)。对于根据DUP ACK消息判定数据包丢失的判别标准,需要一定的先决条件:网络结构稳定,同属于一个TCP连接的数据包按照同一路径到达接收端;中间路由器采用FIFO的原则,对先到的数据包进行优先处理。否则,如果数据包没有按照顺序到达,就意味着数据包的丢失,因而触发拥塞机制,减小发送端的拥塞窗口,从而降低数据发送端发到网络上的数据量。但是,乱序并不一定意味着丢包。在真实的网络中,中间结点的并发处理,链路层的重传,尤其是多路径传输的情况下,都会带来数据包的乱序。针对上述问题,现有技术提供了一种延迟递交DUP ACK的方法,来规避乱序带来的影响,具体的实现框图如图1所示:将相关操作放在数据发送服务器端上执行,延迟向协议层发送ACK消息,在延时等待过程中,实时更新接收到ACK的相关信息,从而达到规避乱序的目的。现有技术规避了乱序带来的影响,同时也引入了一些问题:在真正有丢包的情况下,该方案会引入较大的时延,对数据发送服务器端感知丢包带来延后,从而影响网络的性能。同时,一般网络中数据发送服务器端的TCP连接会非常多,需要针对每个TCP连接进行延时,因此实际实现起来比较困难;而且一般网络中的数据发送服务器端多数接入高速网络,服务提供商也没有动力进行驱动升级。综上所述,现有技术不能很好的解决由分流引起的TCP乱序的问题,导致在多路径传输的情况下,整个链路的速率较小,达不到多路径传输的真正目的。

发明内容
本发明实施例提供了一种数据包的传输方法、系统,旨在解决现有技术不能很好的解决由分流引起的TCP乱序的问题。一方面,提供一种数据包的传输方法,所述方法包括:数据包分流装置对接收到的数据包进行加序,生成加序数据包;根据分流比例确定所述加序数据包的发送链路,并通过所述发送链路传输所述加序数据包至数据包合流装置;数据包合流装置对所述加序数据包进行排序。
另一方面,提供一种数据包的传输系统,所述系统包括:数据包分流装置和数据包合流装置,所述数据包分流装置包括:加序单元,用于对接收到的数据包进行加序,生成加序数据包;发送单元,用于根据分流比例确定通过所述加序单元生成的加序数据包的发送链路,并通过所述发送链路传输所述加序数据包至数据包合流装置;所述数据包合流装置包括:接收单元,用于接收所述数据包分流装置发送的加序数据包;排序单元,用于对所述接收单元接收到的加序数据包进行排序。在本发明实施例中,先通过数据包分流装置对接收到的数据包进行加序,生成加序数据包,再根据分流比例确定所述加序数据包的发送链路,并通过所述发送链路传输所述加序数据包至数据包合流装置,最后由数据包合流装置对所述加序数据包进行排序。由于经数据包合流装置输出,发送给数据包接收端的是有序的数据包,所以可以有效地降低TCP乱序带来的负面影响,在多路径传输的过程中提升TCP端到端的性能。


图1是现有技术提供的延迟递交DUP ACK的方法的示意图;图2本发明实施例提供的数据包的传输方法的实现流程图;图3是本发明实施例提供的数据包分流装置对接收到的数据包进行加序,的实现流程;图4是本发明实施例提供的数据包协议头的格式示意图;图5是本发明实施例提供的数据包合流装置对加序数据包进行排序的实现流程图;图6是本发明实施例提供的数据包的传输系统的结构框图。
具体实施例方式为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。在本发明实施例中,先通过数据包分流装置对接收到的数据包进行加序,生成加序数据包,再根据分流比例确定所述加序数据包的发送链路,并通过所述发送链路传输所述加序数据包至数据包合流装置,最后由数据包合流装置对所述加序数据包进行排序。由于经数据包合流装置输出,发送给数据包接收端的是有序的数据包,所以可以有效地降低TCP乱序带来的负面影响,在多路径传输的过程中提升TCP端到端的性能。图2示出了本发明实施例提供的数据包的传输方法的实现流程,该方法可以应用于包括数据包分流装置、数据包合流装置、数据包发送端和数据包接收端的数据包的传输系统中,其中,数据包分流装置和数据包合流装置是数据包发送端和数据包接收端之间的一个节点。所述方法具体包括:步骤1、数据包分流装置对接收到的数据包进行加序,生成加序数据包。步骤2、根据分流比例确定所述加序数据包的发送链路,并通过所述发送链路传输所述加序数据包至数据包合流装置。步骤3、数据包合流装置对所述加序数据包进行排序。图3示出了本发明实施例提供的数据包分流装置对接收到的数据包进行加序,生成加序数据包的实现流程,具体包括:在步骤S301中,判断接收到的数据包是否是数据包分片,如果是,则执行步骤S303,否则,执行步骤S302。数据包分流装置接收到数据包发送端发送的数据包后,判断所述数据包是否是数据包分片,如果是,则执行步骤S303,否则,执行步骤S302。其中,判断所述数据包是否是数
据包分片以及判断所述数据包是否是最后一个分片数据包的依据是:
权利要求
1.一种数据包的传输方法,其特征在于,所述方法包括: 数据包分流装置对接收到的数据包进行加序,生成加序数据包; 根据分流比例确定所述加序数据包的发送链路,并通过所述发送链路传输所述加序数据包至数据包合流装置; 数据包合流装置对所述加序数据包进行排序。
2.如权利要求1所述的方法,其特征在于,所述对接收到的数据包进行加序,生成加序数据包的步骤包括: 判断所述数据包是否是数据包分片; 当所述数据包不是数据包分片时,设置所述数据包IP头部的标识字段的值为加序序号; 当所述数据包是数据包分片时,设置所述数据包分片IP头部的标识字段的值为加序序号,其中,加序后的同一数据包的不同数据包分片IP头部的标识字段的值相同。
3.如权利要求1所述的方法,其特征在于,所述数据包合流装置对所述加序数据包进行排序的步骤包括: 判断所述加序数据包是否是数据包分片; 当所述加序数据包不是数据包分片或者所述加序数据包是最后一个数据包分片时,根据所述加序数据包IP头部的标识字段的值对所述加序数据包进行排序; 当所述加序数据包是数据包分片,并且所述加序数据包不是最后一个数据包分片时,向上层发送所述加序数据包。
4.如权利要求3所述的方法,其特征在于,所述根据所述加序数据包IP头部的标识字段的值对所述加序数据包进行排序的步骤具体包括: 根据所述加序数据包IP头部的标识字段的值判断所述加序数据包是否是期望数据包; 如果所述加序数据包不是期望数据包,并且所述加序数据包在接收窗口内,将所述加序数据包放入缓存内; 如果所述加序数据包是期望数据包,则执行向上层发送所述加序数据包的步骤; 设置下一个加序序号为期望数据包的加序序号; 判断缓存内是否存在期望数据包; 如果缓存内存在期望数据包,则向上层发送所述期望数据包,并设置下一个加序序号为期望数据包的加序序号,如此循环,直至缓存内不存在期望数据包。
5.一种数据包的传输系统,所述系统包括:数据包分流装置和数据包合流装置,其特征在于,所述数据包分流装置包括: 加序单元,用于对接收到的数据包进行加序,生成加序数据包; 发送单元,用于根据分流比例确定通过所述加序单元生成的加序数据包的发送链路,并通过所述发送链路传输所述加序数据包至数据包合流装置; 所述数据包合流装置包括: 接收单元,用于接收所述数据包分流装置发送的加序数据包; 排序单元,用于对所述接收单元接收到的加序数据包进行排序。
6.如权利要求5所述的系统, 其特征在于,所述数据包分流装置的加序单元包括:分片判断模块,用于判断接收到的数据包是否是数据包分片; 第一序号设置模块,用于当所述数据包不是数据包分片时,设置所述数据包IP头部的标识字段的值为加序序号; 第二序号设置模块,用于当所述数据包是数据包分片时,设置所述数据包分片IP头部的标识字段的值为加序序号,其中,加序后的同一数据包的不同数据包分片IP头部的标识字段的值相同。
7.如权利要求6所述的系统,其特征在于,所述数据包合流装置的排序单元包括: 分片判断模块,用于判断所述加序数据包是否是数据包分片; 排序模块,用于当所述加序数据包不是数据包分片或者所述加序数据包是最后一个数据包分片时,根据所述加序数据包IP头部的标识字段的值对所述加序数据包进行排序; 发送模块,用于当所述加序数据包是数据包分片,并且所述加序数据包不是最后一个数据包分片时,向上层发送所述加序数据包。
8.如权利要求6所述的系统,其特征在于,所述数据包合流装置的排序单元的排序模块包括: 数据包判断子模块,用于根据加序数据包IP头部的标识字段的值判断所述加序数据包是否是期望数据包,如果所述加序数据包是期望数据包,则通过所述发送模块向上层发送所述加序数据包; 存储子模块,用于如果所述加序数据包不是期望数据包,将所述加序数据包放入缓存内; 序号设置子模块,用于设置下一个加序序号为期望数据包的加序序号; 缓存判断子模块,用于判断缓存内是否存在期望数据包; 缓存处理子模块,用于如果缓存内存在期望数据包,则向上层发送所述期望数据包,并设置下一个加序序号为期望数据包的加序序号,如此循环,直至缓存内不存在期望数据包。
全文摘要
本发明适用于互联网技术领域,提供了一种数据包的传输方法、系统,所述方法包括数据包分流装置对接收到的数据包进行加序,生成加序数据包;根据分流比例确定所述加序数据包的发送链路,并通过所述发送链路传输所述加序数据包至数据包合流装置;数据包合流装置对所述加序数据包进行排序。本发明,由于数据包合流装置输出的是有序的数据包,所以可以有效地降低TCP乱序带来的负面影响,在多路径传输的过程中提升TCP端到端的性能。
文档编号H04L12/861GK103166912SQ20111040820
公开日2013年6月19日 申请日期2011年12月9日 优先权日2011年12月9日
发明者郭志涛, 黄敏 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1