CN106453139B - 数据包调度的方法及装置 - Google Patents
数据包调度的方法及装置 Download PDFInfo
- Publication number
- CN106453139B CN106453139B CN201610851643.6A CN201610851643A CN106453139B CN 106453139 B CN106453139 B CN 106453139B CN 201610851643 A CN201610851643 A CN 201610851643A CN 106453139 B CN106453139 B CN 106453139B
- Authority
- CN
- China
- Prior art keywords
- data packet
- control node
- bandwidth
- data
- control area
- 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.)
- Active
Links
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/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/625—Queue scheduling characterised by scheduling criteria for service slots or service orders
- H04L47/6275—Queue scheduling characterised by scheduling criteria for service slots or service orders based on priority
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/52—Queue scheduling by attributing bandwidth to queues
- H04L47/527—Quantum based scheduling, e.g. credit or deficit based scheduling or token bank
Abstract
本发明公开了一种数据包调度的方法及装置,主要目的在于解决现有技术中在使用队列调度时,只能根据单一数据包属性进行调度。本发明的技术方案包括:将数据发送端发送的数据包发送至首个控制区域;根据数据包对应首个控制区域的属性参数,将数据包分配给首个控制区域中相应的控制节点,并确定与控制节点关联的第一发送优先级;获取数据包的数据包大小参数,并根据数据包大小参数计算数据包对应的带宽占用量;若带宽占用量小于或者等于当前控制节点内的实际剩余带宽量,则根据第一发送优先级将数据包发送至下一个控制区域,并在下一个控制区域中继续对数据包进行控制节点分配及优先级确定;当数据包通过所有控制区域后,将数据包发送至数据接收端。
Description
技术领域
本发明涉及互联网技术领域,特别是涉及一种数据包调度的方法及装置。
背景技术
随着互联网技术的快速发展,用户对网络通信服务质量的要求越来越高,特别的,一些关键应用或者多媒体应用等重要业务对网络通信服务器质量的要求可能更高。但是,限于互联网中网络设备的处理能力及出口带宽的限制等因素,当网络中数据包超过网络设备转发能力时,就会发生拥塞,影响网络通信服务质量。
目前,为了解决网络过载或拥塞的问题,可以通过服务质量(Quality ofService,QoS)确保重要业务量不受延迟,以保证网络的高效运行。网络设备通过QoS解决网络过载或拥塞的具体过程包括:为数据包分配不同的优先级,并将不同优先级的数据包存储于不同的优先级队列中;其次,通过对不同优先级队列的调度算法,对数据包进行转发处理,以解决网络拥堵的问题。其中,常用的QoS队列调度算法有:严格优先级调度算法(Priority Queueing,PQ)、加权公平队列算法(Weighted Fair Queueing,WFQ)、用户定制队列(Customized Queue,CQ)等等。
发明人在实现本发明过程中,发现现有技术中在使用QoS队列调度算法进行队列调度过程中,只能根据数据包的一个数据包属性进行调度,限制了队列的调度,可能无法很好的解决网络拥塞的问题。例如,网络管理员配置用户A上网的优先级最高,用户B上网的优先级次之,即按照上网者对优先级进行控制;或者,设置网络中的视频电话的优先级最高,设置浏览网页的优先级次之,QoS队列调度算法可以按照应用程序对数据包的优先级进行设置。但是,若通过QoS队列调度算法配置按应用程序及上网者优先的综合调度方法,现有技术中提供的QoS队列调度算法无法实现。
发明内容
有鉴于此,本发明提供的一种数据包调度的方法及装置,主要目的在于解决现有技术中在使用QoS队列调度时,只能根据单一数据包属性进行调度的缺陷,实现同时通过至少两个数据包属性对QoS队列作综合调度。
依据本发明一个方面,本发明提供了一种数据包调度的方法,所述方法涉及至少两个控制区域,每个控制区域用于基于一个属性维度设定数据包的发送优先级,每个控制区域包含至少两个控制节点,每个控制节点关联于所述属性维度的一个属性参数及对应所述属性参数的第一发送优先级,且每个控制节点拥有固定的带宽;所述方法包括:
将数据发送端发送的数据包发送至首个控制区域;
根据所述数据包对应所述首个控制区域的属性参数,将所述数据包分配给首个控制区域中相应的控制节点,并确定与所述控制节点关联的第一发送优先级;
获取所述数据包的数据包大小参数,并根据所述数据包大小参数计算所述数据包对应的带宽占用量;
若所述带宽占用量小于或者等于当前控制节点内的实际剩余带宽量,则根据所述第一发送优先级将所述数据包发送至下一个控制区域,并在下一个控制区域中继续对所述数据包进行控制节点分配及优先级确定;
当所述数据包通过所有控制区域后,将所述数据包发送至数据接收端。
可选的,在根据所述第一发送优先级将所述数据包发送至下一个控制区域之前,所述方法还包括:
根据预设优先级分配策略及所述数据包的属性参数确定所述数据包在当前控制节点中的第二发送优先级;其中,控制节点内区分不同的发送优先级,属性参数相同或者属性参数对应的数值属于同一预定范围的数据包存入同一控制节点中;
根据所述第二发送优先级将所述数据包存入所述当前控制节点。
可选的,在根据所述第一发送优先级将所述数据包发送至下一个控制区域之前,所述方法还包括:
将所述带宽占用量与实际剩余限制带宽进行比对;其中,所述实际剩余带宽量包括:实际剩余保证带宽及实际剩余限制带宽,所述实际剩余保证带宽小于所述实际剩余限制带宽,所述实际剩余保证带宽对应的标记方式为第一标记方式,所述实际剩余限制带宽对应的标记方式为第二标记方式,被所述第一标记方法标记的数据包的发送优先级比被所述第二标记方法标记的数据包的发送优先级高;下一个控制区域发送数据包时依据当前控制区域内控制节点确定的数据包对应的标记方式,并且当前控制区域内控制节点确定的数据包对应的标记方式可以被下一个控制区域内控制节点确定的数据包对应的标记方式所覆盖;
若确定所述带宽占用量小于或等于所述实际剩余保证带宽,则使用第一标记方式对所述数据包进行标注;
若确定所述带宽占用量大于所述实际剩余保证带宽,且小于或等于所述实际剩余限制带宽,则使用第二标识方式对所述数据包进行标注。
可选的,根据所述第一发送优先级将所述数据包发送至下一个控制区域包括:
根据所述第一发送优先级及所述第二发送优先级,将使用所述第一标记方式标记的数据包发送至所述下一个控制区域;
当使用第一标记方式标注的数据包全部通过当前控制区域后,根据所述第一发送优先级及所述第二发送优先级,将使用第二标记方式标注的数据包发送至所述下一个控制区域。
可选的,根据所述数据包对应所述首个控制区域的属性参数,将所述数据包分配给首个控制区域中相应的控制节点包括:
确定相应的控制节点内采用相同标记方式的数据包的个数是否超过预置允许存入阈值;
若确定所述相应的控制节点内采用相同标记方式的数据包的个数未超过预置允许存入阈值,则将所述数据包分配给首个控制区域中相应的控制节点。
可选的,所述方法还包括:
若所述数据包对应的带宽占用量大于当前控制节点的实际剩余带宽量,则使用第三标记方式对所述数据包进行标注;
在当前控制区域中对所述数据包进行缓存,直到所述带宽占用量小于或者等于当前控制节点的实际剩余带宽量,并根据所述第一发送优先级将所述数据包发送至下一个控制区域。
可选的,根据预设优先级分配策略及所述数据包的属性参数确定所述数据包在当前控制节点中的第二发送优先级包括:
获取所述数据包内包含的数据接收端目的地信息;
根据所述数据接收端目的地信息,确定所述当前控制节点内的不同数据包对应的数据接收端的目的地信息是否一致;
若确定所述当前控制节点内的不同数据包对应的数据接收端目的地信息一致,则根据所述预设优先级分配策略,为所述当前控制节点内拥有相同数据接收端目的地信息的数据包分配相同的第二发送优先级。
可选的,在在当前控制区域中对所述数据包进行缓存之前,所述方法还包括:
确定所述当前控制节点的存储空间是否已满;
在当前控制区域中对所述数据包进行缓存包括:
若确定所述当前控制节点的存储空间未满,则在所述当前控制节点内顺序缓存所述数据包。
可选的,所述方法还包括:
若确定所述当前控制节点的存储空间已满,则确定所述数据包是否有缓存的历史记录;
若确定所述数据包有缓存的历史记录,则在所述当前控制节点内添加占位符,并缓存所述数据包;
若确定所述数据包没有缓存的历史记录,则将所述数据包丢弃。
可选的,所述方法还包括:
若所述占位符内的所述数据包成功发送至所述数据接收端后,将所述占位符删除。
可选的,在根据所述第一发送优先级将所述数据包发送至下一个控制区域之后,所述方法还包括:
将发送成功的数据包在当前控制节点内占用的带宽资源释放。
依据本发明另一个方面,本发明提供了一种数据包调度的装置,所述装置涉及至少两个控制区域,每个控制区域用于基于一个属性维度设定数据包的发送优先级,每个控制区域包含至少两个控制节点,每个控制节点关联于所述属性维度的一个属性参数及对应所述属性参数的第一发送优先级,且每个控制节点拥有固定的带宽;所述装置包括:
第一发送单元,用于将数据发送端发送的数据包发送至首个控制区域;
分配单元,用于根据所述数据包对应所述首个控制区域的属性参数,将所述数据包分配给首个控制区域中相应的控制节点;
第一确定单元,用于确定与所述控制节点关联的第一发送优先级;
获取单元,用于获取所述数据包的数据包大小参数;
计算单元,用于根据所述获取单元获取的所述数据包大小参数计算所述数据包对应的带宽占用量;
第二发送单元,用于当确定所述计算单元计算的所述带宽占用量小于或者等于当前控制节点内的实际剩余带宽量时,根据所述第一发送优先级将所述数据包发送至下一个控制区域;
第一处理单元,用于在下一个控制区域中继续对所述数据包进行控制节点分配及优先级确定;
第三发送单元,用于当所述数据包通过所有控制区域后,将所述数据包发送至数据接收端。
可选的,所述装置还包括:
第二确定单元,用于在所述第二发送单元根据所述第一发送优先级将所述数据包发送至下一个控制区域之前,根据预设优先级分配策略及所述数据包的属性参数确定所述数据包在当前控制节点中的第二发送优先级;其中,控制节点内区分不同的发送优先级,属性参数相同或者属性参数对应的数值属于同一预定范围的数据包存入同一控制节点中;
存储单元,用于根据所述第二确定单元确定的所述第二发送优先级将所述数据包存入所述当前控制节点。
可选的,所述装置还包括:
比对单元,用于在所述第二发送单元根据所述第一发送优先级将所述数据包发送至下一个控制区域之前,将所述带宽占用量与实际剩余限制带宽进行比对;其中,所述实际剩余带宽量包括:实际剩余保证带宽及实际剩余限制带宽,所述实际剩余保证带宽小于所述实际剩余限制带宽,所述实际剩余保证带宽对应的标记方式为第一标记方式,所述实际剩余限制带宽对应的标记方式为第二标记方式,被所述第一标记方法标记的数据包的发送优先级比被所述第二标记方法标记的数据包的发送优先级高;下一个控制区域发送数据包时依据当前控制区域内控制节点确定的数据包对应的标记方式,并且当前控制区域内控制节点确定的数据包对应的标记方式可以被下一个控制区域内控制节点确定的数据包对应的标记方式所覆盖;
第一标注单元,用于当所述比对单元确定所述带宽占用量小于或等于所述实际剩余保证带宽时,使用第一标记方式对所述数据包进行标注;
第二标注单元,用于当所述比对单元确定所述带宽占用量大于所述实际剩余保证带宽,且小于或等于所述实际剩余限制带宽时,使用第二标识方式对所述数据包进行标注。
可选的,所述第二发送单元包括:
第一发送模块,用于根据所述第一发送优先级及所述第二发送优先级,将使用所述第一标记方式标记的数据包发送至所述下一个控制区域;
第二发送模块,用于当所述第一发送模块中使用第一标记方式标注的数据包全部通过当前控制区域后,根据所述第一发送优先级及所述第二发送优先级,将使用第二标记方式标注的数据包发送至所述下一个控制区域。
可选的,所述分配单元包括:
确定模块,用于确定相应的控制节点内采用相同标记方式的数据包的个数是否超过预置允许存入阈值;
分配模块,用于当所述确定模块确定所述相应的控制节点内采用相同标记方式的数据包的个数未超过预置允许存入阈值时,将所述数据包分配给首个控制区域中相应的控制节点。
可选的,所述装置还包括:
标注单元,用于当确定所述计算单元计算的所述数据包对应的带宽占用量大于当前控制节点的实际剩余带宽量时,使用第三标记方式对所述数据包进行标注;
第二处理单元,用于在当前控制区域中对所述数据包进行缓存,直到所述带宽占用量小于或者等于当前控制节点的实际剩余带宽量,并根据所述第一发送优先级将所述数据包发送至下一个控制区域。
可选的,所述第二确定单元包括:
获取模块,用于获取所述数据包内包含的数据接收端目的地信息;
确定模块,用于根据所述获取模块获取的所述数据接收端目的地信息,确定所述当前控制节点内的不同数据包对应的数据接收端的目的地信息是否一致;
分配模块,用于当所述确定模块确定所述当前控制节点内的不同数据包对应的数据接收端目的地信息一致时,根据所述预设优先级分配策略,为所述当前控制节点内拥有相同数据接收端目的地信息的数据包分配相同的第二发送优先级。
可选的,所述装置还包括:
第三确定单元,用于在所述第二处理单元在当前控制区域中对所述数据包进行缓存之前,确定所述当前控制节点的存储空间是否已满;
所述第二处理单元,还用于当所述第三确定单元确定所述当前控制节点的存储空间未满时,在所述当前控制节点内顺序缓存所述数据包。
可选的,所述装置还包括:
第四确定单元,用于当所述第三确定单元确定所述当前控制节点的存储空间已满时,确定所述数据包是否有缓存的历史记录;
第三处理单元,用于当所述第四确定单元确定所述数据包有缓存的历史记录时,在所述当前控制节点内添加占位符,并缓存所述数据包;
丢弃单元,用于当所述第四确定单元确定所述数据包没有缓存的历史记录使,将所述数据包丢弃。
可选的,所述装置还包括:
删除单元,用于当所述占位符内的所述数据包成功发送至所述数据接收端后,将所述第三处理单元添加的所述占位符删除。
可选的,所述装置还包括:
释放单元,用于在所述第二发送单元根据所述第一发送优先级将所述数据包发送至下一个控制区域之后,将发送成功的数据包在当前控制节点内占用的带宽资源释放。
借由上述技术方案,本发明提供的数据包调度的方法及装置,该方法涉及至少两个控制区域,每个控制区域用于基于一个属性维度设定数据包的发送优先级,每个控制区域包含至少两个控制节点,每个控制节点关联于该属性维度的一个属性参数及对应该属性参数的第一发送优先级,且每个控制节点拥有固定的带宽;在进行数据包调度时,首先,将数据发送端发送的数据包发送至首个控制区域,根据该数据包对应该首个控制区域的属性参数,将该数据包分配给首个控制区域中相应的控制节点,并确定与该控制节点关联的第一发送优先级,获取该数据包的数据包大小参数,并根据该数据包大小参数计算该数据包对应的带宽占用量,若该带宽占用量小于或者等于当前控制节点内的实际剩余带宽量,则根据该第一发送优先级将该数据包发送至下一个控制区域,并在下一个控制区域中继续对该数据包进行控制节点分配及优先级确定,当该数据包通过所有控制区域后,将该数据包发送至数据接收端。与现有技术相比,本发明能够根据同一数据包的不同属性参数及当前控制节点内的实际剩余带宽量,实现数据流的综合优先调度。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本发明实施例提供的一种QoS模块的架构示意图;
图2示出了本发明实施例提供了一种数据包调度的方法的流程图;
图3示出了本发明实施例提供的另一种QoS模块的架构示意图;
图4示出了本发明实施例提供的一种控制节点的示意图;
图5示出了本发明实施例提供了另一种数据包调度的方法的流程图;
图6示出了本发明实施例提供的一种数据包在QoS模型内的流转顺序示意图;
图7示出了本发明实施例提供了一种数据包调度的装置的组成框图;
图8示出了本发明实施例提供了另一种数据包调度的装置的组成框图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
目前,网络资源作为一种有限资源,分配给某网络设备或者某终端设备,同一个网络设备或终端设备共享有限的网络资源,必会存在不同的应用或者业务之间抢夺网络资源的情况。例如,同一网络设备中,如果应用程序A占用的带宽越多,那么应用程序B或者其他业务占用的带宽会越少,对于应用程序B或其他业务造成网络拥堵,甚至会影响应用程序B或者其他业务的正常使用,造成网络资源分配不合理,影响网络资源的高效利用。
为了能够合理高效的对固定的网络资源进行规划,本发明实施例采用服务质量(Quality of Service,QoS)实现对有限固定的网络资源进行合理的规划和分配。
在对本发明实施例方法进行说明之前,为方便理解,首先给出本发明实施例使用的QoS模块的架构示意图,应当明确的是,该示意图中的内容仅是示例性的举例,不作为对本发明实施例实际应用的限制。如图1所示,图1示出了本发明实施例提供的一种QoS模块的架构示意图,QoS模块中包含N个控制区域,N为大于等于2的正整数,其中,每个控制区域用于基于一个属性维度设定数据包的发送优先级,每个控制区域包含至少两个控制节点,每个控制节点关联于所述属性维度的一个属性参数及对应所述属性参数的第一发送优先级,且每个控制节点拥有固定的带宽;该属性维度由网络管理员根据数据包的属性参数配置确定;在对数据包进行调度时,数据包依次经过QoS模块中的每个控制区域,当数据包通过QoS模块中的最后一个控制区域时,实现数据包的发送。
下面,基于图1所示的架构示意图,给出本发明实施例提供了一种数据包调度的方法,如图2所示,该方法包括:
101、将数据发送端发送的数据包发送至首个控制区域。
QoS模块在执行数据包调度时,将接收到的数据包首先发送至QoS模块中的首个控制区域(如图1所示的首个控制区域),当数据包能够通过首个控制区域后,依次将数据包发送至QoS模块中的下一个控制区域,直到数据包通过QoS模块中的所有控制区域,QoS模块从不同的属性维度对数据包进行合理调度,实现数据包的综合优先调度。QoS模块中各个控制区域中的属性维度根据数据包中部分数据包属性参数确定,网络管理员可以在控制区域中根据数据包属性参数进行优先级的配置。
为了便于数据包依次QoS模块中的各个控制区域,在进入QoS模块中的第一个控制区域之前,获取数据包的属性参数及数据包大小参数,其中,获取数据包属性参数的目的在于将获取的属性参数与不同控制区域对应的属性维度进行匹配,实现数据包的综合多重属性的优先调度;获取数据包大小参数的目的在于,限于网络资源的有限性,根据数据包参数大小确定数据包的优先调度。在实际应用中,每个数据包包含的属性参数较多,但为了减少不必要的网络资源耗费,在获取待发送数据的属性参数时,只获取与各个控制区域中属性维度对应的属性参数即可。
在本发明实施例中,所述数据包的数据包大小参数由固定长度的报头和数据确定,因此,不同的数据包的数据包大小参数存在差异;数据包拥有的属性参数是固定的,包含但不局限于以下内容,例如:用户/用户组、协议类型、目的端口、源端口、目的IP、源IP地址等等,但每个数据包对应的属性参数可能存在差异。本发明实施例对数据包的数据包大小参数以及属性参数不做具体限定。
102、根据所述数据包对应所述首个控制区域的属性参数,将所述数据包分配给首个控制区域中相应的控制节点,并确定与所述控制节点关联的第一发送优先级。
承由步骤101可知,在将数据包发送至首个控制区域之前,获取数据包的属性参数,在数据包发送至首个控制区域时,首先需要确定首个控制区域的属性维度,根据该属性维度确定数据包中与该属性维度对应的属性参数。在实际应用中,控制区域中包含至少两个控制节点,而同一控制节点内会存储有同一属性参数或者某个属性参数范围内的数据包;为了实现对数据包的综合优先调度,同一控制区域内的不同控制节点之间存在第一优先级,同一控制节点内不同的数据包区分第二优先级。
示例性的,假设,首个控制区域的属性维度为“应用程序”,而数据包A的属性参数为视频应用程序、数据包B属性参数为邮件应用程序及数据包C属性参数为邮件应用程序等等,在QoS模块将数据包A、数据包B发送至首个控制区域时,根据QoS模块的首个控制区域对应的属性维度(应用程序)分别获取数据包A的对应的应用程序属性参数(视频)、数据包B的应用程序属性参数(邮件)及数据包C的应用程序属性参数(邮件),并分别根据数据包A、数据包B及数据包C的属性参数,分配至首个控制区域内响应的控制节点上;假设,存储视频应用程序的控制节点的优先级高,存储邮件应用程序的控制节点的优先级次之,那么,在QoS模块进行数据包调度时,有限发送优先级高的控制节点内的数据包。以上仅为示例性的举例,本发明实施例对QoS模块中控制区域的个数、控制区域内控制及诶单的个数、每个控制节点存储数据包的个数、及优先级的设置不作具体限定。
103、获取所述数据包的数据包大小参数,并根据所述数据包大小参数计算所述数据包对应的带宽占用量。
由于存储数据包的当前控制节点中只有固定的带宽,若数据包占用的带宽使用量较大时,控制节点内的固定带宽不足以将数据包进行发送,为了使网络资源分配的更合理,在数据包执行调度之前,获取数据包的数据包大小参数,并根据数据包大小参数计算数据包对应的带宽占用量,将带宽占用量与当前控制节点内的实际剩余带宽量进行比对,当数据包的带宽占用量小于或者等于当前控制节点内的实际剩余带宽量时,则执行步骤104;当数据包的带宽占用量大于当前控制节点内的实际剩余带宽量时,则将所述数据包进行缓存或者丢弃,若将所述数据包缓存,待当前控制节点内的实际剩余带宽量大于数据包的带宽占用量时,继续执行步骤104。
104、若所述带宽占用量小于或者等于当前控制节点内的实际剩余带宽量,则根据所述第一发送优先级将所述数据包发送至下一个控制区域,并在下一个控制区域中继续对所述数据包进行控制节点分配及优先级确定。
在实际应用中,当一个数据包进入控制区域后,首先根据第一优先级匹配数据包与当前控制节点关联的第一发送优先级,其次,在确定第一发送优先级的基础上,根据数据包的数据包大小参数做带宽判定。在当前控制区域做带宽判定时,可以将各个当前控制区域中的固定带宽存入到令牌桶中,令牌桶中包含有多个令牌,每个令牌代表不固定的带宽数,当数据包获取到令牌时,即获取了通过当前控制区域的资格,即可进入到下一个控制区域。
当数据包发送至QoS模块中的第二个控制区域时,执行的操作步骤与数据包发送至首个控制区域的相似,区别点在于:首个控制区域的属性维度与第二个控制区域的属性维度不同,在根据数据包属性参数分配至第二控制区域内相应的控制节点时,参考的属性维度也不同。
数据包成功发送的必要条件为依次通过QoS模块中的每一个控制区域,而数据包通过控制区域需同时依据各个控制区域的第一优先级条件和当前控制节点内的实际剩余带宽量,若数据包同时满足上述两个条件,则执行步骤105;若数据包不能同时满足上述两个必要条件,则将未成功发送的数据包进行缓存或者丢弃。
105、当所述数据包通过所有控制区域后,将所述数据包发送至数据接收端。
当所述数据包通过最后一个控制区域,即数据包通过QoS模块内所有的控制区域时,将所述数据包发送至数据接收端。
QoS模块接收到数据发送端发送的待发送数据,其目的在于,在网络带宽限定或者拥堵的情况下,根据网络管理员配置的第一优先级和控制节点内的固定带宽,为接收到的数据包进行合理的优先级调度。为了更合理的对数据包进行调度,从多个数据属性维度对数据包进行综合调度,因此,数据包通过QoS模块中的所有控制区域,即数据包实现综合属性维度的调度,方可将数据包发送至数据接收端。
需要说明的是,本发明实施例所述的数据发送端不限于网络设备或终端设备,同样的,数据接收端也不限于网络设备或终端设备,示例性的,网络服务器A向某个人电脑(personal computer,PC)发送视频数据包,那么网络服务器A作为数据发送端,个人电脑作为数据接收端;平板电脑向服务器B发送邮件的数据包,那么平板电脑作为数据发送端,而服务器B作为数据接收端。
本发明实施例提供的数据包调度的方法,该方法涉及至少两个控制区域,每个控制区域用于基于一个属性维度设定数据包的发送优先级,每个控制区域包含至少两个控制节点,每个控制节点关联于该属性维度的一个属性参数及对应该属性参数的第一发送优先级,且每个控制节点拥有固定的带宽;在进行数据包调度时,首先,将数据发送端发送的数据包发送至首个控制区域,根据该数据包对应该首个控制区域的属性参数,将该数据包分配给首个控制区域中相应的控制节点,并确定与该控制节点关联的第一发送优先级,获取该数据包的数据包大小参数,并根据该数据包大小参数计算该数据包对应的带宽占用量,若该带宽占用量小于或者等于当前控制节点内的实际剩余带宽量,则根据该第一发送优先级将该数据包发送至下一个控制区域,并在下一个控制区域中继续对该数据包进行控制节点分配及优先级确定,当该数据包通过所有控制区域后,将该数据包发送至数据接收端。与现有技术相比,本发明实施例能够根据同一数据包的不同属性参数及当前控制节点内的实际剩余带宽量,实现数据流的综合优先调度。
进一步,作为对上述实施例的细化和扩展,在步骤104执行根据所述第一发送优先级将所述数据包发送至下一个控制区域之前,根据预设优先级分配策略及数据包的数据包属性信息确定所述数据包在当前控制节点中的第二发送优先级;其中,控制节点内区分不同的发送优先级,数据包属性信息相同或者数据包属性信息对应的数值属于同一预定范围的待发送数据包存入同一控制节点中;根据所述第二发送优先级将所述数据包存入所述当前控制节点。
其中,预设优先级分配策略是网络运营商或者网络管理员根据实际需要人工配置的,例如,配置用户A的、视频电话数据包优先发送,则在控制区域的属性维度设置用户A对应的IP地址的优先级最高,且应用程序维度中视频电话的优先级最高,实现从两个属性维度对数据包进行综合调度。
为了便于理解,本发明实施例会以示例的形式对控制区域、控制节点进行详细说明。承由上述图1所示的示意图,图3示出了本发明实施例提供的另一种QoS模块的架构示意图,如图3所示,为了便于对各个控制区域进行管理,在QoS模块中设计为一个QoS控制矩阵,控制区域中内置于QoS控制矩阵中,在每一级的控制区域中又包含多个控制节点,每个控制节点内又通过不同的标记方式、优先级及记录有通过当前控制节点带宽使用状态的令牌桶,且控制节点内的数据存储形式为指针队列,当根据预设优先级分配策略确定数据包在当前控制区域中的优先级后,将数据包插入到指针队列中,等待发送或者直接发送。图3中包含六个控制区域,即QoS模块最多可以从六维属性维度对数据包进行调度,每个控制区域中包含六个控制节点,以上仅为示例性的举例,本发明实施例对QoS模型中控制区域的个数、及每个控制区域内的控制节点的个数不作限定。
以上,已详细说明了QoS模型的架构,请继续参阅图3,并同时参考图4,图4示出了本发明实施例提供的一种控制节点的示意图,在该控制节点内区分不同的优先级、不同的标记方式,在对数据包进行调度时,根据确定的数据包的第一优先级及第二优先级的先后顺序和不同的标记方式进行,后续会详细说明使用不同的标记方式对数据包进行标记。本发明实施例对优先级的多少及标记方式不作限定。
进一步的,为了区分当前控制节点内不同数据包对应的第二优先级顺序,在QoS模型根据所述第一发送优先级将所述数据包发送至下一个控制区域之前,将数据包的带宽占用量与当前控制节点内的实际剩余限制带宽进行比对;其中,该实际剩余带宽量包括:实际剩余保证带宽及实际剩余限制带宽,该实际剩余保证带宽小于该实际剩余限制带宽,该实际剩余保证带宽对应的标记方式为第一标记方式,该实际剩余限制带宽对应的标记方式为第二标记方式,被该第一标记方法标记的数据包的发送优先级比被该第二标记方法标记的数据包的发送优先级高;下一个控制区域发送数据包时依据当前控制区域内控制节点确定的数据包对应的标记方式,并且当前控制区域内控制节点确定的数据包对应的标记方式可以被下一个控制区域内控制节点确定的数据包对应的标记方式所覆盖。
在本发明实施例中,带宽占用量与实际剩余限制带宽的比对结果分为三种:
第一种:确定所述带宽占用量小于或等于实际剩余保证带宽。
在具体实施过程中,设置实际剩余保证带宽小于实际剩余限制带宽,确保数据包带宽占用量小的数据包优先通过。第一种比对结果表明,QoS模型确定数据包的带宽占用量小于当前控制区域的实际剩余保证带宽,即当前控制节点内有保证带宽的令牌可以使用,并使用第一标记方式对数据包进行标注。本发明实施例中所述对数据包进行标注的方式,不限于使用颜色标注,即确定数据包的带宽占用量小于或者等于实际剩余保证带宽时,将该数据包标注为绿色,以便于下一级控制区域根据不同的颜色标注确认发送数据包的先后顺序。
需要说明的是,本发明实施例所述的实际剩余限制带宽及实际剩余保证带宽,并非意在说明一个数据包的数据包大小参数符合实际剩余限制带宽或者实际剩余保证带宽,而是意在说明在单位时间内允许从数据发送端到数据接收端的数据流所占用的带宽占用量。
第二种:确定所述带宽占用量大于所述实际剩余保证带宽,且小于或等于所述实际剩余限制带宽。
第二种比对结果表明,当前控制节点内有限制带宽的令牌可以使用,并使用第二标识方式对所述数据包进行标注。在具体实施过程中,所述第二种标识方式为用黄色对待发送数据进行标注。
第三种:确定所述带宽占用量大于所述实际剩余限制带宽。
第三种比对结果表明:当前控制节点内没有任何令牌可以使用,在所述当前控制区域中对所述数据包进行缓存,直到数据包获取当前控制节点内的相应的令牌;并使用第三标记方式对数据包进行标注。在具体实施过程中,所述第三种标识方式为用红色对待发送数据进行标注。
综上,已详细说明根据数据包的带宽占用量、实际剩余保证带宽及实际剩余限制带宽,将数据包标注为三种不同的颜色,以下对数据包的颜色及含义做汇总说明,如表1所示,表1示出了本发明实施例提供的数据包的标注颜色及含义。本发明实施例对数据包的标注颜色不作限定,也可以对数据包标注蓝色、橙色等颜色。
表1
需要说明的是,表1所述的标注颜色的方式应用于数据发送端位于网络设备侧,数据接收端位于终端设备侧;但是,对于数据发送端位于终端设备侧,数据接收端位于网络设备侧的待发送数据而言,凡是可以由终端设备侧发送成功的数据包,即标注为绿色,即该类数据包为实际剩余保证带宽范围内的数据包;否则,将该类数据包标注为红色,即该类数据包为超过实际剩余限制带宽的数据包。
进一步的,如上所述,当前控制节点内的数据存储形式为指针队列,队列中有预定的存储空间,为了避免队列存储空间已满,使得数据包得不到调取的情况,在根据第二优先级将数据包存入当前控制节点之前,首先,确定当前控制节点内相同标记的数据包的个数是否超过预置允许存入阈值,当确定当前控制节点内相同标记的数据包的个数未超过当前控制节点的预置允许存入预置时,将数据包存入当前控制控制节点内。示例性的,假设,当前控制节点内预置允许存入阈值为20,在数据包存储于当前控制节点之前,检查该队列内同颜色数据包的数量是否超过,若超过20,则不能将数据包存储于当前控制节点内,以防止其他的数据包得不到调度;若不超过20,则将数据包存储于当前控制节点内。本发明实施例对预置允许存入阈值不作限定。
进一步的,在将数据包按照第二优先级顺序存入当前控制区域后,若允许数据包通过当前控制区域,则根据所述第一发送优先级及所述第二发送优先级,将使用第一标记方式标注的数据包首先通过当前控制区域,当使用第一标记方式标注的数据包全部通过当前控制区域后,根据所述第一发送优先级及所述第二发送优先级,将使用第二标记方式标注的数据包通过当前剧控制区域。在实际应用中,当前控制节点内的带宽资源是固定的、有限的,当当前控制节点内的数据包发送至下一个控制区域后,发送成功的数据包会将其在当前控制区域内占用的带宽资源释放,QoS模块会以固定的时间单位向当前控制区域内发放令牌(带宽),发送令牌的时机由数据包确定,但是,发放的令牌数不会超过当前控制区域内固定的带宽。
进一步的,由于QoS模块向控制区域内绿色令牌和黄色令牌的分发速度不同,隶属于同一数据流的数据包可能分别被分配到不同的优先级中,那么,按照优先级入队时会出现乱序现象。为了防止同一数据流的数据包被分配为不同的第二优先级,在根据预设优先级分配策略及所述属性参数确定所述数据包在控制节点中的第二优先级时,首先,获取数据包内包含的数据接收端的目的地信息,所述目的地信息包括但不限于目的地IP地址、目的端口等信息;其次,根据预设优先级分配策略及所述属性参数确定所述数据包在控制节点中的第二优先级。示例性的,数据包1、数据包2、数据包3为同一数据流的数据包,即三个数据包的目的地信息相同,若按照预设优先级分配策略,数据包1、数据包3被标注为绿色,而数据包2被标注为黄色,此时出现乱序现象,则需要对数据包2的乱序进行纠正,即将黄色标注的数据包2纠正为绿色标注,同时将绿色标注的数据包3纠正为黄色标注,实现在当前能控制节点内,数据包1、数据包2及数据包3得以顺序排列。
进一步的,由上可知,在数据包进入当前控制节点之前,需要确认当前控制节点内相同标记的数据包的个数是否超过预置允许存入阈值,以避免当前控制节点内的其他数据包无法调度,同样的,在当前控制区域中对数据包进行缓存之前,首先,确定当前控制节点的存储空间是否已满,若确定所述当前控制节点的存储空间未满,则在所述当前控制节点内顺序缓存所述数据包。若确定所述当前控制节点的存储空间已满,则确定数据包是否有缓存的历史记录;若确定数据包有缓存的历史记录,则在所述当前控制节点内添加占位符,并缓存所述数据包;若确定数据包无缓存的历史记录,则将所述数据包丢弃。需要说明的是,在确定数据包是否有存储的历史记录时,确定的是QoS模块的整个控制矩阵中是否有该数据包的缓存记录,而非是确定当前控制节点或者其他的控制节点是否存在该数据包的缓存记录。
在实际应用中,在当前控制节点内添加占位符,实质上是向上一个控制节点借用临时的存储空间,而非是永久性的占用上一个控制节点的空间。当占位符内的数据包成功发送至下一级控制区域后,或者成功发送至数据接收端之后,将添加的占位符删除。
可选的,上述已说明数据包发送至下一个控制区域的必要条件为数据包获取令牌。作为本发明实施例的另一种实现方式,可以在当前控制节点的队首出设置定时器,定时器按照一定的时间间隔触发发送获取令牌后的数据包,直到没有令牌为止。
以上已详细说明了本发明实施例提供的多维QoS优先级队列及其对应的调度方法的具体实现过程,以下将以QoS属性维度为用户、应用类型、网站为例进行应用场景的说明,如图5所示,该场景涉及的主要流程方法包括:
501、对数据包进行解析,确定数据包中包括数据包大小参数及与QoS属性维度对应的属性参数。
其中,所述待检测数据包有三个:数据包I、数据包II、数据包III,其分别有数据发送端A、数据发送端B及数据发送端C发送至QoS模型中,根据QoS模型中的属性维度确定数据包对应的属性参数分别为用户IP地址、应用类型及网站。
502、确定所述当前控制节点内相同标记的数据包的个数是否超过预置允许存入阈值。
若确定所述当前控制节点内相同标记的数据包的个数未超过预置允许存入阈值,则执行步骤503。
503、将数据发送端发送的数据包发送至首个控制区域。
504、根据所述数据包对应所述首个控制区域的属性参数,将所述数据包分配给首个控制区域中相应的控制节点,并确定与所述控制节点关联的第一发送优先级。
505、根据预设优先级分配策略及数据包的数据包属性信息确定所述数据包在当前控制节点中的第二发送优先级。
当三个数据包进入QoS模块中的第一个控制区域(用户维度)中的控制节点时,可以存储于不同的控制节点中,也可以存储于同一个控制节点中,本发明实施例以数据包I、数据包II、数据包III存储于同一控制节点为例进行说明。并且该控制区域内(用户维度)要求数据发送端A对应的用户优先级最高,数据发送端B及数据发送端C对应的用户优先级相同。
506、根据所述带宽占用量、实际剩余限制带宽及实际剩余保证带宽,确定待检测数据包的标记方式。
若确定数据包的带宽占用量小于或等于所述实际剩余保证带宽,或者,若确定数据包的所述带宽占用量大于所述实际剩余保证带宽,且小于或等于所述实际剩余限制带宽,则执行步骤507;若所述数据包对应的带宽占用量大于当前控制节点的实际剩余带宽量,则执行步骤508。
其中,给数据包I标注绿颜色,给数据包II、数据包III分别标注黄颜色。
507、根据所述第一发送优先级将所述数据包发送至下一个控制区域,并在下一个控制区域中继续对所述数据包进行控制节点分配及优先级确定。
如图6所示,图6示出了本发明实施例提供的一种数据包在QoS模型内的流转顺序示意图。当绿颜色的数据包I,黄颜色的数据包II及数据包III在第一级控制区域中获取令牌,并进入到第二级控制区域(应用类型)。其中,假设,数据包I及数据包III的应用类型为邮件,数据包II的应用类型为视频电话,该控制区域中要求视频数据包的优先级高于邮件数据包,则本控制区域中,将数据包II的原先标注的黄色进行更改(覆盖),并确定标注的颜色为绿色,优先发送至第三级控制区域,待优先级高的数据包(数据包II)发送完成后,按照第一级控制节点内的优先级顺序发送数据包I及数据包III,并保持第一级控制节点标注的颜色。
待数据包I、数据包II、数据包III进入到第三级控制区域(网站)后,假设数据包I、数据包II、数据包III的网站均为同一网站,在第三级控制区域内,数据包II的优先级最高,数据包I的优先级次之,数据包III的优先级最低。
508、确定所述当前控制节点的存储空间是否已满。
若确定所述当前控制节点的存储空间未满,则执行步骤509;若确定所述当前控制节点的存储空间已满,则执行步骤510。存在
509、在所述当前控制区域中对所述数据包进行缓存。
510、确定所述数据包是否有缓存的历史记录。
若确定所述数据包有缓存的历史记录,则执行步骤511;若确定所述数据包没有缓存的历史记录,则执行步骤512。
511、在所述当前控制节点内添加占位符,并缓存所述数据包。
512、将所述数据包丢弃。
需要说明的是,有关步骤501至步骤512的详细实现过程请参考上述相关说明,本发明实施例在此不再进行一一赘述,其中,上述数据接收端与数据发送端仅为示例性的举例,本发明实施例对数据接收端、数据发送端的具体类型不作限定。
进一步的,作为对上述图1所示方法的实现,本发明另一实施例还提供了一种数据包调度的装置。该装置实施例与前述方法实施例对应,为便于阅读,本装置实施例不再对前述方法实施例中的细节内容进行逐一赘述,但应当明确,本实施例中的装置能够对应实现前述方法实施例中的全部内容。
本发明实施例提供一种数据包调度的装置,如图7所示,所述装置涉及至少两个控制区域,每个控制区域用于基于一个属性维度设定数据包的发送优先级,每个控制区域包含至少两个控制节点,每个控制节点关联于所述属性维度的一个属性参数及对应所述属性参数的第一发送优先级,且每个控制节点拥有固定的带宽;所述装置包括:
第一发送单元71,用于将数据发送端发送的数据包发送至首个控制区域;
分配单元72,用于根据所述数据包对应所述首个控制区域的属性参数,将所述数据包分配给首个控制区域中相应的控制节点;
第一确定单元73,用于确定与所述控制节点关联的第一发送优先级;
获取单元74,用于获取所述数据包的数据包大小参数;
计算单元75,用于根据所述获取单元74获取的所述数据包大小参数计算所述数据包对应的带宽占用量;
第二发送单元76,用于当确定所述计算单元75计算的所述带宽占用量小于或者等于当前控制节点内的实际剩余带宽量时,根据所述第一发送优先级将所述数据包发送至下一个控制区域;
第一处理单元77,用于在下一个控制区域中继续对所述数据包进行控制节点分配及优先级确定;
第三发送单元78,用于当所述数据包通过所有控制区域后,将所述数据包发送至数据接收端。
进一步的,如图8所示,所述装置还包括:
第二确定单元79,用于在所述第二发送单元76根据所述第一发送优先级将所述数据包发送至下一个控制区域之前,根据预设优先级分配策略及所述数据包的数据包属性信息确定所述数据包在当前控制节点中的第二发送优先级;其中,控制节点内区分不同的发送优先级,数据包属性信息相同或者数据包属性信息对应的数值属于同一预定范围的数据包存入同一控制节点中;
存储单元710,用于根据所述第二确定单元79确定的所述第二发送优先级将所述数据包存入所述当前控制节点。
进一步的,如图8所示,所述装置还包括:
比对单元711,用于在所述第二发送单元76根据所述第一发送优先级将所述数据包发送至下一个控制区域之前,将所述带宽占用量与实际剩余限制带宽进行比对;其中,所述实际剩余带宽量包括:实际剩余保证带宽及实际剩余限制带宽,所述实际剩余保证带宽小于所述实际剩余限制带宽,所述实际剩余保证带宽对应的标记方式为第一标记方式,所述实际剩余限制带宽对应的标记方式为第二标记方式,被所述第一标记方法标记的数据包的发送优先级比被所述第二标记方法标记的数据包的发送优先级高;下一个控制区域发送数据包时依据当前控制区域内控制节点确定的数据包对应的标记方式,并且当前控制区域内控制节点确定的数据包对应的标记方式可以被下一个控制区域内控制节点确定的数据包对应的标记方式所覆盖;
第一标注单元712,用于当所述比对单元711确定所述带宽占用量小于或等于所述实际剩余保证带宽时,使用第一标记方式对所述数据包进行标注;
第二标注单元713,用于当所述比对单元711确定所述带宽占用量大于所述实际剩余保证带宽,且小于或等于所述实际剩余限制带宽时,使用第二标识方式对所述数据包进行标注。
进一步的,如图8所示,所述第二发送单元76包括:
第一发送模块761,用于根据所述第一发送优先级及所述第二发送优先级,将使用所述第一标记方式标记的数据包发送至所述下一个控制区域;
第二发送模块762,用于当所述第一发送模块761中使用第一标记方式标注的数据包全部通过当前控制区域后,根据所述第一发送优先级及所述第二发送优先级,将使用第二标记方式标注的数据包发送至所述下一个控制区域。
进一步的,如图8所示,所述分配单元72包括:
确定模块721,用于确定相应的控制节点内采用相同标记方式的数据包的个数是否超过预置允许存入阈值;
分配模块722,用于当所述确定模块721确定所述相应的控制节点内采用相同标记方式的数据包的个数未超过预置允许存入阈值时,将所述数据包分配给首个控制区域中相应的控制节点。
进一步的,如图8所示,所述装置还包括:
标注单元714,用于当确定所述计算单元75计算的所述数据包对应的带宽占用量大于当前控制节点的实际剩余带宽量时,使用第三标记方式对所述数据包进行标注;
第二处理单元715,用于在当前控制区域中对所述数据包进行缓存,直到所述带宽占用量小于或者等于当前控制节点的实际剩余带宽量,并根据所述第一发送优先级将所述数据包发送至下一个控制区域。
进一步的,如图8所示,所述第二确定单元79包括:
获取模块791,用于获取所述数据包内包含的数据接收端目的地信息;
确定模块792,用于根据所述获取模块791获取的所述数据接收端目的地信息,确定所述当前控制节点内的不同数据包对应的数据接收端的目的地信息是否一致;
分配模块793,用于当所述确定模块792确定所述当前控制节点内的不同数据包对应的数据接收端目的地信息一致时,根据所述预设优先级分配策略,为所述当前控制节点内拥有相同数据接收端目的地信息的数据包分配相同的第二发送优先级。
进一步的,如图8所示,所述装置还包括:
第三确定单元716,用于在所述第二处理单元715在当前控制区域中对所述数据包进行缓存之前,确定所述当前控制节点的存储空间是否已满;
所述第二处理单元715,还用于当所述第三确定单元确定所述当前控制节点的存储空间未满时,在所述当前控制节点内顺序缓存所述数据包。
进一步的,如图8所示,所述装置还包括:
第四确定单元717,用于当所述第三确定单元716确定所述当前控制节点的存储空间已满时,确定所述数据包是否有缓存的历史记录;
第三处理单元718,用于当所述第四确定单元717确定所述数据包有缓存的历史记录时,在所述当前控制节点内添加占位符,并缓存所述数据包;
丢弃单元719,用于当所述第四确定单元717确定所述数据包没有缓存的历史记录使,将所述数据包丢弃。
进一步的,如图8所示,所述装置还包括:
删除单元720,用于当所述占位符内的所述数据包成功发送至所述数据接收端后,将所述第三处理单元添加的所述占位符删除。
进一步的,如图8所示,所述装置还包括:
释放单元721,用于在所述第二发送单元76根据所述第一发送优先级将所述数据包发送至下一个控制区域之后,将发送成功的数据包在当前控制节点内占用的带宽资源释放。
本发明实施例提供的数据包调度的装置,该方法涉及至少两个控制区域,每个控制区域用于基于一个属性维度设定数据包的发送优先级,每个控制区域包含至少两个控制节点,每个控制节点关联于该属性维度的一个属性参数及对应该属性参数的第一发送优先级,且每个控制节点拥有固定的带宽;在进行数据包调度时,首先,将数据发送端发送的数据包发送至首个控制区域,根据该数据包对应该首个控制区域的属性参数,将该数据包分配给首个控制区域中相应的控制节点,并确定与该控制节点关联的第一发送优先级,获取该数据包的数据包大小参数,并根据该数据包大小参数计算该数据包对应的带宽占用量,若该带宽占用量小于或者等于当前控制节点内的实际剩余带宽量,则根据该第一发送优先级将该数据包发送至下一个控制区域,并在下一个控制区域中继续对该数据包进行控制节点分配及优先级确定,当该数据包通过所有控制区域后,将该数据包发送至数据接收端。与现有技术相比,本发明实施例能够根据同一数据包的不同属性参数及当前控制节点内的实际剩余带宽量,实现数据流的综合优先调度。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
可以理解的是,上述方法及装置中的相关特征可以相互参考。另外,上述实施例中的“第一”、“第二”等是用于区分各实施例,而并不代表各实施例的优劣。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的发明名称(如确定网站内链接等级的装置)中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
Claims (22)
1.一种数据包调度的方法,其特征在于,所述方法涉及至少两个控制区域,每个控制区域用于基于一个属性维度设定数据包的发送优先级,每个所述控制区域的属性维度不同,每个控制区域包含至少两个控制节点,每个控制节点关联于所述属性维度的一个属性参数及对应所述属性参数的第一发送优先级,且每个控制节点拥有固定的带宽;所述方法包括:
获取所述数据包的属性参数;
将数据发送端发送的数据包发送至首个控制区域;
根据所述数据包对应所述首个控制区域的属性参数,将所述数据包分配给首个控制区域中相应的控制节点,并确定与所述控制节点关联的第一发送优先级;
获取所述数据包的数据包大小参数,并根据所述数据包大小参数计算所述数据包对应的带宽占用量;
若所述带宽占用量小于或者等于当前控制节点内的实际剩余带宽量,则根据所述第一发送优先级将所述数据包发送至下一个控制区域,并在下一个控制区域中继续对所述数据包进行控制节点分配及优先级确定;
当所述数据包通过所有控制区域后,将所述数据包发送至数据接收端。
2.根据权利要求1所述的方法,其特征在于,在根据所述第一发送优先级将所述数据包发送至下一个控制区域之前,所述方法还包括:
根据预设优先级分配策略及数据包的数据包属性信息确定所述数据包在当前控制节点中的第二发送优先级;其中,控制节点内区分不同的发送优先级,数据包属性信息相同或者数据包属性信息对应的数值属于同一预定范围的待发送数据包存入同一控制节点中;
根据所述第二发送优先级将所述数据包存入所述当前控制节点。
3.根据权利要求2所述的方法,其特征在于,在根据所述第一发送优先级将所述数据包发送至下一个控制区域之前,所述方法还包括:
将所述带宽占用量与实际剩余带宽量进行比对;其中,所述实际剩余带宽量包括:实际剩余保证带宽及实际剩余限制带宽,所述实际剩余保证带宽小于所述实际剩余限制带宽,所述实际剩余保证带宽对应的标记方式为第一标记方式,所述实际剩余限制带宽对应的标记方式为第二标记方式,被所述第一标记方式标记的数据包的发送优先级比被所述第二标记方式标记的数据包的发送优先级高;下一个控制区域发送数据包时依据当前控制区域内控制节点确定的数据包对应的标记方式,并且当前控制区域内控制节点确定的数据包对应的标记方式可以被下一个控制区域内控制节点确定的数据包对应的标记方式所覆盖;
若确定所述带宽占用量小于或等于所述实际剩余保证带宽,则使用第一标记方式对所述数据包进行标注;
若确定所述带宽占用量大于所述实际剩余保证带宽,且小于或等于所述实际剩余限制带宽,则使用第二标记方式对所述数据包进行标注。
4.根据权利要求3所述的方法,其特征在于,根据所述第一发送优先级将所述数据包发送至下一个控制区域包括:
根据所述第一发送优先级及所述第二发送优先级,将使用所述第一标记方式标记的数据包发送至所述下一个控制区域;
当使用第一标记方式标注的数据包全部通过当前控制区域后,根据所述第一发送优先级及所述第二发送优先级,将使用第二标记方式标注的数据包发送至所述下一个控制区域。
5.根据权利要求4所述的方法,其特征在于,根据所述数据包对应所述首个控制区域的属性参数,将所述数据包分配给首个控制区域中相应的控制节点包括:
确定相应的控制节点内采用相同标记方式的数据包的个数是否超过预置允许存入阈值;
若确定所述相应的控制节点内采用相同标记方式的数据包的个数未超过预置允许存入阈值,则将所述数据包分配给首个控制区域中相应的控制节点。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述数据包对应的带宽占用量大于当前控制节点的实际剩余带宽量,则使用第三标记方式对所述数据包进行标注;
在当前控制区域中对所述数据包进行缓存,直到所述带宽占用量小于或者等于当前控制节点的实际剩余带宽量,并根据所述第一发送优先级将所述数据包发送至下一个控制区域。
7.根据权利要求2所述的方法,其特征在于,根据预设优先级分配策略及所述数据包的数据包属性信息确定所述数据包在当前控制节点中的第二发送优先级包括:
获取所述数据包内包含的数据接收端目的地信息;
根据所述数据接收端目的地信息,确定所述当前控制节点内的不同数据包对应的数据接收端的目的地信息是否一致;
若确定所述当前控制节点内的不同数据包对应的数据接收端目的地信息一致,则根据所述预设优先级分配策略,为所述当前控制节点内拥有相同数据接收端目的地信息的数据包分配相同的第二发送优先级。
8.根据权利要求6所述的方法,其特征在于,在在当前控制区域中对所述数据包进行缓存之前,所述方法还包括:
确定所述当前控制节点的存储空间是否已满;
在当前控制区域中对所述数据包进行缓存包括:
若确定所述当前控制节点的存储空间未满,则在所述当前控制节点内顺序缓存所述数据包。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
若确定所述当前控制节点的存储空间已满,则确定所述数据包是否有缓存的历史记录;
若确定所述数据包有缓存的历史记录,则在所述当前控制节点内添加占位符,并缓存所述数据包;
若确定所述数据包没有缓存的历史记录,则将所述数据包丢弃。
10.根据权利要求9所述的方法,其特征在于,所述方法还包括:
若所述占位符内的所述数据包成功发送至所述数据接收端,将所述占位符删除。
11.根据权利要求1-10中任一项所述的方法,其特征在于,在根据所述第一发送优先级将所述数据包发送至下一个控制区域之后,所述方法还包括:
将发送成功的数据包在当前控制节点内占用的带宽资源释放。
12.一种数据包调度的装置,其特征在于,所述装置涉及至少两个控制区域,每个控制区域用于基于一个属性维度设定数据包的发送优先级,每个所述控制区域的属性维度不同,每个控制区域包含至少两个控制节点,每个控制节点关联于所述属性维度的一个属性参数及对应所述属性参数的第一发送优先级,且每个控制节点拥有固定的带宽;所述装置包括:
获取单元,用于获取所述数据包的属性参数;
第一发送单元,用于将数据发送端发送的数据包发送至首个控制区域;
分配单元,用于根据所述数据包对应所述首个控制区域的属性参数,将所述数据包分配给首个控制区域中相应的控制节点;
第一确定单元,用于确定与所述控制节点关联的第一发送优先级;
所述获取单元,还用于获取所述数据包的数据包大小参数;
计算单元,用于根据所述获取单元获取的所述数据包大小参数计算所述数据包对应的带宽占用量;
第二发送单元,用于当确定所述计算单元计算的所述带宽占用量小于或者等于当前控制节点内的实际剩余带宽量时,根据所述第一发送优先级将所述数据包发送至下一个控制区域;
第一处理单元,用于在下一个控制区域中继续对所述数据包进行控制节点分配及优先级确定;
第三发送单元,用于当所述数据包通过所有控制区域后,将所述数据包发送至数据接收端。
13.根据权利要求12所述的装置,其特征在于,所述装置还包括:
第二确定单元,用于在所述第二发送单元根据所述第一发送优先级将所述数据包发送至下一个控制区域之前,根据预设优先级分配策略及数据包的数据包属性信息确定所述数据包在当前控制节点中的第二发送优先级;其中,控制节点内区分不同的发送优先级,数据包属性信息相同或者数据包属性信息对应的数值属于同一预定范围的数据包存入同一控制节点中;
存储单元,用于根据所述第二确定单元确定的所述第二发送优先级将所述数据包存入所述当前控制节点。
14.根据权利要求13所述的装置,其特征在于,所述装置还包括:
比对单元,用于在所述第二发送单元根据所述第一发送优先级将所述数据包发送至下一个控制区域之前,将所述带宽占用量与实际剩余带宽量进行比对;其中,所述实际剩余带宽量包括:实际剩余保证带宽及实际剩余限制带宽,所述实际剩余保证带宽小于所述实际剩余限制带宽,所述实际剩余保证带宽对应的标记方式为第一标记方式,所述实际剩余限制带宽对应的标记方式为第二标记方式,被所述第一标记方式标记的数据包的发送优先级比被所述第二标记方式标记的数据包的发送优先级高;下一个控制区域发送数据包时依据当前控制区域内控制节点确定的数据包对应的标记方式,并且当前控制区域内控制节点确定的数据包对应的标记方式可以被下一个控制区域内控制节点确定的数据包对应的标记方式所覆盖;
第一标注单元,用于当所述比对单元确定所述带宽占用量小于或等于所述实际剩余保证带宽时,使用第一标记方式对所述数据包进行标注;
第二标注单元,用于当所述比对单元确定所述带宽占用量大于所述实际剩余保证带宽,且小于或等于所述实际剩余限制带宽时,使用第二标记方式对所述数据包进行标注。
15.根据权利要求14所述的装置,其特征在于,所述第二发送单元包括:
第一发送模块,用于根据所述第一发送优先级及所述第二发送优先级,将使用所述第一标记方式标记的数据包发送至所述下一个控制区域;
第二发送模块,用于当所述第一发送模块中使用第一标记方式标注的数据包全部通过当前控制区域后,根据所述第一发送优先级及所述第二发送优先级,将使用第二标记方式标注的数据包发送至所述下一个控制区域。
16.根据权利要求15所述的装置,其特征在于,所述分配单元包括:
确定模块,用于确定相应的控制节点内采用相同标记方式的数据包的个数是否超过预置允许存入阈值;
分配模块,用于当所述确定模块确定所述相应的控制节点内采用相同标记方式的数据包的个数未超过预置允许存入阈值时,将所述数据包分配给首个控制区域中相应的控制节点。
17.根据权利要求12所述的装置,其特征在于,所述装置还包括:
标注单元,用于当确定所述计算单元计算的所述数据包对应的带宽占用量大于当前控制节点的实际剩余带宽量时,使用第三标记方式对所述数据包进行标注;
第二处理单元,用于在当前控制区域中对所述数据包进行缓存,直到所述带宽占用量小于或者等于当前控制节点的实际剩余带宽量,并根据所述第一发送优先级将所述数据包发送至下一个控制区域。
18.根据权利要求13所述的装置,其特征在于,所述第二确定单元包括:
获取模块,用于获取所述数据包内包含的数据接收端目的地信息;
确定模块,用于根据所述获取模块获取的所述数据接收端目的地信息,确定所述当前控制节点内的不同数据包对应的数据接收端的目的地信息是否一致;
分配模块,用于当所述确定模块确定所述当前控制节点内的不同数据包对应的数据接收端目的地信息一致时,根据所述预设优先级分配策略,为所述当前控制节点内拥有相同数据接收端目的地信息的数据包分配相同的第二发送优先级。
19.根据权利要求17所述的装置,其特征在于,所述装置还包括:
第三确定单元,用于在所述第二处理单元在当前控制区域中对所述数据包进行缓存之前,确定所述当前控制节点的存储空间是否已满;
所述第二处理单元,还用于当所述第三确定单元确定所述当前控制节点的存储空间未满时,在所述当前控制节点内顺序缓存所述数据包。
20.根据权利要求19所述的装置,其特征在于,所述装置还包括:
第四确定单元,用于当所述第三确定单元确定所述当前控制节点的存储空间已满时,确定所述数据包是否有缓存的历史记录;
第三处理单元,用于当所述第四确定单元确定所述数据包有缓存的历史记录时,在所述当前控制节点内添加占位符,并缓存所述数据包;
丢弃单元,用于当所述第四确定单元确定所述数据包没有缓存的历史记录时,将所述数据包丢弃。
21.根据权利要求20所述的装置,其特征在于,所述装置还包括:
删除单元,用于当所述占位符内的所述数据包成功发送至所述数据接收端后,将所述第三处理单元添加的所述占位符删除。
22.根据权利要求12-21中任一项所述的装置,其特征在于,所述装置还包括:
释放单元,用于在所述第二发送单元根据所述第一发送优先级将所述数据包发送至下一个控制区域之后,将发送成功的数据包在当前控制节点内占用的带宽资源释放。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610851643.6A CN106453139B (zh) | 2016-09-26 | 2016-09-26 | 数据包调度的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610851643.6A CN106453139B (zh) | 2016-09-26 | 2016-09-26 | 数据包调度的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106453139A CN106453139A (zh) | 2017-02-22 |
CN106453139B true CN106453139B (zh) | 2019-11-08 |
Family
ID=58169634
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610851643.6A Active CN106453139B (zh) | 2016-09-26 | 2016-09-26 | 数据包调度的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106453139B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109391562B (zh) * | 2017-08-10 | 2022-04-05 | 东软集团股份有限公司 | 一种优先级调度方法、装置和防火墙 |
CN111064676B (zh) * | 2018-10-16 | 2023-02-28 | 中兴通讯股份有限公司 | 一种流量监管方法、设备、装置和计算机存储介质 |
CN110247859B (zh) * | 2019-06-17 | 2022-04-19 | 哈工大机器人(合肥)国际创新研究院 | 一种基于airt-ros节点的数据发送方法及装置 |
CN112311693B (zh) * | 2019-07-26 | 2022-08-26 | 华为技术有限公司 | 业务数据的传输方法和装置 |
CN114827020B (zh) * | 2022-06-29 | 2022-09-16 | 北京悦游信息技术有限公司 | 一种数据包传输路径定制方法、系统和可读存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007149803A1 (en) * | 2006-06-21 | 2007-12-27 | Harris Corporation | Systems and methods for adaptive throughput management for event-driven message-based data |
CN103246653A (zh) * | 2012-02-03 | 2013-08-14 | 腾讯科技(深圳)有限公司 | 数据处理方法和装置 |
CN103916330A (zh) * | 2014-03-24 | 2014-07-09 | 中国电子科技集团公司第三十研究所 | 一种ip数据优先级设置方法 |
CN105553880A (zh) * | 2015-12-24 | 2016-05-04 | 北京邮电大学 | 一种软件定义网络中的数据处理方法及装置 |
-
2016
- 2016-09-26 CN CN201610851643.6A patent/CN106453139B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007149803A1 (en) * | 2006-06-21 | 2007-12-27 | Harris Corporation | Systems and methods for adaptive throughput management for event-driven message-based data |
CN103246653A (zh) * | 2012-02-03 | 2013-08-14 | 腾讯科技(深圳)有限公司 | 数据处理方法和装置 |
CN103916330A (zh) * | 2014-03-24 | 2014-07-09 | 中国电子科技集团公司第三十研究所 | 一种ip数据优先级设置方法 |
CN105553880A (zh) * | 2015-12-24 | 2016-05-04 | 北京邮电大学 | 一种软件定义网络中的数据处理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN106453139A (zh) | 2017-02-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106453139B (zh) | 数据包调度的方法及装置 | |
CN104539440B (zh) | 具有入口控制的业务量管理 | |
CN103516622B (zh) | 网络交换机中的灵活队列 | |
CN105357151B (zh) | 一种基于dpdk的抓包及镜像流量转发方法 | |
US7076545B2 (en) | Load balancing the servicing of received packets | |
US7529224B2 (en) | Scheduler, network processor, and methods for weighted best effort scheduling | |
CN103747274B (zh) | 一种增设缓存集群的视频数据中心及其缓存资源调度方法 | |
CN105915470B (zh) | 一种基于Linux流量控制的弹性带宽配置方法 | |
CN106502767B (zh) | 一种进程管理方法及其装置 | |
CN107533538A (zh) | 在使用加速部件的系统中处理租户要求 | |
CN105794161B (zh) | 用于飞行器的数据通信网络 | |
CN109445944A (zh) | 一种基于dpdk的网络数据采集处理系统及其方法 | |
CN109783250A (zh) | 一种报文转发方法及网络设备 | |
CN108833299A (zh) | 一种基于可重构交换芯片架构的大规模网络数据处理方法 | |
CN112600684B (zh) | 云业务的带宽管理及配置方法及相关装置 | |
CN109450816A (zh) | 一种队列调度方法、装置、网络设备及存储介质 | |
CN109905329A (zh) | 一种虚拟化环境下任务类型感知的流队列自适应管理方法 | |
CN106936877A (zh) | 一种内容分发方法、装置及系统 | |
US20140050094A1 (en) | Efficient Urgency-Aware Rate Control Scheme for Mulitple Bounded Flows | |
CN108234242A (zh) | 一种基于流的压力测试方法和装置 | |
CN105991456A (zh) | 一种OpenFlow交换机、网络系统及带宽共享方法 | |
CN109728992A (zh) | 分配转发域的方法、装置、存储介质及电子装置 | |
US7474662B2 (en) | Systems and methods for rate-limited weighted best effort scheduling | |
CN110099292A (zh) | 一种数据中心节点确定方法、装置及电子设备 | |
CN110308901A (zh) | 处理前端页面中数据变量方法、装置、设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |