CN101699795B - 一种报文拥塞处理方法及系统 - Google Patents
一种报文拥塞处理方法及系统 Download PDFInfo
- Publication number
- CN101699795B CN101699795B CN2009101103983A CN200910110398A CN101699795B CN 101699795 B CN101699795 B CN 101699795B CN 2009101103983 A CN2009101103983 A CN 2009101103983A CN 200910110398 A CN200910110398 A CN 200910110398A CN 101699795 B CN101699795 B CN 101699795B
- Authority
- CN
- China
- Prior art keywords
- message
- buffer queue
- level buffer
- foremost
- address
- 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
Abstract
本发明公开了一种报文拥塞处理方法,包括以下步骤:获取新报文出端口地址,将所述新报文缓存在第一级缓存队列;发送所述新报文出端口地址及缓存在所述第一级缓存队列的所述新报文,将所述新报文缓存在第二级缓存队列;基于所述第二级缓存队列最前端报文的出端口地址判断其出端口是否拥塞,若是,则按第一预定规则处理所述第二级缓存队列最前端报文,否则发送所述第二级缓存队列最前端报文。本发明还公开了一种报文拥塞处理系统。本发明中,对各种类型的报文分别设置出端口地址,各种类型的报文共同缓存在第二级缓存队列中,发生拥塞时,可保证不同类型报文不相互影响,且缓存队列得到有效利用。
Description
技术领域
本发明涉及报文交换网络领域,尤其涉及一种报文拥塞处理方法及系统。
背景技术
随着因特网的高速发展,IP网络以其自身的优势获得了迅猛发展,网络规模不断扩张。交换网络有多个不同类型报文共存,但各类型报文之间不能相互影响,特别是发生拥塞时。
现有的专利文献包括:专利号为CN200810055406.4的中国专利和专利号为US2007201499的美国专利。
第CN200810055406.4号中国专利:A.比较所述新到消息优先级是否低于当前的拥塞级,如果是,进入步骤B,否则,将所述新到消息放入缓冲区;B.比较所述新到消息优先级是否低于当前缓冲区中消息的最低优先级,如果否,进入步骤C,否则,不将所述新到消息放入所述缓冲区;C.将缓冲区中优先级低于所述新到消息优先级的消息丢弃,并将所述新到消息存入所述缓冲区。对于交换网络,发生拥塞时,要是以优先级处理,各种类型报文之间相互影响。
第US2007201499号美国专利:建立两级缓存队列,第一级的每一个队列缓存一种类型报文,第二级的每一个队列缓存要发送的一种类型报文。当有新到的报文时,检测第一级对应的队列是否拥塞,如果是,丢弃新到的报文,否则将新到报文放入第一级对应的队列;第一级缓存队列将报文发送并缓存在第二级缓存队列,第二级的每一队列对应一个发送接口。当接口允许发送时,从第二级对应的队列读取报文并发送。能解决交换网络各种类型报文不相互影响,但每种类型报文都要建立独立的队列,且缓存队列没有得到有效利用。
发明内容
本发明要解决的主要技术问题是,提供一种实现多种类型报文共存且可高效利用缓存队列的报文拥塞处理方法及系统。
为解决上述技术问题,本发明提供一种报文拥塞处理方法,包括以下步骤:
获取新报文出端口地址,将所述新报文缓存在第一级缓存队列;
发送所述新报文出端口地址及缓存在所述第一级缓存队列的所述新报文,将所述新报文缓存在第二级缓存队列;
基于所述第二级缓存队列最前端报文的出端口地址判断其出端口是否拥塞,若是,则按第一预定规则处理所述第二级缓存队列最前端报文,否则发送所述第二级缓存队列最前端报文。
所述第一预定规则包括判断所述第二级缓存队列是否缓存有允许发送的其他类型报文,若是,丢弃所述第二级缓存队列最前端报文,否则,按第二预定规则处理所述第二级缓存队列最前端报文。
所述第二预定规则包括判断所述第二级缓存队列已占用的缓存空间是否达到第一预定值,若是,丢弃所述第二级缓存队列最前端报文,否则,按第三预定规则处理所述第二级缓存队列最前端报文。
所述第三预定规则包括判断所述第二级缓存队列最前端报文不允许发送的时间是否已达到第二预定值,若是,丢弃所述第二级缓存队列最前端报文,否则,将所述第二级缓存队列最前端报文继续缓存在所述第二级缓存队列,转出端口是否拥塞的判断。
所述出端口地址通过提取报文标识符获取。
一种报文拥塞处理系统,包括报文接收模块、报文发送模块、第一级缓存队列和第二级缓存队列,所述报文接收模块用于获取新报文的出端口地址,将所述新报文缓存在所述第一级缓存队列;并发送所述新报文出端口地址及缓存在所述第一级缓存队列的所述新报文,将所述新报文缓存在所述第二级缓存队列;所述报文发送模块用于基于所述第二级缓存队列最前端报文的出端口地址判断其出端口是否拥塞,若是,则按第一预定规则处理所述报文,否则发送所述第二级缓存队列最前端报文。
所述第一预定规则包括判断第二级缓存队列是否缓存有允许发送的其他类型报文,若是,丢弃所述第二级缓存队列最前端报文,否则,按第二预定规则处理所述第二级缓存队列最前端报文。
所述第二预定规则包括判断所述第二级缓存队列已占用的缓存空间是否达到第一预定值,若是,丢弃所述第二级缓存队列最前端报文,否则,按第三预定规则处理所述第二级缓存队列最前端报文。
所述第三预定规则包括判断所述第二级缓存队列最前端报文不允许发送的时间是否已达到第二预定值,若是,丢弃所述第二级缓存队列最前端报文,否则,将所述第二级缓存队列最前端报文继续缓存在所述第二级缓存队列,转出端口是否拥塞的判断。
所述报文接收模块通过提取报文标识符获取所述报文出端口地址。
本发明的有益效果是:
(1)本发明中,对各种类型的报文分别设置出端口地址,各种类型的报文共同缓存在第二级缓存队列中,发生拥塞时,可保证不同类型报文不相互影响,且缓存队列得到有效利用。
(2)本发明中,当报文的出端口发生拥塞时,判断是否缓存有其他类型且允许发送的报文,如果有,则删除最前段报文,进一步避免了不种同种类型报文之间的相互影响。
(3)本发明中,当第二级缓存队列已占用的缓存空间达到第一预定值时,则丢弃第二级缓存队列最前端的报文,保证了第二级缓存队列有足够的缓存空间处理报文。
(4)本发明中,出端口地址通过提取报文标识符获取,方法简单易行。
附图说明
图1为本发明系统具体实施方式的结构示意图;
图2为本发明方法具体实施方式的流程图;
图3为本发明方法具体实施方式中的报文接收流程图;
图4为本发明方法具体实施方式中的报文发送流程图。
具体实施方式
下面通过具体实施方式结合附图对本发明作进一步详细说明。
如图1所示,本发明一种报文拥塞处理系统,其一种实施方式包括报文接收模块、报文发送模块、第一级缓存队列和第二级缓存队列,报文接收模块检测是否有新报文,若有,报文接收模块用于获取新报文的出端口地址,将新报文出端口地址缓存在报文接收模块的寄存器中,将新报文缓存在第一级缓存队列,并将所述新报文出端口地址及缓存在第一级缓存队列的新报文发送到报文发送模块,报文发送模块将新报文出端口地址缓存在报文发送模块的寄存器,将新报文缓存在第二级缓存队列;报文发送模块还用于基于第二级缓存队列最前端报文的出端口地址判断其出端口是否拥塞,若拥塞,则按第一预定规则处理第二级缓存队列最前端报文,否则发送第二级缓存队列最前端报文。第二级缓存队列的每种类型报文都有相对独立的出端口,可根据出端口地址判断对应的报文类型能否发送。
报文接收模块通过提取报文标识符获取报文出端口地址。
第一级缓存队列可以设置在报文接收模块内,也可以单独设置,在本具体实施方式中,第一级缓存队列单独设置。第二级缓存队列可以设置在报文发送模块内,也可以单独设置,在本具体实施方式中,第二级缓存队列也单独设置。
第一预定规则包括判断第二级缓存队列是否缓存有允许发送的其他类型报文,若是,丢弃第二级缓存队列最前端报文,否则,按第二预定规则处理第二级缓存队列最前端报文。
第二预定规则包括判断第二级缓存队列已占用的缓存空间是否达到第一预定值,若是,丢弃第二级缓存队列最前端报文,否则,按第三预定规则处理第二级缓存队列最前端报文。这样可以保证第二级缓存队列有足够的空间来缓存第一级缓存队列发送的报文。第一预定值可以根据用户的具体需要进行设置,在本具体实施方式中,第一预定值为达到第二级缓存队列缓存空间的五分之四,用户也可将第一预定值设置为其他合适的数值。
第三预定规则包括判断第二级缓存队列最前端报文不允许发送的时间是否已达到第二预定值,若是,丢弃第二级缓存队列最前端报文,否则,将第二级缓存队列最前端报文缓存在第二级缓存队列,并基于其出端口地址判断该出端口是否拥塞,若是,则按第一预定规则处理所述报文,否则发送第二级缓存队列最前端报文。第二预定值可以根据用户的具体需要进行设置,在本具体实施方式中,第二预定值为三毫秒,用户也可将第二预定值设置为其他合适的数值。
本发明一种报文拥塞处理方法,其一种实施方式如图2所示,包括以下步骤:
步骤201:获取新报文出端口地址,将所述新报文存在第一级缓存队列;
步骤202:发送所述新报文出端口地址及缓存在所述第一级缓存队列的所述新报文,将所述新报文缓存在第二级缓存队列;
步骤203:基于所述第二级缓存队列最前端报文的出端口地址判断其出端口是否拥塞,若是,则按第一预定规则处理所述第二级缓存队列最前端报文,否则发送所述第二级缓存队列最前端报文。
如图3所示,本发明具体实施方式中,报文接收模块的接收新报文的处理流程包括以下步骤:
步骤301:检测到新报文;报文接收模块检测是否有新报文,若有,执行步骤302,否则重复步骤301。
步骤302:报文接收模块提取新报文标识符,执行步骤303。
步骤303:获取新报文的出端口地址;报文接收模块根据新报文标识符,获取新报文的出端口地址,执行步骤304。
步骤304:报文接收模块缓存新报文的写初地址,执行步骤305。新报文的写初地址缓存在报文发送模块的寄存器中,缓存新报文对应的写初地址,读初地址为对应的写初地址,可保证读取报文的正确性,不会少读或多读一个字节,如因异常情况导致报文读取出错,也能立刻恢复。
步骤305:报文接收模块将新报文缓存在第一级缓存队列,执行步骤306。
步骤306:判断是否缓存了整个新报文;报文接收模块判断是否缓存了整个新报文,如果不是,执行步骤305,否则执行步骤307。
步骤307:发送新报文和新报文的出端口地址;报文接收模块发送新报文到报文发送模块,读初地址为对应的写初地址,同时将新报文的出端口地址发送到报文发送模块,新报文发送完成时,读地址为下一个报文的写初地址。
在另一种实施方式中,报文接收模块也可一边接收新报文,一边新新报文发送到报文接收模块,而不必等整个新报文都缓存完毕后再发送到发送模块。
如图4所示,本发明具体实施方式中,报文发送模块的发送报文的处理流程包括以下步骤:
步骤401:缓存新报文及新报文出端口地址;报文发送模块将新报文缓存在第二级缓存队列,将新报文的出端口地址缓存报文发送模块的寄存器中,并获取新报文的写初地址,执行步骤402。
步骤402:判断第二级缓存队列最前端报文出端口是否拥塞;根据第二级缓存队列最前端报文的出端口地址判断其出端口是否拥塞,如果不是拥塞状态,执行步骤403,否则执行步骤404。
步骤403:发送第二级缓存队列最前端报文;读初地址为对应的写初地址,报文发送完成,读地址为下一个报文的写初地址。
步骤404:按第一预定规则处理第二级缓存队列最前端报文,第一预定规则包括判断是否缓存了其他类型报文且允许发送的报文;报文发送模块判断第二级缓存队列是否缓存了其他类型且允许发送的报文,如果不是,执行步骤405,否则执行步骤408。第二级缓存队列缓存了所有类型的报文,包括出端口发生拥塞的报文和出端口没有发生拥塞的报文。比如,有一A种类型报文1先缓存在第二级缓存队列的最前端,若有B种类型的报文2缓存在第二级缓存队列并紧跟其后,A种类型报文1和B种类型报文2都有各自的出端口。当最前端的A种类型报文1发生拥塞,而B种类型报文2又允许发送时,则将最前端的A种类型报文1丢弃,发送B种类型报文2;若是B种类型报文2也发生拥塞,在其后没有其他类型允许发送的报文,则继续缓存A种类型报文1,并按第二预定规则对A种类型报文1进行处理。第二级缓存队列缓存了所有类型报文,缓存队列得到有效利用,各类型报文相互不会发生影响,发生拥塞的报文不会导致没有发生拥塞的报文无法发送。
步骤405:按第二预定规则处理第二级缓存队列最前端报文,第二预定规则包括判断占用的缓存空间是否达到第一预定值;报文发送模块判断第二级缓存队列占用的缓存空间是否达到第一预定值,如果不是,执行步骤406,否则执行步骤408。第一预定值可以根据用户的具体需要进行设置,在本具体实施方式中,第一预定值为达到第二级缓存队列缓存空间的五分之四,用户也可将第一预定值设置为其他合适的数值。
步骤406:按第三预定规则处理第二级缓存队列最前端报文,第三预定规则包括判断第二级缓存队列最前端报文不允许发送的时间是否达到第二预定值;如果不是,执行步骤407,否则执行步骤408。第二预定值可以根据用户的具体需要进行设置,在本具体实施方式中,第二预定值为三毫秒,用户也可将第二预定值设置为其他合适的数值。
步骤407:继续缓存第二级缓存队列最前端报文,执行步骤402。
步骤408:丢弃第二级缓存队列最前端报文,读地址为下一报文的写初地址。
以上内容是结合具体的实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
Claims (10)
1.一种报文拥塞处理方法,其特征在于,包括以下步骤:
获取新报文出端口地址,将所述新报文缓存在第一级缓存队列;
发送所述新报文出端口地址及缓存在所述第一级缓存队列的所述新报文到报文发送模块中,所述报文发送模块将所述新报文缓存在第二级缓存队列;
基于所述第二级缓存队列最前端报文的出端口地址判断其出端口是否拥塞,若是,则按第一预定规则处理所述第二级缓存队列最前端报文,否则发送所述第二级缓存队列最前端报文。
2.如权利要求1所述的报文拥塞处理方法,其特征在于,所述第一预定规则包括判断所述第二级缓存队列是否缓存有允许发送的其他类型报文,若是,丢弃所述第二级缓存队列最前端报文,否则,按第二预定规则处理所述第二级缓存队列最前端报文。
3.如权利要求2所述的报文拥塞处理方法,其特征在于,所述第二预定规则包括判断所述第二级缓存队列已占用的缓存空间是否达到第一预定值,若是,丢弃所述第二级缓存队列最前端报文,否则,按第三预定规则处理所述第二级缓存队列最前端报文。
4.如权利要求3所述的报文拥塞处理方法,其特征在于,所述第三预定规则包括判断所述第二级缓存队列最前端报文不允许发送的时间是否已达到第二预定值,若是,丢弃所述第二级缓存队列最前端报文,否则,将所述第二级缓存队列最前端报文继续缓存在所述第二级缓存队列,转出端口是否拥塞的判断。
5.如权利要求1-4中任意一项所述的报文拥塞处理方法,其特征在于,所述出端口地址通过提取报文标识符获取。
6.一种报文拥塞处理系统,其特征在于,包括报文接收模块、报文发送模块、第一级缓存队列和第二级缓存队列,所述报文接收模块用于获取新报文的出端口地址,将所述新报文缓存在所述第一级缓存队列;并发送所述新报文出端口地址及缓存在所述第一级缓存队列的所述新报文到所述报文发送模块中,所述报文发送模块将所述新报文缓存在所述第二级缓存队列;所述报文发送模块用于基于所述第二级缓存队列最前端报文的出端口地址判断其出端口是否拥塞,若是,则按第一预定规则处理所述报文,否则发送所述第二级缓存队列最前端报文。
7.如权利要求6所述的报文拥塞处理系统,其特征在于,所述第一预定规则包括判断第二级缓存队列是否缓存有允许发送的其他类型报文,若是,丢弃所述第二级缓存队列最前端报文,否则,按第二预定规则处理所述第二级缓存队列最前端报文。
8.如权利要求7所述的报文拥塞处理系统,其特征在于,所述第二预定规则包括判断所述第二级缓存队列已占用的缓存空间是否达到第一预定值,若是,丢弃所述第二级缓存队列最前端报文,否则,按第三预定规则处理所述第二级缓存队列最前端报文。
9.如权利要求8所述的报文拥塞处理系统,其特征在于,所述第三预定规则包括判断所述第二级缓存队列最前端报文不允许发送的时间是否已达到第二预定值,若是,丢弃所述第二级缓存队列最前端报文,否则,将所述第二级缓存队列最前端报文继续缓存在所述第二级缓存队列,转出端口是否拥塞的判断。
10.如权利要求6-9中任意一项所述的报文拥塞处理系统,其特征在于,所述报文接收模块通过提取报文标识符获取所述报文出端口地址。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009101103983A CN101699795B (zh) | 2009-10-29 | 2009-10-29 | 一种报文拥塞处理方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009101103983A CN101699795B (zh) | 2009-10-29 | 2009-10-29 | 一种报文拥塞处理方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101699795A CN101699795A (zh) | 2010-04-28 |
CN101699795B true CN101699795B (zh) | 2012-07-18 |
Family
ID=42148240
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009101103983A Active CN101699795B (zh) | 2009-10-29 | 2009-10-29 | 一种报文拥塞处理方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101699795B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102025631B (zh) * | 2010-12-15 | 2017-03-29 | 中兴通讯股份有限公司 | 一种动态调整出端口缓存的方法及交换机 |
CN102176705A (zh) * | 2011-03-10 | 2011-09-07 | 央视国际网络有限公司 | 群发业务的处理方法及装置 |
CN104009935B (zh) * | 2013-02-22 | 2018-01-09 | 中兴通讯股份有限公司 | 一种优先级调度方法及装置 |
CN105337895B (zh) * | 2014-07-14 | 2019-02-19 | 新华三技术有限公司 | 一种网络设备主机单元、网络设备子卡以及网络设备 |
CN110121114B (zh) * | 2018-02-07 | 2021-08-27 | 华为技术有限公司 | 发送流数据的方法及数据发送设备 |
CN111835651B (zh) | 2019-04-19 | 2022-03-18 | 上海哔哩哔哩科技有限公司 | 数据写入方法、系统、设备及计算机可读存储介质 |
CN113282040B (zh) * | 2021-05-26 | 2022-08-05 | 苏州智加科技有限公司 | 减少整车网关转发丢帧的方法及装置 |
CN117424864B (zh) * | 2023-12-18 | 2024-02-27 | 南京奕泰微电子技术有限公司 | 一种用于交换机的队列数据管理系统及方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1984025A (zh) * | 2006-05-17 | 2007-06-20 | 华为技术有限公司 | 释放被无效占用的资源的方法和存储转发装置 |
CN101309103A (zh) * | 2008-07-15 | 2008-11-19 | 中国电子科技集团公司第五十四研究所 | 一种适用于宽带卫星通信系统的拥塞管理方法 |
-
2009
- 2009-10-29 CN CN2009101103983A patent/CN101699795B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1984025A (zh) * | 2006-05-17 | 2007-06-20 | 华为技术有限公司 | 释放被无效占用的资源的方法和存储转发装置 |
CN101309103A (zh) * | 2008-07-15 | 2008-11-19 | 中国电子科技集团公司第五十四研究所 | 一种适用于宽带卫星通信系统的拥塞管理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101699795A (zh) | 2010-04-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101699795B (zh) | 一种报文拥塞处理方法及系统 | |
US11934340B2 (en) | Multi-path RDMA transmission | |
US7836195B2 (en) | Preserving packet order when migrating network flows between cores | |
CN101867511B (zh) | 流控帧发送方法、相关设备及系统 | |
CN101291194B (zh) | 报文保序的方法和系统 | |
US10567426B2 (en) | Methods and apparatus for detecting and/or dealing with denial of service attacks | |
CN101616083A (zh) | 一种报文转发方法和装置 | |
JP2009253557A (ja) | 車載用の中継接続ユニット | |
CN101351781B (zh) | 在通信网络中处理传入分组的方法和系统 | |
US20180183733A1 (en) | Receive buffer architecture method and apparatus | |
US20120106567A1 (en) | Mlppp occupancy based round robin | |
CN109688070A (zh) | 一种数据调度方法、网络设备及转发单元 | |
CN111314240A (zh) | 拥塞控制方法及装置、网络设备及存储介质 | |
WO2012119452A1 (zh) | 一种网络流量确定方法、装置及网络设备 | |
CN102281183B (zh) | 处理网络拥塞的方法、装置和核心网络实体 | |
CN113490084B (zh) | 一种支持优先级调度的fc-ae交换机超带宽传输方法 | |
CN112737940A (zh) | 一种数据传输的方法和装置 | |
CN109286584A (zh) | 一种多核系统中的分片重组方法、装置及设备 | |
CN109547352B (zh) | 报文缓存队列的动态分配方法和装置 | |
CN111865716A (zh) | 一种端口拥塞检测方法、装置、设备及机器可读存储介质 | |
US20090319733A1 (en) | System and Method for Aggregating Transmit Completion Interrupts | |
CN101483637B (zh) | 降低Multilink PPP等待队列里缓存分片数量的方法 | |
CN106209626B (zh) | 自适应下发路由方法以及装置 | |
CN102056097A (zh) | 基于网关的消息发送方法及Parlay X网关 | |
US7855954B2 (en) | Speculative credit data flow control |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |