CN112242956A - 流速控制方法和装置 - Google Patents
流速控制方法和装置 Download PDFInfo
- Publication number
- CN112242956A CN112242956A CN201910649933.6A CN201910649933A CN112242956A CN 112242956 A CN112242956 A CN 112242956A CN 201910649933 A CN201910649933 A CN 201910649933A CN 112242956 A CN112242956 A CN 112242956A
- Authority
- CN
- China
- Prior art keywords
- cnp
- data flow
- sending
- message
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 111
- 238000012545 processing Methods 0.000 claims abstract description 56
- 238000004590 computer program Methods 0.000 claims description 13
- 238000012544 monitoring process Methods 0.000 claims description 12
- 230000001133 acceleration Effects 0.000 abstract description 9
- 230000008569 process Effects 0.000 description 14
- 238000004891 communication Methods 0.000 description 7
- 230000009467 reduction Effects 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000006243 chemical reaction Methods 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
- 238000005516 engineering process Methods 0.000 description 3
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000011144 upstream manufacturing Methods 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011946 reduction process Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/11—Identifying congestion
-
- 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/11—Identifying congestion
- H04L47/115—Identifying congestion using a dedicated packet
-
- 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
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
-
- 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/25—Flow control; Congestion control with rate being modified by the source upon detecting a change of network conditions
-
- 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/26—Flow control; Congestion control using explicit feedback to the source, e.g. choke packets
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/38—Flow based routing
-
- 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/621—Individual queue per connection or flow, e.g. per VC
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供一种流速控制方法和装置。本申请流速控制方法,包括:接收来自第一设备的N个显式的拥塞通知包CNP报文,所述N个CNP报文和第一数据流相对应,N为自然数;根据所述N个CNP报文向第二设备发送M个CNP报文,所述M个CNP报文和所述第一数据流相对应,M为大于N的整数。本申请解决数据流发生拥塞时仍然被做速率升速处理的问题。
Description
技术领域
本申请涉及通信技术,尤其涉及一种流速控制方法和装置。
背景技术
远程直接数据存储(Remote Direct Memory Acess,RDMA)技术为了减少网络传输中服务器端数据处理的延迟,允许客户端的应用程序直接远程读取和写入服务器端的内存。RDMA技术中在端节点的网卡(Network Interface Cards,NICs)上通过已注册的缓存直接收发数据,网络协议全部部署在NICs上,不需要经过主机的网络协议栈,这种方式显著减少了主机中的中央处理器(Central Processing Unit,CPU)的占有率和整体时延。应用于聚合以太网的RDMA(RDMA over Converged Ethernet,RoCE)协议包括两个版本RoCEv1和RoCEv2,二者的主要区别是RoCEv1是基于以太网链路层实现的RDMA协议,RoCEv2是基于以太网中的传输控制协议/因特网互联协议(Transmission Control Protocol/InternetProtocol,TCP/IP)协议中的UDP层实现的RDMA协议。
在部署了满足高吞吐量、超低时延和低CPU开销需求的网络协议后,需要找到一个拥塞控制算法以使网络无丢包可靠传输,因此提出了数据中心量化拥塞通知(Data CenterQuantized Congestion Notification,DCQCN)。实现基于DCQCN的拥塞控制算法的通信系统包括反应点(Reaction Point,RP)、拥塞点(Congestion Point,CP)和通知点(Notification Point,NP),在CP上,如果其出端口队列的长度超出阈值,则CP在该出端口队列上新加入的报文中打上显式拥塞通知(Explicit Congestion Notification,ECN)标记。在NP上,当带ECN标记的报文(即拥塞发生(Congestion Encountered,CE)报文)到达NP时,表示网络拥塞,因此NP将该网络拥塞信息传递给RP。RoCEv2协议为此定义了显式的拥塞通知包(Congestion Notification Packet,CNP)报文,如果CE报文到达某个流,并且在过去的n微秒内NP没有为该流发送过CNP报文,则NP立即发送一个CNP报文。即如果在时间窗口(n微妙)内到达某个流的有多个CE报文,则NP每n微秒最多为该流生成一个CNP报文。在RP上,当RP收到一个CNP报文时,RP减小发送速率,并更新速率降低因子。RP还会在连续一段时间内未收到CNP报文时,按照一定的算法增加发送速率。
但是,上述过程中当流的规模较大时,每条流能分到的平均带宽较小,对于发生拥塞的流,可能存在各条流的报文时间间隔(即该流能获得CNP报文的最小时间间隔)大于速率升速的时间间隔,即使NP根据每个CE报文产生CNP,也无法让RP在速率升速的时间间隔处进行降速处理,这会导致处于拥塞状态的流被做速率升速处理,从而出现控速收敛失败的情况,影响报文传输效率。
发明内容
本申请提供一种流速控制方法和装置,以解决数据流发生拥塞时仍然被做速率升速处理的问题。
第一方面,本申请提供一种流速控制方法,包括:
接收来自第一设备的N个显式的拥塞通知包CNP报文,所述N个CNP报文和第一数据流相对应,N为自然数;根据所述N个CNP报文向第二设备发送M个CNP报文,所述M个CNP报文和所述第一数据流相对应,M为大于N的整数。
本申请网络设备接收来自第一设备的N个CNP报文,再向第二设备发送M个CNP报文,M大于N,可以确保第二设备能够每间隔周期的时长接收到一个对应于第一数据流的CNP报文,从而基于该CNP报文对第一数据流进行发送速率的降速处理,解决了第一数据流发生拥塞仍然被做速率升速处理的问题。
在一种可能的实现方式中,所述CNP报文用于指示所述第一数据流发生拥塞。
在一种可能的实现方式中,所述CNP报文包括第一目的地址、第一源地址和第一目的队列对标识,所述第一数据流中的报文包括第二目的地址、第二源地址和第二目的队列对标识,其中,所述第一目的地址和所述第二源地址相同,所述第一源地址和所述第二目的地址相同。
在一种可能的实现方式中,所述根据所述N个CNP报文向第二设备发送M个CNP报文,包括:按照设定的周期发送所述M个CNP报文。
本申请可以确保第二设备能够每间隔周期的时长接收到一个对应于第一数据流的CNP报文,从而基于该CNP报文对第一数据流进行发送速率的降速处理,解决了第一数据流发生拥塞仍然被做速率升速处理的问题。
在一种可能的实现方式中,所述根据所述N个CNP报文向第二设备发送M个CNP报文,包括:在当前周期内监测是否接收到来自所述第一设备的所述CNP报文;若没有接收到所述来自所述第一设备的所述CNP报文,则创建辅助CNP报文,并向所述第二设备发送所述辅助CNP报文。
本申请网络设备在接收到来自第一设备的N个CNP报文,直接向第二设备转发该CNP报文,如果在整个周期内都没有接收到来自第一设备的CNP报文,则创建一个CNP报文并发送给第二设备,可以确保第二设备能够每间隔周期的时长接收到一个对应于第一数据流的CNP报文,从而基于该CNP报文对第一数据流进行发送速率的降速处理,解决了第一数据流发生拥塞仍然被做速率升速处理的问题。
在一种可能的实现方式中,所述没有接收到所述来自所述第一设备的所述CNP报文是指所述第一数据流的流表表项中的所述CNP经过标记的值为第一值。
本申请网络设备可以基于流表表项中的特定标记,例如CNP经过标记,来确认是否接收到来自第一设备的CNP报文,提高处理效率。
在一种可能的实现方式中,还包括:在所述当前周期内监测是否接收到所述来自所述第一设备的所述CNP报文;若接收到所述来自所述第一设备的所述CNP报文,则将所述第一数据流的流表表项中的所述CNP经过标记的值设置为第二值,并在所述当前周期结束时将所述CNP经过标记的值设置为第一值。
在一种可能的实现方式中,所述接收来自第一设备的N个CNP报文之前,还包括:根据建链报文创建所述第一数据流的流表表项,所述第一数据流的流表表项包括所述第二目的地址、所述第二源地址、所述第二目的队列对标识、所述第一数据流的源队列对标识和所述CNP经过标记。
在一种可能的实现方式中,所述根据建链报文创建所述第一数据流的流表表项之后,还包括:根据删链报文删除所述第一数据流的流表表项。
在一种可能的实现方式中,所述根据所述N个CNP报文向第二设备发送M个CNP报文之前,还包括:当不存在所述第一数据流的流表表项时,若第一次接收到所述来自所述第一设备的所述CNP报文,则创建所述第一数据流的流表表项并启动表项超时定时器,所述第一数据流的流表表项包括所述第二目的地址、所述第二源地址、所述第一数据流的源队列对标识、所述CNP经过标记和所述第一数据流的流表表项的超时标识,所述超时标识用于表示所述表项超时定时器是否超时。
在一种可能的实现方式中,所述创建所述第一数据流的流表表项并启动表项超时定时器之后,还包括:当所述超时标识表示所述表项超时定时器超时时,若在所述表项超时定时器的计时周期内没有接收到所述来自所述第一设备的所述CNP报文,则删除所述第一数据流的流表表项。
在一种可能的实现方式中,所述根据所述N个CNP报文向第二设备发送M个CNP报文,包括:当第一队列进入拥塞状态后,根据所述N个CNP报文向所述第二设备发送所述M个CNP报文,所述第一队列为出端口的多个发送队列中包括所述第一数据流的队列。
本申请网络设备可以在第一队列进入拥塞状态之后,才会在没有接收到来自第一设备的CNP报文时主动创建辅助CNP报文并发送给第二设备,这样可以避免在第一队列没有进入拥塞状态时由于不必要的CNP报文导致的降速处理。
在一种可能的实现方式中,所述根据所述N个CNP报文向第二设备发送M个CNP报文之前,还包括:判断所述第一队列的当前状态;当所述第一队列没有处于所述拥塞状态,且所述第一队列的深度大于第一阈值时,确定所述第一队列进入所述拥塞状态;或者,当所述第一队列处于所述拥塞状态,且所述第一队列的深度小于第二阈值时,确定所述第一队列退出所述拥塞状态;其中,所述第一阈值大于所述第二阈值。
第二方面,本申请提供一种流速控制方法,包括:
接收来自第二设备的第一数据流,所述第一数据流中包括N个拥塞发生CE报文,N为自然数;根据所述N个CE报文向所述第二设备发送M个显式的拥塞通知包CNP报文,所述M个CNP报文和所述第一数据流相对应,M为大于N的整数。
本申请,服务器接收来自第二设备的第一数据流,该第一数据流中包括N个CE报文,再向第二设备发送M个CNP报文,M大于N,可以确保第二设备能够每间隔周期的时长接收到一个对应于第一数据流的CNP报文,从而基于该CNP报文对第一数据流进行发送速率的降速处理,解决了第一数据流发生拥塞仍然被做速率升速处理的问题。
在一种可能的实现方式中,所述CNP报文用于指示所述第一数据流发生拥塞。
在一种可能的实现方式中,所述CNP报文包括第一目的地址、第一源地址和第一目的队列对标识,所述第一数据流中的报文包括第二目的地址、第二源地址和第二目的队列对标识,其中,所述第一目的地址和所述第二源地址相同,所述第一源地址和所述第二目的地址相同。
在一种可能的实现方式中,所述根据所述N个CE报文向所述第二设备发送M个CNP报文,包括:按照设定的周期发送所述M个CNP报文。
本申请可以确保第二设备能够每间隔周期的时长接收到一个对应于第一数据流的CNP报文,从而基于该CNP报文对第一数据流进行发送速率的降速处理,解决了第一数据流发生拥塞仍然被做速率升速处理的问题。
在一种可能的实现方式中,所述根据所述N个CE报文向所述第二设备发送M个CNP报文,包括:在当前周期内监测是否发送所述CNP报文;若没有发送所述CNP报文,则创建辅助CNP报文,并向所述第二设备发送所述辅助CNP报文。
本申请服务器在接收到第一数据流中的CE报文后,可以根据该CE报文向第二设备发送CNP报文,而如果整个周期没有向第二设备发送CNP报文,则创建一个CNP报文并发送给第二设备,可以确保第二设备能够每间隔周期的时长接收到一个对应于第一数据流的CNP报文,从而基于该CNP报文对第一数据流进行发送速率的降速处理,解决了第一数据流发生拥塞仍然被做速率升速处理的问题。
在一种可能的实现方式中,所述没有发送所述CNP报文是指所述第一数据流的流表表项中的CNP发送标记的值为第一值。
本申请网络设备可以基于流表表项中的特定标记,例如CNP发送标记,来确认是否曾向第二设备发送过CNP报文,提高处理效率。
在一种可能的实现方式中,还包括:在所述当前周期内监测是否发送所述CNP报文;若发送所述CNP报文,则将所述第一数据流的流表表项中的所述CNP发送标记的值设置为第二值,并在所述当前周期结束时将所述CNP发送标记的值设置为第一值。
在一种可能的实现方式中,所述接收来自第二设备的第一数据流之前,还包括:根据建链报文创建所述第一数据流的流表表项,所述第一数据流的流表表项包括所述第二目的地址、所述第二源地址、所述第二目的队列对标识、所述第一数据流的源队列对标识和所述CNP发送标记。
在一种可能的实现方式中,所述根据建链报文创建所述第一数据流的流表表项之后,还包括:根据删链报文删除所述第一数据流的流表表项。
在一种可能的实现方式中,所述根据所述N个CE报文向所述第二设备发送M个CNP报文之前,还包括:当不存在所述第一数据流的流表表项时,若第一次发送所述CNP报文,则创建所述第一数据流的流表表项并启动表项超时定时器,所述第一数据流的流表表项包括所述第二目的地址、所述第二源地址、所述第一数据流的源队列对标识、所述CNP发送标记和所述第一数据流的流表表项的超时标识,所述超时标识用于表示所述表项超时定时器是否超时。
在一种可能的实现方式中,所述创建所述第一数据流的流表表项并启动表项超时定时器之后,还包括:当所述超时标识表示所述表项超时定时器超时时,若在所述表项超时定时器的计时周期内没有发送所述CNP报文,则删除所述第一数据流的流表表项。
在一种可能的实现方式中,所述根据所述N个CE报文向所述第二设备发送M个CNP报文,包括:当所述第一数据流发生拥塞后,根据所述N个CE报文向所述第二设备发送所述M个CNP报文。
本申请服务器可以在第一数据流发生拥塞之后,才会在没有向第二设备发送CNP报文时主动创建辅助CNP报文并发送给第二设备,这样可以避免在第一队列没有进入拥塞状态时由于不必要的CNP报文导致的降速处理。
在一种可能的实现方式中,所述根据所述N个CE报文向所述第二设备发送M个CNP报文之前,还包括:判断所述第一数据流的当前状态;当所述第一数据流没有处于所述拥塞状态,且接收到的所述第一数据流中的所述CE报文数量大于第三阈值时,确定所述第一数据流进入所述拥塞状态;或者,当所述第一数据流没有处于所述拥塞状态,且发送的所述CNP报文数量大于第四阈值时,确定所述第一数据流进入所述拥塞状态;或者,当所述第一数据流处于所述拥塞状态,且接收到所述第一数据流中的非CE报文时,确定所述第一数据流退出所述拥塞状态;或者,当所述第一数据流处于所述拥塞状态,且在设定的时间内没有收到所述对应数据流中的任何报文时,确定所述第一数据流退出所述拥塞状态;或者,当所述第一数据流处于所述拥塞状态,且在设定的时间内没有发送任何CNP报文时,确定所述第一数据流退出所述拥塞状态。
第三方面,本申请提供一种流速控制装置,包括:
接收模块,用于接收来自第一设备的N个显式的拥塞通知包CNP报文,所述N个CNP报文和第一数据流相对应,N为自然数;发送模块,用于根据所述N个CNP报文向第二设备发送M个CNP报文,所述M个CNP报文和所述第一数据流相对应,M为大于N的整数。
在一种可能的实现方式中,所述CNP报文用于指示所述第一数据流发生拥塞。
在一种可能的实现方式中,所述CNP报文包括第一目的地址、第一源地址和第一目的队列对标识,所述第一数据流中的报文包括第二目的地址、第二源地址和第二目的队列对标识,其中,所述第一目的地址和所述第二源地址相同,所述第一源地址和所述第二目的地址相同。
在一种可能的实现方式中,所述发送模块,具体用于按照设定的周期发送所述M个CNP报文。
在一种可能的实现方式中,还包括:处理模块,用于在当前周期内监测是否接收到来自所述第一设备的所述CNP报文;所述发送模块,具体用于若没有接收到所述来自所述第一设备的所述CNP报文,则创建辅助CNP报文,并向所述第二设备发送所述辅助CNP报文。
在一种可能的实现方式中,所述没有接收到所述来自所述第一设备的所述CNP报文是指所述第一数据流的流表表项中的CNP经过标记的值为第一值。
在一种可能的实现方式中,所述处理模块,还用于在所述当前周期内监测是否接收到所述来自所述第一设备的所述CNP报文;若接收到所述来自所述第一设备的所述CNP报文,则将所述第一数据流的流表表项中的所述CNP经过标记的值设置为第二值,并在所述当前周期结束时将所述CNP经过标记的值设置为第一值。
在一种可能的实现方式中,所述处理模块,还用于根据建链报文创建所述第一数据流的流表表项,所述第一数据流的流表表项包括所述第二目的地址、所述第二源地址、所述第二目的队列对标识、所述第一数据流的源队列对标识和所述CNP经过标记。
在一种可能的实现方式中,所述处理模块,还用于根据删链报文删除所述第一数据流的流表表项。
在一种可能的实现方式中,所述处理模块,还用于当不存在所述第一数据流的流表表项时,若第一次接收到所述来自所述第一设备的所述CNP报文,则创建所述第一数据流的流表表项并启动表项超时定时器,所述第一数据流的流表表项包括所述第二目的地址、所述第二源地址、所述第一数据流的源队列对标识、所述CNP经过标记和所述第一数据流的流表表项的超时标识,所述超时标识用于表示所述表项超时定时器是否超时。
在一种可能的实现方式中,所述处理模块,还用于当所述超时标识表示所述表项超时定时器超时时,若在所述表项超时定时器的计时周期内没有接收到所述来自所述第一设备的所述CNP报文,则删除所述第一数据流的流表表项。
在一种可能的实现方式中,所述发送模块,具体用于当第一队列进入拥塞状态后,根据所述N个CNP报文向所述第二设备发送所述M个CNP报文,所述第一队列为出端口的多个发送队列中包括所述第一数据流的队列。
在一种可能的实现方式中,还包括:处理模块,用于判断所述第一队列的当前状态;当所述第一队列没有处于所述拥塞状态,且所述第一队列的深度大于第一阈值时,确定所述第一队列进入所述拥塞状态;或者,当所述第一队列处于所述拥塞状态,且所述第一队列的深度小于第二阈值时,确定所述第一队列退出所述拥塞状态;其中,所述第一阈值大于所述第二阈值。
第四方面,本申请提供一种流速控制装置,包括:
接收模块,用于接收来自第二设备的第一数据流,所述第一数据流中包括N个拥塞发生CE报文,N为自然数;发送模块,用于根据所述N个CE报文向所述第二设备发送M个显式的拥塞通知包CNP报文,所述M个CNP报文和所述第一数据流相对应,M为大于N的整数。
在一种可能的实现方式中,所述CNP报文用于指示所述第一数据流发生拥塞。
在一种可能的实现方式中,所述CNP报文包括第一目的地址、第一源地址和第一目的队列对标识,所述第一数据流中的报文包括第二目的地址、第二源地址和第二目的队列对标识,其中,所述第一目的地址和所述第二源地址相同,所述第一源地址和所述第二目的地址相同。
在一种可能的实现方式中,所述发送模块,具体用于按照设定的周期发送所述M个CNP报文。
在一种可能的实现方式中,所述发送模块,具体用于在当前周期内监测是否发送所述CNP报文;若没有发送所述CNP报文,则创建辅助CNP报文,并向所述第二设备发送所述辅助CNP报文。
在一种可能的实现方式中,所述没有发送所述CNP报文是指所述第一数据流的流表表项中的CNP发送标记的值为第一值。
在一种可能的实现方式中,还包括:处理模块,用于在所述当前周期内监测是否发送所述CNP报文;若发送所述CNP报文,则将所述第一数据流的流表表项中的所述CNP发送标记的值设置为第二值,并在所述当前周期结束时将所述CNP发送标记的值设置为第一值。
在一种可能的实现方式中,所述处理模块,还用于根据建链报文创建所述第一数据流的流表表项,所述第一数据流的流表表项包括所述第二目的地址、所述第二源地址、所述第二目的队列对标识、所述第一数据流的源队列对标识和所述CNP发送标记。
在一种可能的实现方式中,所述处理模块,还用于根据删链报文删除所述第一数据流的流表表项。
在一种可能的实现方式中,所述处理模块,还用于当不存在所述第一数据流的流表表项时,若第一次发送所述CNP报文,则创建所述第一数据流的流表表项并启动表项超时定时器,所述第一数据流的流表表项包括所述第二目的地址、所述第二源地址、所述第一数据流的源队列对标识、所述CNP发送标记和所述第一数据流的流表表项的超时标识,所述超时标识用于表示所述表项超时定时器是否超时。
在一种可能的实现方式中,所述处理模块,还用于当所述超时标识表示所述表项超时定时器超时时,若在所述表项超时定时器的计时周期内没有发送所述CNP报文,则删除所述第一数据流的流表表项。
在一种可能的实现方式中,所述发送模块,具体用于当所述第一数据流发生拥塞后,根据所述N个CE报文向所述第二设备发送所述M个CNP报文。
在一种可能的实现方式中,还包括:处理模块,用于判断所述第一数据流的当前状态;当所述第一数据流没有处于所述拥塞状态,且接收到的所述第一数据流中的所述CE报文数量大于第三阈值时,确定所述第一数据流进入所述拥塞状态;或者,当所述第一数据流没有处于所述拥塞状态,且发送的所述CNP报文数量大于第四阈值时,确定所述第一数据流进入所述拥塞状态;或者,当所述第一数据流处于所述拥塞状态,且接收到所述第一数据流中的非CE报文时,确定所述第一数据流退出所述拥塞状态;或者,当所述第一数据流处于所述拥塞状态,且在设定的时间内没有收到所述对应数据流中的任何报文时,确定所述第一数据流退出所述拥塞状态;或者,当所述第一数据流处于所述拥塞状态,且在设定的时间内没有发送任何CNP报文时,确定所述第一数据流退出所述拥塞状态。
第五方面,本申请提供一种网络设备,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述第一方面中任一项所述的方法。
第六方面,本申请提供一种服务器,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述第二方面中任一项所述的方法。
第七方面,本申请提供一种计算机可读存储介质,包括计算机程序,所述计算机程序在计算机上被执行时,使得所述计算机执行上述第一至二方面中任一项所述的方法。
第八方面,本申请提供一种计算机程序,其特征在于,当所述计算机程序被计算机执行时,用于执行上述第一至二方面中任一项所述的方法。
附图说明
图1为本申请流速控制方法适用的一个典型场景示例;
图2为实现现有拥塞控制方法的一个通信系统示例;
图3为本申请流速控制方法实施例一的流程图;
图4为本申请流速控制方法实施例二的流程图;
图5为本申请流速控制装置实施例的结构示意图;
图6为本申请提供的设备600的示意性结构图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请中的附图,对本申请中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书实施例和权利要求书及附图中的术语“第一”、“第二”等仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元。方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
图1为本申请流速控制方法适用的一个典型场景示例,如图1所示,该场景为数据中心网络,其可应用于高性能计算、高性能分布式存储、大数据、人工智能等。数据中心网络可以是CLOS网络,CLOS网络包括核心交换机和接入交换机,服务器通过接入交换机接入网络。
需要说明的是,图1示出的是本申请流速控制方法适用的一种场景示例,本申请还可以适用于RDMA场景,因此本申请对应用场景不做具体限定。
图2为实现现有拥塞控制方法的一个通信系统示例,如图2所示,该通信系统可以包括RP、CP和NP,其中,RP和NP可以是图1所示场景中的服务器,CP可以是图1所示场景中的核心交换机或接入交换机。拥塞控制过程可以包括:在CP上,如果其出端口队列的深度超出阈值,则CP确定该出端口队列进入拥塞状态,CP在该出端口队列中待发送的报文中打上ECN标记,带ECN标记的报文称为拥塞发生(Congestion Encountered,CE)报文。在NP上,当CE报文到达时,NP立即发送一个CNP报文,以通知RP数据流发生拥塞。或者,RP会在接收到多个CE报文后只发送一个CNP报文,以通知RP数据流发生拥塞。在RP上,当RP收到一个CNP报文时,RP减小发送速率,并更新速率降低因子。此外RP还会在连续一段时间内未收到CNP报文时,按照一定的算法增加发送速率。但是,如果数据流的规模较大时,对于发生拥塞的数据流,可能存在数据流获得对应CNP报文的时间间隔大于RP进行发送速率升速的时间间隔的情况,这会导致处于拥塞状态的数据流被做速率升速处理,从而出现控速收敛失败的情况,影响报文传输效率。
本申请提供了一种流速控制方法,用于解决上述技术问题。
图3为本申请流速控制方法实施例一的流程图,如图3所示,本实施例的方法可以由网络设备执行,该网络设备可以是图1所示场景中的核心交换机或接入交换机。流速控制方法可以包括:
步骤301、接收来自第一设备的N个CNP报文,N个CNP报文和第一数据流相对应。
上述N为自然数。通常第一设备是指第一数据流的接收端,例如图2中的NP,第二设备是指第一数据流的发送端,例如图2中的RP。需要说明的是,本申请中第一设备也可以是指第一数据流的发送端,例如图2中的RP,第二设备也可以是指第一数据流的接收端,例如图2中的NP。另外,第一设备也可以是指处于网络设备下游的其他网络设备,第二设备也可以是指处于网络设备上游的其他网络设备。本申请对第一设备和第二设备不做具体限定。
本申请中CNP报文用于指示第一数据流发生拥塞。根据图2中描述的拥塞控制过程,网络设备可能会接收到来自第一设备的多个CNP报文,网络设备需要把这些CNP报文转发给第二设备。
在CNP报文中包括第一目的地址、第一源地址和第一目的队列对标识,在第一数据流中的报文中包括第二目的地址、第二源地址和第二目的队列对标识。CNP报文和第一数据流相对应是指第一目的地址和第二源地址相同(该地址通常是第一数据流的发送端设备的地址,例如RP的地址),第一源地址和第二目的地址相同(该地址通常是第一数据流的接收端设备的地址,例如NP的地址)。另外CNP报文和第一数据流相对应还包括第一目的队列对标识和第二目的队列对标识是相对应的,即第一目的队列对和第二目的队列对组成一对队列对。
在一种可能的实现方式中,当第一队列进入拥塞状态后,网络设备根据N个CNP报文向第二设备发送M个CNP报文,该第一队列为出端口的多个发送队列中包括第一数据流的队列。
即网络设备可以在上述第一队列进入拥塞状态之后,才会在没有接收到来自第一设备的CNP报文时主动创建辅助CNP报文并发送给第二设备。这样可以避免在第一队列没有进入拥塞状态时由于不必要的CNP报文导致的降速处理。
网络设备的出端口上可以创建多个队列,各个待发送的数据流被分配至各个队列,网络设备可以按照各个队列的优先级,依次从各个队列中选取数据流发送出去。本申请中第一队列可以是网络设备的出端口上的任意一个队列,该队列包括第一数据流。网络设备可以在第一队列没有处于拥塞状态,且第一队列的深度大于第一阈值时,确定第一队列进入拥塞状态;或者,在第一队列处于拥塞状态,且第一队列的深度小于第二阈值时,确定第一队列退出拥塞状态;其中,第一阈值大于第二阈值。
步骤302、根据N个CNP报文向第二设备发送M个CNP报文,M个CNP报文和第一数据流相对应。
上述M为大于N的整数。网络设备可以按照设定的周期向第二设备发送M个CNP报文。本申请中设定的周期可以参照第一数据流的发送端设备(例如RP)对数据流的发送速率进行升速处理的升速周期进行设置,例如升速周期默认为300us,可以将周期设置为升速判定周期的80~95%之内,即240-285us。
以下以当前周期为例,描述网络设备进行流速控制的过程:
网络设备在当前周期内监测是否接收到来自第一设备的CNP报文,若没有接收到来自第一设备的CNP报文,则创建辅助CNP报文,并向第二设备发送辅助CNP报文。
本申请中,若网络设备接收到来自第一设备的CNP报文,则立即将该CNP报文转发给第二设备,而若网络设备在当前周期内一直没有接收到来自第一设备的CNP报文,就会在当前周期结束时自发的创建一个辅助CNP报文,再把该辅助CNP报文发送给第二设备。这样可以确保第一数据流的发送端设备(例如RP)能够每间隔设定的周期的时长接收到一个对应于第一数据流的CNP报文,从而基于该CNP报文对第一数据流进行发送速率的降速处理,避免第一数据流发生拥塞仍然被做速率升速处理的问题。
上述没有接收到来自第一设备的CNP报文是指网络设备维护的第一数据流的流表表项中的CNP经过标记的值为第一值。即本申请中网络设备可以根据预先创建的第一数据流的流表表项中的特定标识(例如CNP经过标记)向第二设备发送CNP报文。第一数据流的流表表项中的CNP经过标记用于表示网络设备是否在当前周期内接收到来自第一设备的CNP报文,例如,CNP经过标记的值为第一值(例如0)表示网络设备在当前周期内没有接收到来自第一设备的CNP报文,CNP经过标记的值为第二值(例如1)表示网络设备在当前周期内接收到来自第一设备的CNP报文。网络设备读取第一数据流的流表表项,如果其中的CNP经过标记的值为第二值,则表示网络设备已经接收到来自第一设备的CNP报文,并向第二设备转发过该来自第一设备的CNP报文,如果其中的CNP经过标记的值为第一值,则表示网络设备没有接收到来自第一设备的CNP报文,网络设备自发的创建一个辅助CNP报文,再把该辅助CNP报文发送给第二设备。这样可以确保第一数据流的发送端设备(例如RP)能够每间隔设定的周期的时长接收到一个对应于第一数据流的CNP报文,从而基于该CNP报文对第一数据流进行发送速率的降速处理,避免第一数据流发生拥塞仍然被做速率升速处理的问题。
在一种可能的实现方式中,网络设备进行流速控制的过程也可以是无论是否在当前周期内接收到来自第一设备的CNP报文,网络设备均在当前周期结束时向第二设备发送一个CNP报文。其中,若网络设备接收到来自第一设备的CNP报文,则在当前周期结束时向第二设备转发该CNP报文;若网络设备没有接收到来自第一设备的CNP报文,则在当前周期结束时创建辅助CNP报文,并向第二设备发送该辅助CNP报文。这样同样可以确保第一数据流的发送端设备(例如RP)能够每间隔设定的周期的时长接收到一个对应于第一数据流的CNP报文,从而基于该CNP报文对第一数据流进行发送速率的降速处理,避免第一数据流发生拥塞仍然被做速率升速处理的问题。
本申请,网络设备接收来自第一设备的N个CNP报文,再向第二设备发送M个CNP报文,M大于N,可以确保第一数据流的发送端设备能够每间隔设定的周期的时长接收到一个对应于第一数据流的CNP报文,从而基于该CNP报文对第一数据流进行发送速率的降速处理,避免第一数据流发生拥塞仍然被做速率升速处理的问题。
在一种可能的实现方式中,网络设备可以采用以下两种方法创建第一数据流的流表表项:
第一种方法是第一数据流的发送端设备和接收端设备相互发送建链报文,其中,发送端设备发出的建链报文包括发送端设备的地址和队列标识,接收端设备发出的建链报文包括接收端设备的地址和队列标识。发送端设备上的队列和接收端设备上的队列组成队列对,数据流和对应的CNP报文在同一对队列对上发送和接收,例如,发送端设备的A队列中的数据流发送至接收端设备后,针对该数据流的CNP报文属于接收端设备的B队列,A队列和B队列是一对队列对。
网络设备根据上述建链报文创建第一数据流的流表表项,该第一数据流的流表表项包括上述第一数据流中的第二目的地址(例如第一数据流的接收端设备的IP地址)、第二源地址(例如第一数据流的发送端设备的IP地址)、第二目的队列对标识(例如第一数据流的接收端设备中的队列标识)、第一数据流的源队列对标识(例如第一数据流的发送端设备中的队列标识)和CNP经过标记。网络设备还可以根据删链报文(由第一数据流的发送端设备或接收端设备发送)删除第一数据流的流表表项。
网络设备可以在当前周期内监测是否接收到来自第一设备的CNP报文,若接收到来自第一设备的CNP报文,则将第一数据流的流表表项中的CNP经过标记的值设置为第二值,并在当前周期结束时将CNP经过标记的值设置为第一值。网络设备以周期划分时间轴,在当前周期内,如果网络设备接收到了来自第一设备的CNP报文,就在第一数据流的流表表项中将CNP经过标记的值设置为第二值,而当该当前周期结束时,网络设备会把该CNP经过标记的值设置为第一值,以便在下一周期内开始新的监测操作。
第二种方法是网络设备在不存在第一数据流的流表表项时,若第一次接收到来自第一设备的CNP报文,则根据CNP报文创建第一数据流的流表表项并启动表项超时定时器,该方法中网络设备是基于第一次接收到来自第一设备的CNP报文创建第一数据流的流表表项,并通过表项超时定时器来确定第一数据流的流表表项的删除时机。该第一数据流的流表表项包括上述第一数据流中的第二目的地址(亦即上述CNP报文中的第一源地址,例如第一数据流的接收端设备的IP地址)、第二源地址(亦即上述CNP报文中的第一目的地址,例如第一数据流的发送端设备的IP地址)、第一数据流的源队列对标识(亦即上述CNP报文中的第一目的队列对标识,例如第一数据流的发送端设备中的队列标识)、CNP经过标记和第一数据流的流表表项的超时标识,该超时标识用于表示表项超时定时器是否超时。
网络设备在当前周期内监测是否接收到来自第一设备的CNP报文,若接收到来自第一设备的CNP报文,则在第一数据流的流表表项中将CNP经过标记的值设置为第二值,并在当前周期结束时将CNP经过标记的值设置为第一值。网络设备以周期划分时间轴,在当前周期内,如果网络设备接收到了来自第一设备的CNP报文,就在第一数据流的流表表项中将CNP经过标记的值设置为第二值,而当该当前周期结束时,网络设备会把该CNP经过标记的值设置为第一值,以便在下一周期内开始新的监测操作。当超时标识表示表项超时定时器超时时,若在表项超时定时器的计时周期内没有接收到来自第一设备的CNP报文,则网络设备删除第一数据流的流表表项。
图4为本申请流速控制方法实施例二的流程图,如图4所示,本实施例的方法可以由图1所示场景中的服务器执行,该服务器主要是承担图2中的NP的功能。流速控制方法可以包括:
步骤401、接收来自第二设备的第一数据流,该第一数据流中包括N个CE报文。
上述N为自然数。通常第一设备是指第一数据流的接收端,例如图2中的NP,第二设备是指第一数据流的发送端,例如图2中的RP。另外,第二设备也可以是指处于服务器上游的其他网络设备。本申请对第一设备和第二设备不做具体限定。
本申请中CE报文是网络设备(例如图1所示场景中的核心交换机或接入交换机)在第一数据流的报文中打上ECN标记后生成的报文,用于指示第一数据流发生拥塞。
步骤402、根据N个CE报文向第二设备发送M个CNP报文,M个CNP报文和第一数据流相对应。
上述M为大于N的整数。服务器可以按照设定的周期向第二设备发送M个CNP报文。本申请中设定的周期可以参照第一数据流的发送端设备(例如RP)对数据流的发送速率进行升速处理的升速周期进行设置,例如升速判定周期默认为300us,可以将周期设置为升速判定周期的80~95%之内,即240-285us。
在CNP报文中包括第一目的地址、第一源地址和第一目的队列对标识,在第一数据流中的报文中包括第二目的地址、第二源地址和第二目的队列对标识。CNP报文和第一数据流相对应是指第一目的地址和第二源地址相同(该地址通常是第一数据流的发送端设备的地址,例如RP的地址),第一源地址和第二目的地址相同(该地址通常是第一数据流的接收端设备的地址,例如NP的地址)。另外CNP报文和第一数据流相对应还包括第一目的队列对标识和第二目的队列对标识是相对应的,即第一目的队列对和第二目的队列对组成一对队列对。
以下以当前周期为例,描述服务器进行流速控制的过程:
服务器在当前周期内监测是否发送CNP报文,若没有发送CNP报文,则创建辅助CNP报文,并向第二设备发送辅助CNP报文。
根据图2中描述的拥塞控制过程,服务器可能会接收到来自网络设备的第一数据流中的多个CE报文,此时服务器可以针对每个CE报文向第二设备分别发送一个CNP报文,服务器也可以针对多个CE报文向第二设备只发送一个CNP报文。
而若服务器在当前周期内一直没有发送CNP报文,就会在当前周期结束时自发的创建一个辅助CNP报文,再把该辅助CNP报文发送给第二设备。这样可以确保第一数据流的发送端设备(例如RP)能够每间隔设定的周期的时长接收到一个对应于第一数据流的CNP报文,从而基于该CNP报文对第一数据流进行发送速率的降速处理,避免第一数据流发生拥塞仍然被做速率升速处理的问题。
上述没有发送CNP报文是指服务器维护的第一数据流的流表表项中的CNP发送标记的值为第一值。即本申请中服务器可以根据预先创建的第一数据流的流表表项中的特定标识(例如CNP发送标记)向第二设备发送CNP报文。第一数据流的流表表项的CNP发送标记用于表示服务器是否在当前周期内发送CNP报文,例如,CNP发送标记的值为第一值(例如0)表示服务器在当前周期内没有向第二设备发送CNP报文,CNP发送标记的值为第二值(例如1)表示服务器在当前周期内向第二设备发送CNP报文。服务器读取第一数据流的流表表项,如果其中的CNP发送标记的值为第二值,则表示服务器已经向第二设备发送一个CNP报文,如果其中的CNP发送标记的值为第一值,则表示服务器没有向第二设备发送CNP报文,服务器自发的创建一个辅助CNP报文,再把该辅助CNP报文发送给第二设备。这样可以确保第一数据流的发送端设备(例如RP)能够每间隔设定的周期的时长接收到一个对应于第一数据流的CNP报文,从而基于该CNP报文对第一数据流进行发送速率的降速处理,避免第一数据流发生拥塞仍然被做速率升速处理的问题。
在一种可能的实现方式中,服务器进行流速控制的过程也可以是无论是否在当前周期内发送CNP报文,服务器均在当前周期结束时向第二设备发送一个CNP报文。其中,服务器若需要发送CNP报文,则在当前周期结束时向第二设备发送一个CNP报文;若服务器没有发送CNP报文,则在当前周期结束时创建辅助CNP报文,并向第二设备发送该辅助CNP报文。这样同样可以确保第一数据流的发送端设备(例如RP)能够每间隔设定的周期的时长接收到一个对应于第一数据流的CNP报文,从而基于该CNP报文对第一数据流进行发送速率的降速处理,避免第一数据流发生拥塞仍然被做速率升速处理的问题。
在一种可能的实现方式中,当第一数据流发生拥塞后,服务器根据N个CE报文向第二设备发送M个CNP报文。
即服务器可以在上述第一数据流发生拥塞之后,才会在没有发送CNP报文时主动创建辅助CNP报文并发送给第二设备。这样可以避免在第一数据流没有发生拥塞时由于不必要的CNP报文导致的降速处理。
服务器可以在第一数据流没有处于拥塞状态,且接收到的第一数据流中的CE报文数量大于第三阈值时,确定第一数据流进入拥塞状态;或者,在第一数据流没有处于拥塞状态,且发送的CNP报文数量大于第四阈值时,确定第一数据流进入拥塞状态;或者,在第一数据流处于拥塞状态,且接收到第一数据流中的非CE报文时,确定第一数据流退出拥塞状态;或者,在第一数据流处于拥塞状态,且在设定的时间内没有收到对应数据流中的任何报文时,确定第一数据流退出拥塞状态;或者,在第一数据流处于拥塞状态,且在设定的时间内没有发送任何CNP报文时,确定第一数据流退出拥塞状态。
本申请,服务器接收来自第二设备的第一数据流,该第一数据流中包括N个CE报文,再向第二设备发送M个CNP报文,M大于N,可以确保第二设备能够每间隔设定的周期的时长接收到一个对应于第一数据流的CNP报文,从而基于该CNP报文对第一数据流进行发送速率的降速处理,避免第一数据流发生拥塞仍然被做速率升速处理的问题。
在一种可能的实现方式中,服务器可以采用以下两种方法创建第一数据流的流表表项:
第一种方法是第一数据流的发送端设备和接收端设备相互发送建链报文,其中,发送端设备发出的建链报文包括发送端设备的地址和队列标识,接收端设备发出的建链报文包括接收端设备的地址和队列标识。发送端设备上的队列和接收端设备上的队列组成队列对,数据流和对应的CNP报文在同一对队列对上发送和接收,例如,发送端设备的A队列中的数据流发送至接收端设备后,针对该数据流的CNP报文属于接收端设备的B队列,A队列和B队列是一对队列对。
服务器根据上述建链报文创建第一数据流的流表表项,该第一数据流的流表表项包括上述第一数据流中的第二目的地址(例如第一数据流的接收端设备的IP地址)、第二源地址(例如第一数据流的发送端设备的IP地址)、第二目的队列对标识(例如第一数据流的接收端设备中的队列标识)、第一数据流的源队列对标识(例如第一数据流的发送端设备中的队列标识)和CNP发送标记。服务器还可以根据删链报文(由第一数据流的发送端设备或接收端设备发送)删除第一数据流的流表表项。
服务器可以在当前周期内监测是否发送CNP报文,若发送CNP报文,则在第一数据流的流表表项中将CNP发送标记的值设置为第二值,并在当前周期结束时将CNP发送标记的值设置为第一值。服务器以周期划分时间轴,在当前周期内,如果服务器发送CNP报文,就在第一数据流的流表表项中将CNP发送标记的值设置为第二值,而当该当前周期结束时,服务器会把该CNP发送标记的值设置为第一值,以便在下一周期内开始新的监测操作。
第二种方法是服务器在不存在第一数据流的流表表项时,若第一次发送CNP报文,则根据CNP报文创建第一数据流的流表表项并启动表项超时定时器,该方法中服务器是基于第一次发送CNP报文创建第一数据流的流表表项,并通过表项超时定时器来确定第一数据流的流表表项的删除时机。该第一数据流的流表表项包括上述第一数据流中的第二目的地址(亦即上述CNP报文中的第一源地址,例如第一数据流的接收端设备的IP地址)、第二源地址(亦即上述CNP报文中的第一目的地址,例如第一数据流的发送端设备的IP地址)、第一数据流的源队列对标识(亦即上述CNP报文中的第一目的队列对标识,例如第一数据流的发送端设备中的队列标识)、CNP发送标记和第一数据流的流表表项的超时标识,该超时标识用于表示表项超时定时器是否超时。
服务器在当前周期内监测是否发送CNP报文,若发送CNP报文,则在第一数据流的流表表项中将CNP发送标记的值设置为第二值,并在当前周期结束时将CNP发送标记的值设置为第一值。服务器以周期划分时间轴,在当前周期内,如果服务器发送CNP报文,就在第一数据流的流表表项中将CNP发送标记的值设置为第二值,而当该当前周期结束时,服务器会把该CNP发送标记的值设置为第一值,以便在下一周期内开始新的监测操作。当超时标识表示表项超时定时器超时时,若在表项超时定时器的计时周期内没有发送CNP报文,则服务器删除第一数据流的流表表项。
图5为本申请流速控制装置实施例的结构示意图,如图5所示,本实施例的装置应用于上述方法实施例一中的网络设备,也可以应用于上述方法实施例二中的服务器。该装置包括:接收模块501、发送模块502和处理模块503。上述方法实施例二中的服务器
当流速控制装置应用于上述方法实施例一中的网络设备时,接收模块501,用于接收来自第一设备的N个显式的拥塞通知包CNP报文,所述N个CNP报文和第一数据流相对应,N为自然数;发送模块502,用于根据所述N个CNP报文向第二设备发送M个CNP报文,所述M个CNP报文和所述第一数据流相对应,M为大于N的整数。
在一种可能的实现方式中,所述CNP报文用于指示所述第一数据流发生拥塞。
在一种可能的实现方式中,所述CNP报文包括第一目的地址、第一源地址和第一目的队列对标识,所述第一数据流中的报文包括第二目的地址、第二源地址和第二目的队列对标识,其中,所述第一目的地址和所述第二源地址相同,所述第一源地址和所述第二目的地址相同。
在一种可能的实现方式中,所述发送模块502,具体用于按照设定的周期发送所述M个CNP报文。
在一种可能的实现方式中,所述处理模块503,用于在当前周期内监测是否接收到来自所述第一设备的所述CNP报文;所述发送模块502,具体用于若没有接收到所述来自所述第一设备的所述CNP报文,则创建辅助CNP报文,并向所述第二设备发送所述辅助CNP报文。
在一种可能的实现方式中,所述没有接收到所述来自所述第一设备的所述CNP报文是指所述第一数据流的流表表项中的CNP经过标记的值为第一值。
在一种可能的实现方式中,所述处理模块503,还用于在所述当前周期内监测是否接收到所述来自所述第一设备的所述CNP报文;若接收到所述来自所述第一设备的所述CNP报文,则将所述第一数据流的流表表项中的所述CNP经过标记的值设置为第二值,并在所述当前周期结束时将所述CNP经过标记的值设置为第一值。
在一种可能的实现方式中,所述处理模块503,还用于根据建链报文创建所述第一数据流的流表表项,所述第一数据流的流表表项包括所述第二目的地址、所述第二源地址、所述第二目的队列对标识、所述第一数据流的源队列对标识和所述CNP经过标记。
在一种可能的实现方式中,所述处理模块503,还用于根据删链报文删除所述第一数据流的流表表项。
在一种可能的实现方式中,所述处理模块503,还用于当不存在所述第一数据流的流表表项时,若第一次接收到所述来自所述第一设备的所述CNP报文,则创建所述第一数据流的流表表项并启动表项超时定时器,所述第一数据流的流表表项包括所述第二目的地址、所述第二源地址、所述第一数据流的源队列对标识、所述CNP经过标记和所述第一数据流的流表表项的超时标识,所述超时标识用于表示所述表项超时定时器是否超时。
在一种可能的实现方式中,所述处理模块503,还用于当所述超时标识表示所述表项超时定时器超时时,若在所述表项超时定时器的计时周期内没有接收到所述来自所述第一设备的所述CNP报文,则删除所述第一数据流的流表表项。
在一种可能的实现方式中,所述发送模块502,具体用于当第一队列进入拥塞状态后,根据所述N个CNP报文向所述第二设备发送所述M个CNP报文,所述第一队列为出端口的多个发送队列中包括所述第一数据流的队列。
在一种可能的实现方式中,所述处理模块503,用于判断所述第一队列的当前状态;当所述第一队列没有处于所述拥塞状态,且所述第一队列的深度大于第一阈值时,确定所述第一队列进入所述拥塞状态;或者,当所述第一队列处于所述拥塞状态,且所述第一队列的深度小于第二阈值时,确定所述第一队列退出所述拥塞状态;其中,所述第一阈值大于所述第二阈值。
该装置,可以用于执行图3所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
当流速控制装置应用于上述方法实施例二中的服务器时,接收模块501,用于接收来自第二设备的第一数据流,所述第一数据流中包括N个拥塞发生CE报文,N为自然数;发送模块502,用于根据所述N个CE报文向所述第二设备发送M个显式的拥塞通知包CNP报文,所述M个CNP报文和所述第一数据流相对应,M为大于N的整数。
在一种可能的实现方式中,所述CNP报文用于指示所述第一数据流发生拥塞。
在一种可能的实现方式中,所述CNP报文包括第一目的地址、第一源地址和第一目的队列对标识,所述第一数据流中的报文包括第二目的地址、第二源地址和第二目的队列对标识,其中,所述第一目的地址和所述第二源地址相同,所述第一源地址和所述第二目的地址相同。
在一种可能的实现方式中,所述发送模块502,具体用于按照设定的周期发送所述M个CNP报文。
在一种可能的实现方式中,所述发送模块502,具体用于在当前周期内监测是否发送所述CNP报文;若没有发送所述CNP报文,则创建辅助CNP报文,并向所述第二设备发送所述辅助CNP报文。
在一种可能的实现方式中,所述没有发送所述CNP报文是指所述第一数据流的流表表项中的CNP发送标记的值为第一值。
在一种可能的实现方式中,所述处理模块503,用于在所述当前周期内监测是否发送所述CNP报文;若发送所述CNP报文,则将所述第一数据流的流表表项中的所述CNP发送标记的值设置为第二值,并在所述当前周期结束时将所述CNP发送标记的值设置为第一值。
在一种可能的实现方式中,所述处理模块503,还用于根据建链报文创建所述第一数据流的流表表项,所述第一数据流的流表表项包括所述第二目的地址、所述第二源地址、所述第二目的队列对标识、所述第一数据流的源队列对标识和所述CNP发送标记。
在一种可能的实现方式中,所述处理模块503,还用于根据删链报文删除所述第一数据流的流表表项。
在一种可能的实现方式中,所述处理模块503,还用于当不存在所述第一数据流的流表表项时,若第一次发送所述CNP报文,则创建所述第一数据流的流表表项并启动表项超时定时器,所述第一数据流的流表表项包括所述第二目的地址、所述第二源地址、所述第一数据流的源队列对标识、所述CNP发送标记和所述第一数据流的流表表项的超时标识,所述超时标识用于表示所述表项超时定时器是否超时。
在一种可能的实现方式中,所述处理模块503,还用于当所述超时标识表示所述表项超时定时器超时时,若在所述表项超时定时器的计时周期内没有发送所述CNP报文,则删除所述第一数据流的流表表项。
在一种可能的实现方式中,所述发送模块502,具体用于当所述第一数据流发生拥塞后,根据所述N个CE报文向所述第二设备发送所述M个CNP报文。
在一种可能的实现方式中,所述处理模块503,用于判断所述第一数据流的当前状态;当所述第一数据流没有处于所述拥塞状态,且接收到的所述第一数据流中的所述CE报文数量大于第三阈值时,确定所述第一数据流进入所述拥塞状态;或者,当所述第一数据流没有处于所述拥塞状态,且发送的所述CNP报文数量大于第四阈值时,确定所述第一数据流进入所述拥塞状态;或者,当所述第一数据流处于所述拥塞状态,且接收到所述第一数据流中的非CE报文时,确定所述第一数据流退出所述拥塞状态;或者,当所述第一数据流处于所述拥塞状态,且在设定的时间内没有收到所述对应数据流中的任何报文时,确定所述第一数据流退出所述拥塞状态;或者,当所述第一数据流处于所述拥塞状态,且在设定的时间内没有发送任何CNP报文时,确定所述第一数据流退出所述拥塞状态。
该装置,可以用于执行图4所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图6为本申请提供的设备600的示意性结构图。如图6所示,设备600可以是上述实施例一中的网络设备,也可以是上述实施例二中的服务器,该设备600包括处理器601和收发器602。
可选地,设备600还包括存储器603。其中,处理器601、收发器602和存储器603之间可以通过内部连接通路互相通信,传递控制信号和/或数据信号。
其中,存储器603用于存储计算机程序。处理器601用于执行存储器603中存储的计算机程序,从而实现上述装置实施例中流速控制装置的各功能。
可选地,存储器603也可以集成在处理器601中,或者独立于处理器601。
可选地,设备600还可以包括天线604,用于将收发器602输出的信号发射出去。或者,收发器602通过天线接收信号。
可选地,设备600还可以包括电源605,用于给网络设备中的各种器件或电路提供电源。
除此之外,为了使得网络设备的功能更加完善,设备600还可以包括输入单元606或显示单元607(也可以认为是输出单元)。
本申请还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被计算机执行时,使得计算机执行上述任一方法实施例中由网络设备或服务器执行的步骤和/或处理。
本申请还提供一种计算机程序产品,所述计算机程序产品包括计算机程序代码,当所述计算机程序代码在计算机上运行时,使得计算机执行上述任一方法实施例中由网路设备或服务器执行的步骤和/或处理。
在实现过程中,上述方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。处理器可以是通用处理器、数字信号处理器(digital signalprocessor,DSP)、特定应用集成电路(application-specific integrated circuit,ASIC)、现场可编程门阵列(field programmable gate array,FPGA)或其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。本申请实施例公开的方法的步骤可以直接体现为硬件编码处理器执行完成,或者用编码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
上述各实施例中提及的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-onlymemory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamic RAM,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rateSDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(directrambus RAM,DR RAM)。应注意,本文描述的系统和方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (30)
1.一种流速控制方法,其特征在于,包括:
接收来自第一设备的N个显式的拥塞通知包CNP报文,所述N个CNP报文和第一数据流相对应,N为自然数;
根据所述N个CNP报文向第二设备发送M个CNP报文,所述M个CNP报文和所述第一数据流相对应,M为大于N的整数。
2.根据权利要求1所述的方法,其特征在于,所述CNP报文用于指示所述第一数据流发生拥塞。
3.根据权利要求1或2所述的方法,其特征在于,所述CNP报文包括第一目的地址、第一源地址和第一目的队列对标识,所述第一数据流中的报文包括第二目的地址、第二源地址和第二目的队列对标识,其中,所述第一目的地址和所述第二源地址相同,所述第一源地址和所述第二目的地址相同。
4.根据权利要求3所述的方法,其特征在于,所述根据所述N个CNP报文向第二设备发送M个CNP报文,包括:
按照设定的周期发送所述M个CNP报文。
5.根据权利要求4所述的方法,其特征在于,所述根据所述N个CNP报文向第二设备发送M个CNP报文,包括:
在当前周期内监测是否接收到来自所述第一设备的所述CNP报文;
若没有接收到所述来自所述第一设备的所述CNP报文,则创建辅助CNP报文,并向所述第二设备发送所述辅助CNP报文。
6.根据权利要求5所述的方法,其特征在于,所述没有接收到所述来自所述第一设备的所述CNP报文是指所述第一数据流的流表表项中的CNP经过标记的值为第一值。
7.根据权利要求6所述的方法,其特征在于,还包括:
在所述当前周期内监测是否接收到所述来自所述第一设备的所述CNP报文;
若接收到所述来自所述第一设备的所述CNP报文,则将所述第一数据流的流表表项中的所述CNP经过标记的值设置为第二值,并在所述当前周期结束时将所述CNP经过标记的值设置为第一值。
8.根据权利要求1-7中任一项所述的方法,其特征在于,所述根据所述N个CNP报文向第二设备发送M个CNP报文,包括:
当第一队列进入拥塞状态后,根据所述N个CNP报文向所述第二设备发送所述M个CNP报文,所述第一队列为出端口的多个发送队列中包括所述第一数据流的队列。
9.一种流速控制方法,其特征在于,包括:
接收来自第二设备的第一数据流,所述第一数据流中包括N个拥塞发生CE报文,N为自然数;
根据所述N个CE报文向所述第二设备发送M个显式的拥塞通知包CNP报文,所述M个CNP报文和所述第一数据流相对应,M为大于N的整数。
10.根据权利要求9所述的方法,其特征在于,所述CNP报文用于指示所述第一数据流发生拥塞。
11.根据权利要求9或10所述的方法,其特征在于,所述CNP报文包括第一目的地址、第一源地址和第一目的队列对标识,所述第一数据流中的报文包括第二目的地址、第二源地址和第二目的队列对标识,其中,所述第一目的地址和所述第二源地址相同,所述第一源地址和所述第二目的地址相同。
12.根据权利要求11所述的方法,其特征在于,所述根据所述N个CE报文向所述第二设备发送M个CNP报文,包括:
按照设定的周期发送所述M个CNP报文。
13.根据权利要求12所述的方法,其特征在于,所述根据所述N个CE报文向所述第二设备发送M个CNP报文,包括:
在当前周期内监测是否发送所述CNP报文;
若没有发送所述CNP报文,则创建辅助CNP报文,并向所述第二设备发送所述辅助CNP报文。
14.根据权利要求13所述的方法,其特征在于,所述没有发送所述CNP报文是指所述第一数据流的流表表项中的CNP发送标记的值为第一值。
15.根据权利要求14所述的方法,其特征在于,还包括:
在所述当前周期内监测是否发送所述CNP报文;
若发送所述CNP报文,则将所述第一数据流的流表表项中的所述CNP发送标记的值设置为第二值,并在所述当前周期结束时将所述CNP发送标记的值设置为第一值。
16.根据权利要求9-15中任一项所述的方法,其特征在于,所述根据所述N个CE报文向所述第二设备发送M个CNP报文,包括:
当所述第一数据流发生拥塞后,根据所述N个CE报文向所述第二设备发送所述M个CNP报文。
17.一种流速控制装置,其特征在于,包括:
接收模块,用于接收来自第一设备的N个显式的拥塞通知包CNP报文,所述N个CNP报文和第一数据流相对应,N为自然数;
发送模块,用于根据所述N个CNP报文向第二设备发送M个CNP报文,所述M个CNP报文和所述第一数据流相对应,M为大于N的整数。
18.根据权利要求17所述的装置,其特征在于,还包括:
处理模块,用于在当前周期内监测是否接收到来自所述第一设备的所述CNP报文;
所述发送模块,具体用于若没有接收到所述来自所述第一设备的所述CNP报文,则创建辅助CNP报文,并向所述第二设备发送所述辅助CNP报文。
19.根据权利要求18所述的装置,其特征在于,所述没有接收到所述来自所述第一设备的所述CNP报文是指所述第一数据流的流表表项中的CNP经过标记的值为第一值。
20.根据权利要求19所述的装置,其特征在于,所述处理模块,还用于在所述当前周期内监测是否接收到所述来自所述第一设备的所述CNP报文;若接收到所述来自所述第一设备的所述CNP报文,则将所述第一数据流的流表表项中的所述CNP经过标记的值设置为第二值,并在所述当前周期结束时将所述CNP经过标记的值设置为第一值。
21.根据权利要求17所述的装置,其特征在于,所述发送模块,具体用于当第一队列进入拥塞状态后,根据所述N个CNP报文向所述第二设备发送所述M个CNP报文,所述第一队列为出端口的多个发送队列中包括所述第一数据流的队列。
22.一种流速控制装置,其特征在于,包括:
接收模块,用于接收来自第二设备的第一数据流,所述第一数据流中包括N个拥塞发生CE报文,N为自然数;
发送模块,用于根据所述N个CE报文向所述第二设备发送M个显式的拥塞通知包CNP报文,所述M个CNP报文和所述第一数据流相对应,M为大于N的整数。
23.根据权利要求22所述的装置,其特征在于,所述发送模块,具体用于在当前周期内监测是否发送所述CNP报文;若没有发送所述CNP报文,则创建辅助CNP报文,并向所述第二设备发送所述辅助CNP报文。
24.根据权利要求23所述的装置,其特征在于,所述没有发送所述CNP报文是指所述第一数据流的流表表项中的CNP发送标记的值为第一值。
25.根据权利要求24所述的装置,其特征在于,还包括:
处理模块,用于在所述当前周期内监测是否发送所述CNP报文;若发送所述CNP报文,则将所述第一数据流的流表表项中的所述CNP发送标记的值设置为第二值,并在所述当前周期结束时将所述CNP发送标记的值设置为第一值。
26.根据权利要求22所述的方法,其特征在于,所述发送模块,具体用于当所述第一数据流发生拥塞后,根据所述N个CE报文向所述第二设备发送所述M个CNP报文。
27.一种网络设备,其特征在于,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-8中任一项所述的方法。
28.一种服务器,其特征在于,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求9-16中任一项所述的方法。
29.一种计算机可读存储介质,其特征在于,包括计算机程序,所述计算机程序在计算机上被执行时,使得所述计算机执行权利要求1-16中任一项所述的方法。
30.一种计算机程序,其特征在于,当所述计算机程序被计算机执行时,用于执行权利要求1-16中任一项所述的方法。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910649933.6A CN112242956B (zh) | 2019-07-18 | 2019-07-18 | 流速控制方法和装置 |
CN202410396333.4A CN118301078A (zh) | 2019-07-18 | 2019-07-18 | 流速控制方法和装置 |
EP20840799.9A EP3993330A4 (en) | 2019-07-18 | 2020-07-15 | METHOD AND DEVICE FOR FLOW RATE CONTROL |
PCT/CN2020/102158 WO2021008562A1 (zh) | 2019-07-18 | 2020-07-15 | 流速控制方法和装置 |
US17/573,909 US20220141137A1 (en) | 2019-07-18 | 2022-01-12 | Flow rate control method and apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910649933.6A CN112242956B (zh) | 2019-07-18 | 2019-07-18 | 流速控制方法和装置 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410396333.4A Division CN118301078A (zh) | 2019-07-18 | 2019-07-18 | 流速控制方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112242956A true CN112242956A (zh) | 2021-01-19 |
CN112242956B CN112242956B (zh) | 2024-04-26 |
Family
ID=74168006
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410396333.4A Pending CN118301078A (zh) | 2019-07-18 | 2019-07-18 | 流速控制方法和装置 |
CN201910649933.6A Active CN112242956B (zh) | 2019-07-18 | 2019-07-18 | 流速控制方法和装置 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410396333.4A Pending CN118301078A (zh) | 2019-07-18 | 2019-07-18 | 流速控制方法和装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20220141137A1 (zh) |
EP (1) | EP3993330A4 (zh) |
CN (2) | CN118301078A (zh) |
WO (1) | WO2021008562A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200236052A1 (en) * | 2020-03-04 | 2020-07-23 | Arvind Srinivasan | Improving end-to-end congestion reaction using adaptive routing and congestion-hint based throttling for ip-routed datacenter networks |
CN113411263A (zh) * | 2021-06-18 | 2021-09-17 | 中国工商银行股份有限公司 | 一种数据传输方法、装置、设备及存储介质 |
CN116055416A (zh) * | 2023-03-28 | 2023-05-02 | 新华三工业互联网有限公司 | 应用于长距通信网络场景下传输速率的调整方法及装置 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116545933B (zh) * | 2023-07-06 | 2023-10-20 | 合肥综合性国家科学中心人工智能研究院(安徽省人工智能实验室) | 网络拥塞控制方法、装置、设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080298248A1 (en) * | 2007-05-28 | 2008-12-04 | Guenter Roeck | Method and Apparatus For Computer Network Bandwidth Control and Congestion Management |
US20160226772A1 (en) * | 2015-02-03 | 2016-08-04 | Oracle International Corporation | Facilitating congestion control in a network switch fabric based on group traffic rates |
US20170093699A1 (en) * | 2015-09-29 | 2017-03-30 | Mellanox Technologies Ltd. | Hardware-based congestion control for TCP traffic |
CN108418767A (zh) * | 2018-02-09 | 2018-08-17 | 华为技术有限公司 | 数据传输方法、设备及计算机存储介质 |
CN109391560A (zh) * | 2017-08-11 | 2019-02-26 | 华为技术有限公司 | 网络拥塞的通告方法、代理节点及计算机设备 |
KR101992750B1 (ko) * | 2017-12-18 | 2019-06-25 | 울산과학기술원 | 라우터 장치 및 그의 혼잡 제어 방법 |
CN109981471A (zh) * | 2017-12-27 | 2019-07-05 | 华为技术有限公司 | 一种缓解拥塞的方法、设备和系统 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104753810A (zh) * | 2013-12-30 | 2015-07-01 | 腾讯数码(天津)有限公司 | 一种网络入流量限速方法及装置 |
CN107493238A (zh) * | 2016-06-13 | 2017-12-19 | 华为技术有限公司 | 一种网络拥塞控制方法、设备及系统 |
KR102380619B1 (ko) * | 2017-08-11 | 2022-03-30 | 삼성전자 주식회사 | 이동 통신 시스템 망에서 혼잡 제어를 효율적으로 수행하는 방법 및 장치 |
CN108512774A (zh) * | 2018-04-18 | 2018-09-07 | 清华大学 | 无丢失网络中的拥塞控制方法 |
US10944660B2 (en) * | 2019-02-08 | 2021-03-09 | Intel Corporation | Managing congestion in a network |
-
2019
- 2019-07-18 CN CN202410396333.4A patent/CN118301078A/zh active Pending
- 2019-07-18 CN CN201910649933.6A patent/CN112242956B/zh active Active
-
2020
- 2020-07-15 EP EP20840799.9A patent/EP3993330A4/en active Pending
- 2020-07-15 WO PCT/CN2020/102158 patent/WO2021008562A1/zh unknown
-
2022
- 2022-01-12 US US17/573,909 patent/US20220141137A1/en active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080298248A1 (en) * | 2007-05-28 | 2008-12-04 | Guenter Roeck | Method and Apparatus For Computer Network Bandwidth Control and Congestion Management |
US20160226772A1 (en) * | 2015-02-03 | 2016-08-04 | Oracle International Corporation | Facilitating congestion control in a network switch fabric based on group traffic rates |
US20170093699A1 (en) * | 2015-09-29 | 2017-03-30 | Mellanox Technologies Ltd. | Hardware-based congestion control for TCP traffic |
CN109391560A (zh) * | 2017-08-11 | 2019-02-26 | 华为技术有限公司 | 网络拥塞的通告方法、代理节点及计算机设备 |
KR101992750B1 (ko) * | 2017-12-18 | 2019-06-25 | 울산과학기술원 | 라우터 장치 및 그의 혼잡 제어 방법 |
CN109981471A (zh) * | 2017-12-27 | 2019-07-05 | 华为技术有限公司 | 一种缓解拥塞的方法、设备和系统 |
CN108418767A (zh) * | 2018-02-09 | 2018-08-17 | 华为技术有限公司 | 数据传输方法、设备及计算机存储介质 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200236052A1 (en) * | 2020-03-04 | 2020-07-23 | Arvind Srinivasan | Improving end-to-end congestion reaction using adaptive routing and congestion-hint based throttling for ip-routed datacenter networks |
US12074799B2 (en) * | 2020-03-04 | 2024-08-27 | Intel Corporation | Improving end-to-end congestion reaction using adaptive routing and congestion-hint based throttling for IP-routed datacenter networks |
CN113411263A (zh) * | 2021-06-18 | 2021-09-17 | 中国工商银行股份有限公司 | 一种数据传输方法、装置、设备及存储介质 |
CN113411263B (zh) * | 2021-06-18 | 2023-03-14 | 中国工商银行股份有限公司 | 一种数据传输方法、装置、设备及存储介质 |
CN116055416A (zh) * | 2023-03-28 | 2023-05-02 | 新华三工业互联网有限公司 | 应用于长距通信网络场景下传输速率的调整方法及装置 |
CN116055416B (zh) * | 2023-03-28 | 2023-05-30 | 新华三工业互联网有限公司 | 应用于长距通信网络场景下传输速率的调整方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
EP3993330A4 (en) | 2022-08-10 |
CN112242956B (zh) | 2024-04-26 |
US20220141137A1 (en) | 2022-05-05 |
CN118301078A (zh) | 2024-07-05 |
WO2021008562A1 (zh) | 2021-01-21 |
EP3993330A1 (en) | 2022-05-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10237153B2 (en) | Packet retransmission method and apparatus | |
CN112242956A (zh) | 流速控制方法和装置 | |
US8717900B2 (en) | Mechanisms to improve the transmission control protocol performance in wireless networks | |
US9497125B2 (en) | Congestion control enforcement in a virtualized environment | |
WO2018210117A1 (zh) | 一种拥塞控制方法、网络设备及其网络接口控制器 | |
US20190109787A1 (en) | Method for transmitting data streams, and device | |
KR20210028722A (ko) | 혼잡 제어 방법 및 네트워크 디바이스 | |
CN110943933A (zh) | 一种实现数据传输的方法、装置和系统 | |
CN103929372B (zh) | 主动队列管理方法和设备 | |
US11671377B2 (en) | System and method for reducing bandwidth usage of a network | |
US9042227B2 (en) | Systems , methods, and computer program products providing feedback for network congestion management | |
CN108243117B (zh) | 一种流量监控方法、装置及电子设备 | |
US9614777B2 (en) | Flow control in a network | |
WO2017114231A1 (zh) | 一种报文发送方法、tcp代理以及tcp客户端 | |
WO2020063299A1 (zh) | 统计活跃流数目的方法、网络设备和系统 | |
US20070291782A1 (en) | Acknowledgement filtering | |
CN114513440A (zh) | 一种报文传输的方法、发送端和网络设备 | |
US11190454B2 (en) | Receiver-directed computer network congestion control system | |
CN113950099B (zh) | 一种网络拥塞控制方法及设备 | |
CN104811998B (zh) | 一种控制传输控制协议窗口调整的方法和无线接入点 | |
CN114095431A (zh) | 队列管理的方法和网络设备 | |
CN113691459A (zh) | 基于标识报文的数据传输方法及装置 | |
KR102709540B1 (ko) | Sdn 기반 메시지 전송 시스템 및 방법 | |
CN112737737B (zh) | 一种确认报文的处理方法和通信装置以及存储介质 | |
CN114285803A (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 |