一种上行数据包发送方法、装置及网络设备的制作方法

文档序号:7856504阅读:141来源:国知局
专利名称:一种上行数据包发送方法、装置及网络设备的制作方法
技术领域
本发明涉及网络通信技术领域,尤其涉及ー种上行数据包发送方法、装置及网络设备。
背景技术
传统的TCP协议在每ー个数据包传输完成后都必须进行确认才能开始传输下ー个数据包。如果确认指令到达太慢,传输设备就会大大限制数据传输速率,从而导致数据传输速度比连接实际上所支持的速度慢。而FastTCP技术可以利用各种算法计算当一个数据包传输出去后到收到其确认指令之间所花时间,然后,再利用这个信息来推算连接可以支持的最高传输速率,并据此调整数据包发送速率。
发明人发现,FastTCP以计算RTT为衡量网络是否拥塞的基础,而RTT是从发送方发送数据包到接收方发送该数据包的ACK之间所经历的时间,这个时间包括了上行即发送端到接收端,以及下行即接收端到发送端的两端时间。当传输链路发送拥塞时,无论是上行链路拥塞还是下行链路发生拥塞,均会导致RTT増加,根据FastTCP计算的发送窗ロ将减小,即降低数据包的发送速率。如图Ia所示为下行链路发生拥塞的场景示意图,如图Ib所示,为上行链路发生拥塞的场景示意图。而根据互联网架构可知,全双エ的网络链路上,上行链路和下行链路性能是可以分开考虑的,但是仅仅根据RTT值无法区分是上行链路发生拥塞还是下行链路发生拥塞,如果不是上行链路发生拥塞,减小上行发送窗ロ将影响上行数据包发送速率和发送效率。

发明内容
本发明实施例提供ー种上行数据包发送方法、装置及网络设备,用以提高发送端数据包发送速率和发送效率。本发明实施例提供ー种上行数据包发送方法,包括每完成一次数据包发送时,确定本次上行数据包传输时长;根据本次上行数据包传输时长,分别确定当前上行数据包最小传输时长和当前上行数据包平均传输时长;确定当前上行数据包最小传输时长与当前上行数据包平均传输时长的差值;若所述差值大于等于预设減速阈值时,则减小上行数据包发送窗ロ ;若所述差值小于预设加速阈值时,则増大上行数据包发送窗ロ。本发明实施例提供ー种上行数据包发送装置,包括第一确定单兀,用于姆完成一次数据包发送时,确定本次上行数据包传输时长;第二确定单元,用于根据本次上行数据包传输时长,分别确定当前上行数据包最小传输时长和当前上行数据包平均传输时长;第三确定单元,用于确定确定当前上行数据包最小传输时长与当前上行数据包平均传输时长的差值;
控制单元,用于若所述差值大于等于预设減速阈值时,减小上行数据包发送窗ロ ;若所述差值小于预设加速阈值时,増大上行数据包发送窗ロ。本发明实施例提供的上行数据包发送方法、装置及网络设备,毎次发送数据包后,均会确定本次上行数据包传输时长,井根据该传输时长确定当前上行数据包最小传输时长以及当前上行数据包平均传输时长,若当前上行数据包平均传输时长与当前上行数据包最小传输时长的差值低于预设增速阈值时,可以确定当前上行链路未发生拥塞,此时可以增大发送窗ロ,若当前上行数据包平均传输时长与当前上行数据包最小传输时长的差值超过预设减速阈值时,可以确定当前上行链路发生拥塞,此时可以减小发送窗ロ,由于上述过程中对于上行数据包的发送速率控制只考虑上行链路是否发生拥塞,避免了由于下行链路拥塞时减小上行数据包发送窗ロ,从而,提高了上行数据包发送速率和发送效率。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。


