一种数据包调度方法、装置及设备与流程

文档序号:13808165阅读:96来源:国知局
一种数据包调度方法、装置及设备与流程

本申请涉及数据处理领域,具体涉及一种数据包调度方法、装置及设备。



背景技术:

目前,传统的数据包调度方法是,网络节点在接收到上一级网络节点发送的数据包后,判断对应的发送队列是否已满,如果未满,则将该数据包插入到对应的发送队列即可,而如果对应的发送队列已满,则直接将该数据包丢弃。

一旦网络节点中对应的发送队列已满,则来自上一级网络节点的数据包会不断的被丢弃,产生大量的丢包现象。



技术实现要素:

本发明提供了一种数据包调度方法、装置及设备,能够避免产生大量丢包现象。

第一方面,本发明提供一种数据包调度方法,所述方法包括:

第一网络节点接收到来自第二网络节点的数据包后,将所述数据包插入到对应的第一发送队列中,并获取所述第一发送队列的当前长度;

所述第一网络节点判断所述当前长度是否超出预设阈值,如果是,则向所述第二网络节点发送第一反馈信息,以使所述第二网络节点暂停发送所述数据包对应的第二发送队列中的数据包。

可选的,所述方法还包括:

所述第一网络节点在确定所述当前长度超出预设阈值后,为所述数据包打上预设标记;

当所述第一网络节点发送携带所述预设标记的数据包时,向所述第二网络节点发送第二反馈信息,以使所述第二网络节点开始发送所述第二发送队列中的数据包。

第二方面,本发明提供了一种数据包调度方法,所述方法包括:

第二网络节点接收来自所述第一网络节点的第一反馈信息,所述第一反馈信息携带任一数据包的信息;

所述第二网络节点根据所述第一反馈信息,暂停发送所述数据包对应的第二发送队列中的数据包。

可选的,所述方法还包括:

当所述第二网络节点接收来自所述第一网络节点的第二反馈信息时,开始发送所述第二发送队列中的数据包。

可选的,所述第一反馈信息和所述第二反馈信息均携带所述数据包的五元组信息和序列号;

所述第二网络节点根据所述第一反馈信息,暂停发送所述数据包对应的第二发送队列中的数据包,包括:

所述第二网络节点根据所述第一反馈信息携带的所述数据包的五元组信息,确定所述数据包对应的第二发送队列;

所述第二网络节点在所述第二发送队列中插入携带所述序列号的预设数据包,其中,当所述预设数据包被处理时暂停发送数据包;

相应的,所述当所述第二网络节点接收来自所述第一网络节点的第二反馈信息时,开始发送所述第二发送队列中的数据包,包括:

所述第二网络节点根据所述第二反馈信息携带的所述数据包的五元组信息,确定所述数据包对应的第二发送队列;

所述第二网络节点删除所述第二发送队列中携带所述序列号的预设数据包,以便所述第二发送队列中的数据包继续发送。

可选的,所述预设数据包为空包。

第三方面,本发明还提供了一种数据包调度装置,所述装置包括:

插入模块,用于在接收到来自第二网络节点的数据包后,将所述数据包插入到对应的第一发送队列中;

获取模块,用于获取所述第一发送队列的当前长度;

判断模块,用于判断所述当前长度是否超出预设阈值;

第一发送模块,用于在所述判断模块的结果为是时,向所述第二网络节点发送第一反馈信息,以使所述第二网络节点暂停发送所述数据包对应的第二发送队列中的数据包。

可选的,所述装置还包括:

打标记模块,用于在确定所述当前长度超出预设阈值后,为所述数据包打上预设标记;

第二发送模块,用于在发送携带所述预设标记的数据包时,向所述第二网络节点发送第二反馈信息,以使所述第二网络节点开始发送所述第二网络节点中所述数据包对应的发送队列中的数据包。

第四方面,本发明还提供了一种数据包调度装置,所述装置包括:

接收模块,用于接收来自第一网络节点的第一反馈信息,所述第一反馈信息携带任一数据包的信息;

