CN114401231A - 一种网络流量控制的方法、装置、计算机设备和存储介质 - Google Patents
一种网络流量控制的方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN114401231A CN114401231A CN202210068949.XA CN202210068949A CN114401231A CN 114401231 A CN114401231 A CN 114401231A CN 202210068949 A CN202210068949 A CN 202210068949A CN 114401231 A CN114401231 A CN 114401231A
- Authority
- CN
- China
- Prior art keywords
- flight
- sequence identifier
- packet
- data packet
- sending
- 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.)
- Withdrawn
Links
- 238000000034 method Methods 0.000 title claims abstract description 35
- 230000004044 response Effects 0.000 claims abstract description 129
- 230000005540 biological transmission Effects 0.000 claims description 59
- 238000004590 computer program Methods 0.000 claims description 13
- 230000001934 delay Effects 0.000 claims description 7
- 238000004364 calculation method Methods 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 4
- 238000012544 monitoring process Methods 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003068 static effect Effects 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/26—Flow control; Congestion control using explicit feedback to the source, e.g. choke packets
- H04L47/263—Rate modification at the source after receiving feedback
-
- 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/31—Flow control; Congestion control by tagging of packets, e.g. using discard eligibility [DE] bits
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请涉及一种网络流量控制的方法、装置、计算机设备和存储介质。所述网络流量控制的方法包括:采集来自于网络发送端的发送数据包参数和来自于网络接收端的响应数据包参数;通过当前时刻的所述发送数据包参数和所述响应数据包参数,分别获得当前时刻的第一飞行包参数和动态带宽延时积,其中,所述第一飞行包参数包括第一飞行包数量;根据所述动态带宽延时积和单个数据包的数据量,确定第二飞行包参数,其中,第二飞行包参数包括第二飞行包数量;对比所述第一飞行包数量和所述第二飞行包数量,若所述第一飞行包数量大于或等于所述第二飞行包数量,发出流量控制指令,进行网络流量控制。采用本方法能够主动对网络流量进行控制,降低网络丢包率。
Description
技术领域
本申请涉及网络通信技术领域,特别是涉及一种网络流量控制的方法、装置、计算机设备和存储介质。
背景技术
当前,远程直接内存访问(Remote Direct Memory Access,RDMA)被广泛应用于网络领域中。相比于传统传输控制协议(Transmission Control Protocol,TCP),RDMA协议具有高带宽低延时的优点。然而,在发生丢包重传的情况下,基于RDMA协议的网络传输速率会急剧下降,因此,流量控制策略成为影响RDMA网络性能的一个关键因素。
目前,RDMA协议可通过优先级流控方案或显示拥塞通知方案来实现流量控制。例如,优先级流控方案通过在创建的每条虚拟通道上指定相应优先级,使不同数据流享受实现对不同优先级的数据进行不同优先级的流控;显示拥塞通知方案通过对发出拥塞通知的端口进行网络数据包的速率限制,实现网络流量控制。然而,上述方法均是在网络拥塞已经发生以后,才进行流量控制,这会导致丢包已经发生,流量控制方式被动。并且,在含有多种网络协议的复杂网络中,由于其他网络协议会占用网络资源,优先级流控方案和显示拥塞通知方案的响应延时增加,会进一步导致RDMA协议下的丢包。
发明内容
基于此,提供一种网络流量控制的方法、装置、计算机设备和存储介质,改善现有技术中数据丢包概率大的问题。
一方面,提供一种网络流量控制的方法,所述方法包括:
采集来自于网络发送端的发送数据包参数和来自于网络接收端的响应数据包参数,其中,所述发送数据包参数包括第一序列标识符和发送时间,所述响应数据包参数包括第二序列标识符和响应时间;
通过当前时刻的所述发送数据包参数和所述响应数据包参数,分别获得当前时刻的第一飞行包参数和动态带宽延时积,其中,所述第一飞行包参数包括第一飞行包数量;
根据所述动态带宽延时积和单个数据包的数据量,确定第二飞行包参数,其中,第二飞行包参数包括第二飞行包数量;
对比所述第一飞行包数量和所述第二飞行包数量,若所述第一飞行包数量大于或等于所述第二飞行包数量,发出流量控制指令,进行网络流量控制。
在其中一个实施例中,通过当前时刻的所述发送数据包参数和所述响应数据包参数,获得当前时刻的第一飞行包参数和动态带宽延时积,包括:
通过当前时刻的所述第一序列标识符和所述第二序列标识符,获得所述第一序列标识符和所述第二序列标识符之间的差值;
根据所述差值,获得所述第一飞行包参数。
在其中一个实施例中,通过当前时刻的所述发送数据包参数和所述响应数据包参数,获得当前时刻的第一飞行包参数和动态带宽延时积,还包括:
根据所述发送时间和所述响应时间,获得预设的周期内的最小往返延时;
通过最小往返延时和网络速率,获得所述预设的周期内的动态带宽延时积。
在其中一个实施例中,对比所述第一飞行包数量和所述第二飞行包数量,还包括:
对比所述第一飞行包数量和所述第二飞行包数量,若所述第一飞行包数量小于所述第二飞行包数量,维持目前流量状态。
在其中一个实施例中,根据所述发送时间和所述响应时间,获得预设的周期内的最小往返延时,包括:
根据所述发送时间和所述响应时间,获得预设的周期内的往返延时集合,其中,往返延时集合包括各个数据包传输时的往返延时;
根据所述往返延时集合,获得预设的周期内的最小往返延时。
在其中一个实施例中,根据所述发送时间和所述响应时间,获得预设的周期内的往返延时集合,包括:
根据所述预设的周期内的第一序列标识符,获得包括所述第一序列标识符的第一序列标识符集合,并根据所述预设的周期内的第二序列标识符,获得包括所述第二序列标识符的第二序列标识符集合;
根据所述第一序列标识符集合和所述第二序列标识符集合,按照预设的对应条件,获得各个所述发送时间和所述响应时间的对应关系;
根据所述对应关系、所述发送时间和所述响应时间,获得所述往返延时集合。
在其中一个实施例中,根据所述第一序列标识符集合和所述第二序列标识符集合,按照预设的对应条件,获得各个所述发送时间和所述响应时间的对应关系,包括:
对比所述第一序列标识符合集合和所述第二序列标识符集合,若所述第一序列标识符的数值与所述第二序列标识符的数值相等,所述发送时间和所述响应时间相对应。
另一方面,提供了一种网络流量控制的装置,所述网络流量控制的装置包括:
数据采集模块:用于采集来自于网络发送端的发送数据包参数和来自于网络接收端的响应数据包参数,其中,所述发送数据包参数包括第一序列标识符和发送时间,所述响应数据包参数包括第二序列标识符和响应时间;
动态更新模块,通过当前时刻的所述发送数据包参数和所述响应数据包参数,分别获得当前时刻的第一飞行包参数和动态带宽延时积,其中,所述第一飞行包参数包括第一飞行包数量;
飞行包计算模块,根据所述动态带宽延时积和单个数据包的数据量,确定第二飞行包参数,其中,第二飞行包参数包括第二飞行包数量;
控制指令发出模块:对比所述第一飞行包数量和所述第二飞行包数量,若所述第一飞行包数量大于或等于所述第二飞行包数量,发出流量控制指令,进行网络流量控制。
再一方面,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
采集来自于网络发送端的发送数据包参数和来自于网络接收端的响应数据包参数,其中,所述发送数据包参数包括第一序列标识符和发送时间,所述响应数据包参数包括第二序列标识符和响应时间;
通过当前时刻的所述发送数据包参数和所述响应数据包参数,分别获得当前时刻的第一飞行包参数和动态带宽延时积,其中,所述第一飞行包参数包括第一飞行包数量;
根据所述动态带宽延时积和单个数据包的数据量,确定第二飞行包参数,其中,第二飞行包参数包括第二飞行包数量;
对比所述第一飞行包数量和所述第二飞行包数量,若所述第一飞行包数量大于或等于所述第二飞行包数量,发出流量控制指令,进行网络流量控制。
又一方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
采集来自于网络发送端的发送数据包参数和来自于网络接收端的响应数据包参数,其中,所述发送数据包参数包括第一序列标识符和发送时间,所述响应数据包参数包括第二序列标识符和响应时间;
通过当前时刻的所述发送数据包参数和所述响应数据包参数,分别获得当前时刻的第一飞行包参数和动态带宽延时积,其中,所述第一飞行包参数包括第一飞行包数量;
根据所述动态带宽延时积和单个数据包的数据量,确定第二飞行包参数,其中,第二飞行包参数包括第二飞行包数量;
对比所述第一飞行包数量和所述第二飞行包数量,若所述第一飞行包数量大于或等于所述第二飞行包数量,发出流量控制指令,进行网络流量控制。
上述网络流量控制的方法及装置,通过发送数据包参数和响应数据包参数,获得动态带宽延时积和包括第一飞行包数量的第一飞行包参数,可通过动态带宽延时积和单个数据包的数据量,获得包括第二飞行包数量的第二飞行包参数,还可对比获得的第一飞行包数量和所述第二飞行包数量,若所述第一飞行包数量大于或等于所述第二飞行包数量,发出流量控制指令,达到主动控制网络流量的目的,改善数据包丢包概率大的问题。
附图说明
图1为一个实施例中网络流量控制的方法的应用环境图;
图2为一个实施例中网络流量控制的方法的流程示意图;
图3为一个实施例中获取第一飞行包参数的流程示意图;
图4为一个实施例中获取动态带宽延时积的流程示意图;
图5为一个实施例中流量控制发出条件的流程示意图;
图6为一个实施例中获取最小往返延时的流程示意图;
图7为一个实施例中获取往返延时集合的流程示意图;
图8为一个实施例中获取发送时间和响应时间的对应关系的流程示意图;
图9为一个实施例中网络流量控制的装置的结构框图;
图10为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的网络流量控制的方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104通过网络进行通信。例如,本申请提供的一种网络流量控制的方法,基于动态带宽延时积和当前时刻的飞行包数量,对现有网络堵塞情况主动进行预判,从而改善网络中丢包概率大等问题。通过对发送数据包参数和响应数据包参数,获得动态带宽延时积和包括第一飞行包数量的第一飞行包参数,然后通过动态带宽延时积和单个数据包的数据量,获得包括第二飞行包数量的第二飞行包参数,最后对比获得的第一飞行包数量和所述第二飞行包数量,若所述第一飞行包数量大于或等于所述第二飞行包数量,发出流量控制指令。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图2所示,提供了一种网络流量控制的方法,以该方法应用于图1中的服务器为例进行说明,包括以下步骤:
步骤202:采集来自于网络发送端的发送数据包参数和来自于网络接收端的响应数据包参数,其中,所述发送数据包参数包括第一序列标识符和发送时间,所述响应数据包参数包括第二序列标识符和响应时间;
步骤204:通过当前时刻的所述发送数据包参数和所述响应数据包参数,分别获得当前时刻的第一飞行包参数和动态带宽延时积,其中,所述第一飞行包参数包括第一飞行包数量;
步骤206:根据所述动态带宽延时积和单个数据包的数据量,确定第二飞行包参数,其中,第二飞行包参数包括第二飞行包数量;
步骤208:对比所述第一飞行包数量和所述第二飞行包数量,若所述第一飞行包数量大于或等于所述第二飞行包数量,发出流量控制指令,进行网络流量控制。
通过上述步骤,可以实时更新带宽延时积和网络传输中的数据量,以实现对当前网络情况进行实时监控,提前获知网络堵塞信息,改善了复杂网络下,获取网络流量控制信息的延迟问题,可主动地进行网络流量控制,避免因网络流量控制不及时导致网络数据丢包。
在采集网络发送端的发送数据包参数和网络接收端的响应数据包参数时,发送数据包参数应该包括第一序列标识符和发送时间,响应数据包参数应该包括第二序列标识符和响应时间,在步骤202中,示例性地说明,采集来自于网络发送端的发送数据包参数和来自于网络接收端的响应数据包参数,其中,所述发送数据包参数包括第一序列标识符和发送时间,所述响应数据包参数包括第二序列标识符和响应时间,例如,由于RDMA协议中,会在每个数据包的包头中进行编号,可利用RDMA协议,采集发送数据包参数中的第一序列标识符和响应数据包参数中的第二序列标识符,同时可利用现场可编程逻辑门阵列(FieldProgrammable Gate Array,FPGA)器件的精确计时功能,采集发送数据包参数的发送时间和响应数据包参数的响应时间,以此实现在采集发送数据包参数和响应数据包参数时的数据一致性和精确性。
采集发送数据包参数和响应数据包参数是为了获得第一飞行包参数和动态带宽延时积,在步骤204中,示例性地说明,通过当前时刻的所述发送数据包参数和响应数据包参数,分别获得当前时刻的第一飞行包参数和动态带宽延时积,其中,所述第一飞行包参数包括第一飞行包数量,例如,求取当前时刻的网络发送端的发送数据包参数中的第一序列标识符和网络接收端的响应数据包参数中的第二序列标识符之间的差值,获得第一飞行包数量,同时,通过发送时间和对应的响应时间,获得往返延时,设定一段固定更新周期,更新周期内的最小往返延时,再利用网络链路的带宽和最小往返延时的乘积,获得固定更新周期内的最小带宽延时积,即动态带宽延时,以此确保实时监控当前网络情况。
获得动态带宽延时之后,需要确定网络链路的数据传输上限,在步骤206中,示例性地说明,根据所述动态带宽延时积和单个数据包的数据量,确定第二飞行包参数,其中,第二飞行包参数包括第二飞行包数量,例如,确定当前时刻的单个数据包的数据量,通过动态带宽延时积/单个数据包的数据量,以此实时获得网络链路上可以传输的数据包的最大数量,即已发送但未响应的数据包的最大数量,即第二飞行包数量。
确定网络链路的数据传输上限后,需要确定当前网络是否达到数据传输上限,在步骤208中,示例性地说明,对比所述第一飞行包数量和所述第二飞行包数量,若所述第一飞行包数量大于或等于所述第二飞行包数量,发出流量控制指令,进行网络流量控制,例如,对比当前时刻第一飞行包数量和第二飞行包数量,当第一飞行包数量大于或等于第二飞行包数量,即网络链路上传输的数据量已经超过了网络链路上可以传输的最大数据量,网络已经出现堵塞的情况,发送流量控制指令,对网络发送端进行网络降速,以此实现更加主动的流量控制,减少丢包概率。
采集发送数据包参数和响应数据包参数是为了获得第一飞行包参数和动态带宽延时积,在一些实施例中,如图3所示,通过当前时刻的所述发送数据包参数和所述响应数据包参数,获得当前时刻的第一飞行包参数的步骤包括:
步骤302,通过当前时刻的所述第一序列标识符和所述第二序列标识符,获得所述第一序列标识符和所述第二序列标识符之间的差值;
步骤304,根据所述差值,获得所述第一飞行包参数。
如图3所示,在步骤302中,示例性地说明,通过当前时刻的所述第一序列标识符和所述第二序列标识符,获得所述第一序列标识符和所述第二序列标识符之间的差值,例如,获得当前时刻待发送的第一序列标识符,和同一时刻待接收的第二序列标识符,利用第二序列标识符的数值减去第一序列标识符的数值,得到相应差值。
如图3所示,在步骤304中,示例性地说明,通过根据所述差值,获得所述第一飞行包参数,例如,得到的差值为已发送但未响应的数据包的数量,即第一飞行包数量,第一飞行包参数应包括第一飞行包数量。
采集发送数据包参数和响应数据包参数是为了获得第一飞行包参数和动态带宽延时积,如图4所示,在一些实施例中,通过当前时刻的所述发送数据包参数和所述响应数据包参数,获得动态带宽延时积的步骤包括:
步骤402,根据所述发送时间和所述响应时间,获得预设的周期内的最小往返延时;
步骤404,通过最小往返延时和网络速率,获得所述预设的周期内的动态带宽延时积。
如图4所示,在步骤402中,示例性地说明,根据所述发送时间和所述响应时间,获得预设的周期内的最小往返延时,例如,在预设的周期内,获得各个发送时间对应的响应时间,并通过响应数据包参数中的响应时间减去发送数据包参数中的发送时间,获得往返延时,并在预设的周期内,确定最小往返延时。
如图4所示,在步骤404中,示例性地说明,通过最小往返延时和网络速率,获得所述预设的周期内的动态带宽延时积,例如,根据当前时刻的网络速率,通过最小往返延时和网络带宽的乘积,获得带宽延时积,并通过实时更新的最小往返延时,获得动态带宽延时积。
确定网络链路的数据传输上限后,需要确定当前网络是否达到数据传输上限,如图5所示,在一些实施例中,对比所述第一飞行包数量和所述第二飞行包数量的步骤还包括:
步骤502,对比所述第一飞行包数量和所述第二飞行包数量,若所述第一飞行包数量小于所述第二飞行包数量,维持目前流量状态。
如图5所示,在步骤502中,示例性地说明,对比所述第一飞行包数量和所述第二飞行包数量,若所述第一飞行包数量小于所述第二飞行包数量,维持目前流量状态,例如,对比当前时刻第一飞行包数量和第二飞行包数量,当第一飞行包数量小于第二飞行包数量,即网络链路上传输的数据量还未超过网络链路上可以传输的最大数据量,网络未造成堵塞,维持目前流量状态。
在获得最小往返延时前,需要获得预设的周期内的往返延时集合,如图6所示,在一些实施例中,根据所述发送时间和所述响应时间,获得预设的周期内的最小往返延时的步骤包括:
步骤602,根据所述发送时间和所述响应时间,获得预设的周期内的往返延时集合,其中,往返延时集合包括各个数据包传输时的往返延时;
步骤604,根据所述往返延时集合,获得预设的周期内的最小往返延时。
如图6所示,在步骤602中,示例性地说明,根据所述发送时间和所述响应时间,获得预设的周期内的往返延时集合,其中,往返延时集合包括各个数据包传输时的往返延时,例如,在预设的周期内,缓存多个发送数据包参数和多个响应数据包参数,通过各个响应数据包参数中的响应时间减去相应的发送数据包参数中的发送时间,获得包括各个数据包传输时的往返延时的往返延时集合。
如图6所示,步骤604,示例性地说明,根据所述往返延时集合,获得预设的周期内的最小往返延时,例如,对比往返延时集合中的各个往返延时的数值,其中最小数值为最小往返延时。
获得往返延时集合,需要确定发送时间对应的响应时间,如图7所示,在一些实施例中,根据所述发送时间和所述响应时间,获得预设的周期内的往返延时集合的步骤包括:
步骤702,根据所述预设的周期内的第一序列标识符,获得包括所述第一序列标识符的第一序列标识符集合,并根据所述预设的周期内的第二序列标识符,获得包括所述第二序列标识符的第二序列标识符集合;
步骤704,根据所述第一序列标识符集合和所述第二序列标识符集合,按照预设的对应条件,获得各个所述发送时间和所述响应时间的对应关系;
步骤706,根据所述对应关系、所述发送时间和所述响应时间,获得所述往返延时集合。
如图7所示,步骤702,示例性地说明,根据所述预设的周期内的第一序列标识符,获得包括所述第一序列标识符的第一序列标识符集合,并根据所述预设的周期内的第二序列标识符,获得包括所述第二序列标识符的第二序列标识符集合,例如,在预设的周期内,缓存多个发送数据包参数和多个响应数据包参数,通过发送数据包参数获得第一序列标识符集合,通过响应数据包参数获得第二序列标识符集合,其中第一序列标识符集合包括预设的周期内的第一序列标识符,第二序列标识符集合包括预设的周期内的第二序列标识符。
如图7所示,步骤704,示例性地说明,根据所述第一序列标识符集合和所述第二序列标识符集合,按照预设的对应条件,获得各个所述发送时间和所述响应时间的对应关系,例如,将第二序列标识符集合中的当前时刻的第二序列标识符依次与第一序列标识符集合中的第一序列标识符进行比较,当第一序列标识符和第二序列标识符满足预设的对应条件时,包括第一序列标识符的发送包参数与响应包参数相对应,相应地,获得各个发送时间和响应时间的对应关系。
如图7所示,步骤706,示例性地说明,根据所述对应关系、所述发送时间和所述响应时间,获得所述往返延时集合,例如,可以通过各个响应数据包参数中的响应时间减去对应的发送数据包参数中的发送时间,获得包括各个数据包传输时的往返延时的往返延时集合。
确定各个发送时间对应的响应时间,需要确定预设的对应条件,如图8所示,在一些实施例中,根据所述第一序列标识符集合和所述第二序列标识符集合,按照预设的对应条件,获得各个所述发送时间和所述响应时间的对应关系的步骤包括:
步骤802,对比所述第一序列标识符合和所述第二序列标识符,若所述第一序列标识符的数值与所述第二序列标识符的数值相等,所述发送时间和所述响应时间相对应。
如图8所示,步骤802,示例性地说明,对比所述第一序列标识符合和所述第二序列标识符,若所述第一序列标识符的数值与所述第二序列标识符的数值相等,所述发送时间和所述响应时间相对应,例如,将第二序列标识符集合中的当前时刻的第二序列标识符依次与第一序列标识符集合中的第一序列标识符进行比较,若第一序列标识符的数值和第二序列标识符的数值相等,包括第一序列标识符的发送包参数与包括第二序列标识符的响应包参数相对应,若第一序列标识符大于第二序列标识符,则当前时刻获得的响应数据包参数无效,继续等待下一时刻的响应数据包参数,若第一序列标识符小于第二序列标识符,将发送数据包参数从缓存中读出,直到第一序列标识符等于第二序列标识符,发送包参数与响应包参数相对应,从而确定发送时间与响应时间相对应。
应该理解的是,虽然图2-8的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-8中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图9所示,提供了一种网络流量控制的装置,所述网络流量控制的装置包括:
数据采集模块,用于采集来自于网络发送端的发送数据包参数和来自于网络接收端的响应数据包参数,其中,所述发送数据包参数包括第一序列标识符和发送时间,所述响应数据包参数包括第二序列标识符和响应时间;
动态更新模块,用于通过当前时刻的所述发送数据包参数和所述响应数据包参数,分别获得当前时刻的第一飞行包参数和动态带宽延时积,其中,所述第一飞行包参数包括第一飞行包数量;
飞行包计算模块,用于根据所述动态带宽延时积和单个数据包的数据量,确定第二飞行包参数,其中,第二飞行包参数包括第二飞行包数量;
控制指令发出模块,用于对比所述第一飞行包数量和所述第二飞行包数量,若所述第一飞行包数量大于或等于所述第二飞行包数量,发出流量控制指令,进行网络流量控制。
在数据采集模块,示例性地说明,用于采集来自于网络发送端的发送数据包参数和来自于网络接收端的响应数据包参数,其中,所述发送数据包参数包括第一序列标识符和发送时间,所述响应数据包参数包括第二序列标识符和响应时间,例如,由于RDMA协议中,会在每个数据包的包头中进行编号,可利用RDMA协议,采集发送数据包参数中的第一序列标识符和响应数据包参数中的第二序列标识符,同时可利用FPGA的精确计时功能,采集发送数据包参数的发送时间和响应数据包参数的响应时间,以此实现在采集发送数据包参数和响应数据包参数时的数据一致性和精确性。
在动态更新模块,示例性地说明,通过当前时刻的所述发送数据包参数和响应数据包参数,分别获得当前时刻的第一飞行包参数和动态带宽延时积,其中,所述第一飞行包参数包括第一飞行包数量,例如,求取当前时刻的网络发送端的发送数据包参数中的第一序列标识符和网络接收端的响应数据包参数中的第二序列标识符之间的差值,获得第一飞行包数量,同时,在预设的周期内,缓存多个发送数据包参数和多个响应数据包参数,根据所述预设的周期内的第一序列标识符,获得第一序列标识符集合,并根据所述预设的周期内的第二序列标识符获得第二序列标识符集合,将第二序列标识符集合中的当前时刻的第二序列标识符依次与第一序列标识符集合中的第一序列标识符进行比较,若第一序列标识符的数值和第二序列标识符的数值相等,包括第一序列标识符的发送包参数与包括第二序列标识符的响应包参数相对应,若第一序列标识符大于第二序列标识符,则当前时刻获得的响应数据包参数无效,继续等待下一时刻的响应数据包参数,若第一序列标识符小于第二序列标识符,将发送数据包参数从缓存中读出,直到第一序列标识符等于第二序列标识符,发送包参数与响应包参数相对应,可以确定发送时间与响应时间相对应,利用各个响应时间减去对应的发送时间,获得包括各个数据包传输时的往返延时的往返延时集合,并在预设的周期内更新最小往返延时,再利用网络链路的带宽和最小往返延时的乘积,获得固定更新周期内的最小带宽延时积,即动态带宽延时,以此确保实时监控当前网络情况。
飞行包计算模块,示例性地说明,根据所述动态带宽延时积和单个数据包的数据量,确定第二飞行包参数,其中,第二飞行包参数包括第二飞行包数量,例如,确定当前时刻的单个数据包的数据量,通过动态带宽延时积/单个数据包的数据量,以此实时获得网络链路上可以传输的数据包的最大数量,即已发送但未响应的数据包的最大数量,即第二飞行包数量。
控制指令发出模块,示例性地说明,对比所述第一飞行包数量和所述第二飞行包数量,若所述第一飞行包数量大于或等于所述第二飞行包数量,发出流量控制指令,进行网络流量控制,例如,对比当前时刻第一飞行包数量和第二飞行包数量,若第一飞行包数量小于第二飞行包数量,即网络链路上传输的数据量还未超过网络链路上可以传输的最大数据量,网络未造成堵塞,维持目前流量状态,若第一飞行包数量大于或等于第二飞行包数量,即网络链路上传输的数据量已经超过了网络链路上可以传输的最大数据量,网络已经出现堵塞的情况,发送流量控制指令,对网络发送端进行网络降速,以此实现更加主动的流量控制,减少丢包概率。
关于网络流量控制的装置的具体限定可以参见上文中对于网络流量控制的方法的限定,在此不再赘述。上述网络流量控制的装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图10所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储网络流量控制的数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种网络流量控制的方法。
本领域技术人员可以理解,图10中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:
采集来自于网络发送端的发送数据包参数和来自于网络接收端的响应数据包参数,其中,所述发送数据包参数包括第一序列标识符和发送时间,所述响应数据包参数包括第二序列标识符和响应时间;
通过当前时刻的所述发送数据包参数和所述响应数据包参数,分别获得当前时刻的第一飞行包参数和动态带宽延时积,其中,所述第一飞行包参数包括第一飞行包数量;
根据所述动态带宽延时积和单个数据包的数据量,确定第二飞行包参数,其中,第二飞行包参数包括第二飞行包数量;
对比所述第一飞行包数量和所述第二飞行包数量,若所述第一飞行包数量大于或等于所述第二飞行包数量,发出流量控制指令,进行网络流量控制。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
采集来自于网络发送端的发送数据包参数和来自于网络接收端的响应数据包参数,其中,所述发送数据包参数包括第一序列标识符和发送时间,所述响应数据包参数包括第二序列标识符和响应时间;
通过当前时刻的所述发送数据包参数和所述响应数据包参数,分别获得当前时刻的第一飞行包参数和动态带宽延时积,其中,所述第一飞行包参数包括第一飞行包数量;
根据所述动态带宽延时积和单个数据包的数据量,确定第二飞行包参数,其中,第二飞行包参数包括第二飞行包数量;
对比所述第一飞行包数量和所述第二飞行包数量,若所述第一飞行包数量大于或等于所述第二飞行包数量,发出流量控制指令,进行网络流量控制。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种网络流量控制的方法,其特征在于,包括:
采集来自于网络发送端的发送数据包参数和来自于网络接收端的响应数据包参数,其中,所述发送数据包参数包括第一序列标识符和发送时间,所述响应数据包参数包括第二序列标识符和响应时间;
通过当前时刻的所述发送数据包参数和所述响应数据包参数,分别获得当前时刻的第一飞行包参数和动态带宽延时积,其中,所述第一飞行包参数包括第一飞行包数量;
根据所述动态带宽延时积和单个数据包的数据量,确定第二飞行包参数,其中,第二飞行包参数包括第二飞行包数量;
对比所述第一飞行包数量和所述第二飞行包数量,若所述第一飞行包数量大于或等于所述第二飞行包数量,发出流量控制指令,进行网络流量控制。
2.如权利要求1所述的网络流量控制的方法,其特征在于,通过当前时刻的所述发送数据包参数和所述响应数据包参数,分别获得当前时刻的第一飞行包参数和动态带宽延时积,包括:
通过当前时刻的所述第一序列标识符和所述第二序列标识符,获得所述第一序列标识符和所述第二序列标识符之间的差值;
根据所述差值,获得所述第一飞行包参数。
3.如权利要求1所述的网络流量控制的方法,其特征在于,通过当前时刻的所述发送数据包参数和所述响应数据包参数,分别获得当前时刻的第一飞行包参数和动态带宽延时积,还包括:
根据所述发送时间和所述响应时间,获得预设的周期内的最小往返延时;
通过最小往返延时和网络速率,获得所述预设的周期内的动态带宽延时积。
4.如权利要求1所述的网络流量控制的方法,其特征在于,对比所述第一飞行包数量和所述第二飞行包数量,还包括:
对比所述第一飞行包数量和所述第二飞行包数量,若所述第一飞行包数量小于所述第二飞行包数量,维持目前流量状态。
5.如权利要求3所述的网络流量控制的方法,其特征在于,根据所述发送时间和所述响应时间,获得预设的周期内的最小往返延时,包括:
根据所述发送时间和所述响应时间,获得预设的周期内的往返延时集合,其中,往返延时集合包括各个数据包传输时的往返延时;
根据所述往返延时集合,获得预设的周期内的最小往返延时。
6.如权利要求5所述的网络流量控制的方法,其特征在于,根据所述发送时间和所述响应时间,获得预设的周期内的往返延时集合,包括:
根据所述预设的周期内的第一序列标识符,获得包括所述第一序列标识符的第一序列标识符集合,并根据所述预设的周期内的第二序列标识符,获得包括所述第二序列标识符的第二序列标识符集合;
根据所述第一序列标识符集合和所述第二序列标识符集合,按照预设的对应条件,获得各个所述发送时间和所述响应时间的对应关系;
根据所述对应关系、所述发送时间和所述响应时间,获得所述往返延时集合。
7.如权利要求1或6所述的网络流量控制的方法,其特征在于,根据所述第一序列标识符集合和所述第二序列标识符集合,按照预设的对应条件,获得各个所述发送时间和所述响应时间的对应关系,包括:
对比所述第一序列标识符合集合和所述第二序列标识符集合,若所述第一序列标识符的数值与所述第二序列标识符的数值相等,所述发送时间和所述响应时间相对应。
8.一种网络流量控制的装置,其特征在于,所述网络流量控制的装置包括:
数据采集模块,用于采集来自于网络发送端的发送数据包参数和来自于网络接收端的响应数据包参数,其中,所述发送数据包参数包括第一序列标识符和发送时间,所述响应数据包参数包括第二序列标识符和响应时间;
动态更新模块,用于通过当前时刻的所述发送数据包参数和所述响应数据包参数,分别获得当前时刻的第一飞行包参数和动态带宽延时积,其中,所述第一飞行包参数包括第一飞行包数量;
飞行包计算模块,用于根据所述动态带宽延时积和单个数据包的数据量,确定第二飞行包参数,其中,第二飞行包参数包括第二飞行包数量;
控制指令发出模块,用于对比所述第一飞行包数量和所述第二飞行包数量,若所述第一飞行包数量大于或等于所述第二飞行包数量,发出流量控制指令,进行网络流量控制。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210068949.XA CN114401231A (zh) | 2022-01-21 | 2022-01-21 | 一种网络流量控制的方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210068949.XA CN114401231A (zh) | 2022-01-21 | 2022-01-21 | 一种网络流量控制的方法、装置、计算机设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114401231A true CN114401231A (zh) | 2022-04-26 |
Family
ID=81232578
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210068949.XA Withdrawn CN114401231A (zh) | 2022-01-21 | 2022-01-21 | 一种网络流量控制的方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114401231A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114979169A (zh) * | 2022-05-27 | 2022-08-30 | 山东派盟网络科技有限公司 | 一种网络资源推送方法、装置、存储介质及电子设备 |
-
2022
- 2022-01-21 CN CN202210068949.XA patent/CN114401231A/zh not_active Withdrawn
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114979169A (zh) * | 2022-05-27 | 2022-08-30 | 山东派盟网络科技有限公司 | 一种网络资源推送方法、装置、存储介质及电子设备 |
CN114979169B (zh) * | 2022-05-27 | 2024-03-29 | 山东派盟网络科技有限公司 | 一种网络资源推送方法、装置、存储介质及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9537786B2 (en) | Method, device, and system for information processing based on distributed buses | |
EP2642702B1 (en) | Communication apparatus and communication system | |
CN112887217B (zh) | 控制数据包发送方法、模型训练方法、装置及系统 | |
US8341453B2 (en) | Transmission apparatus that transmits data according to a protocol, and method for measuring time in the transmission apparatus | |
US20190220224A1 (en) | Non-volatile memory persistence method and computing device | |
CN111490963B (zh) | 基于quic协议栈的数据处理方法、系统、设备及存储介质 | |
CN114401231A (zh) | 一种网络流量控制的方法、装置、计算机设备和存储介质 | |
CN110380978B (zh) | 多路径传输的调度方法、装置、计算机设备和存储介质 | |
EP4390712A1 (en) | Network interface card, message sending method and storage apparatus | |
CN110166450A (zh) | 基于工业以太网的数据传输方法、装置以及通信设备 | |
CN114401224B (zh) | 一种数据限流方法、装置、电子设备以及存储介质 | |
CN115868184A (zh) | 加速面向ble连接的服务上的控制过程 | |
CN110650182B (zh) | 网络缓存方法、装置、计算机设备及存储介质 | |
CN112491736B (zh) | 一种拥塞控制方法、装置、电子设备及存储介质 | |
CN110098976A (zh) | 网络参数的测量方法、装置、计算机设备和存储介质 | |
CN111740922B (zh) | 数据传输方法、装置、电子设备及介质 | |
CN109981487B (zh) | 一种数据调度方法、装置、电子设备及可读存储介质 | |
CN109150743B (zh) | 一种网络拥塞控制策略切换方法及系统 | |
CN114401230A (zh) | 基于跨数据中心网络通信的发送速率控制方法和装置 | |
CN111669431B (zh) | 消息传输方法、装置、计算机设备和存储介质 | |
US11444880B2 (en) | Traffic control method and related apparatus | |
CN111222882A (zh) | 基于区块链的数据传输方法、装置、设备及可读存储介质 | |
JP3693594B2 (ja) | ルータ装置 | |
US20230100301A1 (en) | Efficient fail over to backup link | |
CN112422244B (zh) | 基于流量负载预测的rdma缓冲区动态分配方法 |
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 | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20220426 |