一种发送credit包的停止信号的方法和装置与流程

文档序号:16309528发布日期:2018-12-19 05:13阅读:268来源:国知局
一种发送credit包的停止信号的方法和装置与流程

本发明涉及链路流量控制算法技术领域,特别是涉及一种发送credit包的停止信号的方法和装置。

背景技术

随着云计算、大数据业务等新型数据业务的快速发展,而传统的传输控制协议已经无法满足新型数据业务的低时延的要求,比如传输控制协议(transmissioncontrolprotocol,tcp)主要依靠数据包的丢包数来判断链路的拥塞情况,当链路刚出现拥塞时,由于丢包数较少未达到阈值,导致无法及时发现拥塞,从而引起数据业务的时延增加。为此,基于可靠credit包的控制流量快速通过(expresspass)算法应运而生。基于credit包的expresspass算法可以通过上游路由器和下游路由器互发credit包,来计算下游路由器的处理能力,即下游路由器能够接收数据包的数量,从而控制上游路由器向下游路由器发送数据包的数量,以避免由于下游路由器接收到的数据包的数量超过其处理能力而造成链路拥塞。

下面举例说明基于credit包的expresspass算法的控制流程:

需要先说明的是,数据包从上游路由器传输至下游路由器,再由下游路由器发送至下行链路。上游路由器的输出端口处有一个计数器,该计数器的初始值为下游路由器输入端口的数据包缓存队列的上限值,也即下游路由器能够接收的数据包的最大量。

上游路由器每向下游路由器发送一个数据包,上游路由器的输出端口处的计数器的值就减1。当上游路由器的输出端口处的计数器的值为0时,说明下游路由器输入端口的数据包缓存队列已满,无法继续接收数据包。此时,上游路由器停止向下游路由器发送数据包。当下游路由器向下行链路发送一个数据包时,说明下游路由器输入端口的数据包缓存队列被释放,此时,下游路由器向上游路由器传回一个credit包。当上游路由器接收到该credit包后,上游路由器的输出端口处的计数器的值加1,这样,上游路由器可以再向下游路由器发送一个数据包。

当上游路由器中待发送的数据包的数量为零时,说明上游路由器已经无需再发送数据包,也就无需再接收credit包,可以向下游路由器发送credit包的停止信号,以使下游路由器不再传回credit包。但由于credit包的停止信号从上游路由器传输到下游路由器需要花费时间,那么,下游路由器在上游路由器发送credit包的停止信号之后,继续向上游路由器返回的credit包为无用的credit包。这些无用的credit包会占用带宽资源,尤其在传输资源紧张的情况下,可能对其他数据包的传输效率造成不良影响。



技术实现要素:

本发明实施例的目的在于提供一种发送credit包的停止信号的方法和装置,以避免由于传输无用的credit包而对其他数据包的传输效率造成不良影响。具体技术方案如下:

本发明实施例提供了一种发送credit包的停止信号的方法,应用于上游路由器,所述方法包括:

在接收到来自预设的下游路由器的credit包之后,若待发送的数据包的数量不为零,则计算在预设时长内,预设的下游路由器以当前credit包的发送速率发送credit包的数量,将所述credit包的数量作为上游路由器接收credit包的预期接收数量,其中,上游路由器发送数据包至预设的下游路由器,预设时长为数据包从上游路由器传输到预设的下游路由器所用的时长;

若预期接收数量大于或等于待发送的数据包的数量,则向预设的下游路由器发送credit包的停止信号。

可选的,在所述计算在预设时长内,预设的下游路由器以当前credit包的发送速率发送credit包的数量,将所述credit包的数量作为上游路由器接收credit包的预期接收数量的步骤之前,所述方法还包括:

向预设的下游路由器发送一个数据包。

可选的,所述预设时长包括:预设的往返时延rtt的二分之一。

可选的,所述计算在预设时长内,预设的下游路由器以当前credit包的发送速率发送credit包的数量,将所述credit包的数量作为上游路由器接收credit包的预期接收数量的步骤,包括:

将预设的下游路由器当前credit包的发送速率乘以预设时长,得到预设的下游路由器在预设时长内发送credit包的数量,将所述credit包的数量作为上游路由器接收credit包的预期接收数量。

可选的,所述将预设的下游路由器当前credit包的发送速率乘以预设时长,得到预设的下游路由器在预设时长内发送credit包的数量,将所述credit包的数量作为上游路由器接收credit包的预期接收数量的步骤,包括:

根据如下公式,将预设的下游路由器当前credit包的发送速率乘以预设时长,得到预设的下游路由器在预设时长内发送credit包的数量,将所述credit包的数量作为上游路由器接收credit包的预期接收数量;

在公式中,credit_expected为预设时长内,上游路由器接收credit包的预期接收数量;rtt为预设的往返时延;cur_credit_rate_为预设的下游路由器当前credit包的发送速率;q为基于credit包丢包率的调节参数值。

可选的,在所述计算在预设时长内,预设的下游路由器以当前credit包的发送速率发送credit包的数量,将所述credit包的数量作为上游路由器接收credit包的预期接收数量的步骤之后,所述方法还包括:

若预期接收数量小于待发送的数据包的数量,则不向预设的下游路由器发送credit包的停止信号。

本发明实施又提供了一种发送credit包的停止信号的装置,应用于上游路由器,所述装置包括:

计算模块,用于在接收到来自预设的下游路由器的credit包之后,若待发送的数据包的数量不为零,则计算在预设时长内,预设的下游路由器以当前credit包的发送速率发送credit包的数量,将所述credit包的数量作为上游路由器接收credit包的预期接收数量,其中,上游路由器发送数据包至预设的下游路由器,预设时长为数据包从上游路由器传输到预设的下游路由器所用的时长;

发送模块,用于若所述计算模块得到的预期接收数量大于或等于待发送的数据包的数量,则向预设的下游路由器发送credit包的停止信号。

可选的,发送模块,还用于向预设的下游路由器发送一个数据包。

可选的,所述预设时长包括:预设的往返时延rtt的二分之一。

可选的,计算模块,具体用于将预设的下游路由器当前credit包的发送速率乘以预设时长,得到预设的下游路由器在预设时长内发送credit包的数量,将所述credit包的数量作为上游路由器接收credit包的预期接收数量。

可选的,计算模块,具体用于根据如下公式,将预设的下游路由器当前credit包的发送速率乘以预设时长,得到预设的下游路由器在预设时长内发送credit包的数量,将所述credit包的数量作为上游路由器接收credit包的预期接收数量;

在公式中,credit_expected为预设时长内,上游路由器接收credit包的预期接收数量;rtt为预设的往返时延;cur_credit_rate_为预设的下游路由器当前credit包的发送速率;q为基于credit包丢包率的调节参数值。

可选的,发送模块,还用于若预期接收数量小于待发送的数据包的数量,则不向预设的下游路由器发送credit包的停止信号。

本发明实施例再提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;

存储器,用于存放计算机程序;

处理器,用于执行存储器上所存放的程序时,实现上述任一所述的发送credit包的停止信号的方法。

本发明实施例提供的发送credit包的停止信号的方法和装置,首先,在接收到来自预设的下游路由器的credit包之后,若待发送的数据包的数量不为零,则可以计算在预设时长内,预设的下游路由器以当前的发送速率发送的数据包的数量,将所述数据包的数量作为上游路由器的接收到的credit包的预期接收数量,其中,预设时长为数据包从上游路由器传输到预设的下游路由器所用的时长,数据包包括credit包;若预期接收数量大于或等于待发送的数据包的数量,则向下游路由器发送credit包的停止信号。

可见,在预期接收数量大于或者等于上游路由器的待发送的数据包的数量的情况下,即使上游路由器立即向预设的下游路由器发送credit包的停止信号,上游路由器在从发送credit包的停止信号到预设的下游路由器接收到credit包的停止信号的这段时间内,接收到的credit包也足够用于将待发送的数据包全部发送完成。因此,上游路由器可以在待发送的数据包的数量不为零,且预期接收数量大于或者等于待发送的数据包的数量的情况下,提前向预设的下游路由器发送credit包的停止信号,而不必等待发送的数据包为零时再向预设的下游路由器发送credit包的停止信号,可以避免由于预设的下游路由器向上游路由器返回无用的credit包而对其他数据包的传输效率造成不良影响。

当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例的发送credit包的停止信号的方法的一种流程图;

图2为本发明实施例的发送credit包的停止信号的方法的又一种流程图;

图3为本发明实施例的发送credit包的停止信号的装置的一种结构示意图;

图4为本发明实施例的电子设备的一种结构图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例提供了一种发送credit包的停止信号的方法,应用于上游路由器。参见图1,图1为本发明实施例提供的发送credit包的停止信号的方法的一种流程图,可以包括如下步骤:

步骤101,上游路由器在接收到来自预设的下游路由器的credit包之后,判断待发送的数据包的数量是否为零;若为否,则执行步骤102。