暂停模块,用于根据所述第一反馈信息,暂停发送所述数据包对应的第二发送队列中的数据包。

可选的,所述装置还包括:

开始模块,用于当接收来自所述第一网络节点的第二反馈信息时,开始发送所述第二发送队列中的数据包。

可选的,所述第一反馈信息和所述第二反馈信息均携带所述数据包的五元组信息和序列号;

所述暂停模块,包括:

第一确定子模块,用于根据所述第一反馈信息携带的所述数据包的五元组信息,确定所述数据包对应的第二发送队列;

插入子模块,用于在所述第二发送队列中插入携带所述序列号的预设数据包,其中,当所述预设数据包被处理时暂停发送数据包;

相应的,所述开始模块,包括:

第二确定子模块,用于根据所述第二反馈信息携带的所述数据包的五元组信息,确定所述数据包对应的第二发送队列;

删除子模块,用于删除所述第二发送队列中携带所述序列号的预设数据包,以便所述第二发送队列中的数据包继续发送。

第五方面,本发明提供了一种数据包调度设备,所述设备包括存储器和处理器,

所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;

所述处理器用于根据所述程序代码中的指令,执行以下步骤:接收到来自第二网络节点的数据包后,将所述数据包插入到对应的第一发送队列中,并获取所述第一发送队列的当前长度;判断所述当前长度是否超出预设阈值,如果是,则向所述第二网络节点发送第一反馈信息,以使所述第二网络节点暂停发送所述数据包对应的第二发送队列中的数据包。

第六方面,本发明还提供了一种数据包调度设备,所述设备包括存储器和处理器,

所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;

所述处理器用于根据所述程序代码中的指令,执行以下步骤:在向第一网络节点发送数据包后,接收来自所述第一网络节点的第一反馈信息;根据所述第一反馈信息,暂停发送所述数据包对应的第二发送队列中的数据包。

本发明提供的数据包调度方法中,第一网络节点在将接收到的数据包插入对应的第一发送队列后,获取第一发送队列的当前长度,并在第一发送队列的当前长度超出预设阈值时,向第二网络节点发送第一反馈信息,指示第二网络节点暂停发送该数据包对应的第二发送队列中的数据包。本发明中第一网络节点向第二网路节点发送第一反馈信息,能够避免因第二网络节点继续发送数据包造成的第一网络节点产生丢包现象。

附图说明

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

图1为本申请实施例提供的一种数据包调度方法的流程图;

图2为本申请实施例提供的一种网络系统架构示意图;

图3为本申请实施例提供的另一种数据包调度方法的流程图;

图4为本申请实施例提供的一种数据包调度方法的信令交互图;

图5为本申请实施例提供的一种数据包调度装置的结构示意图;

图6为本申请实施例提供的另一种数据包调度装置的结构示意图;

图7为本申请实施例提供的一种数据包调度设备的结构示意图。

具体实施方式

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

在数据包调度过程中,网络节点将接收到的数据包插入到对应的发送队列中,如果对应的发送队列已满,则该网络节点会直接将该数据包丢弃如果网络节点不断的丢弃数据包,则会产生大量的丢包现象。

为此,本发明实施例提供了一种数据包调度方法,参考图1,为本发明实施例提供的一种数据包调度方法的流程图。

其中,本发明实施例提供的数据包调度方法应用于第一网络节点,其中,在数据传输过程中,第一网络节点可以是第二网络节点的下级网络节点,第一网络节点和第二网络节点均可以是网络转发设备等网络设备。如图2所示,为一种网络系统架构示意图,其中,网络设备a可以是网络设备b的下级网络节点,即网络设备b向网络设备a发送数据包;同时网络设备b也可以是网络设备c的下级网络节点,即网络设备c向网络设备b发送数据包。也就是说,第一网络节点可以是网络设备a,此时网络设备b相当于第二网络节点;第一网络节点也可以是网络设备b,此时网络设备c相当于第二网络节点。

以下对本发明实施例提供的数据包调度方法进行详细的介绍,该方法具体包括:

