CN107404443B - 队列缓存资源控制方法及装置、服务器及存储介质 - Google Patents
队列缓存资源控制方法及装置、服务器及存储介质 Download PDFInfo
- Publication number
- CN107404443B CN107404443B CN201710655652.2A CN201710655652A CN107404443B CN 107404443 B CN107404443 B CN 107404443B CN 201710655652 A CN201710655652 A CN 201710655652A CN 107404443 B CN107404443 B CN 107404443B
- Authority
- CN
- China
- Prior art keywords
- message
- queue
- resource control
- length
- calculation result
- 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
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/50—Queue scheduling
-
- 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
- H04L47/32—Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种队列缓存资源控制方法及装置、服务器及存储介质,其中该方法包括:接收到报文,确定报文的指定队列,并计算预设报文长度与所述指定队列的当前长度的和,得到计算结果;比较计算结果与所述指定队列对应的预设最大资源门限值;如果计算结果大于或等于所述指定队列对应的预设最大资源门限值,丢弃所述报文。本发明在缓存资源剩余不多时,能够避免剩余资源存入截断报文造成缓存资源的浪费以及出队列时调度该截断报文导致的调度带宽浪费,提高缓存资源的利用率和调度带宽利用率。本发明能够从队列、端口、优先级、多端口、多优先级中至少一个层次进行缓存资源控制,实现全局整体上对缓存资源的精细化、合理化分配。
Description
技术领域
本发明实施例涉及队列缓存技术,尤其涉及一种队列缓存资源控制方法及装置、服务器及存储介质。
背景技术
在交换网络中,服务质量(Quality of Service,QOS)队列通常通过共享缓存资源的方式缓存报文,当共享缓存资源耗尽时,所有队列都不能再接收报文。为了避免共享资源池资源耗尽后所导致的后续报文连续丢弃的情况,通常会采用以下方法来进行资源管理:
为每个队列设置一个最大占用资源量限制,超过该最大占用资源量时该队列不再接收报文,防止一个队列占用过多资源导致其它队列报文得不到缓存。同时,为了防止每个队列超过门限后导致该队列持续丢包,从而引起协议震荡,通常会进行加权早期随机检测(Weighted Random Early Detection,WRED),使得队列在接近阻塞时,报文还有机会少量间歇性地被接收,保证协议的链接不中断。
但是,上述方法仍然存在不足之处:在某个队列接近门限值时,例如,门限值为2000B,当前已经占用1700B,下一个入队报文如果为500B,则该报文的前300B进入队列后,必须打上截断标记,剩余200B报文被丢弃。由此造成了最后300B缓存资源的浪费,同时还造成了出队时调度该无用的300B报文造成的带宽浪费。
发明内容
本发明实施例提供了一种队列缓存资源控制方法及装置、服务器及存储介质,以提高缓存资源剩余不多时,缓存资源的利用率和调度带宽利用率。
第一方面,本发明实施例提供了一种队列缓存资源控制方法,包括:
接收到报文,确定所述报文的指定队列,并计算预设报文长度与所述指定队列的当前长度的和,得到计算结果;
比较所述计算结果与所述指定队列对应的预设最大资源门限值;
如果所述计算结果大于或等于所述指定队列对应的预设最大资源门限值,丢弃所述报文。
优选的,在比较所述计算结果与所述指定队列对应的预设最大资源门限值之后,所述方法还包括:
如果所述计算结果小于所述指定队列对应的预设最大资源门限值,判断所述指定队列是否对应其他资源控制层次;
如果否,控制所述报文进入所述指定队列;
如果是,根据对应的其他资源控制层次控制所述报文的缓存。
优选的,根据对应的其他资源控制层次控制所述报文的缓存,包括:
针对所述对应的其他资源控制层次中的每个资源控制层次,分别计算预设报文长度与该资源控制层次的当前长度的和,得到各资源控制层次对应的计算结果;
针对所述每个资源控制层次,分别比较该资源控制层次对应的计算结果与该资源控制层次对应的预设最大资源门限值;
如果任一比较结果是计算结果大于或等于资源控制层次对应的预设最大资源门限值,丢弃所述报文;
如果所有比较结果均是计算结果小于资源控制层次对应的预设最大资源门限值,控制所述报文进入所述指定队列。
优选的,在控制所述报文进入所述指定队列之后,所述方法还包括:将所述报文的实际长度分别增加到所述指定队列以及对应的其他资源控制层次的长度计数中。
优选的,所述预设报文长度是当前网络能够传输的最大报文长度;预设资源控制层次包括:队列、端口、QoS优先级、多端口和多优先级;各预设资源控制层次中的各个项目均设置有对应的预设最大资源门限值。
第二方面,本发明实施例还提供了一种队列缓存资源控制装置,包括:
报文接收模块,用于接收报文;
长度计算模块,用于确定所述报文的指定队列,并计算预设报文长度与所述指定队列的当前长度的和,得到计算结果;
门限比较模块,用于比较所述计算结果与所述指定队列对应的预设最大资源门限值;
第一处理模块,用于在所述计算结果大于或等于所述指定队列对应的预设最大资源门限值的情况下,丢弃所述报文。
优选的,所述装置还包括:
层次判断模块,用于在所述计算结果小于所述指定队列对应的预设最大资源门限值的情况下,判断所述指定队列是否对应其他资源控制层次;
第二处理模块,用于在判断结果为否的情况下,控制所述报文进入所述指定队列;以及在判断结果为是的情况下,根据对应的其他资源控制层次控制所述报文的缓存。
优选的,所述第二处理模块包括:
长度计算单元,用于针对所述对应的其他资源控制层次中的每个资源控制层次,分别计算预设报文长度与该资源控制层次的当前长度的和,得到各资源控制层次对应的计算结果;
门限比较单元,用于针对所述每个资源控制层次,分别比较该资源控制层次对应的计算结果与该资源控制层次对应的预设最大资源门限值;
报文处理单元,用于在任一比较结果是计算结果大于或等于资源控制层次对应的预设最大资源门限值的情况下,丢弃所述报文;以及在所有比较结果均是计算结果小于资源控制层次对应的预设最大资源门限值的情况下,控制所述报文进入所述指定队列。
第三方面,本发明实施例还提供了一种服务器,所述服务器包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本发明任意实施例所述的队列缓存资源控制方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明任意实施例所述的队列缓存资源控制方法。
本发明实施例利用预设报文长度与队列当前长度的和,以及队列的最大资源门限,控制丢弃报文或者将报文缓存入指定队列,在缓存资源濒临耗尽时,能够避免剩余资源存入截断报文造成缓存资源的浪费以及出队列时调度该截断报文导致的调度带宽浪费,从而提高缓存资源的利用率和调度带宽利用率。另外,本发明实施例能够从队列、端口、优先级、多端口、多优先级这几个层次进行缓存资源控制,实现全局整体上对缓存资源的精细化、合理化分配,并且可以根据实际情况进行层次的灵活增减。
附图说明
图1是本发明实施例一提供的队列缓存资源控制方法的流程图;
图2是本发明实施例二提供的队列缓存资源控制方法的流程图;
图3是本发明实施例四提供的队列缓存资源控制装置的结构框图;
图4是本发明实施例五提供的服务器的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1是本发明实施例一提供的队列缓存资源控制方法的流程图,本实施例可适用于队列缓存报文的情况,尤其是队列剩余资源不多的情况。该方法可以由队列缓存资源控制装置来执行。如图1所示,该方法具体包括如下步骤:
步骤110,接收到报文,确定该报文的指定队列,并计算预设报文长度与该指定队列的当前长度的和,得到计算结果。
其中,报文中可以携带信息以标识该报文的指定队列。预设报文长度并非所接收报文的实际长度,而是根据当前网络预设的通用值。预设报文长度优选可以是当前网络能够传输的最大报文长度。例如以太网的最大传输单元(Maximum Transmission Unit,MTU)为1518B,因此,以太网的预设报文长度可以设置为1518B。
步骤120,比较计算结果与指定队列对应的预设最大资源门限值。
步骤130,如果计算结果大于或等于指定队列对应的预设最大资源门限值,丢弃报文。
其中,计算结果大于或等于预设最大资源门限值,表明指定队列的剩余资源不足以完整接收该报文,因此,将该报文完整丢弃。如果计算结果小于指定队列对应的预设最大资源门限值,则可以接收该报文。
优选的,为了避免持续丢包引起协议震荡,可以对当前报文进行WRED丢弃计算。WRED丢弃计算过程与现有技术中相同,此处不再赘述。
本实施例的技术方案,利用预设报文长度与队列当前长度的和,以及队列的最大资源门限,控制丢弃报文或者将报文缓存入指定队列,在缓存资源濒临耗尽时,能够避免剩余资源存入截断报文造成缓存资源的浪费以及出队列时调度该截断报文导致的调度带宽浪费,保证剩余资源的有效充分利用,从而提高缓存资源的利用率和调度带宽利用率。
实施例二
在上述实施例一的基础上,本实施例提供了多层次的缓存资源控制,能够从更高的层次控制资源的占用量,例如,能够从端口这个层次整体控制资源占用量,比如10G端口多占资源,1G端口少占资源。预设资源控制层次包括:队列、端口、QoS优先级、多端口和多优先级。各预设资源控制层次中的各个项目均设置有对应的预设最大资源门限值。
在实际应用中,可以根据实际情况从上述预设资源层次中选择至少一个层次进行缓存资源控制,需要注意的是,所选的层次至少要包括队列层次,以免判定结果是缓存报文,但队列实际上无法再接收报文的情况发生。
下面对上述预设资源控制层次进行说明。
(1)队列层次(Queue):每个队列都有一个计数(用于统计队列的当前长度),以及单个队列占用的最大资源量的门限值。
(2)端口层次(Port):每个实际物理端口均有一个计数(用于统计端口的当前长度),以及单个端口占用的最大资源量的门限值。
(3)优先级层次(Priority):共有8个全局优先级的计数(用于统计优先级的当前长度),以及各个优先级占用的最大资源量的门限值。
(4)多端口层次(Port-buffer):有1个缓冲器的计数(用于统计Port-buffer的当前长度),以及多个端口占用的最大资源量的门限值。其中,多端口是指所有端口中的部分或全部端口,多端口的个数可以根据实际情况进行配置。
(5)多优先级层次(Priority-buffer):有1个缓冲器的计数(用于统计Priority-buffer的当前长度),以及多个全局优先级占用的最大资源量的门限值。其中,多优先级是指8个全局优先级中的部分或全部优先级,多优先级的个数可以根据实际情况进行配置。
图2是本发明实施例二提供的队列缓存资源控制方法的流程图,如图2所示,该方法包括:
步骤210,接收到报文,确定该报文的指定队列,并计算预设报文长度与该指定队列的当前长度的和,得到计算结果。
步骤220,比较计算结果与指定队列对应的预设最大资源门限值。
步骤230,如果计算结果大于或等于指定队列对应的预设最大资源门限值,丢弃报文。
上述步骤210至步骤230完成了队列层次的判定。
步骤240,如果计算结果小于指定队列对应的预设最大资源门限值,判断指定队列是否对应其他资源控制层次。如果否,进入步骤250;如果是,进入步骤260。
其中,判断指定队列是否对应其他资源控制层次,包括:获取指定队列的队列配置信息;根据队列配置信息判断指定队列是否对应其他资源控制层次。队列配置信息存储有预先设置的该队列需要统计的层次,例如,该队列配置为需要统计到所属端口上。由于队列层次是默认需要判定的,因此队列配置信息中可以不指示队列层次。具体的,队列配置信息中可以使用不同的标识表示不同层次,例如,0表示端口层次,1表示优先级层次,2表示多端口层次,3表示多优先级层次。
步骤250,控制报文进入指定队列,并将报文的实际长度分别增加到指定队列的长度计数中。
其中,为了避免持续丢包引起协议震荡,在控制报文进入指定队列之前,可以对当前报文进行WRED丢弃计算。
步骤260,根据对应的其他资源控制层次控制报文的缓存。具体的,针对所述对应的其他资源控制层次中的每个资源控制层次,分别计算预设报文长度与该资源控制层次的当前长度的和,得到各资源控制层次对应的计算结果。
步骤270,针对所述每个资源控制层次,分别比较该资源控制层次对应的计算结果与该资源控制层次对应的预设最大资源门限值。
步骤280,如果任一比较结果是计算结果大于或等于资源控制层次对应的预设最大资源门限值,丢弃报文。
步骤290,如果所有比较结果均是计算结果小于资源控制层次对应的预设最大资源门限值,控制报文进入指定队列,并将报文的实际长度分别增加到指定队列以及对应的其他资源控制层次的长度计数中。
其中,为了避免持续丢包引起协议震荡,在控制报文进入指定队列之前,可以对当前报文进行WRED丢弃计算。
基于上述多层次的缓存资源控制方法,当报文进入队列管理系统时,计算预设报文长度加上指定队列的当前队列长度,如果计算结果超过了指定队列(属于队列层次)的门限值,则该报文被完整丢弃;如果计算结果未超过指定队列的门限值,则判断是否对应有其他资源控制层次。
如果该指定队列配置为需要统计到所属端口上,则计算预设报文长度加上该指定队列所属端口的当前端口长度,如果计算结果超过了所属端口(属于端口层次)的门限值,则该报文被完整丢弃。
如果该指定队列配置为需要统计到所属优先级上,则计算预设报文长度加上该指定队列所属优先级的当前优先级长度,如果计算结果超过了所属优先级(属于优先级层次)的门限值,则该报文被完整丢弃。
如果该指定队列配置为需要统计到所属多端口(Port-buffer)上,则计算预设报文长度加上当前Port-buffer长度,如果计算结果超过了port-buffer(属于多端口层次)的门限值,则该报文被完整丢弃。
如果该指定队列配置为需要统计到所属多优先级(Priority-buffer)上,则计算预设报文长度加上当前Priority-buffer长度,如果计算结果超过了priority-buffer(属于多优先级层次)的门限值,则该报文被完整丢弃。
由此可见,如果所涉及的几个层次中所有结果都判定为不丢弃,且经过队列的WRED计算也不丢弃,则该报文可正常入队列缓存,同时将报文实际长度统计到所涉及层次的计数上。如果所涉及的几个层次中任一结果判定为丢弃,则丢弃报文。
本实施例的技术方案,能够从队列、端口、优先级、多端口、多优先级这几个层次进行缓存资源控制,实现全局整体上对缓存资源的精细化、合理化分配,并且可以根据实际情况进行层次的灵活增减。在缓存资源濒临耗尽时,能够避免剩余资源存入截断报文造成缓存资源的浪费以及出队列时调度该截断报文导致的调度带宽浪费,提高缓存资源的利用率和调度带宽利用率。
需要说明的是,本发明一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各步骤描述成顺序的处理,但是其中的许多步骤可以被并行地、并发地或者同时实施。此外,各步骤的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
例如,多层次的缓存资源控制也可以按照以下步骤执行:接收到报文,确定该报文的指定队列对应的资源控制层次,其中所述指定队列对应的资源控制层次至少包括队列层次;针对指定队列对应的资源控制层次中的每个资源控制层次,分别计算预设报文长度与该资源控制层次的当前长度的和,得到各资源控制层次对应的计算结果;针对每个资源控制层次,分别比较该资源控制层次对应的计算结果与该资源控制层次对应的预设最大资源门限值;如果所有比较结果均是计算结果小于对应的预设最大资源门限值,则控制报文进入指定队列;如果任一比较结果是计算结果大于或等于对应的预设最大资源门限值,则丢弃报文。上述各步骤的实施细节可以参考本发明各实施例,此处不再赘述。
实施例三
本发明实施例一提供的是一个层次(即队列层次)的缓存资源控制。在上述各实施例的基础上,本实施例提供了多层次缓存资源控制的几个优选实例。下面分别进行说明,预设报文长度记为Vlength(Virtual length)。
(1)两个层次的缓存资源控制
以队列层次和端口层次为例,即队列配置为需要统计到所属端口。当报文进入队列管理系统时,计算预设报文长度Vlength加上指定队列的当前队列长度,如果计算结果超过该指定队列的门限值,则该报文被完整丢弃。如果计算结果未超过该指定队列的门限值,根据队列配置信息判断该指定队列配置为需要统计到所属端口上,则计算预设报文长度Vlength加上队列所属端口的当前长度,如果计算结果超过该端口的门限值,则该报文被完整丢弃;如果计算结果未超过该端口的门限值,则可以控制报文进入队列,同时将报文实际长度分别统计到指定队列和所属端口的计数上。
其中,如果计算结果未超过端口的门限值,也可以进行WRED丢弃计算,在WRED结果也是不丢弃报文的情况下,将该报文正常入队列缓存,以避免持续丢包引起协议震荡,同时将报文实际长度分别统计到指定队列和所属端口的计数上。
由此可见,对于两个层次的缓存资源控制,只有在两个层次都判定为不丢弃时,才可以控制报文进入队列。如果两个层次中任一层次判定为丢弃,则丢弃报文。对于欲存入该队列的后续报文,也执行上述判定过程,随着有些报文调度出队,队列中会存在足够的剩余资源,因此后续同样大小的报文是可能进入队列的。
(2)三个层次的缓存资源控制
以队列层次、端口层次、多优先级层次为例,即队列配置为需要统计到所属端口及Priority-buffer。当报文进入队列管理系统时,计算预设报文长度Vlength加上指定队列的当前队列长度,如果计算结果超过该指定队列的门限值,则该报文被完整丢弃。如果计算结果未超过该指定队列的门限值,根据队列配置信息判断该指定队列配置为需要统计到所属端口及Priority-buffer上,则计算预设报文长度Vlength加上队列所属端口的当前长度,并将计算结果与该端口的门限值比较;计算预设报文长度Vlength加上Priority-buffer的当前长度,并将计算结果与Priority-buffer的门限值比较。
如果上述两个计算结果中任一结果超过对应的门限值,则该报文被完整丢弃;如果两个计算结果均未超过对应的门限值,则可以控制报文进入队列,同时将报文实际长度分别统计到该指定队列、所属端口及Priority-buffer的计数上。
其中,如果两个计算结果均未超过对应的门限值,也可以进行WRED丢弃计算,在WRED结果也是不丢弃报文的情况下,将该报文正常入队列缓存,以避免持续丢包引起协议震荡,同时将报文实际长度分别统计到指定队列、所属端口及Priority-buffer的计数上。
(3)四个层次的缓存资源控制
以队列层次、端口层次、优先级层次、多端口层次为例,即队列配置为需要统计到所属端口、所属优先级及Port-buffer。当报文进入队列管理系统时,计算预设报文长度Vlength加上指定队列的当前队列长度,如果计算结果超过该指定队列的门限值,则该报文被完整丢弃。如果计算结果未超过该指定队列的门限值,根据队列配置信息判断该指定队列配置为需要统计到所属端口、所属优先级及Port-buffer上,则计算预设报文长度Vlength加上队列所属端口的当前长度,并将计算结果与该端口的门限值比较;计算预设报文长度Vlength加上队列所属优先级的当前长度,并将计算结果与该优先级的门限值比较;计算预设报文长度Vlength加上Port-buffer的当前长度,并将计算结果与Port-buffer的门限值比较。
如果上述三个计算结果中任一结果超过对应的门限值,则该报文被完整丢弃;如果三个计算结果均未超过对应的门限值,则可以控制报文进入队列,同时将报文实际长度分别统计到该指定队列、所属端口、所属优先级及Port-buffer的计数上。
其中,如果三个计算结果均未超过对应的门限值,也可以进行WRED丢弃计算,在WRED结果也是不丢弃报文的情况下,将该报文正常入队列缓存,以避免持续丢包引起协议震荡,同时将报文实际长度分别统计到指定队列、所属端口、所属优先级及Port-buffer的计数上。
(4)全部层次的缓存资源控制
队列配置为需要统计到所属端口、所属优先级、Port-buffer及Priority-buffer。当报文进入队列管理系统时,计算预设报文长度Vlength加上指定队列的当前队列长度,如果计算结果超过该指定队列的门限值,则该报文被完整丢弃。如果计算结果未超过该指定队列的门限值,根据队列配置信息判断该指定队列配置为需要统计到所属端口、所属优先级、Port-buffer及Priority-buffer上,针对每个层次,计算预设报文长度与该层次的长度加和,并将计算结果与该层次对应的门限值进行比较。如果四个计算结果中任一结果超过对应的门限值,则该报文被完整丢弃;如果四个计算结果均未超过对应的门限值,则可以控制报文进入队列,同时将报文实际长度分别统计到该指定队列、所属端口、所属优先级、Port-buffer及Priority-buffer的计数上。
其中,如果四个计算结果均未超过对应的门限值,也可以进行WRED丢弃计算,在WRED结果也是不丢弃报文的情况下,将该报文正常入队列缓存,以避免持续丢包引起协议震荡,同时将报文实际长度分别统计到指定队列、所属端口、所属优先级、Port-buffer及Priority-buffer的计数上。
下面结合具体实例进行说明。
1)配置信息如下:
如果当前进入一个报文,不管报文实际长度为多少,均按照预设报文长度500B进行计算,经过计算,各层次的统计都没有超出门限值,则该报文判定通过,正常入队。
2)配置信息如下:
如果当前进入一个报文,不管报文实际长度为多少,均按照预设报文长度500B进行计算,经过计算,Queue、Port、Prioriry层次都将超出相应的门限值,则该报文被判定为丢弃,不能入队,等到各报文不断被调度出去,各层级又能接收500B的报文时,可以继续入队操作。需要说明的是,本实例中的队列剩余资源为400B,如果传输过来的报文实际长度只有300B,利用上述方法会丢弃该报文,等到各报文不断被调度出去,各层级又能接收500B的报文时,可以继续入队操作,本发明实施例不是为了防止丢报文,而是为了保证最后剩余的资源能够被充分利用。
实施例四
图3是本发明实施例四提供的队列缓存资源控制装置的结构框图,可以用于实现上述任意实施例所述的队列缓存资源控制方法,该装置可以通过软件和/或硬件的方式实现。如图3所示,该装置包括:报文接收模块310、长度计算模块320、门限比较模块330和第一处理模块340。
报文接收模块310,用于接收报文;
长度计算模块320,用于确定报文的指定队列,并计算预设报文长度与指定队列的当前长度的和,得到计算结果;预设报文长度可以是当前网络能够传输的最大报文长度;
门限比较模块330,用于比较计算结果与指定队列对应的预设最大资源门限值;
第一处理模块340,用于在计算结果大于或等于指定队列对应的预设最大资源门限值的情况下,丢弃报文。
本实施例的技术方案,利用预设报文长度与队列当前长度的和,以及队列的最大资源门限,控制丢弃报文或者将报文缓存入指定队列,在缓存资源濒临耗尽时,能够避免剩余资源存入截断报文造成缓存资源的浪费以及出队列时调度该截断报文导致的调度带宽浪费,保证剩余资源的有效充分利用,从而提高缓存资源的利用率和调度带宽利用率。
上述装置还包括:层次判断模块,用于在计算结果小于指定队列对应的预设最大资源门限值的情况下,判断指定队列是否对应其他资源控制层次;第二处理模块,用于在判断结果为否的情况下,控制报文进入指定队列;以及在判断结果为是的情况下,根据对应的其他资源控制层次控制报文的缓存。
其中,层次判断模块具体用于:获取指定队列的队列配置信息;根据队列配置信息判断指定队列是否对应其他资源控制层次。
优选的,第二处理模块包括:长度计算单元,用于针对所述对应的其他资源控制层次中的每个资源控制层次,分别计算预设报文长度与该资源控制层次的当前长度的和,得到各资源控制层次对应的计算结果;门限比较单元,用于针对所述每个资源控制层次,分别比较该资源控制层次对应的计算结果与该资源控制层次对应的预设最大资源门限值;报文处理单元,用于在任一比较结果是计算结果大于或等于资源控制层次对应的预设最大资源门限值的情况下,丢弃报文;以及在所有比较结果均是计算结果小于资源控制层次对应的预设最大资源门限值的情况下,控制报文进入指定队列。
此外,第二处理模块还可以用于:在判断结果为否的情况下,对当前报文进行WRED丢弃计算。报文处理单元还可以用于:在所有比较结果均是计算结果小于资源控制层次对应的预设最大资源门限值的情况下,对当前报文进行WRED丢弃计算。由此避免持续丢包引起协议震荡。
进一步的,上述装置还包括:长度统计模块,用于在控制报文进入指定队列之后,将报文的实际长度分别增加到指定队列以及对应的其他资源控制层次的长度计数中。
进一步的,预设资源控制层次包括:队列、端口、QoS优先级、多端口和多优先级。各预设资源控制层次中的各个项目均设置有对应的预设最大资源门限值。
本发明实施例所提供的队列缓存资源控制装置可执行本发明任意实施例所提供的队列缓存资源控制方法,具备执行方法相应的功能模块和有益效果。
需要说明的是,本实施例的队列缓存资源控制装置所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。例如,队列缓存资源控制装置可以仅包括:接收模块、计算模块和处理模块,其中,接收模块用于实现接收报文的功能,计算模块用于实现与获取、计算、比较、判断、长度统计相关的功能,处理模块用于实现丢弃报文和控制报文进入队列的功能。
实施例五
本发明实施例五提供了一种服务器,该服务器包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现如本发明任意实施例所述的队列缓存资源控制方法。
图4是本发明实施例五提供的服务器的结构示意图,如图4所示,该服务器包括:处理器410、存储器420和通信装置430。服务器中处理器410的数量可以是一个或多个,图4中以一个处理器410为例;服务器中的处理器410、存储器420和通信装置430可以通过总线或其他方式连接,图4中以通过总线连接为例。
存储器420作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的队列缓存资源控制方法对应的程序指令/模块(例如,队列缓存资源控制装置中的报文接收模块310、长度计算模块320、门限比较模块330和第一处理模块340)。处理器410通过运行存储在存储器420中的软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述的队列缓存资源控制方法。
存储器420可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器420可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器420可进一步包括相对于处理器410远程设置的存储器,这些远程存储器可以通过网络连接至服务器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
通信装置430可用于接收报文以及发送报文。
实施例六
本发明实施例六提供了一种计算机可读存储介质,其上存储有计算机程序(即计算机可执行指令),该程序被处理器执行时用于执行一种队列缓存资源控制方法,该方法包括:
接收到报文,确定该报文的指定队列,并计算预设报文长度与指定队列的当前长度的和,得到计算结果;
比较计算结果与指定队列对应的预设最大资源门限值;
如果计算结果大于或等于指定队列对应的预设最大资源门限值,丢弃该报文。
当然,本发明实施例所提供的一种计算机可读存储介质,其上存储的计算机程序不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的队列缓存资源控制方法中的相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (8)
1.一种队列缓存资源控制方法,其特征在于,包括:
接收到报文,确定所述报文的指定队列,并计算预设报文长度与所述指定队列的当前长度的和,得到计算结果;
比较所述计算结果与所述指定队列对应的预设最大资源门限值;
如果所述计算结果大于或等于所述指定队列对应的预设最大资源门限值,丢弃所述报文;
如果所述计算结果小于所述指定队列对应的预设最大资源门限值,判断所述指定队列是否对应其他资源控制层次;
如果否,控制所述报文进入所述指定队列;
如果是,根据对应的其他资源控制层次控制所述报文的缓存。
2.根据权利要求1所述的方法,其特征在于,根据对应的其他资源控制层次控制所述报文的缓存,包括:
针对所述对应的其他资源控制层次中的每个资源控制层次,分别计算预设报文长度与该资源控制层次的当前长度的和,得到各资源控制层次对应的计算结果;
针对所述每个资源控制层次,分别比较该资源控制层次对应的计算结果与该资源控制层次对应的预设最大资源门限值;
如果任一比较结果是计算结果大于或等于资源控制层次对应的预设最大资源门限值,丢弃所述报文;
如果所有比较结果均是计算结果小于资源控制层次对应的预设最大资源门限值,控制所述报文进入所述指定队列。
3.根据权利要求1或2所述的方法,其特征在于,在控制所述报文进入所述指定队列之后,所述方法还包括:
将所述报文的实际长度分别增加到所述指定队列以及对应的其他资源控制层次的长度计数中。
4.根据权利要求1至2中任一项所述的方法,其特征在于:
所述预设报文长度是当前网络能够传输的最大报文长度;
预设资源控制层次包括:队列、端口、服务质量QoS优先级、多端口和多优先级;
各预设资源控制层次中的各个项目均设置有对应的预设最大资源门限值。
5.一种队列缓存资源控制装置,其特征在于,包括:
报文接收模块,用于接收报文;
长度计算模块,用于确定所述报文的指定队列,并计算预设报文长度与所述指定队列的当前长度的和,得到计算结果;
门限比较模块,用于比较所述计算结果与所述指定队列对应的预设最大资源门限值;
第一处理模块,用于在所述计算结果大于或等于所述指定队列对应的预设最大资源门限值的情况下,丢弃所述报文;
层次判断模块,用于在所述计算结果小于所述指定队列对应的预设最大资源门限值的情况下,判断所述指定队列是否对应其他资源控制层次;
第二处理模块,用于在判断结果为否的情况下,控制所述报文进入所述指定队列;以及在判断结果为是的情况下,根据对应的其他资源控制层次控制所述报文的缓存。
6.根据权利要求5所述的装置,其特征在于,所述第二处理模块包括:
长度计算单元,用于针对所述对应的其他资源控制层次中的每个资源控制层次,分别计算预设报文长度与该资源控制层次的当前长度的和,得到各资源控制层次对应的计算结果;
门限比较单元,用于针对所述每个资源控制层次,分别比较该资源控制层次对应的计算结果与该资源控制层次对应的预设最大资源门限值;
报文处理单元,用于在任一比较结果是计算结果大于或等于资源控制层次对应的预设最大资源门限值的情况下,丢弃所述报文;以及在所有比较结果均是计算结果小于资源控制层次对应的预设最大资源门限值的情况下,控制所述报文进入所述指定队列。
7.一种服务器,其特征在于,所述服务器包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1至4中任一项所述的队列缓存资源控制方法。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1至4中任一项所述的队列缓存资源控制方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710655652.2A CN107404443B (zh) | 2017-08-03 | 2017-08-03 | 队列缓存资源控制方法及装置、服务器及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710655652.2A CN107404443B (zh) | 2017-08-03 | 2017-08-03 | 队列缓存资源控制方法及装置、服务器及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107404443A CN107404443A (zh) | 2017-11-28 |
CN107404443B true CN107404443B (zh) | 2020-06-23 |
Family
ID=60401936
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710655652.2A Active CN107404443B (zh) | 2017-08-03 | 2017-08-03 | 队列缓存资源控制方法及装置、服务器及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107404443B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108055213A (zh) * | 2017-12-08 | 2018-05-18 | 盛科网络(苏州)有限公司 | 网络交换机的缓存资源的管理方法及系统 |
CN110830382A (zh) | 2018-08-10 | 2020-02-21 | 华为技术有限公司 | 报文处理方法和装置、通信设备以及交换电路 |
CN109362103A (zh) * | 2018-10-30 | 2019-02-19 | 维沃移动通信有限公司 | 一种数据缓存方法及终端设备 |
CN110493145B (zh) * | 2019-08-01 | 2022-06-24 | 新华三大数据技术有限公司 | 一种缓存方法及装置 |
CN111131292B (zh) * | 2019-12-30 | 2022-04-26 | 北京天融信网络安全技术有限公司 | 报文分流方法、装置、网络安全检测设备及存储介质 |
CN113835611A (zh) * | 2020-06-23 | 2021-12-24 | 深圳市中兴微电子技术有限公司 | 存储调度方法、设备和存储介质 |
CN112272148B (zh) * | 2020-10-15 | 2022-05-27 | 新华三信息安全技术有限公司 | 一种多优先级队列管理方法、装置及存储介质 |
CN114006731B (zh) * | 2021-09-30 | 2023-12-26 | 新华三信息安全技术有限公司 | 一种网络攻击处理方法、装置、设备及机器可读存储介质 |
CN114785735B (zh) * | 2022-04-26 | 2023-09-12 | 杭州迪普信息技术有限公司 | 基于fpga的网络报文限流方法和装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101547159A (zh) * | 2009-05-13 | 2009-09-30 | 杭州华三通信技术有限公司 | 一种避免网络拥塞的方法和设备 |
CN101789908A (zh) * | 2010-03-04 | 2010-07-28 | 成都市华为赛门铁克科技有限公司 | 分片报文接收处理方法及装置 |
WO2015066836A1 (zh) * | 2013-11-05 | 2015-05-14 | 华为技术有限公司 | 视频业务数据传输方法、数据接收装置和数据发送装置 |
-
2017
- 2017-08-03 CN CN201710655652.2A patent/CN107404443B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101547159A (zh) * | 2009-05-13 | 2009-09-30 | 杭州华三通信技术有限公司 | 一种避免网络拥塞的方法和设备 |
CN101789908A (zh) * | 2010-03-04 | 2010-07-28 | 成都市华为赛门铁克科技有限公司 | 分片报文接收处理方法及装置 |
WO2015066836A1 (zh) * | 2013-11-05 | 2015-05-14 | 华为技术有限公司 | 视频业务数据传输方法、数据接收装置和数据发送装置 |
Also Published As
Publication number | Publication date |
---|---|
CN107404443A (zh) | 2017-11-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107404443B (zh) | 队列缓存资源控制方法及装置、服务器及存储介质 | |
EP2702730B1 (en) | Effective circuits in packet-switched networks | |
US10333848B2 (en) | Technologies for adaptive routing using throughput estimation | |
US9686209B1 (en) | Method and apparatus for storing packets in a network device | |
US20090213732A1 (en) | Preserving packet order when migrating network flows between cores | |
US9154441B2 (en) | Adaptive buffer allocation management | |
US10389636B2 (en) | Technologies for adaptive routing using network traffic characterization | |
CN106571978B (zh) | 数据包捕获方法及装置 | |
US11916790B2 (en) | Congestion control measures in multi-host network adapter | |
CN113064738B (zh) | 基于概要数据的主动队列管理方法 | |
US20170048145A1 (en) | Switching device and control method of switching device | |
CN105991588B (zh) | 一种防御消息攻击的方法及装置 | |
US8018958B1 (en) | System and method for fair shared de-queue and drop arbitration in a buffer | |
CN112825511A (zh) | 一种交换网络拥塞管理方法、装置、设备和存储介质 | |
CN113973342A (zh) | 流量控制方法、装置、电子设备及存储介质 | |
CN109905331B (zh) | 队列调度方法及装置、通信设备、存储介质 | |
CN100459577C (zh) | 通信网络中带宽或缓存的分配处理方法 | |
CN111756586B (zh) | 一种数据中心网络中基于优先级队列的公平带宽分配方法、交换机及可读存储介质 | |
WO2021143913A1 (zh) | 拥塞控制方法、装置及系统、存储介质 | |
CN113835611A (zh) | 存储调度方法、设备和存储介质 | |
CN111638986A (zh) | 一种QoS队列调度方法、装置、系统及可读存储介质 | |
CN113765796B (zh) | 流量转发控制方法及装置 | |
CN106330834B (zh) | 一种虚拟通道连接建立方法及装置 | |
US20230283575A1 (en) | Allocation of Shared Reserve Memory to Queues in a Network Device | |
CN116170377A (zh) | 一种数据处理方法以及相关设备 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |