CN115314442B - 拥塞控制和基于Group的限速限窗装置及方法、限速限窗方法 - Google Patents
拥塞控制和基于Group的限速限窗装置及方法、限速限窗方法 Download PDFInfo
- Publication number
- CN115314442B CN115314442B CN202210942233.8A CN202210942233A CN115314442B CN 115314442 B CN115314442 B CN 115314442B CN 202210942233 A CN202210942233 A CN 202210942233A CN 115314442 B CN115314442 B CN 115314442B
- Authority
- CN
- China
- Prior art keywords
- group
- congestion control
- value
- window
- sent
- 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
- 238000000034 method Methods 0.000 title claims abstract description 66
- 238000013507 mapping Methods 0.000 claims abstract description 64
- 230000005540 biological transmission Effects 0.000 claims description 37
- 238000012545 processing Methods 0.000 claims description 25
- 230000008569 process Effects 0.000 claims description 13
- 230000003993 interaction Effects 0.000 claims description 3
- 238000000638 solvent extraction Methods 0.000 claims description 3
- 230000009467 reduction Effects 0.000 abstract description 15
- 230000004044 response Effects 0.000 abstract description 4
- 230000036632 reaction speed Effects 0.000 abstract description 3
- 230000006870 function Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 9
- 230000006399 behavior Effects 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 241000854350 Enicospilus group Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012795 verification Methods 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/22—Traffic shaping
- H04L47/225—Determination of shaping rate, e.g. using a moving window
-
- 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/27—Evaluation or update of window size, e.g. using information derived from acknowledged [ACK] packets
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供一种拥塞控制和基于Group的限速限窗装置及方法、限速限窗方法,应用于计算机网络技术领域,包括:Group划分模块:将RDMA中的QP划分到对应的第一Group中,得到QP到第一Group的映射表;拥塞控制算法模块:根据映射表、RDMA的拥塞控制相关状态信息和拥塞控制算法,对RDMA网络进行拥塞控制;基于Group配置下发模块:根据映射表、拥塞控制相关状态信息和拥塞控制的控制结果维护第一拥塞控制配置表,并将拥塞控制配置表下发给RDMA网络的硬件侧。将RDMA网络中的一组QP映射到一个Group,以Group为粒度可以提高降速、降窗的反应速度,实现对拥塞链路相关的QP的快速降速;提高了RDMA网络拥塞控制的响应速度,对造成拥塞的一组QP做到快速反馈降速或降窗,进行快速和有效的拥塞控制。
Description
技术领域
本申请涉及计算机网络技术领域,具体涉及一种拥塞控制和基于Group的限速限窗装置及方法、限速限窗方法。
背景技术
随着大数据、海量存储和人工智能等技术越来越广泛的应用,作为海量数据快速存储和高效计算处理的数据中心(Data Center)成为重要的IT技术设施。数据中心网络需要连接数据中心内部的海量服务器节点,随着对数据网络中心的性能指标的要求越来越高,目前数据中心已经开始规模化采用基于远程直接地址访问(Remote Direct MemoryAccess,RDMA)的高速网络。RDMA网络设备的转发能力总是有限的,面对网络流量的总量大和变化快的特点,容易产生网络拥塞,就如同在城市路网中瓶颈路段由于车流量过大产生堵车一样。伴随着RDMA网络的快速发展和大规模部署,拥塞控制方法在RDMA网络中扮演着越来越重要的地位。
目前,拥塞控制方法分为限制发送速率(以下简称“限速”)的拥塞控制方法和限制发送窗口(以下简称“限窗”)的拥塞控制方法两大类。其中,限速方法在发送速率超过算法允许值时会进行“降速”,即降低发送速率大小;限窗方法在发送窗口超过算法允许值时会对发送窗口进行“降窗”,即减小发送窗口大小。
在现有RDMA网络中,拥塞控制的作用粒度通常为每队列对(Queue Pair,QP)。RDMA网络中的队列对数目通常高达数万个至数百万个,需要为每个QP维护拥塞控制的限速和限窗参数。基于每QP的拥塞控制方法看似粒度十分精细,但是在实际应用中往往不能很好地响应拥塞事件。例如,在一组具有共同特征的QP共同作用造成拥塞控制的情况下,现有拥塞控制方法分别对于单个QP进行检测,往往认定其发送速率不大,并非拥塞产生的原因,故而不会对其进行快速的降窗、降速。但是如果将这些具有共同特征的一组QP的发送速率求和进行检测,则总发送速率往往很大,是拥塞产生的主要原因,需要快速的对这一组QP进行降窗、降速。现有基于每QP的拥塞控制方案往往不能快速地对上述造成拥塞的一组QP进行降窗、降速响应。
因此,需要一种新的解决RDMA网络拥塞的技术方案。
发明内容
有鉴于此,本说明书实施例提供一种拥塞控制和基于Group的限速限窗装置及方法、限速限窗方法,解决了基于每QP的拥塞控制方案不能快速地对上述造成拥塞的一组QP进行降窗、降速响应的技术问题。
本说明书实施例提供以下技术方案:
本说明书实施例提供一种拥塞控制装置,应用于软件侧,包括:
Group划分模块:将RDMA中的QP划分到对应的第一Group中,得到QP到第一Group的映射表;
拥塞控制算法模块:根据映射表、RDMA的拥塞控制相关状态信息和拥塞控制算法,对RDMA网络进行拥塞控制;
基于Group配置下发模块:根据映射表、拥塞控制相关状态信息和拥塞控制的控制结果维护第一拥塞控制配置表,并将拥塞控制配置表下发给RDMA网络的硬件侧。
优选地,Group划分模块,包括:
第一划分子模块:建立一个RDMA连接,并分配一个QP;
第二划分子模块:根据预设划分方式将QP划分到对应的第一Group中,得到映射表。
优选地,预设划分方式包括手动划分,第二划分子模块,包括:根据用户配置,将QP划分到对应的第一Group中,得到映射表。
优选地,预设划分方式包括自动划分,第二划分子模块,包括:根据QP的网络流量行为特征数据,将QP进行聚类处理,根据聚类处理的结果将QP划分到对应的第一Group中,得到映射表。
优选地,预设划分方式包括混合划分,第二划分子模块,包括:
第一单元:判断QP是否包含用户配置;
第二单元,若是,则根据用户配置,将QP划分对应的第一Group中;
第二单元:若否,则将QP划分到缺省Group中;
第三单元:根据缺省Group中的QP的网络流量行为特征数据,将QP进行聚类处理,根据聚类处理的结果将QP划分到对应的第一Group中,得到映射表。
优选地,还包括:基于Group状态信息存储模块:存储RDMA的硬件侧上送的拥塞控制相关状态信息。
优选地,拥塞控制相关状态信息,包括:环回时延、拥塞通告信息和显式拥塞通告信息和特定拥塞控制算法信息。
优选地,基于Group配置下发模块中的第一拥塞控制配置表,包括:拥塞控制算法类型、发送速率配置、最大窗口配置、用户策略配置、QP列表和应用类型。
优选地,拥塞控制算法类型,包括:限速、限窗和限速限窗。
优选地,拥塞控制算法模块,包括:根据映射表将拥塞控制算法和拥塞控制相关状态信息中的QP映射的对应的第一Group中,对RDMA网络进行拥塞控制。
本说明书实施例还提供一种基于Group的限速限窗装置,应用于RDMA网络的硬件侧,与上述的拥塞控制装置进行数据交互,包括:
信用模块:维护每个Group的可被申请信用值,并根据基于Group拥塞控制模块发送的信用申请请求和可被申请信用值向对应的Group发送信用申请请求的申请信用值,可被申请信用值通过软件侧的基于Group配置下发模块中的Group对应的发送速率配置得到,Group为对RDMA网络中的QP进行划分得到的;
基于Group拥塞控制模块:对每个QP根据对应的Group进行限速限窗处理、维护QP到Group的映射表,以及维护第二拥塞控制配置表,并根据第二拥塞控制表中的剩余信用值向信用模块发送信用申请请求,以获取申请信用值。
优选地,还包括:基于Group状态信息采集模块:对RDMA的拥塞控制相关状态信息进行采集和处理,并将拥塞控制相关状态信息上送至软件侧的基于Group状态信息存储模块中。
优选地,拥塞控制相关状态信息,包括:环回时延、拥塞通告信息和显式拥塞通告信息和特定拥塞控制算法信息。
优选地,基于Group拥塞控制模块,包括:
第一控制子模块:根据映射表,获取QP对应的Group;
第二控制子模块:根据Group查询第二拥塞控制表中Group对应的拥塞控制算法类型;
第三控制子模块:若拥塞控制算法类型的数值为第一数值,则对Group进行限速限窗处理,若拥塞控制算法类型的数值为第二数值,则对Group进行限窗处理,若拥塞控制算法类型的数值为第三数值,则对Group进行限速处理。
优选地,第三控制子模块中的限速处理,包括:根据第二拥塞控制表获取Group的剩余信用值,若剩余信用值大于或者等于QP中的待发消息的大小,则发送待发消息,并更新剩余信用值,若剩余信用值小于待发消息的大小,则不发送待发消息,等待下一次发送调度。
优选地,第二拥塞控制表中包括最大窗口值和已发窗口值,第三控制子模块中的限窗处理,包括:根据第二拥塞控制表获取Group的最大窗口值和已发窗口值,若最大窗口值与已发窗口值的差值大于或者等于待发消息的大小,则发送待发消息,并更新已发窗口值,若最大窗口值与已发窗口值的差值小于待发消息的大小,则不发送待发消息,等待下一次发送调度。
优选地,第三控制子模块中的限速限窗处理,包括:
第一控制单元:根据第二拥塞控制表获取Group的剩余信用值、最大窗口值和已发窗口值;
第二控制单元:判断剩余信用值是否大于或者等于待发消息的大小,若否,则不发送待发消息,等待下一次发送调度;
第三控制单元:若是,则判断最大窗口值与已发窗口值的差值是否大于或者等于待发消息的大小,若否,则不发送待发消息,等待下一次发送调度;
第四控制单元:若是,则发送待发消息,并更新剩余信用值、最大窗口值和已发窗口值。
本说明书实施例还提供一种拥塞控制方法,应用于软件侧,采用上述的拥塞控制装置,包括:
步骤S1:将RDMA中的QP划分到对应的第一Group中,得到QP到第一Group的映射表;
步骤S2:据映射表、RDMA的拥塞控制相关状态信息和拥塞控制算法,对RDMA网络进行拥塞控制;
步骤S3:根据映射表、拥塞控制相关状态信息和拥塞控制的控制结果维护第一拥塞控制配置表,并将拥塞控制配置表下发给RDMA网络的硬件侧。
优选地,拥塞控制相关状态信息,包括:环回时延、拥塞通告信息和显式拥塞通告信息和特定拥塞控制算法信息。
优选地,步骤S1,包括:
步骤S101:建立一个RDMA连接,并分配一个QP;
步骤S102:根据预设划分方式将QP划分到对应的第一Group中,得到映射表。
本说明书实施例还提供一种基于Group的限速限窗方法,应用于RDMA网络的硬件侧,采用上述的基于Group的限速限窗装置,包括:
步骤P1:维护每个Group的可被申请信用值,并根据信用申请请求和可被申请信用值向对应的Group发送信用申请请求的申请信用值,可被申请信用值通过发送速率配置得到,Group为对RDMA网络中的QP进行划分得到的;
步骤P2:对每个QP根据对应的Group进行限速限窗处理、维护QP到Group的映射表,以及维护第二拥塞控制配置表,并根据第二拥塞控制表中的剩余信用值向信用模块发送信用申请请求,以获取申请信用值。
本说明书实施例还提供一种限速限窗方法,应用于RDMA网络,包括:
步骤M1:将RDMA网络中的QP划分到对应的Group中,得到映射表;
步骤M2:对于待发消息,根据待发消息的QPID和映射表,得到对应的Group ID;
步骤M3:根据Group ID得到对应的拥塞控制算法类型,并根据拥塞控制算法类型对应的拥塞控制算法进行拥塞控制。
优选地,拥塞控制算法类型包括限速,步骤M3,包括:获取Group ID对应的剩余信用值,若剩余信用值大于或者等于待发消息的大小,则发送待发消息,并更新剩余信用值,若剩余信用值小于待发消息的大小,则不发送待发消息,等待下一次发送调度。
优选地,拥塞控制算法类型包括限窗,步骤M3,包括:获取Group ID对应的最大窗口值和已发窗口值,若最大窗口值与已发窗口值的差值大于或者等于待发消息的大小,则发送待发消息,并更新已发窗口值,若最大窗口值与已发窗口值的差值小于待发消息的大小,则不发送待发消息,等待下一次发送调度。
优选地,拥塞控制算法类型包括限速限窗,步骤M3,包括:
步骤M301:获取Group ID对应的剩余信用值、最大窗口值和已发窗口值;
步骤M302:判断剩余信用值是否大于或者等于待发消息的大小,若否,则不发送待发消息,等待下一次发送调度;
步骤M303:若是,则判断最大窗口值与已发窗口值的差值是否大于或者等于待发消息的大小,若否,则不发送待发消息,等待下一次发送调度;
步骤M304:若是,则发送待发消息,并更新剩余信用值、最大窗口值和已发窗口值。
与现有技术相比,本说明书实施例采用的上述至少一个技术方案能够达到的有益效果至少包括:将RDMA网络中的一组QP根据具有的共同特征映射到一个Group中,以Group为粒度进行拥塞控制,可以有效的解决对单个QP进行检测时,发送速率不大,但是对具有共同特征的一组QP进行检测时,则总发送速率很大,而造成RDMA网络拥塞的主要原因是这一组QP,在以QP为粒度的拥塞控制方式,无法有效的对这一组QP进行有效地降速、降窗的技术问题,以Group为粒度可以提高降速、降窗的反应速度,实现对拥塞链路相关的QP的快速降速;提高了RDMA网络拥塞控制的响应速度,对造成拥塞的一组QP做到快速反馈降速或降窗,进行快速和有效的拥塞控制;并且不需要维护每QP的拥塞控制降速和降窗参数,硬件实现的存储开销显著降低,可以减小拥塞控制模块占用的芯片面积资源。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1是本申请实施例提供的一种基于Group进行限速的效果示意图;
图2是本申请实施例提供的一种模块连接示意图;
图3是本申请实施例提供的一种Group划分模块配置新建QP所属Group ID的流程图;
图4是本申请实施例提供的一种第一拥塞控制配置表的示意图;
图5是本申请实施例提供的一种QP ID到Group ID映射表的示意图;
图6是本申请实施例提供的一种第二拥塞控制配置表的示意图;
图7是本申请实施例提供的一种拥塞控制流程的示意图;
图8是本申请实施例提供的一种限速流程的示意图;
图9是本申请实施例提供的一种限窗流程的示意图;
图10是本申请实施例提供的一种限速限窗流程的示意图。
具体实施方式
下面结合附图对本申请实施例进行详细描述。
以下通过特定的具体实例说明本申请的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本申请的其他优点与功效。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。本申请还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本申请的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
要说明的是,下文描述在所附权利要求书的范围内的实施例的各种方面。应显而易见,本文中所描述的方面可体现于广泛多种形式中,且本文中所描述的任何特定结构及/或功能仅为说明性的。基于本申请,所属领域的技术人员应了解,本文中所描述的一个方面可与任何其它方面独立地实施,且可以各种方式组合这些方面中的两者或两者以上。举例来说,可使用本文中所阐述的任何数目和方面来实施设备及/或实践方法。另外,可使用除了本文中所阐述的方面中的一或多者之外的其它结构及/或功能性实施此设备及/或实践此方法。
还需要说明的是,以下实施例中所提供的图示仅以示意方式说明本申请的基本构想,图式中仅显示与本申请中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
另外,在以下描述中,提供具体细节是为了便于透彻理解实例。然而,所属领域的技术人员将理解,可在没有这些特定细节的情况下实践。
如图1所示,RDMA网络中包含一个发送终端、一个接收终端和网络链路。为了简洁,网络链路上的交换机、路由器等网络节点在图1中被省略,发送终端沿数据发送方向将数据发送到接收终端。在图1中,发送终端和接收终端间的链路带宽为200Gbps,包含QP1、QP2、QP3、QP4、QP5和QP6等六个正在通信的QP。其中QP1到QP5的业务实时发送速率为25Gbps,即tx_rate=25Gbps,QP6的业务实时发送速率为100Gbps,即tx_rate=100Gbps。通过计算得知,QP1-QP6的发送带宽求和为225Gbps,超过链路带宽200Gbps,会造成网络链路出现拥塞,需要进行限窗、限速,为了简洁本例以限速为例进行说明。对于现有基于QP的拥塞控制限速方法,算法会基于QP1-QP6的公平性考虑,对QP6进行限速,而保护QP1-QP5的发送速率。实际应用中,QP1-QP5属于同类型业务,QP6属于另一类业务。如果按照业务类型进行公平限速的话,QP1-QP5的总发送速率应该和QP6的发送速率相等。但是,基于Group来进行限速,则QP1-QP5属于Group1,而QP6属于Group2。两个Group进行公平限速,则Group2的QP6保持100Gbps发送速率不变,而Group1的速率从125Gbps降为100Gbps,QP1-QP5的每QP发送速率(tx_rate)降为20Gbps,从而实现多个QP的协同快速降速。
基于Group方案的降速、降窗方法的反应速度会快于基于QP的降速、降窗方法。假设若一个Group(以共同目的IP地址为特征)的流量引起了链路拥塞,但是仅有一个QP的发送速率达到了沿途交换机显式拥塞通告信息(Explicit Congestion Notification,ECN)标记门限阈值,开始收到拥塞通告信息(Congestion Notification Packet,CNP)报文。如果基于每QP的拥塞控制,只会对该QP进行降速、降窗,不会作用到属于本Group的其他QP。如果采用基于Group的拥塞控制方案,可以对该Group的所有QP进行降速,可以对该拥塞链路相关QP实现快速降速。
基于此,本说明书实施例提出了一种处理方案:将具有共同特征的一组QP绑定到一个Group,基于Group为粒度进行RDMA网络拥塞控制限速和限窗。
以下结合附图,说明本申请各实施例提供的技术方案。
如图2所示,本申请适用于RDMA主机通道适配器(Host Channel Adapter,HCA)或完成同等功能的数据处理单元(Data Processing Unit,DPU)或者智能网卡(SmartNIC)。现有RDMA主机通道适配器可以分为软件平面和硬件平面两部分,其中,软件平面完成控制面驱动功能,也被成为HCA的固件(Firmware,FW);硬件平面完成RDMA消息数据面转发功能,通常采用专用集成电路(Application Specific Integrated Circuit,ASIC)或现场可编程逻辑门阵列(Field Programmable Gate Array,FPGA)芯片来实现。硬件平面按照功能通常可以分为接收引擎、发送引擎、分组序列号(Packet Sequence Number,PSN)模块,主机接口和网络接口。其中,主机接口可以为PCI-E(PCI Express)接口,PCI-E接口是计算机内部的一种高速总线;网络接口可以为25GE/100GE/200GE/400GE等速率规格的以太网接口。源端硬件平面的主机接口在接收到软件平台发来的RDMA请求时,向发送引擎发送该RDMA请求,发送引擎接收到发送请求后向网络接口发送数据包,网络接口对数据包进行封装后发出。对端接收到请求数据包,生成回复请求,然后发送给源端。源端将接收数据包发送给接收引擎,由接收引擎生成回复请求,将回复请求发送给主机接口,在上述过程中,PSN模块完成PSN的请求数据包的PSN分发和回复数据包的PSN校验。
本申请实施例在HCA的硬件平面增加了基于Group的限速限窗装置,用于实施基于Group的限速限窗方法的硬件平面功能。本申请实施例在HCA的软件平面增加了Group划分模块、基于Group状态信息存储模块、拥塞控制算法模块和基于Group配置下发模块,用于实施基拥塞控制方法的软件平面功能。其中,软件平面功能和硬件平面功能需要进行协同交互,以实现高效率的限速和限窗。
本说明书实施例提供一种拥塞控制装置,应用于RDMA网络的软件侧,即RDMA网络的软件平面,包括:Group划分模块:将RDMA中的QP划分到对应的第一Group中,得到QP到第一Group的映射表;拥塞控制算法模块:根据映射表、RDMA的拥塞控制相关状态信息和拥塞控制算法,对RDMA网络进行拥塞控制;基于Group配置下发模块:根据映射表、拥塞控制相关状态信息和拥塞控制的控制结果维护第一拥塞控制配置表,并将拥塞控制配置表下发给RDMA网络的硬件侧;以及,基于Group状态信息存储模块:存储RDMA的硬件侧上送的拥塞控制相关状态信息。
其中,Group划分模块,包括:第一划分子模块:建立一个RDMA连接,并分配一个QP;第二划分子模块:根据预设划分方式将QP划分到对应的第一Group中,得到映射表。
具体地,预设划分方式包括手动划分,第二划分子模块,包括:根据用户配置,将QP划分到对应的第一Group中,得到映射表。
其中,用户配置为用户基于业务需求得到,预先定义在软件平面代码中。预先定义的维度包括:目的IP地址、虚拟功能(Virtual Function,VF)和业务类型等数据。
进一步地,预设划分方式还包括自动划分,第二划分子模块,包括:根据QP的网络流量行为特征数据,将QP进行聚类处理,根据聚类处理的结果将QP划分到对应的第一Group中,得到映射表。
更进一步地,预设划分方式还包括混合划分,第二划分子模块,包括:
第一单元:判断QP是否包含用户配置;第二单元,若是,则根据用户配置,将QP划分对应的第一Group中;第二单元:若否,则将QP划分到缺省Group中;第三单元:根据缺省Group中的QP的网络流量行为特征数据,将QP进行聚类处理,根据聚类处理的结果将QP划分到对应的第一Group中,得到映射表。
可知的是,本申请实施例中Group划分模块用于完成将某个QP映射到某个Group的过程。本申请实施例提供三种Group划分方法:手动划分,自动划分和混合划分。如图3所示,本申请实施例给出了混合划分的一种具体实施方式。第一步,系统新建一个RDMA连接并且分配一个QP;第二步,首先进行手动配置Group流程;固件基于用户配置,从目的IP地址、虚拟功能(Virtual Function,VF)或业务类型等维度划分该QP所属的第一Group;若用户未进行配置,即缺少用户配置,则默认配置为缺省Group,示例性的,缺省Group的一种实现方法是配置Group ID为0,即Group ID=0;第三步,若用户未进行配置,即配置为缺省Group,则继续进行自动配置Group流程;若Group配置为缺省Group,则固件基于该QP的网络流量行为特征,网络流量行为特征包括:应用类型、流量持续时间和突发特性等,对该QP进行自动聚类,并自动配置该QP所属的第一Group。
需要注意的是,QP的自动聚类方法不属于本申请的范畴,可以根据现有的自动聚类方法进行聚类,因此在此不再详述。
在本申请实施例中手动划分仅进行上述第一步和第二步;自动Group划分方法仅进行上述的第一步和第三步,在此不再赘述。
其中,本申请实施例中的基于Group状态信息存储模块用于存储硬件平面上送的拥塞控制相关状态信息,拥塞控制相关状态信息,包括:环回时延(Round Trip Time,RTT)、拥塞通告信息(Congestion Notification Packet,CNP)和显式拥塞通告信息(ExplicitCongestion Notification,ECN)和特定拥塞控制算法所需信息等。
在本申请实施例中拥塞控制算法模块,包括:根据映射表将拥塞控制算法和拥塞控制相关状态信息中的QP映射的对应的第一Group中,对RDMA网络进行拥塞控制。
具体地,拥塞控制算法模块根据基于Group状态信息存储模块存储的拥塞控制相关状态信息,进行限速和限窗计算。目前已经提出了大量基于速率或者基于窗口的拥塞控制算法,本发明适用于多种拥塞控制算法,不限于某个特定算法。但是,现有拥塞控制算法需要进行简单的适配才可以完成基于Group的限速和限窗,从而完成拥塞控制,本申请实施例以DCQCN(DCQCN可参考论文:Zhu Y,Eran H,Firestone D,et al.Congestion controlfor large-scale RDMA deployments[J].ACM SIGCOMM Computer CommunicationReview,2015,45(4):523-536.)算法为例进行说明,其他算法的适配可以参考本例的方法较容易的获得。原始DCQCN算法需要基于QP为粒度维护字节计数器(ByteCounter)和定时器(Timer),本申请实施例中适配为采用Group为粒度维护字节计数器和定时器。原始DCQCN算法的ECN和CNP信息也是基于QP为粒度,本申请实施例仍采用QP为粒度,与现有标准协议兼容,但是拥塞控制算法模块会将收到的基于QP的ECN和CNP信息映射到所属的第一Group,再进行算法的计算和操作。此外,本申请实施例采用的DCQCN算法的调速参数和算法固有参数会根据Group内可能包含的最大QP数量进行调整,以达到最佳拥塞控制效果。DCQCN算法的具体参数调优不属于本申请的范畴,在此不再详述。
在本申请实施例中,基于Group配置下发模块中的第一拥塞控制配置表,包括:拥塞控制算法类型、发送速率配置、最大窗口配置、用户策略配置、QP列表和应用类型。其中,拥塞控制算法类型,包括:限速、限窗和限速限窗。
具体地,基于Group配置下发模块用于维护配置信息,并将最新的基于Group的配置信息下发给硬件平面。如图4所示,基于Group配置下发模块维护软件侧的第一拥塞控制配置表,简记为FW_CC_CFG表。FW_CC_CFG表的查找键值为Group ID,结果字段包括拥塞控制算法类型(cc_type)、发送速率配置、最大窗口配置、用户策略配置、QP列表和应用类型。
其中,Group ID和QP列表的映射关系通过Group划分模块获取,示例性的,如图4所示,QP3-QP10、QP25和QP37映射到Group1;QP11和QP66映射到Group2;QP12、QP13、QP14、QP23和QP24映射到Group3等。拥塞控制算法类型,简记为cc_type,表示用户配置的某个特定Group采用的拥塞控制算法的类型。其中,配置值0代表仅进行限速,1代表仅进行限窗,2代表限速且限窗。发送速率配置表示拥塞控制算法计算得到的某个特定Group的最大发送速率,用于硬件平面的信用模块产生信用的依据,以此实现对某个特定Group进行限速;最大发送速率由拥塞控制算法模块根据计算结果实时更新,示例性的,如图4所示,Group1的发送速率配置为2000Mbps;Group2的发送速率配置为3000Mbps;Group3的发送速率配置为3500Mbps。最大窗口配置表示拥塞控制算法计算得到的某个特定Group的最大发送窗口,用于对某个特定Group进行限窗;最大发送窗口由拥塞控制算法模块根据计算结果实时更新,示例性的,如图4所示,Group1的最大窗口配置为256;Group2的最大窗口配置为128;Group3的最大窗口配置为128。用户策略配置包括锁定发送速率(简记为lock_rate)和锁定发送窗口(简记为lock_win)两大类。配置锁定发送速率为lock_rate,则该Group的发送速率配置的最小值为lock_rate。若拥塞控制算法模块计算得到的最大发送速率小于锁定发送速率lock_rate,则发送速率配置为锁定发送速率值;若拥塞控制算法模块计算得到的最大发送速率大于或等于lock_rate,则发送速率配置为拥塞控制算法模块计算得到的最大发送速率。同理,若配置锁定发送窗口为lock_win,则该Group的最大窗口配置的最小值为lock_win。若拥塞控制算法模块计算得到的最大发送窗口小于锁定发送窗口lock_win,则最大窗口配置为锁定发送窗口值;若拥塞控制算法模块计算得到的最大发送窗口大于或等于lock_win,则最大窗口配置为拥塞控制算法模块计算得到的最大发送窗口,示例性的,如图4所示,Group1的用户策略配置为锁定发送速率5000Mbps,Group2的用户策略配置为锁定发送窗口大小为256,Group3的用户策略配置为无。应用类型配置为某个特定Group内QP对应的上层应用类型,由用户进行配置。应用类型包括但不限于GPUDirect RDMA、虚拟化网络(Virtio Net)和网络搜索(WebSearch)等,其中,GPUDirect RDMA是指计算机1的GPU可以直接访问计算机2的GPU内存。应用类型配置潜在可以用于某些拥塞控制算法进行限速和限窗的计算和处理。
如图2所示,本申请实施例还提供一种基于Group的限速限窗装置,应用于RDMA网络的硬件侧,即RDMA网络的硬件平面,用于对发送引擎进行限速和限窗,以及基于接收引擎收到的数据包进行发送窗口维护,其中,数据包为确认字符(Acknowledge Character,ACK),与上述的拥塞控制装置进行数据交互,包括:信用模块、基于Group状态信息采集模块和基于Group拥塞控制模块。
其中,信用模块:维护每个Group的可被申请信用值,并根据基于Group拥塞控制模块发送的信用申请请求和可被申请信用值向对应的Group发送信用申请请求的申请信用值,可被申请信用值通过软件侧的基于Group配置下发模块中的Group对应的发送速率配置得到,Group为对RDMA网络中的QP进行划分得到的。
具体地,信用模块内部维护基于每Group ID的可被申请信用值。信用模块基于Group ID为粒度响应基于Group拥塞控制模块发送的信用申请请求,并下发相应数量申请信用值给发起信用申请的对应Group ID。固件通过基于Group配置下发模块更新信用模块中每Group ID可被申请信用值。基于Group配置下发模块更新信用模块的可被申请信用值的依据是软件平面拥塞控制配置表中根据Group ID查询得到的发送速率配置。根据发送速率配置得到实时的可被申请信用值可以采用层次化服务质量(Hierarchical Quality ofService,HQoS)技术实现,不属于本申请的范围,在此不再详述。
基于Group状态信息采集模块:对RDMA的拥塞控制相关状态信息进行采集和处理,并将拥塞控制相关状态信息上送至软件侧的基于Group状态信息存储模块中。
其中,拥塞控制相关状态信息,包括:环回时延、拥塞通告信息和显式拥塞通告信息和特定拥塞控制算法信息。
具体地,基于Group状态信息采集模块的功能是采集、处理和上送环回时延(RoundTrip Time,RTT)、拥塞通告信息(Congestion Notification Packet,CNP)和显式拥塞通告信息(Explicit Congestion Notification,ECN)和特定拥塞控制算法所需信息。基于Group状态信息采集模块将采集和处理后的信息上送软件侧的基于Group状态信息存储模块。基于Group状态信息采集模块通过往发送引擎注入RTT测量分组,并在接收引擎接收对端环回的RTT测量分组,可以得到链路的环回时延RTT。基于Group状态信息采集模块收到ECN、CNP信息会上送到基于Group拥塞控制模块后用于拥塞控制算法的计算。基于Group状态信息采集模块也会响应软件侧下发的CNP信息,生成CNP分组注入发送引擎。
基于Group拥塞控制模块:对每个QP根据对应的Group进行限速限窗处理、维护QP到Group的映射表,以及维护第二拥塞控制配置表,并根据第二拥塞控制表中的剩余信用值向信用模块发送信用申请请求,以获取申请信用值。
具体地,基于Group拥塞控制模块的功能是执行限速和限窗的主要流程。如图5所示,基于Group拥塞控制模块内部维护QP ID到Group ID的映射表,简记为QP_TO_GROUP表,表格中记录QP ID和Group ID之间的映射关系,示例性的,图5中的QP0映射到Group4,QP1映射到Group5,QP2映射到Group10等。如图6所示,基于Group拥塞控制模块内部还维护第二拥塞控制配置表,简记为HW_CC_CFG表。其中。拥塞控制算法类型(cc_type)、用户策略配置和最大窗口值由基于Group配置下发模块根据第一拥塞控制配置表进行下发,示例性的,Group1的最大窗口配置为256;Group2的最大窗口配置为128;Group3的最大窗口配置为128,Group1的用户策略配置为锁定发送速率5000Mbps,Group2的用户策略配置为锁定发送窗口大小为256,Group3的用户策略配置为无,即为0。
进一步地,剩余信用值表示某个特定Group ID可以发送的字节数,限速需要比较剩余信用值是否可以满足发送消息大小,作为是否可以发送消息的判断条件。基于Group的拥塞控制模块会维护信用值的低阈值(TH_Low)和高阈值(TH_High)。若某个Group对应的剩余信用值小于低阈值(TH_Low),则会向信用模块开始持续发送信用申请请求,得到申请信用值;若某个Group对应的剩余信用值大于高阈值(TH_High),则会停止向信用模块申请信用值。
更进一步地,已发窗口值表示某个Group已经发送但是还没有收到确认字符(Acknowledge Character,ACK)的分组个数。PSN模块在收到某个QP的ACK后,会将消息发给基于Group拥塞控制模块。根据QP ID查询QP_TO_GROUP表得到Group ID,将相应Group ID的已发窗口值减小1。若某个Group发送一个消息,则将该Group对应的已发窗口值增加该发送消息切片后包含的分组数。
本申请实施例中的基于Group拥塞控制模块,包括:第一控制子模块:根据映射表,获取QP对应的Group;第二控制子模块:根据Group查询第二拥塞控制表中Group对应的拥塞控制算法类型;第三控制子模块:若拥塞控制算法类型的数值为第一数值,则对Group进行限速限窗处理,若拥塞控制算法类型的数值为第二数值,则对Group进行限窗处理,若拥塞控制算法类型的数值为第三数值,则对Group进行限速处理。
进一步地,第三控制子模块中的限速处理,包括:根据第二拥塞控制表获取Group的剩余信用值,若剩余信用值大于或者等于QP中的待发消息的大小,则发送待发消息,并更新剩余信用值,若剩余信用值小于待发消息的大小,则不发送待发消息,等待下一次发送调度。
更进一步地,第二拥塞控制表中包括最大窗口值和已发窗口值,第三控制子模块中的限窗处理,包括:根据第二拥塞控制表获取Group的最大窗口值和已发窗口值,若最大窗口值与已发窗口值的差值大于或者等于待发消息的大小,则发送待发消息,并更新已发窗口值,若最大窗口值与已发窗口值的差值小于待发消息的大小,则不发送待发消息,等待下一次发送调度。
再进一步地,第三控制子模块中的限速限窗处理,包括:第一控制单元:根据第二拥塞控制表获取Group的剩余信用值、最大窗口值和已发窗口值;第二控制单元:判断剩余信用值是否大于或者等于待发消息的大小,若否,则不发送待发消息,等待下一次发送调度;第三控制单元:若是,则判断最大窗口值与已发窗口值的差值是否大于或者等于待发消息的大小,若否,则不发送待发消息,等待下一次发送调度;第四控制单元:若是,则发送待发消息,并更新剩余信用值、最大窗口值和已发窗口值。
具体地,如图7所示,本申请实施例中基于Group拥塞控制模块的限速和限窗处理包括:第一,若发送引擎某QP有一个待发送消息,则根据QP ID查询QP_TO_GROUP表,获取该QP ID对应的Group ID。第二,基于Group ID查询HW_CC_CFG表,获取得到cc_type。第三,若cc_type等于2,则进行限速限窗流程;若cc_type等于1,则仅进行限窗流程;若cc_type等于0,则仅进行限速流程。
进一步地,如图8所示,本申请实施例中基于Group拥塞控制模块的限速流程包括:第一,基于Group ID查询HW_CC_CFG表,获取剩余信用值。第二,若剩余信用值大于或等于待发消息大小,则通告发送引擎可以发送消息,并且更新HW_CC_CFG表对应Group ID的剩余信用值,即减去发送消息的大小;若剩余信用值小于待发消息大小,则通告发送引擎不发送消息,等待下一次发送调度。
更进一步地,如图9所示,本申请实施例中基于Group拥塞控制模块的限窗流程包括:第一,基于Group ID查询HW_CC_CFG表,获取最大窗口值和已发窗口值。第二,若最大窗口值减去已发窗口值大于或等于待发消息大小,则通告发送引擎可以发送消息,并且更新HW_CC_CFG表对应Group ID的已发窗口值,即已发窗口值需要加上发送消息切片后包含的分组数;若最大窗口值减去已发窗口值小于待发消息大小,则通告发送引擎不发送消息,等待下一次发送调度。
再进一步地,如图10所示,本申请实施例中基于Group的拥塞控制模块的限速且限窗流程包括:第一,基于Group ID查询HW_CC_CFG表,获取剩余信用值、最大窗口值和已发窗口值。第二,若剩余信用值大于或等于待发消息大小,则进一步判断窗口值;否则不发送消息,等待下一次发送调度。第三,若最大窗口值减去已发窗口值大于或等于待发消息大小,则通告发送引擎可以发送消息,更新HW_CC_CFG表对应Group ID的已发窗口值,即已发窗口值需要加上发送消息切片后包含的分组数,并更新HW_CC_CFG表对应Group ID的剩余信用值,即减去发送消息的大小;若最大窗口值减去已发窗口值小于待发消息大小,则通告发送引擎不发送消息,等待下一次发送调度。
本申请实施例还提供一种拥塞控制方法,应用于软件侧,采用上述的拥塞控制装置,包括:步骤S1:将RDMA中的QP划分到对应的第一Group中,得到QP到第一Group的映射表;步骤S2:据映射表、RDMA的拥塞控制相关状态信息和拥塞控制算法,对RDMA网络进行拥塞控制;步骤S3:根据映射表、拥塞控制相关状态信息和拥塞控制的控制结果维护第一拥塞控制配置表,并将拥塞控制配置表下发给RDMA网络的硬件侧。
在一种可选的实施例中,拥塞控制相关状态信息,包括:环回时延、拥塞通告信息和显式拥塞通告信息和特定拥塞控制算法信息。
在一种可选的实施例中,步骤S1,包括:步骤S101:建立一个RDMA连接,并分配一个QP;步骤S102:根据预设划分方式将QP划分到对应的第一Group中,得到映射表。
本申请实施例还提供一种基于Group的限速限窗方法,应用于RDMA网络的硬件侧,采用上述的基于Group的限速限窗装置,包括:步骤P1:维护每个Group的可被申请信用值,并根据信用申请请求和可被申请信用值向对应的Group发送信用申请请求的申请信用值,可被申请信用值通过发送速率配置得到,Group为对RDMA网络中的QP进行划分得到的;步骤P2:对每个QP根据对应的Group进行限速限窗处理、维护QP到Group的映射表,以及维护第二拥塞控制配置表,并根据第二拥塞控制表中的剩余信用值向信用模块发送信用申请请求,以获取申请信用值。
本申请实施例还提供一种限速限窗方法,应用于RDMA网络,包括:步骤M1:将RDMA网络中的QP划分到对应的Group中,得到映射表;步骤M2:对于待发消息,根据待发消息的QPID和映射表,得到对应的Group ID;步骤M3:根据Group ID得到对应的拥塞控制算法类型,并根据拥塞控制算法类型对应的拥塞控制算法进行拥塞控制。
其中,拥塞控制算法类型包括限速,步骤M3,包括:获取Group ID对应的剩余信用值,若剩余信用值大于或者等于待发消息的大小,则发送待发消息,并更新剩余信用值,若剩余信用值小于待发消息的大小,则不发送待发消息,等待下一次发送调度。
进一步地,拥塞控制算法类型还包括限窗,步骤M3,包括:获取Group ID对应的最大窗口值和已发窗口值,若最大窗口值与已发窗口值的差值大于或者等于待发消息的大小,则发送待发消息,并更新已发窗口值,若最大窗口值与已发窗口值的差值小于待发消息的大小,则不发送待发消息,等待下一次发送调度。
更进一步地,拥塞控制算法类型包括限速限窗,步骤M3,包括:步骤M301:获取Group ID对应的剩余信用值、最大窗口值和已发窗口值;步骤M302:判断剩余信用值是否大于或者等于待发消息的大小,若否,则不发送待发消息,等待下一次发送调度;步骤M303:若是,则判断最大窗口值与已发窗口值的差值是否大于或者等于待发消息的大小,若否,则不发送待发消息,等待下一次发送调度;步骤M304:若是,则发送待发消息,并更新剩余信用值、最大窗口值和已发窗口值。
本申请通过手动划分、自动划分或者混合划分的方式,将具有共同特征的一组QP绑定到一个Group,基于Group为粒度进行RDMA网络拥塞控制、限速和限窗,相比现有方法,可以提高RDMA网络拥塞控制的响应速度,对;造成拥塞的一组QP做到快速反馈降速或降窗,进行快速和有效的拥塞控制,基于Group的限速和限窗不需要维护每QP的拥塞控制降速和降窗参数,硬件实现的存储开销显著降低,可以减小拥塞控制模块占用的芯片面积资源。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例侧重说明的都是与其他实施例的不同之处。尤其,对于后面说明的产品实施例而言,由于其与方法是对应的,描述比较简单,相关之处参见系统实施例的部分说明即可。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (22)
1.一种拥塞控制装置,其特征在于,应用于RDMA网络的软件侧,包括:
Group划分模块:将所述RDMA中的QP划分到对应的第一Group中,得到所述QP到所述第一Group的映射表;
拥塞控制算法模块:根据所述映射表、所述RDMA的拥塞控制相关状态信息和拥塞控制算法,对所述RDMA网络进行拥塞控制;
基于Group配置下发模块:根据所述映射表、所述拥塞控制相关状态信息和所述拥塞控制的控制结果维护第一拥塞控制配置表,并将所述拥塞控制配置表下发给所述RDMA网络的硬件侧。
2.根据权利要求1所述的拥塞控制装置,其特征在于,所述Group划分模块,包括:
第一划分子模块:建立一个RDMA连接,并分配一个QP;
第二划分子模块:根据预设划分方式将所述QP划分到对应的第一Group中,得到所述映射表。
3.根据权利要求2所述的拥塞控制装置,其特征在于,所述预设划分方式包括手动划分,所述第二划分子模块,包括:根据用户配置,将所述QP划分到对应的所述第一Group中,得到所述映射表。
4.根据权利要求2所述的拥塞控制装置,其特征在于,所述预设划分方式包括自动划分,所述第二划分子模块,包括:根据所述QP的网络流量行为特征数据,将所述QP进行聚类处理,根据所述聚类处理的结果将所述QP划分到对应的所述第一Group中,得到所述映射表。
5.根据权利要求2所述的拥塞控制装置,其特征在于,所述预设划分方式包括混合划分,所述第二划分子模块,包括:
第一单元:判断所述QP是否包含用户配置;
第二单元,若是,则根据所述用户配置,将所述QP划分到对应的所述第一Group中;
第二单元:若否,则将所述QP划分到缺省Group中;
第三单元:根据所述缺省Group中的所述QP的网络流量行为特征数据,将所述QP进行聚类处理,根据所述聚类处理的结果将所述QP划分到对应的所述第一Group中,得到所述映射表。
6.根据权利要求1所述的拥塞控制装置,其特征在于,还包括:基于Group状态信息存储模块:存储所述RDMA的硬件侧上送的所述拥塞控制相关状态信息。
7.根据权利要求1所述的拥塞控制装置,其特征在于,所述基于Group配置下发模块中的所述第一拥塞控制配置表,包括:拥塞控制算法类型、发送速率配置、最大窗口配置、用户策略配置、QP列表和应用类型。
8.根据权利要求7所述的拥塞控制装置,其特征在于,所述拥塞控制算法类型,包括:限速、限窗和限速限窗。
9.根据权利要求1所述的拥塞控制装置,其特征在于,所述拥塞控制算法模块,包括:根据所述映射表将所述拥塞控制算法和所述拥塞控制相关状态信息中的所述QP映射到对应的所述第一Group中,对所述RDMA网络进行拥塞控制。
10.一种基于Group的限速限窗装置,其特征在于,应用于RDMA网络的硬件侧,与权利要求1-9任一项所述的拥塞控制装置进行数据交互,包括:
信用模块:维护每个Group的可被申请信用值,并根据基于Group拥塞控制模块发送的信用申请请求和所述可被申请信用值向对应的所述Group发送所述信用申请请求的申请信用值,所述可被申请信用值通过软件侧的基于Group配置下发模块中的所述Group对应的发送速率配置得到,所述Group为对所述RDMA网络中的QP进行划分得到的;
基于Group拥塞控制模块:对每个QP根据对应的所述Group进行限速限窗处理、维护所述QP到所述Group的映射表,以及维护第二拥塞控制配置表,并根据所述第二拥塞控制配置表中的剩余信用值向所述信用模块发送所述信用申请请求,以获取所述申请信用值。
11.根据权利要求10所述的基于Group的限速限窗装置,其特征在于,还包括:基于Group状态信息采集模块:对所述RDMA的拥塞控制相关状态信息进行采集和处理,并将所述拥塞控制相关状态信息上送至所述软件侧的基于Group状态信息存储模块中。
12.根据权利要求10所述的基于Group的限速限窗装置,其特征在于,所述基于Group拥塞控制模块,包括:
第一控制子模块:根据所述映射表,获取所述QP对应的所述Group;
第二控制子模块:根据所述Group查询第二拥塞控制配置表中所述Group对应的拥塞控制算法类型;
第三控制子模块:若所述拥塞控制算法类型的数值为第一数值,则对所述Group进行限速限窗处理,若所述拥塞控制算法类型的数值为第二数值,则对所述Group进行限窗处理,若所述拥塞控制算法类型的数值为第三数值,则对所述Group进行限速处理。
13.根据权利要求12所述的基于Group的限速限窗装置,其特征在于,所述第三控制子模块中的所述限速处理,包括:根据所述第二拥塞控制配置表获取所述Group的所述剩余信用值,若所述剩余信用值大于或者等于所述QP中的待发消息的大小,则发送所述待发消息,并更新所述剩余信用值,若所述剩余信用值小于所述待发消息的大小,则不发送所述待发消息,等待下一次发送调度。
14.根据权利要求13所述的基于Group的限速限窗装置,其特征在于,所述第二拥塞控制配置表中包括最大窗口值和已发窗口值,所述第三控制子模块中的所述限窗处理,包括:根据所述第二拥塞控制配置表获取所述Group的所述最大窗口值和所述已发窗口值,若所述最大窗口值与所述已发窗口值的差值大于或者等于所述待发消息的大小,则发送所述待发消息,并更新所述已发窗口值,若所述最大窗口值与所述已发窗口值的差值小于所述待发消息的大小,则不发送所述待发消息,等待下一次发送调度。
15.根据权利要求14所述的基于Group的限速限窗装置,其特征在于,所述第三控制子模块中的所述限速限窗处理,包括:
第一控制单元:根据所述第二拥塞控制配置表获取所述Group的所述剩余信用值、所述最大窗口值和所述已发窗口值;
第二控制单元:判断所述剩余信用值是否大于或者等于所述待发消息的大小,若否,则不发送所述待发消息,等待下一次发送调度;
第三控制单元:若是,则判断所述最大窗口值与所述已发窗口值的差值是否大于或者等于所述待发消息的大小,若否,则不发送所述待发消息,等待下一次发送调度;
第四控制单元:若是,则发送所述待发消息,并更新所述剩余信用值、所述最大窗口值和所述已发窗口值。
16.一种拥塞控制方法,其特征在于,应用于软件侧,采用权利要求1-9中任一项所述的拥塞控制装置,包括:
步骤S1:将所述RDMA中的QP划分到对应的第一Group中,得到所述QP到所述第一Group的映射表;
步骤S2:据所述映射表、所述RDMA的拥塞控制相关状态信息和拥塞控制算法,对所述RDMA网络进行拥塞控制;
步骤S3:根据所述映射表、所述拥塞控制相关状态信息和所述拥塞控制的控制结果维护第一拥塞控制配置表,并将所述拥塞控制配置表下发给所述RDMA网络的硬件侧。
17.根据权利要求16所述的拥塞控制方法,其特征在于,所述步骤S1,包括:
步骤S101:建立一个RDMA连接,并分配一个QP;
步骤S102:根据预设划分方式将所述QP划分到对应的第一Group中,得到所述映射表。
18.一种基于Group的限速限窗方法,其特征在于,应用于RDMA网络的硬件侧,采用权利要求10-15任一项所述的基于Group的限速限窗装置,包括:
步骤P1:维护每个Group的可被申请信用值,并根据信用申请请求和所述可被申请信用值向对应的所述Group发送所述信用申请请求的申请信用值,所述可被申请信用值通过发送速率配置得到,所述Group为对所述RDMA网络中的QP进行划分得到的;
步骤P2:对每个QP根据对应的所述Group进行限速限窗处理、维护所述QP到所述Group的映射表,以及维护第二拥塞控制配置表,并根据所述第二拥塞控制配置表中的剩余信用值向所述信用模块发送所述信用申请请求,以获取所述申请信用值。
19.一种限速限窗方法,其特征在于,应用于RDMA网络,包括:
步骤M1:将所述RDMA网络中的QP划分到对应的Group中,得到映射表;
步骤M2:对于待发消息,根据所述待发消息的QPID和所述映射表,得到对应的GroupID;
步骤M3:根据所述Group ID得到对应的拥塞控制算法类型,并根据所述拥塞控制算法类型对应的拥塞控制算法进行拥塞控制。
20.根据权利要求19所述的限速限窗方法,其特征在于,所述拥塞控制算法类型包括限速,所述步骤M3,包括:获取所述Group ID对应的剩余信用值,若所述剩余信用值大于或者等于所述待发消息的大小,则发送所述待发消息,并更新所述剩余信用值,若所述剩余信用值小于所述待发消息的大小,则不发送所述待发消息,等待下一次发送调度。
21.根据权利要求19所述的限速限窗方法,其特征在于,所述拥塞控制算法类型包括限窗,所述步骤M3,包括:获取所述Group ID对应的最大窗口值和已发窗口值,若所述最大窗口值与所述已发窗口值的差值大于或者等于所述待发消息的大小,则发送所述待发消息,并更新所述已发窗口值,若所述最大窗口值与所述已发窗口值的差值小于所述待发消息的大小,则不发送所述待发消息,等待下一次发送调度。
22.根据权利要求19所述的限速限窗方法,其特征在于,所述拥塞控制算法类型包括限速限窗,所述步骤M3,包括:
步骤M301:获取所述Group ID对应的剩余信用值、最大窗口值和已发窗口值;
步骤M302:判断所述剩余信用值是否大于或者等于所述待发消息的大小,若否,则不发送所述待发消息,等待下一次发送调度;
步骤M303:若是,则判断所述最大窗口值与所述已发窗口值的差值是否大于或者等于所述待发消息的大小,若否,则不发送所述待发消息,等待下一次发送调度;
步骤M304:若是,则发送所述待发消息,并更新所述剩余信用值、所述最大窗口值和所述已发窗口值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210942233.8A CN115314442B (zh) | 2022-08-08 | 2022-08-08 | 拥塞控制和基于Group的限速限窗装置及方法、限速限窗方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210942233.8A CN115314442B (zh) | 2022-08-08 | 2022-08-08 | 拥塞控制和基于Group的限速限窗装置及方法、限速限窗方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115314442A CN115314442A (zh) | 2022-11-08 |
CN115314442B true CN115314442B (zh) | 2023-09-12 |
Family
ID=83860849
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210942233.8A Active CN115314442B (zh) | 2022-08-08 | 2022-08-08 | 拥塞控制和基于Group的限速限窗装置及方法、限速限窗方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115314442B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116915706B (zh) * | 2023-09-13 | 2023-12-26 | 合肥综合性国家科学中心人工智能研究院(安徽省人工智能实验室) | 数据中心网络拥塞控制方法、装置、设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111800351A (zh) * | 2019-06-16 | 2020-10-20 | 特拉维夫迈络思科技有限公司 | 由交换机进行的拥塞通知分组生成 |
CN113411263A (zh) * | 2021-06-18 | 2021-09-17 | 中国工商银行股份有限公司 | 一种数据传输方法、装置、设备及存储介质 |
CN114866529A (zh) * | 2022-04-29 | 2022-08-05 | 阿里巴巴(中国)有限公司 | 基于rdma的通信方法、装置、设备以及存储介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9253096B2 (en) * | 2013-03-15 | 2016-02-02 | International Business Machines Corporation | Bypassing congestion points in a converged enhanced ethernet fabric |
US9898318B2 (en) * | 2014-08-15 | 2018-02-20 | Centurylink Intellectual Property Llc | Multi-line/multi-state virtualized OAM transponder |
CN107493238A (zh) * | 2016-06-13 | 2017-12-19 | 华为技术有限公司 | 一种网络拥塞控制方法、设备及系统 |
CN109391560B (zh) * | 2017-08-11 | 2021-10-22 | 华为技术有限公司 | 网络拥塞的通告方法、代理节点及计算机设备 |
US10944660B2 (en) * | 2019-02-08 | 2021-03-09 | Intel Corporation | Managing congestion in a network |
US11818046B2 (en) * | 2021-01-26 | 2023-11-14 | Samsung Electronics Co., Ltd. | Coordinated congestion control in network-attached devices |
-
2022
- 2022-08-08 CN CN202210942233.8A patent/CN115314442B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111800351A (zh) * | 2019-06-16 | 2020-10-20 | 特拉维夫迈络思科技有限公司 | 由交换机进行的拥塞通知分组生成 |
CN113411263A (zh) * | 2021-06-18 | 2021-09-17 | 中国工商银行股份有限公司 | 一种数据传输方法、装置、设备及存储介质 |
CN114866529A (zh) * | 2022-04-29 | 2022-08-05 | 阿里巴巴(中国)有限公司 | 基于rdma的通信方法、装置、设备以及存储介质 |
Non-Patent Citations (1)
Title |
---|
Yibo Zhu,etc.Congestion Control for Large-Scale RDMA Deployments.2015,第45卷(第4期版),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN115314442A (zh) | 2022-11-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7697522B2 (en) | Systems and methods for aggregation of packets for transmission through a communications network | |
EP2469779A1 (en) | Parameterized quality of service in a network | |
US20020105949A1 (en) | Band control device | |
US20130286845A1 (en) | Transmission rate control | |
CN107347198A (zh) | 一种限速方法、限速控制节点和限速设备 | |
CN101668005A (zh) | 一种基于发送端多接入通道的数据传输加速引擎方法 | |
CN111555974B (zh) | 一种数据包的处理方法、装置、终端设备和存储介质 | |
WO2017148446A1 (zh) | 一种网络资源调度方法、设备、系统以及网络节点 | |
CN102594802B (zh) | 低延迟联网的方法及系统 | |
WO2015038949A1 (en) | High payload data packet transmission system and relay to lower latency | |
CN115314442B (zh) | 拥塞控制和基于Group的限速限窗装置及方法、限速限窗方法 | |
JP2012065314A (ja) | データ配送装置及びデータ配送システム | |
CN114189446A (zh) | 资源配置方法、装置、服务器及存储介质 | |
WO2019029704A1 (zh) | 网络对象管理方法及其装置 | |
CN106533954A (zh) | 一种报文调度方法和装置 | |
CN112787952B (zh) | 一种业务流量调整方法及装置 | |
CN114286447B (zh) | 调度优先级的调整方法、设备及存储介质 | |
CN100459545C (zh) | 一种高速业务跨网通信建立方法和系统 | |
CN109218217B (zh) | 一种负荷分担方法、装置、路由设备及存储介质 | |
CN109561443B (zh) | 一种信息处理方法、装置、设备及计算机可读存储介质 | |
CN114666279B (zh) | 一种5g系统中pcc会话管理策略下发的方法及系统 | |
CN113891398B (zh) | 一种资源确定方法、设备及存储介质 | |
EP4262313A1 (en) | Method, apparatus and system for scheduling service flow | |
CN107888540B (zh) | 一种网络防攻击方法及网络设备 | |
CN110740472A (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 |