s101:第一网络节点接收到来自第二网络节点的数据包后,将所述数据包插入到对应的第一发送队列中,并获取所述第一发送队列的当前长度。

本发明实施例中,第一网络节点在接收到来自上一级网络节点(即第二网络节点)的数据包后,对该数据包进行解析,得到该数据包的五元组信息,其中,五元组信息包括数据包的源ip,目的ip,源端口,目的端口,协议类型。由于属于同一数据流的数据包的五元组信息相同,而属于同一数据流的数据包通常存储于同一发送队列,所以本发明实施例可以根据该数据包的五元组信息,确定出该数据包需要存储的发送队列。

第一发送队列为第一网络节点的一个发送队列,第一网络节点在确定该数据包对应的第一发送队列后,将该数据包插入到该第一发送队列中,并获取该第一发送队列的当前长度。一种实现方式中,第一网络节点可以通过该数据包的插入位置,确定第一发送队列的当前长度。值得注意的是,对于其他确定第一发送队列的当前长度的实施方式本发明不做限定。

s102:所述第一网络节点判断所述当前长度是否超出预设阈值,如果是,则执行s103。

s103:第一网络节点向所述第二网络节点发送第一反馈信息,以使所述第二网络节点暂停发送所述数据包对应的第二发送队列中的数据包。

本发明实施例中,第一网络节点在获取第一发送队列的当前长度后,判断第一发送队列的当前长度是否超出预设阈值。其中,预设阈值可以由第一发送队列的总长度和预设拥塞阈值确定,预设拥塞阈值可以是小于1的正数。

假设第一发送队列的总长度为len,第一发送队列的当前长度为len,预设拥塞阈值为a(0<a<1),预设阈值可以为a*len。

实际应用中,第一网络节点判断len与a*len的大小关系,当len>a*len时,第一网络节点向第二网络节点发送第一反馈信息,第一反馈信息用于指示第二网络节点暂停发送第二网络节点中该数据包对应的第二发送队列中的其他数据包,避免因第二网络节点继续发送数据包造成的第一网络节点产生丢包现象。

与上述实施方式对应的,本发明还提供了一种数据包调度方法,该数据包调度方法应用于第二网络节点,第二网络节点是第一网络节点的上一级节点。参考图3,为本发明实施例提供的另一种数据包调度方法的流程图,该方法具体包括:

s301:第二网络节点接收来自第一网络节点的第一反馈信息,所述第一反馈信息携带任一数据包的信息。

本发明实施例中,第二网络节点向第一网络节点发送数据包后,如果第一网络节点确定该数据包对应的第一发送队列的当前长度超出预设阈值,则向第二网络节点发送第一反馈信息,相应的,第二网络节点接收来自该第一网络节点的第一反馈信息。

其中,第一反馈信息至少携带有该数据包的五元组信息。

s302:所述第二网络节点根据所述第一反馈信息,暂停发送所述数据包对应的第二发送队列中的数据包。

本发明实施例中,第二网络节点在接收到第一反馈信息后,对第一反馈信息进行解析,得到五元组信息。由于属于同一数据流的数据包的五元组信息相同,而属于同一数据流的数据包通常存储于同一发送队列,所以本发明实施例可以根据该五元组信息,确定出携带该五元组信息的数据包所属的发送队列。

第二发送队列为第二网络节点的一个发送队列,第二网络节点在确定该数据包对应的第二发送队列后,控制该第二发送队列中的数据包暂停发送,以避免因第二网络节点继续发送该第二发送队列中的数据包,而造成第一网络节点产生丢包现象。

本发明实施例提供的数据包调度方法中,第一网络节点在将接收到的数据包插入对应的第一发送队列后,获取第一发送队列的当前长度,并在第一发送队列的当前长度超出预设阈值时,向第二网络节点发送第一反馈信息,指示第二网络节点暂停发送该数据包对应的发送队列中的数据包。本发明实施例中第一网络节点向第二网路节点发送第一反馈信息,能够避免因第二网络节点继续发送数据包造成的第一网络节点产生丢包现象。

