CN111917647A - 一种单队列背压式数据驱动路由方法及相关组件 - Google Patents
一种单队列背压式数据驱动路由方法及相关组件 Download PDFInfo
- Publication number
- CN111917647A CN111917647A CN202010807314.8A CN202010807314A CN111917647A CN 111917647 A CN111917647 A CN 111917647A CN 202010807314 A CN202010807314 A CN 202010807314A CN 111917647 A CN111917647 A CN 111917647A
- Authority
- CN
- China
- Prior art keywords
- data packet
- target data
- queue
- node
- current node
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/12—Shortest path evaluation
- H04L45/121—Shortest path evaluation by minimising delays
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种单队列背压式数据驱动路由方法及相关组件,方法包括:将达到的数据包入栈到单FIFO缓存队列的尾部并缓存;更新当前节点针对所述数据流对应的虚拟计数队列;当需要进行调度时,从所述单FIFO缓存队列的头部出栈一个数据包作为目标数据包,并获取所述目标数据包的标记;根据目标数据包的标记获取所述目标数据包所属的目标数据流;根据当前节点针对所述目标数据流的虚拟计数队列和各邻居节点针对所述目标数据流的虚拟计数队列的计数值,计算出当前节点至各邻居节点的链路针对所述目标数据流的权值;选择权值最大的链路对应的邻居节点作为所述目标数据包的下一跳节点。本发明提升了网络吞吐,解决了网络拥塞问题。并且降低了网络时延。
Description
技术领域
本发明涉及通信技术领域,特别涉及一种单队列背压式数据驱动路由方法及相关组件。
背景技术
现有技术中,背压式路由受其自身算法特点,被证明是吞吐最有的路由策略,有望解决复杂网络中的拥塞问题。传统背压式路由方法利用每条数据流在不同链路上的数据积压作为数据路由的驱动力,实现数据驱动路由的目的。
但是传统背压式路由机制受限于自身数据调度机制和多队列维护需求,只适合集中式网络。而分布式网络需要网络中每个节点去完成自身数据度量和调度的计算,并且大多分布式网络节点采用基于先进先出缓存机制的单队列数据缓存维护机制。因此,在分布式网络中应用背压式路由算法就需要解决节点之间数据积压的度量,数据传输的调度和多队列维护等问题。
换句话说,传统背压式路由机制是基于集中式网络架构。存在一个网络控制者从上帝视角来观察网络中所有链路和节点的当前状态。但是,在分布式系统中,无线传输的退避检测机制CSMA/CA是无法准确获得当前链路状态的。因此,传统背压式路由的集中式策略无法应用在无线分布式网络中。
发明内容
本发明的目的是提供一种单队列背压式数据驱动路由方法及相关组件,旨在解决传统背压式路由机制不适用于分布式系统中的问题。
第一方面,本发明实施例提供一种基于分布式系统的单队列背压式数据驱动路由方法,其中,包括:
当一个数据包到达当前节点时,根据所述数据包所属的数据流,对所述数据包进行标记;
将所述数据包入栈到单FIFO缓存队列的尾部并缓存;
更新当前节点针对所述数据流对应的虚拟计数队列;
当当前节点需要进行调度时,从所述单FIFO缓存队列的头部出栈一个数据包作为目标数据包,并获取所述目标数据包的标记;
根据目标数据包的标记获取所述目标数据包所属的目标数据流;
根据当前节点针对所述目标数据流的虚拟计数队列和各邻居节点针对所述目标数据流的虚拟计数队列的计数值,计算出当前节点至各邻居节点的链路针对所述目标数据流的权值;
选择权值最大的链路对应的邻居节点作为所述目标数据包的下一跳节点,并进行转发。
第二方面,本发明实施例提供一种基于分布式系统的单队列背压式数据驱动路由装置,其中,包括:
标记单元,用于当一个数据包到达当前节点时,根据所述数据包所属的数据流,对所述数据包进行标记;
入栈单元,用于将所述数据包入栈到单FIFO缓存队列的尾部并缓存;
第一更新单元,用于更新当前节点针对所述数据流对应的虚拟计数队列;
出栈单元,用于当当前节点需要进行调度时,从所述单FIFO缓存队列的头部出栈一个数据包作为目标数据包,并获取所述目标数据包的标记;
获取单元,用于根据目标数据包的标记获取所述目标数据包所属的目标数据流;
权值计算单元,用于根据当前节点针对所述目标数据流的虚拟计数队列和各邻居节点针对所述目标数据流的虚拟计数队列的计数值,计算出当前节点至各邻居节点的链路针对所述目标数据流的权值;
转发单元,用于选择权值最大的链路对应的邻居节点作为所述目标数据包的下一跳节点,并进行转发。
第三方面,本发明实施例提供一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其中,所述处理器执行所述计算机程序时实现如上所述的基于分布式系统的单队列背压式数据驱动路由方法。
第四方面,本发明实施例提供一种计算机可读存储介质,其中,所述计算机可读存储介质存储有计算机程序,所述计算机程序当被处理器执行时使所述处理器执行如上所述的基于分布式系统的单队列背压式数据驱动路由方法。
本发明实施例提供了一种单队列背压式数据驱动路由方法及相关组件,方法包括:当一个数据包到达当前节点时,根据所述数据包所属的数据流,对所述数据包进行标记;将所述数据包入栈到单FIFO缓存队列的尾部并缓存;更新当前节点针对所述数据流对应的虚拟计数队列;当当前节点需要进行调度时,从所述单FIFO缓存队列的头部出栈一个数据包作为目标数据包,并获取所述目标数据包的标记;根据目标数据包的标记获取所述目标数据包所属的目标数据流;根据当前节点针对所述目标数据流的虚拟计数队列和各邻居节点针对所述目标数据流的虚拟计数队列的计数值,计算出当前节点至各邻居节点的链路针对所述目标数据流的权值;选择权值最大的链路对应的邻居节点作为所述目标数据包的下一跳节点,并进行转发。本发明实施例在单FIFO队列机制下实现背压式数据驱动路由方法,使得基于数据驱动路由的路由机制可以在现有网络节点下快速部署,提升网络吞吐,解决网络拥塞问题。并且,本发明实施例基于强数据包驱动机制,可以有效降低背压式路由的‘尾包延迟’问题,降低网络时延。
附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种单队列背压式数据驱动路由方法的流程示意图;
图2为本发明实施例提供的一种单队列背压式数据驱动路由方法的原理示意图;
图3为各方法的端到端时延的性能对比图;
图4为各方法的网络吞吐的性能对比图;
图5为本发明实施例提供的一种单队列背压式数据驱动路由装置的示意性框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
请参阅图1,图1为本发明一种基于分布式系统的单队列背压式数据驱动路由方法的流程示意图,该方法包括步骤S101~S107:
S101、当一个数据包到达当前节点时,根据所述数据包所属的数据流,对所述数据包进行标记;
S102、将所述数据包入栈到单FIFO缓存队列的尾部并缓存;
S103、更新当前节点针对所述数据流对应的虚拟计数队列;
S104、当当前节点需要进行调度时,从所述单FIFO缓存队列的头部出栈一个数据包作为目标数据包,并获取所述目标数据包的标记;
S105、根据目标数据包的标记获取所述目标数据包所属的目标数据流;
S106、根据当前节点针对所述目标数据流的虚拟计数队列和各邻居节点针对所述目标数据流的虚拟计数队列的计数值,计算出当前节点至各邻居节点的链路针对所述目标数据流的权值;
S107、选择权值最大的链路对应的邻居节点作为所述目标数据包的下一跳节点,并进行转发。
本发明实施例是运作在通信节点上负责网络信息交互组件中的数据路由机制。本发明可以通过在通信节点模块上安装本协议方案,实现高吞吐,高鲁棒性的数据通信服务。
在所述步骤S101中,当一个数据包到达当前节点时,根据所述数据包所属的数据流,来对数据包进行标记。例如一个数据包p,到达当前节点a时,该数据包p的目的节点为c,即所述数据包p所属的数据流为(c),那么可将所述数据包标记为p(c)。
在一实施例中,所述步骤S101包括:
当一个数据包到达当前节点时,若所述数据包的目的节点为当前节点,则向上一层转发对应的数据包。
即所述数据包的目的节点即为到达的当前节点,此时可以直接向上一层转发对应的数据包即可,无需转发至下一跳节点。
在所述步骤S102中,将所述数据包入栈到单FIFO缓存队列的尾部并缓存。
本发明实施例中,是采用单FIFO缓存队列来对数据包进行管理,一个数据包达到后直接按照先进先出的方式进行调度和管理。
在所述步骤S103中,由于当前节点针对所述数据流加入了一个新的数据包,所以需要更新当前节点针对所述数据流对应的虚拟计数队列,该虚拟计数队列的作用是对所述数据流的队列长度进行计数,也就是记录当前节点所缓存的针对所述数据流的数据包个数。
在一实施例中,所述的基于分布式系统的单队列背压式数据驱动路由方法还包括:
对每一节点的每一个数据流维护一个虚拟计数器;
通过多个虚拟计数器分别对多个数据流的数据包的个数进行计数,得到针对各数据流的虚拟计数队列。
本实施例中,每一个节点都会维护多个虚拟计数器,这些虚拟计数器的作用是分别用来对每一个数据流的数据包的个数进行计数,从而得到针对各个数据流的虚拟计数队列。
这样,当前节点a的队列状态,可以利用矩阵QL表示,其中记录了当前节点针对所有数据流的计数情况,邻居节点b的队列状态可以利用矩阵QN表示,里面记录了邻居节点针对所有数据流的计数情况。
在所述步骤S104中,当当前节点a需要进行调度时,从所述单FIFO缓存队列的头部出栈一个数据包作为目标数据包。例如假设数据包p当前已移动至所述单FIFO缓存队列的头部,那么可将该数据包p作为目标数据包(即调度数据包),并获取所述目标数据包的标记,例如获取所述目标数据包的标记p(c)。
传统背压式路由算法的调度策略是为当前调度链路分配最优的传输数据。而最优的传输数据是通过度量链路两端节点处关于给定数算得出据流的队列差值来计。传统背压式路由算法适应集中式网络,属于链路驱动调度机制。当链路处于激活状态时该链路会被立即调度,并分配数据包到该链路上。这个过程属于弱数据包驱动系统。可能存在数据包,由于竞争能力较弱,长时间无法被传输调度,甚至永远无法被传输调度。本发明实施例则采用了强数据包驱动的方式,即在分布式系统中,采用数据包驱动调度机制。当节点a开始进行一次传输调度时,处于所述单FIFO缓存队列头部的数据包p(c)被首先调度。然后,这个被调度的数据包在后续步骤中会被转移到路由层进行路由操作。
在所述步骤S105中,由于在前一步骤中获取到了目标数据包的标记p(c),所以此步骤可根据该标记获知该目标数据包所属的目标数据流,即为(c)。
在所述步骤S106中,需要根据当前节点针对所述目标数据流的虚拟计数队列和各邻居节点针对所述目标数据流的虚拟计数队列的计数值,来获取当前节点至邻居节点的链路上针对所述目标数据流的积压状态,从而计算出当前节点至各邻居节点的链路针对所述目标数据流的权值。
在一实施例中,所述步骤S106包括:
按下式计算当前节点a至邻居节点b的链路针对所述目标数据流(c)的权值:
其中,邻居节点就是在当前节点通信范围内的节点。这个通信范围是预先设定好的,即在无线信号覆盖范围内,一般会根据两个节点直接通信的成功概率来划分通信范围。本发明中,默认每个节点知道自己的邻居节点。如果节点是不动的,在组网过程中,或者数据交互过程中,节点就可以记录到其所有邻居节点的信息;如果节点是移动的,则可以通过周期性的发送报文(如hello信息)来确定邻居节点。
在所述步骤S107中,选择权值最大的链路对应的邻居节点作为所述目标数据包的下一跳节点。然后将所述目标数据包转发指下一跳节点即可。
在一实施例中,所述步骤S107包括:
按下式选择权值最大的链路对应的邻居节点:
其中,L表示链路集合,n表示邻居节点。
将所选择的链路对应的邻居节点作为所述目标数据包的下一跳节点,并进行转发。
在本实施例中,实际上就是选择权值最大的链路对应的邻居节点,其中的n表示可能的任意一个邻居节点,n*表示所选择到的邻居节点。
在一实施例中,所述将所选择的链路对应的邻居节点作为所述目标数据包的下一跳节点,并进行转发,包括:
将下一跳节点的路由信息添加至所述目标数据包的头部,然后根据所述路由信息进行转发。
上述路由信息即包含下一跳节点的地址,将该路由信息添加到目标数据包的头部后,即可进行转发。
在一实施例中,所述的基于分布式系统的单队列背压式数据驱动路由方法,其还包括:
当转发完成后,更新当前节点针对所述目标数据流对应的虚拟计数队列。
本实施例中,为了保证各节点针对所有数据流的虚拟计数队列的准确性,任何一个节点的任何一个数据流发生变化时,例如入栈或出栈一个数据包,都会对其对应的虚拟计数队列进行更新,例如加1,或者减1,以便后续步骤中进行准确的权值计算。
需说明的是,现有传统背压式路由机制的调度策略是为当前调度链路分配最优的传输数据。而最优的传输数据是通过度量链路两端节点处关于数据流的队列差值来计算得到。例如:用表示一个节点集合,对于任意节点满足如下关系:
其中(c)表示目的节点为c的数据流,表示节点a处针对数据流(c)的队列长度,表示链路(a,b)上关于数据流(c)的积压程度,表示时刻t下链路(a,b)上关于数据流(c)的权值。通过以上权值的计算方式,就可以为链路(a,b)上不同的数据流分配权值,也就是按照上述公式计算出同一链路(a,b)上针对不同的数据流的权值,然后选择权值最大的数据流进行传输调度,从而实现路由过程。这种调度策略要求数据包必须缓存到其对应的数据流队列中,因为不仅权值需要计算每个数据流的队列长度,当链路进行传输调度时,节点也需要迅速调度对应数据流队列中的数据包。
显然,本发明与现有的传输调度机制有着本质的区别,本发明实施例是计算不同链路针对同一数据流的权值,选择权值最大的链路传输确定好的数据流(即队列头部的数据包),而上述现有的传输调度机制可以归纳为:
本发明的传输调度机制可以归纳为:
也就是说,本发明将传统的背压式路由机制的调度策略从适合集中式网络的“数据流选择”转变为适合分布式网络的“链路选择”。在传统背压式路由算法中,每个时隙内只有最优数据流才会被调度传输数据。而在本发明实施例的调度策略中,一个数据包如果处于队列头部(已缓存),则一定会被调度传输,这与传统背压式路由算法只调度当前链路上的最优数据流不同。所以本发明实施例采用的策略是一种数据包强驱动策略,每一个缓存在队列中的数据包都会根据先入先出原则被强制进行传输驱动,且被调度的数据包必然已被缓存,提高了通信效率。
因此,传统背压式路由机制是基于数据流的最优调度,可以看到数据流(c*)是从众多数据流中选取的,这说明在当前时刻,链路(a,b)如果处于调度状态,那么优先选择满足上述调度策略的数据流进行调度传输,如果有些数据流没有较高的权值,比较小,就不会被调度传输。
而本发明实施例中,是基于节点a的调度状态,当节点a可以进行传输调度时,会直接调度队列头部的数据包,而该数据包的路由(即所选择的链路)是通过新的调度机制确定的,这更符合无线csma/ca的退避规则。
此外,传统背压式路由机制中,为了实现数据流层面的调度和选择,网络中每个节点需要维护多队列结构(即为每个数据流维护一个缓存队列)。多队列维护将极大增加节点的计算时间复杂度和存储空间复杂度,不适合于分布式系统。而本发明实施例则采用了基于单FIFO队列的排队模型。如图2所示,引入一个虚拟队列作为一个计数器来计数t时刻当前节点a处缓存来自数据流(c)的数据包个数。当一个来自数据流(c)的数据包到达节点a时,加1。如果一个来自数据流(c)的数据包离开节点a时,减1。于是,网络中每个节点只需要为每个数据流维护一个计数器,利用节点本身计数器矩阵QL和邻居计数器信息矩阵QN,就可以实现计算链路的权值。
需说明的是,本发明实施例中所有虚拟队列仅仅用来记录数据包个数,并不需要具有任何队列结构。这是因为,传统背压式路由机制中,队列结构主要用来实现:1.计数;2.调度,当链路进行传输调度的时候,传统背压式路由由于是调度最优数据,需要选择最优数据流的数据包进行调度。而本发明实施例不需要这样的调度机制,而是基于数据包的强调度机制。所以只需要虚拟化计数队列就可以实现,不需要维护多缓存队列。
如图3和图4所示,分别给出了在随机网络下,本发明的方法(SSBP)和其他背压式路由算法的网络吞吐和网络延迟性能比较。其中BP表示原始背压式路由算法,BPSP表示基于路径优化的背压式路由算法,DBP表示基于延迟优化的背压式路由算法。
与传统背压式路由算法相比,本发明保证了即使当前节点针对某个数据流的数据积压很小,也不会有数据包被滞留在缓冲区中。因此,降低了背压式路由的数据时延。本发明实施例的方法可以移动通信领域和复杂网络组网领域,如通信网络中的通信节点,例如5G基站,自组手机网络中的手机节点,车载网络的移动汽车节点等等。
请参阅图5,其为本发明实施例提供的一种基于分布式系统的单队列背压式数据驱动路由装置的示意性框图,如图5所示,所述基于分布式系统的单队列背压式数据驱动路由装置500包括:
标记单元501,用于当一个数据包到达当前节点时,根据所述数据包所属的数据流,对所述数据包进行标记;
入栈单元502,用于将所述数据包入栈到单FIFO缓存队列的尾部并缓存;
第一更新单元503,用于更新当前节点针对所述数据流对应的虚拟计数队列;
出栈单元504,用于当当前节点需要进行调度时,从所述单FIFO缓存队列的头部出栈一个数据包作为目标数据包,并获取所述目标数据包的标记;
获取单元505,用于根据目标数据包的标记获取所述目标数据包所属的目标数据流;
权值计算单元506,用于根据当前节点针对所述目标数据流的虚拟计数队列和各邻居节点针对所述目标数据流的虚拟计数队列的计数值,计算出当前节点至各邻居节点的链路针对所述目标数据流的权值;
转发单元507,用于选择权值最大的链路对应的邻居节点作为所述目标数据包的下一跳节点,并进行转发。
上述装置实施例的内容与上述方法实施例的内容相对应,关于上述装置实施例的具体细节可参照前述方法实施例的描述,此处不再赘述。
通过本发明实施例的装置,在单FIFO队列机制下实现了背压式数据驱动路由方法,使得基于数据驱动路由的路由机制可以在现有网络节点下快速部署,提升网络吞吐,解决网络拥塞问题。并且,本发明实施例基于强数据包驱动机制,可以有效降低背压式路由的‘尾包延迟’问题,降低网络时延。
上述基于分布式系统的单队列背压式数据驱动路由装置500可以实现为计算机程序的形式,该计算机程序可以在计算机设备上运行。
本发明实施例提供的一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如下步骤:当一个数据包到达当前节点时,根据所述数据包所属的数据流,对所述数据包进行标记;将所述数据包入栈到单FIFO缓存队列的尾部并缓存;更新当前节点针对所述数据流对应的虚拟计数队列;当当前节点需要进行调度时,从所述单FIFO缓存队列的头部出栈一个数据包作为目标数据包,并获取所述目标数据包的标记;根据目标数据包的标记获取所述目标数据包所属的目标数据流;根据当前节点针对所述目标数据流的虚拟计数队列和各邻居节点针对所述目标数据流的虚拟计数队列的计数值,计算出当前节点至各邻居节点的链路针对所述目标数据流的权值;选择权值最大的链路对应的邻居节点作为所述目标数据包的下一跳节点,并进行转发。
在本发明的另一实施例中提供计算机可读存储介质。该计算机可读存储介质可以为非易失性的计算机可读存储介质。该计算机可读存储介质存储有计算机程序,其中计算机程序被处理器执行时实现以下步骤:当一个数据包到达当前节点时,根据所述数据包所属的数据流,对所述数据包进行标记;将所述数据包入栈到单FIFO缓存队列的尾部并缓存;更新当前节点针对所述数据流对应的虚拟计数队列;当当前节点需要进行调度时,从所述单FIFO缓存队列的头部出栈一个数据包作为目标数据包,并获取所述目标数据包的标记;根据目标数据包的标记获取所述目标数据包所属的目标数据流;根据当前节点针对所述目标数据流的虚拟计数队列和各邻居节点针对所述目标数据流的虚拟计数队列的计数值,计算出当前节点至各邻居节点的链路针对所述目标数据流的权值;选择权值最大的链路对应的邻居节点作为所述目标数据包的下一跳节点,并进行转发。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的设备、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的几个实施例中,应该理解到,所揭露的设备、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为逻辑功能划分,实际实现时可以有另外的划分方式,也可以将具有相同功能的单元集合成一个单元,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种基于分布式系统的单队列背压式数据驱动路由方法,其特征在于,包括:
当一个数据包到达当前节点时,根据所述数据包所属的数据流,对所述数据包进行标记;
将所述数据包入栈到单FIFO缓存队列的尾部并缓存;
更新当前节点针对所述数据流对应的虚拟计数队列;
当当前节点需要进行调度时,从所述单FIFO缓存队列的头部出栈一个数据包作为目标数据包,并获取所述目标数据包的标记;
根据目标数据包的标记获取所述目标数据包所属的目标数据流;
根据当前节点针对所述目标数据流的虚拟计数队列和各邻居节点针对所述目标数据流的虚拟计数队列的计数值,计算出当前节点至各邻居节点的链路针对所述目标数据流的权值;
选择权值最大的链路对应的邻居节点作为所述目标数据包的下一跳节点,并进行转发。
2.根据权利要求1所述的基于分布式系统的单队列背压式数据驱动路由方法,其特征在于,还包括:
对每一节点的每一个数据流维护一个虚拟计数器;
通过多个虚拟计数器分别对多个数据流的数据包的个数进行计数,得到针对各数据流的虚拟计数队列。
5.根据权利要求4所述的基于分布式系统的单队列背压式数据驱动路由方法,其特征在于,所述将所选择的链路对应的邻居节点作为所述目标数据包的下一跳节点,并进行转发,包括:
将下一跳节点的路由信息添加至所述目标数据包的头部,然后根据所述路由信息进行转发。
6.根据权利要求1所述的基于分布式系统的单队列背压式数据驱动路由方法,其特征在于,当一个数据包到达当前节点时,根据所述数据包所属的数据流,对所述数据包进行标记,包括:
当一个数据包到达当前节点时,若所述数据包的目的节点为当前节点,则向上一层转发对应的数据包。
7.根据权利要求1所述的基于分布式系统的单队列背压式数据驱动路由方法,其特征在于,还包括:
当转发完成后,更新当前节点针对所述目标数据流对应的虚拟计数队列。
8.一种基于分布式系统的单队列背压式数据驱动路由装置,其特征在于,包括:
标记单元,用于当一个数据包到达当前节点时,根据所述数据包所属的数据流,对所述数据包进行标记;
入栈单元,用于将所述数据包入栈到单FIFO缓存队列的尾部并缓存;
第一更新单元,用于更新当前节点针对所述数据流对应的虚拟计数队列;
出栈单元,用于当当前节点需要进行调度时,从所述单FIFO缓存队列的头部出栈一个数据包作为目标数据包,并获取所述目标数据包的标记;
获取单元,用于根据目标数据包的标记获取所述目标数据包所属的目标数据流;
权值计算单元,用于根据当前节点针对所述目标数据流的虚拟计数队列和各邻居节点针对所述目标数据流的虚拟计数队列的计数值,计算出当前节点至各邻居节点的链路针对所述目标数据流的权值;
转发单元,用于选择权值最大的链路对应的邻居节点作为所述目标数据包的下一跳节点,并进行转发。
9.一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7中任一项所述的基于分布式系统的单队列背压式数据驱动路由方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序当被处理器执行时使所述处理器执行如权利要求1至7任一项所述的基于分布式系统的单队列背压式数据驱动路由方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010807314.8A CN111917647A (zh) | 2020-08-12 | 2020-08-12 | 一种单队列背压式数据驱动路由方法及相关组件 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010807314.8A CN111917647A (zh) | 2020-08-12 | 2020-08-12 | 一种单队列背压式数据驱动路由方法及相关组件 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111917647A true CN111917647A (zh) | 2020-11-10 |
Family
ID=73284398
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010807314.8A Pending CN111917647A (zh) | 2020-08-12 | 2020-08-12 | 一种单队列背压式数据驱动路由方法及相关组件 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111917647A (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105357115A (zh) * | 2015-10-14 | 2016-02-24 | 浙江理工大学 | 一种基于异步背压式路由与调度的网络效用最大化方法 |
US9444751B1 (en) * | 2012-08-03 | 2016-09-13 | University Of Southern California | Backpressure with adaptive redundancy |
CN110225566A (zh) * | 2019-05-31 | 2019-09-10 | 暨南大学 | 无线传感器网络中基于延迟与距离的背压方法 |
-
2020
- 2020-08-12 CN CN202010807314.8A patent/CN111917647A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9444751B1 (en) * | 2012-08-03 | 2016-09-13 | University Of Southern California | Backpressure with adaptive redundancy |
CN105357115A (zh) * | 2015-10-14 | 2016-02-24 | 浙江理工大学 | 一种基于异步背压式路由与调度的网络效用最大化方法 |
CN110225566A (zh) * | 2019-05-31 | 2019-09-10 | 暨南大学 | 无线传感器网络中基于延迟与距离的背压方法 |
Non-Patent Citations (3)
Title |
---|
LONG HAI等: "《Delay-Optimal Back-Pressure Routing Algorithm for Multihop Wireless Networks》", 《IEEE》 * |
ZHENZHEN JIAO等: "《A virtual queue-based back-pressure scheduling algorithm for wireless sensor networks》", 《SPRINGER》 * |
王彬彬等: "《无线传感器网络中基于延迟与能量平衡的背压调度算法》", 《传感技术学报》 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8068500B2 (en) | Node device, packet control device, radio communication device, and transmission control method | |
CN111479306B (zh) | 一种基于Q-learning的飞行自组网QoS路由方法 | |
US8897137B2 (en) | Dynamic setting of optimal buffer sizes in IP networks | |
US6480505B1 (en) | Batched fair exhaustive polling scheduler | |
US8045463B2 (en) | Path estimation in a wireless mesh network | |
US6765905B2 (en) | Method for reducing packet data delay variation in an internet protocol network | |
US8428558B2 (en) | System and method for routing in a wireless mesh network | |
US20070297375A1 (en) | System and method for data transmission in an ad hoc communication network | |
JP2005341441A (ja) | 無線通信装置 | |
JP2021536196A (ja) | 輻輳制御方法及びネットワークデバイス | |
CN108495338B (zh) | 应用于tdma自组网的跨层路由协议实现方法 | |
CN104010289A (zh) | 一种无线自组网邻居节点相互发现的通信方法 | |
JP2006014329A (ja) | 通信端末 | |
JP2006352896A (ja) | 無線通信装置 | |
CN104486809A (zh) | 一种无线局域网路由方法 | |
WO2013128884A1 (ja) | パケット転送装置及びパケット転送方法、並びにコンピュータ・プログラム | |
CN105338646B (zh) | Rts/cts机制的启动控制方法及装置 | |
CN108632911A (zh) | 基于全局调度的自适应冲突避免实时媒介访问控制方法 | |
Majeed et al. | Packet aggregation in multi-rate wireless LANs | |
Di Stasi et al. | Combining multi-path forwarding and packet aggregation for improved network performance in wireless mesh networks | |
EP3582455B1 (en) | Method and apparatus for multiple subflows network transmission | |
CN111917647A (zh) | 一种单队列背压式数据驱动路由方法及相关组件 | |
CN115665060A (zh) | 一种用于异构网络的多路径传输调度方法及装置 | |
EP2400792B1 (en) | Method and system for deriving an aggregation delay for packet aggregation in a wireless network | |
Lim et al. | RAIN: A reliable wireless network architecture |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20201110 |
|
RJ01 | Rejection of invention patent application after publication |