CN116419317A - 拥塞控制方法、装置、设备及系统 - Google Patents

拥塞控制方法、装置、设备及系统 Download PDF

Info

Publication number
CN116419317A
CN116419317A CN202210004960.XA CN202210004960A CN116419317A CN 116419317 A CN116419317 A CN 116419317A CN 202210004960 A CN202210004960 A CN 202210004960A CN 116419317 A CN116419317 A CN 116419317A
Authority
CN
China
Prior art keywords
information
packet
congestion
header
data packet
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
Application number
CN202210004960.XA
Other languages
English (en)
Inventor
叶君宏
王发强
罗新冬
金峰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202210004960.XA priority Critical patent/CN116419317A/zh
Publication of CN116419317A publication Critical patent/CN116419317A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/02Traffic management, e.g. flow control or congestion control
    • H04W28/0289Congestion control

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请公开了一种拥塞控制方法、装置、设备及系统,属于网络技术领域。所述方法包括:接收数据包的反馈确认包,反馈确认包携带有接收设备添加的第一拥塞信息包头;从反馈确认包的第一拥塞信息包头中,提取第一信息;通过拥塞控制算法对第一信息进行处理,得到发送量控制信息;基于所述发送量控制信息发送后续的数据包。本申请在反馈确认包中插入拥塞信息包头,通过拥塞控制算法对拥塞信息包头中的信息进行运算处理,实现了对数据包的发送量控制。

Description

