CN117354253A - 一种网络拥塞通知方法、装置及存储介质 - Google Patents
一种网络拥塞通知方法、装置及存储介质 Download PDFInfo
- Publication number
- CN117354253A CN117354253A CN202311245073.2A CN202311245073A CN117354253A CN 117354253 A CN117354253 A CN 117354253A CN 202311245073 A CN202311245073 A CN 202311245073A CN 117354253 A CN117354253 A CN 117354253A
- Authority
- CN
- China
- Prior art keywords
- icmp
- congestion notification
- network
- message
- rdma
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 47
- 230000006854 communication Effects 0.000 claims abstract description 21
- 238000004891 communication Methods 0.000 claims abstract description 20
- 238000012545 processing Methods 0.000 claims description 22
- 238000010791 quenching Methods 0.000 claims description 14
- 230000001629 suppression Effects 0.000 claims description 11
- 230000005540 biological transmission Effects 0.000 description 27
- 238000010586 diagram Methods 0.000 description 17
- 230000006870 function Effects 0.000 description 15
- 230000008569 process Effects 0.000 description 5
- 238000013473 artificial intelligence Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 230000006866 deterioration Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000011144 upstream manufacturing 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/33—Flow control; Congestion control using forward notification
Abstract
本申请提供一种网络拥塞通知方法、装置及存储介质,涉及数据通讯领域,用于在远程直接内存访问RDMA网络的实现协议RoCEv2中提高网络拥塞的通知效率。该方法包括:网络节点接收发送端发送的远程直接数据存取RDMA数据报文,网络节点用于转发发送端和接收端之间的报文;在检测到网络拥塞的情况下,网络节点构建基于互联网控制消息协议ICMP的拥塞通知报文;网络节点向发送端发送基于ICMP的拥塞通知报文,基于ICMP的拥塞通知报文用于通知发送端降低RDMA数据报文所属数据流的发送速度。
Description
技术领域
本申请涉及数据通讯领域,尤其涉及一种网络拥塞通知方法、装置及存储介质。
背景技术
远程直接数据存取(remote direct memory access,RDMA)为一种数据传输技术,由于无需借助计算机的处理器、高速缓存或者操作系统等,通过网络即可从其他计算机的内存中直接读取数据,因而降低了网络传输中的数据处理延迟。然而,RDMA数据中心通常采用克劳斯(CLOS)方式进行组网,网络中交换机上下行接口带宽不对称,当数据在网络中传输时,经常会发生网络拥塞,进而影响RDMA的通讯性能。为了避免网络拥塞,提升RDMA通讯性能,需要及时地对网络拥塞进行通知。
目前,在网络节点处发生网络拥塞时,由于网络节点不具备传输层协议处理能力,也无法获取到发送端的用户数据报协议(user datagram protocol,UDP)端口号等信息。因此也无法直接构造拥塞通知报文,需要在接收端进行处理后生成拥塞通知报文后向发送端进行反馈,导致反馈路径较长且反馈滞后。
发明内容
本申请提供一种网络拥塞通知方法、装置及存储介质,用于在RDMA网络的实现协议RoCEv2中提高网络拥塞的通知效率。本申请技术方案如下:
第一方面,提供一种网络拥塞通知方法,应用于远程直接数据存取RDMA网络的网络节点,网络节点用于转发发送端和接收端之间的报文;该方法包括:接收发送端发送的远程直接数据存取RDMA数据报文;在检测到网络拥塞的情况下,构建基于互联网控制消息协议ICMP的拥塞通知报文;向发送端发送基于ICMP的拥塞通知报文,基于ICMP的拥塞通知报文用于通知发送端降低RDMA数据报文所属数据流的发送速度。
本申请提供的技术方案至少带来以下有益效果:在网络节点接收到RDMA数据报文并检测到网络拥塞的情况下,网络节点构建基于互联网控制消息协议ICMP的拥塞通知报文。这样,网络节点可以直接通过IP层向发送端发送基于ICMP的拥塞通知报文。避免了网络节点升级支持对RDMA传输层协议的处理能力,同时由网络节点向发送端发送基于ICMP的拥塞通知报文,能够加快拥塞反馈的速度,避免进一步拥塞恶化。
在一种可能的实现方式中,基于ICMP的拥塞通知报文包括基于ICMP的拥塞通知报文的类型、基于ICMP的拥塞通知报文的代码和RDMA数据报文的目的队列对QP的信息。
基于该可能的实现方式,定义基于ICMP的拥塞通知报文的结构,其中,基于ICMP的拥塞通知报文携带RDMA数据报文的目的队列对QP的信息,以便于发送端可以及时确定出现拥塞的RDMA数据报文所属的数据流。
在一种可能的实现方式中,基于ICMP的拥塞通知报文的类型与ICMP协议中的源抑制消息的类型相同,基于ICMP的拥塞通知报文的代码为对ICMP协议中的源抑制消息的代码进行扩展得到。
基于该可能的实现方式,对基于ICMP的拥塞通知报文的类型与代码进行定义。其中,由于基于ICMP的拥塞通知报文与ICMP的源抑制消息的类型都为源抑制,所以基于ICMP的拥塞通知报文的类型与ICMP协议中的源抑制消息的类型相同。对现有的ICMP的源抑制类型的代码进行扩展以便存储RDMA数据报文的目的队列对QP的信息。
在一种可能的实现方式中,在检测到网络拥塞的情况下,网络节点读取RDMA数据报文对应的IP层报文头,确定RDMA数据报文的目的队列对QP的信息。
基于该可能的实现方式,网络节点读取RDMA数据报文对应的IP层报文头,确定RDMA数据报文的目的队列对QP的信息,以便于构建基于互联网控制消息协议ICMP的拥塞通知报文。
第二方面,提供一种网络拥塞通知方法,应用于远程直接数据存取RDMA网络的发送端,该方法包括:发送端向网络节点发送RDMA数据报文;发送端响应于接收到网络节点发送的基于ICMP的拥塞通知报文,降低RDMA数据报文所属数据流的发送速度。
第三方面,本申请提供一种网络拥塞通知装置,应用于远程直接数据存取RDMA网络的网络节点,网络节点用于转发发送端和接收端之间的报文,该装置包括:
接收模块,用于接收发送端发送的远程直接数据存取RDMA数据报文,网络节点用于转发发送端和接收端之间的报文;
处理模块,用于在检测到网络拥塞的情况下,构建基于互联网控制消息协议ICMP的拥塞通知报文;
发送模块,用于向发送端发送基于ICMP的拥塞通知报文,基于ICMP的拥塞通知报文用于通知发送端降低RDMA数据报文所属数据流的发送速度。
在一种可能的实现方式中,基于ICMP的拥塞通知报文包括基于ICMP的拥塞通知报文的类型、基于ICMP的拥塞通知报文的代码和RDMA数据报文的目的队列对QP的信息。
在一种可能的实现方式中,基于ICMP的拥塞通知报文的类型与ICMP协议中的源抑制消息的类型相同,基于ICMP的拥塞通知报文的代码为对ICMP协议中的源抑制消息的代码进行扩展得到。
在一种可能的实现方式中,处理模块,还用于在检测到网络拥塞的情况下,读取RDMA数据报文对应的IP层报文头,确定RDMA数据报文的目的队列对QP的信息。
第四方面,本申请提供一种网络拥塞通知装置,应用于RDMA网络的发送端,该装置包括:
发送模块,用于向网络节点发送RDMA数据报文;
处理模块,用于响应于接收到网络节点发送的基于ICMP的拥塞通知报文,降低RDMA数据报文所属数据流的发送速度。
第五方面,本申请还提供了一种通信装置,该通信装置包括:处理器和用于存储处理器可执行指令的存储器;其中,处理器被配置为执行指令,使得通信装置执行如第一方面及其任一种可能的实现方式的网络拥塞通知方法。
第六方面,本申请还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机指令,当计算机指令在通信装置上运行时,使得通信装置执行如第一方面及其任一种可能的实现方式的网络拥塞通知方法。
本申请中第二方面到第六方面及其各种实现方式的具体描述,可以参考第一方面及其各种实现方式中的详细描述。第二方面到第六方面及其各种实现方式的有益效果,可以参考第一方面及其各种实现方式的有益效果分析,此处不再赘述。
附图说明
图1为本申请实施例提供的多对一流量模型的示意图;
图2为本申请实施例提供的TCP/IP与RDMA的对比示意图;
图3为本申请实施例提供的RDMA协议栈的示意图;
图4为本申请实施例提供的ICMP的数据包头的基本结构示意图;
图5为本申请实施例提供的网络拥塞的通知方法所涉及的系统的结构示意图;
图6为本申请实施例提供的一种网络拥塞通知方法的流程示意图;
图7为本申请实施例提供的IP层报文头的结构示意图;
图8为本申请实施例提供的一种网络拥塞通知装置的结构示意图;
图9为本申请实施例提供的另一种网络拥塞通知装置的结构示意图;
图10为本申请实施例提供的一种通信装置的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,本申请中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其他实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
随着人工智能和机器学习等新应用的快速发展和实践普及,需要处理的数据越来越多,同时要求数据中心网络具备高吞吐、低时延的能力。为适应分布式人工智能(artificial intelligence,AI)计算和存储的需求,数据中心规模不断增加,使得低时延和高吞吐量很难同时实现。为了实现高吞吐和低时延传输,可以让设备尽可能保持线速传输的同时维持很低的交换机队列流动,传统数据中心网络有损一方面是因为交换机缓存小且为多端口共享,大缓存交换机虽然能够吸收临时拥塞以避免丢包,但延长了敏感数据包传递时延,带来时延的增加和吞吐的下降,从而损害分布式应用的性能。同时随着网络规模的增加、链路带宽的增长,增加缓冲区来缓解问题的效果越来越有限,大容量芯片增加缓冲区的成本越来越高,越来越不经济;另一方面分布式高性能应用一般是多对一(many-to-one)或多对多(all-to-all)通信的并行计算流量模型。
示例性的,图1提供了为本申请实施例提供的多对一流量模型,如图1所示,流量1从服务器2到服务器3,流量2也从服务器6到服务器3,可能在汇聚点交换机4造成设备内部队列缓存的瞬时突发拥塞甚至丢包,导致交换机4到服务器3的出端口是拥塞点,使存储和计算资源无法得到充分利用,进而增加整个应用的完成时间。
无损网络是指通过硬件架构、智能无损拥塞算法和一系列的网络技术,为人工智能、分布式存储、高性能计算(high performance computing,HPC)等应用场景提供的“无丢包、低时延、高吞吐”的网络环境,加速计算和存储的效率。
示例性的,图2为本申请实施例提供的传输控制协议/互联网协议(transmissioncontrol protocol/internet protocol,TCP/IP)与RDMA对比示意图。
如图2所示,现有的数据中心网络通常采用TCP/IP的协议栈进行传输,但是TCP/IP的协议栈处理过程涉及到内核态和用户态的切换和数据的多次拷贝,会导致处理时延增加和中央处理器(central processing unit,CPU)的高负载。网络规模和网络带宽越大,CPU的负载越高。因此RDMA利用相关的硬件和网络技术,使主机的网卡之间可以直接读内存,凭借零拷贝、内核旁路和不需要CPU干预的优势最终达到高带宽、低时延和低资源消耗率的效果,逐渐成为无损网络应用的主流技术,被广泛应用于输入/输出密集的业务,如高性能计算、存储、云等场景。
RDMA最初是承载在Infiniband,简称为IB,IB是由IB贸易协会专为RDMA量身定做的专用网络协议栈,可以从硬件级别上保证数据传输的可靠性,但是成本高、无法兼容现网,所以以太网上的远程接内存访问(RDMA over Converged Ethernet,RoCE)应运而生。
示例性的,图3为本申请实施例提供的RDMA协议栈的示意图。RDMA有多种实现方式,对应了多种协议栈。InfiniBand(IB)是一种基于IB架构的RDMA技术的网络通信协议栈。广泛用于高性能计算领域。它提供了极低的传输延迟和高带宽,以及对远程内存访问的支持。IB协议栈包括IB链路层协议、IB网络层协议和IB传输协议。IB链路层协议定义了物理链路的连接、错误检测和恢复等功能。IB网络层协议负责路由和转发数据包,并提供多播和故障恢复机制。IB传输协议支持RDMA操作和远程操作的原子性。
互联网广域网RDMA协议(internet wide area RDMA protocal,iWARP)是一种在TCP/IP网络上实现RDMA的协议栈。iWARP通过添加符合RDMA要求的扩展来实现高性能、低延迟的数据传输。该协议栈包括iWARP传输协议、TCP协议、IP协议和以太网链路层协议。
汇聚以太网中的RDMA协议(RDMA over converged ethernet,RoCE)是一种在以太网上实现RDMA的协议栈。RoCE包括RoCEv1和RoCEv2两个版本。RoCE v1协议栈使用IB传输协议和IB网络层协议,同时使用以太网链路层协议。RoCEv2协议栈在传输层使用IB传输协议和UDP协议、在网络层使用IP协议,在链路层使用以太网链路层协议。
其中,IB协议、RoCEv1协议及RoCEv2协议的RDMA报文均包括基础传输头(basetransport header,BTH)和IB净荷(payload)。
目前应用广泛的是RoCEv2协议。但是RoCEv2协议是一种基于无连接的UDP协议,缺乏完善的丢包保护机制,对于网络丢包异常敏感,因此需要相应的拥塞控制机制配合使用。
显式拥塞通知(explicit congestion notification,ECN)是一种拥塞通知技术,ECN功能利用IP层报文头中的ECN域来标记报文传输路径上的拥塞状态,RFC3168对ECN域的定义如下:
ECN域的取值为00时,表示不支持ECN功能;
ECN域的取值为01或者10时,表示支持ECN功能,分别记为ECT(1)或ECT(0);
ECN域的取值为11时,表示该报文在转发路径上发生了拥塞,记为CE。
支持该功能的接收端可以通过报文中的ECN域判断出传输路径上是否发生了拥塞,当网络发生拥塞后,接收端可以通过拥塞通知报文(Congestion NotificationPacket,CNP)通知发送端,使得发送端降低报文的发送速率,从而从避免拥塞而导致的丢包,实现网络性能的最大利用,避免拥塞加剧。
传统的拥塞通知方法为:当网络节点的出端口发生拥塞后,网络节点会将报文的ECN字段标为11,当接收端收到报文发现有拥塞后,会给发送端发送一个CNP报文通知发送端降低该报文所属流量发送速率。
但是由接收端通过网络向发送端发送拥塞通知报文,中间转发路径较长且经过的网络节点会较多,使得发送端不能及时接收到拥塞通知报文,并进行相应的流量降速处理。从而导致网络拥塞的进一步恶化,甚至会引发整网因优先流量控制(Priority FlowControl,PFC)流控而暂停流量的发送。
互联网控制消息协议(internet control message protocol,ICMP)是IP层的核心协议之一。它用于发送控制消息,提供可能发生在通信过程中的各种问题反馈,通过这些信息,使网络管理者可以对所发生的问题作出诊断,然后采取适当的措施解决问题。对于RDMA拥塞通知的场景,可以利用ICMP报文来传递需要降速的流量队列信息。
示例性的,图4为本申请实施例提供的ICMP的数据包头基本结构的示意图。如图4所示,类型(Type):指示ICMP消息的类型,例如回显请求(Echo Request)、回显回复(EchoReply)等。每种类型的ICMP消息都有一个唯一的类型代码。代码(Code):与类型字段一起,用于进一步指定ICMP消息的具体子类型或操作。校验和(Checksum):用于检验ICMP消息头的完整性。校验和字段被用于验证ICMP消息头和数据在传输过程中是否出现了任何错误或损坏。未使用(Unused):保留字段,未被使用。ICMP数据包头的前部分是与IP协议相同的互联网头部(Internet Header),包括版本号、服务类型、总长度、源IP地址、目的IP地址等字段。这些字段用于将ICMP消息传送到目标主机。ICMP数据包头的后部分是64位的原始数据报文(64bits of Original Data Datagram),也称为ICMP数据。根据不同类型和代码的ICMP消息,这部分数据可能会被用于不同的目的。
其中,ICMP的类型分为两大类,查询报文和差错报文。
差错类报文有以下5种:
类型3:重点不可达;
类型4:源点抑制;
类型11:超时/超期;
类型12:参数问题;
类型5:路由重定向。
查询类报文有以下4种:
类型8或0:回送请求或回答;
类型13或14:时间戳请求或回答;
类型17或18:地址码请求或回答;
类型10或9:路由器查询通告。
目前ICMP已经定义的ICMP的类型如表1所示。
表1
参考表1所示,ICMP在RFC792中定义了源抑制消息(type:4,code:0),用来做拥塞控制。对于网络设备,当网络发生拥塞时,如果没有足够的缓存空间会将数据包丢弃,现有的方法是在网络设备丢弃一个报文后就会向发送端发送ICMP的源抑制消息,或者当目的主机收到数据过快无法处理时会向发送端主动发送源抑制报文。源抑制报文是对发送端主机请求降低向目的端发送流量的速度,发送端主机收到后会降低发送速率直到不再收到相应的源抑制报文,然后再逐渐提升发送数据的速度。
但是因为后续ECN的拥塞控制机制的发展,逐渐不使用ICMP的源抑制报文,但是在RDMA流量的拥塞控制场景,又面临着中间传输设备无法处理RDMA传输层协议的问题,因此将需要传递的拥塞信息获取到之后,通过IP层的ICMP协议进行传递是个很好的思路。
有鉴于此,本申请提供一种网络拥塞通知方法,应用于远程直接内存访问RDMA网络的实现协议RoCEv2场景下。该方法包括网络节点接收发送端发送的远程直接数据存取RDMA数据报文,网络节点用于转发发送端和接收端之间的报文;在检测到网络拥塞的情况下,网络节点构建基于互联网控制消息协议ICMP的拥塞通知报文;网络节点向发送端发送基于ICMP的拥塞通知报文,基于ICMP的拥塞通知报文用于通知发送端降低RDMA数据报文所属数据流的发送速度。避免了网络节点升级支持对RDMA传输层协议的处理能力,同时由网络节点向发送端发送基于ICMP的拥塞通知报文,能够加快拥塞反馈的速度,避免进一步拥塞恶化。
图5示出了本申请实施例提供的网络拥塞的通知方法所涉及的系统的结构示意图,参见图5,该系统包括:发送端、网络节点及接收端。
其中,网络节点包括DeviceA和DeviceB。网络节点可以为网络中的交换机、路由器等,本申请实施例不对网络节点的类型以及网络节点的数量作具体的限定。
发送端和接收端可以为网络中的计算机,且该发送端和接收端地位并不是固定不变的,发送端可能为下一次数据传输过程中的接收端,接收端可能为下一次数据传输过程中的发送端。
下面结合附图对本申请实施例提供网络拥塞通知方法进行详细介绍。
图6为本申请实施例提供的一种网络拥塞通知方法的流程图。如图6所示,该方法包括以下步骤:
S101、发送端向网络节点发送RDMA数据报文;相应的,网络节点接收发送端发送的RDMA数据报文。
在一些实施例中,在发送端通过网络将RDMA数据报文发送至接收端的过程中,RDMA数据报文会经过发送端及RDMA网络中的各个网络节点,因此,网络节点可接收到RDMA数据报文,进而处理接收到的RDMA数据报文。
在一些实施例中,当发送端向网络节点发送RDMA数据报文时,发送端获取发送端的媒体访问控制(media access control,MAC)地址、发送端的IP地址、接收端的MAC地址、接收端的IP地址及RDMA数据报文的目的队列对编号,并基于RDMA报文格式,生成标准的RDMA数据报文。为了便于查看当前的网络状态,发送端还将在RDMA数据报文的IP层报文头部设置ECN位。
其中,ECN位用于标识RDMA发送端具有ECN能力,且该ECN位上的不同数值表明网络的不同状态。例如,可用数值10表明网络处于正常状态,可用数值11表明网络处于拥塞状态等。初始时刻,默认网络状态为正常状态,也即是ECN位上的数值为10。
示例性的,表2为所生成的标准RDMA数据报文的报文格式。
表2
其中,MAC header为MAC头部字段;IP header为IP头部字段,该IP header的ECN标识位上的数值为10,IP header中还有一个校验和字段,用于检查IP数据包在传输过程中是否发生错误;UDP header为UDP传输头部字段;IB transport header为IB传输头部字段;Data为待发送的数据;iCRC为数据传输检错字段;Eth帧校验序列(frame check sequence,FCS)为校验字段,用于存储iCRC校验值。
S102、在检测到网络拥塞的情况下,网络节点构建基于互联网控制消息协议ICMP的拥塞通知报文。
其中,基于ICMP的拥塞通知报文用于通知发送端降低RDMA数据报文所属数据流的发送速度。
在一些实施例中,基于ICMP的拥塞通知报文包括基于ICMP的拥塞通知报文的类型、基于ICMP的拥塞通知报文的代码和RDMA数据报文的目的队列对QP的信息。其中,目的QP的信息包括目的QP的编号。
在一些实施例中,基于ICMP的拥塞通知报文的类型与ICMP协议中的源抑制消息的类型相同,基于ICMP的拥塞通知报文的代码为对ICMP协议中的源抑制消息的代码进行扩展得到。
示例性的,ICMP协议中的源抑制消息的类型为4,ICMP协议中的源抑制消息的代码为0,所以基于ICMP的拥塞通知报文的类型为4,基于ICMP的拥塞通知报文的代码为1。
示例性的,表3为本申请实施例提供的基于ICMP的拥塞通知报文的结构示意图。ICMP的拥塞通知报文包括基于ICMP的拥塞通知报文的类型(8bits)、校验和(16bits)、基于ICMP的拥塞通知报文的代码(8bits)、RDMA数据报文的目的队列对QP的信息(24bits)、互联网头部和64位的原始数据报文。由于特定长度为32bits,因此需要填充(padding)8bits。
表3
在一些实施例中,网络节点根据RDMA数据报文在队列中积压的数量和该RDMA数据报文所在队列的队列门限,确定网络是否拥塞。在RDMA数据报文在队列中积压的数量大于该RDMA数据报文所在队列的队列门限,确定网络发生拥塞。其中不同队列所对应的队列门限不同。
在一些实施例中,在检测到网络拥塞的情况下,网络节点读取RDMA数据报文对应的IP层报文头,确定RDMA数据报文的目的队列对QP的信息。
示例性的,图7为本申请实施例提供的IP层报文头的结构示意图。如图7所示,其中RDMA数据报文的目的队列对QP的信息可以占用IP层报文头的options字段部分。
S103、网络节点向发送端发送基于ICMP的拥塞通知报文;相应的,发送端接收网络节点发送的基于ICMP的拥塞通知报文。
其中,基于ICMP的拥塞通知报文用于通知发送端降低RDMA数据报文所属数据流的发送速度。
在一些实施例中,当接收到基于ICMP的拥塞通知报文时,网络节点根据RDMA数据报文所属的数据流在网络节点中所属的队列的队列深度,确定基于ICMP的拥塞通知报文的发送周期,进而按照所确定的发送周期,将基于ICMP的拥塞通知报文发送至发送端。具体地,网络节点所确定的基于ICMP的拥塞通知报文的发送周期与RDMA数据报文所属的数据流在网络节点中所属的队列的队列深度成反比。
在一些实施例中,队列深度大于预设长度,说明网络拥塞程度较为严重,则可确定的基于ICMP的拥塞通知报文的发送周期为第一周期;如果队列深度小于预设长度,说明网络拥塞程度较轻,则可确定的基于ICMP的拥塞通知报文的发送周期为第二周期。其中,预设长度可根据经验值确定,该第一周期小于第二周期。
基于此,在网络节点接收到RDMA数据报文并检测到网络拥塞的情况下,网络节点构建基于互联网控制消息协议ICMP的拥塞通知报文。这样,网络节点可以直接通过IP层向发送端发送基于ICMP的拥塞通知报文。避免了网络节点升级支持对RDMA传输层协议的处理能力,同时能够加快拥塞反馈的速度,避免进一步拥塞恶化。
可以理解的是,上述方法可以由网络拥塞通知装置实现。网络拥塞通知装置为了实现上述功能,其包含了执行各个功能相应的硬件结构或软件模块。本领域技术人员应该很容易感知到,结合本文中所申请的实施例描述的各示例的单元及算法步骤,本申请实施例能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请实施例的范围。
本申请实施例根据上述方法示例对上述网络拥塞通知装置等进行功能单元的划分,例如,可以对应各个功能划分各个功能单元。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。需要说明的是,本申请实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
在采用对应各个功能划分各个功能模块的情况下,图8示出了上述实施例中所涉及的网络拥塞通知装置的一种可能的结构示意图,应用于远程直接数据存取RDMA网络的网络节点。如图8所示,网络拥塞通知装置80包括接收模块81、处理模块82和发送模块83。
其中,接收模块81,用于接收发送端发送的远程直接数据存取RDMA数据报文;
处理模块82,用于在检测到网络拥塞的情况下,构建基于互联网控制消息协议ICMP的拥塞通知报文;
发送模块83,用于向发送端发送基于ICMP的拥塞通知报文,基于ICMP的拥塞通知报文用于通知发送端降低RDMA数据报文所属数据流的发送速度。
在一些实施例中,基于ICMP的拥塞通知报文包括基于ICMP的拥塞通知报文的类型、基于ICMP的拥塞通知报文的代码和RDMA数据报文的目的队列对QP的信息。
在一些实施例中,基于ICMP的拥塞通知报文的类型与ICMP协议中的源抑制消息的类型相同,基于ICMP的拥塞通知报文的代码为对ICMP协议中的源抑制消息的代码进行扩展得到。
在一些实施例中,处理模块82,还用于在检测到网络拥塞的情况下,读取RDMA数据报文对应的IP层报文头,确定RDMA数据报文的目的队列对QP的信息。
图9示出了上述实施例中所涉及的网络拥塞通知装置的另一种可能的结构示意图,应用于远程直接数据存取RDMA网络的发送端。如图9所示,网络拥塞通知装置90包括发送模块91和处理模块92。
发送模块91,用于向网络节点发送RDMA数据报文;
处理模块92,用于响应于接收到网络节点发送的基于ICMP的拥塞通知报文,降低RDMA数据报文所属数据流的发送速度。
当然,网络拥塞通知装置包括但不限于上述所列举的功能模块。并且,上述功能模块的具体所能够实现的功能也包括但不限于上述实例的方法步骤对应的功能,网络拥塞通知装置的其他模块的详细描述可以参考其所对应方法步骤的详细描述,本申请实施例这里不再赘述。
在采用硬件的形式实现上述集成的模块的功能的情况下,本申请实施例还提供了又一种通信装置可能的结构,该通信装置用于执行本申请实施例所提供的网络拥塞通知方法。如图10所示,该通信装置100包括:通信接口103、处理器102和总线104。可选的,该通信装置还可以包括存储器101。
处理器102,可以是实现或执行结合本申请实施例所描述的各种示例性的逻辑方框,模块和电路。该处理器102可以是中央处理器,通用处理器,数字信号处理器,专用集成电路,现场可编程门阵列或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请实施例所描述的各种示例性的逻辑方框,模块和电路。处理器102也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
通信接口103,用于与其他设备通过通信网络连接。该通信网络可以是以太网,无线接入网,无线局域网(wireless local area networks,WLAN)等。
存储器101,可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically erasable programmable read-only memory,EEPROM)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
作为一种可能的实现方式,存储器101可以独立于处理器102存在,存储器101可以通过总线104与处理器102相连接,用于存储指令或者程序代码。处理器102调用并执行存储器101中存储的指令或程序代码时,能够实现本申请实施例提供的网络拥塞通知方法。
另一种可能的实现方式中,存储器101也可以和处理器102集成在一起。
总线104,可以是扩展工业标准结构(extended industry standardarchitecture,EISA)总线等。总线104可以分为地址总线、数据总线、控制总线等。为便于表示,图10中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
本申请的一些实施例提供了一种计算机可读存储介质(例如,非暂态计算机可读存储介质),该计算机可读存储介质中存储有计算机程序指令,计算机程序指令在计算机上运行时,使得计算机执行如上述实施例中任一实施例所述的网络拥塞通知方法。
在一示例性的实施方式中,该计算机可以是上述网络拥塞通知装置,本申请对计算机的具体形式不作限制。
在一些示例中,上述计算机可读存储介质可以包括,但不限于:磁存储器件(例如,硬盘、软盘或磁带等),光盘(例如,压缩盘(Compact Disk,CD)、数字通用盘(DigitalVersatile Disk,DVD)等),智能卡和闪存器件(例如,可擦写可编程只读存储器(ErasableProgrammable Read-Only Memory,EPROM)、卡、棒或钥匙驱动器等)。本申请描述的各种计算机可读存储介质可代表用于存储信息的一个或多个设备和/或其它机器可读存储介质。术语“机器可读存储介质”可包括但不限于,无线信道和能够存储、包含和/或承载指令和/或数据的各种其它介质。
本申请实施例提供一种包含指令的计算机程序产品,当该计算机程序产品在计算机上运行时,使得该计算机执行上述实施例中任一实施例所述的网络拥塞通知方法。
以上,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应该以权利要求的保护范围为准。
Claims (12)
1.一种网络拥塞通知方法,其特征在于,应用于远程直接数据存取RDMA网络的网络节点,所述网络节点用于转发发送端和接收端之间的报文;所述方法包括:
接收所述发送端发送的远程直接数据存取RDMA数据报文;
在检测到网络拥塞的情况下,构建基于互联网控制消息协议ICMP的拥塞通知报文;
向所述发送端发送所述基于ICMP的拥塞通知报文,所述基于ICMP的拥塞通知报文用于通知所述发送端降低所述RDMA数据报文所属数据流的发送速度。
2.根据权利要求1所述的方法,其特征在于,所述基于ICMP的拥塞通知报文包括所述基于ICMP的拥塞通知报文的类型、所述基于ICMP的拥塞通知报文的代码和所述RDMA数据报文的目的队列对QP的信息。
3.根据权利要求2所述的方法,其特征在于,所述基于ICMP的拥塞通知报文的类型与ICMP协议中的源抑制消息的类型相同,所述基于ICMP的拥塞通知报文的代码为对ICMP协议中的源抑制消息的代码进行扩展得到。
4.根据权利要求2所述的方法,其特征在于,所述方法还包括:
在检测到网络拥塞的情况下,读取所述RDMA数据报文对应的IP层报文头,确定所述RDMA数据报文的目的队列对QP的信息。
5.一种网络拥塞通知方法,其特征在于,应用于远程直接数据存取RDMA网络的发送端,所述方法包括:
向网络节点发送RDMA数据报文;
响应于接收到所述网络节点发送的基于ICMP的拥塞通知报文,降低所述RDMA数据报文所属数据流的发送速度。
6.一种网络拥塞通知装置,其特征在于,应用于RDMA网络的网络节点,所述网络节点用于转发发送端和接收端之间的报文;所述装置包括:
接收模块,用于接收所述发送端发送的远程直接数据存取RDMA数据报文;
处理模块,用于在检测到网络拥塞的情况下,构建基于互联网控制消息协议ICMP的拥塞通知报文;
发送模块,用于向所述发送端发送所述基于ICMP的拥塞通知报文,所述基于ICMP的拥塞通知报文用于通知所述发送端降低所述RDMA数据报文所属数据流的发送速度。
7.根据权利要求6所述的装置,其特征在于,所述基于ICMP的拥塞通知报文包括所述基于ICMP的拥塞通知报文的类型、所述基于ICMP的拥塞通知报文的代码和所述RDMA数据报文的目的队列对QP的信息。
8.根据权利要求7所述的装置,其特征在于,
所述基于ICMP的拥塞通知报文的类型与ICMP协议中的源抑制消息的类型相同,所述基于ICMP的拥塞通知报文的代码为对ICMP协议中的源抑制消息的代码进行扩展得到。
9.根据权利要求7所述的装置,其特征在于,
所述处理模块,还用于在检测到网络拥塞的情况下,读取所述RDMA数据报文对应的IP层报文头,确定所述RDMA数据报文的目的队列对QP的信息。
10.一种网络拥塞通知装置,其特征在于,应用于RDMA网络中的发送端,所述装置包括:
发送模块,用于向网络节点发送所述RDMA数据报文;
处理模块,用于响应于接收到所述网络节点发送的基于ICMP的拥塞通知报文,降低所述RDMA数据报文所属数据流的发送速度。
11.一种通信装置,其特征在于,包括:存储器和处理器;存储器和处理器耦合;存储器用于存储所述处理器可执行的指令;所述处理器执行所述指令时执行如权利要求1至5中任一项所述的方法。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机指令,当所述计算机指令在电子设备上运行时,使得所述电子设备执行如权利要求1至5中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311245073.2A CN117354253A (zh) | 2023-09-25 | 2023-09-25 | 一种网络拥塞通知方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311245073.2A CN117354253A (zh) | 2023-09-25 | 2023-09-25 | 一种网络拥塞通知方法、装置及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117354253A true CN117354253A (zh) | 2024-01-05 |
Family
ID=89365927
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311245073.2A Pending CN117354253A (zh) | 2023-09-25 | 2023-09-25 | 一种网络拥塞通知方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117354253A (zh) |
-
2023
- 2023-09-25 CN CN202311245073.2A patent/CN117354253A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220311544A1 (en) | System and method for facilitating efficient packet forwarding in a network interface controller (nic) | |
US11934340B2 (en) | Multi-path RDMA transmission | |
US20220263767A1 (en) | Network Congestion Notification Method, Agent Node, and Computer Device | |
US7492710B2 (en) | Packet flow control | |
KR100651571B1 (ko) | 데이터 관리 방법, 시스템 및 컴퓨터 판독가능한 기록 매체 | |
US10791054B2 (en) | Flow control and congestion management for acceleration components configured to accelerate a service | |
CN111800351B (zh) | 由交换机进行的拥塞通知分组生成 | |
US11750699B2 (en) | Small message aggregation | |
CN107342906B (zh) | 一种大象流的检测方法、设备及系统 | |
US8953631B2 (en) | Interruption, at least in part, of frame transmission | |
US20220303217A1 (en) | Data Forwarding Method, Data Buffering Method, Apparatus, and Related Device | |
US20070291782A1 (en) | Acknowledgement filtering | |
US10326696B2 (en) | Transmission of messages by acceleration components configured to accelerate a service | |
US11240162B1 (en) | Method for remote direct memory access (RDMA) congestion control over an ethernet network | |
WO2020187124A1 (zh) | 数据处理方法及装置 | |
CN107231316B (zh) | 报文的传输方法及装置 | |
CN117354253A (zh) | 一种网络拥塞通知方法、装置及存储介质 | |
CN117221225A (zh) | 一种网络拥塞通知方法、装置及存储介质 | |
WO2024021878A1 (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 |