CN113709057B - 网络拥塞的通告方法、代理节点、网络节点及计算机设备 - Google Patents

网络拥塞的通告方法、代理节点、网络节点及计算机设备 Download PDF

Info

Publication number
CN113709057B
CN113709057B CN202111036600.XA CN202111036600A CN113709057B CN 113709057 B CN113709057 B CN 113709057B CN 202111036600 A CN202111036600 A CN 202111036600A CN 113709057 B CN113709057 B CN 113709057B
Authority
CN
China
Prior art keywords
message
queue pair
pair number
network
congestion notification
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
Application number
CN202111036600.XA
Other languages
English (en)
Other versions
CN113709057A (zh
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202111036600.XA priority Critical patent/CN113709057B/zh
Publication of CN113709057A publication Critical patent/CN113709057A/zh
Application granted granted Critical
Publication of CN113709057B publication Critical patent/CN113709057B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/356Switches specially adapted for specific applications for storage area networks
    • H04L49/358Infiniband Switches
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/26Flow control; Congestion control using explicit feedback to the source, e.g. choke packets
    • H04L47/263Rate modification at the source after receiving feedback
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/11Identifying congestion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/11Identifying congestion
    • H04L47/115Identifying congestion using a dedicated packet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/129Avoiding congestion; Recovering from congestion at the destination endpoint, e.g. reservation of terminal resources or buffer space
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/30Flow control; Congestion control in combination with information about buffer occupancy at either end or at transit nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/80Actions related to the user profile or the type of traffic
    • H04L47/803Application aware
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/565Conversion or adaptation of application format or content
    • H04L67/5651Reducing the amount or size of exchanged application data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields

Landscapes

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

Abstract

本公开提供了一种网络拥塞的通告方法及网络节点,属于数据通讯领域。网络节点接收远程直接内存访问RDMA报文,所述RDMA报文包括对应发送端的源队列对编号和对应接收端的目的队列对编号,所述网络节点用于转发所述发送端和所述接收端之间的报文。当检测到网络拥塞时,所述网络节点生成拥塞通告报文,所述拥塞通告报文包括所述源队列对编号。所述网络节点向所述发送端发送所述拥塞通告报文。由于本公开中网络节点在检测到网络发生拥塞时,立即向发送端发送拥塞通告报文,使得发送端能够及时降低RDMA报文所属的数据流的发送速率,从而避免丢失该数据流的后续报文。

Description

网络拥塞的通告方法、代理节点、网络节点及计算机设备
相关申请的交叉引用
本公开为2017年8月11日提交,申请号为201710687388.0,发明名称为“一种网络拥塞的通告方法、代理节点及计算机设备”的中国专利申请的分案,其全部内容通过引用结合在公开中。
技术领域
本公开涉及数据通讯技术领域,特别涉及一种网络拥塞的通告方法、代理节点、网络节点及计算机设备。
背景技术
远程直接内存访问(remote direct memory access,RDMA)为一种数据传输技术,由于无需借助计算机的处理器、高速缓存或者操作系统等,通过网络即可从其他计算机的内存中直接读取数据,因而降低了网络传输中的数据处理延迟。然而,RDMA数据中心通常采用克劳斯(CLOS)方式进行组网,网络中交换机上下行接口带宽不对称,当数据在网络中传输时,经常会发生网络拥塞,进而影响RDMA的通讯性能。为了避免网络拥塞,提升RDMA通讯性能,需要及时地对网络拥塞进行通告。
当前对网络拥塞进行通告时,主要采用如下方法:在连接管理(connectionmanagement,CM)过程中,发送端和接收端分别获取对端的队列对编号;当需要向接收端发送数据时,发送端基于链路层传输协议,生成第一数据报文,该第一数据报文的目的队列对编号为接收端的队列对编号,该第一数据报文的网络互联协议(Internet Protocol,IP)头部设置有显示拥塞通知(Explicit Congestion Notification,ECN)位,该ECN位用于标识第一数据报文具有ECN能力,且该ECN位上的不同数值表明网络的不同状态;发送端将第一数据报文发送至网络节点;当接收到第一数据报文且检测到网络拥塞时,网络节点将第一数据报文IP头部中ECN位上的数值更改为拥塞状态对应的数值,得到处理后的第一数据报文,并将处理后的第一数据报文发送至接收端;当接收到处理后的第一数据报文并读取到ECN位上的数值为拥塞状态对应的数值,接收端获取源(发送端)队列对编号,生成第一拥塞通告报文,该第一拥塞通告报文的目的队列对编号为该源(发送端)队列对编号,接收端通过网络将该第一拥塞通告报文发送至发送端,该第一拥塞通告报文用于通知发送端获取该第一拥塞通过报文的目的队列对编号,并在该第一拥塞通告报文的目的队列对编号与发送端的队列对编号相同时,减小第一数据报文所属的数据流的发送速率。
上述方案中,当检测到网络拥塞时,在发送端与接收端之间的传输链路上的各个网络节点无法向发送端发送第一拥塞通告报文,只能由接收端进行发送,因而发送端无法及时减小第一数据报文所属的数据流的发送速率,使得第一数据报文所属的数据流的后续报文在传输过程中丢失。
发明内容
为了解决现有技术的问题,本公开实施例提供了一种网络拥塞的通告方法、代理节点及计算机设备。所述技术方案如下:
第一方面,提供了一种网络拥塞的通告方法,所述方法包括:
在数据传输过程中,代理节点接收发送端的第一数据报文,该第一数据报文携带目的队列对编号。代理节点根据第一数据报文中的目的队列对编号,获取第一数据报文的源队列对编号,并将该源队列对编号添加到第一数据报文中,得到第二数据报文,进而通过网络节点将第一数据报文发送至接收端。在对第二数据报文的转发过程中,当检测到网络拥塞时,网络节点根据第二数据报文,生成第一拥塞通告报文,进而将该第一拥塞通告报文发送至代理节点,该第一拥塞通告报文的目的队列对编号实际上为第二数据报文的源队列对编号。当接收到第一拥塞通告报文时,代理节点将第一拥塞通告报文发送至发送端,以使发送端在第一拥塞通告报文的目的队列对编号与发送端的队列对编号相同时,降低第一数据报文所属的数据流的发送速率。
本公开实施例示出的方案,在第一数据报文的传输过程中,代理节点将源队列对编号添加到第一数据报文中,当检测到网络拥塞时,网络节点根据该第一数据报文,生成第一拥塞通告报文,进而借助代理节点的转发将第一拥塞通告报文发送至发送端,使得发送端能够及时降低第一数据报文所属的数据流的发送速率,以避免丢失该数据流的后续报文。
在本公开的第一种可能实现方式中,代理节点维护一个队列对跟踪表,该队列对跟踪表的每个表项存储有目的队列编号与源队列对编号之间的对应关系,因而当接收到第一数据报文时,代理节点可根据目的队列对编号,从队列对跟踪表中,查找到目的队列对编号对应的源队列对编号,该所查找到的源队列对编号即为第一数据报文的源队列对编号。
本公开实施例示出的方案,提供了一种源对队列对编号的获取方式。
在本公开的第二种可能实现方式中,为了实现接收端和发送端之间的数据传输,发送端和接收端需要预先建立连接,在连接建立过程中,代理节点可跟踪发送端所发送的连接请求报文,并将从连接请求报文的基础传输头部(Base Transport Header,BTH)中提取的目的队列对编号作为目的队列对编号,同时代理节点还可跟踪接收端所发送的连接应答报文,并将从连接应答报文的BTH中提取的目的队列对编号作为源队列对编号,进而通过记录源队列对编号与目的队列对编号之间的对应关系,得到队列对跟踪表。
本公开实施例示出的方案,代理节点通过跟踪发送端和接收端在连接建立过程中所发送的报文,建立队列对跟踪表,从而在接收到第一数据报文时,能够根据第一数据报文的目的队列对编号,查找到对应的源队列对编号。
在本公开的第三种可能实现方式中,代理节点在获取到源队列对编号后,可将源队列对编号拆分为第一部分和第二部分,并将源队列对编号的第一部分添加到第一数据报文的用户数据报协议(User Datagram Protocol,UDP)头部的校验和字段中,将源队列对编号的第二部分添加到第一数据报文的基础传输头部BTH的预留字段中,从而得到第二数据报文。
本公开实施例示出的方案,代理节点通过将源队列对编号扩展到第一数据报文中,使得第一数据报文中携带有源队列对编号,从而在网络拥塞时,可根据该源队列对编号快速地将第一拥塞通告报文发送至发送端,提高了第一拥塞通告报文的传输速率。
在本公开的第四种可能实现方式中,当接收到第二数据报文并检测到网络拥塞时,网络节点解析第二数据报文,得到第二数据报文的源媒体访问控制(Media AccessControl,MAC)地址、第二数据报文的目的MAC地址、第二数据报文的源网络之间的互联协议(Internet Protocol,IP)地址、第二数据报文的目的IP地址及第二数据报文的源队列对编号,基于解析结果,网络节点通过将第二数据报文的源MAC地址作为第一拥塞通告报文的目的MAC地址、将第二数据报文的目的MAC地址作为第一拥塞通告报文的源MAC地址、将第二数据报文的源IP地址作为第一拥塞通告报文的目的IP地址、将第二数据报文的目的IP地址作为第一拥塞通告报文的源IP地址、将第二数据报文的源队列对编号作为第一拥塞通告报文的目的队列对编号,得到第一拥塞通告报文。
在本公开的第五种可能实现方式中,第一拥塞通告报文包括拥塞时刻数据流在网络节点中所属的队列的队列深度,基于该队列深度,代理节点能够确定出第一拥塞通告报文的发送周期,进而在后续对第一拥塞通告报文的发送过程中,可按照确定的发送周期进行发送。
本公开实施例示出的方案,代理节点根据拥塞时刻数据流在网络节点中所属的队列的队列深度,可获知当前网络的拥塞程度,进而根据网络的拥塞程度所确定的发送周期,向发送端发送第一拥塞通告报文,使得发送端能够根据网络的拥塞程度确定第一数据报文所属数据流的发送速率,从而在避免网络拥塞的前提下,采用最大的发送速率发送第一数据报文,以降低数据传输过程中的时延。
第二方面,提供了一种网络拥塞的通告方法,所述方法包括:
在数据传输过程中,代理节点接收发送端发送的携带目的队列对编号的第一数据报文,并通过网络节点将第一数据报文发送至接收端。在对第二数据报文的转发过程中,当检测到网络拥塞时,网络节点根据第一数据报文,生成第二拥塞通告报文,并将第二拥塞通告报文发送至代理节点,该第二拥塞通告报文的目的队列对编号实际上为第一数据报文的目的队列对编号。当接收到第二拥塞通告报文时,代理节点根据第二拥塞通告报文的目的队列对编号,获取该目的队列对编号对应的源队列对编号,并用该源队列对编号替换第二拥塞通告报文中的目的队列对编号,得到第一拥塞通告报文,进而将第一拥塞通告报文发送至发送端,以使发送端在第一拥塞通告报文的目的队列对编号与发送端的队列对编号相同时,降低第一数据报文所属的数据流的发送速率。
本公开实施例示出的方案,在第一数据报文的传输过程中,当检测到网络拥塞时,网络节点生成第二拥塞通告报文,并将第二拥塞通告报文发送至代理节点,代理节点采用第一数据报文的源队列对编号替换第二拥塞通告报文的目的队列对编号后,得到第一拥塞通告报文,进而将第一拥塞通告报文发送至发送端,使得发送端能够及时降低第一数据报文所属的数据流的发送速率,以避免丢失该数据流的后续报文。
在本公开的第一种可能实现方式,当接收到第一数据报文并检测到网络拥塞时,网络节点解析第一数据报文,得到第一数据报文的源媒体访问控制MAC地址、第一数据报文的目的MAC地址、第一数据报文的源网络之间的互联协议IP地址、第一数据报文的目的IP地址及第一数据报文的目的队列对编号,基于解析结果,网络节点通过将第一数据报文的源MAC地址作为第二拥塞通告报文的目的MAC地址、将第一数据报文的目的MAC地址作为第二拥塞通告报文的源MAC地址、将第一数据报文的源IP地址作为第二拥塞通告报文的目的IP地址、将第一数据报文的目的IP地址作为第二拥塞通告报文的源IP地址、将第一数据报文的目的队列对编号作为第二拥塞通告报文的目的队列对编号,可得到第二拥塞通告报文。
在本公开的第二种可能实现方式,代理节点维护一个队列对跟踪表,该队列对跟踪表的每个表项存储有目的队列编号与源队列对编号之间的对应关系,因而当接收到第一数据报文时,代理节点可根据目的队列对编号,从队列对跟踪表中,查找到目的队列对编号对应的源队列对编号,该所查找到的源队列对编号即为第一数据报文的源队列对编号。
本公开实施例示出的方案,提供了一种源对队列对编号的获取方式。
在本公开的第三种可能实现方式,为了实现接收端和发送端之间的数据传输,发送端和接收端需要预先建立连接,在连接建立过程中,代理节点可跟踪发送端所发送的连接请求报文,并将从连接请求报文的基础传输头部中提取的目的队列对编号作为目的队列对编号,同时代理节点还可跟踪接收端所发送的连接应答报文,并将从连接应答报文的BTH中提取的目的队列对编号作为源队列对编号,进而建立源队列对编号与目的队列对编号之间的对应关系,得到队列对跟踪表。
本公开实施例示出的方案,代理节点通过跟踪发送端和接收端在连接建立过程中所发送的报文,建立队列对跟踪表,从而在接收到第一数据报文时,能够根据第一数据报文的目的队列对编号,查找到对应的源队列对编号。
在本公开的第四种可能实现方式,第一拥塞通告报文包括拥塞时刻数据流在网络节点中所属的队列的队列深度,基于该队列深度,代理节点能够确定出第一拥塞通告报文的发送周期,进而在后续对第一拥塞通告报文的发送过程中,可按照确定的发送周期进行发送。
本公开实施例示出的方案,代理节点根据拥塞时刻数据流在网络节点中所属的队列的队列深度,可获知当前网络的拥塞程度,进而根据网络的拥塞程度所确定的发送周期,向发送端发送第一拥塞通告报文,使得发送端能够根据网络的拥塞程度确定第一数据报文所属数据流的发送速率,从而在避免网络拥塞的前提下,采用最大的发送速率发送第一数据报文,以降低数据传输过程中的时延。
第三方面,提供了一种用于对网络拥塞进行通告的代理节点,该代理节点包括用于实现第一方面所述的网络拥塞的通告方法的单元,例如,报文接收单元、编号获取单元、编号添加单元及报文发送单元。
第四方面,提供了一种用于对网络拥塞进行通告的代理节点,该代理节点包括用于实现第二方面所述的网络拥塞的通告方法的单元,例如,报文接收单元、报文发送单元、编号获取单元、编号替换单元。
第五方面,提供了一种网络拥塞通告方法。网络节点接收远程直接内存访问RDMA报文,所述RDMA报文包括对应发送端的源队列对编号和对应接收端的目的队列对编号,所述网络节点用于转发所述发送端和所述接收端之间的报文。当检测到网络拥塞时,所述网络节点生成拥塞通告报文,所述拥塞通告报文包括所述源队列对编号。所述网络节点向所述发送端发送所述拥塞通告报文。
在一种可能实现方式中,所述RDMA报文还包括第一显式拥塞通知ECN位,所述第一ECN位的值指示所述发送端具有ECN能力,所述拥塞通告报文还包括第二ECN位,所述第二ECN位的值指示所述网络处于拥塞状态。
在另一种可能的实现方式中,所述拥塞通告报文进一步包括所述RDMA报文所属的数据流所在的队列在拥塞时刻的队列深度。
在另一种可能的实现方式中,所述拥塞通告报文的源MAC地址为所述RDMA报文的目的MAC地址,所述拥塞通告报文的目的MAC地址为所述RDMA报文的源MAC地址,所述拥塞通告报文的源IP地址为所述RDMA报文的目的IP地址,所述拥塞通告报文的目的IP地址为所述RDMA报文的源IP地址,所述拥塞通告报文的目的队列对编号为所述RDMA报文的源队列对编号。
第六方面,提供了一种网络拥塞通告方法。发送端生成远程直接内存访问RDMA报文,所述RDMA报文包括对应发送端的源队列对编号和对应接收端的目的队列对编号。所述发送端通过网络节点向所述接收端发送所述RDMA报文。所述发送端接收拥塞通告报文,所述拥塞通告报文是由所述网络节点在检测到网络拥塞时生成的,所述拥塞通告报文的目的队列对编号为所述RDMA报文的源队列对编号。所述发送端根据所述拥塞通告报文降低所述RDMA报文所属的数据流的发送速率。
在一种可能实现方式中,所述RDMA报文还包括第一显式拥塞通知ECN位,所述第一ECN位的值指示所述发送端具有ECN能力;所述拥塞通告报文还包括第二ECN位,所述第二ECN位的值指示所述网络处于拥塞状态。
在另一种可能的实现中,发送端包括代理节点。在生成所述RDMA报文时,所述发送端生成第一数据报文,所述第一数据报文包括所述目的队列对编号。所述代理节点根据所述目的队列对编号获取所述源队列对编号。所述代理节点为所述第一数据报文添加所述源队列对编号以得到所述RDMA报文。
在另一种可能的实现中,所述代理节点将所述源队列对编号拆分为第一部分和第二部分;
所述代理节点将所述第一部分添加到所述第一数据报文的UDP头部的校验和字段中,并将所述第二部分添加到所述第一数据报文的基础传输头部BTH的预留字段中,以得到所述RDMA报文。
第七方面、提供了一种计算机设备,包括:存储器、处理器、通信接口及总线;
其中,存储器、处理器及通信接口通过总线连接,存储器用于存放计算计算机指令,处理器用于执行存储器存储的计算机指令;当计算机设备运行时,处理器运行计算机指令,使得计算机设备执行上述第一方面、第二方面、第五方面或第六方面所述的网络拥塞的通告方法。
第八方面,提供了一种存储介质,所述存储介质中至少存储有至少一条指令,所述至少一条指令由处理器加载并执行以实现如上述第一方面、第二方面、第五方面或第六方面所述的网络拥塞的通告方法。
附图说明
图1是本公开实施例示出的一种RDMA通讯流程的示意图;
图2是本公开实施例示出的一种RDMA协议栈的示意图;
图3是本公开实施例示出的一种CLOS组网结构的示意图;
图4是本公开实施例示出的一种RDMA拥塞场景的示意图;
图5是本公开实施例示出的提供的网络拥塞的通告方法所涉及的实施环境;
图6是本公开实施例示出的代理节点在系统中的位置示意图;
图7是本公开实施例示出的代理节点在系统中的位置示意图;
图8是本公开实施例提供的一种网络拥塞的通告方法的流程图;
图9是本公开实施例提供的一种网络拥塞的通告方法的流程图;
图10是本公开实施例提供的一种用于对网络拥塞进行通告的代理节点的结构示意图;
图11是本公开实施例提供的一种用于对网络拥塞进行通告的代理节点的结构示意图;
图12是本公开实施例提供的一种计算计设备的结构示意图。
具体实施方式
为使本公开的目的、技术方案和优点更加清楚,下面将结合附图对本公开实施方式作进一步地详细描述。
为了解决网络传输过程中服务器端数据处理的延迟,本公开实施例采用RDMA技术进行数据传输。由于RDMA技术无需借助计算机的处理器,通过网络即可将数据直接传入到计算机的存储区,因而改进了系统性能。
图1为RDMA的通讯流程的示意图,参见图1,RDMA的通讯涉及两个计算机系统,其中,一个计算机系统包括服务器A和通道适配卡(channel adapter,CA)A,另一个计算机系统包括服务器B和通道适配卡B。每个通道适配卡被划分为传输层、网络层、链路层及物理层等。
在每个计算机系统内部,服务器的中央处理器(central processing unit,CPU)通过队列对(queue pair,QP)与通道适配卡进行通讯。该队列对包括发送队列(sendqueue)和接收队列(receive queue)。其中,发送队列用于CPU向通道适配卡发送命令,该命令称为工作队列元素(work queue element,WQE);接收队列用于CPU接收通道适配卡的命令,该命令称为完成队列元素(complete queue element,CQE)。当执行完CPU发送的WQE,通道适配卡通过向CPU发送CQE反馈完成情况。
在两个计算机系统之间,服务器A通过端口与网络节点的端口建立物理连接,并基于所建立的连接,与网络节点通讯;服务器B通过端口与网络节点的端口建立物理连接,并基于所建立的连接,与网络节点进行通讯。网络内的各个节点,可通过端口彼此建立连接,并基于所建立的连接进行报文的转发。基于服务器A与网络节点之间、网络节点与网络节点之间、网络节点与服务器B之间所连接网络连接,通道适配卡A和通道适配卡B通过彼此发送携带目的队列对编号的无限带宽(Infiniband,IB)报文进行通讯。
图2为RDMA的协议栈的示意图,由图2可知,RDMA采用的是应用层协议,其传输层协议可以为Infiniband传输层协议等,其网络层协议可以为Infiniband网络层协议、UDP/IP协议、其底层链路层协议可以为Infiniband链路层协议、基于以太网的RoCE协议及基于以太网的RoCEv2协议等。
其中,Infiniband协议为一种分层协议(类似TCP/IP协议),每层负责不同的功能,下层为上层服务,且不同层次相互独立。Infiniband协议、基于以太网的RoCE协议及基于以太网的RoCEv2协议的RDMA协议报文均包括基础传输头(base transport header,BTH)和IB净荷(payload)。
其中,BTH的长度为12比特,主要包括包序列号(packet sequence number,PSN),目的队列对(destination QP)和报文操作码(packet OPcode)。其中,目的队列对用于指示接收端的QP编号。
目前RDMA采用CLOS架构进行组网,如图3所示为应用spine-leaf方式组建的CLOS架构的数据中心网络。采用CLOS架构进行组网时,由于交换机上下行接口带宽不对称,且上行接口(交换机中用于连接路由器或上一级交换机的接口)的数量小于下行接口(交换机中用于连接主机的接口)的数量,因此,在数据传输过程中,会存在网络拥塞的情况。图4(a)和图4(b)示出了RDMA网络拥塞的场景图,图中交换机每个上行接口带宽为40GE,每个下行接口带宽为10GE。参见图4(a),在接收端向发送端发送数据的场景下,当通过5个下行接口接收的数据都发向一个上行接口时,将发生网络拥塞。参见图4(b),在发送端向接收端发送数据的场景下,当通过一个上行接口向一个下行接口发送数据时,也将发生网络拥塞。当发生网络拥塞时,RDMA通讯性能会急剧下降。因此,为了提升RDMA通讯性能,在采用RDMA技术进行数据传输时,需要对网络拥塞进行通告。现有的网络拥塞的通告方法在检测到网络拥塞时,将数据报文发送至接收端,由接收端生成拥塞通告报文,进而将生成的拥塞通告报文发送至发送端。由于在检测到网络拥塞时,发送端未能及时降低数据报文的发送速率,使得网络设备缓存溢出,进一步导致数据在传输过程中丢失。
为了及时通告发送端网络状态,本公开实施例提供了一种网络拥塞的通告方法,该方法中网络节点在接收到数据报文且检测到网络拥塞时,通过代理节点向发送端发送拥塞通告报文,以通知发送端当前的网络状态,使得发送端减小数据报文的发送速率,以缓解网络拥塞状态,从而达到避免数据丢失的目的。
图5示出了本公开实施例提供的网络拥塞的通告方法所涉及的系统,参见图5,该系统包括:发送端、代理节点、网络节点及接收端。
其中,发送端和接收端可以为网络中的计算机,且该发送端和接收端地位并不是固定不变的,发送端可能为下一次数据传输过程中的接收端,接收端可能为下一次数据传输过程中的发送端。
网络节点可以为网络中的交换机、路由器等,本公开实施例不对网络节点的类型作具体的限定。
代理节点为网络中的硬件单元,可位于发送端的内部,也可以位于网络节点的内部。参见图6,当代理节点位于发送端的内部时,其部署形式可以为网络接口卡(networkinterface card,NIC)特定用途集成电路(application-specific integrated circuit,ASIC)上的硬件逻辑、NIC上的微码或者NIC现场可编程逻辑门电路(field-programmablegate array,FPGA)芯片的逻辑代码。图6中虚线示出了代理节点的工作过程,即在发送端内部获取到接收端的数据报文后,将接收端的数据报文发送至发送端的RDMA应用(application,APP);在发送端内部获取到发送端的数据报文后,通过网络将该数据报文发送至接收端。参见图7,当代理节点位于网络节点的内部时,其部署形式可以为交换机ASIC上的硬件逻辑、交换机芯片外挂通知点(notification point,NP)上的微码或者交换机芯片外挂FPGA芯片的逻辑代码。图7中的虚线示出了代理节点的工作过程,即获取到接收端的数据报文后,通过网络将接收端的数据报文发送至发送端;获取到发送端的数据报文后,通过网络将发送端的数据报文发送至接收端。
基于图5所示的系统,本公开实施例提供了一种网络拥塞的通告方法,参见图8,本公开实施例提供的方法流程包括:
801、在发送端向接收端发送第一数据报文的过程中,代理节点接收发送端的第一数据报文。
当发送端需要向接收端发送数据时,发送端获取发送端的媒体访问控制(mediaaccess control,MAC)地址、发送端的IP地址、接收端的MAC地址、接收端的IP地址及接收端目的队列对编号,并基于RDMA报文格式,生成标准的RDMA数据报文。为了便于查看当前的网络状态,发送端还将在RDMA数据报文的IP头部设置ECN位,该ECN位用于标识RDMA发送端具有ECN能力,且该ECN位上的不同数值表明网络的不同状态,例如,可用数值10表明网络处于正常状态,可用数值11表明网络处于拥塞状态等。初始时刻,默认网络状态为正常状态,也即是ECN位上的数值为10。下述表1为所生成的标准RDMA数据报文的报文格式:
表1
Figure BDA0003247251650000081
其中,MAC header为MAC头部字段;IP header为IP头部字段,该IP header的ECN标识位上的数值为10;IB transport header为IB传输头部字段;Data为待发送的数据;iCRC为数据传输检错字段;Eth帧校验序列(frame check sequence,FCS)为校验字段,用于存储iCRC校验值。
需要说明的是,由于本公开涉及到多个RDMA数据报文,为了便于将不同的RDMA数据报文区分开,可将发送端生成的RDMA数据报文,称为第一数据报文,将代理节点根据第一数据报文得到的新数据报文,称为第二数据报文。其中,第一数据报文携带源MAC地址(发送端的MAC地址)、源IP地址(发送端的IP地址)、目的MAC地址(接收端的MAC地址)、目的IP地址(接收端的IP地址)、目的队列对编号等。
在发送端通过网络将第一数据报文发送至接收端的过程中,第一数据报文会经过发送端及网络中的各个网络节点,而代理节点位于发送端内部或网络节点内部,因此,代理节点可接收到第一数据报文,进而处理接收到的第一数据报文。
802、代理节点根据目的队列对编号,获取第一数据报文的源队列对编号。
当接收到第一数据报文时,代理节点通过解析第一数据报文,可得到第一数据报文的目的队列对编号,进而根据该目的队列对编号,获取到第一数据报文的源队列对编号。代理节点根据目的队列对编号,获取第一数据报文的源队列对编号时,包括但不限于如下方式:代理节点根据目的队列对编号,从预先建立的队列对跟踪表中,查找目的队列对编号对应的源队列对编号。其中,队列对跟踪表的每个表项存储目的队列对编号与源队列对编号之间的对应关系。
由于队列对跟踪表为代理节点获取第一数据报文的源队列对编号的关键,因此,在获取第一数据报文的源队列对编号之前,代理节点需要建立队列对跟踪表。队列对跟踪表的建立过程如下:
第一步,代理节点跟踪每对发送端和接收端在连接建立过程中所发送的连接请求报文和连接应答报文。
在互联网技术领域,发送端在将待发送的数据包发送至接收端之前,首先要建立连接,并在建立连接的过程中,获取对端的相关信息。具体地,发送端会向接收端发送连接请求报文,该连接请求报文中携带发送端的MAC地址、发送端的IP地址、发送端的队列对编号等,当接收到连接请求报文时,接收端通过解析连接请求报文,可得到发送端的MAC地址、发送端的IP地址、发送端的队列对编号等,同时接收端也会向发送端发送连接应答报文,该连接应答报文中携带接收端的MAC地址、接收端的IP地址、接收端的队列对编号等,当接收到连接应答报文时,发送端通过解析连接应答报文,可得到接收端的MAC地址、接收端的IP地址、接收端的队列对编号等。
在发送端和接收端建立连接的过程中,连接请求报文和连接应答报文会经过发送端、网络中的各个网络节点及接收端,而代理节点位于发送端内部或网络节点内部,因此,代理节点能够跟踪发送端和接收端在彼此探测的过程中所发送的连接请求报文和连接应答报文,进而建立队列对跟踪表。
第二,代理节点提取连接请求报文的BTH中的目的队列对编号,并提取连接应答报文的BTH中的目的队列对编号。
由于本公开实施例中的连接请求报文和连接应答报文中均具有基础传输头部BTH,该BTH中携带目的队列对编号,因此,代理节点通过解析连接请求报文的BTH,可得到连接请求报文的目的队列对编号,并通过解析连接应答报文的BTH,可得到连接应答报文的目的队列对编号。
第三步,代理节点将从连接请求报文中提取的目的队列对编号作为目的队列对编号,将从连接应答报文中提取的目的队列对编号作为源队列对编号,并记录该源队列对编号与目的队列对编号之间的对应关系,得到队列对跟踪表。
例如,在发送端1和接收端1的连接建立过程中,如果代理节点从发送端1的连接请求报文的BTH中提取的目的队列对编号为0X1010A1,从接收端1的连接应答报文的BTH中提取的目的队列对编号为0X1010F1,则代理节点可将0X1010A1作为目的队列对编号,将0X1010F1作为源队列对编号,并记录所提取的源队列对编号0X1010F1与目的队列对编号0X1010A1之间的对应关系。在发送端2和接收端2的连接建立过程中,如果代理节点从发送端2的连接请求报文的BTH中提取的目的队列对编号为0X1010A2,从接收端2的连接应答报文的BTH中提取的目的队列对编号为0X1010F2,则代理节点可将0X1010A2作为目的队列对编号,将0X1010F2作为源队列对编号,并记录所提取的源队列对编号0X1010F2与目的队列对编号0X1010A2之间的对应关系。通过跟踪不同发送端和接收端之间的连接建立过程,可建立表2所示的队列对跟踪表。
表2
Figure BDA0003247251650000091
Figure BDA0003247251650000101
在本公开的另一个实施例中,为了更精准地获取到第一数据报文的源队列对编号,代理节点在建立队列对跟踪表时,还可获取发送端的MAC地址、接收端的MAC地址、发送端的IP地址、接收端的IP地址、发送端与接收端之间的传输层协议等,进而基于发送端的队列对编号、接收端的队列对编号、发送端的MAC地址、接收端的MAC地址、发送端的IP地址、接收端的IP地址、传输层协议,建立队列对跟踪表。当接收到第一数据报文时,代理节点通过解析第一数据报文,可得到第一数据报文的目的队列对编号、源MAC地址、目的MAC地址、源IP地址、目的IP地址、传输层协议等,进而从队列对跟踪表中查找与目的队列对编号、源MAC地址、目的MAC地址、源IP地址、目的IP地址、传输层协议对应的源队列对编号,并将查找到的源队列对编号作为第一数据报文的源队列对编号。通过采用该种处理方式,可在网络中存在一个发送端与一个接收端、一个发送端与至少两个接收端以及两个发送端和一个接收端的场景下,能够准确地查找到对应的源队列对编号。
803、代理节点将源队列对编号添加到第一数据报文中,得到第二数据报文,并通过网络节点向接收端发送第二数据报文。
获取到源队列对编号后,代理节点通过将源队列对编号添加到第一数据报文中,可得到第二数据报文。采用该种处理方式,第二数据报文中也将携带源队列对编号,从而在第二数据报文的传输过程中,当网络节点检测到网络拥塞时,能够根据第二数据报文中携带的源队列对编号,快速确定发送端。
代理节点在将源队列对编号添加到第一数据报文中,得到第二数据报文时,可采用如下步骤:
第一步、代理节点将源队列对编号拆分为第一部分和第二部分。
其中,第一部分的长度和第二部分的长度可以相同,也可以不同,只需保证第一部分的长度和第二部分的长度之和等于源队列对编号的长度即可。
第二步、代理节点将第一部分添加到第一数据报文的UDP头部的校验和字段中,并将第二部分添加到第一数据报文的基础传输头部BTH的预留字段中,得到第二数据报文。
例如,源队列对编号的长度为16比特,代理节点将该源队列对编号拆分为8比特的第一部分和8比特的第二部分,并将8比特的第一部分添加到第一数据报文的UDP头部的校验和字段(UDP Checksum)中,并将8比特的第二部分添加到第一数据报文的BTH的预留字段(Reserved)中,得到第二数据报文。
804、当接收到第二数据报文并检测到网络拥塞时,网络节点根据第二数据报文,生成第一拥塞通告报文,并将第一拥塞通告报文发送至代理节点。
当第二数据报文传输到网络中的某个网络节点时,该网络节点检测到网络拥塞,该网络节点将根据第二数据报文生成第一拥塞通告报文,该第一拥塞通告报文的ECN位上的数值为拥塞状态对应的数值,进而将第一拥塞通告报文发送至代理节点,由代理节点发送至发送端,以通知发送端当前的网络状态,从而使发送端降低第一数据报文所属的数据流的发送速率,同时为了保证数据报文的正常传输,该网络节点还继续向接收端转发该第二数据报文。
网络节点在根据第二数据报文,生成第一拥塞通告报文时,可采用如下步骤:
第一步、网络节点解析第二数据报文,得到第二数据报文的源MAC地址、第二数据报文的目的MAC地址、第二数据报文的源IP地址、第二数据报文的目的IP地址及第二数据报文的源队列对编号。
由于第二数据报文中携带第二数据报文的源MAC地址、第二数据报文的目的MAC地址、第二数据报文的源IP地址、第二数据报文的目的IP地址及第二数据报文的源队列对编号,因此,网络节点通过解析第二数据报文,可得到第二数据报文的源MAC地址、第二数据报文的目的MAC地址、第二数据报文的源IP地址、第二数据报文的目的IP地址及第二数据报文的源队列对编号。
第二步、网络节点将第二数据报文的源MAC地址作为第一拥塞通告报文的目的MAC地址、将第二数据报文的目的MAC地址作为第一拥塞通告报文的源MAC地址、将第二数据报文的源IP地址作为第一拥塞通告报文的目的IP地址、将第二数据报文的目的IP地址作为第一拥塞通告报文的源IP地址、将第二数据报文的源队列对编号作为第一拥塞通告报文的目的队列对编号,得到第一拥塞通告报文。
基于RDMA报文格式,网络节点通过将第二数据报文的源MAC地址作为第一拥塞通告报文的目的MAC地址、将第二数据报文的目的MAC地址作为第一拥塞通告报文的源MAC地址、将第二数据报文的源IP地址作为第一拥塞通告报文的目的IP地址、将第二数据报文的目的IP地址作为第一拥塞通告报文的源IP地址、将第二数据报文的源队列对编号作为第一拥塞通告报文的目的队列对编号,可得到第一拥塞通告报文。该第一拥塞通告报文的预留字段中还可以携带网络节点标识和拥塞时刻第二数据报文所属的数据流在该网络节点中所属的队列的队列深度等。
805、当代理节点接收到第一拥塞通告报文时,代理节点将第一拥塞通告报文发送至发送端。
当接收到第一拥塞通告报文时,代理节点根据第二数据报文所属的数据流(即第一数据报文所属的数据流)在网络节点中所属的队列的队列深度,确定第一拥塞通告报文的发送周期,进而按照所确定的发送周期,将接收到的第一拥塞通告报文发送至发送端。考虑到发生网络拥塞的网络节点至少为一个,且每个发生网络拥塞的网络节点在接收到第二数据报文时,均会向代理节点返回一个第一拥塞通告报文,代理节点根据至少一个第一拥塞通告报文,选取最深的队列深度,并根据最深的队列深度确定第一拥塞报文的发送周期。具体地,代理节点所确定的第一拥塞通告报文的发送周期与所选取的队列深度成反比,如果所选取的队列深度大于预设长度,说明网络拥塞程度较为严重,则可确定的第一拥塞通告报文的发送周期为第一周期;如果队列深度小于预设长度,说明网络拥塞程度较轻,则可确定的第一拥塞通告报文的发送周期为第二周期。其中,预设长度可根据经验值确定,该第一周期小于第二周期。
806、当发送端接收到第一拥塞通告报文时,发送端降低第一数据报文所属的数据流的发送速率。
实际上,第一拥塞通告报文的数量及第一拥塞通告报文的发送周期均能反映出当前的网络状态,因此,当接收到至少一个第一拥塞通告报文时,发送端可根据接收到的第一拥塞通告报文的数量及第一拥塞通告报文的发送周期,采用拥塞控制算法,确定第一数据报文所属的数据流的发送速率,进而根据所确定的发送速率发送所述数据流的后续报文,以缓解网络拥塞状态。
本公开实施例提供的方法,代理节点在接收到第一数据报文时,将源队列对编号添加到第一数据报文中,得到第二数据报文,并将第二数据报文发送至网络节点,并通过网络节点将第二数据报文发送至接收端,在第二数据报文的转发过程中,如果检测到网络拥塞,网络节点根据第二数据报文,生成第一拥塞通告报文,将第一拥塞通告报文发送至代理节点,由代理节点将第一拥塞通告报文发送至发送端,以使发送端降低第一数据报文所属的数据流的发送速率。由于本公开中网络节点在检测到网络发生拥塞时,立即向发送端发送第一拥塞通告报文,使得发送端能够及时降低第一数据报文所属的数据流的发送速率,从而避免丢失该数据流的后续报文。
本公开实施例提供了一种拥塞通告的方法,参见图9,本公开实施例提供的方法流程包括:
901、在发送端向接收端发送第一数据报文的过程中,代理节点接收发送端的第一数据报文。
该步骤具体实现时与上述步骤801相同,具体参见上述步骤801,此处不再赘述。
902、代理节点通过网络节点向接收端发送第一数据报文。
当接收到第一数据报文时,代理节点通过网络节点的转发,将第一数据报文发送至接收端。
903、当网络节点接收到第一数据报文并检测到网络拥塞时,网络节点根据第一数据报文,生成第二拥塞通告报文,并将第二拥塞通告报文发送至代理节点。
当第一数据报文传输到网络中的某个网络节点时,该网络节点检测到网络拥塞,该网络节点将根据第一数据报文生成第二拥塞通告报文,该第二拥塞通告报文的ECN位上的数值为拥塞状态对应的数值,进而将第二拥塞通告报文发送至代理节点,由代理节点发送至发送端,以通知发送端当前的网络状态,从而使发送端降低第一数据报文所属的数据流的发送速率,同时为了保证数据报文的正常传输,该网络节点还继续向接收端发送该第一数据报文。
网络节点在根据第一数据报文,生成第一拥塞通告报文时,可采用如下步骤:
第一步、网络节点解析第一数据报文,得到第一数据报文的源媒体访问控制MAC地址、第一数据报文的目的MAC地址、第一数据报文的源网络之间的互联协议IP地址、第一数据报文的目的IP地址及第一数据报文的目的队列对编号。
由于第一数据报文中携带第一数据报文的源MAC地址、第一数据报文的目的MAC地址、第一数据报文的源IP地址、第一数据报文的目的IP地址,因此,网络节点通过解析第一数据报文,可得到第一数据报文的源MAC地址、第一数据报文的目的MAC地址、第一数据报文的源IP地址、第一数据报文的目的IP地址。
第二步、网络节点将第一数据报文的源MAC地址作为第二拥塞通告报文的目的MAC地址、将第一数据报文的目的MAC地址作为第二拥塞通告报文的源MAC地址、将第一数据报文的源IP地址作为第二拥塞通告报文的目的IP地址、将第一数据报文的目的IP地址作为第二拥塞通告报文的源IP地址、将第一数据报文的目的队列对编号作为第二拥塞通告报文的目的队列对编号,得到第二拥塞通告报文。
基于RDMA报文格式,网络节点通过将第一数据报文的源MAC地址作为第二拥塞通告报文的目的MAC地址、将第一数据报文的目的MAC地址作为第二拥塞通告报文的源MAC地址、将第一数据报文的源IP地址作为第二拥塞通告报文的目的IP地址、将第一数据报文的目的IP地址作为第二拥塞通告报文的源IP地址、将第一数据报文的目的队列对编号作为第二拥塞通告报文的目的队列对编号,可得到第二拥塞通告报文。该第二拥塞通告报文的预留字段中还可以携带网络节点标识和拥塞时刻第一数据报文所属的数据流在该网络节点中所属的队列的队列深度等。
904、当代理节点接收到第二拥塞通告报文时,代理节点根据目的队列对编号,获取目的队列对编号对应的源队列对编号。
当接收到第二拥塞通告报文时,代理节点根据目的队列对编号,从预先建立的队列对跟踪表中,查找目的队列对编号对应的源队列对编号,该队列对跟踪表的每个表项存储目的队列对编号与源队列对编号之间的对应关系。
对于队列对跟踪表的建立过程,与上述步骤802中所述的队列对跟踪表的建立过程相同,具体参见上述步骤802中队列对跟踪表的建立过程,此处不再赘述。
905、代理节点用源队列对编号替换第二拥塞通告报文中的目的队列对编号,得到第一拥塞通告报文。
当获取到第一数据报文的源队列对编号,代理节点可直接用该源队列对编号替换第二拥塞通告报文中的目的队列对编号,得到第一拥塞通告报文。
906、代理节点将第一拥塞通告报文发送至发送端。
此步骤具体实现时与上述步骤805相同,具体参见上述步骤805,此处不再赘述。
907、当发送端接收到第一拥塞通告报文时,发送端降低第一数据报文所属的数据流的发送速率。
此步骤具体实现时与上述步骤806相同,具体参见上述步骤806,此处不再赘述。
本公开实施例提供的方法,当接收到代理节点的第一数据报文并检测到网络拥塞时,网络节点将所生成的第二拥塞通告报文发送至代理节点,由代理节点根据第二拥塞通告报文生成携带第一数据报文的源队列对编号的第一拥塞通告报文,并将该第一拥塞通告报文发送至发送端,以使发送端降低第一数据报文所属数据流的发送速率。由于本公开中网络节点在检测到网络发生拥塞时,立即向发送端发送第一拥塞通告报文,使得发送端能够及时降低第一数据报文所属的数据流的发送速率,从而避免丢失该数据流的后续报文。
本公开实施例提供了一种用于对网络拥塞进行通告的代理节点,参见图10,该代理节点包括:
报文接收单元1001,用于接收发送端的第一数据报文,该第一数据报文携带目的队列对编号;
编号获取单元1002,用于根据目的队列对编号,获取第一数据报文的源队列对编号;
编号添加单元1003,用于将源队列对编号添加到第一数据报文中,得到第二数据报文,并通过网络节点向接收端发送第二数据报文;
报文接收单元1001,还用于接收第一拥塞通告报文,该第一拥塞通告报文由网络节点在接收到所述第二数据报文并检测到网络拥塞时生成,该第一拥塞通告报文的目的队列对编号为源队列对编号;
报文发送单元1004,用于将第一拥塞通告报文发送至所述发送端,该第一拥塞通告报文用于通知发送端在第一拥塞通告报文的目的队列对编号与发送端的队列对编号相同时,降低第一数据报文所属的数据流的发送速率。
在本公开的另一个实施例中,编号获取单元1002,还用于根据目的队列对编号,从预先建立的队列对跟踪表中,查找目的队列对编号对应的源队列对编号,该队列对跟踪表的每个表项存储目的队列对编号与源队列对编号之间的对应关系。
在本公开的另一个实施例中,编号获取单元1002,还用于跟踪发送端和接收端在连接建立过程中所发送的连接请求报文和连接应答报文;提取连接请求报文的BTH中的目的队列对编号,并提取连接应答报文的BTH中的目的队列对编号;将从连接请求报文中提取的目的队列对编号作为目的队列对编号,将从连接应答报文中提取的目的队列对编号作为源队列对编号,并记录源队列对编号与目的队列对编号之间的对应关系,得到队列对跟踪表。
在本公开的另一个实施例中,编号添加单元1003,还用于将源队列对编号拆分为第一部分和第二部分;将第一部分添加到第一数据报文的UDP头部的校验和字段中,并将第二部分添加到第一数据报文的BTH的预留字段中,得到第二数据报文。
在本公开的另一个实施例中,第一拥塞通告报文包括拥塞时刻数据流在网络节点中所属的队列的队列深度;
报文发送单元1004,还用于根据队列深度,确定第一拥塞通告报文的发送周期;按照发送周期,将第一拥塞通告报文发送至发送端。
本公开实施例提供了一种用于对网络拥塞进行通告的代理节点,参见图11,该代理节点包括:
报文接收单元1101,用于接收发送端的第一数据报文,该第一数据报文携带目的队列对编号;
报文发送单元1102,用于通过网络节点向接收端发送第一数据报文;
报文接收单元1101,还用于接收携带目的队列对编号的第二拥塞通告报文,该第二拥塞通告报文由网络节点在接收到第一数据报文并检测到网络拥塞时生成;
编号获取单元1103,用于根据目的队列对编号,获取目的队列对编号对应的源队列对编号;
编号替换单元1104,用于用源队列对编号替换第二拥塞通告报文中的目的队列对编号,得到第一拥塞通告报文;
报文发送单元1102,还用于将第一拥塞通告报文发送至发送端,该第一拥塞通告报文用于通知发送端在第一拥塞通告报文的目的队列对编号与发送端的队列对编号相同时,降低第一数据报文所属的数据流的发送速率。
在本公开的另一个实施例中,编号获取单元1103,用于根据目的队列对编号,从预先建立的队列对跟踪表中,查找目的队列对编号对应的源队列对编号,该队列对跟踪表的每个表项存储目的队列对编号与源队列对编号之间的对应关系。
在本公开的另一个实施例中,编号获取单元1103,还用于跟踪发送端和接收端在连接建立过程中所发送的连接请求报文和连接应答报文;提取连接请求报文的基础传输头部BTH中的目的队列对编号,并提取连接应答报文的BTH中的目的队列对编号;将从连接请求报文中提取的目的队列对编号作为目的队列对编号,将从连接应答报文中提取的目的队列对编号作为源队列对编号,并记录源队列对编号与目的队列对编号之间的对应关系,得到队列对跟踪表。
在本公开的另一个实施中,第一拥塞通告报文包括拥塞时刻数据流在网络节点中所属的队列的队列深度;
报文发送单元1102,还用于根据队列深度,确定第一拥塞通告报文的发送周期;按照发送周期,将第一拥塞通告报文发送至发送端。
参见图12,其示出了本公开的一个实施例中使用的计算设备1200。所述计算设备1200包括处理器1201、存储器1202、通信接口1203和总线1204。该处理器1201、存储器1202、通信接口1203通过总线1204直连。该计算设备1200可以为代理节点,当计算设备为代理节点时,该计算设备1200用于执行上述图8中代理节点所执行的网络拥塞的通告方法。具体地,
存储器1202用于存放计算机指令;
处理器1201通过总线1204调用存储器1202中存储的计算机指令,用于执行以下操作:
通过通信接口1203接收发送端的第一数据报文,该第一数据报文携带目的队列对编号;
根据目的队列对编号,获取第一数据报文的源队列对编号;
将源队列对编号添加到第一数据报文中,得到第二数据报文,并通过网络节点向接收端发送第二数据报文;
通过通信接口1203接收第一拥塞通告报文,并将第一拥塞通告报文发送至发送端,该第一拥塞通告报文由网络节点在接收到第二数据报文并检测到网络拥塞时生成,该第一拥塞通报报文的目的队列对编号为该源队列对编号,该第一拥塞通告报文用于通知发送端在第一拥塞通告报文的目的队列对编号与发送端的队列对编号相同时,降低第一数据报文所属的数据流的发送速率。
在本公开的另一个实施例中,处理器1201通过总线1204调用存储器1202中存储的计算机指令,用于执行以下操作:
根据目的队列对编号,从预先建立的队列对跟踪表中,查找目的队列对编号对应的源队列对编号,该队列对跟踪表的每个表项存储目的队列对编号与源队列对编号之间的对应关系。
在本公开的另一个实施例中,处理器1201通过总线1204调用存储器1202中存储的计算机指令,用于执行以下操作:
跟踪发送端和接收端在连接建立过程中所发送的连接请求报文和连接应答报文;
提取连接请求报文基础传输头部的BTH中的目的队列对编号,并提取连接应答报文的BTH中的目的队列对编号;
将从连接请求报文中提取的目的队列对编号作为目的队列对编号,将从连接应答报文中提取的目的队列对编号作为源队列对编号,并建立所提取的源队列对编号与目的队列对编号之间的对应关系,得到队列对跟踪表。
在本公开的另一个实施例中,处理器1201通过总线1204调用存储器1202中存储的计算机指令,用于执行以下操作:
将源队列对编号拆分为第一部分和第二部分;
将第一部分添加到第一数据报文的UDP头部的校验和字段中,并将第二部分添加到第一数据报文的BTH的预留字段中,得到第二数据报文。
在本公开的另一个实施例中,第一拥塞通告报文包括拥塞时刻数据流在网络节点中的所属的队列队列深度,处理器1201通过总线1204调用存储器1202中存储的计算机指令,用于执行以下操作:
根据队列深度,确定第一拥塞通告报文的发送周期;
按照发送周期,将第一拥塞通告报文发送至发送端。
该存储器1202包括计算机存储介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、EPROM、EEPROM、闪存或其他固态存储其技术,CD-ROM、DVD或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知计算机存储介质不局限于上述几种。
根据本公开的各种实施例,所述计算设备1200还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即计算设备1200可以通过连接在所述总线1204上的网络接口单元1205连接到网络,或者说,也可以使用网络接口单元1205来连接到其他类型的网络或远程计算机系统(未示出)。
需要说明的是,当计算设备120为代理节点时,计算设备1200不仅可执行图8中代理节点所执行的网络拥塞的通告方法,还可执行图9中代理节点所执行的网络拥塞的通告方法,本公开实施例不再赘述。
本公开实施例提供了一种存储介质,该存储介质中至少存储有至少一条指令,该至少一条指令由处理器加载并执行以实现如图8或图9所示的网络拥塞的通告方法。
需要说明的是:上述实施例提供的网络拥塞的通告系统在对网络拥塞进行通告时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的网络拥塞的通告系统与网络拥塞的通告方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本公开的可选实施例,并不用以限制本公开,凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。

Claims (12)

1.一种网络拥塞的通告方法,其特征在于,应用于远程直接内存访问RDMA网络中,所述网络包括发送端、网络节点和接收端,所述方法包括:
所述网络节点接收所述发送端的远程直接内存访问RDMA报文,所述网络节点用于转发所述发送端和所述接收端之间的报文;
当网络拥塞时,所述网络节点生成拥塞通告报文;
所述网络节点向所述发送端发送所述拥塞通告报文,所述拥塞通告报文用于指示接收所述拥塞通告报文的所述发送端降低所述RDMA报文对应的数据流的发送速率。
2.根据权利要求1所述的方法,其特征在于,
所述RDMA报文还包括第一显式拥塞通知ECN位,所述第一ECN位的值指示所述发送端具有ECN能力;
所述拥塞通告报文还包括第二ECN位,所述第二ECN位的值指示所述网络处于拥塞状态。
3.根据权利要求1或2所述的方法,其特征在于,所述拥塞通告报文进一步包括所述RDMA报文所属的数据流所在的队列在拥塞时刻的队列深度。
4.根据权利要求1-3中任意一项所述的方法,其特征在于,所述RDMA报文包括对应所述接收端的第一队列对编号,所述拥塞通告报文包括对应所述发送端的第二队列对编号,所述方法还包括:
所述网络节点根据所述第一队列对编号获取所述第二队列对编号。
5.一种网络拥塞的通告方法,其特征在于,应用于远程直接内存访问RDMA网络中,所述网络包括发送端、网络节点和接收端,所述方法包括:
所述发送端生成远程直接内存访问RDMA报文;
所述发送端通过所述网络节点向所述接收端发送所述RDMA报文;
所述发送端接收拥塞通告报文,所述拥塞通告报文是由所述网络节点在网络拥塞时生成的;
所述发送端根据所述拥塞通告报文降低所述RDMA报文所属的数据流的发送速率。
6.根据权利要求5所述的方法,其特征在于:
所述RDMA报文还包括第一显式拥塞通知ECN位,所述第一ECN位的值指示所述发送端具有ECN能力;
所述拥塞通告报文还包括第二ECN位,所述第二ECN位的值指示所述网络处于拥塞状态。
7.根据权利要求5或6所述的方法,其特征在于,所述RDMA报文包括对应所述接收端的第一队列对编号,所述拥塞通告报文包括对应所述发送端的第二队列对编号,所述第二队列对编号是所述网络节点根据所述第一队列对编号获取的。
8.根据权利要求5或6所述的方法,其特征在于,所述RDMA报文包括对应所述接收端的第一队列对编号以及对应所述发送端的第二队列对编号;所述发送端包括代理节点,所述发送端生成RDMA报文包括:
所述发送端生成第一数据报文,所述第一数据报文包括所述第一队列对编号;
所述代理节点根据所述第一队列对编号获取所述第二队列对编号;
所述代理节点为所述第一数据报文添加所述第二队列对编号以得到所述RDMA报文。
9.根据权利要求8所述的方法,其特征在于,所述为所述第一数据报文添加所述第二队列对编号以得到所述RDMA报文包括:
所述代理节点将所述第二队列对编号拆分为第一部分和第二部分;
所述代理节点将所述第一部分添加到所述第一数据报文的UDP头部的校验和字段中,并将所述第二部分添加到所述第一数据报文的基础传输头部BTH的预留字段中,以得到所述RDMA报文。
10.一种网络节点,其特征在于,包括存储器和处理器,所述存储器用于存储程序代码,所述处理器用于执行所述程序代码以使所述网络节点实现权利要求1-4中任意一项所述的方法。
11.一种发送端,其特征在于,包括存储器和处理器,所述存储器用于存储程序代码,所述处理器用于执行所述程序代码以使计算机设备实现权利要求5-9中任意一项所述的方法。
12.一种网络系统,其特征在于,包括如权利要求10所述的网络节点,如权利要求11所述的发送端以及接收端,所述网络节点用于转发所述发送端和所述接收端之间的报文。
CN202111036600.XA 2017-08-11 2017-08-11 网络拥塞的通告方法、代理节点、网络节点及计算机设备 Active CN113709057B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111036600.XA CN113709057B (zh) 2017-08-11 2017-08-11 网络拥塞的通告方法、代理节点、网络节点及计算机设备

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201710687388.0A CN109391560B (zh) 2017-08-11 2017-08-11 网络拥塞的通告方法、代理节点及计算机设备
CN202111036600.XA CN113709057B (zh) 2017-08-11 2017-08-11 网络拥塞的通告方法、代理节点、网络节点及计算机设备

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201710687388.0A Division CN109391560B (zh) 2017-08-11 2017-08-11 网络拥塞的通告方法、代理节点及计算机设备

Publications (2)

Publication Number Publication Date
CN113709057A CN113709057A (zh) 2021-11-26
CN113709057B true CN113709057B (zh) 2023-05-05

Family

ID=65270824

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202111036600.XA Active CN113709057B (zh) 2017-08-11 2017-08-11 网络拥塞的通告方法、代理节点、网络节点及计算机设备
CN201710687388.0A Active CN109391560B (zh) 2017-08-11 2017-08-11 网络拥塞的通告方法、代理节点及计算机设备

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201710687388.0A Active CN109391560B (zh) 2017-08-11 2017-08-11 网络拥塞的通告方法、代理节点及计算机设备

Country Status (4)

Country Link
US (2) US11374870B2 (zh)
EP (2) EP3657743B1 (zh)
CN (2) CN113709057B (zh)
WO (1) WO2019029318A1 (zh)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11418446B2 (en) * 2018-09-26 2022-08-16 Intel Corporation Technologies for congestion control for IP-routable RDMA over converged ethernet
US11005770B2 (en) * 2019-06-16 2021-05-11 Mellanox Technologies Tlv Ltd. Listing congestion notification packet generation by switch
CN112104562B (zh) * 2019-06-17 2023-04-18 华为技术有限公司 拥塞控制方法及装置、通信网络、计算机存储介质
CN112242956B (zh) * 2019-07-18 2024-04-26 华为技术有限公司 流速控制方法和装置
CN112311685A (zh) * 2019-07-24 2021-02-02 华为技术有限公司 一种处理网络拥塞的方法以及相关装置
CN112532535B (zh) * 2019-09-17 2022-10-04 华为技术有限公司 一种用于优化网络拥塞的方法和装置
CN112751776A (zh) * 2019-10-30 2021-05-04 华为技术有限公司 拥塞控制方法和相关装置
CN113162862A (zh) * 2020-01-23 2021-07-23 华为技术有限公司 拥塞控制方法及装置
CN114095448A (zh) * 2020-08-05 2022-02-25 华为技术有限公司 一种拥塞流的处理方法及设备
CN112383450A (zh) * 2020-11-30 2021-02-19 盛科网络(苏州)有限公司 一种网络拥塞检测方法及装置
CN112637015B (zh) * 2020-12-23 2022-08-26 苏州盛科通信股份有限公司 一种基于psn实现rdma网络的丢包检测方法及装置
CN113411263B (zh) * 2021-06-18 2023-03-14 中国工商银行股份有限公司 一种数据传输方法、装置、设备及存储介质
CN113411264B (zh) * 2021-06-30 2023-03-14 中国工商银行股份有限公司 一种网络队列的监控方法、装置、计算机设备和存储介质
US20230059755A1 (en) * 2021-08-11 2023-02-23 Enfabrica Corporation System and method for congestion control using a flow level transmit mechanism
WO2023135674A1 (ja) * 2022-01-12 2023-07-20 日本電信電話株式会社 処理システム、処理装置、処理方法およびプログラム
CN114745331B (zh) * 2022-03-23 2023-11-07 新华三技术有限公司合肥分公司 一种拥塞通知方法及设备
CN114866477A (zh) * 2022-04-21 2022-08-05 浪潮思科网络科技有限公司 一种网络设备拥塞控制机制的测试方法、系统及设备
CN114979001B (zh) * 2022-05-20 2023-06-13 北京百度网讯科技有限公司 基于远程直接数据存取的数据传输方法、装置以及设备
CN115314442B (zh) * 2022-08-08 2023-09-12 北京云脉芯联科技有限公司 拥塞控制和基于Group的限速限窗装置及方法、限速限窗方法
CN115484217B (zh) * 2022-09-06 2024-01-05 燕山大学 基于正交架构一体化的高效动态收敛机制实现方法和系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101227495A (zh) * 2008-02-20 2008-07-23 中兴通讯股份有限公司 公用电信分组数据网系统及其拥塞控制方法
CN102891803A (zh) * 2012-10-10 2013-01-23 华为技术有限公司 拥塞处理方法及网络设备
US9270489B1 (en) * 2012-03-19 2016-02-23 Google Inc. Explicit congestion notification in mixed fabric networks
CN106027412A (zh) * 2016-05-30 2016-10-12 南京理工大学 一种基于拥塞队列长度的tcp拥塞控制方法

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001045331A1 (en) * 1999-12-13 2001-06-21 Nokia Corporation Congestion control method for a packet-switched network
US20060203730A1 (en) * 2005-03-14 2006-09-14 Zur Uri E Method and system for reducing end station latency in response to network congestion
CN101098301B (zh) * 2006-06-27 2011-04-20 华为技术有限公司 一种无线网络的二层拥塞控制方法
US7817634B2 (en) * 2006-06-30 2010-10-19 Intel Corporation Network with a constrained usage model supporting remote direct memory access
CN100589440C (zh) * 2006-10-18 2010-02-10 中国科学院自动化研究所 一种应用于互联网的网络拥塞控制系统及方法
CN101188611A (zh) * 2007-11-21 2008-05-28 华为技术有限公司 拥塞通知方法、系统和节点设备
US9473596B2 (en) * 2011-09-27 2016-10-18 International Business Machines Corporation Using transmission control protocol/internet protocol (TCP/IP) to setup high speed out of band data communication connections
WO2013132213A1 (en) * 2012-03-09 2013-09-12 British Telecommunications Public Limited Company Signalling congestion
CN102594713B (zh) * 2012-03-29 2015-09-09 杭州华三通信技术有限公司 一种实现显式拥塞通告的方法及设备
US9336158B2 (en) * 2013-02-26 2016-05-10 Oracle International Corporation Method and system for simplified address translation support for static infiniband host channel adaptor structures
CN103647807B (zh) * 2013-11-27 2017-12-15 华为技术有限公司 一种信息缓存方法、装置和通信设备
US9621471B2 (en) * 2014-06-30 2017-04-11 Vmware, Inc. Framework for early congestion notification and recovery in a virtualized environment
WO2016041580A1 (en) * 2014-09-16 2016-03-24 Huawei Technologies Co.,Ltd Scheduler, sender, receiver, network node and methods thereof
CN104394093B (zh) * 2014-11-28 2017-12-01 广州杰赛科技股份有限公司 拥塞控制方法与无线网状网系统
CN104753816A (zh) * 2015-03-27 2015-07-01 华为技术有限公司 一种rdma连接的报文处理方法及相关装置
US9674090B2 (en) * 2015-06-26 2017-06-06 Microsoft Technology Licensing, Llc In-line network accelerator
US10257273B2 (en) * 2015-07-31 2019-04-09 Netapp, Inc. Systems, methods and devices for RDMA read/write operations
US9813338B2 (en) * 2015-12-10 2017-11-07 Cisco Technology, Inc. Co-existence of routable and non-routable RDMA solutions on the same network interface
CN105897605B (zh) * 2016-04-08 2018-08-28 重庆邮电大学 一种基于IPv6的电力线载波通信网络拥塞控制方法
CN107493238A (zh) * 2016-06-13 2017-12-19 华为技术有限公司 一种网络拥塞控制方法、设备及系统
CN108307434B (zh) * 2017-01-12 2023-04-07 马维尔以色列(M.I.S.L.)有限公司 用于流控制的方法和设备
US11005770B2 (en) * 2019-06-16 2021-05-11 Mellanox Technologies Tlv Ltd. Listing congestion notification packet generation by switch

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101227495A (zh) * 2008-02-20 2008-07-23 中兴通讯股份有限公司 公用电信分组数据网系统及其拥塞控制方法
US9270489B1 (en) * 2012-03-19 2016-02-23 Google Inc. Explicit congestion notification in mixed fabric networks
CN102891803A (zh) * 2012-10-10 2013-01-23 华为技术有限公司 拥塞处理方法及网络设备
CN106027412A (zh) * 2016-05-30 2016-10-12 南京理工大学 一种基于拥塞队列长度的tcp拥塞控制方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
YIBO ZHU 等."Congestion Control for Large-Scale RMDA Deployment".《Special Interest Group on Data Communication,ACM》.2015,第523-536页. *

Also Published As

Publication number Publication date
CN109391560B (zh) 2021-10-22
CN109391560A (zh) 2019-02-26
WO2019029318A1 (zh) 2019-02-14
US20200177513A1 (en) 2020-06-04
CN113709057A (zh) 2021-11-26
EP3657743A4 (en) 2020-07-08
EP3657743B1 (en) 2021-09-15
US20220263767A1 (en) 2022-08-18
EP3657743A1 (en) 2020-05-27
US11374870B2 (en) 2022-06-28
EP3979600A1 (en) 2022-04-06

Similar Documents

Publication Publication Date Title
CN113709057B (zh) 网络拥塞的通告方法、代理节点、网络节点及计算机设备
US20200358886A1 (en) Data Transmission Method, Apparatus, And System
US11949576B2 (en) Technologies for out-of-order network packet management and selective data flow splitting
CN110022264B (zh) 控制网络拥塞的方法、接入设备和计算机可读存储介质
US8953631B2 (en) Interruption, at least in part, of frame transmission
US11258704B2 (en) Technologies for managing network traffic through heterogeneous networks
EP2880550B1 (en) Connection mesh in mirroring asymmetric clustered multiprocessor systems
CN110943935A (zh) 一种实现数据传输的方法、装置和系统
US9560174B2 (en) Network routing overlay
CN115766605A (zh) 网络拥塞控制方法、装置及系统
CN113612698A (zh) 一种数据包发送方法及装置
CN117354253A (zh) 一种网络拥塞通知方法、装置及存储介质
CN112583736A (zh) 一种信令报文分流方法、装置、设备及介质
CN107231316B (zh) 报文的传输方法及装置
CN116319535A (zh) 路径切换方法、装置、网络设备、以及网络系统
US20100166011A1 (en) Method, apparatus and system for realizing dynamic correlation of control plane traffic rate
WO2022222693A1 (zh) 报文处理方法和装置、电子设备、计算机可读存储介质
WO2023078144A1 (zh) 报文处理方法、装置及系统
CN113472666B (zh) 报文转发方法及设备
WO2023005927A1 (zh) 一种基于SRv6的隧道质量检测方法和相关装置
WO2024001701A1 (zh) 数据处理方法、装置及系统
CN116962509B (zh) 基于quic协议的网络代理方法以及网络代理系统
WO2023040782A1 (zh) 处理报文的方法、系统、设备和存储介质
CN118041783A (zh) 一种报文处理、报文加速方法及装置
CN118138652A (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