CN111817977A - 一种网络拥塞控制方法和装置 - Google Patents
一种网络拥塞控制方法和装置 Download PDFInfo
- Publication number
- CN111817977A CN111817977A CN201910295531.0A CN201910295531A CN111817977A CN 111817977 A CN111817977 A CN 111817977A CN 201910295531 A CN201910295531 A CN 201910295531A CN 111817977 A CN111817977 A CN 111817977A
- Authority
- CN
- China
- Prior art keywords
- message
- timestamp
- rtt
- data
- packet
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 65
- 238000012545 processing Methods 0.000 claims description 41
- 238000004590 computer program Methods 0.000 claims description 6
- 238000004891 communication Methods 0.000 abstract description 6
- 230000005540 biological transmission Effects 0.000 description 52
- 230000004044 response Effects 0.000 description 23
- 238000010586 diagram Methods 0.000 description 14
- 230000000875 corresponding effect Effects 0.000 description 11
- 230000006870 function Effects 0.000 description 11
- 230000008859 change Effects 0.000 description 10
- 230000001276 controlling effect Effects 0.000 description 4
- 238000001514 detection method Methods 0.000 description 4
- 239000000203 mixture Substances 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 238000005192 partition Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 230000005012 migration Effects 0.000 description 2
- 238000013508 migration Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 239000000654 additive Substances 0.000 description 1
- 230000000996 additive effect Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
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/28—Flow control; Congestion control in relation to timing considerations
- H04L47/283—Flow control; Congestion control in relation to timing considerations in response to processing delays, e.g. caused by jitter or round trip time [RTT]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/25—Flow control; Congestion control with rate being modified by the source upon detecting a change of network conditions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0852—Delays
- H04L43/0864—Round trip delays
-
- 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/12—Avoiding congestion; Recovering from congestion
-
- 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/29—Flow control; Congestion control using a combination of thresholds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/10—Active monitoring, e.g. heartbeat, ping or trace-route
- H04L43/106—Active monitoring, e.g. heartbeat, ping or trace-route using time related information in packets, e.g. by adding timestamps
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请实施例公开了一种网络拥塞控制方法和装置,涉及通信技术领域,解决了现有技术测量的RTT不准确,导致网络队列拥塞深度不能得到有效控制等问题。具体方案为:应用于第一设备,第一设备为发送数据报文的设备,第一设备向第二设备发送第一报文,第一报文中携带第一时间戳;第一时间戳为发送第一报文时的本地时间戳;第一设备接收第二设备发送的第二报文,第二报文中携带第一时间戳;用第二时间戳减去第一时间戳,得到第一RTT;根据第一RTT,调整数据报文的发送速率;其中,第一报文的优先级和数据报文的优先级相同,第二报文的优先级高于数据报文的优先级。
Description
技术领域
本申请实施例涉及通信技术领域,尤其涉及一种网络拥塞控制方法和装置。
背景技术
目前,数据中心网络中计算机可以通过远程直接内存访问(Remote DirectMemory Access,RDMA)进行数据交换,从而使计算机的网络接口卡(Network InterfaceCard,NIC)通过网络从另外一个计算机的内存读取或者向另外一个计算机的内存写入数据,而不需要计算机的操作系统介入。RDMA在以太网上运行称为RDMA穿越汇聚以太网(RDMAover Converged Ethernet,RoCE)技术。
为了避免网络拥塞丢包给RoCE带来性能损失,现有的一种流控方法通过测量一段报文(64KB)的往返时延,计算往返时间(Round Trip Time,RTT),并根据该往返时间RTT调整发送速率。如图1所示,现有技术中的RTT的计算是按一个数据段来进行的,该数据段的大小为64KB,可以包含多个报文,主机A在发送这个数据段的第一个报文时,记录发送时的时间戳tsend,主机A收到主机B发送的确认报文(Acknowledgement,ACK)时,记录完成时间tcompletion。如图1所示,往返时间RTT=tcompletion-tsend-t串行,其中,t串行为数据段串行化传送时间,该数据段串行化传送时间为数据段大小(64KB)除以线路速率。
但是,该方案中的数据段大小为64KB,而实际应用中每个请求要求的数据块大小并不固定,因此无法保证每64KB一个ACK,如果数据块较小,每64KB数据段会有多个ACK,使用不同的ACK的完成时间来计算RTT会影响RTT准确度,因此采用该方案计算的RTT不准确,从而导致网络队列的拥塞深度不能得到有效的控制;而且该方案测量的RTT受反向路径拥塞的影响,不能准确的反应是请求方向发生了拥塞,还是应答方向发生了拥塞,从而可能造成控制系统误判。
发明内容
本申请实施例提供一种网络拥塞控制方法和装置,能够避免反向路径拥塞的影响,准确的控制网络队列拥塞深度,提升系统性能。
为达到上述目的,本申请实施例采用如下技术方案:
本申请实施例的第一方面,提供一种网络拥塞控制方法,该方法应用于第一设备,该第一设备为发送数据报文的设备,该方法包括:第一设备向第二设备发送第一报文,该第一报文中携带第一时间戳;该第一时间戳为发送上述第一报文时的本地时间戳;上述第一设备接收上述第二设备发送的第二报文,该第二报文中携带上述第一时间戳;用第二时间戳减去上述第一时间戳,获取第一往返时间RTT;该第二时间戳为上述第一设备接收上述第二报文时的本地时间戳;根据该第一RTT,调整数据报文的发送速率;其中,上述第一报文的优先级和上述数据报文的优先级相同,上述第二报文的优先级高于上述数据报文的优先级。基于本方案,该第一RTT的测量不受反向路径(未传输业务报文的传输方向)是否拥塞的影响,确定的第一RTT较准确,故通过该第一RTT,调整数据报文的发送速率时,能够减小网络队列拥塞程度,提升系统性能。可以理解的,该第一RTT不仅考虑了交换机(或路由器)的缓存中的排队和处理时间,而且避免了反向路径(未传输业务报文的传输方向)拥塞的影响,因此该第一RTT与网络拥塞程度相关,是会随着网络拥塞程度的变化动态变化的,能够较为准确的反映当前网络的拥塞程度,因此该第一RTT可以称为动态RTT。
结合第一方面,在一种可能的实现方式中,上述方法还包括:上述第一设备向上述第二设备发送第三报文,该第三报文中携带第三时间戳,该第三时间戳为发送第三报文时的本地时间戳;该第三报文的优先级高于上述数据报文的优先级;上述第一设备接收上述第二设备发送的第四报文;该第四报文中携带上述第三时间戳;该第四报文的优先级高于上述数据报文的优先级;用第四时间戳减去该第三时间戳,获取第二RTT;该第四时间戳为上述第一设备接收上述第四报文时的本地时间戳。基于本方案,通过采用优先级高于数据报文的优先级的第三报文和第四报文,能够较为准确的测量第二RTT。可以理解的,在第一设备的网卡和第二设备的网卡之间的数据传输路径不变的情况下,该第二RTT的值基本是固定的,可能随着网络性能等的有略微变化,因此该第二RTT可以称为固定RTT。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,上述根据上述第一RTT,调整数据报文的发送速率,包括:用上述第一RTT减去上述第二RTT,得到时间差;该时间差用于指示网络队列拥塞深度;根据该时间差,调整数据报文的发送速率。基于本方案,第一RTT和第二RTT的差值得到的时间差能够准确的反应第一设备和第二设备之间网络队列拥塞的深度,因此根据该时间差调整数据报文的发送速率时,能够有效的减小网络队列的拥塞深度,提升系统性能。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,上述根据上述时间差,调整数据报文的发送速率,包括:若该时间差小于第一预设阈值,增大上述数据报文的发送速率;若该时间差大于第二预设阈值,减小上述数据报文的发送速率;上述第一预设阈值小于上述第二预设阈值。基于本方案,能够在网络队列较拥塞时减小数据报文的发送速率,以减小网络队列拥塞深度。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,上述方法还包括:若所述第一设备确定从上次发送所述第一报文开始已累积发送第一预设数量的数据包,获取第三RTT;或者,若所述第一设备确定当前时间与上次发送所述第一报文的时间间隔达到第一预设时长,获取所述第三RTT,并记录当前时间戳。需要说明的是,该第三RTT与上述第一RTT为不同时刻的动态RTT。基于本方案,由于网络拥塞的深度是动态变化的,因此可以通过周期性的循环检测动态RTT,获取当前网络的拥塞程度。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,上述方法还包括:若所述第一设备确定从上次发送所述第三报文开始已累积发送第二预设数量的数据包,获取第四RTT;或者,若所述第一设备确定当前时间与上次发送所述第三报文的时间间隔达到第二预设时长,获取所述第四RTT,并记录当前时间戳。需要说明的是,该第四RTT与上述第二RTT为不同时刻的固定RTT。基于本方案,可以周期性的循环检测固定RTT,从而能够在第一设备和第二设备之间的数据传输路径发生变化时,较为准确的检测新的传输路径对应的固定RTT。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,上述第三时间戳携带在报文远程直接内存访问RDMA的基本传输头BTH中的保留字段中,或者,携带在报文RDMA的负载Payload中。基于本方案,通过使用现有协议的保留字段携带时间戳,与现有技术相比,不需要记录时间戳和报文序号的关系,占用资源较少。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,若上述第一报文为上述数据报文,上述第一时间戳携带在报文RDMA的BTH中的保留字段中;若上述第一报文和上述数据报文不同,上述第一时间戳携带在报文远程直接内存访问RDMA的基本传输头BTH中的保留字段中,或者,携带在报文RDMA的负载Payload中。基于本方案,通过使用现有协议的保留字段携带时间戳,与现有技术相比,不需要记录时间戳和报文序号的关系,占用资源较少。
本申请实施例的第二方面,提供一种网络拥塞控制方法,该方法包括:第二设备接收第一设备发送的第一报文,该第一报文中携带第一时间戳;该第一时间戳为发送该第一报文时的本地时间戳;第一设备为发送数据报文的设备;上述第二设备向上述第一设备发送第二报文,该第二报文中携带上述第一时间戳;其中,该第一报文的优先级和数据报文的优先级相同,该第二报文的优先级高于数据报文的优先级。基于本方案,通过在未发送数据的传输方向上使用优先级高于数据报文的优先级的报文,从而使得第一设备测量的第一RTT不受反向路径(未传输业务报文的传输方向)是否拥塞的影响。
结合第二方面,在一种可能的实现方式中,上述方法还包括:上述第二设备接收上述第一设备发送的第三报文,该第三报文中携带第三时间戳,该第三时间戳为发送上述第三报文时的本地时间戳;该第三报文的优先级高于上述数据报文的优先级;上述第二设备向上述第一设备发送第四报文;该第四报文中携带上述第三时间戳;该第四报文的优先级高于上述数据报文的优先级。基于本方案,通过采用优先级高于数据报文的优先级的第三报文和第四报文,使得第一设备测量的第二RTT较为准确。
本申请实施例的第三方面,提供一种网络拥塞控制装置,该装置为发送数据报文的装置,该装置包括:处理单元和收发单元;所述处理单元,用于:通过所述收发单元向第二设备发送第一报文,所述第一报文中携带第一时间戳;所述第一时间戳为发送所述第一报文时的本地时间戳;通过所述收发单元接收所述第二设备发送的第二报文,所述第二报文中携带所述第一时间戳;用第二时间戳减去所述第一时间戳,获取第一往返时间RTT;所述第二时间戳为所述装置接收所述第二报文时的本地时间戳;根据所述第一RTT,调整数据报文的发送速率;其中,所述第一报文的优先级和所述数据报文的优先级相同,所述第二报文的优先级高于所述数据报文的优先级。
结合第三方面,在一种可能的实现方式中,所述处理单元,还用于:通过所述收发单元向所述第二设备发送第三报文,所述第三报文中携带第三时间戳,所述第三时间戳为发送所述第三报文时的本地时间戳;所述第三报文的优先级高于所述数据报文的优先级;通过所述收发单元接收所述第二设备发送的第四报文;所述第四报文中携带所述第三时间戳;所述第四报文的优先级高于所述数据报文的优先级;用第四时间戳减去所述第三时间戳,获取所述第二RTT;所述第四时间戳为所述装置接收所述第四报文时的本地时间戳。
结合第三方面和上述可能的实现方式,在另一种可能的实现方式中,所述处理单元,具体用于:用所述第一RTT减去所述第二RTT,得到时间差;所述时间差用于指示网络队列拥塞深度;根据所述时间差,调整数据报文的发送速率。
结合第三方面和上述可能的实现方式,在另一种可能的实现方式中,所述处理单元,具体用于:若所述时间差小于第一预设阈值,增大所述数据报文的发送速率;若所述时间差大于第二预设阈值,减小所述数据报文的发送速率;所述第一预设阈值小于所述第二预设阈值。
结合第三方面和上述可能的实现方式,在另一种可能的实现方式中,所述处理单元,还用于:若所述处理单元确定从上次发送所述第一报文开始已累积发送第一预设数量的数据包,获取第三RTT;或者,若所述处理单元确定当前时间与上次发送所述第一报文的时间间隔达到第一预设时长,获取所述第三RTT,并记录当前时间戳。
结合第三方面和上述可能的实现方式,在另一种可能的实现方式中,所述处理单元,还用于:若所述处理单元确定从上次发送所述第三报文开始已累积发送第二预设数量的数据包,获取第四RTT;或者,若所述处理单元确定当前时间与上次发送所述第三报文的时间间隔达到第二预设时长,获取所述第四RTT,并记录当前时间戳。
结合第三方面和上述可能的实现方式,在另一种可能的实现方式中,所述第三时间戳携带在报文远程直接内存访问RDMA的基本传输头BTH中的保留字段中,或者,携带在报文RDMA的负载Payload中。
结合第三方面和上述可能的实现方式,在另一种可能的实现方式中,若所述第一报文为所述数据报文,所述第一时间戳携带在报文RDMA的BTH中的保留字段中;若所述第一报文和所述数据报文不同,所述第一时间戳携带在报文远程直接内存访问RDMA的基本传输头BTH中的保留字段中,或者,携带在报文RDMA的负载Payload中。
本申请实施例的第四方面,提供一种网络拥塞控制装置,该装置包括:处理单元和收发单元;所述处理单元,用于:通过所述收发单元接收第一设备发送的第一报文,所述第一报文中携带第一时间戳;所述第一时间戳为发送所述第一报文时的本地时间戳;第一设备为发送数据报文的设备;通过所述收发单元向所述第一设备发送第二报文,所述第二报文中携带所述第一时间戳;其中,所述第一报文的优先级和所述数据报文的优先级相同,所述第二报文的优先级高于所述数据报文的优先级;或者,所述第一报文的优先级高于所述数据报文的优先级,所述第二报文的优先级和所述数据报文的优先级相同。
结合第四方面,在一种可能的实现方式中,所述处理单元,还用于:通过所述收发单元接收所述第一设备发送的第三报文,所述第三报文中携带第三时间戳,所述第三时间戳为发送所述第三报文时的本地时间戳;所述第三报文的优先级高于所述数据报文的优先级;通过所述收发单元向所述第一设备发送第四报文;所述第四报文中携带所述第三时间戳;所述第四报文的优先级高于所述数据报文的优先级。
上述第三方面以及第三方面的各种实现方式的效果描述可以参考第一方面和第一方面的各种实现方式的相应效果的描述,上述第四方面以及第四方面的各种实现方式的效果描述可以参考第二方面和第二方面的各种实现方式的相应效果的描述,在此不再赘述。
本申请实施例的第五方面,提供一种计算机存储介质,所述计算机存储介质中存储有计算机程序代码,当所述计算机程序代码在处理器上运行时,使得所述处理器执行上述任一方面所述的网络拥塞控制方法。
本申请实施例的第六方面,提供了一种计算机程序产品,该程序产品储存有上述处理器执行的计算机软件指令,该计算机软件指令包含用于执行上述方面所述方案的程序。
本申请实施例的第七方面,提供了一种网络拥塞控制装置,该装置包括收发器、处理器以及存储器,收发器,用于收发信息,或者用于与其他网元通信;存储器,用于存储计算机执行指令;处理器,用于执行所计算机执行指令实现上述任一方面所述的网络拥塞控制方法。
本申请实施例的第八方面,提供了一种网络拥塞控制装置,该装置以芯片的产品形态存在,该装置的结构中包括处理器和存储器,该存储器用于与处理器耦合,保存该装置必要的程序指令和数据,该处理器用于执行存储器中存储的程序指令,使得该装置执行上述方法中装置的功能。
附图说明
图1为本申请现有技术提供的一种网络拥塞控制方案的示意图;
图2为本申请实施例提供的一种网络架构示意图;
图3为本申请实施例提供的一种网络拥塞控制方法的流程示意图;
图4为本申请实施例提供的一种时间戳的携带方式的示意图;
图5为本申请实施例提供的另一种时间戳的携带方式的示意图;
图6为本申请实施例提供的另一种网络拥塞控制方法的流程示意图;
图7为本申请实施例提供的另一种网络拥塞控制方法的流程示意图;
图8为本申请实施例提供的一种数据传输的结构示意图;
图9为本申请实施例提供的一种网络拥塞控制装置的组成示意图;
图10为本申请实施例提供的另一种网络拥塞控制装置的组成示意图;
图11为本申请实施例提供的另一种网络拥塞控制装置的组成示意图;
图12为本申请实施例提供的另一种网络拥塞控制装置的组成示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。在本申请中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c或a-b-c,其中a、b和c可以是单个,也可以是多个。
需要说明的是,本申请中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其他实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
首先,对本申请实施例中涉及的部分名词进行解释说明:
RDMA远程直接内存访问,通过网络将数据直接传入计算机的存储区,将数据从一个系统快速移动到远程系统存储器中,而不对操作系统造成任何影响,从而不需要用到多少计算机的处理功能,能够消除外部存储器复制和上下文切换的开销。RDMA协议使计算机的网络接口卡(NIC)通过网络从另外一个计算机的内存读取或者向另外一个计算机的内存写入数据,而不需要计算机的操作系统介入。RDMA穿越汇聚以太网(RoCE)是InfiniBand(IB)提出来的用于RDMA在以太网上运行。在RoCE技术中,直接在以太链路层上承载运行被称为RoCE版本1(RoCEv1),在用户数据报协议(User Datagram Protocol,UDP)上承载运行被称为RoCE版本2(RoCEv2)。
RTT往返时间,表示从发送端发送数据开始,到发送端收到来自接收端的确认(接收端收到数据后便立即发送确认),总共经历的时延。RTT由三个部分决定:链路的传播时间、末端系统的处理时间、交换机(或路由器)的缓存中的排队和处理时间。其中,链路的传播时间和末端系统的处理时间相对固定,交换机(或路由器)的缓存中的排队和处理时间会随着整个网络拥塞程度的变化而变化,因此,RTT的变化在一定程度上反映了网络拥塞程度的变化。
为了解决现有技术测量的往返时间RTT不准确,而且不能准确的反应具体发生拥塞的传输方向,造成控制系统误判等问题,本申请实施例提供一种网络拥塞控制方法,能够避免反向路径拥塞的影响,准确控制网络队列拥塞深度,提升系统性能。
本申请实施例提供一种网络拥塞控制方法,该方法应用于数据中心使用RoCE协议进行数据交换的计算机节点,该计算机节点通过一个或者多个交换机互连;多个交换机之间通过一定的拓扑关系(例如CLOS拓扑)连接,组成一个或多个路径的数据中心网络。本申请实施例对于交换机之间的拓扑关系并不进行限定,在此仅是示例性说明。
图2为本申请实施例提供的一种网络架构,包括计算机节点A和计算机节点B,该计算机节点A可以通过一个或者多个交换机与计算机节点B连接,计算机节点A包括主机A和网卡A,计算机节点B包括主机B和网卡B。计算机节点A的网卡A和计算机节点B的网卡B之间通过远程直接内存访问(RDMA)进行数据交换。
如图2所示,计算机节点A和计算机节点B在进行数据交换时,创建通信队列对(Queue Pair,QP),该通信队列对中一个为发送队列,另一个为接收队列。QP为全双工通信,发送请求的一端为请求端,接收请求并应答的一端为响应端。RoCE的请求由应用程序下发,与远程计算机节点进行数据交换使用的请求类型主要有Write、Send和Read。其中,Write和Send是计算机请求端发送数据,计算机应答端接收完数据后并回应确认字符(Acknowledgement,ACK);Read是计算机请求端发送读请求,计算机应答端接收请求并回应读取的数据。即Write/Send是请求方发送数据,Read是应答端发送数据,因此Write/Send和Read的数据传输方向是不同的。
示例性的,对于每个QP,数据交换是双向的,当网卡A发送请求时,网卡A为请求端,网卡B为应答端,此时,RDMA的Write/Send在网卡A携带数据,RDMA的Read在网卡B携带数据;当网卡B发送请求时,网卡B为请求端,网卡A为应答端,此时,RDMA的Write/Send网卡B携带数据,RDMA的Read在网卡A携带数据。为了准确的反应具体发生拥塞的传输方向,本申请实施例提供的网络拥塞控制方法中区分数据的传输方向。
结合图2,如图3所示,本申请实施例提供一种网络拥塞控制方法,应用于第一设备,该第一设备为发送数据报文的设备,该方法可以包括步骤S301-S307。第一设备发送数据报文时,可以执行步骤S301-S307的网络拥塞控制方法,以减小网络队列的拥塞深度。
S301、第一设备向第二设备发送第一报文。
该第一报文中携带第一时间戳。该第一时间戳为第一设备发送该第一报文时的本地时间戳。
示例性的,该第一报文的优先级和数据报文的优先级相同。该第一报文可以为数据报文,也可以为专门测量时延的报文,本申请实施例对此并不进行限定。例如,当该第一报文为专门测量时延的报文时,该第一报文和第一设备发送的数据报文为不同的报文,但该第一报文与数据报文的优先级相同。可以理解的,本实施例中第一设备为发送数据报文的设备,数据报文的传输方向为从第一设备至第二设备。
示例性的,以第一设备为计算机节点A,第二设备为计算机节点B为例。当计算机节点A发送Write或Send请求报文(例如,第一报文为Write或Send请求报文)时,该Write或Send请求报文中携带数据,该计算机节点A为发送数据报文的设备,故数据报文的传输方向为从计算机节点A至计算机节点B。
示例性的,以第一设备为计算机节点B,第二设备为计算机节点A为例。当计算机节点A发送Read请求时,计算机节点B接收计算机节点A发送的Read请求后,向计算机节点A发送上述第一报文,即计算机节点B为发送数据报文的设备,故数据报文的传输方向为从计算机节点B至计算机节点A。可以理解的,在该情况下,可选的,在上述步骤S301之前,还可以包括第二设备向第一设备发送Read请求。
示例性的,当该第一报文为第一设备发送的专门测量时延的报文时,该第一报文中携带上述第一时间戳。该第一时间戳的携带方式如图4或图5所示。
如图4所示,该第一报文中的第一时间戳可以携带在报文远程直接内存访问RDMA的基本传输头(Base Transport Header,BTH)中的保留字段(reserved,rsvd)中。BTH中有两个保留字段,分别为第一保留字段(rsvd)和第二保留字段(rsvd)。其中。第一保留字段(rsvd)为BTH中的第5个字节,第二保留字段(rsvd)为BTH中的第9个字节的低7bit。该第一时间戳可以采用第一保留字段(rsvd)和第二保留字段(rsvd)中的一个保留字段携带,也可以通过两个保留字段组合的方式携带,本申请实施例对此并不进行限定。
图4中的操作码(Operation Code,Opcode),用于表明数据包的类型或IB PayLoad中更高层的协议类型;请求事件标识(Solicited Event,SE)表明回应者产生应该产生一个事件;迁移状态标识(MigReq,M),用于标识迁移状态;负载填充字节数(Pad Count,Pad),标识有多少额外字节被填充到IB PayLoad中;传输头版本号(Transport Header Version,TVer),用于表示该包的版本号;分区识别号(Partition Key)用于表征与本Packet关联的逻辑内存分区;目的端通信队列对号(Destination Queue Pair)表明目的端序号;A(Acknowledge Request,A)请求回应一个应答;报文序列号(Packet Sequence Number,PSN),用于检测丢失或重复的数据包。
如图5所示,上述第一报文中的第一时间戳也可以携带在报文RDMA的负载Payload中,负载部分可以不携带有效数据;通过在负载中携带第一时间戳,可以有更大的存放空间,因此能够携带更精确的时间戳。图5中其他字段的含义与图4相同,在此不再赘述。
示例性的,当该第一报文为数据报文时,上述第一时间戳携带在该数据报文中。该数据报文中第一时间戳的携带方式如图4所示,即第二报文中的第一时间戳可以携带在报文远程直接内存访问RDMA的基本传输头BTH中的保留字段中。具体可以参考前述相关描述,在此不再赘述。
可以理解的,本实施例通过使用现有协议的保留字段携带时间戳,与现有技术相比,不需要记录时间戳和报文序号的关系,占用资源较少。
S302、第二设备接收第一报文。
S303、第二设备根据第一报文,构建第二报文。
示例性的,第二设备从第一报文中取出第一时间戳,并构建第二报文,该第二报文中携带第一时间戳。
示例性的,该第二报文中第一时间戳的携带方式如图4或图5所示,即第二报文中的第一时间戳可以携带在报文远程直接内存访问RDMA的基本传输头BTH中的保留字段中,或者,携带在报文RDMA的负载Payload中。具体可以参考前述相关描述,在此不再赘述。
S304、第二设备向第一设备发送第二报文。
该第二报文中携带上述第一时间戳。
示例性的,该第二报文的优先级高于数据报文的优先级。例如,该第二报文可以为带外报文,该带外报文是业务之外的消息,用于辅助测量RTT,该第二报文与业务之间完全独立,可以通过底层控制模块发送。可以理解的,由于第二设备向第一设备发送的第二报文的优先级高于数据报文的优先级,从而在发送该第二报文时,可以优先于数据报文发送,从而能够不受从第二设备至第一设备的传输方向上网络是否拥塞等的影响,使得测得的RTT更能准确的反应从第一设备至第二设备的传输方向上的队列拥塞程度。
示例性的,本实施例通过第一设备向第二设备发送与数据报文的优先级相同的第一报文,第二设备向第一设备发送优先级高于数据报文的优先级的第二报文,从而能够避免反向路径(从第二设备至第一设备的传输方向)拥塞的影响,较为准确的测量RTT。
例如,以第一设备为计算机节点A,第二设备为计算机节点B为例。计算机节点A向计算机节点B发送第一报文(Write或Send请求报文)时,该第一报文的优先级与数据报文的优先级相同,计算机节点B接收该第一报文后,向计算机节点A发送优先级高于数据报文的优先级的第二报文,从而能够避免计算机节点B至计算机节点A的传输方向上网络拥塞的影响,使得测得的RTT更能准确的反应从计算机节点A至计算机节点B的传输方向上的队列拥塞程度。
例如,以第一设备为计算机节点B,第二设备为计算机节点A为例。计算机节点B向计算机节点A发送第一报文(该第一报文为计算机节点B接收计算机节点A发送的Read请求后,回复的与数据报文的优先级相同的第一报文,该第一报文可以携带数据,也可以为专门测量时延的与数据报文的优先级相同的报文)时,该第一报文的优先级与数据报文的优先级相同,计算机节点A接收该第一报文后,向计算机节点B发送优先级高于数据报文的优先级的第二报文,从而能够避免计算机节点A至计算机节点B的传输方向上网络拥塞的影响,使得测得的RTT更能准确的反应从计算机节点B至计算机节点A的传输方向上的队列拥塞程度。
可以理解的,本实施例通过在未传输业务报文的传输方向上采用优先级高于数据报文的优先级的报文,可以避免反向路径(未传输业务报文的传输方向)拥塞的影响,使得测量的时延能更准确的反应传输业务报文的方向上的队列拥塞程度。
S305、第一设备接收第二报文。
S306、第一设备用第二时间戳减去第一时间戳,获取第一RTT。
该第二时间戳为第一设备接收第二报文时的本地时间戳。
示例性的,该第二时间戳减去第一时间戳可以理解为从第一设备发送第一报文开始,到第一设备接收对端(第二设备)发送的第二报文总共经历的时间,即为第一RTT。
可以理解的,由于第一报文的优先级与数据报文的优先级相同,第二报文的优先级高于数据报文的优先级,因此该第一RTT不仅考虑了交换机(或路由器)的缓存中的排队和处理时间,而且避免了反向路径(未传输业务报文的传输方向)拥塞的影响,因此该第一RTT与网络拥塞程度相关,是会随着网络拥塞程度的变化动态变化的,能够较为准确的反映当前网络的拥塞程度。该第一RTT可以称为动态RTT。
S307、第一设备根据第一RTT,调整数据报文的发送速率。
示例性的,该第一RTT能够反映当前网络队列的拥塞程度。在第一设备和第二之间的数据传输路径不变的情况下,该第一RTT越大,表示网络队列越拥塞,因此可以根据该第一RTT调整数据报文的发送速率。
例如,以第一设备为计算机节点A,第二设备为计算机节点B为例。若计算机节点A发送Write或Send请求报文(第一报文),该计算机节点A为发送数据报文的设备,此时数据报文的传输方向为从计算机节点A至计算机节点B,该第一RTT能够反映从计算机节点A至计算机节点B的传输方向上的网络队列的拥塞程度。因此计算机节点A可以根据第一RTT调整数据报文的发送速率。
例如,以第一设备为计算机节点B,第二设备为计算机节点A为例。若计算机节点A发送Read请求,计算机节点B接收计算机节点A发送的Read请求后,向计算机节点A发送上述第一报文,该计算机节点B为发送数据报文的设备,此时数据报文的传输方向为从计算机节点B至计算机节点A,因此计算机节点B可以根据该第一RTT调整数据报文的发送速率。
示例性的,上述第一设备可以根据第一RTT,调整数据报文的发送速率,可以包括:若第一RTT大于第一预设阈值,确定当时网络较为拥塞,可以减小数据报文的发送速率,使得网络拥塞程度降低;若第一RTT小于第二预设阈值,确定当前网络不拥塞,可以适当的增加数据报文的发送速率,以充分利用网络容量,该第二预设阈值小于或等于第一预设阈值。需要说明的是,本申请实施例对于第一设备如何根据第一RTT,调整数据报文的发送速率的具体方法并不进行限定,在此仅是示例性说明。
需要说明的是,在第一设备和第二设备之间的数据传输路径不变的情况下,可以采用步骤S301-S307的方法调整数据报文的发送速率,减小网络队列的拥塞程度。
本申请实施例提供的网络拥塞控制方法,通过第一设备向第二设备发送第一报文;第二设备接收第一报文;第二设备根据第一报文,构建第二报文;第二设备向第一设备发送第二报文;第一设备接收第二报文;第一设备用第二时间戳减去第一时间戳,获取第一往返时间RTT;第一设备根据第一RTT,调整数据报文的发送速率。本实施例中第一RTT的测量不受反向路径(未传输业务报文的传输方向)拥塞的影响,确定的第一RTT较准确,故通过该第一RTT,调整数据报文的发送速率时,能够减小网络队列拥塞程度,提升系统性能。
本申请实施例还提供一种网络拥塞控制方法,如图6所示,在上述步骤S307之前,该方法还包括步骤S601-S606。
S601、第一设备向第二设备发送第三报文。
该第三报文中携带第三时间戳,该第三时间戳为发送第三报文时的本地时间戳。第三报文的优先级高于数据报文的优先级。示例性的,该第三报文可以为不携带数据的报文,例如,该第三报文可以为带外报文,用于辅助测量RTT。
示例性的,该第三报文中第三时间戳的携带方式如图4或图5所示,即第三报文中的第三时间戳可以携带在报文远程直接内存访问RDMA的基本传输头BTH中的保留字段中,或者,携带在报文RDMA的负载Payload中。具体可以参考前述相关描述,在此不再赘述。
S602、第二设备接收第三报文。
S603、第二设备根据第三报文,构建第四报文。
示例性的,第二设备从第三报文中取出第三时间戳,并构建第四报文,该第四报文中携带第三时间戳。
示例性的,该第四报文中第三时间戳的携带方式如图4或图5所示。具体可以参考前述相关描述,在此不再赘述。
S604、第二设备向第一设备发送第四报文。
该第四报文的优先级高于数据报文的优先级。示例性的,该第四报文可以为不携带数据的报文,例如,该第三报文可以为带外报文,用于辅助测量RTT。
S605、第一设备接收第四报文。
S606、第一设备用第四时间戳减去第三时间戳,获取第二RTT。
该第四时间戳为第一设备接收第四报文时的本地时间戳。
示例性的,该第四时间戳减去第三时间戳可以理解为从第一设备发送第三报文开始,到第一设备接收第二设备发送的第四报文总共经历的时间,即为第二RTT。
(可选的)第一设备可以将该第二RTT保存到上下文中。
可以理解的,本实施例中通过发送优先级高于数据报文的第三报文,并接收对端发送的优先级高于数据报文的第四报文,确定第二RTT,能够不受网络是否拥塞的影响,更加准确的测量第一设备和第二设备之间的RTT。
需要说明的是,在第一设备的网卡和第二设备的网卡之间的数据传输路径不变的情况下,该第二RTT的值基本是固定的,可能随着网络性能等的有略微变化。该第二RTT可以称为固定RTT。
可以理解的,上述步骤S301-S306中获取第一RTT的路径与步骤S601-S606中获取第二RTT的路径相同。上述步骤S301-S306可以在步骤S601-S606之前执行,或者,也可以在步骤S601-S606之后执行,或者,还可以和步骤S601-S606同时执行,本申请实施例对此并不进行限定。
在执行上述步骤S301-S306以及S601-S606之后,相应的,上述S307中第一设备根据第一RTT,调整数据报文的发送速率,包括:第一设备根据第一RTT和第二RTT,调整数据报文的发送速率。
示例性的,第一设备根据第一RTT和第二RTT,调整数据报文的发送速率,包括:第一设备用第一RTT减去第二RTT,得到时间差,该时间差用于指示网络队列拥塞深度;第一设备根据该时间差,调整数据报文的发送速率。
(可选的)第一设备可以从上下文中获取保存的第二RTT,并用第一RTT减去上下文中保存的第二RTT,得到时间差。
示例性的,该第一RTT与第二RTT的时间差可以用于表示从第一设备到第二设备的传输方向上的网络队列拥塞的深度。可以理解的,若第一设备为发送数据报文的设备,该时间差具体表示从第一设备至第二设备的传输方向上的队列拥塞的深度;该时间差值越小,表示从第一设备至第二设备的传输方向上的队列越不拥塞;该时间差值越大,表示从第一设备至第二设备的传输方向上的队列拥塞的深度越深,即网络拥塞越严重。若第一设备为接收数据报文的设备,该时间差具体表示从第二设备至第一设备的传输方向上的队列拥塞的深度。该时间差值越小,表示从第二设备至第一设备的传输方向上的队列越不拥塞;该时间差值越大,表示从第二设备至第一设备的传输方向上的队列拥塞的深度越深,即网络拥塞越严重。
示例性的,第一设备根据该时间差,调整数据报文的发送速率,可以包括:若时间差小于第一预设阈值,增大数据报文的发送速率;若时间差大于第二预设阈值,减小数据报文的发送速率;该第一预设阈值(Tlow)小于第二预设阈值(Thigh),该第一预设阈值和第二预设阈值的设定可以为经验值,与链路速率、设备抖动等因素有关。
例如,若时间差Tq小于Tlow,则表示网络队列拥塞的深度很小,可以认为网络不拥塞,该情况可以增大数据报文的发送速率,以充分利用网络容量;若Tq大于或等于Thigh,则表示网络队列拥塞的深度很大,可以认为当前网络队列较拥塞,该情况可以减小数据报文的发送速率,以减小网络队列拥塞深度;若Tq大于或等于Tlow,且小于Thigh,表示网络队列拥塞的深度在网络可承受范围内,可以认为网络轻拥塞,该情况可以不改变当前数据报文的发送速率,保持轻拥塞的网络状态。
示例性的,上述调整数据报文的发送速率可以通过预设算法增大或减小数据报文的发送速率。例如,该算法可以为和式增加,积式减少(Additive IncreaseMultiplicative Decrease,AIMD)算法,采用AIMD算法控制数据报文的发送速率可以包括:网络无拥塞时,线性的增加其发送速度;当网络拥塞时,乘性减小其发送速度。本申请实施例对于调整数据报文发送速率采用的算法并不进行限定,在此仅是示例性说明。
可以理解的,本申请实施例通过准确的获取用于表示网络队列拥塞深度的时间差,并根据该时间差,调整数据报文的发送速率,能够在网络较拥塞时,减小数据报文的发送速率,从而使得网络队列拥塞深度减小,提升系统性能。
本申请实施例提供的网络拥塞控制方法,通过获取第一RTT和第二RTT,并采用第一RTT减去第二RTT,得到时间差;并根据该时间差,调整数据报文的发送速率,以减小网络队列的拥塞深度。本实施例通过采用优先级高于数据报文的优先级的第三报文和第四报文,能够较为准确的测量第二RTT,并计算第一RTT和第二RTT的差值得到时间差,该时间差能够准确的反应第一设备和第二设备之间网络队列拥塞的深度,因此根据该时间差调整数据报文的发送速率时,能够有效的减小网络队列的拥塞深度,提升系统性能。
本申请实施例还提供一种网络拥塞控制方法,如图7所示,该方法在步骤S307之后,还包括步骤S701-S704。
S701、若第一设备确定从上次发送第一报文开始已累积发送第一预设数量的数据包,获取第三RTT,或者,若第一设备确定当前时间与上次发送第一报文的时间间隔达到第一预设时长,获取第三RTT,并记录当前时间戳。
该第三RTT与第一RTT为不同时刻的动态RTT。
示例性的,由于网络拥塞程度是动态变化的,因此可以通过周期性的循环检测动态RTT,确定当前网络的拥塞程度。
一种实现方式中,循环检测动态RTT的循环周期可以为:第一设备从发送第一报文开始已累积发送第一预设数量的数据包,获取第三RTT。例如,从上次发送携带第一时间戳的数据报文开始,第一设备已累积发送J个数据包,J大于或等于2,第一设备获取第三RTT。
另一种实现方式中,循环检测动态RTT的循环周期可以为:第一设备确定当前时间与上次发送第一报文的时间间隔达到第一预设时长,获取第三RTT,并记录当前时间戳。例如,从上次发送第一报文开始,时间间隔达到K微秒,第一设备获取第三RTT。
步骤S701中获取第三RTT的具体实现方式与前述步骤S301-S306中获取第一RTT的具体实现方式相同,具体可以参考前述实施例的相关描述,在此不再赘述。
S702、若第一设备确定从上次发送第三报文开始已累积发送第二预设数量的数据包,获取第四RTT;或者,若第一设备确定当前时间与上次发送第三报文的时间间隔达到第二预设时长,获取第四RTT,并记录当前时间戳。
该第四RTT与第二RTT为不同时刻的固定RTT。
示例性的,由于第一设备和第二设备之间的数据传输的路径可能发生变化。例如,若计算机节点A的网卡A和计算机节点B的网卡B之间有多条路径,当网卡A和网卡B之间的第一路径异常时,交换机可以选择能够到达网卡B的第二路径传输数据。可以理解的,网卡A至网卡B之间的网络路径发生变化后,固定RTT也会发生变化,因此可以周期性的循环检测固定RTT。
一种实现方式中,循环检测固定RTT的循环周期可以为:第一设备从上次发送第三报文开始已累积发送第二预设数量的数据包,获取第四RTT。例如,从上次发送第三报文开始,第一设备已累积发送N个数据包,N大于或等于2,第一设备获取第四RTT。
另一种实现方式中,循环检测固定RTT的循环周期可以为:第一设备确定当前时间与上次发送第三报文的时间间隔达到第二预设时长,获取第四RTT。例如,从上次发送第三报文开始,时间间隔达到M微秒,第一设备获取第四RTT。
步骤S702中获取第四RTT的具体实现方式与前述步骤S601-S606中获取第二RTT的实现方式相同,具体可以参考前述实施例的相关描述,在此不再赘述。
示例性的,上述步骤S701中获取第三RTT的循环时间可以小于步骤S702中获取第四RTT的循环时间,本申请实施例对此并不进行限定,在此仅是示例性说明。
S703、用第三RTT减去当前固定RTT,得到时间差。
示例性的,该当前固定RTT可以为上下文保存的固定RTT,该上下文保存的固定RTT可以为第二RTT或第四RTT。
(可选的)第一设备可以从上下文中获取保存的当前固定RTT,并用第三RTT减去上下文中保存的当前固定RTT,得到时间差。若上下文中保存的当前固定RTT为第二RTT,步骤S703可以用第三RTT减去第二RTT,得到时间差。若上下文中保存的当前固定RTT为第四RTT,步骤S703可以用第三RTT减去第四RTT,得到时间差。
S704、根据时间差,调整数据报文的发送速率。
可以理解的,步骤S704的具体实现方式可以参考前述步骤S307中的具体实现方式,在此不再赘述。
需要说明的是,本实施例提供的网络拥塞控制方法可以重复执行步骤S701-S704,对不同时刻的不同网络路径、不同网络拥塞情况等进行控制,以确保网络性能较高。
本实施例通过周期性的循环检测固定RTT和动态RTT,能够提高固定RTT和动态RTT的准确性,从而有效的降低网络队列拥塞的深度,提高系统性能。
图8为本申请实施例提供的一种数据传输的结构示意图。例如,若网卡A向网卡B发送Write/Send,则网卡A为发送数据报文的设备,数据报文的传输方向为从网卡A至网卡B,从网卡B至网卡A的方向为未传输数据报文的方向;若网卡A向网卡B发送Read,则网卡A为接收数据报文的设备,数据报文的传输方向为从网卡B至网卡A,从网卡A至网卡B的方向为未传输数据报文的方向。
以网卡A向网卡B发送Write/Send请求为例,即网卡A为发送数据报文的设备。该网卡A可以包括固定RTT请求模块810、固定RTT应答模块812、动态RTT请求模块820、动态RTT应答模块822、速率控制模块830和发送模块840。网卡B包括固定RTT反射模块811、动态RTT反射模块821和接收模块850。
固定RTT请求模块810,用于构建固定RTT请求消息,并在消息中封装网卡A的本地时间戳1。该固定RTT请求消息的优先级高于网卡A向网卡B发送的数据报文的优先级。
固定RTT反射模块811,用于接收固定RTT请求模块810发送的请求消息,并从请求消息中取出时间戳1,构建固定RTT应答消息。该固定RTT应答消息的优先级高于网卡A向网卡B发送的数据报文的优先级。
固定RTT应答模块812,用于接收固定RTT反射模块811发送的固定RTT应答消息,并从固定RTT应答消息中取出时间戳1,根据网卡A接收该固定RTT应答消息时的本地时间戳2和取出的时间戳1,计算差值并保存到上下文中,将该时间差记为固定RTT。
动态RTT请求模块820,用于在数据报文中封装本地的时间戳3,并向网卡B发送封装时间戳3的数据报文。
接收模块850,用于接收动态RTT请求模块820发送的数据报文。
动态RTT反射模块821,用于从接收模块850接收的数据报文中取出时间戳3,构建动态RTT应答消息。该动态RTT应答消息的优先级高于数据报文的优先级。
动态RTT应答模块822,用于接收动态RTT反射模块821发送的动态RTT应答消息,并从动态RTT应答消息中取出时间戳3,根据网卡A接收该动态RTT应答消息时的本地时间戳4和取出的时间戳3,计算差值并保存到上下文中,将该时间差记为动态RTT。
速率控制模块830,用于从动态RTT应答模块822获取动态RTT,并从上下文中获取保存的固定RTT,计算时间差,该时间差(Tq)为动态RTT减去固定RTT,此时间差用于表示网络队列拥塞程度。若Tq小于Tlow,则表示网络队列没有拥塞,可以增大数据发送速率;若Tq大于或等于Thigh,则表示网络队列拥塞,可以减小数据发送速率,以降低队列拥塞深度;若Tq大于或等于Tlow,且小于Thigh,表示网络队列为轻拥塞,则不改变当前数据发送速率。
发送模块840,为数据传输模块,用于发送数据报文。该发送模块840可以根据速率控制模块830调整后的发送速率发送数据报文。
需要说明的是,图8中仅以网卡A为发送数据报文的设备为例进行说明,实际应用中,网卡B也可以为发送数据的设备,本申请实施例对此并不进行限定。当网卡B为发送数据的一端时,网卡B包括的功能模块与图8中的网卡A包括的模块相同。
上述主要从方法步骤的角度对本申请实施例提供的方案进行了介绍。可以理解的是,计算机为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的模块及算法步骤,本申请能够以硬件和计算机软件的结合形式来实现。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对计算机进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
在采用对应各个功能划分各个功能模块的情况下,图9示出了上述实施例中所涉及的一种网络拥塞控制装置可能的结构示意图,该网络拥塞控制装置900包括:处理模块901和收发模块902。处理模块901可以通过收发模块902执行图3中的S301、S305-S307,或图6中的S601、S605-S606,或图7中的S701-S704。其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
在采用对应各个功能划分各个功能模块的情况下,图10示出了上述实施例中所涉及的一种网络拥塞控制装置可能的结构示意图,该网络拥塞控制装置1000包括:处理模块1001和收发模块1002。处理模块1001可以通过收发模块1002执行图3中的S302-S304,或图6中的S602-S604。其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
在采用集成的单元的情况下,图11示出了上述实施例中所涉及的网络拥塞控制装置1100的一种可能的结构示意图。该网络拥塞控制装置1100包括:处理器1101和收发器1102,该处理器1101用于对网络拥塞控制装置1100的动作进行控制管理,例如,处理器1101用于通过收发器1102执行图3中的S301、S305-S307,或图6中的S601、S605-S606,或图7中的S701-S704,和/或用于本文所描述的技术的其它过程。可选的,上述网络拥塞控制装置1100还可以包括存储器1103,该存储器1103用于存储网络拥塞控制装置1100执行上文所提供的任一网络拥塞控制方法所对应的程序代码和数据。该存储器1103可以为只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)等。
在采用集成的单元的情况下,图12示出了上述实施例中所涉及的网络拥塞控制装置1200的一种可能的结构示意图。该网络拥塞控制装置1200包括:处理器1201和收发器1202,该处理器1201用于对网络拥塞控制装置1200的动作进行控制管理,例如,处理器1201用于通过收发器1202执行图3中的S302-S304,或图6中的S602-S604,和/或用于本文所描述的技术的其它过程。可选的,上述网络拥塞控制装置1200还可以包括存储器1203,该存储器1203用于存储网络拥塞控制装置1200执行上文所提供的任一网络拥塞控制方法所对应的程序代码和数据。该存储器1203可以为只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)等。
结合本申请公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(Random Access Memory,RAM)、闪存、可擦除可编程只读存储器(Erasable Programmable ROM,EPROM)、电可擦可编程只读存储器(ElectricallyEPROM,EEPROM)、寄存器、硬盘、移动硬盘、只读光盘(CD-ROM)或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。另外,该ASIC可以位于核心网接口设备中。当然,处理器和存储介质也可以作为分立组件存在于核心网接口设备中。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本申请所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
以上所述的具体实施方式,对本申请的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本申请的具体实施方式而已,并不用于限定本申请的保护范围,凡在本申请的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本申请的保护范围之内。
Claims (22)
1.一种网络拥塞控制方法,其特征在于,应用于第一设备,所述第一设备为发送数据报文的设备,所述方法包括:
所述第一设备向第二设备发送第一报文,所述第一报文中携带第一时间戳;所述第一时间戳为发送所述第一报文时的本地时间戳;
所述第一设备接收所述第二设备发送的第二报文,所述第二报文中携带所述第一时间戳;
用第二时间戳减去所述第一时间戳,获取第一往返时间RTT;所述第二时间戳为所述第一设备接收所述第二报文时的本地时间戳;
根据所述第一RTT,调整数据报文的发送速率;
其中,所述第一报文的优先级和所述数据报文的优先级相同,所述第二报文的优先级高于所述数据报文的优先级。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述第一设备向所述第二设备发送第三报文,所述第三报文中携带第三时间戳,所述第三时间戳为发送所述第三报文时的本地时间戳;所述第三报文的优先级高于所述数据报文的优先级;
所述第一设备接收所述第二设备发送的第四报文;所述第四报文中携带所述第三时间戳;所述第四报文的优先级高于所述数据报文的优先级;
用第四时间戳减去所述第三时间戳,获取第二RTT;所述第四时间戳为所述第一设备接收所述第四报文时的本地时间戳。
3.根据权利要求2所述的方法,其特征在于,所述根据所述第一RTT,调整数据报文的发送速率,包括:
用所述第一RTT减去所述第二RTT,得到时间差;所述时间差用于指示网络队列拥塞深度;
根据所述时间差,调整数据报文的发送速率。
4.根据权利要求3所述的方法,其特征在于,所述根据所述时间差,调整数据报文的发送速率,包括:
若所述时间差小于第一预设阈值,增大所述数据报文的发送速率;若所述时间差大于第二预设阈值,减小所述数据报文的发送速率;所述第一预设阈值小于所述第二预设阈值。
5.根据权利要求2-4任一项所述的方法,其特征在于,所述方法还包括:
若所述第一设备确定从上次发送所述第一报文开始已累积发送第一预设数量的数据包,获取第三RTT;或者,
若所述第一设备确定当前时间与上次发送所述第一报文的时间间隔达到第一预设时长,获取所述第三RTT,并记录当前时间戳。
6.根据权利要求2-5任一项所述的方法,其特征在于,所述方法还包括:
若所述第一设备确定从上次发送所述第三报文开始已累积发送第二预设数量的数据包,获取第四RTT;或者,
若所述第一设备确定当前时间与上次发送所述第三报文的时间间隔达到第二预设时长,获取所述第四RTT,并记录当前时间戳。
7.根据权利要求2-6任一项所述的方法,其特征在于,所述第三时间戳携带在报文远程直接内存访问RDMA的基本传输头BTH中的保留字段中,或者,携带在报文RDMA的负载Payload中。
8.根据权利要求1-7任一项所述的方法,其特征在于,若所述第一报文为所述数据报文,所述第一时间戳携带在报文RDMA的BTH中的保留字段中;若所述第一报文和所述数据报文不同,所述第一时间戳携带在报文远程直接内存访问RDMA的基本传输头BTH中的保留字段中,或者,携带在报文RDMA的负载Payload中。
9.一种网络拥塞控制方法,其特征在于,所述方法包括:
第二设备接收第一设备发送的第一报文,所述第一报文中携带第一时间戳;所述第一时间戳为发送所述第一报文时的本地时间戳;所述第一设备为发送数据报文的设备;
所述第二设备向所述第一设备发送第二报文,所述第二报文中携带所述第一时间戳;
其中,所述第一报文的优先级和数据报文的优先级相同,所述第二报文的优先级高于所述数据报文的优先级。
10.根据权利要求9所述的方法,其特征在于,所述方法还包括:
所述第二设备接收所述第一设备发送的第三报文,所述第三报文中携带第三时间戳,所述第三时间戳为发送所述第三报文时的本地时间戳;所述第三报文的优先级高于所述数据报文的优先级;
所述第二设备向所述第一设备发送第四报文;所述第四报文中携带所述第三时间戳;所述第四报文的优先级高于所述数据报文的优先级。
11.一种网络拥塞控制装置,其特征在于,所述网络拥塞控制装置为发送数据报文的装置,所述装置包括:处理单元和收发单元;
所述处理单元,用于:
通过所述收发单元向第二设备发送第一报文,所述第一报文中携带第一时间戳;所述第一时间戳为发送所述第一报文时的本地时间戳;
通过所述收发单元接收所述第二设备发送的第二报文,所述第二报文中携带所述第一时间戳;
用第二时间戳减去所述第一时间戳,获取第一往返时间RTT;所述第二时间戳为所述装置接收所述第二报文时的本地时间戳;
根据所述第一RTT,调整数据报文的发送速率;
其中,所述第一报文的优先级和所述数据报文的优先级相同,所述第二报文的优先级高于所述数据报文的优先级。
12.根据权利要求11所述的装置,其特征在于,所述处理单元,还用于:
通过所述收发单元向所述第二设备发送第三报文,所述第三报文中携带第三时间戳,所述第三时间戳为发送所述第三报文时的本地时间戳;所述第三报文的优先级高于所述数据报文的优先级;
通过所述收发单元接收所述第二设备发送的第四报文;所述第四报文中携带所述第三时间戳;所述第四报文的优先级高于所述数据报文的优先级;
用第四时间戳减去所述第三时间戳,获取第二RTT;所述第四时间戳为所述装置接收所述第四报文时的本地时间戳。
13.根据权利要求12所述的装置,其特征在于,所述处理单元,具体用于:
用所述第一RTT减去所述第二RTT,得到时间差;所述时间差用于指示网络队列拥塞深度;
根据所述时间差,调整数据报文的发送速率。
14.根据权利要求13所述的装置,其特征在于,所述处理单元,具体用于:
若所述时间差小于第一预设阈值,增大所述数据报文的发送速率;若所述时间差大于第二预设阈值,减小所述数据报文的发送速率;所述第一预设阈值小于所述第二预设阈值。
15.根据权利要求12-14任一项所述的装置,其特征在于,所述处理单元,还用于:
若所述处理单元确定从上次发送所述第一报文开始已累积发送第一预设数量的数据包,获取第三RTT;或者,
若所述处理单元确定当前时间与上次发送所述第一报文的时间间隔达到第一预设时长,获取所述第三RTT,并记录当前时间戳。
16.根据权利要求12-15任一项所述的装置,其特征在于,所述处理单元,还用于:
若所述处理单元确定从上次发送所述第三报文开始已累积发送第二预设数量的数据包,获取第四RTT;或者,
若所述处理单元确定当前时间与上次发送所述第三报文的时间间隔达到第二预设时长,获取所述第四RTT,并记录当前时间戳。
17.根据权利要求12-16任一项所述的装置,其特征在于,所述第三时间戳携带在报文远程直接内存访问RDMA的基本传输头BTH中的保留字段中,或者,携带在报文RDMA的负载Payload中。
18.根据权利要求11-17任一项所述的装置,其特征在于,若所述第一报文为所述数据报文,所述第一时间戳携带在报文RDMA的BTH中的保留字段中;若所述第一报文和所述数据报文不同,所述第一时间戳携带在报文远程直接内存访问RDMA的基本传输头BTH中的保留字段中,或者,携带在报文RDMA的负载Payload中。
19.一种网络拥塞控制装置,其特征在于,所述装置包括:处理单元和收发单元;
所述处理单元,用于:
通过所述收发单元接收第一设备发送的第一报文,所述第一报文中携带第一时间戳;所述第一时间戳为发送所述第一报文时的本地时间戳;所述第一设备为发送数据报文的设备;
通过所述收发单元向所述第一设备发送第二报文,所述第二报文中携带所述第一时间戳;
其中,所述第一报文的优先级和数据报文的优先级相同,所述第二报文的优先级高于所述数据报文的优先级;或者,所述第一报文的优先级高于所述数据报文的优先级,所述第二报文的优先级和所述数据报文的优先级相同。
20.根据权利要求19所述的装置,其特征在于,所述处理单元,还用于:
通过所述收发单元接收所述第一设备发送的第三报文,所述第三报文中携带第三时间戳,所述第三时间戳为发送所述第三报文时的本地时间戳;所述第三报文的优先级高于所述数据报文的优先级;
通过所述收发单元向所述第一设备发送第四报文;所述第四报文中携带所述第三时间戳;所述第四报文的优先级高于所述数据报文的优先级。
21.一种计算机存储介质,所述计算机存储介质中存储有计算机程序代码,其特征在于,当所述计算机程序代码在处理器上运行时,使得所述处理器执行如权利要求1-10任一项所述的网络拥塞控制方法。
22.一种网络拥塞控制装置,其特征在于,所述网络拥塞控制装置包括:
收发器,用于收发信息,或者用于与其他网元通信;
存储器,用于存储计算机执行指令;
处理器,用于执行所述计算机执行指令实现如权利要求1-10任一项所述的网络拥塞控制方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910295531.0A CN111817977B (zh) | 2019-04-12 | 2019-04-12 | 一种网络拥塞控制方法和装置 |
PCT/CN2020/084260 WO2020207479A1 (zh) | 2019-04-12 | 2020-04-10 | 一种网络拥塞控制方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910295531.0A CN111817977B (zh) | 2019-04-12 | 2019-04-12 | 一种网络拥塞控制方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111817977A true CN111817977A (zh) | 2020-10-23 |
CN111817977B CN111817977B (zh) | 2024-04-16 |
Family
ID=72750946
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910295531.0A Active CN111817977B (zh) | 2019-04-12 | 2019-04-12 | 一种网络拥塞控制方法和装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN111817977B (zh) |
WO (1) | WO2020207479A1 (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113037859A (zh) * | 2021-03-24 | 2021-06-25 | 新华三技术有限公司 | 一种会话信息管理方法、装置、交换设备及介质 |
CN113300874A (zh) * | 2021-02-09 | 2021-08-24 | 阿里巴巴集团控股有限公司 | 网络性能检测系统及方法 |
CN113364701A (zh) * | 2021-05-28 | 2021-09-07 | 南京大学 | 基于rtt的结合比例积分微分控制的拥塞控制方法及设备 |
CN113422704A (zh) * | 2021-02-05 | 2021-09-21 | 阿里巴巴集团控股有限公司 | 数据测量方法、装置、电子设备及计算机存储介质 |
CN114938354A (zh) * | 2022-06-24 | 2022-08-23 | 北京有竹居网络技术有限公司 | 拥塞控制的方法、装置、设备和存储介质 |
CN116527593A (zh) * | 2023-07-03 | 2023-08-01 | 珠海星云智联科技有限公司 | 网络流量拥塞控制方法及相关装置 |
CN116582492A (zh) * | 2023-07-14 | 2023-08-11 | 珠海星云智联科技有限公司 | 优化rdma读取的拥塞控制方法、系统及存储介质 |
CN116760779A (zh) * | 2023-08-21 | 2023-09-15 | 珠海星云智联科技有限公司 | 网络拥塞控制方法、系统、存储介质和电子设备 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115277883A (zh) * | 2022-06-27 | 2022-11-01 | 新华三技术有限公司 | 一种报文转发方法以及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102055677A (zh) * | 2011-01-26 | 2011-05-11 | 杭州华三通信技术有限公司 | 减少网络拥塞的方法及设备 |
US20130100816A1 (en) * | 2011-10-25 | 2013-04-25 | Vmware, Inc. | Network congestion management based on communication delay |
CN107896192A (zh) * | 2017-11-20 | 2018-04-10 | 电子科技大学 | 一种SDN网络中区分业务优先级的QoS控制方法 |
CN109412958A (zh) * | 2017-08-18 | 2019-03-01 | 华为技术有限公司 | 数据中心的拥塞控制方法和装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7894356B2 (en) * | 2005-12-23 | 2011-02-22 | Jds Uniphase Corporation | System and method for measuring network performance using real network traffic |
CN108075935B (zh) * | 2016-11-15 | 2021-01-29 | 华为技术有限公司 | 测量时延的方法及设备 |
CN108737207A (zh) * | 2017-04-25 | 2018-11-02 | 华为技术有限公司 | 传输时延探测方法、设备和系统 |
-
2019
- 2019-04-12 CN CN201910295531.0A patent/CN111817977B/zh active Active
-
2020
- 2020-04-10 WO PCT/CN2020/084260 patent/WO2020207479A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102055677A (zh) * | 2011-01-26 | 2011-05-11 | 杭州华三通信技术有限公司 | 减少网络拥塞的方法及设备 |
US20130100816A1 (en) * | 2011-10-25 | 2013-04-25 | Vmware, Inc. | Network congestion management based on communication delay |
CN109412958A (zh) * | 2017-08-18 | 2019-03-01 | 华为技术有限公司 | 数据中心的拥塞控制方法和装置 |
CN107896192A (zh) * | 2017-11-20 | 2018-04-10 | 电子科技大学 | 一种SDN网络中区分业务优先级的QoS控制方法 |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113422704A (zh) * | 2021-02-05 | 2021-09-21 | 阿里巴巴集团控股有限公司 | 数据测量方法、装置、电子设备及计算机存储介质 |
CN113300874A (zh) * | 2021-02-09 | 2021-08-24 | 阿里巴巴集团控股有限公司 | 网络性能检测系统及方法 |
CN113300874B (zh) * | 2021-02-09 | 2024-04-19 | 阿里巴巴集团控股有限公司 | 网络性能检测系统及方法 |
CN113037859A (zh) * | 2021-03-24 | 2021-06-25 | 新华三技术有限公司 | 一种会话信息管理方法、装置、交换设备及介质 |
CN113037859B (zh) * | 2021-03-24 | 2022-04-22 | 新华三技术有限公司 | 一种会话信息管理方法、装置、交换设备及介质 |
CN113364701A (zh) * | 2021-05-28 | 2021-09-07 | 南京大学 | 基于rtt的结合比例积分微分控制的拥塞控制方法及设备 |
CN114938354A (zh) * | 2022-06-24 | 2022-08-23 | 北京有竹居网络技术有限公司 | 拥塞控制的方法、装置、设备和存储介质 |
CN116527593A (zh) * | 2023-07-03 | 2023-08-01 | 珠海星云智联科技有限公司 | 网络流量拥塞控制方法及相关装置 |
CN116527593B (zh) * | 2023-07-03 | 2023-09-19 | 珠海星云智联科技有限公司 | 网络流量拥塞控制方法及相关装置 |
CN116582492A (zh) * | 2023-07-14 | 2023-08-11 | 珠海星云智联科技有限公司 | 优化rdma读取的拥塞控制方法、系统及存储介质 |
CN116582492B (zh) * | 2023-07-14 | 2023-09-26 | 珠海星云智联科技有限公司 | 优化rdma读取的拥塞控制方法、系统及存储介质 |
CN116760779A (zh) * | 2023-08-21 | 2023-09-15 | 珠海星云智联科技有限公司 | 网络拥塞控制方法、系统、存储介质和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
WO2020207479A1 (zh) | 2020-10-15 |
CN111817977B (zh) | 2024-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111817977B (zh) | 一种网络拥塞控制方法和装置 | |
US11611498B2 (en) | Round-trip time evaluation system, method, and apparatus | |
US8149704B2 (en) | Communication apparatus and data communication method | |
JP4348124B2 (ja) | QoSを推定する方法および通信装置 | |
US10129123B2 (en) | Measurement apparatus, communications apparatus, and relay apparatus | |
KR20080079335A (ko) | 통신 방법, 통신 시스템, 노드 및 프로그램 | |
EP2754267B1 (en) | Feedback protocol for end-to-end multiple path network systems | |
CN112054965A (zh) | 一种拥塞控制方法、设备及计算机可读介质 | |
CN104144088A (zh) | 一种提高时延测量精度的网络时延测量方法 | |
JP2001024678A (ja) | データ伝送ネットワーク中で輻輳を予測して制御する方法およびノード | |
US11165705B2 (en) | Data transmission method, device, and computer storage medium | |
CN115002008B (zh) | 一种网络时延测量的方法、装置、设备以及存储介质 | |
WO2015174069A1 (ja) | 通信システム、受信側装置、送信側装置、および、通信方法 | |
EP2936741A1 (en) | Probing a network | |
CN112737940A (zh) | 一种数据传输的方法和装置 | |
EP3582455B1 (en) | Method and apparatus for multiple subflows network transmission | |
WO2023231426A1 (zh) | 时延测量方法及其装置、存储介质、程序产品 | |
US9979652B2 (en) | Intermediate node, an end node, and method for avoiding latency in a packet-switched network | |
US9882751B2 (en) | Communication system, communication controller, communication control method, and medium | |
CN107171887B (zh) | 一种网络带宽测试方法、客户端及网络带宽测试系统 | |
JP4766703B2 (ja) | エッジノードおよび帯域制御方法 | |
CN112751778A (zh) | 数据传输控制方法及装置,拥塞检测及装置,服务器系统 | |
WO2024179299A1 (zh) | 带宽估计方法、装置、电子设备及存储介质 | |
JP4828555B2 (ja) | ノード装置および帯域制御方法 | |
CN116264490A (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 |