CN116489106A - 一种拥塞控制方法、装置、转发芯片及客户端 - Google Patents
一种拥塞控制方法、装置、转发芯片及客户端 Download PDFInfo
- Publication number
- CN116489106A CN116489106A CN202310737555.3A CN202310737555A CN116489106A CN 116489106 A CN116489106 A CN 116489106A CN 202310737555 A CN202310737555 A CN 202310737555A CN 116489106 A CN116489106 A CN 116489106A
- Authority
- CN
- China
- Prior art keywords
- congestion
- cnp
- cache
- transmission rate
- client
- 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 78
- 230000005540 biological transmission Effects 0.000 claims abstract description 112
- 238000012544 monitoring process Methods 0.000 claims abstract description 16
- 230000008859 change Effects 0.000 claims description 33
- 238000004806 packaging method and process Methods 0.000 claims description 4
- 238000004891 communication Methods 0.000 abstract description 4
- 208000027744 congestion Diseases 0.000 description 254
- 230000000875 corresponding effect Effects 0.000 description 47
- 230000009467 reduction Effects 0.000 description 25
- 238000004422 calculation algorithm Methods 0.000 description 17
- 230000008569 process Effects 0.000 description 15
- 238000010586 diagram Methods 0.000 description 12
- 238000012545 processing Methods 0.000 description 12
- 238000004364 calculation method Methods 0.000 description 10
- NAWXUBYGYWOOIX-SFHVURJKSA-N (2s)-2-[[4-[2-(2,4-diaminoquinazolin-6-yl)ethyl]benzoyl]amino]-4-methylidenepentanedioic acid Chemical compound C1=CC2=NC(N)=NC(N)=C2C=C1CCC1=CC=C(C(=O)N[C@@H](CC(=C)C(O)=O)C(O)=O)C=C1 NAWXUBYGYWOOIX-SFHVURJKSA-N 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 238000011144 upstream manufacturing Methods 0.000 description 5
- 230000003247 decreasing effect Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 230000007423 decrease Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000013139 quantization Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 230000007306 turnover Effects 0.000 description 1
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/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
-
- 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/30—Flow control; Congestion control in combination with information about buffer occupancy at either end or at transit nodes
-
- 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/36—Flow control; Congestion control by determining packet size, e.g. maximum transfer unit [MTU]
- H04L47/365—Dynamic adaptation of the packet size
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请实施例提供了一种拥塞控制方法、装置、转发芯片及客户端,涉及通信技术领域,上述拥塞控制方法包括:监控交换机中缓存队列内缓存的报文数量;当报文数量大于等于预设最低门限值时,生成CNP;向客户端发送CNP;客户端接收交换机发送的CNP;降低CNP指示的数据流的传输速率。应用本申请实施例提供的技术方案可以降低触发PFC的频率,降低链路时延,并提高链路带宽。
Description
技术领域
本申请涉及通信技术领域,特别是涉及一种拥塞控制方法、装置、转发芯片及客户端。
背景技术
RoCE(Remote Direct Memory Access over Converged Ethernet,基于以太网的远程直接数据存取)具有成本更低、报文传输速率更快等优点,被更为广泛的应用。目前,基于RoCE的无损网络采用DCQCN(Data Center Quantized Congestion Notification,数据中心量化拥塞通知)算法进行拥塞控制,以保证流量的无损传输。然而,基于DCQCN算法进行拥塞控制时,流控链路较长,导致链路上的拥塞处理不及时,容易触发PFC(Priority-BasedFlow Control,基于优先级的流量控制),使得流量降速极为明显,增大了链路时延,并降低了链路带宽。
发明内容
本申请实施例的目的在于提供一种拥塞控制方法、装置、转发芯片及客户端,以降低触发PFC的频率,降低链路时延,并提高链路带宽。具体技术方案如下:
第一方面,本申请实施例提供了一种拥塞控制方法,应用于交换机中的转发芯片,所述方法包括:
监控所述交换机中缓存队列内缓存的报文数量;
当所述报文数量大于等于预设最低门限值时,生成CNP(CongestionNotification Packet,拥塞通知报文);
向客户端发送所述CNP,以使所述客户端降低所述CNP指示的数据流的传输速率。
在一些实施例中,所述方法还包括:
获取所述缓存队列内缓存的报文数量的变化幅度,作为目标缓存拥塞系数;
将所述目标缓存拥塞系数封装在所述CNP中。
在一些实施例中,所述获取所述缓存队列内缓存的报文数量的变化幅度,作为目标缓存拥塞系数的步骤,包括:
获取所述缓存队列内缓存的当前报文数量和上一时刻报文数量的差值,得到所述缓存队列的拥塞长度变化值;
根据所述拥塞长度变化值、预设最高门限值、所述预设最低门限值和预设拥塞区间参数,得到所述缓存队列内缓存的报文数量的变化幅度,作为目标缓存拥塞系数。
在一些实施例中,所述根据所述拥塞长度变化值、预设最高门限值、所述预设最低门限值和预设拥塞区间参数,得到所述缓存队列内缓存的报文数量的变化幅度的步骤,包括:
利用如下公式确定所述缓存队列内缓存的报文数量的变化幅度:
C=Ct*λ /(W1-W2)
其中,C为所述缓存队列内缓存的报文数量的变化幅度,Ct为所述拥塞长度变化值,W1为所述预设最高门限值,W2为所述预设最低门限值,λ为所述预设拥塞区间参数。
在一些实施例中,所述CNP携带有INT(In-band Telemetry,带内遥测)头,所述目标缓存拥塞系数封装在所述INT头中。
第二方面,本申请实施例提供了一种拥塞控制方法,应用于客户端,所述方法包括:
接收交换机发送的CNP,所述CNP为所述交换机中的转发芯片根据上述第一方面所述的方法生成的报文;
降低所述CNP指示的数据流的传输速率。
在一些实施例中,所述CNP携带有目标缓存拥塞系数;
所述降低所述CNP指示的数据流的传输速率的步骤,包括:
根据预设的缓存拥塞系数和降速策略的对应关系,确定所述目标缓存拥塞系数对应的目标降速策略,所述对应关系中,第一缓存拥塞系数对应的第一降速策略的降速幅度大于第二缓存拥塞系数对应的第二降速策略的降速幅度,所述第一缓存拥塞系数大于所述第二缓存拥塞系数;
根据所述目标降速策略、所述目标缓存拥塞系数、降速因子和所述CNP指示的数据流的当前传输速率,更新所述数据流的传输速率,更新后的传输速率小于所述当前传输速率。
在一些实施例中,所述根据所述目标降速策略、所述目标缓存拥塞系数、降速因子和所述CNP指示的数据流的当前传输速率,更新所述数据流的传输速率的步骤,包括:
利用如下降速策略的公式更新所述数据流的传输速率:
其中,RT为更新后的传输速率,Rc为所述当前传输速率,α为所述降速因子,C为所述目标缓存拥塞系数,λ为所述预设拥塞区间参数。
第三方面,本申请实施例提供了一种拥塞控制装置,应用于交换机中的转发芯片,所述装置包括:
监控模块,用于监控所述交换机中缓存队列内缓存的报文数量;
生成模块,用于当所述报文数量大于等于预设最低门限值时,生成CNP;
发送模块,用于向客户端发送所述CNP,以使所述客户端降低所述CNP指示的数据流的传输速率。
在一些实施例中,所述生成模块,还用于:
获取所述缓存队列内缓存的报文数量的变化幅度,作为目标缓存拥塞系数;
将所述目标缓存拥塞系数封装在所述CNP中。
在一些实施例中,所述生成模块,具体用于:
获取所述缓存队列内缓存的当前报文数量和上一时刻报文数量的差值,得到所述缓存队列的拥塞长度变化值;
根据所述拥塞长度变化值、预设最高门限值、所述预设最低门限值和预设拥塞区间参数,得到所述缓存队列内缓存的报文数量的变化幅度,作为目标缓存拥塞系数。
在一些实施例中,所述生成模块,具体用于:
利用如下公式确定所述缓存队列内缓存的报文数量的变化幅度:
C=Ct*λ /(W1-W2)
其中,C为所述缓存队列内缓存的报文数量的变化幅度,Ct为所述拥塞长度变化值,W1为所述预设最高门限值,W2为所述预设最低门限值,λ为所述预设拥塞区间参数。
在一些实施例中,所述CNP携带有INT头,所述目标缓存拥塞系数封装在所述INT头中。
第四方面,本申请实施例提供了一种拥塞控制装置,应用于客户端,所述装置包括:
接收模块,用于接收交换机发送的CNP,所述CNP为所述交换机中的转发芯片根据上述第三方面所述的装置生成的报文;
降低模块,用于降低所述CNP指示的数据流的传输速率。
在一些实施例中,所述CNP携带有目标缓存拥塞系数;
所述降低模块,具体用于:
根据预设的缓存拥塞系数和降速策略的对应关系,确定所述目标缓存拥塞系数对应的目标降速策略,所述对应关系中,第一缓存拥塞系数对应的第一降速策略的降速幅度大于第二缓存拥塞系数对应的第二降速策略的降速幅度,所述第一缓存拥塞系数大于所述第二缓存拥塞系数;
根据所述目标降速策略、所述目标缓存拥塞系数、降速因子和所述CNP指示的数据流的当前传输速率,更新所述数据流的传输速率,更新后的传输速率小于所述当前传输速率。
在一些实施例中,所述降低模块,具体用于:
利用如下降速策略的公式更新所述数据流的传输速率:
其中,RT为更新后的传输速率,Rc为所述当前传输速率,α为所述降速因子,C为所述目标缓存拥塞系数,λ为所述预设拥塞区间参数。
第五方面,本申请实施例提供了一种转发芯片,执行上述第一方面所述的方法步骤。
第六方面,本申请实施例提供了一种客户端,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器被所述机器可执行指令促使:实现上述第二方面所述的方法步骤。
本申请实施例有益效果:
本申请实施例提供的技术方案中,交换机的转发芯片通过监控交换机中缓存队列内缓存的报文数量,监控交换机的拥塞程度。当一个缓存队列内缓存的报文数量大于等于预设最低门限值时,针对该缓存队列内缓存的报文所属的数据流,转发芯片生成对应的CNP,并向客户端发送CNP。客户端接收CNP后,对CNP指示的数据流(即上述缓存队列内缓存的报文所属的数据流)进行拥塞控制,降低该数据流的传输速率。此过程中,由交换机的转发芯片直接生成CNP,并传输到客户端,流控链路为发生拥塞的交换机到客户端之间的链路,相对于相关技术中的流控链路,即发生拥塞的交换机到服务器、服务器到客户端之间的链路,大大缩短了流控链路的长度,链路上的拥塞处理更加及时,进而降低了触发PFC的频率,并降低了时延,提高了链路带宽。此外,由交换机中的转发芯片进行拥塞控制,避免了交换机在生成和转发CNP时,对CPU造成额外的资源消耗,实现在降低CNP的流转时长的同时,避免CPU占用率增加。
当然,实施本申请的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的实施例。
图1为基于RoCE的无损网络的一种示意图;
图2为CNP的一种结构示意图;
图3为本申请实施例提供的拥塞控制方法的第一种流程示意图;
图4为本申请实施例提供的拥塞控制方法的第二种流程示意图;
图5本申请实施例提供的CNP的一种结构示意图;
图6为本申请实施例提供的拥塞控制方法的第三种流程示意图;
图7为本申请实施例提供的步骤S62的细化示意图;
图8(a)为原有拥塞控制方法中报文转发的示意图;
图8(b)为本申请实施例提供的拥塞控制方法中报文转发的示意图;
图9为本申请实施例提供的拥塞控制装置的第一种流程示意图;
图10为本申请实施例提供的拥塞控制装置的第二种流程示意图;
图11为本申请实施例提供的客户端的一种结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员基于本申请所获得的所有其他实施例,都属于本申请保护的范围。
为便于理解,下面对本申请实施例中出现的词语进行解释说明。
RDMA(Remote Direct Memory Access,远程直接数据存取):通过网络将数据从一个系统快速移动到远程系统存储器中,减少计算机的处理过程。
RoCE:在以太网络的基础上使用RDMA。
ECN(Explicit Congestion Notification,显式拥塞通知):基于显示反馈的协议。
PFC:一种基于优先级的流量控制技术。
INT(In-band Telemetry,带内遥测):一种网络收集技术。
DCQCN:一种拥塞控制算法,目前在RoCEv2(Remote Direct Memory Access overConverged Ethernet version 2,第二版基于以太网的远程直接数据存取)网络中广泛使用。
CNP(Congestion Notification Packet,拥塞通知报文):由服务器发送至客户端,用于反压。
QCN(Quantized Congestion Notification,量化拥塞通知):应用于二层的端到端拥塞通知机制。通过主动反向通知,降低网络中的丢包率和延时,从而提高网络性能。
随着科技的进步,以及数字化技术的发展,人类社会步入PB(petabyte,拍字节)数据社会阶段,网络中存在着大量数据。大量数据的产生对数据的传递提出了更高的要求,进而对网络设备的流量转发能力提出了更高的要求。在此基础上,传统的TCP(TransmissionControl Protocol,传输控制协议)/IP(Internet Protocol,网络协议)架构下的流量转发形式并不能满足大流量网络的实际要求,因此RDMA(Remote Direct Memory Access,远程直接数据存取)技术应运而生。RDMA是一种远端内存直接访问技术,通过网络将数据从一个系统快速移动到远程系统存储器中,减少计算机的处理过程,具备高速、超低延时、极低CPU使用率等优点。RDMA最早专属于IB(Infiniband,无限带宽)架构,在网络融合大趋势下,为了降低使用RDMA的成本,出现了RoCE和iWARP(Internet Wide Area RDMA Protocal,互联网广域远程直接数据存取协议)架构,这使高速、超低延时、极低CPU(Central ProcessingUnit,中央处理器)使用率的RDMA得以部署在目前使用最广泛的以太网上。
在IB、RoCE、iWARP三种RDMA的实现机制中,由于RoCE在成本上相比IB要低很多,且RoCE的报文传输速率要比iWARP的报文传输速率快很多,因此RoCE得到了更为广泛的应用。RoCE对于无损网络的要求较高,目前,基于RoCE的无损网络采用DCQCN算法进行拥塞控制,以保证数据流的无损传输。
下面通过图1所示的基于RoCE的无损网络的架构,对基于RoCE的无损网络的拥塞控制流程进行说明。图1所示的无损网络包括一个服务器(Server)和两个交换机(Switch),即交换机1和交换机2。交换机1和交换机2中配置了ECN最低门限值和最高门限值,以及PFC门限值。基于该无损网络的拥塞控制流程包括如下步骤:
步骤1,交换机1发现缓存队列存在拥塞,且缓存队列内缓存的报文数量超过设置的ECN最低门限值,则触发ECN,即交换机1对缓存队列中缓存的报文进行ECN置位,继续将ECN置位的报文向服务器发送。
步骤2,交换机2接收到ECN置位的报文,进行报文转发,将ECN置位的报文发送至服务器。
步骤3,服务器接收到ECN置位的报文后,经过分析处理,生成CNP,该CNP的源地址和目的地址与ECN置位的报文的源地址和目的地址相反,且该CNP携带了拥塞信息。其中,拥塞信息可以携带在IB BTH(Base Transport Header,基本传输头)中。CNP的结构如图2所示,包括MAC(Media Access Control,媒体访问控制)头、IP头、UDP(User DatagramProtocol,用户数据报协议)头、IB BTH、ICRC(Interface Cyclic Redundancy Check,循环冗余检测)和FCS(Frame Check Sequence,帧校验序列)。IB BTH的结构如图2所示,可以包括OpCode(操作码)、SE(Seek Event,请求事件)、M(Message,通信状态迁移位)、P_key(分区密钥)、DestQP(Destination Queue Pair,指定目标队列对)、PSN(Packet SequenceNumber,分组序列号)等拥塞信息。
OpCode,长度为8bit(位),指示IB报文类型,同时指定扩展标头。CNP中OpCode取值为0x81。
SE,长度为1bit,指示响应者生成时间。CNP中SE取值为0。
M,长度为1bit,CNP中M取值为0。
P_key,长度为16bit,指示与此报文关联的逻辑分区,与ECN置位的报文标识位一致。CNP中P_key取值为0xffff。
DestQP,长度为24bit。
PSN,长度为24bit。CNP中PSN取值为0。
服务器生成CNP后,按照CNP的目的地址,将该CNP发送至交换机2。
步骤4,交换机2接收到CNP后,按照CNP的目的地址,将CNP发送至上一级交换机(交换机1)。
步骤5,交换机1按照CNP的目的地址,将CNP发送至客户端。
步骤6,客户端根据接收到的CNP,使用DCQCN算法,对CNP指示的数据流进行控制,按比例降低数据流的传输速率。
步骤7,客户端根据降低后的传输速率,向服务器发送报文。
通过上述步骤1-步骤5,完成了一次拥塞控制,也就是,完成了一次ECN流控。流控链路为交换机1-交换机2-服务器-交换机2-交换机1-客户端。
步骤8,在进行ECN流控后,如果交换机1的缓存队列内缓存的报文数量下降,则交换机1减少ECN置位的报文数量,直到缓存队列内缓存的报文数量下降到ECN最低门限值以下,交换机1不再进行ECN置位;如果交换机1的缓存队列内缓存的报文数量依旧在持续上升,则交换机1增加ECN置位的报文数量;当到达ECN最高门限值,将全部报文进行ECN置位;当缓存队列缓存的报文数量到达ECN最高门限值后,缓存队列内缓存的报文数量依旧在持续上升,且超过了设置的PFC门限值,此时交换机1触发PFC层级反压,向上游设备(图1中为客户端)发送PAUSE(暂停)帧。上游设备在接收到PAUSE帧之后,对应的缓存队列停止发送报文,待发送的报文存入该上游设备自身的缓存队列,不会再向拥塞交换机发送报文。如果上游设备的缓存队列也超过预先设定的PFC门限值,则继续向上游设备反压。
步骤9,当PAUSE帧反压至客户端,也就是网络终端设备时,客户端对对应的缓存队列内缓存的报文做出整体限制,完成对于整个缓存队列的流量控制,降低拥塞。
在当前RoCEv2无损网络的实现中,DCQCN算法分为三部分:交换机上的CP(Congestion Point,拥塞点)算法、服务器的NP(Notification Point,通知点)算法以及客户端的RP(Reaction Point,响应点)算法。其中RP算法对于降速计算起到了决定性的作用,其控速过程如下:
(1)降速过程:
在RP算法中,当客户端接收到CNP后,会根据上一时刻的传输速率更新目标速率,并更新降速因子,将更新的目标速率作为数据流更新后的传输速率,参见公式(1)-公式(3)。
Rc1=Rc*(1-α/2 ) (1)
α=(1-g)*α+g (2)
RT=Rc1 (3)
其中,RT为更新后的传输速率,Rc1为目标速率,Rc为上一时刻的传输速率,g为可调的常量参数(0<g<1),α为降速因子,可以看作是交换机缓存队列超过最大临界长度的概率,当α趋近于1时,传输速率减半,但是当α很小时,传输速率不会受到太大影响。客户端根据公式(1)-公式(3)降低CNP指示的数据流的传输速率,并根据更新后的传输速率发送报文,实现降速。
(2)增速过程:
如果客户端在一个流控周期内没有收到CNP,则将再次更新α,此时α=(1-g)*α。该流控周期为产生CNP的周期,即在一个流控周期内,服务器只会向客户端发送一个CNP。如果后续仍未接收到CNP,则客户端会增加数据流的传输速率,该过程与QCN算法中的RP算法相同,包括两种状态:快速恢复阶段和主动增加阶段。
在快速恢复阶段中,客户端会在五个流控周期内,将传输速率增加到接近降速前的传输速率。每个流控周期的更新后的传输速率均为上一流控周期的传输速率与降速前的传输速率之和的一半,计算公式如下:
Rc1=1/2(Rc+Rs) (4)
其中,Rc1为更新后的传输速率,Rc为上一流控周期的传输速率,Rs为降速前的传输速率。客户端根据公式(4)在未收到CNP的流控周期内增加数据流的传输速率,对数据流的传输速率进行控制。
在主动增加阶段中,客户端发现多余的可用带宽,并在此基础上进行传输速率的扩张,扩张速度较为缓慢。
上述基于RoCE的无损网络中,采用DCQCN算法进行拥塞控制,存在如下问题:
问题1,流控链路较长,导致链路上的拥塞处理不及时,容易触发PFC。
问题2,客户端在降速过程中,最大只能降低50%的传输速率。当面对较多接口传递过来的突发数据流时,交换机上的ECN流控完全不足以应对突发数据流,只能通过PFC方式来进行流控。如果存在大量的突发数据流,交换机会频繁触发PFC。
由于PFC有死锁和风暴的问题,且其流量处理方式是层级反压机制,会直接将流入交换机的全部流量削减为0。因此,PFC在降速时,影响范围广,流量控制力度较大,在某种程度上会极大地影响整体链路的时延和带宽。而上述基于RoCE的无损网络较为容易触发PFC,增大了链路时延,并降低了链路带宽。
为了降低触发PFC的频率,降低链路时延,并提高链路带宽,本申请提供了一种拥塞控制方法,该方法中,交换机的转发芯片通过监控交换机中缓存队列内缓存的报文数量,监控交换机的拥塞程度。当一个缓存队列内缓存的报文数量大于等于预设最低门限值时,针对该缓存队列内缓存的报文所属的数据流,转发芯片生成对应的CNP,并向客户端发送CNP。客户端接收CNP后,对CNP指示的数据流(即上述缓存队列内缓存的报文所属的数据流)进行拥塞控制,降低该数据流的传输速率。此过程中,由交换机的转发芯片直接生成CNP,并传输到客户端,流控链路为发生拥塞的交换机到客户端之间的链路,相对于相关技术中的流控链路,即发生拥塞的交换机到服务器、服务器到客户端之间的链路,大大缩短了流控链路的长度,链路上的拥塞处理更加及时,进而降低了触发PFC的频率,并降低了时延,提高了链路带宽。此外,由交换机中的转发芯片进行拥塞控制,避免了交换机在生成和转发CNP时,对CPU造成额外的资源消耗,实现在降低CNP的流转时长的同时,避免CPU占用率增加。
下面通过具体实施例,对本申请实施例提供的拥塞控制方法进行详细说明。
参见图3,为本申请实施例提供的拥塞控制方法的第一种流程示意图,应用于交换机中的转发芯片,交换机可以是报文转发路径上的任一交换机,转发芯片可以为TD3(Trident3)芯片、TD4(Trident 4)芯片等,对转发芯片的型号不作限制。上述拥塞控制方法包括如下步骤:
步骤S31,监控交换机中缓存队列内缓存的报文数量。
本申请实施例中,交换机中可以包括一个或多个缓存队列,针对每个缓存队列的拥塞控制流程相同,为便于理解,下面以一个缓存队列进行说明,并不起限定作用。
转发芯片接收客户端或其他交换机转发的报文,当接收报文的流量大于链路带宽时,转发芯片将报文缓存至缓存队列中。转发芯片实时监控缓存队列内缓存的报文数量,确定是否发生拥塞。本申请实施例中,缓存队列内缓存的报文数量也可以称为报文缓存长度。
步骤S32,当报文数量大于等于预设最低门限值时,生成CNP。
本申请实施例中,交换机中预先设置了ECN最低门限值,即预设最低门限值。当转发芯片监控到缓存队列内缓存的报文数量大于等于预设最低门限值时,表示缓存队列中的报文数量较多,交换机发生拥塞,转发芯片执行步骤S33,继续进行拥塞控制,生成CNP,该CNP用于降低缓存队列内缓存的报文所属数据流的传输速率。CNP的结构可参见上述图2。
当转发芯片监控到缓存队列内缓存的报文数量小于预设最低门限值时,表示缓存队列内缓存的报文数量较少,交换机未发生拥塞,转发芯片可以结束当前的拥塞控制流程,不再执行步骤S33。
本申请实施例中,为保证CNP转发给客户端,转发芯片可以配置CNP源地址为交换机的IP地址,目的地址为客户端的IP地址,使得转发芯片可以将CNP发送到客户端。
本申请实施例中,为了避免频繁生成CNP,交换机可以配置流控周期,当转发芯片监控到缓存队列内缓存的报文数量大于等于预设最低门限值时,每个流控周期内,转发芯片生成一个CNP。流控周期的时长可以根据实际需求进行设定,例如,流控周期可以为5微秒、7微秒等。流控周期的控制可以采用定时器来实现,可以通过其他方式来实现,对此不进行限定。
步骤S33,向客户端发送CNP,以使客户端降低CNP指示的数据流的传输速率。
本申请实施例中,转发芯片根据CNP的目的地址,向客户端发送生成的CNP。客户端接收到CNP后,解析CNP,可确定需要进行流控的数据流,即缓存队列内缓存的报文所属数据流,也就是,CNP指示的数据流,降低所确定的数据流的传输速率。客户端降低数据流的传输速率的具体方式可参见上述相关概念中对DCQCN算法的描述。
本申请实施例提供的技术方案中,交换机的转发芯片通过监控交换机中缓存队列内缓存的报文数量,监控交换机的拥塞程度。当一个缓存队列内缓存的报文数量大于等于预设最低门限值时,针对该缓存队列内缓存的报文所属的数据流,转发芯片生成对应的CNP,并向客户端发送CNP。客户端接收CNP后,对CNP指示的数据流(即上述缓存队列内缓存的报文所属的数据流)进行拥塞控制,降低该数据流的传输速率。此过程中,由交换机的转发芯片直接生成CNP,并传输到客户端,流控链路为发生拥塞的交换机到客户端之间的链路,相对于相关技术中的流控链路,即发生拥塞的交换机到服务器、服务器到客户端之间的链路,大大缩短了流控链路的长度,链路上的拥塞处理更加及时,进而降低了触发PFC的频率,并降低了时延,提高了链路带宽。
此外,由交换机中的转发芯片进行拥塞控制,避免了交换机在生成和转发CNP时,对CPU造成额外的资源消耗,实现在降低CNP的流转时长的同时,避免CPU占用率增加。
在一些实施例中,参见图4,为本申请实施例提供的拥塞控制方法的第二种流程示意图,上述拥塞控制方法可以包括如下步骤:
步骤S41,监控交换机中缓存队列内缓存的报文数量。与上述步骤S31相同。
步骤S42,当报文数量大于等于预设最低门限值时,生成CNP。与上述步骤S32相同。
步骤S43,获取缓存队列内缓存的报文数量的变化幅度,作为目标缓存拥塞系数。
本申请实施例中,转发芯片统计缓存队列内缓存的报文数量的变化幅度,获得目标缓存拥塞系数。步骤S42和步骤S43的执行顺序不作限定。
在一个实施例中,转发芯片可以通过如下步骤实现步骤S43:
步骤A,获取缓存队列内缓存的当前报文数量和上一时刻报文数量的差值,得到缓存队列的拥塞长度变化值。
本申请实施例中,交换机可以配置流控周期。每隔流控周期,转发芯片获取一次缓存队列内缓存的报文数量,如获取当前时刻缓存队列内缓存的报文数量,作为当前报文数量,上一时刻所获取到的缓存队列内缓存的报文数量,作为上一时刻报文数量。当前时刻与上一时刻的间隔为流控周期。
上述步骤A可以采用公式(5)表示。
Ct=Ct2-Ct1 (5)
其中,Ct为拥塞长度变化值,Ct2为当前报文数量,Ct1为上一时刻报文数量。
步骤B,根据拥塞长度变化值、预设最高门限值、预设最低门限值和预设拥塞区间参数,得到缓存队列内缓存的报文数量的变化幅度,作为目标缓存拥塞系数。
交换机中预先设置了ECN最低门限值,即预设最低门限值,还预先设置了ECN最高门限值,即预设最高门限值。根据预设最高门限值与预设最低门限值的差值和预设拥塞区间参数,确定拥塞区间值,如公式(6)所示。
K=(W1-W2)/λ (6)
其中,K为拥塞区间值,W1为预设最高门限值,W2为预设最低门限值,λ为预设拥塞区间参数,λ的取值可以根据实际需求进行设定。例如,λ可以为10、20等。当λ固定时,缓存拥塞系数范围固定。例如,λ为10时,缓存拥塞系数范围为[-10,10]。
转发芯片计算拥塞长度变化值与拥塞区间值的比值,确定缓存队列内缓存的报文数量的变化幅度,作为缓存拥塞系数,如公式(7)所示。
C=Ct/K=Ct*λ/(W1-W2) (7)
其中,C为缓存队列内缓存的报文数量的变化幅度,即缓存拥塞系数,Ct为拥塞长度变化值,K为拥塞区间值,W1为预设最高门限值,W2为预设最低门限值,λ为预设拥塞区间参数。
本申请实施例中,转发芯片可以将上述公式(7)计算得到的缓存拥塞系数直接作为目标缓存拥塞系数,也可以对上述公式(7)计算得到的缓存拥塞系数进行向上取整或向下取整,将取整后的缓存拥塞系数作为目标缓存拥塞系数,以提高计算效率,节省计算资源。
在另一个实施例中,转发芯片还可以通过如下步骤实现步骤S33:获取缓存队列内缓存的当前报文数量和上一时刻报文数量的差值,得到缓存队列的目标拥塞长度变化值;根据预设的拥塞长度变化值与缓存拥塞系数的对应关系,确定目标拥塞长度变化值对应的缓存拥塞系数,作为目标缓存拥塞系数。本申请实施例中,转发芯片可以根据拥塞长度变化值直接获取目标缓存拥塞系数,而不需要计算得到目标缓存拥塞系数,以节省转发芯片的计算资源。
步骤S44,将目标缓存拥塞系数封装在CNP中。
本申请实施例中,转发芯片可以将目标缓存拥塞系数作为CNP的载荷,封装在CNP中。
为了降低对通信协议的改动,转发芯片可以通过INT处理器,将目标缓存拥塞系数封装在INT头中,CNP携带该INT头,携带该INT头的CNP可称为INT_CNP。这种情况下,CNP的结构如图5所示。图5中,CNP中包括:MAC头、IP头、UDP头、INT头、IB BTH、ICRC、FCS。MAC头、IBBTH、ICRC、FCS与上述图2中对应字段相同,具体可参见上述图2部分的描述。
INT头包括INT固有头部、INT监测信息和缓存拥塞系数等字段。INT固有头部、INT监测信息等字段可参见相关INT协议中的相关描述。缓存拥塞系数字段用于填充目标缓存拥塞系数。
IP头包括源地址字段和目的地址字段,源地址字段用于填充交换机的IP地址,目的地址字段中用于填充客户端的IP地址,使得转发芯片可以将CNP发送至客户端。
UDP头包括源端口字段和目的端口字段,源端口字段为7788,目的端口字段为5555,使得CNP转发至客户端后,客户端可以根据UDP头携带的源端口和目的端口,对CNP中的INT头进行解析,从而得到目标缓存拥塞系数,完成拥塞控制。
步骤S45,向客户端发送CNP,以使客户端降低CNP指示的数据流的传输速率。
本申请实施例中,客户端接收到CNP后,解析CNP,得到目标缓存拥塞系数,并确定CNP指示的数据流。客户端中预先存储有缓存拥塞系数和降速策略的对应关系,该对应关系中,第一缓存拥塞系数对应的第一降速策略的降速幅度大于第二缓存拥塞系数对应的第二降速策略的降速幅度,第一缓存拥塞系数大于第二缓存拥塞系数,也就是,缓存拥塞系数与降速幅度正相关。根据该对应关系,确定目标缓存拥塞系数对应的目标降速策略,进而根据目标降速策略、目标缓存拥塞系数、降速因子和CNP指示的数据流的当前传输速率,更新数据流的传输速率,更新后的传输速率小于当前传输速率。具体更新传输速率的方式,后续会进行详细介绍,此处不进行展开说明。
本申请实施例提供的技术方案中,缓存拥塞系数可以准确地反映缓存队列内缓存的报文数量的变化幅度。客户端根据缓存拥塞系数可以准确地控制对应数据流的传输速率。如在缓存拥塞系数较小时,采用较小降速幅度降低数据流的传输速率;在缓存拥塞系数较大时,采用较大降速幅度降低数据流的传输速率,避免了因降速幅度不够而频繁触发PFC的问题。
与上述拥塞控制方法对应,本申请实施例还提供了一种拥塞控制方法,参见图6,为本申请实施例提供的拥塞控制方法的第三种流程示意图,应用于客户端,上述拥塞控制方法包括:
步骤S61,接收交换机发送的CNP,CNP为交换机中的转发芯片根据图3-图4所示的任一拥塞控制方法生成的报文。
步骤S62,降低CNP指示的数据流的传输速率。
本申请实施例提供的技术方案中,交换机的转发芯片通过监控交换机中缓存队列内缓存的报文数量,监控交换机的拥塞程度。当一个缓存队列内缓存的报文数量大于等于预设最低门限值时,针对该缓存队列内缓存的报文所属的数据流,转发芯片生成对应的CNP,并向客户端发送CNP。客户端接收CNP后,对CNP指示的数据流(即上述缓存队列内缓存的报文所属的数据流)进行拥塞控制,降低该数据流的传输速率。此过程中,由交换机的转发芯片直接生成CNP,并传输到客户端,流控链路为发生拥塞的交换机到客户端之间的链路,相对于相关技术中的流控链路,即发生拥塞的交换机到服务器、服务器到客户端之间的链路,大大缩短了流控链路的长度,链路上的拥塞处理更加及时,进而降低了触发PFC的频率,并降低了时延,提高了链路带宽。
此外,由交换机中的转发芯片进行拥塞控制,避免了交换机在生成和转发CNP时,对CPU造成额外的资源消耗,实现在降低CNP的流转时长的同时,避免CPU占用率增加。
在一些实施例中,CNP携带有目标缓存拥塞系数,这种情况下,如图7所示,上述步骤S62可以包括如下步骤:
步骤S71,根据预设的缓存拥塞系数和降速策略的对应关系,确定目标缓存拥塞系数对应的目标降速策略,该对应关系中,第一缓存拥塞系数对应的第一降速策略的降速幅度大于第二缓存拥塞系数对应的第二降速策略的降速幅度,第一缓存拥塞系数大于第二缓存拥塞系数。
本申请实施例中,客户端预先存储有缓存拥塞系数和降速策略的对应关系,缓存拥塞系数越大,降速策略的降速幅度越大。客户端可以解析CNP中的INT头,得到目标缓存拥塞系数,进而根据该预先存储的缓存拥塞系数和降速策略的对应关系,确定目标缓存拥塞系数对应的降速策略,作为目标降速策略。
本申请实施例中,预设的缓存拥塞系数和降速策略的对应关系如下公式(8)所示。
(8)
其中,Rc1为目标速率,通过公式(3)可以将目标速率作为更新后的传输速率,进而更新数据流的传输速率,Rc为当前传输速率,α为降速因子,C为目标缓存拥塞系数,λ为预设拥塞区间参数。公式(8)结合公式(2)和公式(3),得到更新数据流的传输速率的降速策略,如公式(9)所示。
(9)
其中,RT为更新后的传输速率,Rc为当前传输速率,α为降速因子,C为目标缓存拥塞系数,λ为预设拥塞区间参数。
举例来说,当预设拥塞区间参数取值为10时,缓存拥塞系数的取值范围为[-10,10],更新数据流的传输速率的降速策略如下公式(10)所示。
(10)
1)当C=10时,表示缓存队列在一个流控周期内已经被全部占满,存在极大的突发数据流,此时数据流的流量已超出设置的ECN最高门限值,因此需要强力的流控,此时采用公式(10)中C=10时的降速公式进行拥塞控制。在上述计算公式下,单个流控周期内,数据流的降速幅度为原降速幅度的(10/2+1)2=36倍,即,更新后的传输速度为原更新后的传输速度的1/36。
2)当C∈(0,10)时,采用公式(10)中C∈(0,10)时的降速公式进行拥塞控制。为便于计算,节省计算资源,可对目标缓存拥塞系数取整。在对目标缓存拥塞系数取整的情况下,目标缓存拥塞系数在此范围内的最大值为9,最小值为1,因此在上述计算公式下,单个流控周期内,数据流的降速幅度最大为原降速幅度的(9/3+1)2=16倍,最小为原降速幅度的(1/3+1)2=16/9倍,即,更新后的传输速度最小为原更新后的传输速度的1/16,最大为1/(1/3+1)2=9/16。
3)当C=0时,表示上一个流控周期内,缓存队列内缓存的报文数量并无明显增加,说明流控已产生相应效果,但是客户端依然收到了CNP,表示数据流仍处于流控状态,此时目标缓存拥塞系数不参与相应的流控计算,可采用公式(10)中C=0时的降速公式进行拥塞控制。
4)当C∈[-10,0)时,表示上一个流控周期内,目标缓存队列内缓存的报文数量正在下降,但是数据流依然处于流控状态,此时降速幅度将会按照目标缓存拥塞系数减小,采用公式(10)中C∈[-10,0)的降速公式进行拥塞控制。
步骤S72,根据目标降速策略、目标缓存拥塞系数、降速因子和CNP指示的数据流的当前传输速率,更新数据流的传输速率,更新后的传输速率小于当前传输速率。
本申请实施例中,客户端采用的目标降速策略可参见上述公式(8)。客户端根据公式(8)、公式(2)和公式(3),获得更新后的传输速率,进而更新数据流的传输速率,对数据流进行降速,实现拥塞控制。
本申请实施例提供的技术方案中,CNP中携带有目标缓存拥塞系数,客户端可以根据目标缓存拥塞系数确定目标降速策略,降低CNP指示的数据流的传输速率。在报文数量大幅增加的情况下,提高数据流的降速幅度,避免了因降速幅度不够,而导致PFC的频繁触发。同时,在报文数量减少的情况下,目标缓存队列的占用下降,客户端减小数据流的降速幅度,实现准确的拥塞控制。
采用本申请实施例提供的拥塞控制方法,解决了如下问题。
1)解决了流控报文在长链路上流转耗时过长的问题。
本申请实施例中,可以利用交换机的转发芯片中INT处理器的报文转发特性,使用转发芯片来代替服务器进行CNP的发送,可以避免在原有拥塞控制流程中,ECN相关报文的长链路周转,同时也避免了新增的CNP转发功能对于CPU的资源消耗。
例如,如图8(a)和图8(b)为报文转发示意图。图8(a)为原有拥塞控制方法中报文转发的示意图,图8(b)为本申请实施例提供的拥塞控制方法中报文转发的示意图。其中,数字1-数字8分别表示一个报文。
在交换机1为拥塞点的情况下,图8(a)中,报文1为原始报文,报文2-报文4为原始报文的ECN置位的报文,报文5-报文8为CNP,可见,报文2-报文8都为流控报文,流控链路较长。
在交换机1为拥塞点的情况下,图8(b)中,报文1为原始报文,报文2-报文4为原始报文,报文5为CNP,可见,只有报文5为流控报文。相对于图8(a),流控链路明显缩短,大大缩短了流控报文生效的时间。
2)解决了相关DCQCN算法在降速幅度较浅的问题。
本申请实施例中,在CNP中引入了缓存拥塞系数,基于此系数可以进行更为激进的拥塞控制,从而避免了在面对大量突发数据流时频繁触发PFC,提升了无损网络中报文传递的带宽。
本申请实施例提供的技术方案中,修改了流控报文的转发机制,在不增加交换机的CPU负载的同时,避免了链路过长的干扰;同时基于引入的缓存拥塞系数,修改了DCQCN算法,方便客户端进行更为精细、灵活、实时的流控。当缓存拥塞系数足够大时,降速幅度比原拥塞控制方法足够大;同时,当缓存拥塞系数为负数时,降速幅度比拥塞控制方法足够小。
与上述拥塞控制方法对应,本申请实施例还提供了一种拥塞控制装置,参见图9,为本申请实施例提供的拥塞控制装置的第一种结构示意图,应用于交换机中的转发芯片,所述装置包括:
监控模块91,用于监控所述交换机中缓存队列内缓存的报文数量;
生成模块92,用于当所述报文数量大于等于预设最低门限值时,生成CNP;
发送模块93,用于向客户端发送所述CNP,以使所述客户端降低所述CNP指示的数据流的传输速率。
在一些实施例中,所述生成模块92,还用于:
获取所述缓存队列内缓存的报文数量的变化幅度,作为目标缓存拥塞系数;
将所述目标缓存拥塞系数封装在所述CNP中。
在一些实施例中,所述生成模块92,具体用于:
获取所述缓存队列内缓存的当前报文数量和上一时刻报文数量的差值,得到所述缓存队列的拥塞长度变化值;
根据所述拥塞长度变化值、预设最高门限值、所述预设最低门限值和预设拥塞区间参数,得到所述缓存队列内缓存的报文数量的变化幅度,作为目标缓存拥塞系数。
在一些实施例中,所述生成模块92,具体用于:
利用如下公式确定所述缓存队列内缓存的报文数量的变化幅度:
C=Ct*λ /(W1-W2)
其中,C为所述缓存队列内缓存的报文数量的变化幅度,Ct为所述拥塞长度变化值,W1为所述预设最高门限值,W2为所述预设最低门限值,λ为所述预设拥塞区间参数。
在一些实施例中,所述CNP携带有INT头,所述目标缓存拥塞系数封装在所述INT头中。
本申请实施例提供的技术方案中,交换机的转发芯片通过监控交换机中缓存队列内缓存的报文数量,监控交换机的拥塞程度。当一个缓存队列内缓存的报文数量大于等于预设最低门限值时,针对该缓存队列内缓存的报文所属的数据流,转发芯片生成对应的CNP,并向客户端发送CNP。客户端接收CNP后,对CNP指示的数据流(即上述缓存队列内缓存的报文所属的数据流)进行拥塞控制,降低该数据流的传输速率。此过程中,由交换机的转发芯片直接生成CNP,并传输到客户端,流控链路为发生拥塞的交换机到客户端之间的链路,相对于相关技术中的流控链路,即发生拥塞的交换机到服务器、服务器到客户端之间的链路,大大缩短了流控链路的长度,链路上的拥塞处理更加及时,进而降低了触发PFC的频率,并降低了时延,提高了链路带宽。
此外,由交换机中的转发芯片进行拥塞控制,避免了交换机在生成和转发CNP时,对CPU造成额外的资源消耗,实现在降低CNP的流转时长的同时,避免CPU占用率增加。
与上述拥塞控制方法对应,本申请实施例还提供了一种拥塞控制装置,参见图10,为本申请实施例提供的拥塞控制装置的第二种结构示意图,应用于客户端,所述装置包括:
接收模块101,用于接收交换机发送的CNP,所述CNP为所述交换机中的转发芯片根据上述任一拥塞控制装置生成的报文;
降低模块102,用于降低所述CNP指示的数据流的传输速率。
在一些实施例中,所述CNP携带有目标缓存拥塞系数;
所述降低模块102,具体用于:
根据预设的缓存拥塞系数和降速策略的对应关系,确定所述目标缓存拥塞系数对应的目标降速策略,所述对应关系中,第一缓存拥塞系数对应的第一降速策略的降速幅度大于第二缓存拥塞系数对应的第二降速策略的降速幅度,所述第一缓存拥塞系数大于所述第二缓存拥塞系数;
根据所述目标降速策略、所述目标缓存拥塞系数、降速因子和所述CNP指示的数据流的当前传输速率,更新所述数据流的传输速率,更新后的传输速率小于所述当前传输速率。
在一些实施例中,所述降低模块102,具体用于:
利用如下降速策略的公式更新所述数据流的传输速率:
其中,RT为更新后的传输速率,Rc为所述当前传输速率,α为所述降速因子,C为所述目标缓存拥塞系数,λ为所述预设拥塞区间参数。
本申请实施例提供的技术方案中,交换机的转发芯片通过监控交换机中缓存队列内缓存的报文数量,监控交换机的拥塞程度。当一个缓存队列内缓存的报文数量大于等于预设最低门限值时,针对该缓存队列内缓存的报文所属的数据流,转发芯片生成对应的CNP,并向客户端发送CNP。客户端接收CNP后,对CNP指示的数据流(即上述缓存队列内缓存的报文所属的数据流)进行拥塞控制,降低该数据流的传输速率。此过程中,由交换机的转发芯片直接生成CNP,并传输到客户端,流控链路为发生拥塞的交换机到客户端之间的链路,相对于相关技术中的流控链路,即发生拥塞的交换机到服务器、服务器到客户端之间的链路,大大缩短了流控链路的长度,链路上的拥塞处理更加及时,进而降低了触发PFC的频率,并降低了时延,提高了链路带宽。
此外,由交换机中的转发芯片进行拥塞控制,避免了交换机在生成和转发CNP时,对CPU造成额外的资源消耗,实现在降低CNP的流转时长的同时,避免CPU占用率增加。
与上述拥塞控制方法对应,本申请实施例还提供了一种转发芯片,执行上述任一应用于交换机中的转发芯片的拥塞控制方法。
与上述拥塞控制方法对应,本申请实施例还提供了一种客户端,如图11所示,包括处理器111和机器可读存储介质112,所述机器可读存储介质112存储有能够被所述处理器111执行的机器可执行指令,所述处理器111被所述机器可执行指令促使:实现上述任一应用于客户端的拥塞控制方法。
机器可读存储介质可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,机器可读存储介质还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-ProgrammableGate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、转发芯片和客户端实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的较佳实施例,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围内。
Claims (12)
1.一种拥塞控制方法,其特征在于,应用于交换机中的转发芯片,所述方法包括:
监控所述交换机中缓存队列内缓存的报文数量;
当所述报文数量大于等于预设最低门限值时,生成拥塞通知报文CNP;
向客户端发送所述CNP,以使所述客户端降低所述CNP指示的数据流的传输速率。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取所述缓存队列内缓存的报文数量的变化幅度,作为目标缓存拥塞系数;
将所述目标缓存拥塞系数封装在所述CNP中。
3.根据权利要求2所述的方法,其特征在于,所述获取所述缓存队列内缓存的报文数量的变化幅度,作为目标缓存拥塞系数的步骤,包括:
获取所述缓存队列内缓存的当前报文数量和上一时刻报文数量的差值,得到所述缓存队列的拥塞长度变化值;
根据所述拥塞长度变化值、预设最高门限值、所述预设最低门限值和预设拥塞区间参数,得到所述缓存队列内缓存的报文数量的变化幅度,作为目标缓存拥塞系数。
4.根据权利要求3所述的方法,其特征在于,所述根据所述拥塞长度变化值、预设最高门限值、所述预设最低门限值和预设拥塞区间参数,得到所述缓存队列内缓存的报文数量的变化幅度的步骤,包括:
利用如下公式确定所述缓存队列内缓存的报文数量的变化幅度:
C=Ct*λ /(W1-W2)
其中,C为所述缓存队列内缓存的报文数量的变化幅度,Ct为所述拥塞长度变化值,W1为所述预设最高门限值,W2为所述预设最低门限值,λ为所述预设拥塞区间参数。
5.根据权利要求2-4任一项所述的方法,其特征在于,所述CNP携带有带内遥测INT头,所述目标缓存拥塞系数封装在所述INT头中。
6.一种拥塞控制方法,其特征在于,应用于客户端,所述方法包括:
接收交换机发送的拥塞通知报文CNP,所述CNP为所述交换机中的转发芯片根据权利要求1-5任一项所述的方法生成的报文;
降低所述CNP指示的数据流的传输速率。
7.根据权利要求6所述的方法,其特征在于,所述CNP携带有目标缓存拥塞系数;
所述降低所述CNP指示的数据流的传输速率的步骤,包括:
根据预设的缓存拥塞系数和降速策略的对应关系,确定所述目标缓存拥塞系数对应的目标降速策略,所述对应关系中,第一缓存拥塞系数对应的第一降速策略的降速幅度大于第二缓存拥塞系数对应的第二降速策略的降速幅度,所述第一缓存拥塞系数大于所述第二缓存拥塞系数;
根据所述目标降速策略、所述目标缓存拥塞系数、降速因子和所述CNP指示的数据流的当前传输速率,更新所述数据流的传输速率,更新后的传输速率小于所述当前传输速率。
8.根据权利要求7所述的方法,其特征在于,所述根据所述目标降速策略、所述目标缓存拥塞系数、降速因子和所述CNP指示的数据流的当前传输速率,更新所述数据流的传输速率的步骤,包括:
利用如下降速策略的公式更新所述数据流的传输速率:
;
其中,RT为更新后的传输速率,Rc为所述当前传输速率,α为所述降速因子,C为所述目标缓存拥塞系数,λ为所述预设拥塞区间参数。
9.一种拥塞控制装置,其特征在于,应用于交换机中的转发芯片,所述装置包括:
监控模块,用于监控所述交换机中缓存队列内缓存的报文数量;
生成模块,用于当所述报文数量大于等于预设最低门限值时,生成拥塞通知报文CNP;
发送模块,用于向客户端发送所述CNP,以使所述客户端降低所述CNP指示的数据流的传输速率。
10.一种拥塞控制装置,其特征在于,应用于客户端,所述装置包括:
接收模块,用于接收交换机发送的拥塞通知报文CNP,所述CNP为所述交换机中的转发芯片根据权利要求9所述的装置生成的报文;
降低模块,用于降低所述CNP指示的数据流的传输速率。
11.一种转发芯片,其特征在于,执行权利要求1-5任一所述的方法步骤。
12.一种客户端,其特征在于,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器被所述机器可执行指令促使:实现权利要求6-8任一所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310737555.3A CN116489106B (zh) | 2023-06-21 | 2023-06-21 | 一种拥塞控制方法、装置、转发芯片及客户端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310737555.3A CN116489106B (zh) | 2023-06-21 | 2023-06-21 | 一种拥塞控制方法、装置、转发芯片及客户端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116489106A true CN116489106A (zh) | 2023-07-25 |
CN116489106B CN116489106B (zh) | 2023-09-19 |
Family
ID=87212251
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310737555.3A Active CN116489106B (zh) | 2023-06-21 | 2023-06-21 | 一种拥塞控制方法、装置、转发芯片及客户端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116489106B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116915722A (zh) * | 2023-09-12 | 2023-10-20 | 珠海星云智联科技有限公司 | 一种网络拥塞调节方法、装置、计算设备及可读存储介质 |
CN116915706A (zh) * | 2023-09-13 | 2023-10-20 | 合肥综合性国家科学中心人工智能研究院(安徽省人工智能实验室) | 数据中心网络拥塞控制方法、装置、设备及存储介质 |
CN117544567A (zh) * | 2024-01-09 | 2024-02-09 | 南京邮电大学 | 存传一体的rdma数据中心拥塞控制方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018232490A1 (en) * | 2017-06-22 | 2018-12-27 | Zeu Crypto Networks Inc. | TRANSACTION TRAFFIC FORMAT BASED ON A MULTINIVE QUEUE FOR BLOCK CHAINS |
CN112511325A (zh) * | 2019-09-16 | 2021-03-16 | 华为技术有限公司 | 网络拥塞控制方法、节点、系统及存储介质 |
CN113411264A (zh) * | 2021-06-30 | 2021-09-17 | 中国工商银行股份有限公司 | 一种网络队列的监控方法、装置、计算机设备和存储介质 |
CN113746743A (zh) * | 2020-05-29 | 2021-12-03 | 华为技术有限公司 | 一种数据报文传输方法及装置 |
CN113746744A (zh) * | 2020-05-30 | 2021-12-03 | 华为技术有限公司 | 网络拥塞的控制方法、装置、设备、系统及存储介质 |
CN114938350A (zh) * | 2022-06-15 | 2022-08-23 | 长沙理工大学 | 数据中心无损网络中基于拥塞反馈的数据流传输控制方法 |
-
2023
- 2023-06-21 CN CN202310737555.3A patent/CN116489106B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018232490A1 (en) * | 2017-06-22 | 2018-12-27 | Zeu Crypto Networks Inc. | TRANSACTION TRAFFIC FORMAT BASED ON A MULTINIVE QUEUE FOR BLOCK CHAINS |
CN112511325A (zh) * | 2019-09-16 | 2021-03-16 | 华为技术有限公司 | 网络拥塞控制方法、节点、系统及存储介质 |
CN114553779A (zh) * | 2019-09-16 | 2022-05-27 | 华为技术有限公司 | 网络拥塞控制方法、节点、系统及存储介质 |
CN113746743A (zh) * | 2020-05-29 | 2021-12-03 | 华为技术有限公司 | 一种数据报文传输方法及装置 |
CN113746744A (zh) * | 2020-05-30 | 2021-12-03 | 华为技术有限公司 | 网络拥塞的控制方法、装置、设备、系统及存储介质 |
CN113411264A (zh) * | 2021-06-30 | 2021-09-17 | 中国工商银行股份有限公司 | 一种网络队列的监控方法、装置、计算机设备和存储介质 |
CN114938350A (zh) * | 2022-06-15 | 2022-08-23 | 长沙理工大学 | 数据中心无损网络中基于拥塞反馈的数据流传输控制方法 |
Non-Patent Citations (2)
Title |
---|
张军洲;陈元琰;罗晓曙;黎芸;: "高误码率无线环境的TCPW改进算法", 计算机工程与应用, no. 09 * |
李娟;张晓林;占巍;颜炎;: "无人机移动自组网路由协议研究", 遥测遥控, no. 03 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116915722A (zh) * | 2023-09-12 | 2023-10-20 | 珠海星云智联科技有限公司 | 一种网络拥塞调节方法、装置、计算设备及可读存储介质 |
CN116915722B (zh) * | 2023-09-12 | 2023-12-19 | 珠海星云智联科技有限公司 | 一种网络拥塞调节方法、装置、计算设备及可读存储介质 |
CN116915706A (zh) * | 2023-09-13 | 2023-10-20 | 合肥综合性国家科学中心人工智能研究院(安徽省人工智能实验室) | 数据中心网络拥塞控制方法、装置、设备及存储介质 |
CN116915706B (zh) * | 2023-09-13 | 2023-12-26 | 合肥综合性国家科学中心人工智能研究院(安徽省人工智能实验室) | 数据中心网络拥塞控制方法、装置、设备及存储介质 |
CN117544567A (zh) * | 2024-01-09 | 2024-02-09 | 南京邮电大学 | 存传一体的rdma数据中心拥塞控制方法 |
CN117544567B (zh) * | 2024-01-09 | 2024-03-19 | 南京邮电大学 | 存传一体的rdma数据中心拥塞控制方法 |
Also Published As
Publication number | Publication date |
---|---|
CN116489106B (zh) | 2023-09-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN116489106B (zh) | 一种拥塞控制方法、装置、转发芯片及客户端 | |
JP2018508151A (ja) | 伝送制御プロトコルtcpデータパケットを送信する方法及び装置、並びにシステム | |
US20070226375A1 (en) | Plug-in architecture for a network stack in an operating system | |
US20040192312A1 (en) | Communication system for voice and data with wireless TCP server | |
WO2019019825A1 (zh) | 一种拥塞控制方法及相关设备 | |
US20220094640A1 (en) | Congestion control method and apparatus, communications network, and computer storage medium | |
US20190159064A1 (en) | Data transmission method and device | |
Wallace et al. | Concurrent multipath transfer using SCTP: Modelling and congestion window management | |
US20070226347A1 (en) | Method and apparatus for dynamically changing the TCP behavior of a network connection | |
Dong et al. | LAMPS: A loss aware scheduler for multipath TCP over highly lossy networks | |
US20220200858A1 (en) | Method and apparatus for configuring a network parameter | |
US20220141137A1 (en) | Flow rate control method and apparatus | |
CN113726681B (zh) | 一种网络拥塞控制方法及网络设备 | |
WO2021217641A1 (zh) | 一种拥塞控制方法、网络设备及系统 | |
CN111314961A (zh) | Tcp传输方法、装置和系统 | |
Yang et al. | TCP bulk repeat | |
Kumar et al. | A multipath packet scheduling approach based on buffer acknowledgement for congestion control | |
JP6200870B2 (ja) | データ転送制御装置、方法及びプログラム | |
Sembiring et al. | TCP LR-Newreno Congestion Control for IEEE 802.15. 4-based Network. | |
Li et al. | Satellite network oriented tcp slow start algorithm | |
Heo et al. | Reducing the flow completion time for multipath TCP | |
Gupta et al. | Dual-mode TCP: An alternative approach for delay tolerant networks | |
CN116761211B (zh) | 基于多径传输的数据包调度方法、装置、设备及存储介质 | |
Mahmoodi et al. | Cross-layer optimization to maximize fairness among TCP flows of different TCP flavors | |
Hu et al. | A block based encoding approach for improving sliding window network coding in wireless networks |
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 |