CN114844836A - 处理网络拥塞的方法、装置和设备 - Google Patents

处理网络拥塞的方法、装置和设备 Download PDF

Info

Publication number
CN114844836A
CN114844836A CN202110131460.8A CN202110131460A CN114844836A CN 114844836 A CN114844836 A CN 114844836A CN 202110131460 A CN202110131460 A CN 202110131460A CN 114844836 A CN114844836 A CN 114844836A
Authority
CN
China
Prior art keywords
network congestion
data
receiving end
sending
congestion
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
Application number
CN202110131460.8A
Other languages
English (en)
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 CN202110131460.8A priority Critical patent/CN114844836A/zh
Priority to PCT/CN2022/072431 priority patent/WO2022161206A1/zh
Priority to EP22745082.2A priority patent/EP4277209A4/en
Publication of CN114844836A publication Critical patent/CN114844836A/zh
Priority to US18/361,042 priority patent/US20230370387A1/en
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/12Arrangements for remote connection or disconnection of substations or of equipment thereof
    • 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
    • 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/25Flow control; Congestion control with rate being modified by the source upon detecting a change of network conditions
    • 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
    • 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/22Traffic shaping

Landscapes

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

Abstract

一种处理网路拥塞的方法,该方法应用于包括多个主机的HPC集群,并且多个主机之间通过网络设备相连,其中,发送端获取包括网络拥塞场景标识的第一确认消息,该网络拥塞场景标识为用于指示发送端向接收端传输数据过程中出现网络拥塞的场景的标识,而发送端和接收端分别为该多个主机中任意两个主机;然后,发送端根据网络拥塞场景标识调整发送端的数据发送速率。如此,发送端根据网络拥塞场景,针对性的调整发送端的数据发送速率,从而可以缓解网络拥塞问题,减少网络拥塞对于整个HPC集群的网络传输性能的影响。

Description

处理网络拥塞的方法、装置和设备
技术领域
本申请涉及网络管理技术领域,尤其涉及一种处理网络拥塞的方法、装置和设备。
背景技术
在大规模互联网络中,如Dragonfly+、Fattree等具有大规模高性能计算(highperformance computing,HPC)集群的拓扑结构的网络等,可能会因为网络承载流量较大、流量模式较为复杂以及网络拓扑结构的限制等原因,产生网络拥塞,即在网络中传输的数据包(packet)的数量过多而导致网络传输性能下降。当出现网络拥塞时,容易出现数据传输时延增加、数据丢失、网络设备吞吐量下降、甚至“拥塞崩溃”(congestion collapse)等问题,从而严重影响网络传输性能。
因此,目前亟需一种处理网络拥塞的方法,以在出现网络拥塞时尽可能减少其对于网络传输性能的影响。
发明内容
本申请提供了一种处理网络网络拥塞的方法、装置和设备,用以在出现网络拥塞时尽可能减少其对于网络传输性能的影响。
第一方面,本申请提供一种处理网络拥塞的方法,该方法可以应用于包括多个主机的HPC集群,并且,该HPC集群中的多个主机通过网络设备相连,如通过路由器或者交换机等设备连接等。当其中任意一个主机向另一个主机发送数据时,发送数据的主机为发送端,而接收数据的主机为接收端。发送端可以获取第一确认消息,该第一确认消息中包括网络拥塞场景标识,其中,该网络拥塞场景标识为用于指示发送端向接收端传输数据过程中出现网络拥塞的场景的标识,然后,发送端可以根据该网络拥塞场景标识调整发送端的数据发送速率。
如此,当HPC集群中出现网络拥塞时,发送端可以根据网络拥塞场景标识,通过调整发送端的数据发送速率的方式来针对性的环境该网络拥塞场景下的网络拥塞问题,从而减少网络拥塞对于整个高性能计算集群的网络传输性能的影响。并且,发送端针对于不同的网络拥塞场景,可以采用不同的策略来调整发送端的数据发送速率,从而可以实现有针对性地缓解不同网络拥塞问题,优化网络拥塞的处理效果。
在一种可能的实施方式中,网络拥塞的场景具体可以是接收端网络拥塞,则第一确认消息中的网络拥塞场景标识包括拥塞因子,该拥塞因子用于指示在接收端处发生网络拥塞的拥塞程度。例如,当该拥塞因子的值越大时,表征接收端处发生网络拥塞的拥塞程度越高,反之,当该拥塞因子的值越小时,表征接收端处发生网络拥塞的拥塞程度越小。可选地,该拥塞因子也可以被理解为引起接收端网络拥塞的影响因素。
如此,发送端根据该拥塞因子,可以对不同程度的接收端网络拥塞情况作出不同程度的调整,如接收端网络拥塞程度较轻时(拥塞因子的值较小),发送端降低数据发送速率的幅度较小,从而可以使得发送端在降低数据发送速率后,网络的吞吐量不会过低;而当接收端网络拥塞程度较严重时(拥塞因子的值较大),发送端降低数据发送速率的幅度较大,如此可以通过快速降低数据发送速率以尽可能避免网络的传输性能不会被严重影响。而且,实际应用时,接收端反馈拥塞因子时所占用的额外的网络带宽较小甚至不占用额外的网络带宽,相比于接收端直接将大量网络拥塞的相关信息反馈给发送端而言,可以有效减少缓解网络拥塞过程中对于网络链路的带宽占用,提高链路利用率。
在另一种可能的实施方式中,发送端向接收端传输的数据流包括第一类型的数据流以及第二类型的数据流,并且第一类型的数据流的长度大于第二类型的数据流的长度,其中,每个数据流中可以包括一个或者多个数据包。发送端在根据拥塞场景的标识调整发送端的数据发送速率时,具体可以是根据所述拥塞因子,降低发送端发送第一类型的数据流的数据发送速率,而可以不降低发送端发送第二类型的数据流的数据发送速率。
在另一种可能的实施方式中,网络拥塞的场景为公共传输路径网络拥塞,而发送端根据拥塞场景的标识调整发送端的数据发送速率,具体可以是获取待发送的数据流的优先级,并根据该待发送的数据流的优先级,降低发送端发送数据流的速率。比如,当待发送的数据流的优先级较高时,发送端的数据发送速率的降幅较小,而当待发送的数据流的优先级较高等,发送端的数据发送速率较大,甚至可以停止发送该优先级较低的数据流等。如此,在缓解网络拥塞的同时,可以尽可能降低对于优先级的数据流的传输影响。
在另一种可能的实施方式中,待发送的数据流包括第一数据流以及第二数据流,其中,第一数据流的优先级高于第二数据流的优先级,而发送端在发送数据流时,发送第一数据流的速率高于发送端发送第二数据流的速率。如此,可以使得优先级较高的数据流能够以相对加快的速率传输至接收端。
在另一种可能的实施方式中,在所发送端根据拥塞场景的标识调整数据发送速率之后,发送端还可以获取第二确认消息,该第二确认消息中包括畅通标识,该畅通标识为用于指示发送端向接收端传输数据过程中未出现网络拥塞的标识,这样,发送端可以根据该畅通标识确定当前未存在网络拥塞,则可以增加发送端的数据发送速率。
如此,可以使得发送端能够快速恢复至正常速率以传输数据流,从而提高网络的吞吐量。并且,在解决网络拥塞问题后的1个往返时延内,发送端即能通过恢复数据发送速率来提高网络的吞吐量,如此可以尽可能避免数据发送速率恢复不及时而导致网络吞吐量下降。
第二方面,本申请提供了又一种处理网络拥塞的方法,该方法应用于包括多个主机的HPC集群,并且,该HPC集群中的多个主机通过网络设备相连,如通过路由器或者交换机等设备连接等。当其中任意一个主机向另一个主机发送数据时,发送数据的主机为发送端,而接收数据的主机为接收端。接收端获取公共传输路径网络拥塞标识和/或数据接收速率,其中,公共传输路径网络拥塞标识用于指示发送端向接收端传输数据过程中在公共传输路径出现网络拥塞;然后,接收端根据公共传输路径网络拥塞标识和/或数据接收速率确定网络拥塞场景,并向发送端发送第一确认消息,该第一确认消息包括网络拥塞场景标识,而该网络拥塞场景标识为用于指示发送端向接收端传输数据过程中出现网络拥塞的场景的标识。
如此,接收端不仅可以通过第一确认消息通知发送端数据接收成功,而且,还可以在确定网络拥塞场景后,利用该第一确认消息通知发送端当前存在的网络拥塞场景,以便发送端在获知网络拥塞场景的情况下,通过调整数据发送速率的方式来缓解网络拥塞问题,从而减少网络拥塞对于整个HPC集群的网络传输性能的影响。
在一种可能的实施方式中,网络拥塞的场景具体可以是接收端网络拥塞,则第一确认消息中的网络拥塞场景标识包括拥塞因子,该拥塞因子用于指示在接收端处发生网络拥塞的拥塞程度。例如,当该拥塞因子的值越大时,表征接收端处发生网络拥塞的拥塞程度越高,反之,当该拥塞因子的值越小时,表征接收端处发生网络拥塞的拥塞程度越小。
如此,接收端可以利用该拥塞因子的大小指示发送端对不同程度的接收端网络拥塞情况作出不同程度的调整,从而可以通过快速降低数据发送速率以尽可能避免网络的传输性能不会被严重影响。而且,实际应用时,接收端反馈拥塞因子时所占用的额外的网络带宽较小甚至不占用额外的网络带宽,相比于接收端直接将大量网络拥塞的相关信息反馈给发送端而言,可以有效减少缓解网络拥塞过程中对于网络链路的带宽占用,提高链路利用率。
在另一种可能的实施方式中,接收端获取第一数量以及第二数量,其中,该第一数量为接收端接收到第一类型的数据流的数量,而第二数量为接收端接收到第二类型的数据流的数量,并且第一类型的数据流的长度大于第二类型的数据流的长度;而接收端可以根据第一数量以及所述第二数量,生成拥塞因子。
在另一种可能的实施方式中,第一类型的数据流的长度大于长度阈值,而第二类型的数据流的长度小于该长度阈值。
在另一种可能的实施方式中,当发送端向接收端传输数据过程中未出现网络拥塞时,接收端生成第二确认消息,并且该第二确认消息包括畅通标识,而畅通标识为用于指示发送端向接收端传输数据过程中未出现网络拥塞的标识,从而接收端可以向发送端发送第二确认消息,以通知发送端当前未出现网络拥塞。如此,发送端可以在确定未出现网络拥塞时通过恢复数据发送速率来提高网络的吞吐量,以尽可能避免数据发送速率恢复不及时而导致网络吞吐量下降。
第三方面,本申请还提供了一种处理网络拥塞的装置,所述处理网络拥塞的装置包括用于执行第一方面或第一方面任一种可能实现方式中的处理网络拥塞的方法的各个模块。
第四方面,本申请还提供了一种处理网络拥塞的装置,所述处理网络拥塞的装置包括用于执行第二方面或第二方面任一种可能实现方式中的处理网络拥塞的方法的各个模块。
第五方面,本申请还提供了一种设备,包括:处理器和存储器;该存储器用于存储指令,当该设备运行时,该处理器执行该存储器存储的该指令,以使该设备执行上述第一方面或第一方面的任一实现方法中处理网络拥塞的方法,或者,以使该设备执行上述第二方面或第二方面的任一实现方法中处理网络拥塞的方法。
需要说明的是,该存储器可以集成于处理器中,也可以是独立于处理器之外。业务需求调整系统还可以包括总线。其中,处理器通过总线连接存储器。其中,存储器可以包括可读存储器以及随机存取存储器。
第六方面,本申请还提供了一种高性能计算集群,该集群中包括多个主机,所述多个主机中包括接收端和发送端,所述发送端用于执行上述第一方面或第一方面任意一种可能的实现方式中所述发送端所执行的方法的操作步骤的功能;所述接收端用于执行上述第二方面或第二方面中任一种可能的实现方式中所述接收端所执行的方法的操作步骤的功能。
第七方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面以及第一方面中任意一种实施方式所述的方法的操作步骤,或者,使得计算机执行上述第二方面以及第二方面中任意一种实施方式所述的方法。
第八方面,本申请提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面以及第一方面中任意一种实施方式所述的方法的操作步骤,或者,使得计算机执行上述第二方面以及第二方面中任意一种实施方式所述的方法。
本申请在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。
附图说明
图1为本申请实施例提供的一种HPC集群的网络架构示意图;
图2为本申请实施例提供的另一种HPC集群的网络架构示意图;
图3为本申请实施例提供的又一种HPC集群的网络架构示意图;
图4为本申请实施例提供的一种处理网络拥塞的方法的流程示意图;
图5为本申请实施例提供的队列深度与标记概率的对应关系的示意图;
图6为本申请实施例提供的一种处理网络拥塞的装置结构示意图;
图7为本申请实施例提供的另一种处理网络拥塞的装置结构示意图;
图8为本申请实施例提供的一种设备的硬件结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请中的技术方案进行描述。
高性能计算(high performance computing,HPC),是一种高性能计算架构,成百上千的主机(例如,服务器)会通过网络构成至少一个HPC集群,同一HPC集群中节点彼此并行工作,从而提高处理速度,实现高性能计算。为了便于解释,本申请的以下实施例中以HPC计算架构仅包括一个HPC集群,该HPC集群中包括三个组为例进行说明。
图1为本申请提供的一种HPC集群的网络架构示意图,如图所示,该网络架构可以是Dragonfly+拓扑网络架构,该网络架构包括多个组(group),图1中以该网络架构包括组1、组2以及组3为例进行说明。每个组包括脊(spine)节点以及叶(leaf)节点。其中,脊节点用于实现不同组间的通信连接,叶节点则用于实现同一组内主机和脊节点的通信连接,例如,叶节点L1用于实现主机C1与脊节点S1的通信连接,C1的数据可以通过L1和S1实现在组1,以及组1和其他组间的传输。脊节点可以是路由器或交换机等交换设备,叶节点可以是交换机或路由器等交换设备。每个组中脊节点与叶节点相连接,其中,一个脊节点可以连接多个叶节点,而一个叶节点也可以连接多个脊节点。每组的叶节点可以与本组中主机(host)相连接。可选地,在一些场景中,每组内的部分主机还可以直接与脊节点连接等。
值得注意的是,图1所示的网络架构中脊节点、叶子节点、主机或组的个数并不构成对本申请的限定,具体实施过程中,可以根据业务需求设置。此外,图1中是以不同组之间通过一条链路实现互联为例,即组1与组2仅通过脊节点S1与脊节点S5间一条数通信链路进行连接,组1与组3仅通过脊节点S4与脊节点S9间一条通信链路进行连接,组2与组3仅通过脊节点S12与脊节点S8间一条通信链路进行连接。
作为一种可能的实施例,HPC集群还可以通过其他形式构建网络架构,例如,同一HPC集群中不同组之间可以通过多条通信链路实现互连。示例地,图2为本申请提供的另一种HPC集群的网络架构示意图,如图所示,每个组中的所有脊节点均与其它组中的脊节点存在连接,其中,不同组的脊节点之间仅存在一条通信链路。作为另一种可能的实施例,图3为本申请提供的另一种HPC集群的网络架构示意图,如图所示,每个组中的所有脊节点均与其它组中的脊节点存在连接,其中,不同组的脊节点之间可以仅存在多条通信链路,图3与图2的区别在于,图3中不同组的脊节点之间存在两条通信链路,例如,组1中S1与组2中S5间存在两条通信链路。
基于上述图1至图3所示的任一网络架构,可能会发生网络拥塞。其中,网络拥塞,通常是指数据包(packet)在接收端处或发送端与接收端之间的传输链路上出现积压,导致数据包无法及时被传输至接收端的现象。本实施例中,发送端,是指发送数据包的源端,而接收端是指接收数据包的目的端,发送端与接收端之间用于传输数据包的通信链路中可以包括一个或者多个网络设备,如叶节点和/或脊节点。上述发送端和接收端分别用于指示网络架构中两个不同的主机,上述两个主机可以位于同一组内,也可以位于不同组内。例如,在图1所示的网络架构中,当图1中的主机C1向主机C6发送数据包时,主机C1即为发送端,而主机C6即为接收端,主机C1向主机C6发送的数据包可以依次通过叶节点L1、脊节点S1、脊节点S5以及叶节点L5传输至主机C6。
网络拥塞,按照其发生的场景又可以区分为公共传输路径发生网络拥塞或者接收端处发生网络拥塞。其中,公共传输路径,是指图1至图3所示的任一网络架构中实现发送端和接收端的数据传输的传输路径。当接收端和发送端位于同一组内时,公共传输路径为实现接收端和发送端的数据传输所经过的组内的网络设备构成的传输路径;当接收端和发送端分别位于不同组内时,公共传输路径为实现接收端和发送端的数据传输所经过的两个组内,以及组间互连的网络设备的集合所构成的传输路径。以跨组传输为例,在图1所示的网络架构中,主机C1可以通过包括叶节点L1、脊节点S1、脊节点S5、叶节点L5的传输路径将数据包传输给主机C6,同时,主机C2也可以通过该传输路径将数据包传输给主机C7,则,包括叶节点L1、脊节点S1、脊节点S5、叶节点L5的传输路径即为公共传输路径。
实际应用中,公共传输路径所具有的网络传输能力有限,可能无法支持大量数据同时在该公共传输路径上进行传输,因此,当需要在公共传输路径上传输的数据过多时,会导致该数据在该公共传输路径上产生网络拥塞,以下将这种网络拥塞场景称之为公共传输路径网络拥塞。
或者,当存在大量数据同时向同一接收端传输时,由于该接收端的端口接收数据的速率有限,使得该接收端无法及时处理所有数据,从而导致这些数据在该接收端处产生拥塞,以下将这种拥塞场景称之为接收端网络拥塞。
为此,本申请实施例提供给了一种处理网络拥塞的方法,在数据传输过程中,数据的接收端可以在网络出现网络拥塞时确定网络拥塞场景,如确定网络拥塞具体是公共传输路径网络拥塞还是接收端网络拥塞等,从而将其通知给发送端,这样,发送端可以根据网络拥塞场景,通过调整发送端的数据发送速率以缓解网络拥塞问题,从而减少网络拥塞对于整个HPC集群的网络传输性能的影响。并且,发送端针对于不同的网络拥塞场景,可以采用不同的策略来调整发送端的数据发送速率,从而可以实现有针对性地缓解不同网络拥塞问题,优化网络拥塞的处理效果。
值得注意的是,图1至图3所示的网络架构仅作为HPC集群的网络架构的示例性说明,并不用于限定本申请技术方案所能使用的网络架构局限于上述示例,比如,在本申请技术方案所能适用的其它可能的网络架构中,如Fattree网络等,在诸如Fattree网络的拓扑结构中,不同组间的脊节点也可以是通过核心层的交换机进行通信等。为了便于描述,本申请以下实施例中以图1所示的网络架构为例进行说明。
下面,结合图4进一步介绍本申请提供的处理网络拥塞的方法,图4为本申请实施例提供的一种处理网络拥塞的方法的流程示意图,以图1所示的网络架构出现网络拥塞的场景为公共传输路径网络拥塞和/或接收端拥塞为例进行说明,该方法包括:
S401:接收端获取公共传输路径网络拥塞标识,其中,公共传输路径网络拥塞标识用于指示发送端与接收端之间的公共传输路径发生网络拥塞。
具体实现时,数据在公共传输路径上传输过程中,该公共传输路径上的任意一个网络设备对于到达该网络设备的数据包可以采用先入先出(first in first out,FIFO)的方式转发该数据包,例如,先放入队列的数据包先被转发至接收端。其中,每个网络设备中可以配置一个或者多个队列,每个队列用于缓存待转发至公共传输路径中下一个网络设备的数据包,不同队列中所缓存的数据包会被转发至公共传输路径中不同的下一个网络设备。针对于同一网络设备中任意一个队列,若网络设备确定该队列中等待被转发的数据量较多,具体可以是该队列中等待被转发的数据包的个数大于或等于第一阈值时,则该网络设备可以判断该网络设备与该队列对应的下一个网络设备之间的公共传输路径上所需传输的数据量较大,该网络设备可以确定该公共传输路径存在网络拥塞。此时,该网络设备可以在该队列中等待被转发的数据包中添加公共传输路径网络拥塞标识。例如,网络设备可以修改该数据包的前向显式拥塞通知(forward explicit congestion notification,FECN)标志位的数值,如将该标志位的数值由0置为1等,以便利用该FECN标志位指示公共传输路径上出现网络拥塞。而当上述队列中等待被转发的数据包的数量小于第二阈值时,该网络设备判断该队列对应的下一个网络设备之间的公共传输路径未出现网络拥塞,则无需在该队列的数据包中添加标记,例如,该队列中数据包的FECN标志位的数值保持默认值(如0)。本实施例中,第二阈值小于前述第一阈值。而当该队列中等待被转发的数据包的数量小于第一阈值且大于第二阈值时,网络设备可以根据该队列中的数据量按照一定概率对该队列中的数据包进行标记,其中,该队列中的数据量越大,则网络设备为该队列中的数据包添加公共传输路径网络拥塞标识的概率越大。
作为一种示例,网络设备对队列中的数据包进行标记的概率与队列长度的关系可以如图5所示。即,针对于每个队列,当该队列中的数据量小于第二阈值时,网络设备对于该队列中的每个数据包均不进行公共传输路径网络拥塞标识的标记,即添加标识的概率为0;而当该队列中的数据量大于第一阈值时,网络设备会为该队列中的每个数据包添加公共传输路径网络拥塞标识,即添加标识的概率为1;而当该队列中的数据量位于第一阈值与第二阈值之间时,网络设备为该队列中的每个数据包添加公共传输路径网络拥塞标识的概率与该队列中的数据量关系,如图5中的上升曲线所示。当然,队列中的数据量与标记概率的对应关系也可以是基于其它方式进行实现,本实施例对此并不进行限定。
可选地,第一阈值也可以等于第二阈值(以下以第一阈值代替),此时,当同一网络设备判断任意一个队列中待转发的数据包的数量大于第一阈值,则修改该数据包的前向显式拥塞通知标志位的数值;当同一网络设备判断任意一个队列中待转发的数据包的数量包的数量均小于第一阈值时,则无需修改该数据包的前向显式拥塞通知标志位的数值。
如此,接收端在接收到数据后,可以从该数据中解析得到公共传输路径网络拥塞标识。
S402、接收端获取接收端的数据接收速率。
本实施例中,接收端还可以获取接收端的数据接收速率,该数据接收速率可以是由接收端统计一个周期(例如,一段时间段)内其所接收到的数据量进行计算得到。具体地,接收端可以配置定时器和计数器,并且该定时器被预先设定计时周期为T,即每隔T时间重新开始进行计时。在每个计时周期内,接收端可以利用计数器统计其在该周期内所接收到所有数据包的数据量的总和,如所有数据包的大小的总和,以下称之为总数据量D,从而接收端可以通过计算总数据量D与计时周期T的时长的比值(D/T),得到接收端在该计时周期内接收数据的平均速率,并将该平均速率作为上述接收端的数据接收速率。实际应用时,也可以是将接收端的吞吐量作为该接收端的数据接收速率。
值得注意的是,本实施例中,对于步骤S401与S402的执行顺序并不进行限定,比如,在其它示例中,也可以是同时执行步骤S401以及S402,或者可以是先执行步骤S402后执行步骤S401等。
S403:接收端根据获取的公共传输路径网络拥塞标识和/或数据接收速率,确定网络拥塞场景。
当网络中出现网络拥塞时,可能是因为发送端与接收端之间的公共传输路径出现网络拥塞,也可能是因为接收端处出现网络拥塞,即存在多种不同的拥塞场景。本实施例中,接收端在接收发送端发送的数据的过程中,可以先确定该数据在由发送端传输至接收端的过程中,是否存在网络拥塞问题,以及当确定存在网络拥塞时具体存在何种网络拥塞场景。
具体实现时,接收端可以根据公共传输路径网络拥塞标识确定公共传输路径发生网络拥塞。比如,公共传输路径网络拥塞标识具体为数据包中的FECN标志位,并且,当该FECN标志位的数值为1时,接收端可以确定公共传输路径存在网络拥塞,而当数据包中的FECN标志位的数值为0时,接收端可以确定公共传输路径未发生网络拥塞。
另外,接收端还可以根据数据接收速率确定接收端处是否发生网络拥塞。例如,接收端可以比较当前数据接收速率与预设的接收速率阈值之间的大小,若接收端的数据接收速率大于该接收速率阈值,则说明接收端接收数据的负载较大,此时,可以确定接收端在当前时刻已经出现网络拥塞。示例地,接收速率阈值可以是通过下述公式(1)进行计算得到:
V=α*B 公式(1)
其中,V为接收速率阈值,B为接收端接收数据的最大速率,α为可调的权重值,如为0.75等。实际应用时,α的取值可以是小于1的经验值,在不同的网络中,α的取值可以不同。
基于上述示例,本实施例中,接收端确定网络拥塞场景包括如下四种:
1)当前未发生网络拥塞,则,接收端的数据接收速率小于接收速率阈值,且接收端接收到的数据包中FECN标志位的值为0;
2)当前仅发生公共传输路径网络拥塞,则,数据接收速率小于接收速率阈值,且FECN标志位的值为1;
3)当前仅发生接收端网络拥塞,则,数据接收速率大于接收速率阈值,且FECN标志位的值为0;
4)当前同时发生公共传输路径网络拥塞以及接收端网络拥塞,则,数据接收速率大于接收速率阈值,且FECN标志位的值为1。
进一步地,接收端通常会通过确认消息向发送端反馈数据接收的结果确认,例如ACK(acknowledgement)消息,以便通知发送端其发送的数据已经被接收端成功接收。本实施例中,当接收端通过上述方式确定存在网络拥塞时,接收端可以在向发送端反馈的第一确认消息中,添加网络拥塞场景标识,以便于在出现网络拥塞时,及时告知发送端并使得发送端采取相应措施以缓解网络拥塞对于整个HPC集群的网络传输性能的影响。
可选地,也可以直接在第一确认消息中携带的数据指示具体网络拥塞场景。以下对该网络拥塞场景标识的几种可能实现分别进行介绍。
当发生公共传输路径网络拥塞时,接收端在第一确认消息中添加的网络拥塞场景标识,例如可以是第一确认消息包括的用于指示后向显式拥塞通知(backward explicitcongestion notification,BECN)标志位的字段取值,该字段的取值可以指示是否存在公共传输路径网络拥塞,例如,BECN标志位的字段的取值默认为0,而当该标志位被设置为1时,则指示公共传输路径出现公共传输路径网络拥塞。这样,发送端接收到第一确认消息时,发送端可以根据该公共传输路径网络拥塞标识的取值,确定当前是否存在公共传输路径网络拥塞。
当发生接收端网络拥塞时,接收端在第一确认消息中添加的网络拥塞场景标识,例如可以是第一确认消息中的预留字段的特定取值指示是否存在接收端网络拥塞,例如,该预留字段的取值可以默认为0,而当预留字段被设置为1时,则指示接收端出现接收端网络拥塞。这样,发送端可以根据该第一确认消息中包含的预留字段的取值,确定当前是否存在接收端网络拥塞。或者,接收端在第一确认消息中添加的网络拥塞场景标识,例如可以是第一确认消息中携带的数据,该数据具体可以是拥塞因子,并且该拥塞因子用于指示接收端处出现拥塞的程度。在一些场景中,也可以是通过定义第一确认消息中预留字段的取值来定义第一确认消息中的拥塞因子的取值。示例性地,该拥塞因子的取值越大时,可以表征接收端处出现网络拥塞的拥塞程度越大,反之,该拥塞因子的取值越小时,可以表征该接收端处出现网络拥塞的拥塞程度越小。
在一种计算拥塞因子的示例中,接收端在接收数据流(包括一个或者多个数据包)时,可以按照数据流的长度划分为两种,一种是长度大于预设的长度阈值的第一类型的数据流(也可简称为“大流”),而另一种是长度小于该长度阈值的第二类型的数据流(也可简称为“小流”)。其中,每个数据流中可以包括一个或者多个数据包。对于接收到的同一数据流的多个数据包,接收端可以根据第一个数据包的包头中携带的特定字段确定数据流的长度,例如,该特定字段可以是基于无限带宽(InfiniBand,IB)协议的DMALength字段,并且该字段的值可以指示数据流的长度。然后,接收端通过比较该数据流的长度与长度阈值之间的大小,确定接收端接收到的数据流为大流还是小流。
同时,接收端还可以维护一个大流表以及小流表,并且,大流表用于记录接收端所接收到的长度较大的数据流(例如,长度大于或等于上述长度阈值的数据流),小流表用于记录接收端所接收到的长度较小的数据流(例如,长度小于上述长度阈值的数据流),并且大流表以及小流表中所记录的数据流可以进一步用于计算上述拥塞因子。
示例性地,接收端在利用大流表以及小流表记录数据流信息时,可以是通过键值对(key-value)的形式对数据流进行记录,其中,key值为数据流的源地址,如发送端的IP地址等,value值为来自该源地址的数据流的数据量。
在一种实现方式中,接收端可以将来自同一源地址的多条数据流计为一个数据流,即value值可以默认为1,如此,大流表中所记录的大流可能是由多个小流构成。此时。大流表中记录的数据流的个数即为接收端当前所接收到所有大流的数量,也可以称之为大流表的长度;类似地,小流表中记录的数据流的个数可以称之为小流表的长度。
接收端在计算拥塞因子时,可以先区分接收到的数据流属于大流还是小流,并可以同时确定该数据流的源地址,然后,接收端可以从相应的大流表或者小流表(依据数据流的长度大小而定)中查询是否存在该源地址对应的键值对。若不存在,则在该大流表或者小流表中添加键值对,其中,key值为该数据流的源地址,value值为1;而若存在,则接收端可以无需改动大流表或小流表。相应的,当该数据流接收完成时,接收端还可以从大流表或者小流表中删除对于该数据流的信息记录,即可以将以该数据流的源地址作为key值的键值对,从表中删除。
然后,接收端可以根据大流表的长度m以及小流表的长度n计算得到拥塞因子K,其中,大流表的长度m用于指示长度较大的数据流的数量,小流表的长度n用于指示长度较小的数据流的数量。示例性地,可以是通过如下公式(2)计算出拥塞因子:
K=a*m+b*n 公式(2)
其中,a和b为权重值。实际应用时,由于大流和小流对于网络拥塞的影响不同,具体为大流所需传输的数据量较大、数据传输时间较长,使得大流对于网络拥塞的影响较大;相应的,小流所需传输的数据量较小,数据传输时间较短,使得小流对于网络拥塞的影响较小,因此,在设置a和b的取值时,a的取值可以大于b的取值,例如a为0.6,b为0.4等。当然,在其它可能的实施方式中,a和b的取值也可以是基于其它方式进行确定,例如,在确定a和b的取值时,还可以结合大流表以及小流表中所记录的各个数据流的长度进行综合考虑,例如当多个大流的平均数据长度与上述长度阈值之间的差值越大时,a和b之间的差值也可以越大,如a为0.8,b为0.2等。
当然,上述计算拥塞因子的具体实现过程仅作为一种示例性说明,并不用于限定其具体实现局限于该示例,例如,在其它可能的示例中,接收端可以将来自同一源地址的多条数据流计为多个数据流,即value值具体为该多条数据流的数量,从而上述公式(2)中参与计算的大流表的长度m即为大流表中所有键值对中value值的总和,此时,m值大于或者等于大流表中键值对的总个数,类似地,小流表的长度n即为小流表中所有键值对中value值的总和。
本实施例中,当接收端处未发生网络拥塞时,该拥塞因子的取值可以直接设置为0,而当接收端处发生网络拥塞时,该拥塞因子的取值可以通过上述过程计算得到。如此,接收端在第一确认消息中添加的拥塞因子,可以用于标识该接收端处是否发生网络拥塞。具体地,当拥塞因子K的取值为0时,表征接收端处未发生网络拥塞;当拥塞因子K的取值非0时,表征接收端处发生了网络拥塞,并且,K的取值越大,说明接收端处发生网络拥塞的程度越严重。
S404:接收端向发送端发送第一确认消息,其中,该第一确认消息包括网络拥塞场景标识。
S405:发送端根据第一确认消息中包含的网络拥塞场景标识,调整发送端的数据发送速率。
发送端在根据第一确认消息,确认数据是否成功到达接收端的同时,还可以根据该第一确认消息中携带的网络拥塞场景标识,确定数据在从发送端传输至接收端的过程中是否存在网络拥塞,以及在网络拥塞时所属的具体网络拥塞场景。例如,当发送端从第一确认消息中解析出上述拥塞因子K的取值非零时,发送端可以确定数据在接收端处进行传输时发生网络拥塞,而当在第一确认消息中解析出上述BECN标志物的取值为1时,发送端可以确定数据在公共传输路径上进行传输时发生网络拥塞。当然,若K的取值为0且BECN标志位的取值也为0,则发送端可以确定数据在传输过程中未发生网络拥塞。
作为一种可能的实施例,第一确认消息除了由接收端生成并发送给发送端外,第一确认消息也可以来自于发送端与接收端之间的网络设备。例如,当该网络设备在转发发送端与接收端之间的数据包时,若确定当前存在公共传输路径发生网络拥塞,则该网络设备可以生成包含公共传输路径网络拥塞标识的第一确认消息,并向发送端发送该第一确认消息,以便发送端根据该第一确认消息中的公共传输路径网络拥塞标识,确定当前存在公共传输路径发生公共传输路径网络拥塞。其中,该网络设备例如可以是交换机或者路由器等设备。
值得注意的是,本实施例中,在处理不同拥塞场景时,发送端所执行的处理策略并不相同,即拥塞场景为接收端网络拥塞时发送端对于数据发送速率的调整,与拥塞场景为公共传输路径网络拥塞时发送端对于数据发送速率的调整存在差异。例如,发送端在确定存在接收端网络拥塞时,可以根据拥塞因子的大小降低发送端的数据发送速率,而在确定存在公共传输路径网络拥塞时,可以将发送端的数据发送速率降低至预设速率等。以下分别对发送端针对接收端网络拥塞以及公共传输路径网络拥塞这两种不同场景所执行的调整数据发送速率的策略进行示例性介绍。
在针对接收端网络拥塞调整数据发送速率时,发送端可以从第一确认消息中解析出拥塞因子,并根据该拥塞因子的取值非0时确定存在接收端拥塞,然后,发送端可以根据该拥塞因子的大小,降低发送端的数据发送速率。比如,在未存在网络拥塞的情况下,发送端的数据发送速率为V1,而在发生接收端网络拥塞的情况下,发送端可以将数据发送速率由V1降低至V2,其中,V2=V1/K,即将数据发送速率降低为正常传输时的1/K。或者,发送端的数据发送速率与拥塞因子的取值满足其它可能的反比关系,即拥塞因子越大,发送端的数据发送速率越小。这样,后续发送端在发送数据时,由于数据发送速率减小,从而数据在传输至接收端时,对于接收端接收该数据的压力可以得到减少,也即可以降低接收端的数据接收速率,从而可以有效缓解接收端网络拥塞问题。
进一步地,发送端还可以结合拥塞因子以及数据流的长度降低发送端的数据发送速率。具体地,当发送端当前发送的数据包属于长度较大的数据流(也即大流)时,发送端可以将数据发送速率降低为正常传输时的1/K。而当发送端当前发送的数据包属于长度较小的数据流(也即小流)时,由于小流所需的传输时间较短,并且通常情况下小流对时延比较敏感,因此,发送端可以不降低发送端的数据发送速率;或者,发送端针对于小流而降低数据发送速率的幅度可以小于针对于大流降低数据发送速率的幅度,如发送端针对于大流将数据发送速率降低至正常传输时的1/K,而发送端针对于小流将数据发送速率降低至正常传输时的2/K(K大于2)等。
当然,上述示例中,仅用于对存在接收端网络拥塞时发送端降低数据发送速率的具体实现进行示例性说明,实际应用时,也可以采用其它方式降低发送端的数据发送速率,本实施例对此并不进行限定。
值得注意的是,由于拥塞因子表征了接收端处发生网络拥塞的严重程度,从而发送端根据该拥塞因子,可以对不同程度的接收端网络拥塞情况作出不同程度的降速,如接收端网络拥塞程度较轻时(K的取值较小),发送端降低数据发送速率的幅度较小,如此可以使得发送端在降低数据发送速率后,网络的吞吐量不会过低,而当接收端网络拥塞程度较严重时(K的取值较大),发送端降低数据发送速率的幅度较大,如此可以通过快速降低数据发送速率以尽可能避免网络的传输性能不会被严重影响。而且,接收端反馈拥塞因子时所占用的额外的网络带宽较小甚至不占用额外的网络带宽(如拥塞因子通过复用ACK消息中的已有字段/保留字段进行定义等),相比于接收端直接将大量网络拥塞的相关信息反馈给发送端而言,可以有效减少缓解网络拥塞过程中对于网络链路的带宽占用,提高链路利用率。
在针对公共传输路径网络拥塞调整数据发送速率时,发送端从该第一确认消息中解析出的公共传输路径网络拥塞标识(如BECN标志位等)确定当前存在公共传输路径发生网络拥塞,并可以是按照预设的规则降低发送端的数据发送速率等,如默认将数据发送速率降低至调整前的数据发送速率的1/2等,或者是将该数据发送速率降低至指定速率等。
进一步地,发送端还可以根据数据流的优先级对发送端的数据发送速率进行调整。例如,发送端在确定当前存在公共传输路径网路拥塞后,可以确定待发送数据流的优先级,并根据该数据流的优先级确定数据发送速率的降低幅度。例如,发送端可以根据下述公式(3)计算出降低后的数据发送速率:
C2=C1*f(sl) 公式(3)
其中,C1为调整前的数据发送速率,C2为调整后的数据发送速率,sl为数据流的优先级,f(sl)为该数据流对应的降速因子。其中,数据流的优先级,例如可以是该数据流对应的服务等级(service level),并且,当数据流的优先级越低时,f(sl)降速因子的取值越小,也即数据发送速率降低幅度越大,反之,当数据流的优先级越高时,f(sl)降速因子的取值越大,也即数据发送速率降低幅度越小。实际应用时,也可以采用其它方式调整发送端的数据发送速率,例如,当数据流的优先级满足一定条件时,发送端也可以是不降低发送端的数据发送速率,本实施例对此并不进行限定。
为进一步缓解公共传输路径网络拥塞问题,在发送端调整数据发送速率的同时,网络中的部分设备还可以调整用于传输发送端与接收端之间的通信数据的公共传输路径,例如可以是通过自适应路由策略,将发送端发送的数据通过未发生网络拥塞的其它公共传输路径传输给接收端,以此来减少当前发生网络拥塞的公共传输路径上的流量,进一步缓解公共传输路径网络拥塞问题。例如,当公共传输路径上的网络设备确定该公共传输路径发生网络拥塞时,该网络设备可以确定该网络设备所在的其它各个公共传输路径上的待转发数据包的数量,并从中进一步确定待转发数据包的数量最少的其它公共传输路径,从而网络设备可以利用确定出的其它公共传输路径来传输原先需要在已经发生网络拥塞的公共传输路径传输的数据包。
其中,当发送端确定当前同时存在接收端网络拥塞以及公共传输路径网络拥塞时,由于网络拥塞较为严重,因此,发送端可以将数据发送速率降低至指定的数据发送速率,如发送端的数据发送速率下限等,或者发送端也可以是停止发送数据,直至网络拥塞得到缓解或者解决时,发送端再继续发送数据并上调数据发送速率。
需要说明的是,本实施例中,是以接收端同时判断公共传输路径是否发生网络拥塞以及接收端处是否发生网络拥塞为例进行示例性说明,实际应用时,接收端也可以是仅判断公共传输路径是否发生网络拥塞,或者,接收端可以仅判断接收端处是否发生网络拥塞。因此,在其它可能的实施例中,可以是仅执行本实施例中的步骤S401、以及S403至S405,或者可以是仅执行本实施例中的步骤S402至S405等。
本实施例中,发送端通过针对于不同网络拥塞场景执行不同的处理策略,可以针对性的缓解网络拥塞所导致的网络传输性能下降问题,从而可以提高网络传输性能的稳定性。并且,在检测到存在网络拥塞时,接收端通过反馈一个确认消息即可触发发送端对于数据发送速率的有效调控,从而不仅可以有效解决网络拥塞问题,而且,在发生网络拥塞后的1个往返时延(round trip time,RTT)内即能针对性的解决网络拥塞问题,这使得网络拥塞控制更加及时。
进一步地,若发送端在降低数据发送速率并使得网络拥塞问题得到解决时,接收端在接收到发送端发送的数据后,可以确定是否仍然存在网络拥塞,并在确定未发生网络拥塞时,如接收端的数据接收速率小于上述接收速率阈值,且数据包中的FECN标志位的值为0,则接收端可以生成包括有畅通标识的第二确认消息,并将其反馈给发送端。这样,发送端不仅可以基于该第二确认消息确定数据已经成功被接收端所接收,而且,还可以根据第二确认消息中携带的畅通标识,确定数据在传输过程中未发生网络拥塞。此时,发送端可以增加发送端的数据发送速率,以使得发送端能够快速恢复至正常速率以传输数据流,从而提高网络的吞吐量。由于在解决网络拥塞问题后的1个RTT内,发送端即能通过恢复数据发送速率来提高网络的吞吐量,如此可以尽可能避免数据发送速率恢复不及时而导致网络吞吐量下降。其中,第二确认消息中携带的畅通标识的具体实现,与第一确认消息中携带网络拥塞场景标识的具体实现类似,如可以通过定义第二确认消息中特定字段的取值来指示发送端向接收端传输数据的过程中未发生网络拥塞等,具体过程可参照前述相关之处描述,在此不做赘述。
值得注意的是,本领域的技术人员根据以上描述的内容,能够想到的其他合理的步骤组合,也属于本申请的保护范围内。其次,本领域技术人员也应该熟悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本申请所必须的。
上文中结合图1至图5,详细描述了本申请所提供的处理网络拥塞的方法,下面将结合图6至图8,描述根据本申请所提供的处理网络拥塞的装置和计算设备。
图6为本申请提供的一种处理网络拥塞的装置的结构示意图,该装置600应用于高性能计算HPC集群中的发送端,该集群包括多个主机,并且该多个主机通过网络设备相连,该装置600可以包括:
获取模块601,用于获取第一确认消息,所述第一确认消息包括网络拥塞场景标识,其中,所述网络拥塞场景标识为用于指示所述发送端向接收端传输数据过程中出现网络拥塞的场景的标识,所述发送端和所述接收端分别为所述多个主机中任意两个主机;
调整模块602,用于根据所述网络拥塞场景标识调整所述发送端的数据发送速率。
应理解的是,本申请实施例的装置600可以通过中央处理器(central processingunit,CPU)实现,也可以通过专用集成电路(application-specific integrated circuit,ASIC)实现,或可编程逻辑器件(programmable logic device,PLD)实现,上述PLD可以是复杂程序逻辑器件(complex programmable logical device,CPLD),现场可编程门阵列(field-programmable gate array,FPGA),通用阵列逻辑(generic array logic,GAL)或其任意组合。也可以通过软件实现图4所示的数据处理方法时,装置600及其各个模块也可以为软件模块。
可选地,所述网络拥塞场景标识指示接收端出现网络拥塞,所述网络拥塞场景标识包括拥塞因子,所述拥塞因子用于指示在所述接收端处发生网络拥塞的拥塞程度。
可选地,所述发送端向所述接收端传输的数据流包括第一类型的数据流以及第二类型的数据流,所述第一类型的数据流的长度大于所述第二类型的数据流的长度;
所述调整模块602具体用于根据所述拥塞因子,降低所述发送端发送所述第一类型的数据流的数据发送速率。
可选地,所述网络拥塞的场景为公共传输路径网络拥塞,所述调整模块602,具体用于获取待发送的数据流的优先级;以及,用于根据所述待发送的数据流的优先级,降低所述发送端发送所述数据流的速率。
可选地,所述待发送的数据流包括第一数据流以及第二数据流,所述第一数据流的优先级高于所述第二数据流的优先级,所述发送端发送所述第一数据流的速率高于所述发送端发送所述第二数据流的速率。
可选地,在所述发送端根据所述拥塞场景的标识调整所述发送端的数据发送速率之后,所述获取模块601,还用于获取第二确认消息,所述第二确认消息包括畅通标识,所述畅通标识为用于指示所述发送端向接收端传输数据过程中未出现网络拥塞的标识;
所述调整模块602,还用于根据所述畅通标识,增加所述发送端的数据发送速率。
由于装置600可以根据网络拥塞场景标识确定网络拥塞场景,并通过调整发送端的数据发送速率以缓解网络拥塞问题,从而减少网络拥塞对于整个HPC集群的网络传输性能的影响。并且,装置600针对于不同的网络拥塞场景,可以采用不同的策略来调整发送端的数据发送速率,从而可以实现有针对性地缓解不同网络拥塞问题,优化网络拥塞的处理效果。
根据本申请实施例的处理网络拥塞的装置600可对应于发送端作为执行主体所执行的本申请实施例中描述的方法的操作步骤,并且处理网络拥塞的装置600的各个模块的上述和其它操作和/或功能分别为了实现图4中的各个方法的相应流程,为了简洁,在此不再赘述。
图7为本申请提供的一种处理网络拥塞的装置的结构示意图,该装置700应用于高性能计算HPC集群中的接收端,该集群包括多个主机,并且该多个主机通过网络设备相连,该装置700可以包括:
获取模块701,用于获取公共传输路径网络拥塞标识和/或数据接收速率,所述公共传输路径网络拥塞标识用于指示发送端向所述接收端传输数据过程中在公共传输路径出现网络拥塞,所述发送端与所述接收端分别为所述多个主机中任意两个主机;
确定模块702,用于根据所述公共传输路径网络拥塞标识和/或数据接收速率确定网络拥塞场景;
传输模块703,用于向所述发送端发送第一确认消息,所述第一确认消息包括网络拥塞场景标识,所述网络拥塞场景标识为用于指示所述发送端向接收端传输数据过程中出现网络拥塞的场景的标识。
应理解的是,本申请实施例的装置700可以通过中央处理器(CPU)实现,也可以通过专用集成电路(ASIC)实现,或可编程逻辑器件(PLD)实现,上述PLD可以是复杂程序逻辑器件(CPLD),现场可编程门阵列(FPGA),通用阵列逻辑(GAL)或其任意组合。也可以通过软件实现图4所示的数据处理方法时,装置700及其各个模块也可以为软件模块。
可选地,所述网络拥塞的场景为接收端网络拥塞,所述网络拥塞场景标识包括拥塞因子,所述拥塞因子用于指示在所述接收端处发生网络拥塞的拥塞程度。
可选地,所述获取模块701,还用于获取第一数量以及第二数量,所述第一数量为所述接收端接收到第一类型的数据流的数量,所述第二数量为所述接收端接收到第二类型的数据流的数量,所述第一类型的数据流的长度大于所述第二类型的数据流的长度;
所述装置700还包括:生成模块704,用于根据所述第一数量以及所述第二数量,生成所述拥塞因子。
可选地,所述第一类型的数据流的长度大于长度阈值,所述第二类型的数据流的长度小于所述长度阈值。
可选地,所述装置还包括:生成模块704,用于当所述发送端向所述接收端传输数据过程中未出现网络拥塞时,所述接收端生成第二确认消息,所述第二确认消息包括畅通标识,所述畅通标识为用于指示所述发送端向接收端传输数据过程中未出现网络拥塞的标识;
所述传输模块703,还用于向所述发送端发送所述第二确认消息。
由于装置700可以向发送端反馈网络拥塞场景,以便发送端能够在装置700的指示下并通过调整发送端的数据发送速率以缓解网络拥塞问题,从而减少网络拥塞对于整个HPC集群的网络传输性能的影响。
根据本申请实施例的处理网络拥塞的装置700可对应于执行本申请实施例中描述的方法,并且处理网络拥塞的装置700的各个模块的上述和其它操作和/或功能分别为了实现图4中的各个方法的相应流程,为了简洁,在此不再赘述。
图8为本申请提供的一种设备800的示意图,如图所示,所述设备800包括处理器801、存储器802、通信接口803。其中,处理器801、存储器802、通信接口803通过总线804进行通信,也可以通过无线传输等其他手段实现通信。该存储器802用于存储指令,该处理器801用于执行该存储器802存储的指令。进一步地,设备800还可以包括内存单元805,还内存单元805可以通过总线804与处理器801、存储器802以及通信接口803连接。其中,该存储器802存储程序代码,且处理器801可以调用存储器802中存储的程序代码执行以下操作:
获取第一确认消息,所述第一确认消息包括网络拥塞场景标识,其中,所述网络拥塞场景标识为用于指示所述发送端向接收端传输数据过程中出现网络拥塞的场景的标识,所述发送端和所述接收端分别为所述多个主机中任意两个主机;
根据所述网络拥塞场景标识调整所述发送端的数据发送速率。其中,该设备800可以是发送端的硬件实现。
应理解,在本申请实施例中,该处理器801可以是CPU,该处理器801还可以是其他通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立器件组件等。通用处理器可以是微处理器或者是任何常规的处理器等。
该存储器802可以包括只读存储器和随机存取存储器,并向处理器801提供指令和数据。存储器802还可以包括非易失性随机存取存储器。例如,存储器802还可以存储设备类型的信息。
该存储器802可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data date SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlinkDRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DR RAM)。
该通信接口803用于与设备800连接的其它设备进行通信。该总线804除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线804。
应理解,根据本申请实施例的设备800可对应于本申请实施例中的装置600,并可以对应于执行根据本申请实施例中图4所示方法中接收端作为执行主体所执行的功能,并且设备800所实现的上述和其它操作和/或功能分别为了实现图4中的各个方法的相应流程,为了简洁,在此不再赘述。
本申请还提供的一种设备,该设备与图8所示设备结构类似,包括处理器、存储器、通信接口。其中,处理器、存储器、通信接口通过总线进行通信,也可以通过无线传输等其他手段实现通信。该存储器用于存储指令,该处理器用于执行该存储器存储的指令。进一步地,设备还可以包括内存单元,还内存单元可以通过总线与处理器、存储器以及通信接口连接。其中,该存储器存储程序代码,且处理器可以调用存储器中存储的程序代码执行以下操作:
获取公共传输路径网络拥塞标识和/或数据接收速率,所述公共传输路径网络拥塞标识用于指示发送端向所述接收端传输数据过程中在公共传输路径出现网络拥塞,所述发送端与所述接收端分别为所述多个主机中任意两个主机;
根据所述公共传输路径网络拥塞标识和/或数据接收速率确定网络拥塞场景;
向所述发送端发送第一确认消息,所述第一确认消息包括网络拥塞场景标识,所述网络拥塞场景标识为用于指示所述发送端向接收端传输数据过程中出现网络拥塞的场景的标识。其中,该设备为接收端的硬件实现。
应理解,在本申请实施例中,该处理器可以是CPU,该处理器还可以是其他通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立器件组件等。通用处理器可以是微处理器或者是任何常规的处理器等。
该存储器可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据。存储器还可以包括非易失性随机存取存储器。例如,存储器还可以存储设备类型的信息。
该存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器ROM、PROM、EPROM、EEPROM或闪存。易失性存储器可以是RAM,其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如SRAM、DRAM、SDRAM、DDR SDRAM、ESDRAM、SLDRAM和DR RAM。
该通信接口用于与设备连接的其它设备进行通信。该总线除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线。
应理解,根据本申请实施例的设备可对应于本申请实施例中的装置700,并可以对应于执行根据本申请实施例中图4所示方法中的接收端作为主体所执行的操作步骤,并且设备所实现的上述和其它操作和/或功能分别为了实现图4中的各个方法的相应流程,为了简洁,在此不再赘述。
上述实施例,可以全部或部分地通过软件、硬件、固件或其他任意组合来实现。当使用软件实现时,上述实施例可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载或执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以为通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集合的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质。半导体介质可以是固态硬盘(solid state drive,SSD)
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

