CN108667739B - 拥塞控制方法、装置及系统 - Google Patents
拥塞控制方法、装置及系统 Download PDFInfo
- Publication number
- CN108667739B CN108667739B CN201710186607.7A CN201710186607A CN108667739B CN 108667739 B CN108667739 B CN 108667739B CN 201710186607 A CN201710186607 A CN 201710186607A CN 108667739 B CN108667739 B CN 108667739B
- Authority
- CN
- China
- Prior art keywords
- congestion
- message
- sending
- ratio
- end server
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/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
- 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
- H04L47/263—Rate modification at the source after receiving feedback
Abstract
本申请公开了一种拥塞控制方法、装置及系统,属于通信技术领域。该方法包括:当交换设备发生网络拥塞时,交换设备或者接收端服务器可以获取拥塞报文和交换设备的拥塞信息,并向发送端服务器发送拥塞通知消息,该拥塞通知消息中携带有该拥塞信息,该拥塞信息用于指示该交换设备中用于转发该拥塞报文的缓存队列的拥塞程度。因此,当发送端服务器接收到该拥塞通知消息后,可以根据该缓存队列拥塞程度的高低,按照不同的降速比例降低该缓存报文所属数据流的发送速率。本申请提供的拥塞控制方法,丰富了拥塞通知消息的内容,提高了拥塞控制的精度,可以在缓解网络拥塞的基础上,最大限度的提升网络带宽利用率。
Description
技术领域
本申请涉及通信技术领域,特别涉及一种拥塞控制方法、装置及系统。
背景技术
数据中心网络是一种由服务器和交换设备(例如交换机)组成的网络,能够对外提供计算和存储等服务。数据中心网络中的交换设备可以通过转发报文实现服务器之间的数据传输。但是,当某个交换设备的缓存队列中的报文数量过多时,可能导致网络拥塞。
相关技术中,为了控制网络拥塞,每个交换设备中设置有拥塞阈值,当交换设备的缓存队列中的报文所占用的缓存大小超过拥塞阈值后,交换设备可以从该缓存队列中确定一个拥塞报文,例如可以随机选取一个报文作为拥塞报文。之后,该交换设备可以向发送该拥塞报文的发送端服务器发送拥塞通知消息,该拥塞通知消息中包括该拥塞报文所属数据流的标识。发送端服务器接收到该拥塞通知消息后,即可降低该拥塞报文所属数据流的发送速率。
但是,相关技术中拥塞通知消息中一般只包含拥塞报文所属数据流的标识,该拥塞通知消息的内容较为单一,发送端服务器根据该拥塞通知消息进行拥塞控制的方式较为单一。
发明内容
为了解决相关技术中拥塞通知消息的内容以及拥塞控制的方式较为单一的问题,本发明实施例提供了一种拥塞控制方法、装置及系统。所述技术方案如下:
第一方面,提供了一种拥塞控制方法,该方法包括:
当交换设备发生网络拥塞时,交换设备或者接收端服务器可以获取拥塞报文和该交换设备的拥塞信息,该拥塞信息用于指示该交换设备的用于转发该拥塞报文的缓存队列的拥塞程度;进一步的,交换设备或者接收端服务器可以根据该拥塞报文确定数据流标识,并向发送端服务器发送拥塞通知消息,该拥塞通知消息中携带有该拥塞信息和该数据流标识。
其中,该数据流标识用于指示该拥塞报文所属的数据流,该拥塞通知消息用于指示该发送端服务器根据该缓存队列的拥塞程度,降低该数据流的发送速率。该拥塞信息可以包括流占比或根据该流占比获得的拥塞指示值,该流占比为属于该数据流的报文在该缓存队列中占用的缓存与该缓存队列的总缓存之比,属于该数据流的报文包括该拥塞报文。
本发明实施例所示的方法,交换设备或者接收端服务器向发送端服务器发送的拥塞通知消息中还包括用于指示缓存队列的拥塞程度的拥塞信息,因此当发送端服务器接收到该拥塞通知消息后,可以根据该缓存队列拥塞程度的高低,按照不同的降速比例降低该拥塞报文所属数据流的发送速率。该拥塞控制方法的控制精度较高,可以在缓解网络拥塞的基础上,最大限度的提升带宽利用率。
可选的,当该拥塞信息包括流占比时,该拥塞信息中还可以包括:深度占比;该深度占比为:该缓存队列中的所有报文占用的缓存与该缓存队列的总缓存之比。
可选的,该拥塞指示值由该流占比和深度占比计算得到;该深度占比为:该缓存队列中的所有报文占用的缓存与该缓存队列的总缓存之比。
可选的,该拥塞通知消息可以是由交换设备生成并发送至接收发送端服务器的,该交换设备获取拥塞报文和拥塞信息的过程具体可以包括:
当该交换设备检测到该缓存队列发生网络拥塞时,从该缓存队列中获取拥塞报文,并获取该缓存队列的拥塞信息,之后该交换设备即可按照预设的消息格式封装该拥塞信息和该数据流标识,生成该拥塞通知消息,并向该发送端服务器发送该拥塞通知消息。
可选的,该拥塞通知消息还可以是由接收端服务器生成并发送至发送端服务器的,该接收端服务器获取拥塞报文和该交换设备的拥塞信息的过程具体可以包括:
当接收端服务器接收到该交换设备发送的封装有该拥塞信息的报文时,确定该交换设备发生网络拥塞,将该封装有拥塞信息的报文确定为该拥塞报文,并从该拥塞报文中获取该拥塞信息,该拥塞信息是该交换设备在检测到该缓存队列发生网络拥塞后获取并封装在该报文中的。进一步的,该接收端服务器可以按照预设的消息格式封装该拥塞信息和该数据流标识,生成该拥塞通知消息,并向该发送端服务器发送该拥塞通知消息。
本发明实施例所示的方法,交换设备或者接收端服务器向发送端服务器发送的拥塞通知消息中还包括用于指示缓存队列的拥塞程度的拥塞信息,因此当发送端服务器接收到该拥塞通知消息后,可以根据该缓存队列拥塞程度的高低,按照不同的降速比例降低该拥塞报文所属数据流的发送速率。该拥塞控制方法的控制精度较高,可以在缓解网络拥塞的基础上,最大限度的提升带宽利用率。
第二方面,提供了一种拥塞控制方法,该方法可以包括:
发送端服务器接收交换设备或者接收端服务器发送的拥塞通知消息,该拥塞通知消息中携带有拥塞信息和数据流标识,该数据流标识用于指示拥塞报文所属的数据流,该拥塞信息用于指示交换设备的用于转发属于该数据流的报文的缓存队列的拥塞程度;进一步的,该发送端服务器可以根据该拥塞信息确定该缓存队列的拥塞程度,进而确定与该缓存队列的拥塞程度对应的目标降速比例;之后该发送端服务器即可按照该目标降速比例,降低该数据流的发送速率。
其中,该拥塞信息包括流占比或根据该流占比获得的拥塞指示值,该流占比为属于该数据流的报文在该缓存队列中占用的缓存与该缓存队列的总缓存之比,属于该数据流的报文包括该拥塞报文。
本发明实施例所示的方法,发送端服务器所接收到的拥塞通知消息中还包括用于指示缓存队列的拥塞程度的拥塞信息,因此该发送端服务器可以根据该缓存队列拥塞程度的高低,按照不同的降速比例降低该拥塞报文所属数据流的发送速率,该拥塞控制方法的控制精度较高,可以在缓解网络拥塞的基础上,最大限度的提升带宽利用率。
可选的,当该拥塞信息包括流占比时,该拥塞信息还可以包括:深度占比;该深度占比为:该缓存队列中的所有报文占用的缓存与该缓存队列的总缓存之比。
可选的,该发送端服务器根据该拥塞信息确定该缓存队列的拥塞程度的过程具体可以包括:该发送端服务器计算该流占比和该深度占比的乘积,得到拥塞指示值,并根据该拥塞指示值确定该缓存队列的拥塞程度。相应的,该发送端服务器确定与该缓存队列的拥塞程度对应的目标降速比例的过程可以包括:根据预先存储的拥塞程度与降速比例的对应关系确定与该缓存队列的拥塞程度对应的目标降速比例。
可选的,该拥塞指示值可以是由该流占比和深度占比计算得到;该深度占比为:该缓存队列中的所有报文占用的缓存与该缓存队列的总缓存之比。
本发明实施例所示的方法,发送端服务器所接收到的拥塞通知消息中还包括用于指示缓存队列的拥塞程度的拥塞信息,因此该发送端服务器可以根据该缓存队列拥塞程度的高低,按照不同的降速比例降低该拥塞报文所属数据流的发送速率,该拥塞控制方法的控制精度较高,可以在缓解网络拥塞的基础上,最大限度的提升带宽利用率。
第三方面,提供了一种拥塞控制装置,该拥塞控制装置包括:至少一个模块,该至少一个模块用于实现上述第一方面所提供的拥塞控制方法。
第四方面,提供了另一种拥塞控制装置,配置于发送端服务器中,该拥塞控制装置包括:至少一个模块,该至少一个模块用于实现上述第二方面所提供的拥塞控制方法。
第五方面,提供了一种拥塞通知设备,该拥塞通知设备可以为交换设备或者接收端服务器,该拥塞通知设备包括:处理器,存储器和总线;该总线用于连接该处理器和该存储器,该处理器用于执行该存储器中存储的程序以实现上述第一方面所提供的拥塞控制方法。
第六方面,提供了一种发送端服务器,该发送端服务器包括:处理器,存储器和总线;该总线用于连接该处理器和该存储器,该处理器用于执行该存储器中存储的程序以实现上述第二方面所提供的拥塞控制方法。
第七方面,提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当该计算机可读存储介质在计算机上运行时,使得计算机执行上述第一方面所提供的拥塞控制方法。
第八方面,提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当该计算机可读存储介质在计算机上运行时,使得计算机执行上述第二方面所提供的拥塞控制方法。
第九方面,提供了一种包含指令的计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述第一方面所提供的拥塞控制方法。
第十方面,提供了一种包含指令的计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述第二方面所提供的拥塞控制方法。
第十一方面,提供了一种拥塞控制系统,该系统可以包括:拥塞通知设备和发送端服务器;该拥塞通知设备为交换设备或者接收端服务器。
其中,该拥塞通知设备可以包括第三方面所提供的拥塞控制装置,或者可以为第五方面所提供的拥塞通知设备;
该发送端服务器可以包括第四方面所提供的拥塞控制装置,或者可以为第六方面所提供的发送端服务器。
上述本发明实施例第三到第十方面所获得的技术效果与第一到第二方面中对应的技术手段获得的技术效果近似,在这里不再赘述。
综上所述,本发明实施例提供了一种拥塞控制方法、装置及系统,当交换设备出现网络拥塞时,交换设备或者接收端服务器可以获取该交换设备的拥塞信息,并向发送端服务器发送包括该拥塞信息的拥塞通知消息。由于该拥塞信息可以用于指示交换设备中用于转发该拥塞报文的缓存队列的拥塞程度,因此当发送端服务器接收到该拥塞通知消息后,可以根据该缓存队列拥塞程度的高低,按照不同的降速比例降低该拥塞报文所属数据流的发送速率,该拥塞控制方法的控制精度较高,可以在缓解网络拥塞的基础上,最大限度的提升带宽利用率。
附图说明
图1是本发明实施例提供的一种数据中心网络的架构图;
图2是本发明实施例提供的一种交换设备的硬件逻辑架构图;
图3是本发明实施例提供的一种服务器的结构示意图;
图4是本发明实施例提供的一种拥塞控制方法的流程图;
图5是本发明实施例提供的一种拥塞报文的数据结构示意图;
图6是本发明实施例提供的一种拥塞通知消息的数据结构示意图;
图7是本发明实施例提供的一种发送拥塞通知消息的方法流程图;
图8是本发明实施例提供的一种封装有拥塞信息的拥塞报文的数据结构示意图;
图9是本发明实施例提供的一种拥塞控制装置的结构示意图;
图10是本发明实施例提供的另一种拥塞控制装置的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
图1是本发明实施例提供的一种数据中心网络的架构图,如图1所述,该数据中心网络可以包括多个交换设备(图中示出了10a和10b)和多个服务器(图中示出了20a-20d)。其中每个服务器可以通过网络端口卡(英文:network interface card,NIC)21与一个交换设备相连,该多个交换设备10a和10b可以通过转发报文实现该数据中心网络中多个服务器20a-20d中任意两个服务器之间的通信。其中,该每个服务器可以分配有唯一的互联网协议(英文:internet protocol,IP)地址,例如,服务器20a至20d的IP地址依次为IP-1至IP-4,每个交换设备可以根据转发报文中的目的IP地址确定该报文的接收端服务器,以实现报文的转发。此外需要说明的是,根据数据中心网络架构的不同,该交换设备的类型也有所不同。示例的,对于三层架构的网络,该交换设备可以为接入交换机、汇聚交换机或核心交换机;对于叶脊(Leaf-spine)架构的网络,该交换设备可以为Leaf交换机或Spine交换机。
图2是本发明实施例提供的一种交换设备的硬件逻辑架构图。参考图2,该交换设备的硬件结构主要可以包括中央处理器(英文:central processing unit,CPU)、包处理器(英文:packet processor,PP)及流量管理器(英文:traffic manager,TM)。其中,CPU主要用于转发或处理控制报文,TM可以用于检测该交换设备中每个缓存队列(例如Q-1、Q-k)的拥塞情况,当TM检测到某个缓存队列中的报文(例如P1、P2至Pn)占用的缓存过多,发生网络拥塞时,TM可以获取该缓存队列的拥塞信息,并根据从该缓存队列中获取到的拥塞报文确定数据流标识,PP可以用于封装该拥塞信息和数据流标识,生成拥塞通知消息,并向发送端服务器发送该拥塞通知消息,在另一个实现方式中,PP将该拥塞信息封装到该拥塞报文中,并将封装了拥塞信息的拥塞报文发送给接收端服务器。此外,当该交换设备中未配置有TM时,上述TM的功能也可以由PP实现。该PP和TM的具体功能可以参考下述附图4和附图6所示实施例中交换设备所执行的方法。
图3是本发明实施例提供的一种服务器的结构示意图。如图3所示,该服务器可以包括:至少一个处理器30,至少一个网络接口31或者其他通信接口,存储器32和至少一个通信总线33,该通信总线33用于实现这些模块之间的连接通信。处理器30可以用于执行存储器32中存储的可执行模块,例如计算机程序321。存储器32可能包含高速随机存取存储器(英文:random access memory,RAM),也可能还包括非易失性存储器(英文:non-volatilememory),例如至少一个磁盘存储器。通过至少一个网络接口31(可以是有线或者无线)可以实现该服务器与至少一个其他网元之间的通信连接,例如可以使用互联网,广域网,本地网或者城域网等。
在本发明实施例中,当该服务器为发送报文的服务器时,该服务器中的处理器30可以通过执行程序321来实现下述附图4所示实施例中发送端服务器所执行的方法;当该服务器为接收报文的服务器时,该服务器中的处理器30可以通过执行该程序321来实现下述附图7所示实施例中接收端服务器所执行的方法。
图4是本发明实施例提供的一种拥塞控制方法的流程图,该方法可以应用于图1所示的数据中心网络中,参考图4,该方法可以包括:
步骤101、交换设备检测到该交换设备发生网络拥塞时,获取拥塞报文。
交换设备通常包括多个端口,每个端口配置有多个(例如,8个)缓存队列,本发明实施例通过监测每个缓存队列来确定该交换设备是否发生网络拥塞。
在一个实施方式中,交换设备中可以预先设置有拥塞门限,当交换设备任一端口的任一缓存队列中的报文所占用的缓存超过该拥塞门限时,交换设备可以确定该缓存队列发生网络拥塞,并可以从该缓存队列中获取拥塞报文。具体的,交换设备可以随机从该缓存队列中获取一个报文作为该拥塞报文,或者,该交换设备也可以将该缓存队列中最后到达的报文确定为该拥塞报文。
示例的,假设图1中交换设备10b中某个端口的一个缓存队列Q-1的缓存包括1000个缓存单元,该预设的拥塞门限为300个缓存单元。则当该端口中该缓存队列Q-1中的报文所占用的缓存单元个数超过300时,交换设备可以确定该缓存队列Q-1发生网络拥塞,并可以将该缓存队列Q-1中最后到达的报文确定为拥塞报文。假设该拥塞报文的数据结构如图5所示,从图5可以看出,该拥塞报文主要包括IP包头和载荷(payload)。其中,IP包头中记录了该拥塞报文的源IP地址:IP-1,目的IP地址:IP-4,源端口:端口1以及目的端口:端口2。
步骤102、交换设备获取该交换设备的拥塞信息。
在本发明实施例中,该拥塞信息用于指示交换设备中用于转发该拥塞报文的缓存队列的拥塞程度,且该拥塞信息可以包括多种不同的参数。具体的,在一种可选的实现方式中,该拥塞信息可以包括流占比。该流占比为属于拥塞报文所属数据流的报文在缓存队列中占用的缓存与该缓存队列的总缓存之比,其中,属于该数据流的报文包括该拥塞报文。
示例的,假设交换设备10b为某端口的一个缓存队列Q-1分配的缓存单元的总个数N=1000,该交换设备10b检测到该缓存队列Q-1发生网络拥塞时,该缓存队列Q-1中最后到达的拥塞报文所属的数据流的报文占用的缓存单元的个数K为100个,则该交换设备可以确定流占比F满足:F=100/1000=10%。
在一个实施例方式中,该拥塞信息不仅包括流占比,还包括深度占比。该深度占比为:缓存队列中的所有报文占用的缓存与该缓存队列的总缓存之比。
示例的,假设交换设备10b为某端口的一个缓存队列Q-1分配的缓存单元的总个数N=1000,当该交换设备检测到该缓存队列Q-1发生网络拥塞时,该缓存队列Q-1中的所有报文所占用的缓存单元的个数为360个,则该交换设备可以确定的深度占比Q为:Q=360/1000=36%。
在另一实施方式中,该拥塞信息还可以为拥塞指示值S,该拥塞指示值S由流占比F和深度占Q比计算得到。具体来说,该拥塞指示值S可以满足:S=流占比F×深度占比Q。
示例的,假设该交换设备10b当前获取到的流占比F为:F=10%,深度占比Q为:Q=36%,则该交换设备可以进一步确定拥塞指示值S为:S=F×Q=10%×36%=3.6%。
此外,在另一种可选的实现方式中,该拥塞信息中还可以直接记录交换设备的缓存队列的总缓存大小,该缓存队列中的报文所占用的缓存大小,以及拥塞报文所属的数据流中的报文所占用的缓存大小,然后由发送端服务器根据该拥塞信息中记录的各个数据计算流占比以及深度占比,并根据计算结果降低该拥塞报文所属数据流的发送速率。在实际应用中,该拥塞信息只要能够反映当前缓存队列中的报文占用总缓存的比例,或者能进一步反应拥塞报文所属的所述数据流的报文占用的缓存与缓存队列的总缓存之比即可,本发明实施例对该拥塞信息中包括的具体参数不做限定。
步骤103、交换设备根据该拥塞报文确定数据流标识。
其中,该数据流标识用于指示该拥塞报文所属的数据流。该数据流标识具体可以包括:拥塞报文的源端口和拥塞报文的目的端口,或者,数据流的序号。
示例的,假设该数据流标识中包括:拥塞报文的源端口和拥塞报文的目的端口,且该交换设备10b所获取到的拥塞报文的数据结构如图5所示,则该交换设备10b可以确定数据流标识为:源端口:端口1,目的端口:端口2。
步骤104、交换设备按照预设的消息格式封装该拥塞信息和数据流标识,生成拥塞通知消息。
在本发明实施例中,交换设备中可以预先设置有用于封装拥塞通知消息的消息格式,例如可以为用户数据报协议(英文:user datagram protocol,UDP)格式,交换设备获取到拥塞信息和数据流标识后,即可根据该预设的消息格式生成该拥塞通知消息。其中,该拥塞通知消息中的源端口可以为交换设备随机确定的一个端口,目的端口可以为预设的用于接收该拥塞通知消息的协议端口。也即是,在本发明实施例中,数据中心网络中的各个服务器中都可以预先设置有专门用于接收拥塞通知消息的协议端口,以保证当该数据中心网络的网络架构为三层及以上的网络时,交换设备可以通过该协议端口将拥塞通知消息成功发送至发送端服务器。
进一步的,为了降低拥塞信息所占用的空间,提高数据传输的效率,交换设备还可以先对该拥塞信息进行编码,然后再进行封装。例如,该交换设备中可以预先存储有参数范围与码字的对应关系,对于处于不同参数范围的拥塞信息,该交换设备可以根据该对应关系,将该拥塞信息编码为对应的码字。
示例的,假设该拥塞信息包括流占比F和深度占比Q,该交换设备10b中预先存储的参数范围与码字的对应关系如表1所示。根据表1可知,当流占比F(或者深度占比Q)大于0,且小于等于25%时,该交换设备10b可以将该流占比F(或者深度占比Q)编码为00。若交换设备10b当前检测到的流占比F为10%,深度占比Q为36%,则根据表1所示的对应关系,该交换设备10b可以将该流占比F编码为00,将深度占比Q编码为01,该编码后的流占比F和深度占比Q分别占用两个比特(bit)的空间。
表1
参数范围 | (0,25%] | (25%,50%] | (50%,75%] | (75%,100%] |
码字 | 00 | 01 | 10 | 11 |
进一步的,该交换设备10b可以按照UDP格式封装该编码后的拥塞信息以及数据流标识,得到拥塞通知消息,该拥塞通知消息的具体数据结构可以如图6所示。从图6中可以看出,该封装后的拥塞通知消息主要包括IP包头(IPHeader)字段,UDP字段,指示信息字段以及载荷。
其中,该编码后的拥塞信息可写入至IP包头字段中。在实际应用中,该拥塞信息中还可以包括1bit的控制字段(CN_Enable),该控制字段CN_Enable用于指示是否启用该拥塞通知功能。例如,当该控制字段为1时,交换设备可以确认需要向发送端服务器发送该拥塞通知消息;当该控制字段为0时,交换设备可以确认无需发送该拥塞通知消息。因此该IP包头字段中一共可以包括5bit的拥塞信息,具体为:2bit的流占比F,2bit的深度占比Q以及1bit的控制字段CN_Enable。
参考图6,在该拥塞通知消息的UDP字段中,定义了该拥塞通知消息的源端口(source Port)和目的端口(destination Port),其中该源端口可以为该交换设备10b随机设置的,目的端口可以为预设的用于接收该拥塞通知消息的协议端口CN_port,以保证该拥塞通知消息可以在三层及以上的网络(例如UDP网络或者传输控制协议TCP网络)中转发。
同时,在UDP字段后新定义了指示信息字段,该指示信息字段用于表示数据流标识。从图6可以看出,该指示信息字段具体可以包括拥塞报文的源端口,例如端口1、拥塞报文的目的端口,例如端口2,以及该拥塞报文所支持的协议类型(type)等信息。
步骤105、交换设备向发送端服务器发送拥塞通知消息。
交换设备生成该拥塞通知消息后,可以直接将该拥塞通知消息发送至发送端服务器,该拥塞通知消息可以用于指示该发送端服务器根据该缓存队列的拥塞程度,降低该拥塞报文所属的数据流的发送速率。其中,该发送端服务器是指发送该拥塞报文的服务器,该交换设备可以根据该拥塞报文中的源IP地址确定该发送端服务器,并向该发送端服务器发送该拥塞通知消息。示例的,假设该拥塞报文的数据结构如图5所示,则交换设备10b根据该拥塞报文的IP包头可以确定发送端服务器为IP地址为IP-1的服务器,即服务器20a,并可以向该服务器20a发送如图6所示的拥塞通知消息。
需要说明的是,上述步骤103至步骤105所示的方法中,是由交换设备主动构造拥塞通知消息,并直接向发送端服务器发送该拥塞通知消息的,而该拥塞报文则会沿着正常查表后对应的转发路径继续转发至接收端服务器。上述生成并发送拥塞通知消息的方式可以称为后向传输(backward)模式。
在本发明实施例另一种可选的实现方式中,交换设备还可以采用前向传输(forward)模式发送该拥塞通知消息。图7是本发明实施例提供的一种通过前向传输模式发送拥塞通知消息的方法流程图,参考图7,该方法具体可以包括:
交换设备在通过上述步骤101和步骤102所示的方法获取到拥塞报文以及拥塞信息之后,可以执行步骤1031。
步骤1031、交换设备将拥塞信息封装在拥塞报文中。
交换设备可以按照预设的封装格式,将获取到的拥塞信息封装在拥塞报文中。例如,交换设备10b可以在拥塞报文的IP包头中添加该拥塞信息,该封装有拥塞信息的拥塞报文的数据结构可以如图8所示,从图8中可以看出,该拥塞报文的IP包头中添加的拥塞信息具体可以包括:流占比F、深度占比Q以及控制字段。
步骤1032、交换设备将封装有该拥塞信息的该拥塞报文发送至接收端服务器。
进一步的,交换设备可以根据查表后得到的转发路径,将该拥塞报文转发至对应的接收端服务器。示例的,根据图8所示的拥塞报文结构可知,该拥塞报文的接收端服务器为IP地址为IP-4的服务器,即服务器20d,因此交换设备10b可以将该图8所示的拥塞报文转发至服务器20d。
步骤1033、当接收端服务器接收到交换设备发送的封装有拥塞信息的报文时,确定该交换设备发生网络拥塞,并将该封装有拥塞信息的报文确定为拥塞报文。
接收端服务器在接收交换设备发送的报文的过程中,可以检测每个报文中是否封装有拥塞信息,例如该接收端服务器可以检测每个报文的IP包头中是否记录有拥塞信息。若接收端服务器检测到封装有拥塞信息的报文,则可以确定发送该报文的交换设备发生了网络拥塞,并可以将该封装有拥塞信息的报文确定为拥塞报文。示例的,当服务器20d接收到交换设备10b发送的如图8所示的报文后,可以确定该交换设备10b发生了网络拥塞,并可以将如图8所示的报文确定为拥塞报文。
步骤1034、接收端服务器从该拥塞报文中获取拥塞信息,并根据该拥塞报文确定数据流标识。
进一步的,接收端服务器可以从该拥塞报文的IP包头提取出拥塞信息,并根据该拥塞报文确定数据流标识。其中,该接收端服务器确定数据流标识的具体过程可以参考上述步骤103,此处不再赘述。
步骤1035、接收端服务器按照预设的消息格式封装该拥塞信息和数据流标识,生成拥塞通知消息。
在本发明实施例中,接收端服务器中也可以预先设置有用于封装拥塞通知消息的消息格式,该接收端服务器获取到的拥塞信息和数据流标识后,即可根据该预设的消息格式生成该拥塞通知消息。该拥塞通知消息的数据结构可以与图6所示的结构相同,但其中IP包头字段中的源地址应当为该接收端服务器20d的IP地址。
步骤1036、接收端服务器向该发送端服务器发送该拥塞通知消息。
接收端服务器可以根据该拥塞报文中的源IP地址,确定发送端服务器,并向该发送端服务器发送该拥塞通知消息。示例的,接收端服务器20d可以将如图6所示的拥塞通知消息发送至发送端服务器20a。
需要说明的是,在实际应用中,交换设备中可以预置有拥塞通知模式,该拥塞通知模式可以包括backward模式或者forward模式。当该交换设备中预置的拥塞通知模式为backward模式时,该交换设备可以按照上述步骤103至步骤105所示的方法生成并发送拥塞通知消息;而当该预置的拥塞通知模式为forward模式时,该交换设备可以按照上述步骤1031至步骤1036所示的方法生成并发送拥塞通知消息。
步骤106、发送端服务器根据该拥塞信息确定该缓存队列的拥塞程度。
发送端服务器根据上述backward模式或者forward模式接收到拥塞通知消息后,可以根据该拥塞通知消息中携带的数据流标识确定拥塞报文所属的数据流,并可以根据该拥塞通知消息中携带的拥塞信息确定交换设备中用于转发该拥塞报文的缓存队列的拥塞程度。根据该拥塞信息中具体包括的参数的不同,该发送端服务器确定该缓存队列的拥塞程度的方法也有所不同。
具体的,在第一种可选的实现方式中,当该拥塞信息中包括流占比时,该发送端服务器可以根据预设的流占比与拥塞程度的对应关系,确定该拥塞信息中包括的流占比所对应的拥塞程度。示例的,该流占比与拥塞程度的对应关系可以如表2所示,从表2中可知,流占比大于0,且小于等于25%时对应的拥塞程度为:低;流占比大于75%时对应的拥塞程度为:高。若发送端服务器20a接收到的拥塞通知消息中包括的流占比F为10%,则根据表2所示的对应关系该发送端服务器20a可以确定用于转发该缓存报文的缓存队列的拥塞程度为:低。
表2
缓存占比 | (0,25%] | (25%,50%] | (50%,75%] | (75%,100%] |
拥塞程度 | 低 | 中 | 中高 | 高 |
在第二种可选的实现方式中,若该拥塞信息中包括:流占比F和深度占比Q,则发送端服务器可以先计算该流占比F和深度占比Q的乘积,得到拥塞指示值S:S=F×Q;然后再根据预设的拥塞指示值与拥塞程度的对应关系,将该拥塞指示值S所对应的拥塞程度确定为该缓存队列的拥塞程度。
示例的,该拥塞指示值与拥塞程度的对应关系可以如表3所示。根据表3可知,拥塞指示值大于0,且小于等于6%时对应的拥塞程度为:低;拥塞指示值大于56%,且小于等于100%时对应的拥塞程度为:高。若发送端服务器20a接收到的拥塞通知消息中包括的流占比F为10%,深度占比Q为36%,则该发送端服务器20a可以确定拥塞指示值S满足:S=10%×36%=3.6%。进一步的,该发送端服务器20a可以根据表3所示的对应关系,确定交换设备中该缓存队列的拥塞程度为:低。
表3
拥塞指示值 | (0,6%] | (6%,25%] | (25%,56%] | (56%,100%] |
拥塞程度 | 低 | 中 | 中高 | 高 |
在第三种可选的实现方式中,若该拥塞信息中包括:拥塞指示值S,则该发送端服务器可以直接根据预设的拥塞指示值与拥塞程度的对应关系,将该拥塞指示值S所对应的拥塞程度确定为缓存队列的拥塞程度。其中,该拥塞指示值S可以满足:S=流占比F×深度占比Q。
示例的,若发送端服务器20a接收到的拥塞通知消息中包括的拥塞指示值S为3.6%,则该发送端服务器20a可以根据表3所示的对应关系,确定缓存队列的拥塞程度为:低。
需要说明的是,若该拥塞通知消息中携带的拥塞信息是经过编码后的码字,则该发送端服务器可以先根据相应的解码算法对该码字进行解码,以确定该拥塞信息中各参数的具体参数值,然后再根据该具体参数值确定缓存队列的拥塞程度。
示例的,该发送端服务器中可以存储有如表4所示的解码对照表,该解码对照表可以与表1所示的编码表相对应。当发送端服务器20a接收到的拥塞通知消息中,拥塞信息所包括的流占比F为00,深度占比Q为01时,该发送端服务器20a可以根据表4所示的对应关系,将流占比F的具体参数值确定为12%,将深度占比Q的具体参数值确定为38%。然后该发送端服务器20a可以再根据该流占比F=12%,以及深度占比Q=38%,计算出拥塞指示值S:S=12%×38%=4.56%。最后该发送端服务器20a即可根据表3所示的对应关系,确定缓存队列的拥塞程度为:低。
表4
码字 | 00 | 01 | 10 | 11 |
参数值 | 12% | 38% | 62% | 88% |
还需要说明的是,参考表1可知,交换设备在对拥塞信息进行编码时,会将某个范围内参数值均编码为一个码字,例如可以将大于0且小于等于25%的流占比均编码为00。因此,发送端服务器在配置解码对照表时,可以将每个码字解码后的参数值确定为该码字所对应的参数范围内的任一参数值。例如,码字00所对应的参数范围为:大于0且小于等于25%,则发送端服务器可以将该码字00解码后的参数值确定为12%,或者也可以确定为25%。
步骤107、发送端服务器确定与该缓存队列的拥塞程度对应的目标降速比例。
在本发明实施例中,该发送端服务器中可以预先存储有拥塞程度与降速比例的对应关系,该对应关系中,降速比例与拥塞程度正相关,即拥塞程度越高,降速比例越大。该发送端服务器可以根据该对应关系确定缓存队列的拥塞程度所对应的目标降速比例。或者,该发送端服务器中还可以预先存储有降速比例确定算法,该发送端服务器可以根据该降速比例确定算法,确定与该缓存队列的拥塞程度对应的目标降速比例。
示例的,假设发送端服务器中预先存储的拥塞程度与降速比例的对应关系如表5所示。从表5中可以看出,缓存队列的拥塞程度为中时所对应的降速比例为30%,拥塞程度为高时所对应的降速比例为80%,该降速比例与拥塞程度正相关。若发送端服务器20a根据拥塞信息所确定的缓存队列的拥塞程度为:低,则根据表5所示的对应关系,该发送端服务器20a可以进一步确定目标降速比例为:10%。
表5
拥塞程度 | 低 | 中 | 中高 | 高 |
降速比例 | 10% | 30% | 50% | 80% |
需要说明的是,在实际应用中,该流占比与拥塞程度的对应关系,以及拥塞程度与降速比例的对应关系可以存储在一个关系对应表中,或者,该发送端服务器也可以直接存储流占比与降速比例的对应关系;同样的,该拥塞指示值与拥塞程度的对应关系,以及拥塞程度与降速比例的对应关系也可以存储在一个关系对应表中,或者,该发送端服务器也可以直接存储拥塞指示值与降速比例的对应关系,本发明实施例对上述各个对应关系的具体存储方式不做限定。
步骤108、发送端服务器按照该目标降速比例,降低拥塞报文所属数据流的发送速率。
由于该拥塞通知消息中还包括数据流标识,因此发送端服务器可以将该数据流标识所指示的数据流(即该拥塞报文所属的数据流)确定为待控制的数据流,并可以按照该目标降速比例,降低该拥塞报文所属数据流的发送速率,从而缓解交换设备中用于转发该拥塞报文的缓存队列的拥塞程度。
示例的,该发送端服务器根据图6所示的拥塞通知消息,可以从指示字段中确定该数据流标识包括:源端口为端口1,目的端口为端口2。因此,该发送端服务器可以将从端口1发送至端口2的数据流确定为该拥塞报文所属的数据流,并可以将该数据流的发送速率降低10%。也即是,将该数据流的发送速率调整至原发送速率的90%。
作为一种可选的实现方式,该发送端服务器还可以按照预设的降速比例确定算法,根据该拥塞信息,确定目标降速比例。示例的,假设该拥塞信息包括流占比F和深度占比Q,则该预设的降速比例确定算法可以如下述伪代码所示:
其中,High_threshold为预设的高门限,Low_threshold为预设的低门限,且Low_threshold小于High_threshold。根据上述伪代码可知,当Q×F超过高门限时,发送端服务器可以执行严格流控,即strict_flow_control();当Q×F大于低门限且不大于高门限时,发送端服务器可以执行松散流控,即Loose_flow_control();当Q×F小于等于低门限时,发送端服务器可以不做流控,即ignore()。其中严格流控可以是指将该数据流的发送速率降低一个较高的比例,例如将发送速率降低60%;松散流控可以是指将该数据流的发送速率降低一个较低的比例,例如可以将发送速率降低20%;不做流控可以是指不改变该数据流的发送速率。
在相关技术中,当交换设备发生网络拥塞时,不论交换设备从缓存队列中所选取的拥塞报文是哪一个,发送端服务器都是按照统一的拥塞控制等级控制该拥塞报文所属的数据流的发送速率的。但是,当交换设备缓存队列中的报文占用的缓存较多,但拥塞报文所属数据流中的报文占用的缓存比例却较低时,可能出现该拥塞报文所属数据流的发送速率被过度降低,导致网络带宽利用率过低,而网络拥塞状况却没有得到有效缓解的情况。而在本发明实施例中,该拥塞信息可以体现出拥塞报文所属的数据流在该缓存队列中的拥塞程度,因此发送端服务器可以基于该拥塞报文所属数据流在缓存队列中的拥塞程度,按照不同的降速比例降低该数据流的发送速率,不仅有效提高了拥塞控制的精度,还可以在缓解网络拥塞的基础上,最大限度的提升带宽利用率。此外,由于发送端服务器仅调整拥塞报文所属的数据流的发送速率,因此不会对发送端服务器中其他并发的数据流造成影响。
需要说明的是,本发明实施例提供的拥塞控制方法的步骤的先后顺序可以进行适当调整,步骤也可以根据情况进行相应增减,例如步骤102可以与步骤101同步执行,步骤103可以在步骤102之前执行。任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化的方法,都应涵盖在本申请的保护范围之内,因此不再赘述。
综上所述,本发明实施例提供了一种拥塞控制方法,当交换设备发生网络拥塞时,交换设备或者接收端服务器向发送端服务器发送的拥塞通知消息中还携带有拥塞信息,该拥塞信息用于指示该交换设备的用于转发拥塞报文的缓存队列的拥塞程度。因此,当发送端服务器接收到该拥塞通知消息后,可以根据该缓存队列拥塞程度的高低,按照不同的降速比例降低拥塞报文所属数据流的发送速率。本发明实施例提供的拥塞控制方法的控制精度较高,可以在缓解网络拥塞的基础上,最大限度的提升带宽利用率。并且,由于该发送端服务器只调整拥塞报文所属数据流的发送速率,因此不会对发送端服务器中其他并发的数据流造成影响。
图9是本发明实施例提供的一种拥塞控制装置的结构示意图,如图9所示,该拥塞控制装置可以包括:
获取模块201,用于当交换设备发生网络拥塞时,获取拥塞报文和该交换设备的拥塞信息,该拥塞信息用于指示该交换设备的用于转发该拥塞报文的缓存队列的拥塞程度。
确定模块202,用于根据该拥塞报文确定数据流标识,该数据流标识用于指示该拥塞报文所属的数据流。
发送模块203,用于向发送端服务器发送拥塞通知消息,该拥塞通知消息中携带有该拥塞信息和该数据流标识,该拥塞通知消息用于指示该发送端服务器根据该缓存队列的拥塞程度,降低该数据流的发送速率。
其中,该拥塞信息包括流占比或根据该流占比获得的拥塞指示值,该流占比为属于该数据流的报文在该缓存队列中占用的缓存与该缓存队列的总缓存之比,属于该数据流的报文包括该拥塞报文。
可选的,当该拥塞信息包括流占比时,该拥塞信息还包括:深度占比;该深度占比为:该缓存队列中的所有报文占用的缓存与该缓存队列的总缓存之比。
可选的,该拥塞指示值由该流占比和深度占比计算得到;该深度占比为:该缓存队列中的所有报文占用的缓存与该缓存队列的总缓存之比。
在本发明实施例一种可选的实现方式中,图9所示的拥塞控制装置可以配置于交换设备中,此时该获取模块201具体可以用于实现上述图4所示实施例中步骤101和步骤102,该发送模块203具体可以用于实现上述图4所示实施例中步骤104和步骤105。
在本发明实施例另一种可选的实现方式中,该拥塞控制装置还可以配置于接收端服务器中,此时,该获取模块201具体可以用于实现上述图7所示实施例中步骤1033和步骤1034,该发送模块203具体可以用于实现上述图7所示实施例中步骤1035和步骤1036。
综上所述,本发明实施例提供了一种拥塞控制装置,当交换设备发生网络拥塞时,发送模块向发送端服务器发送的拥塞通知消息中还携带有拥塞信息,该拥塞信息用于指示该交换设备的用于转发拥塞报文的缓存队列的拥塞程度。当发送端服务器接收到该拥塞通知消息后,可以根据该缓存队列拥塞程度的高低,按照不同的降速比例降低拥塞报文所属数据流的发送速率。本发明实施例提供的拥塞控制装置的控制精度较高,可以在缓解网络拥塞的基础上,最大限度的提升带宽利用率。
图10是本发明实施例提供的另一种拥塞控制装置的结构示意图,该装置可以配置于发送端服务器中,参考图10,该装置可以包括:
接收模块301,用于接收拥塞通知消息,该拥塞通知消息中携带有拥塞信息和数据流标识,该数据流标识用于指示拥塞报文所属的数据流,该拥塞信息用于指示交换设备的用于转发属于该数据流的报文的缓存队列的拥塞程度。
第一确定模块302,用于实现上述图4所示实施例中步骤106。
第二确定模块303,用于实现上述图4所示实施例中步骤107。
控制模块304,用于实现上述图4所示实施例中步骤108。
综上所述,本发明实施例提供了一种拥塞控制装置,该拥塞控制装置可以配置于发送端服务器中。该发送端服务器接收到的拥塞通知消息中还携带有用于指示缓存队列拥塞程度的拥塞信息,因此该发送端服务器可以根据该缓存队列拥塞程度的高低,按照不同的降速比例降低拥塞报文所属数据流的发送速率。该拥塞控制的精度较高,可以在缓解网络拥塞的基础上,最大限度的提升带宽利用率。并且,由于该发送端服务器只调整拥塞报文所属数据流的发送速率,因此不会对发送端服务器中其他并发的数据流造成影响。
需要说明的是:上述实施例提供的拥塞控制装置在执行拥塞控制方法时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的拥塞控制装置与拥塞控制方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本发明实施例还提供了一种拥塞控制系统,该系统可以包括:拥塞通知设备和发送端服务器。其中,该拥塞通知设备可以为如图2所示的交换设备,也可以为如图3所示的服务器;或者,该拥塞通知设备还可以包括如图9所示的拥塞控制装置。该发送端服务器可以为如图3所示的服务器,或者也可以包括如图10所示的拥塞控制装置。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现,所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机的可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质,或者半导体介质(例如固态硬盘)等。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (12)
1.一种拥塞控制方法,其特征在于,所述方法包括:
当交换设备发生网络拥塞时,获取拥塞报文和所述交换设备的拥塞信息,所述拥塞信息用于指示所述交换设备的用于转发所述拥塞报文的缓存队列的拥塞程度;
根据所述拥塞报文确定数据流标识,所述数据流标识用于指示所述拥塞报文所属的数据流;
向发送端服务器发送拥塞通知消息,所述拥塞通知消息中携带有所述拥塞信息和所述数据流标识,所述拥塞通知消息用于指示所述发送端服务器根据所述缓存队列的拥塞程度,降低所述数据流的发送速率;
其中,所述拥塞信息包括流占比和深度占比,或所述拥塞信息包括所述交换设备根据流占比和深度占比计算得到的拥塞指示值;所述流占比为属于所述数据流的报文在所述缓存队列中占用的缓存与所述缓存队列的总缓存之比,属于所述数据流的报文包括所述拥塞报文,所述深度占比为:所述缓存队列中的所有报文占用的缓存与所述缓存队列的总缓存之比;若所述拥塞信息包括所述流占比和所述深度占比,所述拥塞信息用于指示所述发送端服务器根据所述流占比和所述深度占比计算得到拥塞指示值。
2.根据权利要求1所述的方法,其特征在于,所述获取拥塞报文和所述交换设备的拥塞信息,包括:
当所述交换设备检测到所述缓存队列发生网络拥塞时,从所述缓存队列中获取拥塞报文,并获取所述缓存队列的拥塞信息;
所述向所述发送端服务器发送拥塞通知消息,包括:
所述交换设备按照预设的消息格式封装所述拥塞信息和所述数据流标识,生成所述拥塞通知消息;
所述交换设备向所述发送端服务器发送所述拥塞通知消息。
3.根据权利要求1所述的方法,其特征在于,所述获取拥塞报文和所述交换设备的拥塞信息,包括:
当接收端服务器接收到所述交换设备发送的封装有所述拥塞信息的报文时,确定所述交换设备发生网络拥塞,将所述封装有拥塞信息的报文确定为所述拥塞报文,并从所述拥塞报文中获取所述拥塞信息,所述拥塞信息是所述交换设备在检测到所述缓存队列发生网络拥塞后获取并封装在所述报文中的;
所述向所述发送端服务器发送拥塞通知消息,包括:
所述接收端服务器按照预设的消息格式封装所述拥塞信息和所述数据流标识,生成所述拥塞通知消息;
所述接收端服务器向所述发送端服务器发送所述拥塞通知消息。
4.一种拥塞控制方法,其特征在于,所述方法包括:
发送端服务器接收拥塞通知消息,所述拥塞通知消息中携带有拥塞信息和数据流标识,所述数据流标识用于指示拥塞报文所属的数据流,所述拥塞信息用于指示交换设备的用于转发属于所述数据流的报文的缓存队列的拥塞程度;所述发送端服务器根据所述拥塞信息确定所述缓存队列的拥塞程度;
所述发送端服务器根据所述拥塞信息确定所述缓存队列的拥塞程度;
所述发送端服务器确定与所述缓存队列的拥塞程度对应的目标降速比例;
所述发送端服务器按照所述目标降速比例,降低所述数据流的发送速率;
其中,所述拥塞信息包括流占比和深度占比,或所述拥塞信息包括所述交换设备根据流占比和深度占比计算得到的拥塞指示值,所述流占比为属于所述数据流的报文在所述缓存队列中占用的缓存与所述缓存队列的总缓存之比,属于所述数据流的报文包括所述拥塞报文;所述深度占比为:所述缓存队列中的所有报文占用的缓存与所述缓存队列的总缓存之比;若所述拥塞信息包括所述流占比和所述深度占比,则所述发送端服务器根据所述拥塞信息确定所述缓存队列的拥塞程度包括:所述发送端服务器根据所述流占比和所述深度占比计算得到拥塞指示值,根据所述拥塞指示值确定所述缓存队列的拥塞程度。
5.根据权利要求4所述的方法,其特征在于,
所述发送端服务器确定与所述缓存队列的拥塞程度对应的目标降速比例包括:根据预先存储的拥塞程度与降速比例的对应关系确定与所述缓存队列的拥塞程度对应的目标降速比例。
6.一种拥塞控制装置,其特征在于,所述装置包括:
获取模块,用于当交换设备发生网络拥塞时,获取拥塞报文和所述交换设备的拥塞信息,所述拥塞信息用于指示所述交换设备的用于转发所述拥塞报文的缓存队列的拥塞程度;
确定模块,用于根据所述拥塞报文确定数据流标识,所述数据流标识用于指示所述拥塞报文所属的数据流;
发送模块,用于向发送端服务器发送拥塞通知消息,所述拥塞通知消息中携带有所述拥塞信息和所述数据流标识,所述拥塞通知消息用于指示所述发送端服务器根据所述缓存队列的拥塞程度,降低所述数据流的发送速率;
其中,所述拥塞信息包括流占比和深度占比,或所述拥塞信息包括所述交换设备根据流占比和深度占比计算得到的拥塞指示值;所述流占比为属于所述数据流的报文在所述缓存队列中占用的缓存与所述缓存队列的总缓存之比,属于所述数据流的报文包括所述拥塞报文,所述深度占比为:所述缓存队列中的所有报文占用的缓存与所述缓存队列的总缓存之比;若所述拥塞信息包括所述流占比和所述深度占比,所述拥塞信息用于指示所述发送端服务器根据所述流占比和所述深度占比计算得到拥塞指示值。
7.根据权利要求6所述的装置,其特征在于,所述拥塞控制装置配置于交换设备中,当获取拥塞报文和所述交换设备的拥塞信息,所述获取模块用于:
当检测到所述缓存队列发生网络拥塞时,从所述缓存队列中获取拥塞报文,并获取所述缓存队列的拥塞信息;
当向所述发送端服务器发送拥塞通知消息时,所述发送模块用于:
按照预设的消息格式封装所述拥塞信息和所述数据流标识,生成所述拥塞通知消息;
向所述发送端服务器发送所述拥塞通知消息。
8.根据权利要求6所述的装置,其特征在于,所述拥塞控制装置配置于接收端服务器中,当获取拥塞报文和所述交换设备的拥塞信息,所述获取模块用于:
当接收到所述交换设备发送的封装有所述拥塞信息的报文时,确定所述交换设备发生网络拥塞,将所述封装有拥塞信息的报文确定为所述拥塞报文,并从所述拥塞报文中获取所述拥塞信息,所述拥塞信息是所述交换设备在检测到所述缓存队列发生网络拥塞后获取并封装在所述报文中的;
当向所述发送端服务器发送拥塞通知消息时,所述发送模块用于:
按照预设的消息格式封装所述拥塞信息和所述数据流标识,生成所述拥塞通知消息;
向所述发送端服务器发送所述拥塞通知消息。
9.一种拥塞控制装置,其特征在于,配置于发送端服务器中,所述装置包括:
接收模块,用于接收拥塞通知消息,所述拥塞通知消息中携带有拥塞信息和数据流标识,所述数据流标识用于指示拥塞报文所属的数据流,所述拥塞信息用于指示交换设备的用于转发属于所述数据流的报文的缓存队列的拥塞程度;
第一确定模块,用于根据所述拥塞信息确定所述缓存队列的拥塞程度;
第二确定模块,用于确定与所述缓存队列的拥塞程度对应的目标降速比例;
控制模块,用于按照所述目标降速比例,降低所述数据流的发送速率;
其中,所述拥塞信息包括流占比和深度占比,或所述拥塞信息包括所述交换设备根据流占比和深度占比计算得到的拥塞指示值,所述流占比为属于所述数据流的报文在所述缓存队列中占用的缓存与所述缓存队列的总缓存之比,属于所述数据流的报文包括所述拥塞报文;所述第一确定模块根据所述拥塞信息确定所述缓存队列的拥塞程度,包括:若所述拥塞信息包括所述流占比和所述深度占比,根据所述流占比和所述深度占比计算得到拥塞指示值,根据所述拥塞指示值确定所述缓存队列的拥塞程度。
10.根据权利要求9所述的装置,其特征在于,
所述第二确定模块确定与所述缓存队列的拥塞程度对应的目标降速比例,包括:根据预先存储的拥塞程度与降速比例的对应关系确定与所述缓存队列的拥塞程度对应的目标降速比例。
11.一种拥塞控制系统,其特征在于,所述系统包括:拥塞通知设备和发送端服务器,所述拥塞通知设备为交换设备或者接收端服务器;
所述交换设备包括如权利要求6或7所述的拥塞控制装置;
所述接收端服务器包括如权利要求6或8所述的拥塞控制装置;
所述发送端服务器包括如权利要求9或10所述的拥塞控制装置。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有指令,当所述指令在所述计算机上运行时,使得所述计算机执行如权利要求1至3任一所述的拥塞控制方法,或者,使得所述计算机执行如权利要求4或5所述的拥塞控制方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710186607.7A CN108667739B (zh) | 2017-03-27 | 2017-03-27 | 拥塞控制方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710186607.7A CN108667739B (zh) | 2017-03-27 | 2017-03-27 | 拥塞控制方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108667739A CN108667739A (zh) | 2018-10-16 |
CN108667739B true CN108667739B (zh) | 2020-12-08 |
Family
ID=63785360
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710186607.7A Active CN108667739B (zh) | 2017-03-27 | 2017-03-27 | 拥塞控制方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108667739B (zh) |
Families Citing this family (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109347761B (zh) * | 2018-11-29 | 2022-08-26 | 新华三技术有限公司 | 一种流量转发控制方法及装置 |
CN111385223B (zh) * | 2018-12-28 | 2023-08-15 | 阿里巴巴集团控股有限公司 | 流控方法、设备、系统及存储介质 |
CN111490943A (zh) * | 2019-01-29 | 2020-08-04 | 中兴通讯股份有限公司 | 拥塞控制方法、终端及可读存储介质 |
CN111757313A (zh) * | 2019-03-29 | 2020-10-09 | 华为技术有限公司 | 一种通信方法及装置 |
CN112073325B (zh) * | 2019-06-10 | 2023-05-12 | 阿里巴巴集团控股有限公司 | 数据拥塞控制及带宽预估方法 |
CN116886609A (zh) * | 2019-06-17 | 2023-10-13 | 华为技术有限公司 | 拥塞控制方法及装置、通信网络、计算机存储介质 |
CN110266604B (zh) * | 2019-07-09 | 2023-09-01 | 京信网络系统股份有限公司 | 空口带宽自适应控制方法、装置和通信设备 |
CN112312471B (zh) * | 2019-07-31 | 2022-08-02 | 中国移动通信集团浙江有限公司 | 业务消息发送方法、装置和设备 |
CN110647071B (zh) * | 2019-09-05 | 2021-08-27 | 华为技术有限公司 | 一种控制数据传输的方法、装置及存储介质 |
CN112751778A (zh) * | 2019-10-30 | 2021-05-04 | 阿里巴巴集团控股有限公司 | 数据传输控制方法及装置,拥塞检测及装置,服务器系统 |
CN112751776A (zh) * | 2019-10-30 | 2021-05-04 | 华为技术有限公司 | 拥塞控制方法和相关装置 |
CN113037640A (zh) * | 2019-12-09 | 2021-06-25 | 华为技术有限公司 | 数据转发方法、数据缓存方法、装置和相关设备 |
CN113259247B (zh) * | 2020-02-11 | 2022-11-25 | 华为技术有限公司 | 网络设备中的缓存装置和和缓存装置中的数据管理方法 |
CN111343669A (zh) * | 2020-03-10 | 2020-06-26 | 中国联合网络通信集团有限公司 | 一种报文调度方法及装置 |
CN113630337A (zh) * | 2020-05-06 | 2021-11-09 | 华为技术有限公司 | 数据流接纳方法、装置及系统、计算机可读存储介质 |
CN113726681B (zh) * | 2020-05-26 | 2023-07-11 | 华为技术有限公司 | 一种网络拥塞控制方法及网络设备 |
CN113726671B (zh) * | 2020-05-26 | 2023-06-30 | 华为技术有限公司 | 一种网络拥塞控制方法及相关产品 |
CN114095448A (zh) * | 2020-08-05 | 2022-02-25 | 华为技术有限公司 | 一种拥塞流的处理方法及设备 |
CN112787951B (zh) * | 2020-08-07 | 2024-02-27 | 中兴通讯股份有限公司 | 拥塞控制方法、装置、设备和计算机可读存储介质 |
CN112787925B (zh) * | 2020-10-12 | 2022-07-19 | 中兴通讯股份有限公司 | 拥塞信息收集方法、确定最优路径方法、网络交换机 |
CN112437017A (zh) * | 2020-11-17 | 2021-03-02 | 锐捷网络股份有限公司 | 一种数据流控系统、方法、装置、设备及介质 |
CN112383450A (zh) * | 2020-11-30 | 2021-02-19 | 盛科网络(苏州)有限公司 | 一种网络拥塞检测方法及装置 |
CN114726790B (zh) * | 2021-01-06 | 2024-04-16 | 北京中科海网科技有限公司 | 一种基于传输内容大小的拥塞控制选择方法及系统 |
CN113098785B (zh) * | 2021-03-31 | 2022-05-27 | 新华三信息安全技术有限公司 | 一种报文处理方法及装置 |
CN113206794B (zh) * | 2021-03-31 | 2022-05-27 | 新华三信息安全技术有限公司 | 一种转发限速方法及装置 |
CN113411264B (zh) * | 2021-06-30 | 2023-03-14 | 中国工商银行股份有限公司 | 一种网络队列的监控方法、装置、计算机设备和存储介质 |
CN114189477B (zh) * | 2021-10-22 | 2023-12-26 | 新华三大数据技术有限公司 | 一种报文拥塞控制方法及装置 |
CN116261170A (zh) * | 2021-12-09 | 2023-06-13 | 华为技术有限公司 | 一种通信方法、装置及系统 |
CN114422441A (zh) * | 2022-03-30 | 2022-04-29 | 北京奥星贝斯科技有限公司 | 控制流量的方法及装置 |
CN114866477A (zh) * | 2022-04-21 | 2022-08-05 | 浪潮思科网络科技有限公司 | 一种网络设备拥塞控制机制的测试方法、系统及设备 |
CN115150333B (zh) * | 2022-05-26 | 2024-02-09 | 腾讯科技(深圳)有限公司 | 拥塞控制方法、装置、计算机设备和存储介质 |
CN116055416B (zh) * | 2023-03-28 | 2023-05-30 | 新华三工业互联网有限公司 | 应用于长距通信网络场景下传输速率的调整方法及装置 |
CN116886615B (zh) * | 2023-09-07 | 2024-02-02 | 苏州浪潮智能科技有限公司 | 网络拥塞控制方法、装置、设备、系统和存储介质 |
CN116915706B (zh) * | 2023-09-13 | 2023-12-26 | 合肥综合性国家科学中心人工智能研究院(安徽省人工智能实验室) | 数据中心网络拥塞控制方法、装置、设备及存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105099938A (zh) * | 2014-05-13 | 2015-11-25 | 华为技术有限公司 | 网络中拥塞窗口的确定方法和装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101146050B (zh) * | 2007-11-06 | 2011-03-23 | 杭州华三通信技术有限公司 | 帧中继报文传输方法和设备 |
US8693320B2 (en) * | 2010-01-11 | 2014-04-08 | Research In Motion Limited | Congestion level indication with explicit congestion notification in communication systems |
US9455915B2 (en) * | 2013-12-12 | 2016-09-27 | Broadcom Corporation | Hierarchical congestion control with congested flow identification hardware |
CN103997465B (zh) * | 2014-05-27 | 2018-02-23 | 华为技术有限公司 | 一种生成cnm的方法及设备 |
CN105187321A (zh) * | 2015-06-08 | 2015-12-23 | 中国联合网络通信集团有限公司 | 控制流量的方法及装置 |
-
2017
- 2017-03-27 CN CN201710186607.7A patent/CN108667739B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105099938A (zh) * | 2014-05-13 | 2015-11-25 | 华为技术有限公司 | 网络中拥塞窗口的确定方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN108667739A (zh) | 2018-10-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108667739B (zh) | 拥塞控制方法、装置及系统 | |
CN110943933B (zh) | 一种实现数据传输的方法、装置和系统 | |
US8937920B2 (en) | High capacity network communication link using multiple cellular devices | |
US8953631B2 (en) | Interruption, at least in part, of frame transmission | |
CN110312147B (zh) | 业务数据传输的方法、系统与存储介质 | |
CN107079017B (zh) | 一种报文转换方法及装置 | |
TWI530138B (zh) | 用於下行鏈路機器對機器通訊之聚集小型叢發傳輸技術 | |
CN107222427A (zh) | 一种报文处理的方法及相关设备 | |
CN104427602A (zh) | 功率控制方法和装置 | |
CN110875796B (zh) | 物理层端口通道化的方法和装置 | |
CN103200192B (zh) | 网络编码层对数据包的编解码方法 | |
CN107196834B (zh) | 报文处理方法及设备 | |
US10817460B2 (en) | RDMA data sending and receiving methods, electronic device, and readable storage medium | |
US10523790B2 (en) | System and method of header compression for online network codes | |
WO2020177642A1 (zh) | 一种以太网报文的传输方法、装置及系统 | |
CN102098132A (zh) | 基于无线协作中继网络的分级随机网络编码方法 | |
KR20100112151A (ko) | 네트워크 카드 및 정보 처리 장치 | |
KR20100081902A (ko) | 랜덤선형부호화를 사용한 데이터 송수신 방법 | |
CN109039928A (zh) | 数据的传输方法、装置和无线保真路由器 | |
CN113612698A (zh) | 一种数据包发送方法及装置 | |
CN102780639A (zh) | 一种路由器线卡及数据处理方法 | |
CN109462591B (zh) | 一种数据传输方法、接收方法、装置及系统 | |
WO2022160311A1 (zh) | 一种应用于无线局域网wlan的通信装置及通信方法 | |
WO2023116611A1 (zh) | 一种队列控制的方法及装置 | |
CN111432352B (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 |