为了对本发明实施例提供的数据包调度方法进行更完整的介绍,本发明还提供了一种数据包调度方法,参考图4,为本发明实施例提供的一种数据包调度方法的信令交互图,所述方法具体包括:

s401:第一网络节点接收到来自第二网络节点的数据包。

s402:将所述数据包插入到对应的第一发送队列中,并获取所述第一发送队列的当前长度。

s403:第一网络节点判断所述当前长度是否超出预设阈值,如果是,则为所述数据包打上预设标记,并执行s404。

本发明实施例中,第一网络节点接收到任一数据包,并且将该数据包插入对应的第一发送队列后获取的第一发送队列的当前长度超出预设阈值,则为该数据包打上预设标记。

s404:第一网络节点向所述第二网络节点发送第一反馈信息,第一反馈信息携带所述数据包的五元组信息和序列号。

其中,五元组信息包括该数据包的源ip,目的ip,源端口,目的端口,协议类型,序列号可以为该数据包在对应的数据流中的序列号。

s405:第二网络节点根据所述数据包的五元组信息,确定所述数据包对应的第二发送队列。

由于属于同一数据流的数据包的五元组信息相同,而属于同一数据流的数据包通常存储于同一发送队列,所以本发明实施例可以根据该数据包的五元组信息,确定出该数据包对应的第二发送队列。

s406:第二网络节点在所述第二发送队列中插入携带所述序列号的预设数据包,其中,当所述预设数据包被处理时暂停发送数据包。

本发明实施例中,在第二网络节点接收到第一反馈信息后,对第一反馈信息进行解析,得到数据包的五元组信息和序列号,并确定该数据包对应的第二发送队列。为了控制第二发送队列中的数据包暂停发送,本发明实施例在第二发送队列中插入携带该序列号的预设数据包,具体的,可以预先将该预设数据包设置为具有在被处理时暂停发送其所在发送队列中数据包的特性,所以,在第二网络节点处理该预设数据包时暂停发送第二发送队列中的数据包。

一种实现方式中,由于空包占用空间小,所以本发明实施例可以将预设数据包设置为空包。具体的,在第二网络节点处理到空包时,暂停发送第二发送队列中的数据包。

s407:当所述第一网络节点发送携带所述预设标记的数据包时,向所述第二网络节点发送第二反馈信息,第二反馈信息携带所述数据包的五元组信息和序列号。

实际应用中,当第一网络节点中的携带预设标记的数据包被发送时,触发第一网络节点向第二网络节点发送第二反馈信息,第二反馈信息用于指示第二网络节点开始发送第二发送队列中的数据包。

具体的,当第二网络节点接收到第二反馈信息时,对第二反馈信息进行解析,得到数据包的五元组信息和序列号。

s408:第二网络节点根据所述数据包的五元组信息,确定所述数据包对应的第二发送队列。

由于属于同一数据流的数据包的五元组信息相同,而属于同一数据流的数据包通常存储于同一发送队列,所以本发明实施例可以根据该数据包的五元组信息,确定出该数据包对应的第二发送队列。

s409:第二网络节点删除所述第二发送队列中携带所述序列号的预设数据包,以便所述第二发送队列中的数据包继续发送。

实际应用中,第二网络节点在确定出该数据包对应的第二发送队列后,删除该第二发送队列中携带有该序列号的与预设数据包(如空包),以使得第二网络节点恢复对该第二发送队列中的数据包的发送功能。

本发明实施例提供的数据包调度方法中,第一网络节点向第二网络节点发送第一反馈信息,使得第二网络节点利用插入预设数据包(如空包)的方式,控制数据包暂停发送,巧妙的控制发包节奏,避免因第二网络节点继续发送数据包造成的第一网络节点产生丢包现象。

与上述方法实施方式相对应的,本发明实施例还提供了一种数据包调度装置,参考图5,为本发明实施例提供的一种数据包调度装置的结构示意图,所述装置包括:

插入模块501,用于在接收到来自第二网络节点的数据包后,将所述数据包插入到对应的第一发送队列中;

获取模块502,用于获取所述第一发送队列的当前长度;