拥塞控制方法、装置、设备及系统
技术领域
本申请实施例涉及网络技术领域,特别涉及一种拥塞控制方法、装置、设备及系统。
背景技术
网络拥塞(congestion)是指网络中传送的报文的数量太多时,由于转发设备的资源有限而造成网络传输性能下降的情况。当网络发生拥塞时,一般会出现数据丢失,时延增加,吞吐量下降,严重时甚至会导致“拥塞崩溃(congestion collapse)”。通常情况下,当网络中负载过度增加致使网络性能下降时,就会发生网络拥塞。
相关技术中,基于拥塞控制算法的拥塞控制技术可以达到拥塞控制效果。通过采用协议栈对数据包的处理流程与拥塞控制技术相隔离的方式,实现拥塞控制。即,拥塞控制技术生成独立于数据包的探测包,通过额外发送探测包的方式实现拥塞控制。
在上述方案中,拥塞控制技术生成的探测包会额外增加硬件的包率(Packet PerSecond,PPS)压力,在数据包流量特别大的情况下,独立的拥塞控制技术会产生较多的探测包,从而使得协议栈对数据包的处理效率降低。
发明内容
本申请提供了一种拥塞控制方法、装置、设备及系统。所述技术方案如下:
根据本申请的一方面,提供了一种拥塞控制方法,应用于发送设备,所述方法包括:
接收数据包的反馈确认包,所述反馈确认包携带有接收设备添加的第一拥塞信息包头;
从所述反馈确认包的所述第一拥塞信息包头中,提取第一信息;
通过拥塞控制算法对所述第一信息进行处理,得到发送量控制信息;
基于所述发送量控制信息发送后续的数据包。
根据本申请的一方面,提供了一种拥塞控制方法,应用于接收设备,所述方法包括:
接收数据包,所述数据包携带有发送设备添加的第二拥塞信息包头;
通过拥塞控制算法基于所述第二拥塞信息包头生成第一拥塞信息包头,所述第一拥塞信息包头携带有第一信息;
在所述数据包的反馈确认包中插入所述第一拥塞信息包头;
向所述发送设备发送所述反馈确认包。
根据本申请的一方面,提供了一种拥塞控制装置,所述装置包括:
反馈确认包接收模块,用于接收数据包的反馈确认包,所述反馈确认包携带有接收设备添加的第一拥塞信息包头;
提取模块,用于从所述反馈确认包的所述第一拥塞信息包头中,提取第一信息;
运算模块,用于通过拥塞控制算法对所述第一信息进行处理,得到发送量控制信息;
数据包发送模块,用于基于所述发送量控制信息发送后续的数据包。
根据本申请的一方面,提供了一种拥塞控制装置,所述装置包括:
数据包接收模块,用于接收数据包,所述数据包携带有发送设备添加的第二拥塞信息包头;
运算模块,用于通过拥塞控制算法基于所述第二拥塞信息包头生成第一拥塞信息包头,所述第一拥塞信息包头携带有第一信息;
插入模块,用于在所述数据包的反馈确认包中插入所述第一拥塞信息包头;
反馈确认包发送模块,用于向所述发送设备发送所述反馈确认包。
根据本申请的另一方面,提供了一种拥塞控制系统,所述系统包括:发送设备和接收设备;
所述接收设备用于:接收数据包的反馈确认包,所述反馈确认包携带有接收设备添加的第一拥塞信息包头;从所述反馈确认包的所述第一拥塞信息包头中,提取第一信息;通过拥塞控制算法对所述第一信息进行处理,得到发送量控制信息;基于所述发送量控制信息发送后续的数据包;
所述发送设备用于:接收数据包,所述数据包携带有发送设备添加的第二拥塞信息包头;通过拥塞控制算法基于所述第二拥塞信息包头生成第一拥塞信息包头,所述第一拥塞信息包头携带有第一信息;在所述数据包的反馈确认包中插入所述第一拥塞信息包头;向所述发送设备发送所述反馈确认包。
根据本申请的另一方面,提供了一种计算机设备,该计算机设备包括:处理器和存储器,存储器中存储有至少一条计算机指令,至少一条计算机指令由处理器加载并执行以实现如上方面所述的拥塞控制方法。
根据本申请的另一方面,提供了一种计算机存储介质,计算机可读存储介质中存储有至少一条计算机指令,至少一条计算机指令由处理器加载并执行以实现如上方面所述的拥塞控制方法。
根据本申请的另一方面,提供了一种计算机程序产品,上述计算机程序产品包括计算机指令,所述计算机指令存储在计算机可读存储介质中;所述计算机指令由计算机设备的处理器从所述计算机可读存储介质读取并执行,使得所述计算机设备执行如上方面所述的拥塞控制方法。
本申请提供的技术方案带来的有益效果至少包括:
发送设备通过接收数据包的反馈确认包,从反馈确认包的第一拥塞信息包头中,提取第一信息;通过拥塞控制算法对第一信息进行处理,得到发送量控制信息;发送设备基于发送量控制信息发送后续的数据包。本申请实施例提供的技术方案,在反馈确认包中插入拥塞信息包头,通过拥塞控制算法对拥塞信息包头中的信息进行运算处理,实现了对数据包的发送量控制;通过在数据包/反馈确认包中插入拥塞信息包头的方式,避免了在拥塞事件信息的获取过程中额外增加硬件的包率(Packet Per Second,PPS)压力,同时,将协议栈的全部性能用于处理数据包,使得协议栈的数据处理能力最大化。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一个示例性实施例提供的拥塞控制方法的框架示意图;
图2是本申请一个示例性实施例提供的拥塞控制方法的实施场景示意图;
图3是本申请一个示例性实施例提供的拥塞控制方法的流程图;
图4是本申请一个示例性实施例提供的拥塞控制方法的流程图;
图5是本申请一个示例性实施例提供的拥塞信息包头插入数据包/反馈确定包的框架示意图;
图6是本申请一个示例性实施例提供的拥塞控制方法的框架示意图;
图7是本申请一个示例性实施例提供的拥塞控制方法的流程图;
图8是本申请一个示例性实施例提供的拥塞控制方法的流程图;
图9是本申请一个示例性实施例提供的拥塞控制方法的框架示意图;
图10是本申请一个示例性实施例提供的控制路径与数据路径的信息交互示意图;
图11是本申请一个示例性实施例提供的多个连接状态下的拥塞控制方法的框架示意图;
图12是本申请一个示例性实施例提供的拥塞控制方法的框架示意图;
图13是本申请一个示例性实施例提供的拥塞控制装置的框图;
图14是本申请一个示例性实施例提供的拥塞控制装置的框图;
图15是本申请一个示例性实施例提供的计算机设备的结构示意图;
图16是本申请一个示例性实施例提供的拥塞控制系统的框架示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
图1是本申请实施例提供的一种拥塞控制方法的框架示意图。
如图1所示,发送设备60发送至少一个数据包10,在每一个数据包10中插入第二拥塞信息包头20,第二拥塞信息包头20用于供接收设备70生成第一拥塞信息包头50。
接收设备70接收到发送设备60发送的数据包10,并提取数据包10中的第二拥塞信息包头20,接收设备70通过拥塞控制算法基于第二拥塞信息包头20中的第二信息生成第一信息,并将第一信息插入至第一拥塞信息包头50;同时,接收设备70在反馈确定包40中插入第一拥塞信息包头50,接收设备70向发送设备60发送反馈确定包40。
发送设备60接收反馈确定包40,并从反馈确定包40中的第一拥塞信息包头50中提取第一信息;发送设备60通过拥塞控制算法对第一信息进行处理,得到发送量控制信息(速率或窗口或令牌);发送设备60基于发送量控制信息发送后续的数据包10,从而实现拥塞控制。
综上所述,本实施例提供的方法,发送设备接收接收设备发送的反馈确定包,并从反馈确认包的第一拥塞信息包头中,提取第一信息;通过拥塞控制算法对第一信息进行处理,得到发送量控制信息;基于发送量控制信息发送后续的数据包。本申请实施例通过在反馈确认包中插入拥塞信息包头,实现了对数据包的发送量控制;通过在数据包/反馈确认包中插入拥塞信息包头的方式,避免了在拥塞事件信息的获取过程中额外增加硬件的包率(Packet Per Second,PPS)压力,同时,将协议栈的全部性能用于处理数据包,使得协议栈的数据处理能力最大化。
本申请实施例提供的拥塞控制方案的实施环境可以包括通信网络以及接入该通信网络的多个工作站。其中,该通信网络可以包括多个网络设备,工作站通过网络设备接入该通信网络,网络设备通过转发工作站的报文,实现不同工作站之间的通信。
其中,工作站可以是主机、终端、服务器或虚拟机等各种类型的设备。网络设备可以是交换机、路由器(Router)、虚拟交换机或虚拟路由器等在通信网络中用于转发报文的设备,并且在同一通信网络中的网络设备可以是相同的网络设备,也可以是不同的网络设备。例如,同一通信网络中的所有网络设备均是路由器,或者,一部分网络设备是路由器,另一部分网络设备是交换机。
在本申请实施例中,该通信网络可以是数据中心网络(Data Center Network,DCN)、城域网络、广域网络或园区网络等,本申请实施例对通信网络的类型不做限定。可选地,该通信网络可以是深度交叉网络(Deep Cross Network,DCN)。
示例地,请参考图2,其示出了本申请实施例所涉及的一种实施环境的示意图,该实施环境包括通信网络01以及接入该通信网络01的多个工作站021~028(也即是工作站021、工作站022、工作站023、工作站024、工作站025、工作站026、工作站027和工作站028),该通信网络01包括网络设备01a1~01a2(也即是网络设备01a1和网络设备01a2)以及网络设备01b1~01b4(也即是网络设备01b1、网络设备01b2、网络设备01b3和网络设备01b4),并且该通信网络01可以包括汇聚层和接入层,汇聚层是该通信网络01的高速交换主干,接入层用于将工作站接入该通信网络01,如图1所示,网络设备01a1~01a2位于汇聚层,网络设备01b1~01b4位于接入层,工作站021~022通过网络设备01b1接入该通信网络01,工作站023~024通过网络设备01b2接入该通信网络01,工作站025~026通过网络设备01b3接入该通信网络01,工作站027~028通过网络设备01b4接入该通信网络01。
可选地,通信网络01可以为脊-叶(leaf-spine)拓扑网络,位于汇聚层的网络设备01a1~01a2可以为脊(spine)交换机,位于接入层的网络设备01b1~01b4可以为叶(leaf)交换机,每个spine交换机与所有的leaf交换机连接,每个leaf交换机与所有的spine交换机连接(也即是spine交换机与leaf交换机全互连)。
该图2所示实施环境仅用于举例,并非用于限制本申请实施例的技术方案,在实现过程中,该实施环境还可能包括其他设备,可以根据需要来配置网络设备的数量、工作站的数量以及网络设备的之间的连接关系,网络设备与工作站的连接关系,并且该通信网络的拓扑可以是其他拓扑。例如,spine交换机与leaf交换机可以不是全互连,再比如,汇聚层中的网络设备可以互连,又比如,通信网络还可以包括位于汇聚层之上的核心层,还比如,通信网络01是2级Clos网络,该通信网络还可以是3级Clos网络,本申请实施例在此不再赘述。
在本申请实施例中,每个网络设备具有一个或多个出端口,每个出端口具有一个或多个不同优先级的队列,每个出端口的一个队列用于缓存需要经由该出端口发送的一种优先级的报文,网络设备对于接收到的每个报文,通常会将该报文缓存至与该报文匹配的队列,并以一定速率发送该队列中的报文。可选地,每个出端口的队列的数量等于优先级的数量。示例地,以图2中的网络设备01b1为例,该网络设备01b1可以具有出端口1~出端口8(也即是出端口1、出端口2、出端口3、出端口4、出端口5、出端口6、出端口7和出端口8)这8个出端口,出端口1可以具有pri_1~pri_8这8个优先级的8个队列,该8个队列分别为队列1~8(也即是队列1、队列2、队列3、队列4、队列5、队列6、队列7和队列8),该队列1~8的优先级依次为pri_1、pri_2、pri_3、pri_4、pri_5、pri_6、pri_7和pri_8,该8个队列中,队列1用于缓存需要经由该出端口1发送的优先级为pri_1的报文,网络设备01b1对于接收到的需要经由该出端口1发送的优先级为pri_1的报文1,将该报文1缓存至该队列1,队列2用于缓存需要经由该出端口1发送的优先级为pri_2的报文,网络设备01b1对于接收到的需要经由该出端口1发送的优先级为pri_2的报文2,将该报文2缓存至该队列2,队列3用于缓存需要经由该出端口1发送的优先级为pri_3的报文,网络设备01b1对于接收到的需要经由该出端口1发送的优先级为pri_3的报文3,将该报文3缓存至该队列3,依次类推。
可选地,根据报文的发送方向,每个网络设备可以是发送设备,也可以是接收设备。例如,以图2为例,当网络设备01b1向网络设备01b4发送报文时,网络设备01b1为发送设备,网络设备01b4为接收设备;再例如,当网络设备01b4向网络设备01b1发送报文时,网络设备01b4为发送设备,网络设备01b1为接收设备;又例如,当网络设备01b1向网络设备01b4发送报文,且网络设备01b4向网络设备01b2发送报文时,网络设备01b1为发送设备,网络设备01b2为接收设备,网络设备01b4既是发送设备又是接收设备;还例如,当网络设备01b1和网络设备01b2均向网络设备01b4发送报文时,网络设备01b1和网络设备01b2均为发送设备,网络设备01b4为接收设备。
在本申请实施例中,发送设备的每个队列可以映射到接收设备的一个出端口上,发送设备的每个队列可以与接收设备的队列对应,发送设备的每个队列中的报文到达接收设备时,首先被接收设备缓存至接收设备中相应的队列中,并由接收设备通过相应的出端口以一定速率发送该队列中的报文。示例地,发送设备为网络设备01b1,接收设备为网络设备01b4,网络设备01b1的队列1可以映射到网络设备01b4的一个出端口1上,且网络设备01b1的队列1与网络设备01b4的队列1对应,网络设备01b1的队列1中的报文1到达网络设备01b4时,首先被网络设备01b4缓存至网络设备01b4的队列1中,并由该网络设备01b4通过该网络设备01b4的出端口1以一定速率发送该报文。
随着通信网络规模的扩大以及视频、高性能云计算和消费者云业务等各种应用的普及,网络设备需要转发的流量暴涨,网络负载率(也即是网络利用率)、网络时延以及网络拥塞等成为通信网络面临的主要难题。因此亟需一种拥塞控制方案对通信网络进行拥塞控制。
图3是本申请一个示例性实施例提供的拥塞控制方法的流程图。该方法可以由如图1所示的框架图中的发送设备执行。该方法包括:
步骤302:接收数据包的反馈确认包。
示例性地,发送设备接收数据包的反馈确认包(ACK包),反馈确认包携带有接收设备添加的第一拥塞信息包头。
发送设备是指能够发送/接收具有任意源地址的数据包的任意一台主机,例如,主机、路由器或中继站,但不限于此。
数据包是指在通信传输中的数据块。反馈确认包是在通信传输中的数据块,反馈确认包与数据包一一对应。反馈确认包用于指示相应的数据包是否接收成功。
包头是指在数据包/反馈确认包的头部中插入的数据块,包头中包含有信息字段。第一拥塞信息包头是指在反馈确定包中插入的包头。
拥塞信息是指因网络连接中的数据包太多,导致某个路由器处理不过来或处理地太慢而产生的网络拥塞信息。第一拥塞信息包头中携带有:用于供发送设备确定是否存在网络拥塞的信息、接收设备对是否存在网络拥塞的识别结果、发送量控制信息中的至少一种第一信息。
步骤304:从反馈确认包的第一拥塞信息包头中,提取第一信息。
示例性地,发送设备在反馈确认包中提取第一拥塞信息包头中的所有信息或第一拥塞信息包头中的部分信息,发送设备从第一拥塞信息包头中的信息中提取第一信息。
第一信息是指插在第一拥塞信息包头中的信息,第一信息携带有:用于供发送设备确定是否存在网络拥塞的信息、接收设备对是否存在网络拥塞的识别结果、发送量控制信息中的至少一种。
步骤306:通过拥塞控制算法对第一信息进行处理,得到发送量控制信息。
示例性地,发送设备在提取第一拥塞信息包头中的第一信息后,通过拥塞控制算法对第一信息进行处理,从而得到发送量控制信息。
拥塞控制算法是指用于防止过多的数据包被发送到网络中,避免出现网络负载过大导致拥塞的算法。
发送量控制信息是指能够控制发送设备的数据包的发送量的信息。发送量控制信息包括:发送速率、可用窗口和令牌中的至少一种。发送速率是指发送设备发送数据包的速率;可用窗口用于限制发送设备一次性发送数据包的上限;令牌是用于控制数据包发送量的信息,一个令牌允许发送一个数据包。
示例性地,在第一信息是用于供发送设备识别是否拥塞的网络信息的情况下,发送设备通过拥塞控制算法对第一信息进行运算处理,根据拥塞控制算法的运算结果,得到发送量控制信息。
示例性地,在第一信息是接收设备对网络是否拥塞的识别结果的情况下,发送设备通过拥塞控制算法对第一信息进行处理,根据第一信息中的识别结果,得到发送量控制信息。
步骤308:基于发送量控制信息发送后续的数据包。
示例性地,发送设备基于发送量控制信息发送后续的数据包。
可选地,发送量控制信息控制发送设备发送数据包的数量,或,发送量控制信息控制发送设备发送数据包的速度,但不限于此。
综上所述,本实施例提供的方法,发送设备接收数据包的反馈确认包;从反馈确认包的第一拥塞信息包头中,提取第一信息;通过拥塞控制算法对第一信息进行处理,得到发送量控制信息;发送设备基于发送量控制信息发送后续的数据包。本申请实施例通过在反馈确认包中插入拥塞信息包头,实现了对数据包的发送量控制,通过在数据包/反馈确认包中插入拥塞信息包头的方式,避免了在拥塞事件信息的获取过程中额外增加硬件的包率压力,同时,将协议栈的全部性能用于处理数据包,使得协议栈的数据处理能力最大化。
图4是本申请一个示例性实施例提供的拥塞控制方法的流程图。该方法可以由如图1所示的框架图中的发送设备执行。该方法包括:
步骤402:接收数据包的反馈确认包。
示例性地,发送设备接收数据包的反馈确认包,反馈确认包携带有接收设备添加的第一拥塞信息包头。
发送设备是指能够发送/接收具有任意源地址的数据包的任意一台主机,例如,主机、路由器或中继站,但不限于此。数据包是指在通信传输中的数据块。反馈确认包是在通信传输中的数据块,反馈确认包与数据包一一对应。
包头是指在数据包中插入的数据块,包头中包含有信息字段。第一拥塞信息包头是指在数据包中插入的包头。拥塞信息是指因网络中的数据包太多,导致某个路由器处理不过来或处理地太慢而产生的网络拥塞信息。
步骤404:从反馈确认包的第一拥塞信息包头中,提取第一信息。
示例性地,发送设备在反馈确认包中提取第一拥塞信息包头中的所有信息或第一拥塞信息包头中的部分信息,发送设备从第一拥塞信息包头中的信息中提取第一信息。
在一种可能的实现方式中,基于自定义的包头提取信息,从反馈确认包的第一拥塞信息包头中,提取第一信息;其中,自定义的包头提取信息包括:包头偏移长度、包头长度、存放地址中的至少一种。包头提取信息是指从包头中提取出来的信息。
在一种可能的实现方式中,发送设备基于自定义的包头插入信息在数据包中插入第二拥塞信息包头;发送设备通过自定义设置第二拥塞信息包头的偏移长度、第二拥塞信息包头的包头内容、第二拥塞信息包头的包头长度实现第二拥塞信息包头在数据包中的任意位置插入。
例如,图5示出了拥塞信息包头插入数据包/反馈确定包的框架示意图,比如,图5中示出的数据包/反馈确定包的报文为:以太网(Ethernet,ETH)501、网络互连协议(Internet Protocol,IP)502、用户数据包协议(User Datagram Protocol,UDP)503、实际数据Payload505,在数据包/反馈确定包中插入拥塞包头,通过设置包头偏移长度506、包头长度507、包头内容508可将自定义拥塞包头插入至数据包/反馈确定包。
发送设备通过包头偏移长度506、包头长度507、存放地址504可提取反馈确认包中任意位置的拥塞信息包头。同样,发送设备通过包头偏移长度506、包头长度507、包头内容508可在数据包中的任意位置插入任意长度和任意内容的拥塞信息包头。
可选地,第二拥塞信息包头包括如下包头中的任意一种:拥塞通知(CongestionNotification Packet,CNP)包头、往返时延(Round-Trip Time,RTT)探测包头、带内网络遥测(In-band Network Telemetry,INT)包头、负载率包头,但不限于此。
步骤406:通过拥塞控制算法在缓存区异步读取第一信息,通过拥塞控制算法对读取到的第一信息进行处理,得到发送量控制信息。
示例性地,发送设备将提取的第一信息存储在缓存区,发送设备通过拥塞控制算法在缓存区异步读取第一信息,发送设备在从缓存区中读取第一拥塞信息包头中的第一信息后,通过拥塞控制算法对第一信息进行处理,从而得到发送量控制信息。
异步读取是指拥塞控制算法在缓存区直接读取第一信息,无需从反馈确认包中的第一拥塞信息包头中读取。
示例性地,如图6所示,拥塞控制方法的框架包括控制路径601、缓存区602和数据路径603,为简化描述,将协议栈对数据包的处理流程称为数据路径603;将拥塞控制算法的处理流程称为控制路径601。控制路径601与数据路径603通过缓存区602中缓存的变量进行异步交互,缓存区602中的状态信息包括:发包速率604、令牌605、拥塞信息包头606、事件队列607、接口信息608。
在一种可能的实现方式中,发送设备通过拥塞控制算法在缓存区602异步读取第一信息,在拥塞控制算法609是基于速率的拥塞控制算法609的情况下,基于读取到的第一信息计算发送速率;根据发送速率更新令牌605,令牌605是用于控制数据包的发送速率的发送量控制信息。发送速率是指发送设备发送数据包的速率,也称为发包速率。
令牌605是用于控制数据包的发送速率的发送量控制信息,发送设备在发送数据包时会消耗令牌605的数量。在缓存区602中令牌605数目小于发送设备需要发送的数据包的数量的情况下,发送设备不能发送全部的数据包,最多发送数据包的数量与缓存区602中令牌605数目相等,比如,缓存区602中令牌605数目为6,发送设备需要发送的数据包的数量为10,则发送设备最多能发送6个数据包;在缓存区602中令牌数目不小于发送设备需要发送的数据包的数量的情况下,发送设备发送数据包,并更新缓存区602中的令牌605数量。比如,每发送一个数据包消耗一个令牌,本申请实施例对令牌的消耗方式不作限定。例如,在发送设备接收到接收设备发送的反馈确定包后,提取反馈确定包中的第一拥塞信息包头,发送设备从第一拥塞信息包头中的信息中提取第一信息,并根据第一拥塞信息包头中的第一信息生成第一事件信息,见图6中步骤10,控制路径601中拥塞控制算法609通过对第一事件信息进行运算,见图6中步骤5,控制路径601中拥塞控制算法609通过对第一事件信息进行运算得到数据包的发送速率,从而更新缓存区602中的发包速率604的状态信息,见图6中步骤6,发送设备根据缓存区602中的发包速率604周期性补充令牌605的个数。
在一种可能的实现方式中,在拥塞控制算法609是基于窗口的拥塞控制算法609的情况下,基于读取到的第一信息计算可用窗口,可用窗口的大小用于限定可发送数据包的个数;根据可用窗口更新令牌605,令牌605是用于控制数据包的发送速率的发送量控制信息。可用窗口是指能够允许通过数据包发送的窗口,比如,可用窗口的大小为5,则表示为该可用窗口可允许发送5个数据包,发送数据包的方式可以是一次性发送,也可以是成双发送,但不限于此,本申请实施例对数据包的发送方式不作限定。
例如,在发送设备接收到接收设备发送的反馈确定包后,提取反馈确定包中的第一拥塞信息包头,发送设备从第一拥塞信息包头中的信息中提取第一信息,并根据第一拥塞信息包头中的第一信息生成第一事件信息,见图6中步骤10,控制路径601中拥塞控制算法609通过对第一事件信息进行运算,见图6中步骤5,控制路径601中拥塞控制算法609通过对第一事件信息进行运算得到可用窗口的大小,拥塞控制算法601根据可用窗口的大小直接补充令牌605的个数,见图6中步骤7。
可选地,第一信息包括用于供发送设备识别是否拥塞的网络信息;或,接收设备对是否拥塞的识别结果。
例如,在第一信息是用于供发送设备识别是否拥塞的网络信息的情况下,第一信息包括接口信息,发送设备通过拥塞控制算法运算处理第一信息得到网络连接是否拥塞,或,网络连接拥塞程度的信息。
在第一信息是接收设备对是否拥塞的识别结果的情况下,比如,在第一信息的字段的最后1比特来表示接收设备对网络连接是否拥塞的识别结果,0表示未发生拥塞,1表示发生拥塞。第一信息的字段的最后1比特的默认值为0,在网络连接发生拥塞的情况下,可以理解为,将第一信息的字段的最后1比特的值修改为1。
可选地,第一信息还可以指示拥塞程度。例如可以使用第一信息的最后2比特来携带拥塞程度信息,00表示未发生拥塞,01/10表示发生轻度拥塞,11表示发生重度拥塞,但不限于此,本申请实施例对此不作限定。
示例性地,在第一信息是用于供发送设备识别是否拥塞的网络信息的情况下,发送设备在从缓存区中读取第一信息后,通过拥塞控制算法对第一信息进行处理,发送设备根据拥塞控制算法对第一信息的运算结果,得到发送量控制信息。
示例性地,在第一信息是接收设备对是否拥塞的识别结果的情况下,发送设备在从缓存区中读取第一信息后,发送设备根据接收设备对网络是否拥塞的识别结果生成发送量控制信息。
示例性地,在第一信息是发送量控制信息的情况下,发送设备在从缓存区中读取第一信息后,发送设备根据第一信息中的发送量控制信息直接控制数据包的发送。
在一种可能的实现方式中,发送设备在数据包中插入第二拥塞信息包头,第二拥塞信息包头用于供接收设备生成第一拥塞信息包头;发送设备发送数据包。第二拥塞信息包头是指在数据包中插入的包头。
例如,在发送设备发送至少一个数据包时,发送设备根据最后一个数据包的信息生成第二事件信息,见图6中步骤4,控制路径601中拥塞控制算法609通过对第二事件信息进行运算,见图6中步骤5,控制路径601中拥塞控制算法601通过对第二事件信息从而实现对缓存区602中令牌605的更新,见图6中步骤7。
步骤408:基于发送量控制信息发送后续的数据包。
示例性地,发送设备基于发送量控制信息发送后续的数据包。
可选地,发送量控制信息控制发送设备发送数据包的数量,或,发送量控制信息控制发送设备发送数据包的速度,但不限于此。
综上所述,本实施例提供的方法,发送设备接收数据包的反馈确认包;从反馈确认包的第一拥塞信息包头中,提取第一信息;通过不同的拥塞控制算法对第一信息进行不同方式的运算处理,得到发送量控制信息;发送设备基于发送量控制信息发送后续的数据包。本申请实施例在反馈确认包中插入拥塞信息包头,通过不同的意思控制算法对拥塞信息包头内的信息进行运算处理,实现了对数据包的发送量控制,通过在数据包/反馈确认包中插入拥塞信息包头的方式,避免了在拥塞事件信息的获取过程中额外增加硬件的包率压力,同时,将协议栈的全部性能用于处理数据包,使得协议栈的数据处理能力最大化。
图7是本申请一个示例性实施例提供的拥塞控制方法的流程图。该方法可以由如图1所示的框架图中的接收设备执行。该方法包括:
步骤702:接收数据包。
示例性地,接收设备接收发送设备发送的数据包,数据包携带有发送设备添加的第二拥塞信息包头。
接收设备是指能够接收/发送具有任意源地址的数据包的任意一台主机,例如,主机、路由器或中继站,但不限于此。数据包是指在通信传输中的数据块。
第二拥塞信息包头是指在数据包中插入的包头,第二拥塞信息包头包括第二信息。
可选地,数据包携带的第二拥塞信息包头中的第二消息是空白信息(即插入无意义的字符段作为预留位置)、探测性信息(专门用于探测是否拥塞的信息)、供接收设备进行确定是否拥塞的信息中的任一一种,本申请实施例对此不作限定。
可以理解的是,本申请中的拥塞控制方法可以支持不同的拥塞控制算法,因此本申请中对第二信息、第一信息携带的信息不加以限定,视具体的拥塞控制算法而定,本申请只是提供一个发送设备和接收设备之间的通信框架。
步骤704:通过拥塞控制算法基于第二拥塞信息包头生成第一拥塞信息包头,第一拥塞信息包头携带有第一信息。
示例性地,接收设备接收发送设备发送的数据包,并通过拥塞控制算法对数据包中的第二拥塞信息包头中的信息进行运算处理得到第一拥塞信息包头,在第一拥塞信息包括有第一信息。
第一信息是指插在第一拥塞信息包头中的信息,第一信息是用于供发送设备识别是否拥塞的网络信息;或,第一信息是接收设备对网络是否拥塞的识别结果。
例如,在第一信息是用于供发送设备识别是否拥塞的网络信息的情况下,第一信息包括接口信息,发送设备通过拥塞控制算法运算处理第一信息得到网络连接是否拥塞,或,网络连接拥塞程度的信息。
在第一信息是接收设备对是否拥塞的识别结果的情况下,比如,在第一信息的字段的最后1比特来表示接收设备对网络连接是否拥塞的识别结果,0表示未发生拥塞,1表示发生拥塞。第一信息的字段的最后1比特的默认值为0,在网络连接发生拥塞的情况下,可以理解为,将第一信息的字段的最后1比特的值修改为1。
可选地,第一信息还可以指示拥塞程度。例如可以使用第一信息的最后2比特来携带拥塞程度信息,00表示未发生拥塞,01/10表示发生轻度拥塞,11表示发生重度拥塞,但不限于此,本申请实施例对此不作限定。
步骤706:在数据包的反馈确认包中插入第一拥塞信息包头。
示例性地,接收设备在与数据包对应的反馈确定包中插入第一拥塞信息包头。
第一拥塞信息包头是指在反馈确定包中插入的包头。
步骤708:向发送设备发送反馈确认包。
示例性地,在接收设备在与数据包对应的反馈确定包中插入第一拥塞信息包头后,接收设备向发送设备发送反馈确认包。
综上所述,本实施例提供的方法,接收设备接收数据包,通过拥塞控制算法基于数据包中的第二拥塞信息包头生成第一拥塞信息包头,同时,在数据包的反馈确认包中插入第一拥塞信息包头,并向发送设备发送反馈确认包。本申请实施例基于数据包中的第二拥塞信息包头生成第一拥塞信息包头,并在数据包对应的反馈确定包中插入第一拥塞信息包头,通过在反馈确定包中插入第一拥塞信息包头的方式,避免了在拥塞事件信息的获取过程中额外增加硬件的包率压力,同时,将协议栈的全部性能用于处理数据包,使得协议栈的数据处理能力最大化。
图8是本申请一个示例性实施例提供的拥塞控制方法的流程图。该方法可以由如图1所示的框架图中的接收设备执行。该方法包括:
步骤802:接收数据包,数据包携带有发送设备添加的第二拥塞信息包头。
接收设备是指能够接收/发送具有任意源地址的数据包的任意一台主机,例如,主机、路由器或中继站,但不限于此。数据包是指在通信传输中的数据块。
第二拥塞信息包头是指在数据包中插入的包头。
步骤804:通过拥塞控制算法在缓存区异步读取第二信息。
示例性地,如图9所示,拥塞控制方法的框架包括控制路径901、缓存区902和数据路径903,为简化描述,将协议栈对数据包的处理流程称为数据路径903;将拥塞控制算法的处理流程称为控制路径901。控制路径901与数据路径903通过缓存区902中缓存的变量进行异步交互,缓存区902中的状态信息包括:发包速率904、令牌905、拥塞信息包头906、事件队列907、接口信息908。
示例性地,接收设备接收到数据包并提取第二拥塞信息包头中携带的第二信息;将第二拥塞信息包头中携带的第二信息存储在缓存区902;接收设备通过拥塞控制算法909在缓存区902异步读取第二拥塞信息包头中携带的第二信息。
例如,在接收设备接收到发送设备发送的数据包后,提取数据包中的第二拥塞信息包头中的第二信息,接收设备从第二拥塞信息包头中提取第二信息,并根据第二拥塞信息包头中的第二信息生成第三事件信息,见图9中步骤f,控制路径中的拥塞控制算法通过对第三事件信息进行运算处理,见图9中步骤d。
可选地,在接收设备接收到发送设备发送的数据包后,接收设备根据接收到的数据包的信息更新缓存区902中的接口信息908。接口是指接收设备中接收数据包的接口。
接口的统计信息包括接收设备接收到的数据包的个数、接收到的字节数、数据包中的显式拥塞通知(Explicit Congestion Notification,ECN)个数中的至少一种,但不限于此,本申请实施例对此不作限定。
在一种可能的实现方式中,基于自定义的包头提取信息提取第二拥塞信息包头中携带的第二信息;其中,自定义的包头提取信息包括:包头偏移长度、包头长度、存放地址中的至少一种。包头提取信息是指从包头中提取出来的信息。
在一种可能的实现方式中,基于自定义的包头插入信息在数据包的反馈确认包中插入第一拥塞信息包头;其中,自定义的包头插入信息包括:包头偏移长度、包头长度、包头内容中的至少一种。
例如,图5示出了拥塞信息包头插入数据包/反馈确定包的框架示意图,接收设备通过包头偏移长度506、包头长度507、存放地址504可提取数据包中任意位置的拥塞信息包头。同样,接收设备通过包头偏移长度506、包头长度507、包头内容508可在反馈确定包中的任意位置插入任意长度和任意内容的拥塞信息包头。
可选地,第一拥塞信息包头包括如下包头中的任意一种:拥塞通知(CongestionNotification Packet,CNP)包头、往返时延(Round-Trip Time,RTT)探测包头、带内网络遥测(In-band Network Telemetry,INT)包头、负载率包头。
步骤806:通过拥塞控制算法对第二信息进行处理,生成第一信息。
示例性地,接收设备通过拥塞控制算法在缓存区异步读取第二拥塞信息包头中携带的第二信息,并通过拥塞控制算法对第二信息进行运算处理,生成第一信息。
可选地,第一信息包括:用于供发送设备识别是否拥塞的网络信息;或,接收设备对是否拥塞的识别结果。
示例性地,在第一信息是用于供发送设备识别是否拥塞的网络信息的情况下,发送设备在从缓存区中读取第一信息后,通过拥塞控制算法对第一信息进行处理,发送设备根据拥塞控制算法对第一信息的运算结果,得到发送量控制信息。
示例性地,在第一信息是接收设备对是否拥塞的识别结果的情况下,发送设备通过拥塞控制算法对第二信息进行运算处理,生成第一信息后,发送设备根据接收设备对网络是否拥塞的识别结果生成发送量控制信息。
步骤808:在数据包的反馈确认包中插入第一拥塞信息包头。
示例性地,接收设备在与数据包对应的反馈确定包中插入第一拥塞信息包头。
第一拥塞信息包头是指在反馈确定包中插入的包头。
示例性地,接收设备通过拥塞控制算法对第二拥塞信息包头中的第二信息进行运算处理,生成第一信息,在将第一信息插入至第一拥塞信息包头中后,将第一拥塞信息包头插入至与数据包对应的反馈确定包中。
步骤810:向发送设备发送反馈确认包。
示例性地,在接收设备在与数据包对应的反馈确定包中插入第一拥塞信息包头后,接收设备向发送设备发送反馈确认包。
综上所述,本实施例提供的方法,接收设备接收数据包,通过拥塞控制算法基于数据包中的第二拥塞信息包头中的第二信息生成第一信息,将第一信息插入至第一拥塞信息包头,同时,在数据包的反馈确认包中插入第一拥塞信息包头,并向发送设备发送反馈确认包。本申请实施例基于数据包中的第二拥塞信息包头中的第二信息生成第一信息,并在数据包对应的反馈确定包中插入包含第一信息的第一拥塞信息包头,通过在反馈确定包中插入第一拥塞信息包头的方式,使得发送设备能够在获取网络是否拥塞的信息的同时,避免了在拥塞事件信息的获取过程中额外增加硬件的包率压力,同时,将协议栈的全部性能用于处理数据包,使得协议栈的数据处理能力最大化。
上述实施例示出了协议栈就单个连接状态下的拥塞控制方法的结构框图,本实施就协议栈在多个连接状态下的拥塞控制方法的结构框图进行叙述。
拥塞控制方法的框架包括控制路径1001、缓存区和数据路径1002,为简化描述,将协议栈对数据包的处理流程称为数据路径1002;将拥塞控制算法的处理流程称为控制路径1001,控制路径1001与数据路径1002通过缓存区中缓存的变量进行异步交互,控制路径与数据路径的信息交互图如图10所示。
控制路径1001通过向数据路径1002下发发送量控制信息,来实现对发送设备发送数据包数量或速率的控制;数据路径1002向控制路径1001上发拥塞事件信息,拥塞控制算法通过对拥塞事件信息进行运算处理得到发送量控制信息。
图11示出了多个连接状态下的拥塞控制方法的控制路径的结构框图。
示例性地,如图11所示,在缓存区1102中的事件队列1103中接收到事件信息时,缓存区1102中的事件队列1103会申请控制路径1101中的调度器1106处理该事件信息;调度器1106通过调动该事件信息在中央处理器(Central Processing Unit,CPU)中执行拥塞控制算法1105,拥塞控制算法1105在对该事件信息运算处理后,会对缓存区1102中相应连接的状态变量进行更新。
可选地,事件信息是指发送设备从第一拥塞信息包头中的信息中提取第一信息,并根据第一拥塞信息包头中的第一信息生成第一事件信息,或,发送设备发送至少一个数据包时,发送设备根据最后一个数据包的信息生成第二事件信息,或,在接收设备接收到发送设备发送的数据包后,接收设备从数据包的第二拥塞信息包头中提取第二信息,并根据第二拥塞信息包头中的第二信息生成第三事件信息。
示例性地,在拥塞控制算法1105是基于速率的拥塞控制算法的情况下,拥塞控制算法1105运算处理事件信息得到数据包的发送速率;根据数据包的发送速率更新缓存区1102中的发包速率,发送设备根据缓存区1102中的发包速率周期性补充令牌1108的个数。
示例性地,在拥塞控制算法1105是基于窗口的拥塞控制算法1105的情况下,拥塞控制算法1105运算处理事件信息得到可用窗口,可用窗口的大小用于限定可发送数据包的个数,拥塞控制算法1105根据可用窗口的大小直接补充令牌1108的个数。
可选地,缓存区1102中的状态变量包括发包速率1107、令牌1108个数、窗口位置中的至少一种,本申请实施例对此不作限定。
在一种可能的实现方式中,拥塞控制方法的框架包括控制路径、缓存区和数据路径,为简化描述,将协议栈对数据包的处理流程称为数据路径,数据路径运行于硬化的集成电路上;将拥塞控制算法的处理流程称为控制路径,控制路径运行于CPU中,控制路径与数据路径通过缓存区中缓存的变量进行异步交互。
在一种可能的实现方式中,如图12所示,拥塞控制方法的框架包括控制路径1201、缓存区1202和数据路径1203,为简化描述,将协议栈对数据包的处理流程称为数据路径1203,数据路径1203也可以运行于CPU中;将拥塞控制算法1204的处理流程称为控制路径1201,控制路径1201运行于CPU中,控制路径1201与数据路径1203通过缓存区1202中缓存的变量进行异步交互。如图12所示,控制路径1201与数据路径1203分别运行于CPU1210中的不同核心区域,控制路径1201与数据路径1203通过缓存区1202中缓存的变量进行异步交互,缓存区1202中的状态信息包括:发包速率1205、令牌1206、拥塞信息包头1207、事件队列1208、接口信息1209。
例如,控制路径1201中拥塞控制算法1204对事件信息的运算处理过程可在CPU1210的核心1、核心2、核心3上运行;数据路径1203中数据包/反馈确定包的运行过程可在CPU1210的核心n、核心n-1、核心n-2上运行,但不限于此。
可以理解的是,图12中的数据路径1203可以是发送设备,也可以是接收设备,本申请实施例对此不作限定。
图13示出了本申请一个示例性实施例提供的拥塞控制装置的结构示意图。
该装置包括:
反馈确认包接收模块1302,用于接收数据包的反馈确认包,所述反馈确认包携带有接收设备添加的第一拥塞信息包头。
提取模块1304,用于从所述反馈确认包的所述第一拥塞信息包头中,提取第一信息。
运算模块1306,用于通过拥塞控制算法对所述第一信息进行处理,得到发送量控制信息。
数据包发送模块1308,用于基于所述发送量控制信息发送后续的数据包。
在一种可能的实现方式中,运算模块1306,还用于通过所述拥塞控制算法在所述缓存区异步读取所述第一信息。
在一种可能的实现方式中,运算模块1306,还用于通过所述拥塞控制算法对读取到的所述第一信息进行处理,得到发送量控制信息。
在一种可能的实现方式中,运算模块1306,还用于在所述拥塞控制算法是基于速率的拥塞控制算法的情况下,基于读取到的所述第一信息计算发送速率。
在一种可能的实现方式中,运算模块1306,还用于根据所述发送速率更新令牌,所述令牌是用于控制所述数据包的发送速率的所述发送量控制信息。
在一种可能的实现方式中,运算模块1306,还用于在所述拥塞控制算法是基于窗口的拥塞控制算法的情况下,基于读取到的所述第一信息计算可用窗口,所述可用窗口的大小用于限定可发送数据包的个数。
在一种可能的实现方式中,运算模块1306,还用于根据所述可用窗口更新令牌,所述令牌是用于控制所述数据包的发送速率的所述发送量控制信息。
在一种可能的实现方式中,提取模块1304,还用于基于自定义的包头提取信息,从所述反馈确认包的所述第一拥塞信息包头中,提取所述第一信息;其中,所述自定义的包头提取信息包括:包头偏移长度、包头长度、存放地址中的至少一种。
所述第一信息包括:用于供所述发送设备识别是否拥塞的网络信息;或,所述接收设备对是否拥塞的识别结果。
在一种可能的实现方式中,所述装置还包括,插入模块1310,用于在所述数据包中插入第二拥塞信息包头,所述第二拥塞信息包头用于供所述接收设备生成所述第一拥塞信息包头。
在一种可能的实现方式中,数据包发送模块1308,还用于发送所述数据包。
所述第二拥塞信息包头包括如下包头中的任意一种:拥塞通知CNP包头;往返时延RTT探测包头;带内网络遥测INT包头;负载率包头,但不限于此。
在一种可能的实现方式中,插入模块1310,用于基于自定义的包头插入信息在所述数据包中插入所述第二拥塞信息包头。
其中,所述自定义的包头插入信息包括:包头偏移长度、包头长度、包头内容中的至少一种。
图14示出了本申请一个示例性实施例提供的拥塞控制装置的结构示意图。
该装置包括:
数据包接收模块1402,用于接收数据包,所述数据包携带有发送设备添加的第二拥塞信息包头;
运算模块1404,用于通过拥塞控制算法基于所述第二拥塞信息包头生成第一拥塞信息包头,所述第一拥塞信息包头携带有第一信息;
插入模块1406,用于在所述数据包的反馈确认包中插入所述第一拥塞信息包头;
反馈确认包发送模块1408,用于向所述发送设备发送所述反馈确认包。
在一种可能的实现方式中,所述装置还包括,提取模块1410,用于提取所述第二拥塞信息包头中携带的第二信息;将所述第二信息存储在缓存区;
在一种可能的实现方式中,运算模块1404,还用于通过所述拥塞控制算法在所述缓存区异步读取所述第二信息。
在一种可能的实现方式中,运算模块1404,还用于通过所述拥塞控制算法对所述第二信息进行处理,生成所述第一信息。
在一种可能的实现方式中,运算模块1404,还用于基于自定义的包头提取信息提取所述第二拥塞信息包头中携带的第二信息。
其中,所述自定义的包头提取信息包括:包头偏移长度、包头长度、存放地址中的至少一种。
所述第二拥塞信息包头包括如下包头中的任意一种:
拥塞通知CNP包头;往返时延RTT探测包头;带内网络遥测INT包头;负载率包头。
在一种可能的实现方式中,插入模块1406,还用于基于自定义的包头插入信息在所述数据包的所述反馈确认包中插入所述第一拥塞信息包头。
其中,所述自定义的包头插入信息包括:包头偏移长度、包头长度、包头内容中的至少一种。
所述第一信息包括:用于供所述发送设备识别是否拥塞的网络信息;或,所述接收设备对是否拥塞的识别结果。
图15示意性地提供本申请实施例提供的计算机设备的一种可能的基本硬件架构。
参见图15,计算机设备1500包括处理器1501、存储器1502、通信接口1503和总线1504。
计算机设备1500中,处理器1501的数量可以是一个或多个,图15仅示意了其中一个处理器1501。可选地,处理器1501,可以是中央处理器(Central Processing Unit,CPU)。如果计算机设备1500具有多个处理器1501,多个处理器1501的类型可以不同,或者可以相同。可选地,计算机设备1500的多个处理器1501还可以集成为多核处理器。
存储器1502存储计算机指令和数据;存储器1502可以存储实现本申请提供的通信方法所需的计算机指令和数据,例如,存储器1502存储用于实现拥塞控制方法的步骤的指令。存储器1502可以是以下存储介质的任一种或任一种组合:非易失性存储器(例如只读存储器(Read-Only Memory,ROM)、固态硬盘(Solid State Disk,SSD)、硬盘(Hard DiskDrive,HDD)、光盘),易失性存储器。
通信接口1503可以是以下器件的任一种或任一种组合:网络接口(例如以太网接口)、无线网卡等具有网络接入功能的器件。
通信接口1503用于计算机设备1500与其它计算机设备或者终端进行数据通信。
总线1504可以将处理器1501与存储器1502和通信接口1503连接。这样,通过总线1504,处理器1501可以访问存储器1502,还可以利用通信接口1503与其它计算机设备或者终端进行数据交互。
在本申请中,计算机设备1500执行存储器1502中的计算机指令,使得计算机设备1500实现本申请提供的拥塞控制方法,或者使得计算机设备1500部署拥塞控制系统。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器,上述指令可由服务器的处理器执行以完成本申请各个实施例所示的拥塞控制方法。例如,该非临时性计算机可读存储介质可以是ROM、随机存取存储器(RandomAccess Memory,RAM)、磁带、软盘和光数据存储设备等。
本申请实施例还提供一种拥塞控制系统,该系统包括:发送设备1610和接收设备1620;
所述接收设备1620用于:接收数据包的反馈确认包,所述反馈确认包携带有接收设备添加的第一拥塞信息包头;从所述反馈确认包的所述第一拥塞信息包头中,提取第一信息;通过拥塞控制算法对所述第一信息进行处理,得到发送量控制信息;基于所述发送量控制信息发送后续的数据包。
所述发送设备1610用于:接收数据包,所述数据包携带有发送设备添加的第二拥塞信息包头;通过拥塞控制算法基于所述第二拥塞信息包头生成第一拥塞信息包头,所述第一拥塞信息包头携带有第一信息;在所述数据包的反馈确认包中插入所述第一拥塞信息包头;向所述发送设备发送所述反馈确认包。
本申请实施例还提供一种计算机设备,该计算机设备包括:处理器和存储器,存储器中存储有至少一条计算机指令,至少一条计算机指令由处理器加载并执行以实现上述各方法实施例提供的拥塞控制方法。
本申请实施例还提供了一种计算机存储介质,计算机可读存储介质中存储有至少一条计算机指令,至少一条计算机指令由处理器加载并执行以实现上述各方法实施例提供的拥塞控制方法。
本申请实施例还提供了一种计算机程序产品,上述计算机程序产品包括计算机指令,所述计算机指令存储在计算机可读存储介质中;所述计算机指令由计算机设备的处理器从所述计算机可读存储介质读取并执行,使得所述计算机设备执行上述各方法实施例提供的拥塞控制方法。
应当理解的是,在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同切换、改进等,均应包含在本申请的保护范围之内。

