CN110830382A - 报文处理方法和装置、通信设备以及交换电路 - Google Patents
报文处理方法和装置、通信设备以及交换电路 Download PDFInfo
- Publication number
- CN110830382A CN110830382A CN201810912207.4A CN201810912207A CN110830382A CN 110830382 A CN110830382 A CN 110830382A CN 201810912207 A CN201810912207 A CN 201810912207A CN 110830382 A CN110830382 A CN 110830382A
- Authority
- CN
- China
- Prior art keywords
- cache
- queue
- upper limit
- value
- limit value
- 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
- 238000004891 communication Methods 0.000 title claims abstract description 48
- 238000003672 processing method Methods 0.000 title claims abstract description 27
- 238000000034 method Methods 0.000 claims abstract description 61
- 230000008569 process Effects 0.000 claims abstract description 30
- 238000012545 processing Methods 0.000 claims description 125
- 239000000872 buffer Substances 0.000 claims description 99
- 238000004590 computer program Methods 0.000 claims description 6
- 238000013461 design Methods 0.000 description 33
- 238000007726 management method Methods 0.000 description 31
- 230000006870 function Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 12
- 238000004422 calculation algorithm Methods 0.000 description 6
- 230000003044 adaptive effect Effects 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 230000009467 reduction Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
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
- H04L47/12—Avoiding congestion; Recovering from congestion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9084—Reactions to storage capacity overflow
-
- 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/31—Flow control; Congestion control by tagging of packets, e.g. using discard eligibility [DE] bits
-
- 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/60—Queue scheduling implementing hierarchical 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/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/627—Queue scheduling characterised by scheduling criteria for service slots or service orders policing
-
- 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
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
- H04L49/3018—Input queuing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9047—Buffering arrangements including multiple buffers, e.g. buffer pools
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/21—Monitoring or handling of messages
- H04L51/226—Delivery according to priorities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/21—Monitoring or handling of messages
- H04L51/234—Monitoring or handling of messages for tracking messages
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请实施例提供一种报文处理方法和装置、通信设备以及交换电路,该方法包括:第一设备从第二设备接收报文;第一设备确定用于存储报文的第一队列缓存;第一设备根据第一端口缓存的可用值和全局缓存的可用值,确定第一队列缓存的第一上限值,全局缓存包括多个至少一个端口缓存,第一端口缓存是至少一个端口缓存中的一个,第一端口缓存包括至少一个队列缓存,第一队列缓存是至少一个队列缓存中的一个;第一设备根据第一队列缓存的第一上限值、第一队列缓存的占用值以及报文的大小,对报文进行处理。本申请实施例实现了报文的差异性丢弃。
Description
技术领域
本申请实施例涉及通信技术领域,尤其涉及一种报文处理方法和装置、通信设备以及交换电路。
背景技术
共享缓存是现有路由器、交换机转发芯片(traffic manager,TM)和交换网的主流配置参数,通常会从多个层次对共享缓存进行分配管理,其中,多层次缓存从低到高可以包括:队列缓存、端口缓存以及全局缓存等。其中,全局缓存可以包括至少一个端口缓存,端口缓存可以包括至少一个队列缓存。当高层次缓存发生拥塞时,无论低层次缓存是否发生拥塞,即将存储到低层次缓存的报文会被无差别丢弃。例如,当低优先级队列缓存1存入的报文造成端口缓存拥塞时,即将存储到高优先级队列缓存2的报文会被无差别丢弃。
基于上述拥塞控制方式,当拥塞占用过多的共享缓存时,会引发高优先级报文、非拥塞层次报文等无差别丢弃,还会造成低优先级抢占高优先级带宽、同一优先级内带宽分配不公平等带宽分配错误。
发明内容
本申请实施例提供一种报文处理方法和装置、通信设备以及交换电路,用于避免无差别丢弃导致带宽分配功能失效,实现报文的差异性丢弃。
第一方面,本申请实施例提供一种报文处理方法,包括:
第一设备从第二设备接收报文;
第一设备确定用于存储报文的第一队列缓存;
第一设备根据第一端口缓存的可用值和全局缓存的可用值,确定第一队列缓存的第一上限值,全局缓存包括至少一个端口缓存,第一端口缓存是至少一个端口缓存中的一个,第一端口缓存包括至少一个队列缓存,第一队列缓存是至少一个队列缓存中的一个;
第一设备根据第一队列缓存的第一上限值、第一队列缓存的占用值以及报文的大小,对报文进行处理。
通过第一方面提供的报文处理方法,可使得第一设备根据最低层次缓存的上限值、最低层次的占用值以及报文的大小,动态确定报文的处理方式,避免了现有的高层次缓存管理方式所导致第一设备将待输入到非拥塞低层次缓存和拥塞低层次缓存中的报文无差异丢弃,以及将待输入到高优先级缓存和低优先级缓存中的报文无差异丢弃的问题,实现了对报文的差异性丢弃,解决了现有技术中由于无差别丢弃报文而导致带宽分配功能失效的问题。
在一种可能的设计中,第一设备根据第一端口缓存的可用值和全局缓存的可用值,确定第一队列缓存的第一上限值,包括:
第一设备根据端口共享上限值和全局共享上限值,确定第一队列缓存的第一上限值,端口共享上限值等于第一端口缓存的可用值与第一系数的乘积,全局共享上限值等于全局缓存的可用值与第二系数的乘积。
在一种可能的设计中,第一设备根据端口共享上限值和全局共享上限值,确定第一队列缓存的第一上限值,包括:
第一设备根据端口共享上限值、全局共享上限值和第一队列缓存的预设下限值,确定第一队列缓存的第一上限值。
通过该实施方式提供的报文处理方法,可保证第一设备可以从任意层次缓存中调用报文的过程,保护第一设备的各个层次缓存,避免了任意层次缓存被锁定的现象。
在一种可能的设计中,方法包括:
第一设备根据全局缓存的上限值以及全局缓存的占用值,确定全局缓存的可用值;
第一设备根据第三系数以及全局缓存的可用值,确定第一端口缓存的上限值;
第一设备根据第一端口缓存的上限值和第一端口缓存的占用值,确定第一端口缓存的可用值。
在一种可能的设计中,第一设备根据第一队列缓存的第一上限值、第一队列缓存的占用值以及报文的大小,对报文进行处理,包括:
第一设备在第一队列缓存的占用值和报文的大小之和大于第一队列缓存的第一上限值时,将报文丢弃;或者,
第一设备在第一队列缓存的占用值和报文的大小之和小于等于第一队列缓存的第一上限值时,将报文存储到第一队列缓存中。
通过该实施方式提供的报文处理方法,可实现第一设备对共享缓存的自适应层次化水线管理,第一设备仅会将高占用值的层次缓存中的报文进行丢弃,不会将低占用值的层次缓存中的报文进行丢弃,避免了现有的高层次缓存管理方式所导致第一设备将待输入到非拥塞低层次缓存和拥塞低层次缓存中的报文无差异丢弃,以及将待输入到高优先级缓存和低优先级缓存中的报文无差异丢弃的问题,保护了高优先级层次缓存的调用,解决了无差别化丢弃带来高优先级层次缓存的丢弃现象。
在一种可能的设计中,第一设备根据第一队列缓存的第一上限值、第一队列缓存的占用值以及报文的大小,对报文进行处理,包括:
第一设备在第一队列缓存的占用值和报文的大小之和大于第一队列缓存的第一上限值时,在报文中增加拥塞标识,并将增加拥塞标识后的报文存储到第一队列缓存中,拥塞标识用于指示第一队列缓存处于拥塞状态;或者,
第一设备在第一队列缓存的占用值和报文的大小之和小于等于第一队列缓存的第一上限值时,将报文存储到第一队列缓存中。
通过该实施方式提供的报文处理方法,可使得第二设备可以对输入到第一队列缓存的报文的大小和速率进行下调,实现了第一设备对无损业务中报文的差异性标记,保护了第一设备中高优先级层次缓存和非拥塞层次缓存皆不会触发报文源端(第二设备)在发送报文时进行降速,避免了第一设备的无差别标记带来第二设备的降速问题。
在一种可能的设计中,第一设备根据第一队列缓存的第一上限值、第一队列缓存的占用值以及报文的大小,对报文进行处理,包括:
第一设备在第一队列缓存的占用值和报文的大小之和大于第一队列缓存的第一上限值时,将报文存储到第一队列缓存中,并向第二设备发送反压信号,反压信号用于指示第二设备停止发送报文或在发送大小总和为某一数值的至少一个报文后停止发送报文;或者,
第一设备在第一队列缓存的占用值和报文的大小之和小于等于第一队列缓存的第一上限值时,将报文存储到第一队列缓存中。
通过该实施方式提供的报文处理方法,可实现第一设备对报文的差异性反压指示,保护了非拥塞层次缓存的高吞吐率,避免拥塞层次缓存对非拥塞层次缓存的影响,避免了无差别反压指示带来的降低吞吐率的问题。
在一种可能的设计中,方法还包括:
第一设备根据第一端口缓存的可用值和全局缓存的可用值,确定第一队列缓存的第二上限值,第一上限值大于第二上限值;
第一设备根据第一队列缓存的第一上限值、第一队列缓存的占用值以及报文的大小,对报文进行处理,包括:
第一设备在第一队列缓存的占用值和报文的大小之和大于第一队列缓存的第一上限值时,将报文丢弃;或者,
第一设备在第一队列缓存的占用值和报文的大小之和小于第一队列缓存的第二上限值时,将报文存储到第一队列缓存中;或者,
第一设备在第一队列缓存的占用值和报文的大小之和大于第一队列缓存的第二上限值且小于第一队列缓存的第一上限值时,按照一概率值选择将报文丢弃或将报文存储到第一队列缓存中。
通过该实施方式提供的报文处理方法,可实现第一设备对共享缓存的自适应层次化WRED管理,第一设备仅会更多地将高占用值的层次缓存中的报文进行丢弃,而更少地将输入到低占用值的队列缓存中的报文丢弃,能够避免低优先级缓存抢占过多共享缓存使得输入到高优先级层次以及非拥塞层次缓存中的报文被无差别丢弃,实现了对报文的差异性丢弃。
在一种可能的设计中,方法还包括:
第一设备根据第一端口缓存的可用值和全局缓存的可用值,确定第一队列缓存的第二上限值,第一上限值大于第二上限值;
第一设备根据第一队列缓存的第一上限值、第一队列缓存的占用值以及报文的大小,对报文进行处理,包括:
第一设备在第一队列缓存的占用值和报文的大小之和大于第一队列缓存的第一上限值时,在报文中增加拥塞标识,并将增加拥塞标识后的报文存储到第一队列缓存中,拥塞标识用于指示第一队列缓存处于拥塞状态;或者,
第一设备在第一队列缓存的占用值和报文的大小之和小于第一队列缓存的第二上限值时,将报文存储到第一队列缓存中;或者,
第一设备在第一队列缓存的占用值和报文的大小之和大于第一队列缓存的第二上限值且小于第一队列缓存的第一上限值时,按照一概率值选择将报文存储到第一队列缓存中或在报文中增加拥塞标识,且将增加拥塞标识后的报文存储到第一队列缓存中。
通过该实施方式提供的报文处理方法,可实现第二设备可以对输入到第一队列缓存的报文的大小和速率进行下调,实现了第一设备对报文的无差别标记,保护了第一设备中高优先级层次缓存和非拥塞层次缓存皆不会触发报文源端(第二设备)在发送报文时进行降速处理,避免了第一设备的无差别化标记带来的降速问题。
第二方面,本申请实施例提供一种通信设备,包括:接口单元、处理单元和存储器;
其中,接口单元,用于从另一通信设备接收报文;
处理单元,用于确定用于存储报文的第一队列缓存;
处理单元,还用于根据第一端口缓存的可用值和全局缓存的可用值,确定第一队列缓存的第一上限值;
存储器包括:全局缓存,全局缓存包括至少一个端口缓存,第一端口缓存是至少一个端口缓存中的一个,第一端口缓存包括至少一个队列缓存,第一队列缓存是至少一个队列缓存中的一个;
处理单元,还用于根据第一队列缓存的第一上限值、第一队列缓存的占用值以及报文的大小,对报文进行处理。
在一种可能的设计中,处理单元,用于根据端口共享上限值和全局共享上限值,确定第一队列缓存的第一上限值,端口共享上限值等于第一端口缓存的可用值与第一系数的乘积,全局共享上限值等于全局缓存的可用值与第二系数的乘积。
在一种可能的设计中,处理单元,用于根据端口共享上限值、全局共享上限值和第一队列缓存的预设下限值,确定第一队列缓存的第一上限值。
在一种可能的设计中,处理单元,具体用于根据全局缓存的上限值以及全局缓存的占用值,确定全局缓存的可用值;根据第三系数以及全局缓存的可用值,确定第一端口缓存的上限值;根据第一端口缓存的上限值和第一端口缓存的占用值,确定第一端口缓存的可用值。
在一种可能的设计中,处理单元,具体用于在第一队列缓存的占用值和报文的大小之和大于第一队列缓存的第一上限值时,将报文丢弃;或者,在第一队列缓存的占用值和报文的大小之和小于等于第一队列缓存的第一上限值时,将报文存储到第一队列缓存中。
在一种可能的设计中,处理单元,具体用于在第一队列缓存的占用值和报文的大小之和大于第一队列缓存的第一上限值时,在报文中增加拥塞标识,并将增加拥塞标识后的报文存储到第一队列缓存中,拥塞标识用于指示第一队列缓存处于拥塞状态;或者,在第一队列缓存的占用值和报文的大小之和小于等于第一队列缓存的第一上限值时,将报文存储到第一队列缓存中。
在一种可能的设计中,处理单元,具体用于在第一队列缓存的占用值和报文的大小之和大于第一队列缓存的第一上限值时,将报文存储到第一队列缓存中,并向接口单元发送指示信号;或者,在第一队列缓存的占用值和报文的大小之和小于等于第一队列缓存的第一上限值时,将报文存储到第一队列缓存中。
在一种可能的设计中,接口单元,还用于在接收到指示信号时,向另一通信设备发送反压信号,反压信号用于指示另一通信设备停止发送报文或在发送大小总和为某一数值的至少一个报文后停止发送报文。
在一种可能的设计中,处理单元,还用于根据第一端口缓存的可用值和全局缓存的可用值,确定第一队列缓存的第二上限值,第一上限值大于第二上限值;
处理单元,具体用于在第一队列缓存的占用值和报文的大小之和大于第一队列缓存的第一上限值时,将报文丢弃;或者,在第一队列缓存的占用值和报文的大小之和小于第一队列缓存的第二上限值时,将报文存储到第一队列缓存中;或者,在第一队列缓存的占用值和报文的大小之和大于第一队列缓存的第二上限值且小于第一队列缓存的第一上限值时,按照一概率值选择将报文丢弃或将报文存储到第一队列缓存中。
在一种可能的设计中,处理单元,还用于根据第一端口缓存的可用值和全局缓存的可用值,确定第一队列缓存的第二上限值,第一上限值大于第二上限值;
处理单元,具体用于在第一队列缓存的占用值和报文的大小之和大于第一队列缓存的第一上限值时,在报文中增加拥塞标识,并将增加拥塞标识后的报文存储到第一队列缓存中,拥塞标识用于指示第一队列缓存处于拥塞状态;或者,在第一队列缓存的占用值和报文的大小之和小于第一队列缓存的第二上限值时,将报文存储到第一队列缓存中;或者,在第一队列缓存的占用值和报文的大小之和大于第一队列缓存的第二上限值且小于第一队列缓存的第一上限值时,按照一概率值将报文存储到第一队列缓存中或在报文中增加拥塞标识,且将增加拥塞标识后的报文存储到第一队列缓存中。
第三方面,本申请实施例提供一种交换电路,包括:处理单元和存储器;
其中,处理单元,用于从另一设备接收报文;
处理单元,还用于确定用于存储报文的第一队列缓存;
处理单元,还用于根据第一端口缓存的可用值和全局缓存的可用值,确定第一队列缓存的第一上限值;
存储器包括:全局缓存,全局缓存包括至少一个端口缓存,第一端口缓存是至少一个端口缓存中的一个,第一端口缓存包括至少一个队列缓存,第一队列缓存是至少一个队列缓存中的一个;
处理单元,还用于根据第一队列缓存的第一上限值、第一队列缓存的占用值以及报文的大小,对报文进行处理。
在一种可能的设计中,处理单元,用于根据端口共享上限值和全局共享上限值,确定第一队列缓存的第一上限值,端口共享上限值等于第一端口缓存的可用值与第一系数的乘积,全局共享上限值等于全局缓存的可用值与第二系数的乘积。
在一种可能的设计中,处理单元,用于根据端口共享上限值、全局共享上限值和第一队列缓存的预设下限值,确定第一队列缓存的第一上限值。
在一种可能的设计中,处理单元,用于根据全局缓存的上限值以及全局缓存的占用值,确定全局缓存的可用值;根据第三系数以及全局缓存的可用值,确定第一端口缓存的上限值;根据第一端口缓存的上限值和第一端口缓存的占用值,确定第一端口缓存的可用值。
在一种可能的设计中,处理单元,具体用于在第一队列缓存的占用值和报文的大小之和大于第一队列缓存的第一上限值时,将报文存储到第一队列缓存中,并发送指示信号,指示信号用于指示第一队列缓存处于拥塞状态;或者,在第一队列缓存的占用值和报文的大小之和小于等于第一队列缓存的第一上限值时,将报文存储到第一队列缓存中。
在一种可能的设计中,处理单元,具体用于在第一队列缓存的占用值和报文的大小之和大于第一队列缓存的第一上限值时,在报文中增加拥塞标识,并将增加拥塞标识后的报文存储到第一队列缓存中,拥塞标识用于指示第一队列缓存处于拥塞状态;或者,在第一队列缓存的占用值和报文的大小之和小于等于第一队列缓存的第一上限值时,将报文存储到第一队列缓存中。
在一种可能的设计中,处理单元,具体用于在第一队列缓存的占用值和报文的大小之和大于第一队列缓存的第一上限值时,将报文存储到第一队列缓存中,并发送指示信号,指示信号用于指示第一队列缓存处于拥塞状态;或者,在第一队列缓存的占用值和报文的大小之和小于等于第一队列缓存的第一上限值时,将报文存储到第一队列缓存中。
在一种可能的设计中,处理单元,还用于根据第一端口缓存的可用值和全局缓存的可用值,确定第一队列缓存的第二上限值,第一上限值大于第二上限值;
处理单元,具体用于在第一队列缓存的占用值和报文的大小之和大于第一队列缓存的第一上限值时,将报文丢弃;或者,在第一队列缓存的占用值和报文的大小之和小于第一队列缓存的第二上限值时,将报文存储到第一队列缓存中;或者,在第一队列缓存的占用值和报文的大小之和大于第一队列缓存的第二上限值且小于第一队列缓存的第一上限值时,按照一概率值选择将报文丢弃或将报文存储到第一队列缓存中。
在一种可能的设计中,处理单元,还用于根据第一端口缓存的可用值和全局缓存的可用值,确定第一队列缓存的第二上限值,第一上限值大于第二上限值;
处理单元,具体用于在第一队列缓存的占用值和报文的大小之和大于第一队列缓存的第一上限值时,在报文中增加拥塞标识,并将增加拥塞标识后的报文存储到第一队列缓存中,拥塞标识用于指示第一队列缓存处于拥塞状态;或者,在第一队列缓存的占用值和报文的大小之和小于第一队列缓存的第二上限值时,将报文存储到第一队列缓存中;或者,在第一队列缓存的占用值和报文的大小之和大于第一队列缓存的第二上限值且小于第一队列缓存的第一上限值时,按照一概率值选择将报文存储到第一队列缓存中或在报文中增加拥塞标识,且将增加拥塞标识后的报文存储到第一队列缓存中。
第四方面,本申请实施例提供一种第一设备,包括:
接收模块,用于从第二设备接收报文;
确定模块,用于确定用于存储报文的第一队列缓存;
确定模块,用于根据第一端口缓存的可用值和全局缓存的可用值,确定第一队列缓存的第一上限值,全局缓存包括至少一个端口缓存,第一端口缓存是至少一个端口缓存中的一个,第一端口缓存包括至少一个队列缓存,第一队列缓存是至少一个队列缓存中的一个;
根据第一队列缓存的第一上限值、第一队列缓存的占用值以及报文的大小,对报文进行处理。
在一种可能的设计中,确定模块,具体用于根据端口共享上限值和全局共享上限值,确定第一队列缓存的第一上限值,端口共享上限值等于第一端口缓存的可用值与第一系数的乘积,全局共享上限值等于全局缓存的可用值与第二系数的乘积。
在一种可能的设计中,确定模块,具体用于根据端口共享上限值、全局共享上限值和第一队列缓存的预设下限值,确定第一队列缓存的第一上限值。
在一种可能的设计中,确定模块,具体用于根据全局缓存的上限值以及全局缓存的占用值,确定全局缓存的可用值;根据第三系数以及全局缓存的可用值,确定第一端口缓存的上限值;根据第一端口缓存的上限值和第一端口缓存的占用值,确定第一端口缓存的可用值。
在一种可能的设计中,处理模块,具体用于在第一队列缓存的占用值和报文的大小之和大于第一队列缓存的第一上限值时,将报文丢弃;或者,在第一队列缓存的占用值和报文的大小之和小于等于第一队列缓存的第一上限值时,将报文存储到第一队列缓存中。
在一种可能的设计中,处理模块,具体用于在第一队列缓存的占用值和报文的大小之和大于第一队列缓存的第一上限值时,在报文中增加拥塞标识,并将增加拥塞标识后的报文存储到第一队列缓存中,拥塞标识用于指示第一队列缓存处于拥塞状态;或者,在第一队列缓存的占用值和报文的大小之和小于等于第一队列缓存的第一上限值时,将报文存储到第一队列缓存中。
在一种可能的设计中,处理模块,具体用于在第一队列缓存的占用值和报文的大小之和大于第一队列缓存的第一上限值时,将报文存储到第一队列缓存中,并向第二设备发送反压信号,反压信号用于指示第二设备停止发送报文或在发送大小总和为某一数值的至少一个报文后停止发送报文;或者,在第一队列缓存的占用值和报文的大小之和小于等于第一队列缓存的第一上限值时,将报文存储到第一队列缓存中。
在一种可能的设计中,确定模块,具体用于根据第一端口缓存的可用值和全局缓存的可用值,确定第一队列缓存的第二上限值,第一上限值大于第二上限值;
处理模块,具体用于在第一队列缓存的占用值和报文的大小之和大于第一队列缓存的第一上限值时,将报文丢弃;或者,在第一队列缓存的占用值和报文的大小之和小于第一队列缓存的第二上限值时,将报文存储到第一队列缓存中;或者,在第一队列缓存的占用值和报文的大小之和大于第一队列缓存的第二上限值且小于第一队列缓存的第一上限值时,按照一概率值选择将报文丢弃或将报文存储到第一队列缓存中。
在一种可能的设计中,确定模块,具体用于根据第一端口缓存的可用值和全局缓存的可用值,确定第一队列缓存的第二上限值,第一上限值大于第二上限值;
处理模块,具体用于在第一队列缓存的占用值和报文的大小之和大于第一队列缓存的第一上限值时,在报文中增加拥塞标识,并将增加拥塞标识后的报文存储到第一队列缓存中,拥塞标识用于指示第一队列缓存处于拥塞状态;或者,在第一队列缓存的占用值和报文的大小之和小于第一队列缓存的第二上限值时,将报文存储到第一队列缓存中;或者,在第一队列缓存的占用值和报文的大小之和大于第一队列缓存的第二上限值且小于第一队列缓存的第一上限值时,按照一概率值选择将报文存储到第一队列缓存中或在报文中增加拥塞标识,且将增加拥塞标识后的报文存储到第一队列缓存中。
第五方面,本申请实施例提供一种第一设备,包括:存储器和处理器,存储器用于存储程序指令,处理器用于调用存储器中的程序指令执行第一方面的通信方法。
第六方面,本申请实施例提供一种可读存储介质,可读存储介质上存储有计算机程序;计算机程序在被执行时,实现第一方面本申请实施例任一的通信方法。
本申请实施例提供的报文处理方法和装置、通信设备以及交换电路,通过第一设备根据第二设备发送的报文确定存储该报文的第一队列缓存,再根据第一端口缓存的可用值和全局缓存的可用值,确定第一队列缓存的第一上限值,然后根据第一队列缓存的第一上限值、第一队列缓存的占用值以及报文的大小,对报文进行处理。相比于现有技术中需要比较各个层次缓存各自的占用值与各自的固定丢弃水线之间的大小,易导致报文的无差别丢弃的问题,本申请实施例中,最低层次缓存的上限值不仅充分考虑除了最低层次缓存以外其他层次缓存的当前可用情况对其的影响,还能够根据当前状态下其他层次缓存的可用值进行自适应调整,始终保持动态变化,而非固定不变,使得第一设备可以动态确定报文的处理方式,即只会将输入到缓存占用高的层次缓存中的报文进行丢弃,不会将输入到缓存占用低的层次缓存中的报文进行丢弃,低优先级缓存过多抢占共享缓存,避免了现有的高层次缓存管理方式所导致第一设备将待输入到非拥塞低层次缓存和拥塞低层次缓存中的报文无差异丢弃,以及将待输入到高优先级缓存和低优先级缓存中的报文无差异丢弃的问题,实现了对报文的差异性丢弃,解决了由于无差别丢弃报文而导致带宽分配功能失效的问题。
附图说明
图1为本申请一实施例提供的通信***的示意图;
图2为本申请一实施例提供的报文处理方法的流程图;
图3为本申请一实施例提供的两级层次化水线管理的示意图;
图4为本申请一实施例提供的报文处理方法的流程示意图;
图5为本申请一实施例提供的通信设备的结构示意图;
图6为本申请一实施例提供的交换电路的结构示意图;
图7为本申请一实施例提供的第一设备的结构示意图;
图8为本申请一实施例提供的第一设备的硬件结构示意图。
具体实施方式
图1为本申请一实施例提供的通信***的示意图,如图1所示,该通信***包括第一设备和第二设备。第一设备在接收到第二设备发送的报文时,可以根据自身缓存的具体情况,确定是否对报文进行丢弃或存储处理。如图1所示,该通信***还可以包括第三设备,第一设备在存储接收到的报文之后,可以将接收到的报文发送给第三设备。
其中,本申请实施例提及的第一设备可以为具有处理报文功能的任意物理设备或虚拟设备,如交换机或路由器等。本申请实施例提及的第二设备可以为具有发送报文功能的任意物理设备或虚拟设备,本申请实施例提及的第三设备可以为具有报文接收功能的任意物理设备或虚拟设备。
第一设备可以为交换机或路由器。举例来说,第一设备可以包括端口模块、入口数据包处理(ingress packet processing,Ingress PP)模块、出口数据包处理(egresspacket processing,Egress PP)模块、主动队列管理(active queue management,AQM)模块、调度器(scheduler)、队列管理模块以及数据包缓存(packet buffer,PB),队列管理模块包括入队(enqueue,ENQ)模块和出队(dequeue,DEQ)模块。
具体地,第二设备发送的报文,可以经过端口模块进入到Ingress PP模块,Ingress PP模块对报文进行入口报文处理(如查找转发表等操作)后,在报文中增加出口信息,出口信息中例如包括队列缓存的标识等信息。Ingress PP模块再将报文发送到AQM模块中,AQM模块输出报文到ENQ模块进行入队操作,ENQ模块上报信息给调度器,并将报文存储到PB中。随后,调度器可以通知DEQ模块从PB中取出报文并发送给Egress PP模块,EgressPP模块对报文进行出口报文处理(如封装或解封装等操作)后,经过端口模块将报文发送给第三设备。
第一设备可以包括交换芯片,该交换芯片例如是交换机缓存(switch buffer,SWB)芯片或队列管理器(traffic manager,TM)芯片等,以上AQM模块、调度器、队列管理模块以及数据包缓存可以包括在该交换芯片中。
第一设备上的数据包缓存可以作为共享缓存使用。进一步地,为了充分使用共享缓存,第一设备通常会从多个层次对共享缓存进行层次化管理,从而,在非拥塞时提高了吸纳突增报文的能力,在拥塞时达到尽可能的公平分配缓存的目的。其中,本申请实施例对层次缓存的个数不做限定。如,多层次缓存可以包括队列缓存、端口缓存以及全局缓存,或者,队列缓存、队列组缓存以及端口缓存,或者,队列缓存、端口缓存、端口组缓存以及全局缓存,或者,端口缓存和全局缓存,或者,端口缓存、端口组缓存以及全局缓存等各种形式。上述各层次缓存中,按照从低到高的级别顺序分别为队列缓存、队列组缓存、端口缓存、端口组缓存以及全局缓存。举例来说,第一设备包括队列缓存、端口缓存以及全局缓存时,数据包缓存的全部或部分作为全局缓存,全局缓存的全部或部分包括一个或多个端口缓存,每个端口缓存的全部或部分包括一个或多个队列缓存。由此,第一设备将接收的报文存入队列缓存后,该报文既占用一部分该队列缓存,也占用一部分该队列缓存所在的端口缓存,还占用一部分该端口缓存所在的全局缓存。
一种共享缓存的层次化管理的具体实现方式中,当第一设备对共享缓存进行层次化水线管理时,第一设备会比较各个层次缓存的占用值和各个层次缓存的丢弃水线。丢弃水线是一个阈值。在任一层次缓存的占用值超过该层次缓存的丢弃水线时,第一设备会将接收到的报文进行丢弃处理。在所有层次缓存的占用值均未超过丢弃水线时,第一设备会将接收到的报文进行存储处理。由此,当高层次缓存的占用值超过该层次缓存的丢弃水线时,即使低层次缓存的占用值未超过低层次缓存的丢弃水线,第一设备仍会将待输入到低层次缓存的报文丢弃,导致报文被无差别丢弃。
本申请实施例提供了一种报文处理方法和装置、通信设备以及交换电路,可以实现差异性丢弃,解决了现有技术对共享缓存管理不当而引起报文无差别丢弃的问题。下面,结合图2,以第一设备为执行主体,第一设备中各个层次缓存从低到高包括:队列缓存、端口缓存以及全局缓存为例,对本申请实施例的报文处理方法的具体实现过程进行详细说明。
图2为本申请一实施例提供的报文处理方法的流程图,如图2所示,本申请实施例的报文处理方法可以包括:
S201、第一设备从第二设备接收报文。
S202、第一设备确定用于存储报文的第一队列缓存。
本申请实施例中,第一设备在接收到第二设备发送的报文时,不会立即对报文进行存储。由于第一设备的各层次缓存中最低层次缓存为队列缓存,因此,第一设备可以根据报文,确定存储该报文的第一队列缓存。第一设备在接收到第二设备发送的报文后,可以根据报文的目的地址、优先级或其他信息确定报文对应的队列缓存,以便将具有不同目的地址、优先级或其他信息的报文存储到不同的队列缓存。第一设备可以在报文中添加用于标识报文对应的队列缓存的信息标识。该用于标识队列缓存的信息可以包括队列标识,进而同一队列缓存中存储的报文具有相同队列标识。该用于标识队列缓存的信息也可以包括优先级标识,进而同一队列缓存中存储的报文具有相同优先级标识,其中具有相同优先级标识的报文属于相同的优先级组。
S203、第一设备根据第一端口缓存的可用值和全局缓存的可用值,确定第一队列缓存的第一上限值,全局缓存包括至少一个端口缓存,第一端口缓存是至少一个端口缓存中的一个,第一端口缓存包括至少一个队列缓存,第一队列缓存是至少一个队列缓存中的一个。
任意层次的一个缓存中包括的所有报文的大小的总和为该缓存的占用值,该缓存可以存储的报文的大小的总和的最大值为该缓存的上限值,该缓存的上限值减去该缓存的占用值为该缓存的可用值。以上该缓存例如是一个端口缓存、一个队列缓存或一个全局缓存。
进一步地,第一设备可以获取当前状态下第一端口缓存的可用值和全局缓存的可用值,再根据这两个可用值,确定第一队列缓存的第一上限值,且当第一端口缓存的可用值和全局缓存的可用值中至少一个值发生变化时,第一队列缓存的第一上限值皆会随之发生改变。
其中,本申请实施例对全局缓存和第一端口缓存的具体结构不做限定。全局缓存可以仅包括第一端口缓存,或者,全局缓存可以包括包含有第一端口缓存的多个端口缓存。第一端口缓存仅可以包括第一队列缓存,或者,第一端口缓存可以包括包含有第一队列缓存的多个队列缓存。
S204、第一设备根据第一队列缓存的第一上限值、第一队列缓存的占用值以及报文的大小,对报文进行处理。
本申请实施例中,第一设备还可以获取当前状态下的第一队列缓存的占用值,并计算出报文的大小,其中,报文的大小为报文数据所占的内存大小,可以以cell或字节数作为报文大小的计量单位。由于第一队列缓存的第一上限值考虑了第一端口缓存和全局缓存的当前使用情况对其的影响,因此,第一设备可以根据第一队列缓存的第一上限值、第一队列缓存的占用值以及报文的大小,直接确定处理报文的具体方式,而不用再去考虑全局缓存的占用值是否超过其固定丢弃水线以及第一端口缓存的占用值是否超过其固定丢弃水线。又由于第一队列缓存的第一上限值会随着第一端口缓存的可用值和全局缓存的可用值的变化而发生动态改变,第一上限值会受到第一端口缓存的可用值和全局缓存的可用值的限制。当第一端口缓存的可用值和全局缓存的可用值降低到一定值时,报文进入第一队列缓存会受到限制,由此不会由于第一队列缓存上报文的大量进入导致第一端口缓存和全局缓存的过量占用,有助于保证其他队列缓存存入报文的机会,有助于保证输入到高优先级层次缓存以及非拥塞层次缓存中的报文不会被无差别丢弃,实现了对报文的差异性丢弃。
需要说明的是,第一设备每当接收到第二设备发送的报文时,皆可以重新确定用于存储报文的第一队列缓存,并重新获取此时的第一端口缓存的可用值、全局缓存的可用值以及第一队列缓存的占用值,从而根据第一队列缓存的第一上限值、第一队列缓存的占用值以及报文的大小,得到报文处理的具体方式。
本申请实施例中,最低层次缓存的上限值不仅充分考虑除了最低层次缓存以外其他层次缓存的当前可用情况对其的影响,还能够根据当前状态下其他层次缓存的可用值进行自适应调整,始终保持动态变化,而非固定不变,使得第一设备可以动态确定报文的处理方式,即只会将输入到缓存占用高的层次缓存中的报文进行丢弃,不会将输入到缓存占用低的层次缓存中的报文进行丢弃,低优先级缓存过多抢占共享缓存,避免了现有的高层次缓存管理方式所导致第一设备将待输入到非拥塞低层次缓存和拥塞低层次缓存中的报文无差异丢弃,以及将待输入到高优先级缓存和低优先级缓存中的报文无差异丢弃的问题,实现了对报文的差异性丢弃,解决了由于无差别丢弃报文而导致带宽分配功能失效的问题。
示例性的,在上述图2所示实施例的基础上,在一种S203的具体实现方式中,第一设备根据端口共享上限值和全局共享上限值,确定第一队列缓存的第一上限值,端口共享上限值等于第一端口缓存的可用值与第一系数的乘积,全局共享上限值等于全局缓存的可用值与第二系数的乘积。
第一设备可以通过公式一得到端口共享上限值。
QueueLimitPorti,j=γi,j×RemainPorti 公式一;
其中,QueueLimitPorti,j为用于计算全局缓存中第i个端口缓存中的第j个队列缓存的上限值的端口共享上限值,第一系数γi,j的可取范围例如为1/128至8,RemainPorti为第i个端口缓存的可用值。
本申请实施例中,下标i指示第i个端口缓存,下标j指示第j个队列缓存。本申请实施例中,假设第一端口缓存是全局缓存中第i个端口缓存,第一队列缓存是第i个端口缓存中的第j个队列缓存。
第一设备可以通过公式二得到全局共享上限值。
QueueLimitGlobali,j=αi,j×RemainGlobal 公式二;
其中,QueueLimitGlobali,j为用于计算全局缓存中第i个端口缓存中的第j个队列缓存的上限值的全局共享上限值,第二系数αi,j的可取范围例如为1/128至8,RemainGlobal为全局缓存的可用值。
进一步地,第一设备根据端口共享上限值和全局共享上限值,可以确定第一队列缓存的第一上限值。可选地,为了避免确定的第一队列缓存的第一上限值过小,导致第一设备无法从第一队列缓存取出报文,第一设备可以设置第一队列缓存的预设下限值,从而,第一设备根据端口共享上限值、全局共享上限值和第一队列缓存的预设下限值,确定第一队列缓存的第一上限值。
本申请实施例中,第一设备可以通过公式三,取端口共享上限值和全局共享上限值中的最小值,再取最小值与第一队列缓存的预设下限值中的最大值,然后将最大值作为第一队列缓存的第一上限值,避免第一设备无法从第一队列缓存取出报文。
QueueLimiti,j=max(min(QueueLimitPorti,j,QueueLimitGlobali,j),QueueMini,j)公式三;
其中,QueueLimiti,j为全局缓存中第i个端口缓存中的第j个队列缓存的上限值,也即为第一队列缓存的第一上限值,QueueLimitPorti,j为端口共享上限值,QueueLimitGlobali,j为全局共享上限值,QueueMini,j为第一队列缓存的预设下限值。
在上述实施例的基础上,由于队列缓存、端口缓存以及全局缓存的级别顺序为从低到高,因此,除了队列缓存的可用值受全局缓存的可用值和端口缓存的可用值的影响以外,端口缓存的可用值还可以受全局缓存的可用值的影响。因此,在一种确定第一端口缓存的可用值的具体实现方式中,可选地,第一设备可以通过公式四,根据全局缓存的上限值以及全局缓存的占用值,确定全局缓存的可用值。第一设备根据第三系数以及全局缓存的可用值,确定第一端口缓存的上限值。第一设备根据第一端口缓存的上限值和第一端口缓存的占用值,确定第一端口缓存的可用值。
其中,RemainGlobal为全局缓存的可用值,GlobalLimit为全局缓存的上限值,GlobalCnt为全局缓存的占用值,PortLimiti为第i个端口缓存的上限值,第三系数βi的可取范围例如为1/128至8,RemainPorti为第i个端口缓存的可用值,PortCnti为第i个端口缓存的占用值。
在上述图2所示实施例的基础上,当第一设备对共享缓存进行层次化水线管理时,一种S204的具体实现方式中,第一设备在第一队列缓存的占用值和报文的大小之和大于第一队列缓存的第一上限值时,将报文丢弃;或者,
第一设备在第一队列缓存的占用值和报文的大小之和小于等于第一队列缓存的第一上限值时,将报文存储到第一队列缓存中。
本申请实施例中,第一设备无需考虑第一端口缓存的占用值是否超过第一端口缓存的丢弃水线以及全局缓存的占用值是否超过全局缓存的丢弃水线,可将第一队列缓存的第一上限值作为确定是否将报文丢弃或存储的判断依据。
具体地,当第一队列缓存的占用值和报文的大小之和大于第一队列缓存的第一上限值时,第一设备将报文丢弃。当第一队列缓存的占用值和报文的大小之和小于第一队列缓存的第一上限值时,第一设备将报文存储到第一队列缓存中。当第一队列缓存的占用值和报文的大小之和等于第一队列缓存的第一上限值时,第一设备可以将报文丢弃,也可以将报文存储到第一队列缓存中,本申请实施例对此不做限定。
进一步地,高层次缓存的占用值一旦将要达到其上限值,可以动态下调最低层次缓存的上限值,超过上限值的最低层次缓存停止存入报文,未达到上限值的同优先级或不同优先级的最低层次缓存仍然可以存入报文,这些存入的报文也相当于存入了高层次缓存。由此,避免了某一个低层次缓存存入的报文占用过多高层次缓存进而导致第一设备无差别丢弃非拥塞缓存以及高优先级缓存中的报文。以上针对第i个端口缓存中的第j个队列缓存使用第一系数和第二系数,针对其他队列缓存可以使用具有不同值的其他系数,由此可以灵活设置高层次缓存对低层次缓存之间的限制关系,以及灵活设置同层次缓存之间不同的优先级,例如高优先级缓存相比低优先级缓存设置更大的系数值以使得高优先级缓存相比低优先级缓存具有更大的上限值。为了便于说明,下面以图3为例对上述过程进行示意。
图3为本申请一实施例提供的两级层次化水线管理的示意图。如图3所示,第一设备包括端口缓存1,端口缓存1包括队列缓存1和队列缓存2,端口缓存1为高层级缓存,队列缓存1和队列缓存2为低层级缓存。其中,图3的(a)对应于现有技术的具体实现过程,图3的(b)对应于本申请实施例的具体实现过程,图3中端口缓存1的丢弃水线为端口缓存1的上限值,队列缓存1的丢弃水线为队列缓存1的上限值,队列缓存2的丢弃水线为队列缓存2的上限值。
如图3中的(a)所示,当端口缓存1的占用值超过其丢弃水线时,由于端口缓存1为高层次缓存,因此,第一设备会直接将输入到队列缓存1和队列缓存2的报文丢弃。如图3中的(b)所示,当端口缓存1的占用值将要达到其丢弃水线时,第一设备会将队列缓存1和队列缓存2的第一上限值调小。此时,由于队列缓存1的占用值超过了队列缓存1当前的第一上限值,因此,第一设备会将输入到队列缓存1的报文丢弃。由于队列2缓存的占用值未超过队列2当前的第一上限值,因此,第一设备会将输入到队列2的报文存储。
进一步地,第一设备对共享缓存实现了自适应的层次化水线管理,仅会将高占用值的层次缓存中的报文进行丢弃,不会将低占用值的层次缓存中的报文进行丢弃,避免了现有的高层次缓存管理方式所导致第一设备将待输入到非拥塞低层次缓存和拥塞低层次缓存中的报文无差异丢弃,以及将待输入到高优先级缓存和低优先级缓存中的报文无差异丢弃的问题,实现了对多个层次缓存的差异化丢弃,保护了高优先级层次缓存的调用,解决了无差别化丢弃带来高优先级层次缓存的丢弃现象。
在上述图2所示实施例的基础上,另一种S204的具体实现方式中,第一设备在第一队列缓存的占用值和报文的大小之和大于第一队列缓存的第一上限值时,在报文中增加拥塞标识,并将增加拥塞标识后的报文存储到第一队列缓存中,拥塞标识用于指示第一队列缓存处于拥塞状态;或者,
第一设备在第一队列缓存的占用值和报文的大小之和小于等于第一队列缓存的第一上限值时,将报文存储到第一队列缓存中。拥塞标识例如位于报文的因特网协议(Internet Protocol,IP)头中的显示拥塞通告(explicit congestion notification,ECN)字段。
本申请实施例中,基于第一设备对共享缓存进行的自适应层次化水线管理,第一设备可以将第一队列缓存的第一上限值作为确定是否添加拥塞标识的判断依据,能够避免低优先级缓存抢占过多共享缓存使得第一设备在报文输入到高优先级缓存和非拥塞缓存时仍会对报文进行拥塞标记的现象。
拥塞标识用于表明第一队列缓存当前的占用值已经达到第一队列缓存的第一上限值,第一队列缓存当前处于拥塞状态。当第一队列缓存的占用值和报文的大小之和等于第一队列缓存的第一上限值时,第一设备可以在报文中增加拥塞标识,并将增加拥塞标识后的报文存储到第一队列缓存中,也可以将报文存储到第一队列缓存中,本申请实施例对此不做限定。
进一步地,结合图1,当通信***中包括第三设备时,第一设备可将增加拥塞标识的报文发送给第三设备,第三设备在接收到增加拥塞标识的报文时,可以经由第一设备向第二设备发送包含拥塞标识的报文,拥塞标识例如位于报文的传输控制协议(Transmission Control Protocol,TCP)头中的ECN回响(ECN-Echo,ECE)字段。第二设备根据拥塞标识便可获知第一队列缓存处于拥塞状态,从而第二设备可以降低向第一设备发送报文的速率,实现了第一设备对报文的差异性标记,使得第一设备中高优先级层次缓存和非拥塞层次缓存输出的报文不会触发报文源端(如第二设备)的降速,避免了第一设备的无差别标记带来的降速问题。
在上述图2所示实施例的基础上,当第一设备对共享缓存进行层次化水线管理时,又一种S204的具体实现方式中,第一设备在第一队列缓存的占用值和报文的大小之和大于第一队列缓存的第一上限值时,将报文存储到第一队列缓存中,并向第二设备发送反压信号,反压信号用于指示第二设备停止发送报文或在发送大小总和为某一数值的至少一个报文后停止发送报文;或者,
第一设备在第一队列缓存的占用值和报文的大小之和小于等于第一队列缓存的第一上限值时,将报文存储到第一队列缓存中。
反压信号可以指示第二设备采用基于优先级的流量控制(Priority-based FlowControl)的机制停止发送报文。或者,反压信号可以包括一个数值,用于指示第二设备采用基于信用(credit)的流量控制(Credit-based Flow Control)的机制在向第一设备发送大小总和为该数值的至少一个报文后停止发送报文。
本申请实施例中,基于第一设备对共享缓存进行的自适应层次化水线管理,第一设备可以将第一队列缓存的第一上限值作为确定是否向第二发送设备发送反压信号的判断依据,实现了对报文的差异性反压指示,能够避免低优先级缓存和/或低层次缓存抢占过多共享缓存使得第一设备在报文输入到非拥塞缓存或高优先级缓存中时仍会向第二设备发送反压信号的现象。
反压信号用于向第二设备告知第一队列缓存当前的占用值已经超过第一队列缓存的第一上限值,第一队列缓存当前处于拥塞状态。当第一队列缓存的占用值和报文的大小之和等于第一队列缓存的第一上限值时,第一设备可以将报文存储到第一队列缓存中,并向第二设备发送反压信号,也可以将报文存储到第一队列缓存中,本申请实施例对此不做限定。
需要说明的是:第一设备可以将接收报文和处理报文的这两个过程放在不同的模块中进行。第一设备可以通过其端口模块接收第二设备发送的报文,且由第一设备中的AQM模块对报文进行处理。在第一设备中的AQM模块确定第一队列缓存的占用值和报文的大小之和大于第一队列缓存的第一上限值时,第一设备中的AQM模块可以向第一设备中的端口模块发送触发信号,第一设备中的端口模块便可根据触发信号产生反压信号,再向第二设备发送反压信号。
另外,第一设备还可以通过第一队列缓存的第一上限值与第一队列缓存的预设偏移值之差,来设定第一队列缓存的反压取消值。这样,在第一队列缓存的占用值和报文的大小之和小于等于第一队列缓存的反压取消值时,第一设备中的AQM模块可以向第一设备中的端口模块发送触发信号,从而,第一设备中的端口模块便可根据触发信号产生反压取消信号并发送给第二设备,从而指示第二设备恢复发送报文。
在图2所示实施例的基础上,第一设备可以对共享缓存进行层次化加权随机先期检测(weighted random early detection,WRED)管理。第一设备可以根据第一端口缓存的可用值和全局缓存的可用值确定第一队列缓存的第一上限值和第二上限值,第二上限值小于第一上限值,进而第一设备根据WRED算法、第一上限值和第二上限值选择对报文的处理方式。其中,第一设备也可以采用RED算法,具体实现过程与WRED算法类似,可参照WRED算法的具体实现过程,此处不做赘述。
下面,结合图4,对报文处理方式的具体实现过程进行详细说明。图4为本申请一实施例提供的报文处理方法的流程示意图。如图4所示,本申请实施例的报文处理方法可以包括:
S401、第一设备从第二设备接收报文。
S402、第一设备确定用于存储报文的第一队列缓存。
其中,S401-S402的具体实现过程可参见图2所示实施例中的S201-S202的相关描述,此处不再赘述。
S403、第一设备根据第一端口缓存的可用值和全局缓存的可用值,确定第一队列缓存的第一上限值,全局缓存包括至少一个端口缓存,第一端口缓存是至少一个端口缓存中的一个,第一端口缓存包括至少一个队列缓存,第一队列缓存是至少一个队列缓存中的一个。
S404、第一设备根据第一端口缓存的可用值和全局缓存的可用值,确定第一队列缓存的第二上限值,第一上限值大于第二上限值。
本申请实施例中,当第一设备对共享缓存进行层次化WRED管理时,计算用于WRED算法的两个门限,即WRED最大值和WRED最小值。第一设备可以根据第一端口缓存的可用值和全局缓存的可用值,分别确定第一队列缓存的第一上限值和第一队列缓存的第二上限值,再将第一队列缓存的第一上限值作为WRED最大值,将第一队列缓存的第二上限值作为WRED最小值。
具体地,如在前实施例所述,第一设备可以通过公式一、公式二、公式三以及公式四计算出第一上限值,本实施例用以上计算第一上限值的方式得到第一队列缓存的最大可用值。第一设备可以通过公式五,根据第四系数、第一队列缓存的最大可用值以及第一队列缓存的预设下限值,得到层次化WRED管理中的第一队列缓存的第一上限值。第一设备可以通过公式六,根据第五系数、第一队列缓存的最大可用值以及第一队列缓存的预设下限值,得到层次化WRED管理中的第一队列缓存的第二上限值。
MIN_THi,j=max(MIN_RATIO*QueueLimiti,j,QueueMini,j) 公式五;
其中,MIN_THi,j为层次化WRED管理中的全局缓存中第i个端口缓存中的第j个队列缓存的第二上限值,第四系数MIN_RATIO例如取10%,QueueLimiti,j为层次化水线管理中的全局缓存中第i个端口缓存中的第j个队列缓存的的第二上限值,QueueMini,j为层次化水线管理中的全局缓存中第i个端口缓存中的第j个队列缓存的预设下限值。
MAX_THi,j=max(MAX_RATIO*QueueLimiti,j,QueueMini,j) 公式六;
其中,MAX_THi,j为层次化WRED管理中的全局缓存中第i个端口缓存中的第j个队列缓存的第一上限值,第五系数MAX_RATIO大于MIN_THi,j,例如取50%、70%或100%。
S405、第一设备根据第一队列缓存的第一上限值、第一队列缓存的第二上限值、第一队列缓存的占用值以及报文的大小,对报文进行处理。
通过S404得到的第一队列缓存的第一上限值和第二上限值充分考虑第一端口缓存和全局缓存的当前使用情况对其影响,因此,第一设备可以根据第一队缓存的第一上限值、第一队列缓存的第二上限值、第一队列缓存的占用值以及报文的大小,确定处理报文的具体方式,而不用再去考虑全局缓存和第一端口缓存的丢弃概率。第一队列缓存的第一上限值和第一队列缓存的第二上限值会随着第一端口缓存的可用值和全局缓存的可用值的变化而发生动态改变,因此,第一设备仅会更多地将输入到高占用值的队列缓存中的报文丢弃,而更少地将输入到低占用值的队列缓存中的报文丢弃,能够避免低优先级缓存抢占过多共享缓存使得输入到高优先级层次以及非拥塞层次缓存中的报文被无差别丢弃,实现了对报文的差异性丢弃。
在上述图4所示实施例的基础上,当第一设备对共享缓存进行层次化WRED管理时,一种S405的具体实现方式中,第一设备在第一队列缓存的占用值和报文的大小之和大于第一队列缓存的第一上限值时,将报文丢弃;或者,
第一设备在第一队列缓存的占用值和报文的大小之和小于第一队列缓存的第二上限值时,将报文存储到第一队列缓存中;或者,
第一设备在第一队列缓存的占用值和报文的大小之和大于第一队列缓存的第二上限值且小于第一队列缓存的第一上限值时,按照一概率值选择将报文丢弃或将报文存储到第一队列缓存中。例如概率值为70%,如果第一设备处理1000次报文,则约有700次选择丢弃操作,将报文丢弃,以及约有300次选择存储操作,将报文存储到第一队列缓存中。
第一设备基于WRED算法,根据第一队列缓存的第一上限值、第一队列缓存的第二上限值、第一队列缓存的占用值和报文的大小之和可以计算得到该概率值。该概率值位于第一上限值和第二上限值之间时,该第一队列缓存的占用值和报文的大小之和越接近第一上限值,该概率值越大,则报文被丢弃的概率越大,也就是说报文被存储的概率越小。该概率值位于第一上限值和第二上限值之间时,该第一队列缓存的占用值和报文的大小之和越接近第二上限值,该概率值越小,则报文被存储的概率越大,也就是说报文被丢弃的概率越小。
在上述图4所示实施例的基础上,另一种S405的具体实现方式中,第一设备在第一队列缓存的占用值和报文的大小之和大于第一队列缓存的第一上限值时,在报文中增加拥塞标识,并将增加拥塞标识后的报文存储到第一队列缓存中,拥塞标识用于指示第一队列缓存处于拥塞状态;或者,
第一设备在第一队列缓存的占用值和报文的大小之和小于第一队列缓存的第二上限值时,将报文存储到第一队列缓存中;或者,
第一设备在第一队列缓存的占用值和报文的大小之和大于第一队列缓存的第二上限值且小于第一队列缓存的第一上限值时,按照一概率值选择将报文存储到第一队列缓存中或在报文中增加拥塞标识且将增加拥塞标识后的报文存储到第一队列缓存中。例如概率值为70%,如果第一设备处理1000次报文,则约有700次选择将增加拥塞标识的报文存储到第一队列缓存中的操作,以及约有300次选择直接将未增加拥塞标识的报文存储到第一队列缓存中。概率值的计算可以参考前述S1005的上一个具体实现方式。该概率值位于第一上限值和第二上限值之间时,该第一队列缓存的占用值和报文的大小之和越接近第一上限值,该概率值越大,则报文增加拥塞标识的概率越大,该第一队列缓存的占用值和报文的大小之和越接近第二上限值,该概率值越小,则报文增加拥塞标识的概率越小。
进一步地,参考前述第一设备将增加拥塞标识的报文发送给第三设备的描述内容,后续第二设备可以降低向第一设备发送报文的速率,实现了第一设备对报文的差异性标记。
示例性的,本申请实施例还提供一种通信设备,图5为本申请一实施例提供的通信设备的结构示意图,如图5所示,该通信设备500可以为具有处理报文功能的任意物理设备或虚拟设备,如交换机、路由器等,用于实现上述任一方法实施例中对应于第一设备的操作,本申请实施例通信设备500可以包括:接口单元501、处理单元502和存储器503。处理单元502可以为集成电路、现场可编程门阵列(field-programmable gate array,FPGA)或芯片等,例如,AQM模块。处理单元502和存储器503可以包括在交换电路中,该交换电路例如是SWB芯片或TM芯片等。接口单元501例如是端口模块,可以通过光端口、电端口或其组合与其他设备进行通信。存储器503可以是易失性存储器,例如RAM,也可以是非易失性存储器,例如ROM。
其中,所述接口单元501,用于从另一通信设备接收报文。
所述处理单元502,用于确定用于存储所述报文的第一队列缓存。
所述处理单元502,还用于根据第一端口缓存的可用值和全局缓存的可用值,确定所述第一队列缓存的第一上限值。
所述存储器503包括全局缓存,所述全局缓存包括至少一个端口缓存,所述第一端口缓存是所述至少一个端口缓存中的一个,所述第一端口缓存包括至少一个队列缓存,所述第一队列缓存是所述至少一个队列缓存中的一个。本申请实施例所述的共享缓存可以包括于存储器503中。
所述处理单元502,还用于根据所述第一队列缓存的第一上限值、所述第一队列缓存的占用值以及所述报文的大小,对所述报文进行处理。
在一些实施例中,所述处理单元502,用于根据端口共享上限值和全局共享上限值,确定所述第一队列缓存的第一上限值,所述端口共享上限值等于所述第一端口缓存的可用值与第一系数的乘积,所述全局共享上限值等于所述全局缓存的可用值与第二系数的乘积。
在一些实施例中,所述处理单元502,用于根据所述端口共享上限值、所述全局共享上限值和所述第一队列缓存的预设下限值,确定所述第一队列缓存的第一上限值。
在一些实施例中,所述处理单元502,具体用于根据所述全局缓存的上限值以及所述全局缓存的占用值,确定所述全局缓存的可用值;根据第三系数以及所述全局缓存的可用值,确定所述第一端口缓存的上限值;根据所述第一端口缓存的上限值和所述第一端口缓存的占用值,确定所述第一端口缓存的可用值。
在一些实施例中,所述处理单元502,具体用于在所述第一队列缓存的占用值和所述报文的大小之和大于所述第一队列缓存的第一上限值时,将所述报文丢弃;或者,在所述第一队列缓存的占用值和所述报文的大小之和小于等于所述第一队列缓存的第一上限值时,将所述报文存储到所述第一队列缓存中。
在一些实施例中,所述处理单元502,具体用于在所述第一队列缓存的占用值和所述报文的大小之和大于所述第一队列缓存的第一上限值时,在所述报文中增加拥塞标识,并将增加拥塞标识后的报文存储到所述第一队列缓存中,所述拥塞标识用于指示所述第一队列缓存处于拥塞状态;或者,在所述第一队列缓存的占用值和所述报文的大小之和小于等于所述第一队列缓存的第一上限值时,将所述报文存储到所述第一队列缓存中。
在一些实施例中,所述处理单元502,具体用于在所述第一队列缓存的占用值和所述报文的大小之和大于所述第一队列缓存的第一上限值时,将所述报文存储到所述第一队列缓存中,并向所述接口单元发送指示信号;或者,在所述第一队列缓存的占用值和所述报文的大小之和小于等于所述第一队列缓存的第一上限值时,将所述报文存储到所述第一队列缓存中。
在一些实施例中,所述接口单元502,还用于在接收到所述指示信号时,向所述另一通信设备发送反压信号,所述反压信号用于指示所述另一通信设备停止发送报文或在发送大小总和为某一数值的至少一个报文后停止发送报文。
在一些实施例中,所述处理单元502,还用于根据第一端口缓存的可用值和所述全局缓存的可用值,确定所述第一队列缓存的第二上限值,所述第一上限值大于所述第二上限值;
所述处理单元502,具体用于在所述第一队列缓存的占用值和所述报文的大小之和大于所述第一队列缓存的第一上限值时,将所述报文丢弃;或者,在所述第一队列缓存的占用值和所述报文的大小之和小于所述第一队列缓存的第二上限值时,将所述报文存储到所述第一队列缓存中;或者,在所述第一队列缓存的占用值和所述报文的大小之和大于所述第一队列缓存的第二上限值且小于所述第一队列缓存的第一上限值时,按照一概率值选择将所述报文丢弃或将所述报文存储到所述第一队列缓存中。
在一些实施例中,所述处理单元502,还用于根据第一端口缓存的可用值和所述全局缓存的可用值,确定所述第一队列缓存的第二上限值,所述第一上限值大于所述第二上限值;
所述处理单元502,具体用于在所述第一队列缓存的占用值和所述报文的大小之和大于所述第一队列缓存的第一上限值时,在所述报文中增加拥塞标识,并将增加拥塞标识后的报文存储到所述第一队列缓存中,所述拥塞标识用于指示所述第一队列缓存处于拥塞状态;或者,在所述第一队列缓存的占用值和所述报文的大小之和小于所述第一队列缓存的第二上限值时,将所述报文存储到所述第一队列缓存中;或者,在所述第一队列缓存的占用值和所述报文的大小之和大于所述第一队列缓存的第二上限值且小于所述第一队列缓存的第一上限值时,按照一概率值选择将所述报文存储到所述第一队列缓存中或在所述报文中增加所述拥塞标识且将增加拥塞标识后的报文存储到所述第一队列缓存中。
本申请实施例的通信设备,可以用于执行上述各方法实施例中第一设备的技术方案,其实现原理和技术效果类似,此处不再赘述。
示例性的,本申请实施例还提供一种交换电路,图6为本申请一实施例提供的交换电路的结构示意图,如图6所示,该交换电路600为具有存储功能和报文处理功能的集成电路或芯片等,例如SWB芯片或TM芯片等交换芯片,用于实现上述任一方法实施例中对应于第一设备的操作,交换电路600可以是图5所示实施例的通信设备中的交换电路。交换电路600包括处理单元601和存储器602。
其中,所述处理单元601,用于从另一设备接收报文。
所述处理单元601,还用于确定用于存储所述报文的第一队列缓存。
所述处理单元601,还用于根据第一端口缓存的可用值和全局缓存的可用值,确定所述第一队列缓存的第一上限值。
所述存储器602包括:所述全局缓存,所述全局缓存包括至少一个端口缓存,所述第一端口缓存是所述至少一个端口缓存中的一个,所述第一端口缓存包括至少一个队列缓存,所述第一队列缓存是所述至少一个队列缓存中的一个。
所述处理单元601,还用于根据所述第一队列缓存的第一上限值、所述第一队列缓存的占用值以及所述报文的大小,对所述报文进行处理。
在一些实施例中,所述处理单元601,用于根据端口共享上限值和全局共享上限值,确定所述第一队列缓存的第一上限值,所述端口共享上限值等于所述第一端口缓存的可用值与第一系数的乘积,所述全局共享上限值等于所述全局缓存的可用值与第二系数的乘积。
在一些实施例中,所述处理单元601,用于根据所述端口共享上限值、所述全局共享上限值和所述第一队列缓存的预设下限值,确定所述第一队列缓存的第一上限值。
在一些实施例中,所述处理单元601,用于根据所述全局缓存的上限值以及所述全局缓存的占用值,确定所述全局缓存的可用值;根据第三系数以及所述全局缓存的可用值,确定所述第一端口缓存的上限值;根据所述第一端口缓存的上限值和所述第一端口缓存的占用值,确定所述第一端口缓存的可用值。
在一些实施例中,所述处理单元601,具体用于在所述第一队列缓存的占用值和所述报文的大小之和大于所述第一队列缓存的第一上限值时,将所述报文丢弃;或者,在所述第一队列缓存的占用值和所述报文的大小之和小于等于所述第一队列缓存的第一上限值时,将所述报文存储到所述第一队列缓存中。
在一些实施例中,所述处理单元601,具体用于在所述第一队列缓存的占用值和所述报文的大小之和大于所述第一队列缓存的第一上限值时,在所述报文中增加拥塞标识,并将增加拥塞标识后的报文存储到所述第一队列缓存中,所述拥塞标识用于指示所述第一队列缓存处于拥塞状态;或者,在所述第一队列缓存的占用值和所述报文的大小之和小于等于所述第一队列缓存的第一上限值时,将所述报文存储到所述第一队列缓存中。
在一些实施例中,所述处理单元601,具体用于在所述第一队列缓存的占用值和所述报文的大小之和大于所述第一队列缓存的第一上限值时,将所述报文存储到所述第一队列缓存中,并发送指示信号,所述指示信号用于指示所述第一队列缓存处于拥塞状态;或者,在所述第一队列缓存的占用值和所述报文的大小之和小于等于所述第一队列缓存的第一上限值时,将所述报文存储到所述第一队列缓存中。该指示信号可以被发往接口单元,例如图5所示的接口单元501,用于触发接口单元向上一跳即该另一设备发送反压信号。
在一些实施例中,所述处理单元601,还用于根据第一端口缓存的可用值和所述全局缓存的可用值,确定所述第一队列缓存的第二上限值,所述第一上限值大于所述第二上限值;
所述处理单元601,具体用于在所述第一队列缓存的占用值和所述报文的大小之和大于所述第一队列缓存的第一上限值时,将所述报文丢弃;或者,在所述第一队列缓存的占用值和所述报文的大小之和小于所述第一队列缓存的第二上限值时,将所述报文存储到所述第一队列缓存中;或者,在所述第一队列缓存的占用值和所述报文的大小之和大于所述第一队列缓存的第二上限值且小于所述第一队列缓存的第一上限值时,按照一概率值选择将所述报文丢弃或将所述报文存储到所述第一队列缓存中。
在一些实施例中,所述处理单元601,还用于根据第一端口缓存的可用值和所述全局缓存的可用值,确定所述第一队列缓存的第二上限值,所述第一上限值大于所述第二上限值;
所述处理单元601,具体用于在所述第一队列缓存的占用值和所述报文的大小之和大于所述第一队列缓存的第一上限值时,在所述报文中增加拥塞标识,并将增加拥塞标识后的报文存储到所述第一队列缓存中,所述拥塞标识用于指示所述第一队列缓存处于拥塞状态;或者,在所述第一队列缓存的占用值和所述报文的大小之和小于所述第一队列缓存的第二上限值时,将所述报文存储到所述第一队列缓存中;或者,在所述第一队列缓存的占用值和所述报文的大小之和大于所述第一队列缓存的第二上限值且小于所述第一队列缓存的第一上限值时,按照一概率值选择将所述报文存储到所述第一队列缓存中或在所述报文中增加所述拥塞标识且将增加拥塞标识后的报文存储到所述第一队列缓存中。
本申请实施例的交换电路,可以用于执行上述各方法实施例中第一设备的技术方案,其实现原理和技术效果类似,此处不再赘述。
示例性的,本申请实施例还提供一种第一设备,图7为本申请一实施例提供的第一设备的结构示意图,如图7所示,该第一设备700可以为具有处理报文功能的任意物理设备或虚拟设备,如交换机、路由器等,用于实现上述任一方法实施例中对应于第一设备的操作,本申请实施例第一设备700可以包括:
接收模块701,用于从第二设备接收报文;
确定模块702,用于确定用于存储所述报文的第一队列缓存;
所述确定模块702,用于根据第一端口缓存的可用值和全局缓存的可用值,确定所述第一队列缓存的第一上限值,所述全局缓存包括至少一个端口缓存,所述第一端口缓存是所述至少一个端口缓存中的一个,所述第一端口缓存包括至少一个队列缓存,所述第一队列缓存是所述至少一个队列缓存中的一个;
处理模块703,用于根据所述第一队列缓存的第一上限值、所述第一队列缓存的占用值以及所述报文的大小,对所述报文进行处理。
在一些实施例中,所述确定模块702,具体用于根据端口共享上限值和全局共享上限值,确定所述第一队列缓存的第一上限值,所述端口共享上限值等于所述第一端口缓存的可用值与第一系数的乘积,所述全局共享上限值等于所述全局缓存的可用值与第二系数的乘积。
在一些实施例中,所述确定模块702,具体用于根据所述端口共享上限值、所述全局共享上限值和所述第一队列缓存的预设下限值,确定所述第一队列缓存的第一上限值。
在一些实施例中,所述确定模块702,具体用于根据所述全局缓存的上限值以及所述全局缓存的占用值,确定所述全局缓存的可用值;根据第三系数以及所述全局缓存的可用值,确定所述第一端口缓存的上限值;根据所述第一端口缓存的上限值和所述第一端口缓存的占用值,确定所述第一端口缓存的可用值。
在一些实施例中,所述处理模块703,具体用于在所述第一队列缓存的占用值和所述报文的大小之和大于所述第一队列缓存的第一上限值时,将所述报文丢弃;或者,在所述第一队列缓存的占用值和所述报文的大小之和小于等于所述第一队列缓存的第一上限值时,将所述报文存储到所述第一队列缓存中。
在一些实施例中,所述处理模块703,具体用于在所述第一队列缓存的占用值和所述报文的大小之和大于所述第一队列缓存的第一上限值时,在所述报文中增加拥塞标识,并将增加拥塞标识后的报文存储到所述第一队列缓存中,所述拥塞标识用于指示所述第一队列缓存处于拥塞状态;或者,在所述第一队列缓存的占用值和所述报文的大小之和小于等于所述第一队列缓存的第一上限值时,将所述报文存储到所述第一队列缓存中。
在一些实施例中,所述处理模块703,具体用于在所述第一队列缓存的占用值和所述报文的大小之和大于所述第一队列缓存的第一上限值时,将所述报文存储到所述第一队列缓存中,并向所述第二设备发送反压信号,所述反压信号用于指示所述第二设备停止发送报文或在发送大小总和为某一数值的至少一个报文后停止发送报文;或者,在所述第一队列缓存的占用值和所述报文的大小之和小于等于所述第一队列缓存的第一上限值时,将所述报文存储到所述第一队列缓存中。
在一些实施例中,所述确定模块702,具体用于根据第一端口缓存的可用值和所述全局缓存的可用值,确定所述第一队列缓存的第二上限值,所述第一上限值大于所述第二上限值;
所述处理模块703,具体用于在所述第一队列缓存的占用值和所述报文的大小之和大于所述第一队列缓存的第一上限值时,将所述报文丢弃;或者,在所述第一队列缓存的占用值和所述报文的大小之和小于所述第一队列缓存的第二上限值时,将所述报文存储到所述第一队列缓存中;或者,在所述第一队列缓存的占用值和所述报文的大小之和大于所述第一队列缓存的第二上限值且小于所述第一队列缓存的第一上限值时,按照一概率值选择将所述报文丢弃或将所述报文存储到所述第一队列缓存中。
在一些实施例中,所述确定模块702,具体用于根据第一端口缓存的可用值和所述全局缓存的可用值,确定所述第一队列缓存的第二上限值,所述第一上限值大于所述第二上限值;
所述处理模块703,具体用于在所述第一队列缓存的占用值和所述报文的大小之和大于所述第一队列缓存的第一上限值时,在所述报文中增加拥塞标识,并将增加拥塞标识后的报文存储到所述第一队列缓存中,所述拥塞标识用于指示所述第一队列缓存处于拥塞状态;或者,在所述第一队列缓存的占用值和所述报文的大小之和小于所述第一队列缓存的第二上限值时,将所述报文存储到所述第一队列缓存中;或者,在所述第一队列缓存的占用值和所述报文的大小之和大于所述第一队列缓存的第二上限值且小于所述第一队列缓存的第一上限值时,按照一概率值选择将所述报文存储到所述第一队列缓存中或在所述报文中增加所述拥塞标识,且将增加拥塞标识后的报文存储到所述第一队列缓存中。
本申请实施例的第一设备,可以用于执行上述各方法实施例中的技术方案,其实现原理和技术效果类似,此处不再赘述。
图8为本申请一实施例提供的第一设备的硬件结构示意图,如图8所示,该第一设备800可以为具有处理报文功能的任意物理设备或虚拟设备,如交换机、路由器等,用于实现上述任一方法实施例中对应于第一设备的操作,本申请实施例的第一设备800可以包括:存储器801和处理器802。存储器801与处理器802可以通过总线803连接。
存储器801,用于存储程序代码;
处理器802,调用程序代码,当程序代码被执行时,用于执行上述任一实施例中的报文处理方法。具体可以参见前述方法实施例中的相关描述。
可选地,本申请实施例还包括通信接口804,该通信接口804可以通过总线803与处理器802连接。处理器802可以控制通信接口803来实现第一设备800的上述的接收和发送的功能。
本申请实施例的第一设备,可以用于执行上述各方法实施例中的技术方案,其实现原理和技术效果类似,此处不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请实施例方案的目的。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个单元中。上述模块成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能模块的形式实现的集成的模块,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本申请各个实施例所述方法的部分步骤。
应理解,上述处理器可以是中央处理单元(英文:Central Processing Unit,简称:CPU),还可以是其他通用处理器、数字信号处理器(英文:Digital Signal Processor,简称:DSP)、专用集成电路(英文:Application Specific Integrated Circuit,简称:ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合发明所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器可能包含高速RAM存储器,也可能还包括非易失性存储NVM,例如至少一个磁盘存储器,还可以为U盘、移动硬盘、只读存储器、磁盘或光盘等。
总线可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外部设备互连(Peripheral Component,PCI)总线或扩展工业标准体系结构(ExtendedIndustry Standard Architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,本申请附图中的总线并不限定仅有一根总线或一种类型的总线。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
Claims (27)
1.一种报文处理方法,其特征在于,包括:
第一设备从第二设备接收报文;
所述第一设备确定用于存储所述报文的第一队列缓存;
所述第一设备根据第一端口缓存的可用值和全局缓存的可用值,确定所述第一队列缓存的第一上限值,所述全局缓存包括至少一个端口缓存,所述第一端口缓存是所述至少一个端口缓存中的一个,所述第一端口缓存包括至少一个队列缓存,所述第一队列缓存是所述至少一个队列缓存中的一个;
所述第一设备根据所述第一队列缓存的第一上限值、所述第一队列缓存的占用值以及所述报文的大小,对所述报文进行处理。
2.根据权利要求1所述的方法,其特征在于,所述第一设备根据第一端口缓存的可用值和全局缓存的可用值,确定所述第一队列缓存的第一上限值,包括:
所述第一设备根据端口共享上限值和全局共享上限值,确定所述第一队列缓存的第一上限值,所述端口共享上限值等于所述第一端口缓存的可用值与第一系数的乘积,所述全局共享上限值等于所述全局缓存的可用值与第二系数的乘积。
3.根据权利要求2所述的方法,其特征在于,所述第一设备根据端口共享上限值和全局共享上限值,确定所述第一队列缓存的第一上限值,包括:
所述第一设备根据所述端口共享上限值、所述全局共享上限值和所述第一队列缓存的预设下限值,确定所述第一队列缓存的第一上限值。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述方法包括:
所述第一设备根据所述全局缓存的上限值以及所述全局缓存的占用值,确定所述全局缓存的可用值;
所述第一设备根据第三系数以及所述全局缓存的可用值,确定所述第一端口缓存的上限值;
所述第一设备根据所述第一端口缓存的上限值和所述第一端口缓存的占用值,确定所述第一端口缓存的可用值。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述第一设备根据所述第一队列缓存的第一上限值、所述第一队列缓存的占用值以及所述报文的大小,对所述报文进行处理,包括:
所述第一设备在所述第一队列缓存的占用值和所述报文的大小之和大于所述第一队列缓存的第一上限值时,将所述报文丢弃;或者,
所述第一设备在所述第一队列缓存的占用值和所述报文的大小之和小于等于所述第一队列缓存的第一上限值时,将所述报文存储到所述第一队列缓存中。
6.根据权利要求1至4任一项所述的方法,其特征在于,所述第一设备根据所述第一队列缓存的第一上限值、所述第一队列缓存的占用值以及所述报文的大小,对所述报文进行处理,包括:
所述第一设备在所述第一队列缓存的占用值和所述报文的大小之和大于所述第一队列缓存的第一上限值时,在所述报文中增加拥塞标识,并将增加所述拥塞标识后的报文存储到所述第一队列缓存中,所述拥塞标识用于指示所述第一队列缓存处于拥塞状态;或者,
所述第一设备在所述第一队列缓存的占用值和所述报文的大小之和小于等于所述第一队列缓存的第一上限值时,将所述报文存储到所述第一队列缓存中。
7.根据权利要求1至4任一项所述的方法,其特征在于,所述第一设备根据所述第一队列缓存的第一上限值、所述第一队列缓存的占用值以及所述报文的大小,对所述报文进行处理,包括:
所述第一设备在所述第一队列缓存的占用值和所述报文的大小之和大于所述第一队列缓存的第一上限值时,将所述报文存储到所述第一队列缓存中,并向所述第二设备发送反压信号,所述反压信号用于指示所述第二设备停止发送报文或在发送大小总和为某一数值的至少一个报文后停止发送报文;或者,
所述第一设备在所述第一队列缓存的占用值和所述报文的大小之和小于等于所述第一队列缓存的第一上限值时,将所述报文存储到所述第一队列缓存中。
8.根据权利要求1至4任一项所述的方法,其特征在于,所述方法还包括:
所述第一设备根据第一端口缓存的可用值和所述全局缓存的可用值,确定所述第一队列缓存的第二上限值,所述第一上限值大于所述第二上限值;
所述第一设备根据所述第一队列缓存的第一上限值、所述第一队列缓存的占用值以及所述报文的大小,对所述报文进行处理,包括:
所述第一设备在所述第一队列缓存的占用值和所述报文的大小之和大于所述第一队列缓存的第一上限值时,将所述报文丢弃;或者,
所述第一设备在所述第一队列缓存的占用值和所述报文的大小之和小于所述第一队列缓存的第二上限值时,将所述报文存储到所述第一队列缓存中;或者,
所述第一设备在所述第一队列缓存的占用值和所述报文的大小之和大于所述第一队列缓存的第二上限值且小于所述第一队列缓存的第一上限值时,按照一概率值选择将所述报文丢弃或将所述报文存储到所述第一队列缓存中。
9.根据权利要求1至4任一项所述的方法,其特征在于,所述方法还包括:
所述第一设备根据第一端口缓存的可用值和所述全局缓存的可用值,确定所述第一队列缓存的第二上限值,所述第一上限值大于所述第二上限值;
所述第一设备根据所述第一队列缓存的第一上限值、所述第一队列缓存的占用值以及所述报文的大小,对所述报文进行处理,包括:
所述第一设备在所述第一队列缓存的占用值和所述报文的大小之和大于所述第一队列缓存的第一上限值时,在所述报文中增加拥塞标识,并将增加所述拥塞标识后的报文存储到所述第一队列缓存中,所述拥塞标识用于指示所述第一队列缓存处于拥塞状态;或者,
所述第一设备在所述第一队列缓存的占用值和所述报文的大小之和小于所述第一队列缓存的第二上限值时,将所述报文存储到所述第一队列缓存中;或者,
所述第一设备在所述第一队列缓存的占用值和所述报文的大小之和大于所述第一队列缓存的第二上限值且小于所述第一队列缓存的第一上限值时,按照一概率值选择将所述报文存储到所述第一队列缓存中或在所述报文中增加所述拥塞标识且将增加所述拥塞标识后的报文存储到所述第一队列缓存中。
10.一种通信设备,其特征在于,包括:接口单元、处理单元和存储器;
其中,所述接口单元,用于从另一通信设备接收报文;
所述处理单元,用于确定用于存储所述报文的第一队列缓存;
所述处理单元,还用于根据第一端口缓存的可用值和全局缓存的可用值,确定所述第一队列缓存的第一上限值;
所述存储器包括:全局缓存,所述全局缓存包括至少一个端口缓存,所述第一端口缓存是所述至少一个端口缓存中的一个,所述第一端口缓存包括至少一个队列缓存,所述第一队列缓存是所述至少一个队列缓存中的一个;
所述处理单元,还用于根据所述第一队列缓存的第一上限值、所述第一队列缓存的占用值以及所述报文的大小,对所述报文进行处理。
11.根据权利要求10所述的通信设备,其特征在于,所述处理单元,用于根据端口共享上限值和全局共享上限值,确定所述第一队列缓存的第一上限值,所述端口共享上限值等于所述第一端口缓存的可用值与第一系数的乘积,所述全局共享上限值等于所述全局缓存的可用值与第二系数的乘积。
12.根据权利要求11所述的通信设备,其特征在于,所述处理单元,用于根据所述端口共享上限值、所述全局共享上限值和所述第一队列缓存的预设下限值,确定所述第一队列缓存的第一上限值。
13.根据权利要求10-12任一项所述的通信设备,其特征在于,所述处理单元,具体用于根据所述全局缓存的上限值以及所述全局缓存的占用值,确定所述全局缓存的可用值;根据第三系数以及所述全局缓存的可用值,确定所述第一端口缓存的上限值;根据所述第一端口缓存的上限值和所述第一端口缓存的占用值,确定所述第一端口缓存的可用值。
14.根据权利要求10-13任一项所述的通信设备,其特征在于,所述处理单元,具体用于在所述第一队列缓存的占用值和所述报文的大小之和大于所述第一队列缓存的第一上限值时,将所述报文丢弃;或者,在所述第一队列缓存的占用值和所述报文的大小之和小于等于所述第一队列缓存的第一上限值时,将所述报文存储到所述第一队列缓存中。
15.根据权利要求10-13任一项所述的通信设备,其特征在于,所述处理单元,具体用于在所述第一队列缓存的占用值和所述报文的大小之和大于所述第一队列缓存的第一上限值时,在所述报文中增加拥塞标识,并将增加所述拥塞标识后的报文存储到所述第一队列缓存中,所述拥塞标识用于指示所述第一队列缓存处于拥塞状态;或者,在所述第一队列缓存的占用值和所述报文的大小之和小于等于所述第一队列缓存的第一上限值时,将所述报文存储到所述第一队列缓存中。
16.根据权利要求10-13任一项所述的通信设备,其特征在于,所述处理单元,具体用于在所述第一队列缓存的占用值和所述报文的大小之和大于所述第一队列缓存的第一上限值时,将所述报文存储到所述第一队列缓存中,并向所述接口单元发送指示信号;或者,在所述第一队列缓存的占用值和所述报文的大小之和小于等于所述第一队列缓存的第一上限值时,将所述报文存储到所述第一队列缓存中。
17.根据权利要求16所述的通信设备,其特征在于,所述接口单元,还用于在接收到所述指示信号时,向所述另一通信设备发送反压信号,所述反压信号用于指示所述另一通信设备停止发送报文或在发送大小总和为某一数值的至少一个报文后停止发送报文。
18.根据权利要求10-13任一项所述的通信设备,其特征在于,所述处理单元,还用于根据第一端口缓存的可用值和所述全局缓存的可用值,确定所述第一队列缓存的第二上限值,所述第一上限值大于所述第二上限值;
所述处理单元,具体用于在所述第一队列缓存的占用值和所述报文的大小之和大于所述第一队列缓存的第一上限值时,将所述报文丢弃;或者,在所述第一队列缓存的占用值和所述报文的大小之和小于所述第一队列缓存的第二上限值时,将所述报文存储到所述第一队列缓存中;或者,在所述第一队列缓存的占用值和所述报文的大小之和大于所述第一队列缓存的第二上限值且小于所述第一队列缓存的第一上限值时,按照一概率值选择将所述报文丢弃或将所述报文存储到所述第一队列缓存中。
19.根据权利要求10-13任一项所述的通信设备,其特征在于,所述处理单元,还用于根据第一端口缓存的可用值和所述全局缓存的可用值,确定所述第一队列缓存的第二上限值,所述第一上限值大于所述第二上限值;
所述处理单元,具体用于在所述第一队列缓存的占用值和所述报文的大小之和大于所述第一队列缓存的第一上限值时,在所述报文中增加拥塞标识,并将增加所述拥塞标识后的报文存储到所述第一队列缓存中,所述拥塞标识用于指示所述第一队列缓存处于拥塞状态;或者,在所述第一队列缓存的占用值和所述报文的大小之和小于所述第一队列缓存的第二上限值时,将所述报文存储到所述第一队列缓存中;或者,在所述第一队列缓存的占用值和所述报文的大小之和大于所述第一队列缓存的第二上限值且小于所述第一队列缓存的第一上限值时,按照一概率值选择将所述报文存储到所述第一队列缓存中或在所述报文中增加所述拥塞标识且将增加所述拥塞标识后的报文存储到所述第一队列缓存中。
20.一种交换电路,其特征在于,包括:处理单元和存储器;
其中,所述处理单元,用于从另一设备接收报文;
所述处理单元,还用于确定用于存储所述报文的第一队列缓存;
所述处理单元,还用于根据第一端口缓存的可用值和全局缓存的可用值,确定所述第一队列缓存的第一上限值;
所述存储器包括:所述全局缓存,所述全局缓存包括至少一个端口缓存,所述第一端口缓存是所述至少一个端口缓存中的一个,所述第一端口缓存包括至少一个队列缓存,所述第一队列缓存是所述至少一个队列缓存中的一个;
所述处理单元,还用于根据所述第一队列缓存的第一上限值、所述第一队列缓存的占用值以及所述报文的大小,对所述报文进行处理。
21.根据权利要求20所述的交换电路,其特征在于,所述处理单元,用于根据端口共享上限值和全局共享上限值,确定所述第一队列缓存的第一上限值,所述端口共享上限值等于所述第一端口缓存的可用值与第一系数的乘积,所述全局共享上限值等于所述全局缓存的可用值与第二系数的乘积。
22.根据权利要求21所述的交换电路,其特征在于,所述处理单元,用于根据所述端口共享上限值、所述全局共享上限值和所述第一队列缓存的预设下限值,确定所述第一队列缓存的第一上限值。
23.根据权利要求20-22任一项所述的交换电路,其特征在于,所述处理单元,用于根据所述全局缓存的上限值以及所述全局缓存的占用值,确定所述全局缓存的可用值;根据第三系数以及所述全局缓存的可用值,确定所述第一端口缓存的上限值;根据所述第一端口缓存的上限值和所述第一端口缓存的占用值,确定所述第一端口缓存的可用值。
24.根据权利要求20-22任一项所述的交换电路,其特征在于,所述处理单元,具体用于在所述第一队列缓存的占用值和所述报文的大小之和大于所述第一队列缓存的第一上限值时,将所述报文存储到所述第一队列缓存中,并发送指示信号,所述指示信号用于指示所述第一队列缓存处于拥塞状态;或者,在所述第一队列缓存的占用值和所述报文的大小之和小于等于所述第一队列缓存的第一上限值时,将所述报文存储到所述第一队列缓存中。
25.一种第一设备,其特征在于,包括:
接收模块,用于从第二设备接收报文;
确定模块,用于确定用于存储所述报文的第一队列缓存;
所述确定模块,用于根据第一端口缓存的可用值和全局缓存的可用值,确定所述第一队列缓存的第一上限值,所述全局缓存包括至少一个端口缓存,所述第一端口缓存是所述至少一个端口缓存中的一个,所述第一端口缓存包括至少一个队列缓存,所述第一队列缓存是所述至少一个队列缓存中的一个;
处理模块,用于根据所述第一队列缓存的第一上限值、所述第一队列缓存的占用值以及所述报文的大小,对所述报文进行处理。
26.一种可读存储介质,其特征在于,所述可读存储介质上存储有计算机程序;所述计算机程序在被执行时,实现如权利要求1-9任一项所述的报文处理方法。
27.一种第一设备,其特征在于,包括:存储器和处理器,存储器用于存储程序指令,处理器用于调用存储器中的程序指令执行如权利要求1-9任一项所述的报文处理方法。
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810912207.4A CN110830382A (zh) | 2018-08-10 | 2018-08-10 | 报文处理方法和装置、通信设备以及交换电路 |
PCT/CN2019/098050 WO2020029819A1 (zh) | 2018-08-10 | 2019-07-27 | 报文处理方法和装置、通信设备以及交换电路 |
EP19848570.8A EP3823228A4 (en) | 2018-08-10 | 2019-07-27 | MESSAGE PROCESSING METHOD AND DEVICE, COMMUNICATION DEVICE AND CIRCUIT |
US17/171,661 US11388114B2 (en) | 2018-08-10 | 2021-02-09 | Packet processing method and apparatus, communications device, and switching circuit |
US17/809,166 US11799803B2 (en) | 2018-08-10 | 2022-06-27 | Packet processing method and apparatus, communications device, and switching circuit |
US18/476,667 US20240022527A1 (en) | 2018-08-10 | 2023-09-28 | Packet processing method and apparatus, communications device, and switching circuit |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810912207.4A CN110830382A (zh) | 2018-08-10 | 2018-08-10 | 报文处理方法和装置、通信设备以及交换电路 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110830382A true CN110830382A (zh) | 2020-02-21 |
Family
ID=69414492
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810912207.4A Pending CN110830382A (zh) | 2018-08-10 | 2018-08-10 | 报文处理方法和装置、通信设备以及交换电路 |
Country Status (4)
Country | Link |
---|---|
US (3) | US11388114B2 (zh) |
EP (1) | EP3823228A4 (zh) |
CN (1) | CN110830382A (zh) |
WO (1) | WO2020029819A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111555974A (zh) * | 2020-03-19 | 2020-08-18 | 视联动力信息技术股份有限公司 | 一种数据包的处理方法、装置、终端设备和存储介质 |
CN113872872A (zh) * | 2021-09-29 | 2021-12-31 | 新华三信息安全技术有限公司 | 一种报文转发方法、装置及框式网络设备 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110830382A (zh) * | 2018-08-10 | 2020-02-21 | 华为技术有限公司 | 报文处理方法和装置、通信设备以及交换电路 |
GB2612619B (en) * | 2021-11-05 | 2024-02-21 | Graphcore Ltd | Fair arbitration between multiple sources targeting a destination |
US11876735B1 (en) * | 2023-04-21 | 2024-01-16 | Cisco Technology, Inc. | System and method to perform lossless data packet transmissions |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060092837A1 (en) * | 2004-10-29 | 2006-05-04 | Broadcom Corporation | Adaptive dynamic thresholding mechanism for link level flow control scheme |
US20070104102A1 (en) * | 2005-11-10 | 2007-05-10 | Broadcom Corporation | Buffer management and flow control mechanism including packet-based dynamic thresholding |
CN106789729A (zh) * | 2016-12-13 | 2017-05-31 | 华为技术有限公司 | 一种网络设备中的缓存管理方法及装置 |
CN107404443A (zh) * | 2017-08-03 | 2017-11-28 | 北京东土军悦科技有限公司 | 队列缓存资源控制方法及装置、服务器及存储介质 |
US20180063030A1 (en) * | 2016-08-29 | 2018-03-01 | Cisco Technology, Inc. | Queue protection using a shared global memory reserve |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7809009B2 (en) * | 2006-02-21 | 2010-10-05 | Cisco Technology, Inc. | Pipelined packet switching and queuing architecture |
US9201804B1 (en) * | 2012-02-06 | 2015-12-01 | Google Inc. | Dynamically adapting the configuration of a multi-queue cache based on access patterns |
CN106470126A (zh) * | 2015-08-14 | 2017-03-01 | 中兴通讯股份有限公司 | 端口队列堵塞的监控方法及*** |
CN110830382A (zh) * | 2018-08-10 | 2020-02-21 | 华为技术有限公司 | 报文处理方法和装置、通信设备以及交换电路 |
-
2018
- 2018-08-10 CN CN201810912207.4A patent/CN110830382A/zh active Pending
-
2019
- 2019-07-27 EP EP19848570.8A patent/EP3823228A4/en active Pending
- 2019-07-27 WO PCT/CN2019/098050 patent/WO2020029819A1/zh unknown
-
2021
- 2021-02-09 US US17/171,661 patent/US11388114B2/en active Active
-
2022
- 2022-06-27 US US17/809,166 patent/US11799803B2/en active Active
-
2023
- 2023-09-28 US US18/476,667 patent/US20240022527A1/en active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060092837A1 (en) * | 2004-10-29 | 2006-05-04 | Broadcom Corporation | Adaptive dynamic thresholding mechanism for link level flow control scheme |
US20070104102A1 (en) * | 2005-11-10 | 2007-05-10 | Broadcom Corporation | Buffer management and flow control mechanism including packet-based dynamic thresholding |
US20180063030A1 (en) * | 2016-08-29 | 2018-03-01 | Cisco Technology, Inc. | Queue protection using a shared global memory reserve |
CN106789729A (zh) * | 2016-12-13 | 2017-05-31 | 华为技术有限公司 | 一种网络设备中的缓存管理方法及装置 |
CN107404443A (zh) * | 2017-08-03 | 2017-11-28 | 北京东土军悦科技有限公司 | 队列缓存资源控制方法及装置、服务器及存储介质 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111555974A (zh) * | 2020-03-19 | 2020-08-18 | 视联动力信息技术股份有限公司 | 一种数据包的处理方法、装置、终端设备和存储介质 |
CN113872872A (zh) * | 2021-09-29 | 2021-12-31 | 新华三信息安全技术有限公司 | 一种报文转发方法、装置及框式网络设备 |
CN113872872B (zh) * | 2021-09-29 | 2023-11-24 | 新华三信息安全技术有限公司 | 一种报文转发方法、装置及框式网络设备 |
Also Published As
Publication number | Publication date |
---|---|
US20240022527A1 (en) | 2024-01-18 |
WO2020029819A1 (zh) | 2020-02-13 |
EP3823228A1 (en) | 2021-05-19 |
US20210168095A1 (en) | 2021-06-03 |
EP3823228A4 (en) | 2021-09-15 |
US11799803B2 (en) | 2023-10-24 |
US11388114B2 (en) | 2022-07-12 |
US20220329544A1 (en) | 2022-10-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110830382A (zh) | 报文处理方法和装置、通信设备以及交换电路 | |
US8520522B1 (en) | Transmit-buffer management for priority-based flow control | |
US7609636B1 (en) | System and method for infiniband receive flow control with combined buffering of virtual lanes and queue pairs | |
US7620693B1 (en) | System and method for tracking infiniband RDMA read responses | |
US6643256B1 (en) | Packet switch and packet switching method using priority control based on congestion status within packet switch | |
US8411574B2 (en) | Starvation free flow control in a shared memory switching device | |
US7327749B1 (en) | Combined buffering of infiniband virtual lanes and queue pairs | |
US7742412B1 (en) | Method and apparatus for preventing head of line blocking in an ethernet system | |
KR100875739B1 (ko) | Ip 네트워크 시스템에서의 패킷 버퍼 관리 장치 및 방법 | |
WO2020134425A1 (zh) | 一种数据处理方法、装置、设备及存储介质 | |
EP4175232A1 (en) | Congestion control method and device | |
US8018851B1 (en) | Flow control for multiport PHY | |
US20170171099A1 (en) | Congestion estimation for multi-priority traffic | |
US7486689B1 (en) | System and method for mapping InfiniBand communications to an external port, with combined buffering of virtual lanes and queue pairs | |
CN113612696A (zh) | 多主机网络适配器中的拥塞控制度量 | |
WO2021143913A1 (zh) | 拥塞控制方法、装置及***、存储介质 | |
US7391785B2 (en) | Method for active queue management with asymmetric congestion control | |
US7266612B1 (en) | Network having overload control using deterministic early active drops | |
JP2008263430A (ja) | トラヒックシェーピング回路、端末装置及びネットワークノード | |
CN113765796B (zh) | 流量转发控制方法及装置 | |
WO2021209016A1 (zh) | 网络设备中处理报文的方法和相关设备 | |
US7500012B2 (en) | Method for controlling dataflow to a central system from distributed systems | |
CN117118762B (zh) | 中央处理器收包处理方法、装置、电子设备和存储介质 | |
EP1079660A1 (en) | Buffer acceptance method | |
US20230283575A1 (en) | Allocation of Shared Reserve Memory to Queues in a Network Device |
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 |