判断模块503,用于判断所述当前长度是否超出预设阈值;

第一发送模块504,用于在所述判断模块的结果为是时,向所述第二网络节点发送第一反馈信息,以使所述第二网络节点暂停发送所述数据包对应的第二发送队列中的数据包。

另外,所述装置还包括:

打标记模块,用于在确定所述当前长度超出预设阈值后,为所述数据包打上预设标记;

第二发送模块,用于在发送携带所述预设标记的数据包时,向所述第二网络节点发送第二反馈信息,以使所述第二网络节点开始发送所述第二网络节点中所述数据包对应的发送队列中的数据包。

与上述装置实施方式相对应的,本发明还提供了一种数据包调度装置,参考图6,为本发明实施例提供的一种数据包调度装置的结构示意图,所述装置包括:

接收模块601,用于接收来自第一网络节点的第一反馈信息,所述第一反馈信息携带任一数据包的信息;

暂停模块602,用于根据所述第一反馈信息,暂停发送所述数据包对应的第二发送队列中的数据包。

另外,所述装置还包括:

开始模块,用于当接收来自所述第一网络节点的第二反馈信息时,开始发送所述第二发送队列中的数据包。

一种实施方式中,所述第一反馈信息和所述第二反馈信息均携带所述数据包的五元组信息和序列号;

所述暂停模块,包括:

第一确定子模块,用于根据所述第一反馈信息携带的所述数据包的五元组信息,确定所述数据包对应的第二发送队列;

插入子模块,用于在所述第二发送队列中插入携带所述序列号的预设数据包,其中,当所述预设数据包被处理时暂停发送数据包;

相应的,所述开始模块,包括:

第二确定子模块,用于根据所述第二反馈信息携带的所述数据包的五元组信息,确定所述数据包对应的第二发送队列;

删除子模块,用于删除所述第二发送队列中携带所述序列号的预设数据包,以便所述第二发送队列中的数据包继续发送。

本发明实施例提供的数据包调度装置中,在将接收到的数据包插入对应的第一发送队列后,获取第一发送队列的当前长度,并在第一发送队列的当前长度超出预设阈值时,向第二网络节点发送第一反馈信息,指示第二网络节点暂停发送该数据包对应的第二发送队列中的数据包。本发明实施例向第二网路节点发送第一反馈信息,能够避免因第二网络节点继续发送数据包造成的下一级节点产生丢包现象。

相应的,本发明实施例还提供一种数据包调度设备,参见图7所示,可以包括:

处理器701、存储器702、输入装置703和输出装置704。数据包调度设备中的处理器701的数量可以一个或多个,图7中以一个处理器为例。在本发明的一些实施例中,处理器701、存储器702、输入装置703和输出装置704可通过总线或其它方式连接,其中,图7中以通过总线连接为例。

存储器702可用于存储软件程序以及模块,处理器701通过运行存储在存储器702的软件程序以及模块,从而执行数据包调度设备的各种功能应用以及数据处理。存储器702可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等。此外,存储器702可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。输入装置703可用于接收输入的数字或字符信息,以及产生与数据包调度设备的用户设置以及功能控制有关的信号输入。

具体在本实施例中,处理器701会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器702中,并由处理器701来运行存储在存储器702中的应用程序,从而实现以下功能:

接收到来自第二网络节点的数据包后,将所述数据包插入到对应的第一发送队列中,并获取所述第一发送队列的当前长度;判断所述当前长度是否超出预设阈值,如果是,则向所述第二网络节点发送第一反馈信息,以使所述第二网络节点暂停发送所述数据包对应的第二发送队列中的数据包。

另外在本实施例中,处理器701还会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器702中,并由处理器701来运行存储在存储器702中的应用程序,从而实现以下功能:

接收来自所述第一网络节点的第一反馈信息,所述第一反馈信息携带任一数据包的信息;根据所述第一反馈信息,暂停发送所述数据包对应的第二发送队列中的数据包。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

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

以上对本申请实施例所提供的一种数据包调度方法、装置及设备进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

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