需要说明的是,一个路由器将数据包发送至另一个路由器,其中,上述一个路由器就是上游路由器,上述另一个路由器就是下游路由器,也就是说,上游路由器发送数据包至预设的下游路由器。对于普通的数据包来讲,是由上游路由器发送至预设的下游路由器,对于credit包来讲,是由预设的下游路由器发送至上游路由器。此外,待发送的数据包是指上游路由器中,等待发送的数据包。

在本步骤中,上游路由器在接收到来自预设的下游路由器的credit包之后,判断待发送的数据包的数量是否为零;

若待发送的数据包的数量为零,则说明上游路由器已经没有可发送的数据包,可以向预设的下游路由器发送credit包的停止信号,以使预设的下游路由器停止发送credit包。但由于credit包的停止信号从上游路由器传输到预设的下游路由器需要花费时间,那么,预设的下游路由器在上游路由器发送credit包的停止信号之后,继续向上游路由器返回的credit包为无用的credit包。这些无用的credit包会占用带宽资源,尤其在传输资源紧张的情况下,可能对其他数据包的传输效率造成不良影响;

若待发送的数据包的数量不为零,则可以通过执行后续步骤,计算接收credit包的预期接收数量进而判断是否可以发送credit包的停止信号,以实现提前向预设的下游路由器发送credit包的停止信号,避免由于预设的下游路由器向上游路由器返回无用的credit包而对其他数据包的传输效率造成不良影响。

步骤102,上游路由器计算在预设时长内,预设的下游路由器以当前credit包的发送速率发送credit包的数量,将所述credit包的数量作为上游路由器接收credit包的预期接收数量。

其中,预设时长为数据包从上游路由器传输到预设的下游路由器所用的时长,数据包包括credit包的停止信号,也就是说,预设的时长就是credit包的停止信号,从上游路由器传输到预设的下游路由器的这段时长。

在本步骤中,若待发送的数据包的数量不为零,则上游路由器可以计算在预设时长内,预设的下游路由器以当前credit包的发送速率发送credit包的数量,并将所述credit包的数量作为上游路由器接收credit包的预期接收数量,以通过比较预期接收数量与待发送的数据包的数量的大小,来判断是否可以发送credit包的停止信号。

可以理解的,上游路由器接收credit包的预期接收数量就是指:预设的下游路由器在预设时长内发出的credit包的数量,其中,当前credit包的发送速率可以直接获取到,当前credit包的发送速率每经过一个往返时延rtt可能会随通信网络的情况发生变化。

一种实现方式中,步骤102可以包括:

上游路由器将预设的下游路由器当前credit包的发送速率乘以预设时长,得到预设的下游路由器在预设时长内发送credit包的数量,将所述credit包的数量作为上游路由器接收credit包的预期接收数量。

其中,预设的往返时延rtt的二分之一,预设的往返时延rtt可以直接获取到。

具体的,将预设的下游路由器当前credit包的发送速率乘以预设时长,得到的就是预设的下游路由器在预设时长内发出的credit包的数量。上述步骤可以通过公式(1)来实现:

在公式(1)中,credit_expected为预设时长内,上游路由器接收credit包的预期接收数量;rtt为预设的往返时延;cur_credit_rate_为预设的下游路由器当前credit包的发送速率;q为基于credit包丢包率的调节参数值。

需要说明的是,由于credit包存在丢失率,为了保证计算出的预期接收数量的准确性,因此提出基于credit包丢包率的调节参数值q,避免出现上游路由器的待发送的数据包还未发送完,预设的下游路由器就停止发送credit包的问题。

步骤103,上游路由器判断预期接收数量是否大于或等于待发送的数据包的数量;若为是,则执行步骤104。

在本步骤中,判断由步骤102计算出的上游路由器接收credit包的预期接收数量,是否大于或者等于待发送的数据包的数量;

若预期接收数量大于或者等于待发送的数据包的数量,则说明即使上游路由器立即向预设的下游路由器发送credit包的停止信号,上游路由器在从发送credit包的停止信号到预设的下游路由器接收到credit包的停止信号的这段时间内,接收到的credit包也足够用于将待发送的数据包全部发送完成,这样,可以通过执行步骤104,提前向预设的下游路由器发送credit包的停止信号,而不必等待发送的数据包为零时再向预设的下游路由器发送credit包的停止信号,以避免由于预设的下游路由器向上游路由器返回无用的credit包而对其他数据包的传输效率造成不良影响。

若预期接收数量小于待发送的数据包的数量,则上游路由器不可以向下游路由器发送credit包的停止信号,以避免出现上游路由器的待发送的数据包还未发送完,预设的下游路由器就停止发送credit包的问题。

步骤104,上游路由器向预设的下游路由器发送credit包的停止信号。

在本步骤中,若预期接收数量大于或等于待发送的数据包的数量,则上游路由器可以向预设的下游路由器发送credit包的停止信号,以避免由于预设的下游路由器向上游路由器返回无用的credit包而对其他数据包的传输效率造成不良影响。

可见,在本发明实施例提供的发送credit包的停止信号的方法中,上游路由器可以计算上游路由器接收credit包的预期接收数量,在待发送的数据包的数量不为零,且预期接收数量大于或者等于待发送的数据包的数量的情况下,提前向预设的下游路由器发送credit包的停止信号,而不必等待发送的数据包为零时再向预设的下游路由器发送credit包的停止信号,可以避免由于预设的下游路由器向上游路由器返回无用的credit包而对其他数据包的传输效率造成不良影响。

本发明实施例又提供了一种发送credit包的停止信号的方法,应用于上游路由器。参见图2,图2为本发明实施例提供的发送credit包的停止信号的方法的又一种流程图,可以包括如下步骤:

步骤201,上游路由器在接收到来自预设的下游路由器的credit包之后,判断待发送的数据包的数量是否为零;若为否,则执行步骤202。

本步骤的详细过程和技术效果,可以参考图1所示的发送credit包的停止信号的方法中的步骤101。

步骤202,上游路由器向预设的下游路由器发送一个数据包,执行步骤203。

由于在步骤201中,上游路由器接收到来自预设的下游路由器的credit包,因此,在本步骤中,上游路由器可以向下游路由器发送一个数据包,也即待发送的数据包的数量减1,此外,上游路由器的输出端口处的计数器的值减1。

在实际应用中,上游路由器的输出端口处有一个计数器,该计数器的初始值为下游路由器输入端口的数据包缓存队列的上限值,也即下游路由器能够接收的数据包的最大量。基于credit包的expresspass算法的控制流程如下:

上游路由器每向下游路由器发送一个数据包,上游路由器的输出端口处的计数器的值就减1。当上游路由器的输出端口处的计数器的值为0时,说明下游路由器输入端口的数据包缓存队列已满,无法继续接收数据包。此时,上游路由器停止向下游路由器发送数据包。当下游路由器向下行链路发送一个数据包时,说明下游路由器输入端口的数据包缓存队列被释放,此时,下游路由器向上游路由器传回一个credit包。当上游路由器接收到该credit包后,上游路由器的输出端口处的计数器的值加1,这样,上游路由器可以再向下游路由器发送一个数据包。

需要说明的是,由于在后续步骤中,当预期接收数量大于或者等于待发送的数据包的数量时,可以由上游路由器向预设的下游路由器发送credit包的停止信号,因此,在步骤202中将待发送的数据包的数量减一,相当于降低了上游路由器向预设的下游路由器发送credit包的停止信号的约束条件。相比于不执行步骤202,上游路由器向预设的下游路由器发送credit包的停止信号的时机能够更加提前,可以更加准确的阻止预设的下游路由器向上游路由器返回无用的credit包,避免无用的credit包对其他数据包的传输效率造成不良影响。

步骤203,上游路由器计算在预设时长内,预设的下游路由器以当前credit包的发送速率发送credit包的数量,将所述credit包的数量作为上游路由器接收credit包的预期接收数量。

本步骤的详细过程和技术效果,可以参考图1所示的发送credit包的停止信号的方法中的步骤102。

步骤204,上游路由器判断预期接收数量是否大于或等于待发送的数据包的数量;若为是,则执行步骤205;若为否,则执行步骤206。

本步骤的详细过程和技术效果,可以参考图1所示的发送credit包的停止信号的方法中的步骤103。

步骤205,上游路由器向预设的下游路由器发送credit包的停止信号。

本步骤的详细过程和技术效果,可以参考图1所示的发送credit包的停止信号的方法中的步骤104。

步骤206,上游路由器不向预设的下游路由器发送credit包的停止信号。

在本步骤中,若预期接收数量小于待发送的数据包的数量,则上游路由器不可以向下游路由器发送credit包的停止信号,以避免出现上游路由器的待发送的数据包还未发送完,预设的下游路由器就停止发送credit包的问题。

可见,在本发明实施例提供的发送credit包的停止信号的方法中,上游路由器在接收到credit包时,可以在向下游路由器发送一个数据包之后,计算上游路由器接收credit包的预期接收数量;在待发送的数据包的数量不为零,且预期接收数量大于或者等于待发送的数据包的数量的情况下,提前向预设的下游路由器发送credit包的停止信号,而不必等待发送的数据包为零时再向预设的下游路由器发送credit包的停止信号,可以避免由于预设的下游路由器向上游路由器返回无用的credit包而对其他数据包的传输效率造成不良影响;而在待发送的数据包的数量不为零,且预期接收数量小于待发送的数据包的数量的情况下,不向预设的下游路由器发送credit包的停止信号,以避免出现上游路由器的待发送的数据包还未发送完,预设的下游路由器就停止发送credit包的问题。

本发明实施例又提供了一种发送credit包的停止信号的装置,应用于上游路由器。参见图3,图3为本发明实施例提供的发送credit包的停止信号的装置的一种结构图,该装置可以包括:

计算模块301,用于在接收到来自预设的下游路由器的credit包之后,若待发送的数据包的数量不为零,则计算在预设时长内,预设的下游路由器以当前credit包的发送速率发送credit包的数量,将所述credit包的数量作为上游路由器接收credit包的预期接收数量,其中,上游路由器发送数据包至预设的下游路由器,预设时长为数据包从上游路由器传输到预设的下游路由器所用的时长;

发送模块302,用于若计算模块301得到的预期接收数量大于或等于待发送的数据包的数量,则向预设的下游路由器发送credit包的停止信号。

可选的,发送模块302,还用于向预设的下游路由器发送一个数据包。

可选的,所述预设时长包括:预设的往返时延rtt的二分之一。

可选的,计算模块301,具体用于将预设的下游路由器当前credit包的发送速率乘以预设时长,得到预设的下游路由器在预设时长内发送credit包的数量,将所述credit包的数量作为上游路由器接收credit包的预期接收数量。

可选的,计算模块301,具体用于根据如下公式,将预设的下游路由器当前credit包的发送速率乘以预设时长,得到预设的下游路由器在预设时长内发送credit包的数量,将所述credit包的数量作为上游路由器接收credit包的预期接收数量;

在公式中,credit_expected为预设时长内,上游路由器接收credit包的预期接收数量;rtt为预设的往返时延;cur_credit_rate_为预设的下游路由器当前credit包的发送速率;q为基于credit包丢包率的调节参数值。

可选的,发送模块302,还用于若预期接收数量小于待发送的数据包的数量,则不向预设的下游路由器发送credit包的停止信号。

可见,在本发明实施例提供的发送credit包的停止信号的装置中,上游路由器可以计算上游路由器接收credit包的预期接收数量,在待发送的数据包的数量不为零,且预期接收数量大于或者等于待发送的数据包的数量的情况下,提前向预设的下游路由器发送credit包的停止信号,而不必等待发送的数据包为零时再向预设的下游路由器发送credit包的停止信号,可以避免由于预设的下游路由器向上游路由器返回无用的credit包而对其他数据包的传输效率造成不良影响。

本发明实施例还提供了一种电子设备,参考图4,图4为本发明实施例的电子设备的一种结构图。如图4所示,包括处理器401、通信接口402、存储器403和通信总线404,其中,处理器401,通信接口402,存储器403通过通信总线404完成相互间的通信,

存储器403,用于存放计算机程序;

处理器401,用于执行存储器403上所存放的程序时,实现如下步骤:

在接收到来自预设的下游路由器的credit包之后,若待发送的数据包的数量不为零,则计算在预设时长内,预设的下游路由器以当前credit包的发送速率发送credit包的数量,将所述credit包的数量作为上游路由器接收credit包的预期接收数量,其中,上游路由器发送数据包至预设的下游路由器,预设时长为数据包从上游路由器传输到预设的下游路由器所用的时长;

若预期接收数量大于或等于待发送的数据包的数量,则向预设的下游路由器发送credit包的停止信号。

上述电子设备提到的通信总线可以是外设部件互连标准(peripheralcomponentinterconnect,pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

通信接口用于上述电子设备与其他设备之间的通信。

存储器可以包括随机存取存储器(randomaccessmemory,ram),也可以包括非易失性存储器(non-volatilememory,nvm),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。

上述的处理器可以是通用处理器,包括中央处理器(centralprocessingunit,cpu)、网络处理器(networkprocessor,np)等;还可以是数字信号处理器(digitalsignalprocessing,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1