Claims (18)

1.一种处理网络拥塞的方法,其特征在于,所述方法应用于高性能计算HPC集群,所述集群包括多个主机,所述多个主机通过网络设备相连,所述方法包括:
发送端获取第一确认消息,所述第一确认消息包括网络拥塞场景标识,其中,所述网络拥塞场景标识为用于指示所述发送端向接收端传输数据过程中出现网络拥塞的场景的标识,所述发送端和所述接收端分别为所述多个主机中任意两个主机;
所述发送端根据所述网络拥塞场景标识调整所述发送端的数据发送速率。
2.根据权利要求1所述的方法,其特征在于,所述网络拥塞场景标识指示所述接收端出现网络拥塞,所述网络拥塞场景标识包括拥塞因子,所述拥塞因子用于指示在所述接收端处引起网络拥塞的影响因素。
3.根据权利要求2所述的方法,其特征在于,所述发送端向所述接收端传输的数据流包括第一类型的数据流以及第二类型的数据流,所述第一类型的数据流的长度大于所述第二类型的数据流的长度;
所述发送端根据所述拥塞场景的标识调整所述发送端的数据发送速率,包括:
所述发送端根据所述拥塞因子,调整所述发送端发送所述第一类型的数据流的数据发送速率。
4.根据权利要求1所述的方法,其特征在于,所述网络拥塞的场景为公共传输路径网络拥塞,所述发送端根据所述拥塞场景的标识调整所述发送端的数据发送速率,包括:
所述发送端获取待发送的数据流的优先级;
所述发送端根据所述待发送的数据流的优先级,调整所述发送端发送所述数据流的速率。
5.根据权利要求4所述的方法,其特征在于,所述待发送的数据流包括第一数据流以及第二数据流,所述第一数据流的优先级高于所述第二数据流的优先级,所述发送端发送所述第一数据流的速率高于所述发送端发送所述第二数据流的速率。
6.一种处理网络拥塞的方法,其特征在于,所述方法应用于高性能计算HPC集群,所述集群包括多个主机,所述多个主机通过网络设备相连,所述方法包括:
接收端获取公共传输路径网络拥塞标识和/或数据接收速率,所述公共传输路径网络拥塞标识用于指示发送端向所述接收端传输数据过程中在公共传输路径出现网络拥塞,所述发送端与所述接收端分别为所述多个主机中任意两个主机;
所述接收端根据所述公共传输路径网络拥塞标识和/或数据接收速率确定网络拥塞场景;
所述接收端向所述发送端发送第一确认消息,所述第一确认消息包括网络拥塞场景标识,所述网络拥塞场景标识为用于指示所述发送端向接收端传输数据过程中出现网络拥塞的场景的标识。
7.根据权利要求6所述的方法,其特征在于,所述网络拥塞场景标识指示接收端出现网络拥塞,所述网络拥塞场景标识包括拥塞因子,所述拥塞因子用于指示在所述接收端处发生网络拥塞的拥塞程度。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
所述接收端获取第一数量以及第二数量,所述第一数量为所述接收端接收到第一类型的数据流的数量,所述第二数量为所述接收端接收到第二类型的数据流的数量,所述第一类型的数据流的长度大于所述第二类型的数据流的长度;所述第一类型的数据流的长度大于长度阈值,所述第二类型的数据流的长度小于所述长度阈值;
所述接收端根据所述第一数量以及所述第二数量,生成所述拥塞因子。
9.一种处理网络拥塞的装置,其特征在于,所述装置应用于高性能计算HPC集群中的发送端,所述集群包括多个主机,所述多个主机通过网络设备相连,所述装置包括:
获取模块,用于获取第一确认消息,所述第一确认消息包括网络拥塞场景标识,其中,所述网络拥塞场景标识为用于指示所述发送端向接收端传输数据过程中出现网络拥塞的场景的标识,所述发送端和所述接收端分别为所述多个主机中任意两个主机;
调整模块,用于根据所述网络拥塞场景标识调整所述发送端的数据发送速率。
10.根据权利要求9所述的装置,其特征在于,所述网络拥塞场景标识指示所述接收端出现网络拥塞,所述网络拥塞场景标识包括拥塞因子,所述拥塞因子用于指示在所述接收端处发生网络拥塞的拥塞程度。
11.根据权利要求10所述的装置,其特征在于,所述发送端向所述接收端传输的数据流包括第一类型的数据流以及第二类型的数据流,所述第一类型的数据流的长度大于所述第二类型的数据流的长度;
所述调整模块具体用于根据所述拥塞因子,降低所述发送端发送所述第一类型的数据流的数据发送速率。
12.根据权利要求9所述的装置,其特征在于,所述网络拥塞的场景为公共传输路径网络拥塞,所述调整模块,具体获取待发送的数据流的优先级;以及,
所述待发送的数据流的优先级,调整所述发送端发送所述数据流的速率。
13.根据权利要求12所述的装置,其特征在于,所述待发送的数据流包括第一数据流以及第二数据流,所述第一数据流的优先级高于所述第二数据流的优先级,所述发送端发送所述第一数据流的速率高于所述发送端发送所述第二数据流的速率。
14.一种处理网络拥塞的装置,其特征在于,所述装置应用于高性能计算HPC集群中的接收端,所述集群包括多个主机,所述多个主机通过网络设备相连,所述装置包括:
获取模块,用于获取公共传输路径网络拥塞标识和/或数据接收速率,所述公共传输路径网络拥塞标识用于指示发送端向所述接收端传输数据过程中在公共传输路径出现网络拥塞,所述发送端与所述接收端分别为所述多个主机中任意两个主机;
确定模块,用于根据所述公共传输路径网络拥塞标识和/或数据接收速率确定网络拥塞场景;
传输模块,用于向所述发送端发送第一确认消息,所述第一确认消息包括网络拥塞场景标识,所述网络拥塞场景标识为用于指示所述发送端向接收端传输数据过程中出现网络拥塞的场景的标识。
15.根据权利要求14所述的装置,其特征在于,所述网络拥塞的场景为接收端网络拥塞,所述网络拥塞场景标识包括拥塞因子,所述拥塞因子用于指示在所述接收端处发生网络拥塞的拥塞程度。
16.根据权利要求15所述的装置,其特征在于,所述获取模块,还用于获取第一数量以及第二数量,所述第一数量为所述接收端接收到第一类型的数据流的数量,所述第二数量为所述接收端接收到第二类型的数据流的数量,所述第一类型的数据流的长度大于所述第二类型的数据流的长度;所述第一类型的数据流的长度大于长度阈值,所述第二类型的数据流的长度小于所述长度阈值;
所述装置还包括:
生成模块,用于根据所述第一数量以及所述第二数量,生成所述拥塞因子。
17.一种高性能计算集群,其特征在于,所述集群包括多个主机,所述多个主机通过网络设备相连,所述多个主机包括接收端和发送端,所述发送端用于执行上述方法1至5中任一所述方法的操作步骤;所述接收端用于执行上述方法6至8中任一所述方法的操作步骤。
18.一种设备,其特征在于,包括处理器和存储器;
所述存储器,用于存储计算机指令;
所述处理器,用于根据所述计算机指令执行如权利要求1至5任一项所述方法的操作步骤,或者,执行如权利要求6至8任一项所述方法的操作步骤。
CN202110131460.8A 2021-01-30 2021-01-30 处理网络拥塞的方法、装置和设备 Pending CN114844836A (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN202110131460.8A CN114844836A (zh) 2021-01-30 2021-01-30 处理网络拥塞的方法、装置和设备
PCT/CN2022/072431 WO2022161206A1 (zh) 2021-01-30 2022-01-17 处理网络拥塞的方法、装置和设备
EP22745082.2A EP4277209A4 (en) 2021-01-30 2022-01-17 NETWORK CONGESTION PROCESSING METHOD AND APPARATUS AND DEVICE
US18/361,042 US20230370387A1 (en) 2021-01-30 2023-07-28 Network congestion handling method, apparatus, and device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110131460.8A CN114844836A (zh) 2021-01-30 2021-01-30 处理网络拥塞的方法、装置和设备

Publications (1)

Publication Number Publication Date
CN114844836A true CN114844836A (zh) 2022-08-02

Family

ID=82560981

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110131460.8A Pending CN114844836A (zh) 2021-01-30 2021-01-30 处理网络拥塞的方法、装置和设备

Country Status (4)

Country Link
US (1) US20230370387A1 (zh)
EP (1) EP4277209A4 (zh)
CN (1) CN114844836A (zh)
WO (1) WO2022161206A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116232849B (zh) * 2022-12-22 2023-12-12 之江实验室 基于可编程交换机的流量告警方法、装置、设备及介质
CN116915706B (zh) * 2023-09-13 2023-12-26 合肥综合性国家科学中心人工智能研究院(安徽省人工智能实验室) 数据中心网络拥塞控制方法、装置、设备及存储介质

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7596091B2 (en) * 2005-02-28 2009-09-29 Microsoft Corporation Unified congestion notification mechanism for reliable and unreliable protocols by augmenting ECN
US9001663B2 (en) * 2010-02-26 2015-04-07 Microsoft Corporation Communication transport optimized for data center environment
CN110022264B (zh) * 2018-01-08 2020-09-08 华为技术有限公司 控制网络拥塞的方法、接入设备和计算机可读存储介质
CN111355669B (zh) * 2018-12-20 2022-11-25 华为技术有限公司 控制网络拥塞的方法、装置及系统
US12034633B2 (en) * 2019-05-23 2024-07-09 Hewlett Packard Enterprise Development Lp System and method for facilitating tracer packets in a data-driven intelligent network
CN110808884B (zh) * 2019-11-20 2022-01-28 中国人民解放军国防科技大学 一种网络拥塞控制方法

Also Published As

Publication number Publication date
US20230370387A1 (en) 2023-11-16
WO2022161206A1 (zh) 2022-08-04
EP4277209A4 (en) 2024-07-10
EP4277209A1 (en) 2023-11-15

Similar Documents

Publication Publication Date Title
US11374870B2 (en) Network congestion notification method, agent node, and computer device
US11716409B2 (en) Packet transmission method and apparatus
EP3758315B1 (en) Congestion control method and network device
US20230370387A1 (en) Network congestion handling method, apparatus, and device
CN109417514B (zh) 一种报文发送的方法、装置和存储设备
CN110661723A (zh) 一种数据传输方法、计算设备、网络设备及数据传输系统
US11782869B2 (en) Data transmission method and related device
CN111800351A (zh) 由交换机进行的拥塞通知分组生成
CN113746743B (zh) 一种数据报文传输方法及装置
CN111683017B (zh) 高速互连网络中的多等级拥塞控制方法、装置、系统及介质
CN111224888A (zh) 发送报文的方法及报文转发设备
US11115308B2 (en) System and method for congestion control using time difference congestion notification
EP2798799B1 (en) Methods and devices in an ip network for congestion control
CN113595920B (zh) 网络拥塞控制方法及设备
CN117354253A (zh) 一种网络拥塞通知方法、装置及存储介质
WO2023236874A1 (zh) 通信链路的检测方法及装置
WO2015085849A1 (zh) 一种网络设备拥塞避免的方法及网络设备
CN115022227B (zh) 数据中心网中基于循环或重路由的数据传输方法和系统
US11622028B2 (en) Explicit notification of operative conditions along a network path
CN108322402B (zh) 报文处理方法、设备及系统
CN116684354A (zh) 网络流拥塞管理装置及其方法
US12068963B1 (en) Method and apparatus for source flow slicing for improving the load balancing
EP4075741A1 (en) Method and apparatus for acquiring forwarding information
WO2024061042A1 (zh) 数据传输方法和数据传输系统
Alghawli Comparative Analysis of TCP-Protocol Operation Algorithms in Self-Similar Traffic

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