Claims (20)

1.一种拥塞控制方法,其特征在于,应用于发送设备,所述方法包括:
接收数据包的反馈确认包,所述反馈确认包携带有接收设备添加的第一拥塞信息包头;
从所述反馈确认包的所述第一拥塞信息包头中,提取第一信息;
通过拥塞控制算法对所述第一信息进行处理,得到发送量控制信息;
基于所述发送量控制信息发送后续的数据包。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:将提取的所述第一信息存储在缓存区;
所述通过拥塞控制算法对所述第一信息进行处理,得到发送量控制信息,包括:
通过所述拥塞控制算法在所述缓存区异步读取所述第一信息;
通过所述拥塞控制算法对读取到的所述第一信息进行处理,得到发送量控制信息。
3.根据权利要求2所述的方法,其特征在于,所述通过所述拥塞控制算法对读取到的所述第一信息进行处理,得到发送量控制信息,包括:
在所述拥塞控制算法是基于速率的拥塞控制算法的情况下,基于读取到的所述第一信息计算发送速率;
根据所述发送速率更新令牌,所述令牌是用于控制所述数据包的发送速率的所述发送量控制信息。
4.根据权利要求2所述的方法,其特征在于,所述通过所述拥塞控制算法对读取到的所述第一信息进行处理,得到发送量控制信息,包括:
在所述拥塞控制算法是基于窗口的拥塞控制算法的情况下,基于读取到的所述第一信息计算可用窗口,所述可用窗口的大小用于限定可发送数据包的个数;
根据所述可用窗口更新令牌,所述令牌是用于控制所述数据包的发送速率的所述发送量控制信息。
5.根据权利要求1至4任一所述的方法,其特征在于,所述从所述反馈确认包的所述第一拥塞信息包头中,提取第一信息,包括:
基于自定义的包头提取信息,从所述反馈确认包的所述第一拥塞信息包头中,提取所述第一信息;
其中,所述自定义的包头提取信息包括:包头偏移长度、包头长度、存放地址中的至少一种。
6.根据权利要求1至4任一所述的方法,其特征在于,所述第一信息包括:
用于供所述发送设备识别是否拥塞的网络信息;
或,
所述接收设备对是否拥塞的识别结果。
7.根据权利要求1至4任一所述的方法,其特征在于,所述方法还包括:
在所述数据包中插入第二拥塞信息包头,所述第二拥塞信息包头用于供所述接收设备生成所述第一拥塞信息包头;
发送所述数据包。
8.根据权利要求7所述的方法,其特征在于,所述第二拥塞信息包头包括如下包头中的任意一种:
拥塞通知CNP包头;往返时延RTT探测包头;带内网络遥测INT包头;负载率包头。
9.根据权利要求7所述的方法,其特征在于,所述在所述数据包中插入第二拥塞信息包头,包括:
基于自定义的包头插入信息在所述数据包中插入所述第二拥塞信息包头;
其中,所述自定义的包头插入信息包括:包头偏移长度、包头长度、包头内容中的至少一种。
10.一种拥塞控制方法,其特征在于,应用于接收设备,所述方法包括:
接收数据包,所述数据包携带有发送设备添加的第二拥塞信息包头;
通过拥塞控制算法基于所述第二拥塞信息包头生成第一拥塞信息包头,所述第一拥塞信息包头携带有第一信息;
在所述数据包的反馈确认包中插入所述第一拥塞信息包头;
向所述发送设备发送所述反馈确认包。
11.根据权利要求10所述的方法,其特征在于,所述方法还包括:
提取所述第二拥塞信息包头中携带的第二信息;将所述第二信息存储在缓存区;
所述通过拥塞控制算法基于所述第二拥塞信息包头生成第一拥塞信息包头,包括:
通过所述拥塞控制算法在所述缓存区异步读取所述第二信息;
通过所述拥塞控制算法对所述第二信息进行处理,生成所述第一信息。
12.根据权利要求11所述的方法,其特征在于,所述提取所述第二拥塞信息包头中携带的第二信息,包括:
基于自定义的包头提取信息提取所述第二拥塞信息包头中携带的第二信息;
其中,所述自定义的包头提取信息包括:包头偏移长度、包头长度、存放地址中的至少一种。
13.根据权利要求10至12任一所述的方法,其特征在于,所述在所述数据包的反馈确认包中插入所述第一拥塞信息包头,包括:
基于自定义的包头插入信息在所述数据包的所述反馈确认包中插入所述第一拥塞信息包头;
其中,所述自定义的包头插入信息包括:包头偏移长度、包头长度、包头内容中的至少一种。
14.根据权利要求10至12任一所述的方法,其特征在于,所述第一信息包括:
用于供所述发送设备识别是否拥塞的网络信息;
或,
所述接收设备对是否拥塞的识别结果。
15.一种拥塞控制装置,其特征在于,所述装置包括:
反馈确认包接收模块,用于接收数据包的反馈确认包,所述反馈确认包携带有接收设备添加的第一拥塞信息包头;
提取模块,用于从所述反馈确认包的所述第一拥塞信息包头中,提取第一信息;
运算模块,用于通过拥塞控制算法对所述第一信息进行处理,得到发送量控制信息;
数据包发送模块,用于基于所述发送量控制信息发送后续的数据包。
16.一种拥塞控制装置,其特征在于,所述装置包括:
数据包接收模块,用于接收数据包,所述数据包携带有发送设备添加的第二拥塞信息包头;
运算模块,用于通过拥塞控制算法基于所述第二拥塞信息包头生成第一拥塞信息包头,所述第一拥塞信息包头携带有第一信息;
插入模块,用于在所述数据包的反馈确认包中插入所述第一拥塞信息包头;
反馈确认包发送模块,用于向所述发送设备发送所述反馈确认包。
17.一种拥塞控制系统,其特征在于,所述系统包括:发送设备和接收设备;
所述接收设备用于:接收数据包的反馈确认包,所述反馈确认包携带有接收设备添加的第一拥塞信息包头;从所述反馈确认包的所述第一拥塞信息包头中,提取第一信息;通过拥塞控制算法对所述第一信息进行处理,得到发送量控制信息;基于所述发送量控制信息发送后续的数据包;
所述发送设备用于:接收数据包,所述数据包携带有发送设备添加的第二拥塞信息包头;通过拥塞控制算法基于所述第二拥塞信息包头生成第一拥塞信息包头,所述第一拥塞信息包头携带有第一信息;在所述数据包的反馈确认包中插入所述第一拥塞信息包头;向所述发送设备发送所述反馈确认包。
18.一种计算机设备,其特征在于,所述计算机设备包括:处理器和存储器,所述存储器中存储有至少一条计算机指令,至少一条所述计算机指令由所述处理器加载并执行以实现如权利要求1至14中任一项所述的拥塞控制方法。
19.一种计算机存储介质,其特征在于,所述计算机可读存储介质中存储有至少一条计算机指令,至少一条计算机指令由处理器加载并执行以实现如权利要求1至14中任一项所述的拥塞控制方法。
20.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机指令,所述计算机指令存储在计算机可读存储介质中;所述计算机指令由计算机设备的处理器从所述计算机可读存储介质读取并执行,使得所述计算机设备执行如权利要求1至14中任一项所述的拥塞控制方法。
CN202210004960.XA 2022-01-05 2022-01-05 拥塞控制方法、装置、设备及系统 Pending CN116419317A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210004960.XA CN116419317A (zh) 2022-01-05 2022-01-05 拥塞控制方法、装置、设备及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210004960.XA CN116419317A (zh) 2022-01-05 2022-01-05 拥塞控制方法、装置、设备及系统

