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

技术编号:20451618 阅读:28 留言:0更新日期:2019-02-27 04:32
本公开提供了一种网络拥塞的通告方法、代理节点及计算机设备,属于数据通讯领域。代理节点在接收到第一数据报文时,将源队列对编号添加到第一数据报文中,得到第二数据报文,并通过网络节点将第二数据报文发送至接收端,在第二数据报文的转发过程中,如果检测到网络拥塞,网络节点生成携带源队列对编号的第一拥塞通告报文,并将第一拥塞通告报文发送至代理节点,进而由代理节点将第一拥塞通告报文发送至发送端,以使发送端降低第一数据报文所属的数据流的发送速率。由于本公开中网络节点在检测到网络发生拥塞时,立即向发送端发送第一拥塞通告报文,使得发送端能够及时降低第一数据报文所属的数据流的发送速率,从而避免丢失该数据流的后续报文。

【技术实现步骤摘要】
网络拥塞的通告方法、代理节点及计算机设备
本公开涉及数据通讯
,特别涉及一种网络拥塞的通告方法、代理节点及计算机设备。
技术介绍
远程直接数据存取(remotedirectmemoryaccess,RDMA)为一种数据传输技术,由于无需借助计算机的处理器、高速缓存或者操作系统等,通过网络即可从其他计算机的内存中直接读取数据,因而降低了网络传输中的数据处理延迟。然而,RDMA数据中心通常采用克劳斯(CLOS)方式进行组网,网络中交换机上下行接口带宽不对称,当数据在网络中传输时,经常会发生网络拥塞,进而影响RDMA的通讯性能。为了避免网络拥塞,提升RDMA通讯性能,需要及时地对网络拥塞进行通告。当前对网络拥塞进行通告时,主要采用如下方法:在连接管理(connectionmanagement,CM)过程中,发送端和接收端分别获取对端的队列对编号;当需要向接收端发送数据时,发送端基于链路层传输协议,生成第一数据报文,该第一数据报文的目的队列对编号为接收端的队列对编号,该第一数据报文的网络互联协议(InternetProtocol,IP)头部设置有显示拥塞通知(ExplicitCongestionNotification,ECN)位,该ECN位用于标识第一数据报文具有ECN能力,且该ECN位上的不同数值表明网络的不同状态;发送端将第一数据报文发送至网络节点;当接收到第一数据报文且检测到网络拥塞时,网络节点将第一数据报文IP头部中ECN位上的数值更改为拥塞状态对应的数值,得到处理后的第一数据报文,并将处理后的第一数据报文发送至接收端;当接收到处理后的第一数据报文并读取到ECN位上的数值为拥塞状态对应的数值,接收端获取源(发送端)队列对编号,生成第一拥塞通告报文,该第一拥塞通告报文的目的队列对编号为该源(发送端)队列对编号,接收端通过网络将该第一拥塞通告报文发送至发送端,该第一拥塞通告报文用于通知发送端获取该第一拥塞通过报文的目的队列对编号,并在该第一拥塞通告报文的目的队列对编号与发送端的队列对编号相同时,减小第一数据报文所属的数据流的发送速率。上述方案中,当检测到网络拥塞时,在发送端与接收端之间的传输链路上的各个网络节点无法向发送端发送第一拥塞通告报文,只能由接收端进行发送,因而发送端无法及时减小第一数据报文所属的数据流的发送速率,使得第一数据报文所属的数据流的后续报文在传输过程中丢失。
技术实现思路
为了解决现有技术的问题,本公开实施例提供了一种网络拥塞的通告方法、代理节点及计算机设备。所述技术方案如下:第一方面,提供了一种网络拥塞的通告方法,所述方法包括:在数据传输过程中,代理节点接收发送端的第一数据报文,该第一数据报文携带目的队列对编号。代理节点根据第一数据报文中的目的队列对编号,获取第一数据报文的源队列对编号,并将该源队列对编号添加到第一数据报文中,得到第二数据报文,进而通过网络节点将第一数据报文发送至接收端。在对第二数据报文的转发过程中,当检测到网络拥塞时,网络节点根据第二数据报文,生成第一拥塞通告报文,进而将该第一拥塞通告报文发送至代理节点,该第一拥塞通告报文的目的队列对编号实际上为第二数据报文的源队列对编号。当接收到第一拥塞通告报文时,代理节点将第一拥塞通告报文发送至发送端,以使发送端在第一拥塞通告报文的目的队列对编号与发送端的队列对编号相同时,降低第一数据报文所属的数据流的发送速率。本公开实施例示出的方案,在第一数据报文的传输过程中,代理节点将源队列对编号添加到第一数据报文中,当检测到网络拥塞时,网络节点根据该第一数据报文,生成第一拥塞通告报文,进而借助代理节点的转发将第一拥塞通告报文发送至发送端,使得发送端能够及时降低第一数据报文所属的数据流的发送速率,以避免丢失该数据流的后续报文。在本公开的第一种可能实现方式中,代理节点维护一个队列对跟踪表,该队列对跟踪表的每个表项存储有目的队列编号与源队列对编号之间的对应关系,因而当接收到第一数据报文时,代理节点可根据目的队列对编号,从队列对跟踪表中,查找到目的队列对编号对应的源队列对编号,该所查找到的源队列对编号即为第一数据报文的源队列对编号。本公开实施例示出的方案,提供了一种源对队列对编号的获取方式。在本公开的第二种可能实现方式中,为了实现接收端和发送端之间的数据传输,发送端和接收端需要预先建立连接,在连接建立过程中,代理节点可跟踪发送端所发送的连接请求报文,并将从连接请求报文的基础传输头部(BaseTransportHeader,BTH)中提取的目的队列对编号作为目的队列对编号,同时代理节点还可跟踪接收端所发送的连接应答报文,并将从连接应答报文的BTH中提取的目的队列对编号作为源队列对编号,进而通过记录源队列对编号与目的队列对编号之间的对应关系,得到队列对跟踪表。本公开实施例示出的方案,代理节点通过跟踪发送端和接收端在连接建立过程中所发送的报文,建立队列对跟踪表,从而在接收到第一数据报文时,能够根据第一数据报文的目的队列对编号,查找到对应的源队列对编号。在本公开的第三种可能实现方式中,代理节点在获取到源队列对编号后,可将源队列对编号拆分为第一部分和第二部分,并将源队列对编号的第一部分添加到第一数据报文的用户数据报协议(UserDatagramProtocol,UDP)头部的校验和字段中,将源队列对编号的第二部分添加到第一数据报文的基础传输头部BTH的预留字段中,从而得到第二数据报文。本公开实施例示出的方案,代理节点通过将源队列对编号扩展到第一数据报文中,使得第一数据报文中携带有源队列对编号,从而在网络拥塞时,可根据该源队列对编号快速地将第一拥塞通告报文发送至发送端,提高了第一拥塞通告报文的传输速率。在本公开的第四种可能实现方式中,当接收到第二数据报文并检测到网络拥塞时,网络节点解析第二数据报文,得到第二数据报文的源媒体访问控制(MediaAccessControl,MAC)地址、第二数据报文的目的MAC地址、第二数据报文的源网络之间的互联协议(InternetProtocol,IP)地址、第二数据报文的目的IP地址及第二数据报文的源队列对编号,基于解析结果,网络节点通过将第二数据报文的源MAC地址作为第一拥塞通告报文的目的MAC地址、将第二数据报文的目的MAC地址作为第一拥塞通告报文的源MAC地址、将第二数据报文的源IP地址作为第一拥塞通告报文的目的IP地址、将第二数据报文的目的IP地址作为第一拥塞通告报文的源IP地址、将第二数据报文的源队列对编号作为第一拥塞通告报文的目的队列对编号,得到第一拥塞通告报文。在本公开的第五种可能实现方式中,第一拥塞通告报文包括拥塞时刻数据流在网络节点中所属的队列的队列深度,基于该队列深度,代理节点能够确定出第一拥塞通告报文的发送周期,进而在后续对第一拥塞通告报文的发送过程中,可按照确定的发送周期进行发送。本公开实施例示出的方案,代理节点根据拥塞时刻数据流在网络节点中所属的队列的队列深度,可获知当前网络的拥塞程度,进而根据网络的拥塞程度所确定的发送周期,向发送端发送第一拥塞通告报文,使得发送端能够根据网络的拥塞程度确定第一数据报文所属数据流的发送速率,从而在避免网络拥塞的前提下,采用最大的发送速率发送第一数本文档来自技高网
...