图Ia为现有技术中,下行链路发生拥塞的场景示意图;图Ib为现有技术中,上行链路发生拥塞的场景示意图;图2为本发明实施例中,上行数据包发送方法的实施流程示意图;图3为本发明实施例中,上行数据包发送装置的结构示意图。
具体实施例方式为了避免FastTCP技术中,根据RTT控制数据包发送速率中存在的非上行链路拥塞时,减小上行数据包发送窗ロ而导致的上行数据包发送效率降低的问题,本发明实施例提供了 ー种上行数据包发送方法、装置及网络设备。以下结合说明书附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明,并且在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互組合。实施例一如图2所示,为本发明实施例中,上行数据包发送方法的实施流程示意图,包括以下步骤S201、每完成一次数据包发送时,发送端设备确定本次上行数据包传输时长;本发明实施例中,针对每个数据包,发送端设备接收到接收端设备返回的、该数据包的ACK数据包吋,认为完成一次数据包发送。发送端设备在TCP连接建立之初通告TCP时间戳选项,引导接收端设备启动时间戳,以便在收到的ACK (确认)数据包中包含时间戳值。若接收端设备支持时间戳选项,发送端设备在发送上行数据包吋,记录该数据包的发送时间,假设为tn(n为自然数)由于双方均开启了时间戳,则接收端设备在接收到上行数据包之后返回的该数据包的ACK数据包中,将包含ACK数据包的发送时间,假设为t' n,发送端设备根据ACK数据包的发送时间t' n和本端发送上行数据包的时间tn,确定本次上行数据包传输时长为ACK数据包的发送时间与本端发送上行数据包的时间之间的时间差值,以T表示本次上行数据包传输时长,则T = t’ n-tn。根据FastTCP的基本原理,上行数据包传输时长的变化可以反应本端上行链路的拥塞情况,其在上行链路没有拥塞时,将保持在一定水平,而当上行链路发生拥塞时,上行数据包传输时长将显著増大。若接收端设备不支持时间戳选项则按照FastTCP技术进行发送窗ロ大小的调整。需要说明的是,上行数据包传输时长还受到发送端设备和接收端设备本地时间的影响,如果两个设备的时间是同步的,那么按照上述方法所确定出的上行数据包传输时长即是实际发送过程所经历的时间,但是,实际应用中,往往两个设备之间的时间是不同步的,因此,按照上述方法确定出的上行数据包传输时长不能反应实际的传输时长。基于此,本发明实施例中,判断上行链路是否发生拥塞,不是根据上行数据包传输时长的大小确定,而是根据上行数据包传输时长大小的变化确定。 S202、根据本次上行数据包传输时长,分别确定当前上行数据包最小传输时长和当前上行数据包平均传输时长;为了便于描述,以tmin标识当前上行数据包最小传输时长,以t'min表示当前存储的上行数据包最小传输时长,当前存储的上行数据包最小传输时长为本次上行数据包发送之前、已发送的上行数据包中所用传输时长的最小值J表示当前上行数据包平均传输时长,r表示当前存储的上行数据包平均传输时长,当前存储的上行数据包平均传输时长为本次上行数据包发送之前、已发送的所有上行数据包的平均传输时长。以下分别对当前上行数据包最小传输时长的计算过程和当前上行数据包平均传输时长的计算过程进行说明。一、当前上行数据包最小传输时长的计算过程步骤一、发送端设备比较本次上行数据包传输时长与当前存储的上行数据包最小传输时长;具体的,比较T与t’ min的大小。步骤ニ、若本次上行数据包传输时长小于当前存储的上行数据包最小传输时长,确定本次上行数据包传输时长为当前上行数据包最小传输时长并存储;若本次上行数据包传输时长大于当前存储的上行数据包最小传输时长,保持当前上行数据包最小传输时长不变。具体的,本次上行数据包发送之后,如果T < t' min,则用T替换t' fflin,即当前上行数据包最小传输时长为tmin = T ;如果T彡tmin,保持tmin = t' min不变。ニ、当前上行数据包平均传输时长的计算过程发送端设备确定本次上行数据包传输时长和当前存储的上行数据包平均传输时长的加权平均值为当前上行数据包平均传输时长,当前存储的上行数据包传输时长所占权值与上次上行数据包平均传输时长所占权值为预设值。具体实施时,若用户对网络时延要求较高时,即需要根据实时链路状况调整数据包发送速率,可以设置上行数据包传输时长所占权值大于等于上次上行数据包平均传输时长所占权值;若用户对网络时延要求不高时,可以设置上行数据包传输时长所占权值小于上次上行数据包平均传输时长所占权值,这是因为上行数据包平均传输时长能够反映上行链路的整体拥塞状况,而一次数据包的上行传输时长具有一定的偶然性。
以当前存储的上行数据包平均传输时长所占权值为80%,本次上行数据包传输时长所占权值为20%为例,则本次上行数据包发送之后,计算出的当前上行数据包平均传输时长为f=r *80%- T *20%。为了更好地理解,以下针对tmin和 的具体计算过程进行说明;发送端设备发送第一个上行数据包后,假设确定出的第一个上行数据包的传输时长为T1,由于当前只发送了ー个上行数据包,因此tmin = T1,/=/发送端设备发送第二个上行数据包后,假设确定出的第二个上行数据包的传输时长为T2,且T2 > T1,则tmin = I1J = T1'^+ O1,其中,O1表示发送端当前存储的上行数 据包平均传输时长所占权值,W2表示本次上行数据包传输时长所占权值,且Oi G (0,1),
O2 E (0,1),w j+ O0 = I ;发送端设备发送第三个上行数据包后,假设确定出的第三个上行数据包的传输时长为 T3,且 T3 < T1,则 tmin = T3, i = (7; * CO,十 T2 * (D1} * COi 十 Ty * CO2 ;......依次类推,发送端设备每发送完成一个数据包,在接收到该数据包的ACK数据包之后便确定当前上行数据包最小传输时长tmin和当前上行数据包平均传输时长しS203、发送端设备确定当前上行数据包最小传输时长与当前上行数据包平均传输时长的差值;以Td表示当前上行数据包最小传输时长与当前上行数据包平均传输时长的差值,
则^ ニ レ tTain ;S204、判断当前上行数据包最小传输时长与当前上行数据包平均传输时长的差值是否大于等于预设减速阈值,如果是,执行步骤S205,否则执行步骤S206 ;具体实施时,由于在TCP连接建立之初,数据包发送窗ロ较小,此时,计算得到的RTT的值接近于最小RTT,较佳地,本发明实施例中,预设减速阈值可以小于TCP连接建立之初计算出的RTT,例如,预设减速阈值可以设置为1/6的RTT,或者1/8的RTT,当然也可以设置为其它值。S205、减小上行数据包发送窗ロ ;具体实施时,若当前上行数据包最小传输时长与当前上行数据包平均传输时长的差值超过预设减速阈值时,说明每次数据包发送往返时间较长,可以认为上行链路发生拥塞,因此,发送端需要减小上行数据包发送窗ロ。S206、继续判断当前上行数据包最小传输时长与当前上行数据包平均传输时长的差值是否小于预设加速阈值,如果是,执行步骤S207,否则执行步骤S208 ;具体实施吋,预设加速阈值应小于预设减速阈值。S207、增大上行数据包发送窗ロ ;具体实施时,若当前上行数据包最小传输时长与当前上行数据包平均传输时长的差值低于预设加速阈值时,说明每次数据包发送往返时间耗时不长,认为上行链路未发生拥塞,发送端可以增大上行数据包发送窗ロ。S208、保持当前数据包发送窗ロ不变。应当理解,具体实施时,上述过程中也可以首先判断当前上行数据包最小传输时长与当前上行数据包平均传输时长的差值是否小于预设增速阈值,如果是,则増大上行数据包发送窗ロ,否则,进一歩判断当前上行数据包最小传输时长与当前上行数据包平均传输时长的差值是否大于等于预设減速阈值,如果是,则减小上行数据包发送窗ロ,否则,保持上行数据包发送窗ロ不变。需要说明的时是,具体实施时,预设減速阈值和预设加速阈值可以相同,此时,只要当前上行数据包最小传输时长与当前上行数据包平均传输时长的差值超过该阈值,即减小数据包发送窗ロ,而若当前上行数据包最小传输时长与当前上行数据包平均传输时长的差值不超过该阈值,即增大数据包发送窗ロ。上述过程中,每接收到ー个上行数据包的ACK数据包,便计算当前上行数据包平均上行传输时长与当前上行数据包最小传输时长的差值,井根据计算结果来调整上行数据包发送窗ロ,这种方式比通过RTT值的变化来调整数据包发送窗ロ的大小更能有效的对上行链路的拥塞情况作出反应,避免出现由于下行链路拥塞而降低上行数据包发送速率的情况,最終实现高效加速发送端TCP发送速率的目的,并实现了提高发送端数据包发送效率 的目的。上述数据包发送方法只需要在单边部署即可实现加速发送端TCP发送速率的目的,与对端使用任何版本的TCP是兼容的。本发明实施例中,利用时间戳选项,获取数据包在上行链路所经历的时间,进而对发送窗ロ进行调整,在加速发送端发送速率的同时,精确判断上行链路的拥塞情况,避免下行链路拥塞影响上行数据包发送速率的情况,提高了上行链路数据包发送速率和发送效率。基于同一发明构思,本发明实施例中还提供了ー种上行数据包发送装置,由于上述装置解决问题的原理与上行数据包发送方法相似,因此上述装置的实施可以參见方法的实施,重复之处不再赘述。实施例ニ实施例ニ是与实施例一对应的上行数据包发送装置,其图3所示,上行数据包发送装置的结构示意图,包括第一确定单元301,用于每完成一次数据包发送时,确定本次上行数据包传输时长;第二确定单元302,用于根据本次上行数据包传输时长,分别确定当前上行数据包最小传输时长和当前上行数据包平均传输时长;第三确定单元303,用于确定确定当前上行数据包最小传输时长与当前上行数据包平均传输时长的差值;控制单元304,用于在第三确定单元303确定出的差值大于等于预设减速阈值时,减小上行数据包发送窗ロ ;若第三确定单元303确定出的差值小于预设加速阈值吋,增大上行数据包发送窗ロ。具体实施时,第一确定单元301,可以包括记录子単元,用于记录本次数据包的第一发送时间;接收子单元,用于接收所述数据包的确认ACK数据包,所述ACK数据包中携帯有所述ACK数据包的第二发送时间;第一确定子単元,用于确定所述第二发送时间与第一发送时间之间的时间差为本次上行数据包传输时长。具体实施时,第二确定单元302,可以包括比较子单元,用于比较本次上行数据包传输时长与当前存储的上行数据包最小传输时长;第二确定子単元,用于若本次上行数据包传输时长小于当前存储的上行数据包最小传输时长,确定本次上行数据包传输时长为当前上 行数据包最小传输时长;若本次上行数据包传输时长大于等于当前存储的上行数据包最小传输时长,保持当前上行数据包最小传输时长不变;存储子単元,用于存储第二确定子単元确定出的当前上行数据包最小传输时长。具体实施时,第二确定单元302可以用于确定本次上行数据包传输时长和上次上行数据包平均传输时长的加权平均值为当前上行数据包平均传输时长,本次上行数据包传输时长所占权值与上次上行数据包平均传输时长所占权值为预设值。具体实施时,上述上行数据包发送装置可以部署在客户端设备或者服务器端设备上,还可以部署在前端网关类设备中,从而能够在对后端设备透明的情况下对后端设备进行加速,ー种可能的实现方式为在后端设备通过常规TCP将数据包发送到该前端网关类设备上,前端网关类设备通过TCP代理将接收到的数据包转换成本发明实施例提供的TCP报文方法方式进行发送,也能够提高后端设备数据包发送速率和发送效率。本发明实施例提供的上行数据包发送方法、装置及网络设备,毎次发送数据包后,均会确定本次上行数据包传输时长,井根据该传输时长确定当前上行数据包最小传输时长以及当前上行数据包平均传输时长,若当前上行数据包平均传输时长与当前上行数据包最小传输时长的差值低于预设增速阈值时,可以确定当前上行链路未发生拥塞,此时可以增大发送窗ロ,若当前上行数据包平均传输时长与当前上行数据包最小传输时长的差值超过预设减速阈值时,可以确定当前上行链路发生拥塞,此时可以减小发送窗ロ,由于上述过程中对于上行数据包的发送速率控制只考虑上行链路是否发生拥塞,避免了由于下行链路拥塞时减小上行数据包发送窗ロ,从而,提高了上行数据包发送速率和发送效率。本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。本发明是參照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每ー流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生ー个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图ー个流程或多个流程和/或方框图ー个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图ー个流程或多个流程和/或方框图ー个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图ー个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围 之内,则本发明也意图包含这些改动和变型在内。
权利要求
1.ー种上行数据包发送方法,其特征在于,包括 每完成一次数据包发送时,确定本次上行数据包传输时长; 根据本次上行数据包传输时长,分别确定当前上行数据包最小传输时长和当前上行数据包平均传输时长;以及 确定当前上行数据包最小传输时长与当前上行数据包平均传输时长的差值; 若所述差值大于等于预设減速阈值时,则减小上行数据包发送窗ロ ; 若所述差值小于预设加速阈值吋,则增大上行数据包发送窗ロ。
2.如权利要求I所述的方法,其特征在于,确定本次上行数据包传输时长,具体包括 记录本次上行数据包的第一发送时间; 接收所述数据包的确认ACK数据包,所述ACK数据包中携帯有所述ACK数据包的第二发送时间; 确定所述第二发送时间与第一发送时间之间的时间差为本次上行数据包传输时长。
3.如权利要求I所述的方法,其特征在于,根据本次上行数据包传输时长,确定当前上行数据包最小传输时长,具体包括 比较本次上行数据包传输时长与当前存储的上行数据包最小传输时长; 若本次上行数据包传输时长小于当前存储的上行数据包最小传输时长,确定本次上行数据包传输时长为当前上行数据包最小传输时长并存储; 若本次上行数据包传输时长大于等于当前存储的上行数据包最小传输时长,保持当前上行数据包最小传输时长不变。
4.如权利要求I所述的方法,其特征在于,根据本次上行数据包传输时长,确定当前上行数据包平均传输时长,具体包括 确定本次上行数据包传输时长和当前存储的上行数据包平均传输时长加权平均值为当前上行数据包平均传输时长,本次上行数据包传输时长所占权值与当前存储的上行数据包平均传输时长所占权值为预设值。
5.ー种上行数据包发送装置,其特征在于,包括 第一确定单元,用于每完成一次数据包发送时,确定本次上行数据包传输时长; 第二确定单元,用于根据本次上行数据包传输时长,分别确定当前上行数据包最小传输时长和当前上行数据包平均传输时长; 第三确定单元,用于确定确定当前上行数据包最小传输时长与当前上行数据包平均传输时长的差值; 控制单元,用于在若所述差值大于等于预设減速阈值时,减小上行数据包发送窗ロ ;若所述差值小于预设加速阈值时,増大上行数据包发送窗ロ。
6.如权利要求5所述的装置,其特征在于,所述第一确定单元,包括 记录子単元,用于记录本次上行数据包的第一发送时间; 接收子单元,用于接收所述数据包的确认ACK数据包,所述ACK数据包中携帯有所述ACK数据包的第二发送时间; 第一确定子単元,用于确定所述第二发送时间与第一发送时间之间的时间差为本次上行数据包传输时长。
7.如权利要求5所述的装置,其特征在于,所述第二确定单元,包括比较子单元,用于比较本次上行数据包传输时长与当前存储的上行数据包最小传输时长; 第二确定子単元,用于若本次上行数据包传输时长小于当前存储的上行数据包最小传输时长,确定本次上行数据包传输时长为当前上行数据包最小传输时长;若本次上行数据包传输时长大于等于当前存储的上行数据包最小传输时长,保持当前上行数据包最小传输时长不变; 存储子単元,用于存储第二确定子単元确定出的当前上行数据包最小传输时长。
8.如权利要求5所述的装置,其特征在干, 所述第二确定单元,具体用于确定本次上行数据包传输时长和上次上行数据包平均传输时长的加权平均值为当前上行数据包平均传输时长,本次上行数据包传输时长所占权值与上次上行数据包平均传输时长所占权值为预设值。
9.ー种网络设备,其特征在于,包括权利要求51任ー权利要求所述的装置。
全文摘要
本发明公开了一种上行数据包发送方法、装置及网络设备,用以提高发送端数据包发送速率和发送效率。其中,上行数据包发送方法,包括每完成一次数据包发送时,确定本次上行数据包传输时长;根据本次上行数据包传输时长,分别确定当前上行数据包最小传输时长和当前上行数据包平均传输时长;确定当前上行数据包最小传输时长与当前上行数据包平均传输时长的差值;若所述差值大于等于预设减速阈值时,则减小上行数据包发送窗口;若所述差值小于预设加速阈值时,则增大上行数据包发送窗口。
文档编号H04L12/56GK102780621SQ20121025692
公开日2012年11月14日 申请日期2012年7月23日 优先权日2012年7月23日
发明者彭凌 申请人:北京星网锐捷网络技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1