Publications (1)

Publication Number Publication Date
CN116419317A true CN116419317A (zh) 2023-07-11

Family

ID=87052022

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210004960.XA Pending CN116419317A (zh) 2022-01-05 2022-01-05 拥塞控制方法、装置、设备及系统

Country Status (1)

Country Link
CN (1) CN116419317A (zh)

Similar Documents

Publication Publication Date Title
US6026075A (en) Flow control mechanism
US6222839B1 (en) Packet switching apparatus
US20220303217A1 (en) Data Forwarding Method, Data Buffering Method, Apparatus, and Related Device
US7573821B2 (en) Data packet rate control
EP0748141A2 (en) Congestion control system and method for packet switched networks providing max-min fairness
US7606151B2 (en) Power reduction in switch architectures
JP3946145B2 (ja) 高速イーサネット(登録商標)スイッチおよび高速イーサネット(登録商標)データフレームを分配するための方法
US9729459B2 (en) System and method for credit-based link level flow control
US6711167B1 (en) ATM communication apparatus controlling method, ATM communication apparatus and recording medium therefor
JP3394504B2 (ja) 並列スイッチングエンジン中で、パケット順序の完全性を維持する方法および装置
EP1495591A1 (en) Reducing transmission time for data packets controlled by a link layer protocol comprising a fragmenting/defragmenting capability
CN113162862A (zh) 拥塞控制方法及装置
US20070291782A1 (en) Acknowledgement filtering
CN111026324B (zh) 转发表项的更新方法及装置
US8908510B2 (en) Communication link with intra-packet flow control
US9985886B2 (en) Technologies for network packet pacing during segmentation operations
CN115766605A (zh) 网络拥塞控制方法、装置及系统
CN105763375A (zh) 一种数据包发送方法、接收方法及微波站
JP5087595B2 (ja) エッジノード、ウィンドウサイズ制御方法およびプログラム
JP2018046404A (ja) 中継装置、中継システム、中継プログラム、及び中継方法
CN116419317A (zh) 拥塞控制方法、装置、设备及系统
CN114745331B (zh) 一种拥塞通知方法及设备
RU2715016C1 (ru) Передающее устройство, способ, программа и носитель записи
US7646724B2 (en) Dynamic blocking in a shared host-network interface
CN117319288B (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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40089535

Country of ref document: HK