【技术保护点】
1.一种网络拥塞的通告方法,其特征在于,所述方法应用于代理节点中,所述方法包括:接收发送端的第一数据报文,所述第一数据报文携带目的队列对编号;根据所述目的队列对编号,获取所述第一数据报文的源队列对编号;将所述源队列对编号添加到所述第一数据报文中,得到第二数据报文,并通过网络节点向接收端发送所述第二数据报文;接收第一拥塞通告报文,将所述第一拥塞通告报文发送至所述发送端,所述第一拥塞通告报文由所述网络节点在接收到所述第二数据报文并检测到网络拥塞时生成,所述第一拥塞通告报文的目的队列对编号为所述源队列对编号,所述第一拥塞通告报文用于通知所述发送端在所述第一拥塞通告报文的目的队列对编号与所述发送端的队列对编号相同时,降低所述第一数据报文所属的数据流的发送速率。

【技术特征摘要】
1.一种网络拥塞的通告方法,其特征在于,所述方法应用于代理节点中,所述方法包括:接收发送端的第一数据报文,所述第一数据报文携带目的队列对编号;根据所述目的队列对编号,获取所述第一数据报文的源队列对编号;将所述源队列对编号添加到所述第一数据报文中,得到第二数据报文,并通过网络节点向接收端发送所述第二数据报文;接收第一拥塞通告报文,将所述第一拥塞通告报文发送至所述发送端,所述第一拥塞通告报文由所述网络节点在接收到所述第二数据报文并检测到网络拥塞时生成,所述第一拥塞通告报文的目的队列对编号为所述源队列对编号,所述第一拥塞通告报文用于通知所述发送端在所述第一拥塞通告报文的目的队列对编号与所述发送端的队列对编号相同时,降低所述第一数据报文所属的数据流的发送速率。2.根据权利要求1所述的方法,其特征在于,所述根据所述目的队列对编号,获取所述第一数据报文的源队列对编号,包括:根据所述目的队列对编号,从预先建立的队列对跟踪表中,查找所述目的队列对编号对应的源队列对编号,所述队列对跟踪表的每个表项存储目的队列对编号与源队列对编号之间的对应关系。3.根据权利要求1或2所述的方法,其特征在于,所述根据所述目的队列对编号,从预先建立的队列对跟踪表中,查找所述目的队列对编号对应的源队列对编号之前,还包括:跟踪所述发送端和所述接收端在连接建立过程中所发送的连接请求报文和连接应答报文;提取所述连接请求报文的基础传输头部BTH中的目的队列对编号,并提取所述连接应答报文的BTH中的目的队列对编号;将从所述连接请求报文中提取的目的队列对编号作为目的队列对编号,将从所述连接应答报文中提取的目的队列对编号作为源队列对编号,并记录所述源队列对编号与目的队列对编号之间的对应关系,得到所述队列对跟踪表。4.根据权利要求1-3中任意一项所述的方法,其特征在于,所述将所述源队列对编号添加到所述第一数据报文中,得到第二数据报文,包括:将所述源队列对编号拆分为第一部分和第二部分;将所述第一部分添加到所述第一数据报文的用户数据报协议UDP头部的校验和字段中,并将所述第二部分添加到所述第一数据报文的基础传输头部BTH的预留字段中,得到所述第二数据报文。5.根据权利要求1所述的方法,其特征在于,所述第一拥塞通告报文包括拥塞时刻所述数据流在所述网络节点中所属的队列的队列深度,所述将所述第一拥塞通告报文发送至所述发送端,包括:根据所述队列深度,确定所述第一拥塞通告报文的发送周期;按照所述发送周期,将所述第一拥塞通告报文发送至所述发送端。6.一种网络拥塞的通告方法,其特征在于,所述方法应用于代理节点中,所述方法包括:接收发送端的第一数据报文,所述第一数据报文携带目的队列对编号;通过网络节点向接收端发送所述第一数据报文;接收携带所述目的队列对编号的第二拥塞通告报文,根据所述目的队列对编号,获取所述目的队列对编号对应的源队列对编号,所述第二拥塞通告报文由所述网络节点在接收到所述第一数据报文并检测到网络拥塞时生成;用所述源队列对编号替换所述第二拥塞通告报文中的所述目的队列对编号,得到第一拥塞通告报文;将所述第一拥塞通告报文发送至所述发送端,所述第一拥塞通告报文用于通知所述发送端在所述第一拥塞通告报文的目的队列对编号与所述发送端的队列对编号相同时,降低所述第一数据报文所属的数据流的发送速率。7.根据权利要求6所述的方法,其特征在于,所述根据所述目的队列对编号,获取所述目的队列对编号对应的源队列对编号,包括:根据所述目的队列对编号,从预先建立的队列对跟踪表中,查找所述目的队列对编号对应的源队列对编号,所述队列对跟踪表的每个表项存储目的队列对编号与源队列对编号之间的对应关系。8.根据权利要求6或7所述的方法,其特征在于,所述根据所述目的队列对编号,从预先建立的队列对跟踪表中,查找所述目的队列对编号对应的源队列对编号之前,还包括:跟踪所述发送端和所述接收端在连接建立过程中所发送的连接请求报文和连接应答报文;提取所述连接请求报文的基础传输头部BTH中的目的队列对编号,并提取所述连接应答报文的BTH中的目的队列对编号;将从所述连接请求报文中提取的目的队列对编号作为目的队列对编号,将从所述连接应答报文中提取的目的队列对编号作为源队列对编号,并记录所述源队列对编号与目的队列对编号之间的对应关系,得到所述队列对跟踪表。9.根据权利要求6-8中任意一项所述的方法,其特征在于,所述第一拥塞通告报文包括拥塞时刻所述数据流在所述网络节点中所属的队列的队列深度,将所述第一拥塞通告报文发送至所述发送端,包括:根据所述队列深度,确定所述第一拥塞通告报文的发送周期;按照所述发送周期,将所述第一拥塞通告报文发送至所述发送端。10.一种用于对网络拥塞进行通告的代理节点,其特征在于,所述代理节点包括:报文接收单元,用于接收发送端的第一数据报文,所述第一数据报文携带目的队列对编号;编号获取单...

【专利技术属性】
技术研发人员:张维
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1