CN112887217A - 控制数据包发送方法、模型训练方法、装置及*** - Google Patents
控制数据包发送方法、模型训练方法、装置及*** Download PDFInfo
- Publication number
- CN112887217A CN112887217A CN201911209073.0A CN201911209073A CN112887217A CN 112887217 A CN112887217 A CN 112887217A CN 201911209073 A CN201911209073 A CN 201911209073A CN 112887217 A CN112887217 A CN 112887217A
- Authority
- CN
- China
- Prior art keywords
- network
- control
- transmission
- parameter
- 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
- 238000012549 training Methods 0.000 title claims abstract description 201
- 238000000034 method Methods 0.000 title claims abstract description 134
- 230000005540 biological transmission Effects 0.000 claims abstract description 253
- 238000012545 processing Methods 0.000 claims abstract description 69
- 230000008569 process Effects 0.000 claims description 30
- 230000008859 change Effects 0.000 claims description 25
- 238000004590 computer program Methods 0.000 claims description 13
- 238000004088 simulation Methods 0.000 description 28
- 238000004422 calculation algorithm Methods 0.000 description 18
- 238000004364 calculation method Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 12
- 238000004891 communication Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 9
- 230000003247 decreasing effect Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 230000004044 response Effects 0.000 description 5
- 238000007726 management method Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 238000010801 machine learning Methods 0.000 description 3
- ORILYTVJVMAKLC-UHFFFAOYSA-N Adamantane Natural products C1C(C2)CC3CC1CC2C3 ORILYTVJVMAKLC-UHFFFAOYSA-N 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000003066 decision tree Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000002068 genetic effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000007637 random forest analysis Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012706 support-vector machine 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
-
- 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/11—Identifying congestion
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- 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
-
- 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/32—Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Mining & Analysis (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种控制数据包发送方法、模型训练方法、装置及***,属于网络技术领域。该控制数据包发送方法包括:获取多个控制模型,多个控制模型对应多个条件;基于第一条件,从多个控制模型中选择第一条件对应的第一控制模型,其中,第一条件用于指示:第一应用的拥塞控制需求;第一控制模型用于处理至少一种网络中任一网络的传输参数,以得到使用任一网络发送第一应用的数据包所需的控制参数;使用第一控制模型处理端节点接入的第一网络的传输参数,得到端节点使用第一网络发送第一应用的数据包所需的第一控制参数;基于第一控制参数,控制第一应用的数据包发送。本申请能够更好地减轻网络拥塞的影响,可用于控制数据包发送。
Description
技术领域
本申请涉及网络技术领域,特别涉及一种控制数据包发送方法、模型训练方法、装置及***。
背景技术
网络传输***通常包括多个端节点,任一端节点可以通过其接入的网络向其他端节点发送数据包。当该任一端节点发送的数据包过多,或任一端节点发送数据包的速率过快时,可能会导致网络发生拥塞,降低数据包的传输效率。为了防止网络拥塞,需要控制该任一端节点的数据包发送。
目前该任一端节点通常能够基于拥塞控制算法对网络的传输参数(例如往返时延、发送速率和丢包率等)进行处理,并得到该端节点发送数据包所需的控制参数。之后,该端节点可以基于该控制参数控制数据包发送,该控制参数可以为拥塞窗口值或者发送速率。
但是,该任一端节点基于拥塞控制算法得到的控制参数控制数据包发送,往往不能有效地解决网络拥塞的问题。
发明内容
本申请提供了一种控制数据包发送方法、模型训练方法、装置及***,能够更好地减轻网络拥塞的影响,对预防网络拥塞也有一定效果,所述技术方案如下:
第一方面,提供了一种控制数据包发送方法,该方法用于端节点,端节点运行有第一应用,该方法包括:获取多个控制模型,多个控制模型对应多个条件;基于第一条件,从多个控制模型中选择第一条件对应的第一控制模型,其中,第一条件用于指示:第一应用的拥塞控制需求;第一控制模型用于处理至少一种网络中任一网络的传输参数,以得到使用任一网络发送第一应用的数据包所需的控制参数,控制参数用于:控制第一应用的数据包发送,以使任一网络满足第一应用的拥塞控制需求;控制参数包括拥塞窗口和发送速率中的至少一种;使用第一控制模型处理端节点接入的第一网络的传输参数,得到端节点使用第一网络发送第一应用的数据包所需的第一控制参数;基于第一控制参数,控制第一应用的数据包发送。
其中,该多个控制模型可以一一对应多个条件,不同控制模型对应的条件不同。该拥塞控制需求可以表征应用对网络的传输需求。可选地,该拥塞控制需求可以为:吞吐率大于吞吐率阈值和带宽利用率大于带宽利用率阈值,或者该拥塞控制需求还可以为:吞吐率大于吞吐率阈值和时延差值处于预设范围。
需要说明的是,端节点可以先获取多个控制模型,再基于用于指示第一应用的拥塞控制需求的第一条件,从多个控制模型中选择第一控制模型,之后端节点可以使用第一控制模型处理端节点接入的第一网络的传输参数,得到端节点使用第一网络发送第一应用的数据包所需的第一控制参数,并基于该第一控制参数控制第一应用的数据包发送。由于第一控制模型输出的第一控制参数能够控制第一应用的数据包的发送,以使第一网络满足第一应用的拥塞控制需求,因此,能够更好地减轻网络拥塞的影响,对预防网络拥塞也有一定效果。
可选地,该第一条件还用于指示:至少一种网络的环境,且至少一种网络中各个网络的环境不同。此时该第一条件对应的控制模型用于处理具有该第一条件所指示的网络的环境的网络的传输参数。
可选地,该第一条件中用于指示至少一种网络的环境的部分包括以下至少一个第一参数的范围:最大带宽、最小往返时延、随机丢包率以及缓冲区的大小,其中,最大带宽指的是网络每秒能够传输的最大字节数。随机丢包指的是由于网络的物理因素(如频段冲突和信号弱)所导致的随机丢包,随机丢包的数量占网络上传输的全部数据包的比例即为随机丢包率。缓冲区包括网络中的路由交换设备中用于缓存端节点发送的数据包的存储空间。
可选地,在使用第一控制模型处理端节点接入的第一网络的传输参数,得到端节点使用第一网络发送第一应用的数据包所需的第一控制参数之前,该方法还包括:基于第一网络的当前状态参数以及第一网络的历史状态参数中的至少一种,确定第一网络的传输参数。
可选地,该传输参数包括以下至少一个第二参数:往返时延;时延差值,时延差值为:往返时延的当前值与往返时延的最小历史值的差值;发送速率;接收速率;丢包率;网络上的数据包携带的显示拥塞通知的值;拥塞窗口值;正则化处理后的往返时延;正则化处理后的时延差值;正则化处理后的发送速率;正则化处理后的接收速率;正则化处理后的丢包率;正则化处理后的网络上的数据包携带的显示拥塞通知的值;以及正则化处理后的拥塞窗口值。
由于在训练得到控制模型的过程中,当训练数据过少或者过度训练控制模型时,会导致该控制模型输出的控制参数的准确度较低(也即是控制模型出现过拟合)。当该第一网络的传输参数包括:正则化处理后的RTT;正则化处理后的时延差值;正则化处理后的发送速率;正则化处理后的接收速率;正则化处理后的丢包率;正则化处理后的网络上的数据包携带的显示拥塞通知的值和/或正则化处理后的拥塞窗口值时,由于正则化处理能够抑制第一控制模型的过拟合,因此能够提高后续控制模型输出控制参数的准确度。
可选地,该传输参数还包括:至少一个第二参数中目标参数对应的变化值,目标参数对应的变化值与目标参数的当前值相对历史值的变化量相关,目标参数为至少一个第二参数中的任一参数。该目标参数的历史值指的是目标参数在当前时刻之前的历史时刻的值。可选地,该历史时刻与当前时刻的时长可以为当前时刻的RTT的k倍。
可选地,该第一条件包括:第一条件对应的控制模型的标识。且不同的控制模型对应的控制模型的标识不同。因此,开发人员可以在第一应用中配置第一控制模型的标识,端节点基于第一应用中配置的控制模型的标识,从多个控制模型中选择该控制模型的标识所对应的控制模型为第一控制模型。
可选地,在基于第一控制参数,控制第一应用的数据包发送之后,该方法还包括:重复执行发送控制流程;该发送控制流程包括:使用第一控制模型处理端节点接入的第一网络的传输参数,得到端节点使用第一网络发送第一应用的数据包所需的第一控制参数,以及基于第一控制参数控制第一应用的数据包发送。
由于第一网络的传输参数会发生改变,因此,可以重复执行该发送控制流程,以实现对第一应用的数据包发送的实时控制,从而更加有效的解决网络拥塞的问题。
可选地,该方法还包括:在基于第一控制参数,控制第一应用的数据包发送后,通过第一网络发送第一应用的至少一个数据包,则该发送控制流程还包括:通过第一网络发送至少一个数据包;端节点可以按照目标间隔重复执行发送控制流程。该目标间隔可以是当前时刻的RTT的函数。则重复执行发送控制流程,包括:若通过第一网络接收到至少一个数据包的确认ACK报文,则重复执行发送控制流程。
示例地,端节点中设置有用于存储当前时刻与最近一次执行发送控制流程的间隔时长的接口。端节点可以通过读取该接口,获取当前时刻与最近一次执行发送控制流程的间隔时长,进而判断该间隔时长是否等于目标间隔。若该间隔时长等于目标间隔,则端节点可以重复执行发送控制流程。
可选地,该方法还包括:获取多个条件中任一条件对应的训练数据,其中,任一条件对应的训练数据包括:至少一种网络的传输参数,以及至少一种网络中任一网络对应的控制参数,任一网络对应的控制参数用于:控制任一网络中数据包的发送,以使任一网络满足任一条件所指示的拥塞控制需求;基于任一条件对应的训练数据,对初始模型进行训练,以得到任一条件对应的控制模型。
当任一条件用于指示:应用的拥塞控制需求时,任一条件对应的训练数据包括的控制参数用于:对该至少一种网络上的数据包发送进行控制,以使该至少一种网络满足应用的拥塞控制需求。该控制参数可以为拥塞窗口值或者损失函数值。可选地,该当任一条件还可以用于指示:至少一种网络的环境。
其中,该任一条件对应的训练数据包括的控制参数可以是训练子***根据开发人员预先配置的方式确定的。示例地,开发人员可以基于该任一条件所指示的拥塞控制需求配置控制参数的计算公式。
可选地,在获取多个条件中任一条件对应的训练数据之前,该方法还包括:转发第一节点通过所述任一网络发送的数据包;转发第二节点通过所述任一网络发送的数据包;获取所述多个条件中任一条件对应的训练数据,包括:基于转发的第一节点发送的数据包以及第二节点发送的数据包在任一网络上的传输,获取任一条件对应的训练数据。可选地,该训练子***也可以控制第一节点通过至少一种网络发送数据包。
示例地,该训练子***也可以控制第二节点通过第一节点发送数据包的网络发送数据包。示例地,训练子***可以控制第二节点通过第一节点发送数据包的网络,按照目标变化模式的速率发送数据包。示例地,该目标发送模式可以是待控制数据包的发送模式。
第二方面,提供了一种模型训练方法,该方法包括:获取多个条件中任一条件对应的训练数据,其中,任一条件对应的训练数据包括:至少一种网络的传输参数,以及至少一种网络中任一网络对应的控制参数,任一条件用于指示应用的拥塞控制需求,任一网络对应的控制参数用于:控制任一网络中数据包的发送,以使任一网络满足任一条件所指示的拥塞控制需求,控制参数包括拥塞窗口和发送速率中的至少一种;基于任一条件对应的训练数据,对初始模型进行训练,以得到任一条件对应的控制模型,任一条件对应的控制模型用于处理至少一种网络中任一网络的传输参数,以得到任一网络对应的控制参数。
可选地,在获取多个条件中任一条件对应的训练数据之前,该方法还包括:转发第一节点通过任一网络发送的数据包;转发第二节点通过任一网络发送的数据包;获取多个条件中任一条件对应的训练数据,包括:基于转发的第一节点发送的数据包以及第二节点发送的数据包在任一网络上的传输,获取任一条件对应的训练数据。
可选地,至少一种网络中各个网络的环境不同。示例地,至少一种网络中各个网络的以下至少一个参数的值不同:最大带宽、最小往返时延、随机丢包率以及缓冲区的大小,其中,缓冲区包括网络中的路由交换设备中用于缓存端节点发送的数据包的存储空间。
可选地,传输参数包括以下至少一个第二参数:往返时延;时延差值,时延差值为:往返时延的当前值与往返时延的最小历史值的差值;发送速率;接收速率;丢包率;网络上的数据包携带的显示拥塞通知的值;拥塞窗口值;正则化处理后的往返时延;正则化处理后的时延差值;正则化处理后的发送速率;正则化处理后的接收速率;正则化处理后的丢包率;正则化处理后的链路上的数据包携带的显示拥塞通知的值;以及正则化处理后的拥塞窗口值。
可选地,传输参数还包括:至少一个第二参数中目标参数对应的变化值,目标参数对应的变化值与目标参数的当前值相对历史值的变化量相关,目标参数为至少一个第二参数中的任一参数。
第三方面,提供了一种控制数据包发送装置,所述装置用于端节点,所述控制数据包发送装置包括:第一应用以及协议栈,其中,协议栈用于执行第一方面任一所述的控制数据包发送方法。
第四方面,提供了一种模型训练装置,所述模型训练装置包括用于执行第二方面任一所述的模型训练方法的各个模块。
第五方面,提供了一种控制数据包发送装置,所述控制数据包发送装置包括:存储器;处理器;其中,所述处理器用于执行所述存储器中存储的程序,以实现第一方面任一所述的控制数据包发送方法。
第六方面,提供了一种模型训练装置,所述模型训练装置包括:存储器;处理器;其中,所述处理器用于执行所述存储器中存储的程序,以实现第二方面任一所述的模型训练方法。
第七方面,提供了一种计算机存储介质,所述存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现第一方面任一所述的控制数据包发送方法。
第八方面,提供了一种计算机存储介质,所述存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现第二方面任一所述的模型训练方法。
第九方面,提供了一种包含指令的计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行第一方面任一所述的控制数据包发送方法,或者使得计算机执行第二方面任一所述的模型训练方法。
第十方面,提供了一种网络传输***,所述网络传输***包括:控制数据包发送装置和/或模型训练装置,所述控制数据包发送装置为第三方面或第五方面任一所述的控制数据包发送装置,所述模型训练装置为第四方面或第六方面任一所述的模型训练装置。
附图说明
图1为本申请实施例提供的一种网络传输***的结构示意图;
图2为本申请实施例提供的一种训练子***的结构示意图;
图3为本申请实施例提供的一种控制数据包发送方法的流程图;
图4为本申请实施例提供的一种控制模型的训练方法流程图;
图5为本申请实施例提供的一种控制数据包发送装置的框图;
图6为本申请实施例提供的一种模型训练装置的框图;
图7为本申请实施例提供的另一种模型训练装置的框图;
图8为本申请实施例提供的一种控制数据包发送装置的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
网络传输***通常包括多个端节点,任一端节点发送端可以通过其接入的网络向其他端节点发送数据包。随着通信技术和互联网技术的快速发展,出现了各种类型的应用,该各种类型的应用对网络传输***的传输效率的要求越来越高。但是在任一端节点运行某一应用时,若该任一端节点发送的数据包过多,或该任一端节点发送数据包的速率过快,可能会导致该任一端节点接入的网络发生拥塞,降低数据包的传输效率,进而影响到该应用的运行。为了防止网络拥塞,该任一端节点需要对数据包的发送状态进行控制。
图1示出了本申请实施例提供的一种网络传输***的结构示意图,该网络传输***10包括训练子***101和传输子***102。传输子***102包括多个端节点(图1中示出了4个)。该多个端节点按照数据包的传输方向可以分为两个发送端和两个接收端。该两个发送端包括发送端a1和发送端a2,该两个接收端包括接收端b1和接收端b2。发送端a1和接收端b1建立有网络连接,发送端a2和接收端b2建立有网络连接。该网络连接可以包括光纤连接、双绞线连接以及无线信道连接,本申请实施例对此不做限定。可选地,该传输子***可以为在线的传输子***,训练子***可以为在线的或者离线的训练子***。端节点可以包括:电脑、手机、服务器以及物联网设备。当该端节点为电脑、服务器或者物联网设备时,该端节点的操作***可以为任意计算机或终端所采用的操作***(例如linux***或者windows***)。
其中,该训练子***101用于对初始模型进行训练,得到控制模型,并将得到的控制模型发送至传输子***102。该传输子***102中的任一端节点用于根据接收到的控制模型,控制数据包发送。需要说明的是,图1是以训练子***101和传输子***102相互独立为例进行说明的。该训练子***101和传输子***102也可以集成为一个***。此时,该一个***用于对初始模型进行训练,得到控制模型,该一个***中的任一端节点用于根据控制模型,控制数据包发送,本申请实施例对此不做限定。
可选地,请参考图2,图2为本申请实施例提供的一种训练子***的结构示意图。该训练子***101包括模拟设备1011、训练服务器1012以及多个训练节点(图2中示出了4个).该多个训练节点按照数据包的传输方向可以分为两个训练发送端和两个训练接收端。该两个训练发送端包括发送端c1和发送端c2,该两个训练接收端包括接收端d1和接收端d2。其中,模拟设备1011用于建立模拟网络,该多个训练节点通过该模拟网络进行数据传输。示例地,该训练子***101可以为tensorflow(一种机器学习开源软件库),该模拟设备1011可以为软件虚拟交换机(例如open vswitch交换机)。
在通过训练子***训练得到控制模型的过程中,模拟设备1011用于获取训练样本,并将该训练样本发送至训练服务器1012。训练服务器1012用于基于该训练样本对初始模型进行训练,得到控制模型。图2以该模拟设备1011和训练服务器1012为相互独立的两个设备为例进行说明,可选地,该模拟设备1011和训练服务器1012也可以集成在一个设备中。示例地,模拟设备1011和训练服务器1012可以为一个设备中的不同模块,或者可以为一个设备中的同一个模块,本申请实施例对此不做限定。当模拟设备1011和训练服务器1012为一个设备中的同一个模块时,模拟设备1011无需将训练样本发送至训练服务器1012,训练服务器1012可以直接获取到上述训练样本。
相关技术提供了一种基于训练子***训练得到的控制模型,控制传输子***中数据包发送的方案。相关技术中的训练子***通常包括模拟设备、训练服务器、一个训练发送端和一个训练接收端。模拟设备预先建立该一个训练发送端和该一个训练接收端之间的模拟网络。之后模拟设备从该一个训练发送端中获取模拟网络的传输参数,并确定控制参数。模拟设备再将模拟网络的传输参数和该控制参数作为训练样本发送至训练服务器。训练服务器基于训练样本对初始模型进行训练,得到控制模型后,再将该控制模型发送至传输子***中的任一端节点。任一端节点将其接入的网络的传输参数输入控制模型,得到控制模型输出的控制参数。之后,任一端节点根据控制模型输出的控制参数控制数据包发送。
但是由于不同类型的应用需要传输子***的网络满足的传输条件通常不同,例如,文件上传下载类应用需要传输子***的网络满足的传输条件为吞吐率大于吞吐率阈值和带宽利用率大于利用率阈值。视频类应用需要传输子***的网络满足的传输条件为吞吐率大于吞吐率阈值和时延处于预设范围。而相关技术中在采用训练子***训练得到的控制模型控制数据包发送时,无法使传输子***的网络满足各种类型的应用所需的传输条件,导致相关技术往往不能有效地解决网络拥塞的问题。
本申请实施例提供了一种控制数据包发送方法,该方法可以应用于传输子***中的端节点,(例如图1所示的传输子***102中的任一发送端),该端节点中可以运行有第一应用。示例地,请参考图3,图3为本申请实施例提供的一种控制数据包发送方法的流程图,该方法可以包括:
步骤201、获取多个控制模型,该多个控制模型对应多个条件。
该多个控制模型中的任一控制模型用于处理至少一种网络中任一网络的传输参数,以得到使用该任一网络发送应用的数据包所需的控制参数,该控制参数用于控制应用的数据包发送,以使任一网络满足应用的拥塞控制需求。
其中,该多个控制模型可以一一对应多个条件。可选地,该多个条件中的任一条件可以用于指示:应用的拥塞控制需求,不同控制模型对应的条件不同。当任一条件用于指示应用的拥塞控制需求时,该任一条件对应的控制模型输出的控制参数用于:控制应用的数据包发送,以使任一网络满足应用的拥塞控制需求。
该拥塞控制需求可以表征应用对网络的传输需求。可选地,该拥塞控制需求可以为:吞吐率大于吞吐率阈值和带宽利用率大于带宽利用率阈值,或者该拥塞控制需求还可以为:吞吐率大于吞吐率阈值和时延差值处于预设范围。示例地,吞吐率阈值可以为:5000比特/秒(bits per second,bit/s),带宽利用率阈值可以为:85%,预设范围可以为:28毫秒(millisecond,ms)至30ms。其中,吞吐率指的是端节点接入的网络上每秒能够传输的比特数。带宽利用率指的是端节点接入的网络上传输的实际流量与链路的最大带宽的比例。时延差值指的是往返时延(round-trip time,RTT)的当前值与RTT的最小历史值的差值,RTT指的是端节点发送数据包至端节点接收到其他端节点发送的该数据包的确认响应的时长,其中,其他端节点在接收到数据包后通常会立即向该端节点发送该数据包的确认响应。
可选地,该任一条件还可以用于指示至少一种网络的环境,此时该任一条件对应的控制模型用于处理具有该任一条件所指示的网络的环境的网络的传输参数。该任一条件中用于指示网络的环境的部分可以包括以下至少一个第一参数的范围:最大带宽、最小RTT、随机丢包率以及缓冲区大小等。其中,最大带宽指的是网络每秒能够传输的最大字节数。随机丢包指的是由于网络的物理因素(如频段冲突和信号弱)所导致的随机丢包,随机丢包的数量占网络上传输的全部数据包的比例即为随机丢包率。缓冲区包括网络中的路由交换设备中用于缓存端节点发送的数据包的存储空间,缓冲区大小指的是该存储空间的大小。
示例地,请参考表1,表1示出了多个控制模型与多个条件的一一对应关系。表1以该任一条件用于指示应用的拥塞控制需求和至少一种网络的环境,且任一条件中用于指示网络的环境的部分包括最大带宽范围、最小RTT范围、随机丢包率范围以及缓冲区大小范围为例进行说明。参见表1,控制模型2对应的条件所指示的应用的拥塞控制需求为:吞吐率大于吞吐率阈值和带宽利用率大于带宽利用率阈值,所指示的至少一种网络的环境为:最大带宽的范围为10兆比特每秒(million bits per second,Mbps)至200Mbps,最小RTT的范围可以为50ms~200ms,随机丢包率的范围可以为0%-1%,缓冲区大小的范围可以为0.1*带宽时延积(bandwidth delay product,BDP)至2*BDP。需要说明的是,表1中仅示例性的示出了控制模型与条件的对应关系,并不对此做出限定。
表1
通常传输子***中包括模型存储模块,该模型存储模块中存储有多个控制模型,多个控制模型与多个控制模型的标识的一一对应关系,以及多个控制模型与多个条件的一一对应关系。可选地,该模型存储模块可以为硬盘或者存储卡等。端节点可以从模型存储模块中获取多个控制模型,多个控制模型与多个控制模型的标识的一一对应关系,以及多个控制模型与多个条件的一一对应关系。可选地,该模型存储模块可以设置在端节点中,或者也可以设置在传输子***中端节点之外的设备,本申请实施例对此不做限定。
步骤202、基于第一条件,从多个控制模型中选择第一条件对应的第一控制模型,其中,第一条件用于指示:第一应用的拥塞控制需求。
该端节点中运行有第一应用。在端节点运行该第一应用时,端节点会通过其接入的第一网络向其他端节点发送该第一应用的目标数据包。
示例地,请参考步骤201,拥塞控制需求可以表征应用对网络的传输需求。例如,该第一应用的拥塞控制需求可以为:“吞吐率大于吞吐率阈值”,表明第一应用对端节点接入的第一网络的传输需求是高吞吐率。或者第一应用的拥塞控制需求可以为“带宽利用率大于带宽利用率阈值”,表明第一应用对第一网络的传输需求是高带宽利用率。或者第一应用的拥塞控制需求可以为“时延差值处于预设范围”,表明第一应用对第一网络的传输需求是稳定时延差值。或者第一应用的拥塞控制需求可以为“吞吐率大于吞吐率阈值和带宽利用率大于带宽利用率阈值”,表明第一应用对第一网络的传输需求是高吞吐率和高带宽利用率。或者第一应用的拥塞控制需求可以为:“吞吐率大于吞吐率阈值和时延差值处于预设范围”,表明第一应用对第一网络的传输需求是高吞吐率和稳定时延差值。
该第一应用的拥塞控制需求可以配置在第一应用中。可选地,该端节点的操作***可以为linux***或者windows***。示例地,当端节点的操作***为linux***时,开发人员可以在第一应用的目标函数(例如setsockopt函数)中添加一个新的模型配置参数(例如tcp_congestion_requirement),再将该模型配置参数(例如tcp_congestion_requirement)的值设置为用于指示第一应用的拥塞控制需求的值。之后,开发人员可以将该模型配置参数(例如tcp_congestion_requirement)的值存储在目标结构体(例如tcp_sock结构体)的目标变量(例如cc_requirement变量)中,以配置该第一应用的拥塞控制需求。例如,可以将该新的模型配置参数(例如tcp_congestion_requirement)的值设置为“吞吐率”,此时该“吞吐率”所指示的拥塞控制需求为:“吞吐率大于吞吐率阈值”。又例如,可以将该新的模型配置参数(例如tcp_congestion_requirement)的值设置为“时延差值”,此时该“时延差值”所指示的拥塞控制需求为:“时延差值处于预设范围”。又例如,可以将该新的模型配置参数(例如tcp_congestion_requirement)的值设置为“吞吐率,时延”,此时该“吞吐率,时延”所指示的拥塞控制需求为:“吞吐率大于吞吐率阈值和时延差值处于预设范围”。
示例地,请参考前述步骤201,该第一条件中用于指示至少一种网络的环境的部分可以包括以下至少一个第一参数的范围:最大带宽、最小RTT、随机丢包率以及缓冲区的大小。该第一条件指示第一网络的环境可以指:第一网络的第一参数的值属于第一条件所指示的第一参数的范围。
可选地,该任一条件还可以包括该任一条件对应的控制模型的标识。在该步骤202中,第一发送端基于第一条件,从多个控制模型中选择第一条件对应的第一控制模型的方式有多种,以下将以其中的两种方式为例进行讲解。
在一种方式中,如前述步骤201所述,由于每个控制模型均对应有控制模型的标识,且不同的控制模型对应的控制模型的标识不同。因此,开发人员可以在第一应用中配置第一控制模型的标识,端节点基于第一应用中配置的控制模型的标识,从多个控制模型中选择该控制模型的标识所对应的控制模型为第一控制模型。
示例地,当该端节点的操作***为linux***时,开发人员可以将第一应用的目标函数(例如setsockopt函数)中的模型配置参数(例如tcp_congestion)的值配置为第一控制模型的标识。例如,开发人员可以将第一应用的模型配置参数(例如tcp_congestion)的值配置为“1”,此时该第一应用中配置的第一控制模型的标识为1。
在另一种方式中,如前述步骤201所述,由于每个控制模型均对应有一个条件,不同的控制模型对应的条件可以不同,且第一应用配置有第一应用的拥塞控制需求。因此,端节点可以先获取多个控制模型与多个条件的一一对应关系。当任一条件指示应用的拥塞控制需求时,端节点可以基于第一应用中配置的拥塞控制需求确定用于指示该第一应用的拥塞控制需求的第一条件。之后基于该对应关系将第一条件对应的控制模型选择为第一控制模型。当任一条件指示应用的拥塞控制需求以及至少一种网络的环境时,端节点可以基于第一应用的拥塞控制需求以及端节点接入的第一网络的环境,确定用于指示第一应用的拥塞控制需求,且指示第一网络的环境的第一条件。之后基于该对应关系将第一条件对应的控制模型选择为第一控制模型。
示例地,假设任一条件指示应用的拥塞控制需求以及至少一种网络的环境,且任一条件中用于指示至少一种网络的环境的部分包括:最大带宽范围、最小往返时延范围、随机丢包率范围以及缓冲区的大小范围。第一应用的拥塞控制需求为:“吞吐率大于吞吐率阈值和带宽利用率大于带宽利用率阈值”,且第一网络的最大带宽的值为100Mbps,第一网络的最小RTT的值为100ms,第一网络的随机丢包率的值为0.5%,第一网络的缓冲区大小的值为1.5*BDP。端节点可以将用于指示“吞吐率大于吞吐率阈值和带宽利用率大于带宽利用率阈值”,且所指示的至少一种网络的环境包括第一网络的环境的条件确定为第一条件。之后端节点选择该第一条件对应的控制模型为第一控制模型。
示例地,当端节点的操作***为linux***时,第一应用的模型配置参数(例如tcp_congestion_requirement)的值用于指示拥塞控制需求。因此,端节点可以通过读取第一应用的模型配置参数(例如tcp_congestion_requirement)的值,来确定第一应用配置的拥塞控制需求。
还需要说明的是,在该步骤202中端节点在选择第一控制模型后,还可以运行该第一控制模型。示例地,端节点中设置有缓存模块,该端节点可以将第一控制模型从模型存储模块中加载到缓存模块中,从而得到第一控制模型的模型实例,进而运行该第一控制模型。可选地,端节点可以先检测该缓存模块中是否加载有第一控制模型的模型实例,当缓存模块中未加载有第一控制模型的模型实例,端节点可以将第一控制模型从模型存储模块中加载到缓存模块中。当缓存模块中已经加载有第一控制模型的模型实例,端节点可以直接运行第一控制模型。
端节点在运行第一应用时,需要发送多条数据流,每条数据流包括多个数据包。该缓存模块中一个第一控制模型的模型实例可以输出用于控制第一应用的所有数据包发送的控制参数,这样使得端节点可以采用一个第一控制模型的模型实例即能控制第一应用的多条数据流中的数据包发送,无需对于每条数据流都得到一个第一控制模型的模型实例,从而简化了处理流程,提高了端节点获取第一控制模型的效率。
步骤203、基于端节点接入的第一网络的当前状态参数以及第一网络的历史状态参数中的至少一种,确定第一网络的传输参数。
可选地,该第一网络的传输参数可以包括以下至少一个第二参数:RTT;时延差值,该时延差值为:第一网络的RTT的当前值与RTT的最小历史值的差值;发送速率;接收速率;丢包率;第一网络上的数据包携带的显示拥塞通知的值;拥塞窗口值;正则化处理后的RTT;正则化处理后的时延差值;正则化处理后的发送速率;正则化处理后的接收速率;正则化处理后的丢包率;正则化处理后的第一网络上的数据包携带的显示拥塞通知的值以及正则化处理后的拥塞窗口值。
该RTT、时延差值、发送速率、接收速率、丢包率、第一网络上的数据包携带的显示拥塞通知的值以及拥塞窗口值为第一网络的当前状态参数。该正则化处理后的RTT、正则化处理后的时延差值、正则化处理后的发送速率、正则化处理后的接收速率、正则化处理后的丢包率、正则化处理后的第一网络上的数据包携带的显示拥塞通知的值以及正则化处理后的拥塞窗口值可以是端节点基于当前状态参数和历史状态参数得到的。
其中,RTT指的是端节点发送数据包至端节点接收到该数据包的确认响应的时长。发送速率指的是端节点发送数据包的速率。接收速率指的是接收数据包的端节点从网络接收数据包的速率。丢包率指的是通过该网络传输的数据包中丢失的数据包的数量占全部数据包的数量的比例。网络上的数据包携带的显示拥塞通知的值指的是当前通过该网络传输的数据包中携带的显示拥塞通知的值,该值用于表示网络是否出现拥塞。拥塞窗口值指的是端节点在未接收到任何确认响应时,能够一次性发送的数据包的最大数量。
示例地,正则化处理后的RTT表示为A′=A/B,A表示正则化处理前的RTT,B表示RTT的最小历史值。正则化处理后的时延差值C′=C/B,C表示正则化处理前的时延差值。正则化处理后的发送速率D1′=D1/E,D1表示正则化处理前的发送速率,E表示网络的带宽的最大历史值。正则化处理后的接收速率D2′=D2/B,D2表示正则化处理前的接收速率。正则化处理后的拥塞窗口值F′=(G﹡H)/(B﹡E),G表示正则化处理前的拥塞窗口值,H表示数据包的最大传输单元(maximum transmission unit,MTU)。
由于在训练得到控制模型的过程中,当训练数据过少或者过度训练控制模型时,会导致该控制模型输出的控制参数的准确度较低(也即是控制模型出现过拟合)。当该第一网络的传输参数包括:正则化处理后的RTT;正则化处理后的时延差值;正则化处理后的发送速率;正则化处理后的接收速率;正则化处理后的丢包率;正则化处理后的网络上的数据包携带的显示拥塞通知的值和/或正则化处理后的拥塞窗口值时,由于正则化处理能够抑制第一控制模型的过拟合,因此能够提高后续控制模型输出控制参数的准确度。
可选地,该第一网络的传输参数还可以包括:基于第一网络的当前状态参数以及第一网络的历史状态参数得到的前述至少一个第二参数中目标参数对应的变化值,该目标参数对应的变化值与该目标参数的当前值相对历史值的变化量相关,该目标参数为该至少一个第二参数中的任一参数。该目标参数的历史值指的是目标参数在当前时刻之前的历史时刻的值。可选地,该历史时刻与当前时刻的时长可以为当前时刻的RTT的k倍。示例地,k≥1,例如,k为1、2、3、4、5或者7等,本申请实施例对此不做限定。这样使得第一网络的传输参数不仅能够体现第一网络的当前状态,还能体现第一网络的历史状态,从而使得后续根据第一网络的传输参数确定控制参数的准确度较高。需要说明的是,第一网络的传输参数可以包括:前述至少一个第二参数中至少一个目标参数对应的变化值。
示例地,当该目标参数为前述至少一个第二参数中的RTT、时延差值、发送速率或者接收速率时,该目标参数对应的变化值ΔH=(H1-H2)/J。其中,H1表示目标参数的当前值,H2表示目标参数的历史值。当H1表示RTT或者时延差值时,J表示RTT的最小历史值或者目标参数的历史值(也即是J=H2)。当H1表示发送速率或者接收速率时,J表示网络的带宽的最大历史值或者目标参数的历史值(也即是J=H2)。当该目标参数为拥塞窗口值时,该目标参数对应的变化值ΔK=[M﹡(K1-K2)]/L或者ΔK=(K1-K2)/K2,K1表示拥塞窗口的当前值,K2表示拥塞窗口的历史值,L表示RTT的最小历史值与网络的带宽的最大历史值的乘积,或者L表示拥塞窗口的历史值(也即是L=K2),M表示数据包的MTU。当该目标参数为丢包率时,该目标参数对应的变化值ΔN=N1-N2或者ΔN=(N1-N2)/N2,N1表示丢包率的当前值,N2表示丢包率的历史值。
可选地,开发人员可以预先向传输子***中配置多个网络事件,当该传输子***中所配置的网络事件发生时,该事件会触发通知消息。第一发送端可以根据该通知信息获取第一网络的传输参数。可选地,该网络事件可以包括:接收端发送的确认(acknowledgement,ACK)报文、丢包和发包等。开发人员可以通过用于配置ACK报文事件的接口、用于配置丢包事件的接口以及用于配置发包事件的接口向传输子***中配置网络事件。
步骤204、使用第一控制模型处理端节点接入的第一网络的传输参数,得到端节点使用第一网络发送第一应用的数据包所需的第一控制参数。
该第一控制参数用于:控制第一应用的数据包发送,以使该第一网络满足第一应用的拥拥塞控制需求。可选地,该第一控制参数可以为:第一网络的拥塞窗口值,或者,对该拥塞窗口值进行计算处理后得到的值,或者,端节点发送第一应用的数据包的速率,或者,对该发送第一应用的数据包的速率进行计算处理后得到的值,本申请实施例对此不做限定。其中,该计算处理可以包括与某一参数进行加运算、减运算、乘运算或者除运算等。
步骤205、基于第一控制参数,控制第一应用的数据包发送。
可选地,当第一控制参数为第一网络的拥塞窗口值时,端节点可以按照该拥塞窗口值调整其发送第一应用的至少一个数据包的速率。示例地,假设该拥塞窗口值为8,端节点可以发送8个数据包,且该过程中未接收到任何ACK报文。端节点每发送一个数据包,该拥塞窗口值减1。当该拥塞窗口值减为零时,若端节点未接收到ACK报文,则端节点停止发送数据包。当第一控制参数为端节点发送第一应用的至少一个数据包的速率时,端节点可以直接按照第一控制参数发送第一应用的至少一个数据包。在基于第一控制模型输出的第一控制参数,控制第一应用的数据包发送后,端节点还可以通过该第一网络发送第一应用的至少一个数据包。
可选地,端节点可以重复执行发送控制流程,该发送控制流程包括:使用第一控制模型处理端节点接入的第一网络的传输参数,得到端节点使用第一网络发送第一应用的数据包所需的第一控制参数,以及基于第一控制参数控制第一应用的数据包发送。示例地,该发送控制流程可以包括前述步骤203至步骤205的过程。
在传输子***中,第一网络的传输参数在不同的时刻会发生改变,因此,可以重复执行该发送控制流程,以实现对第一应用的数据包发送的实时控制,从而更加有效的解决网络拥塞的问题。可选地,在步骤205之后,若端节点通过第一网络发送第一应用的至少一个数据包,则该发送控制流程还包括:通过第一网络发送第一应用的至少一个数据包。
可选地,端节点可以按照目标间隔重复执行发送控制流程。该目标间隔可以是当前时刻的RTT的函数。示例地,该目标间隔可以是当前时刻的RTT至少一倍,或者,该目标间隔可以是当前时刻的RTT与某一参数之和等,本申请实施例对此不做限定。例如,当该目标间隔等于当前时刻的RTT时,该端节点若通过第一网络接收到至少一个数据包的确认响应,则重复执行该发送控制流程。
可选地,端节点中设置有用于存储当前时刻与最近一次执行发送控制流程的间隔时长的接口。端节点可以通过读取该接口,获取当前时刻与最近一次执行发送控制流程的间隔时长,进而判断该间隔时长是否等于目标间隔。若该间隔时长等于目标间隔,则端节点可以重复执行发送控制流程。
需要说明的是,传输子***中配置有传统拥塞控制算法,该传统拥塞控制算法可以包括:cubic算法、vegas算法和BBR(bottleneck bandwidth and RTT)算法。在前述步骤202中,可能会出现多个控制模型中不存在第一控制模型的情况,此时,端节点可以采用传输子***中配置的传统拥塞控制算法控制第一应用的数据包发送。
上述实施例提供的方法的先后顺序可以进行适当调整,步骤也可以根据情况进行相应增减。本申请实施例对此不做限定。
可选地,上述实施例中是以执行控制数据包发送方法的为端节点为例进行说明的。在一种示例中,该控制数据包发送方法中的不同步骤可以由端节点的协议栈中的不同模块来执行。示例地,该传输子***可以包括:模型文件管理模块、模型选择模块、网络状态处理模块以及网络拥塞处理模块。该多个控制模型存储在模型文件管理模块中,步骤201可以由模型文件管理模块执行,步骤202可以由模型选择模块执行,步骤203和步骤204可以由网络状态处理模块执行,步骤205可以由网络拥塞处理模块执行。该不同的模块可以位于一个设备中,也可以位于不同的设备中。当该不同的模块位于不同的设备中时,各个模块之间能够进行通信连接。模型选择模块可以从模型文件管理模块中选择第一控制模型,网络状态处理模块可以将最终得到的第一网络的传输参数发送至网络拥塞处理模块。本申请实施例对执行控制数据包发送方法的设备不做限定。
在本申请实施例中,端节点可以先获取多个控制模型,再基于第一条件从多个控制模型中选择第一控制模型,之后端节点可以使用第一控制模型处理端节点接入的第一网络的传输参数,得到端节点使用第一网络发送第一应用的数据包所需的第一控制参数,并基于该第一控制参数控制第一应用的数据包发送。由于第一控制模型输出的第一控制参数能够控制第一应用的数据包的发送,以使第一网络满足第一应用的拥塞控制需求,因此,能够有效解决网络拥塞的问题。
以上说明了控制数据包发送方法,以下对控制模型的训练过程进行说明。
本申请实施例提供了一种模型训练方法,该方法可以应用于训练子***(例如前述图1或图2所示的训练子***)。示例地,图4示出了本申请实施例提供的一种控制模型的训练方法流程图,参见图4,该方法可以包括:
步骤301、获取多个条件中任一条件对应的训练数据,其中,任一条件对应的训练数据包括:至少一种网络的传输参数,以及至少一种网络中任一网络对应的控制参数,任一网络对应的控制参数用于:控制任一网络中数据包的发送,以使任一网络满足任一条件所指示的拥塞控制需求。
其中,该至少一种网络中各个网络的至少一个参数的值不同,该至少一个参数和该传输参数均可以参考前述图3所示的实施例,本申请实施例在此不做赘述。
可选地,该至少一种网络的传输参数可以是基于数据包在该至少一种网络上的传输得到的。示例地,训练子***包括第一节点和模拟设备,在获取多个条件中任一条件对应的训练数据之前,模拟设备可以转发第一节点通过至少一种网络中任一网络发送的数据包,之后再基于第一节点发送的数据包在该任一网络上的传输,获取该任一条件对应的训练数据。此时,该任一网络的传输参数可以为第一节点中记录的该任一网络的传输参数。可选地,该训练子***也可以控制第一节点通过至少一种网络发送数据包。
当任一条件用于指示:应用的拥塞控制需求时,任一条件对应的训练数据包括的控制参数用于:对该至少一种网络上的数据包发送进行控制,以使该至少一种网络满足应用的拥塞控制需求。该控制参数可以为拥塞窗口值或者损失函数值。可选地,该当任一条件还可以用于指示:至少一种网络的环境。其中,该拥塞控制需求和网络的环境均可以参考前述图3所示的实施例,本申请实施例在此不做赘述。
当任一条件用于指示:应用的拥塞控制需求和至少一种网络的环境时,在一种示例中,可以基于满足该至少一种网络的环境的多个网络上的数据包的传输状态获取该任一训练样本。在另一种示例中,可以在满足该至少一种网络的环境的前提下改变同一个模拟网络的以下至少一个参数的值:最大带宽、最小往返时延、随机丢包率以及缓冲区的大小,并基于具有不同的网络环境的至少一种网络上的数据包的传输状态获取该任一训练样本。
对应上述另一种示例,如前所述,假设至少一种网络中各个网络的以下参数的值不同:最大带宽、最小RTT、随机丢包率以及缓冲区大小。该至少一个网络的最大带宽、最小RTT、随机丢包率以及缓冲区大小的值的范围可以为:“10Mbps≤最大带宽≤200Mbps,50ms≤最小RTT≤200ms,0%≤随机丢包率≤1%,0.1*BDP≤缓冲区大小≤2*BDP”。训练子***可以依次将模拟网络的最大带宽设置为10Mbps至200Mbps中离散排布的值,每两个相邻的值可以相差10;可以依次将最小RTT设置为50ms至200ms中离散排布的值,每两个相邻的值可以相差10;可以依次将丢包率设置为0%至≤1%中离散排布的值,每两个相邻的值相差0.1%。本申请实施例对此不做限定。
其中,该任一条件对应的训练数据包括的控制参数可以是训练子***根据开发人员预先配置的方式确定的。示例地,开发人员可以基于该任一条件所指示的拥塞控制需求配置控制参数的计算公式。例如,假设任一条件所指示的拥塞控制需求为高带宽利用率和稳定时延差值,开发人员可以将该控制参数的计算公式配置为:控制参数=模拟链路的可用带宽*模拟链路的RTT。又例如,假设任一条件所指示的拥塞控制需求为高带宽利用率、稳定时延差值以及快速抢占缓存,开发人员可以将该控制参数的计算公式配置为:控制参数=模拟链路的可用带宽*模拟链路的RTT+缓存大小。
进一步的,若在满足该至少一种网络的环境的前提下改变同一个模拟网络的以下至少一个参数的值:最大带宽、最小往返时延、随机丢包率以及缓冲区的大小,并基于具有不同网络环境的至少一种网络上的数据包的传输获取该任一条件对应的训练数据,则训练子***在基于控制参数的计算公式确定控制参数时,可以获取该模拟设备中记录的计算公式中所需的计算参数。示例地,该计算公式所需的计算公式通常可以包括以下一种或多种:可用带宽,RTT、最小RTT、发送速率、接收速率、随机丢包率以及缓冲区大小等。本申请实施例对此不做限定。需要说明的是,由于训练子***中的所有发送节点(用于发送数据包的节点,如上述第一节点)均需要通过模拟设备发送数据包,因此,模拟设备中记录的计算参数比较准确。基于从模拟设备中获取的计算参数确定控制参数,能够保证控制参数的准确性。
需要说明的是,前述从模拟设备中获取计算参数与从第一节点中获取至少一种网络的传输参数的时刻需要保持一致,这样能够保证计算得到的控制参数与至少一种网络的传输参数对应的时刻是一致的,从而保证训练数据的准确性。
又一可选地,在获取任一条件对应的训练数据之前,模拟设备还可以转发第二节点通过第一节点发送数据包的网络发送的数据包。可选地,该训练子***也可以控制第二节点通过第一节点发送数据包的网络发送数据包。示例地,训练子***可以控制第二节点通过第一节点发送数据包的网络,按照目标变化模式的速率发送数据包。示例地,该目标发送模式可以是待控制数据包的发送模式,例如可以是前述图3所示实施例中第一应用的数据包的速率的目标变化模式。
需要说明的是,训练子***也可以控制第二节点通过第一节点发送数据包的网络,按照其他发送模式的速率发送数据包。示例地,该其他发送模式的速率还可以为:发送数据包的速率指数上升、发送数据包的速率指数下降、发送数据包的速率线性上升、发送数据包的速率线性下降或者发送数据包的速率为随机速率等,本申请实施例对此不做限定。
可选地,第二节点发送的数据包可以为采用用户数据报协议(user datagramprotocol,UDP)进行传输的数据包。
步骤302、基于任一条件对应的训练数据对初始模型进行训练,得到任一条件对应的控制模型。
该控制模型用于:处理至少一种网络中任一网络的传输参数,以得到使用该任一网络发送数据包所需的控制参数,该控制参数用于对该任一网络上数据包发送进行控制。
可选地,训练子***中预先存储有初始模型,训练子***可以采用监督机器学习算法或者非监督机器学习算法对初始模型进行训练,示例地,该监督机器学习算法可以包括:人工神经网络、决策树、支持向量机、随机森林、贝叶斯网络和遗传算法,该非监督机器学习算法可以包括聚类算法。在每次训练过程中,训练子***可以根据任一训练数据优化初始模型的模型参数。示例地,训练子***可以采用Adam(a method for stochasticoptimization)优化器优化初始模型的模型参数。
在该步骤302对初始模型进行训练的过程中,可以设置损失值阈值并检测训练的初始模型的损失值,该损失值能够表征训练的初始模型输出的参数与控制参数的差异度。当损失值大于或等于损失值阈值时,表明该初始模型的准确度较低,此时可以继续对该初始模型进行训练;当损失值小于损失值阈值时,表明该初始模型的准确度较高,此时结束对该初始模型进行训练的过程,得到该任一条件对应的控制模型。
需要说明的是,前述实施例均以采用任一条件对应的训练数据对初始模型进行训练,得到该任一条件对应的控制模型为例进行说明的。实际训练过程中,可以采用多个条件对应的训练数据对初始模型进行训练,从而得到多个条件对应的多个控制模型,该过程可以参考前述步骤301和步骤302,本申请实施例在此不做赘述。
上述实施例提供的方法的先后顺序可以进行适当调整,步骤也可以根据情况进行相应增减。在本申请实施例中,该控制模型的训练方法中的不同步骤可以由离线训练子***中的不同模块来执行。示例地,该训练子***可以包括数据采集模块、转发模块以及训练模块。该步骤301可以由数据采集模块执行,步骤302可以由训练模块执行,其中转发第一节点的数据包以及第二节点的数据包的过程可以由转发模块执行。此时数据采集模块需要将任一条件对应的训练数据发送至训练模块。请参考前述图2,数据采集模块与转发模块可以属于模拟设备1011中的模块,训练模块属于训练服务器1012的模块。或者转发模块属于模拟设备1011中的模块,数据采集模块和训练模块属于训练服务器1012的模块。又或者该三个模块可以位于不同的设备中,本申请实施例对执行模型的训练方法的设备不做限定。
相关技术中的训练子***通常为离线训练子***。在训练控制模型时,训练子***中只包括一个发送节点。训练服务器根据该一个发送端通过至少一种网络传输数据包时该至少一种网络的传输参数,对初始模型进行训练。但是由于真实网络中通常传输有多个发送节点发送的数据包,因此,至少一种网络的传输参数通常与真实网络的传输参数存在较大差异,导致训练得到的控制模型无法适用于对真实网络中的数据包发送的控制。且当真实网络的波动较大时该控制模型的鲁棒性较差,从而导致该控制模型无法有效解决网络的拥塞问题。
而本申请实施例中,当该离线训练子***包括多个发送节点时,至少一种网络中传输有多个发送节点发送的数据包,且发送节点可以按照第一应用的数据包在第一网络中传输的速率的模式,进行数据包发送。这样使得至少一种网络的传输参数与真实网络的传输参数的差异较小,从而提高了训练得到的控制模型在真实网络中的适用性,使得该控制模型在波动较大的真实网络的鲁棒性较好,从而能够有效解决网络的拥塞问题。
相关技术还提供了一种基于在线学习算法控制数据包发送的技术。相关技术中的传输子***包括端节点。端节点中预先配置有发送控制方式。端节点周期性通过数据包的发送时刻、数据包的大小、接收到ACK报文的时刻以及丢包率等确定网络的当前性能指标信息,并根据该性能指标信息更新该发送控制方式,之后根据更新后的发送控制方式控制数据包发送。
但是在更新发送控制方式的过程中,由于需要通过数据包的发送时刻、数据包的大小、接收到ACK报文的时刻以及丢包率等确定网络的当前性能指标信息,因此在端节点开始发送数据包之后的一段时间内,可能无法确定性能指标信息,导致在端节点开始发送数据包之后的一段时间内无法对发送控制方式进行更新。并且对于传输时间较短的数据包,可能会出现采集不到性能指标信息的情况,从而无法对发送控制方式进行更新。另外,当网络波动较大时,不同时刻采集到的性能指标信息差异较大,导致性能指标信息的准确度较低。从而导致在波动较大的网络中训练得到的发送控制方式的准确度较低。
而本申请实施例中,由于控制模型可以采用离线训练子***训练得到,之后再应用于在线传输子***中,因此,在端节点开始发送数据包时,该控制模型已经是训练得到的控制模型,从而避免了端节点开始发送数据包之后的一段时间内无法对控制模型进行训练,以及对于传输时间较短的数据包,无法对控制模型进行训练的情况发生。此外,控制模型的准确度不受在线传输子***的影响,从而保证了控制模型的准确度。
示例地,本申请实施例在两台虚拟机在云场景中进行数据传输的实验环境下对本申请实施例和相关技术进行了对比。其中,该两台虚拟机位于不同的区域,且该两台虚拟机之间的链路的最大带宽为1000Mbps,最小RTT为50ms。对比结果如下表2所示,相关技术中,当采用BBR算法对数据包的发送状态进行控制后,平均吞吐率为485.78Mbps,95分位时延差值为161.11ms,丢包率为1.06%。虽然平均吞吐率较大,但是时延差值和丢包率也均较大。当采用Cubic算法对数据包的发送状态进行控制后,平均吞吐率为453.39Mbps,95分位时延差值为82.59ms,丢包率为0.46%。虽然时延差值和丢包率均较小,但是平均吞吐率较小。当采用Vegas算法对数据包的发送状态进行控制后,平均吞吐率为337.02Mbps,95分位时延差值为68.41ms,丢包率为0.39%。虽然时延差值和丢包率均较小,但是平均吞吐率较小。当采用低额外时延背景传输(low extra delay background transport,LEDBAT)算法对数据包的发送状态进行控制后,平均吞吐率为25.45Mbps,95分位时延差值为59.29ms,丢包率为0.54%。虽然时延差值和丢包率均较小,但是平均吞吐率较小。
而本申请实施例提供的数据包的发送控制方法在采用传输条件为高吞吐率所对应的控制模型,对数据包的发送状态进行控制后,平均吞吐率为609.82Mbps,95分位时延差值为125.23ms,丢包率为0.67%。在采用传输条件为低时延差值所对应的控制模型,对数据包的发送状态进行控制后,平均吞吐率为558.57Mbps,95分位时延差值为81.46ms,丢包率为0.56%。由此可知,本申请实施例所提供的两种控制模型,在满足了高吞吐率的前提下的时延差值较小,在满足了低时延差值的前提下吞吐率较大,且丢包率均较小。其中,平均吞吐率能够体现对链路的带宽的占用情况,平均吞吐率越大,表明对链路的带宽的利用率越高。95分位时延差值指的是采集到的100个时延差值中的第95个时延差值。可以看出,本申请实施例相较于相关技术,能够在提高了吞吐率的同时减小了时延差值和丢包率,从而提高了数据包的传输效率,更加有效的解决了网络拥塞的问题。
表2
综上所述,在本申请实施例中,端节点可以先获取多个控制模型,再基于用于指示第一应用的拥塞控制需求的第一条件,从多个控制模型中选择第一控制模型,之后端节点可以使用第一控制模型处理端节点接入的第一网络的传输参数,得到端节点使用第一网络发送第一应用的数据包所需的第一控制参数,并基于该第一控制参数控制第一应用的数据包发送。由于第一控制模型输出的第一控制参数能够控制第一应用的数据包发送,以使第一网络满足第一应用的拥塞控制需求,因此,能够更好地减轻网络拥塞的影响,对预防网络拥塞也有一定效果。
本申请实施例提供的方法的先后顺序可以进行适当调整,步骤也可以根据情况进行相应增减。任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化的方法,都应涵盖在本申请的保护范围之内,因此不再赘述。
上文中结合图1至图4,详细描述了本申请实施例所提供的控制数据包发送方法以及模型训练方法,下面将结合图5至图8,描述本申请实施例所提供的控制数据包发送装置以及模型训练装置。
本申请实施例提供了一种控制数据包发送装置,该装置可以用于端节点。示例地,请参考图5,图5为本申请实施例提供的一种控制数据包发送装置的框图,该控制数据包发送装置400包括:应用层401和协议栈402,该控制数据包发送装置400还可以包括硬件驱动403以及硬件层404。应用层401、协议栈402以及硬件驱动403均为软件,硬件层404为硬件。该协议栈402和硬件驱动403均可以位于端节点的操作***中。该应用层401包括第一应用。该硬件层404可以包括存储器4041,处理器4042以及通信接口4043。示例地,该通信接口4043可以为用于网络互连的网卡等通信接口。该协议栈402可以支持传输控制协议(transmission control protocol,TCP)以及网际互连协议(internet protocol,IP)等。在该控制数据包发送装置400中,该协议栈402用于:
获取多个控制模型,多个控制模型对应多个条件。
基于第一条件,从多个控制模型中选择第一条件对应的第一控制模型,其中,第一条件用于指示:第一应用的拥塞控制需求;第一控制模型用于处理至少一种网络中任一网络的传输参数,以得到使用任一网络发送第一应用的数据包所需的控制参数,控制参数用于:控制第一应用的数据包发送,以使任一网络满足第一应用的拥塞控制需求;控制参数包括拥塞窗口和发送速率中的至少一种。
使用第一控制模型处理端节点接入的第一网络的传输参数,得到端节点使用第一网络发送第一应用的数据包所需的第一控制参数。
基于第一控制参数,控制第一应用的数据包发送。
可选地,第一条件还用于指示:至少一种网络的环境,且至少一种网络中各个网络的环境不同。
可选地,第一条件中用于指示至少一种网络的环境的部分包括以下至少一个第一参数的范围:最大带宽、最小往返时延、随机丢包率以及缓冲区的大小,其中,缓冲区包括网络中的路由交换设备中用于缓存端节点发送的数据包的存储空间。
可选地,协议栈还用于:
基于第一网络的当前状态参数以及第一网络的历史状态参数中的至少一种,确定第一网络的传输参数。
可选地,传输参数包括以下至少一个第二参数:
往返时延;
时延差值,时延差值为:往返时延的当前值与往返时延的最小历史值的差值;
发送速率;
接收速率;
丢包率;
网络上的数据包携带的显示拥塞通知的值;
拥塞窗口值;
正则化处理后的往返时延;
正则化处理后的时延差值;
正则化处理后的发送速率;
正则化处理后的接收速率;
正则化处理后的丢包率;
正则化处理后的链路上的数据包携带的显示拥塞通知的值;
以及正则化处理后的拥塞窗口值。
可选地,传输参数还包括:至少一个第二参数中目标参数对应的变化值,目标参数对应的变化值与目标参数的当前值相对历史值的变化量相关,目标参数为至少一个第二参数中的任一参数。
可选地,条件包括:条件对应的控制模型的标识。
可选地,该协议栈402还用于:
重复执行发送控制流程;
发送控制流程包括:使用第一控制模型处理端节点接入的第一网络的传输参数,得到端节点使用第一网络发送第一应用的数据包所需的第一控制参数,以及基于第一控制参数控制第一应用的数据包发送。
可选地,该协议栈402还用于:
在基于第一控制参数,控制第一应用的数据包发送后,通过第一网络发送第一应用的至少一个数据包,发送控制流程还包括:
通过第一网络发送至少一个数据包;
重复执行发送控制流程,包括:
若通过第一网络接收到至少一个数据包的确认ACK报文,则重复执行发送控制流程。
可选地,该协议栈402还用于:
获取多个条件中任一条件对应的训练数据,其中,任一条件对应的训练数据包括:至少一种网络的传输参数,以及至少一种网络中任一网络对应的控制参数,任一网络对应的控制参数用于:控制任一网络中数据包的发送,以使任一网络满足任一条件所指示的拥塞控制需求;
基于任一条件对应的训练数据,对初始模型进行训练,以得到任一条件对应的控制模型。
可选地,该协议栈402还用于:
转发第一节点通过任一网络发送的数据包;
转发第二节点通过任一网络发送的数据包;
基于转发的第一节点发送的数据包以及第二节点发送的数据包在任一网络上的传输,获取任一条件对应的训练数据。
本申请实施例提供了一种模型训练装置,请参考图6,图6为本申请实施例提供的一种模型训练装置的框图,该模型训练装置500包括:
数据采集模块501,用于获取多个条件中任一条件对应的训练数据,其中,任一条件对应的训练数据包括:至少一种网络的传输参数,以及至少一种网络中任一网络对应的控制参数,任一条件用于指示应用的拥塞控制需求,任一网络对应的控制参数用于:控制任一网络中数据包的发送,以使任一网络满足任一条件所指示的拥塞控制需求,控制参数包括拥塞窗口和发送速率中的至少一种。
训练模块502,用于基于任一条件对应的训练数据,对初始模型进行训练,以得到任一条件对应的控制模型,任一条件对应的控制模型用于处理至少一种网络中任一网络的传输参数,以得到任一网络对应的控制参数。
可选地,请参考图7,图7为本申请实施例提供的另一种模型训练装置的框图,在图6的基础上,该模型训练装置500还包括:转发模块503,该转发模块503,用于:
转发第一节点通过任一网络发送的数据包;
转发第二节点通过任一网络发送的数据包;
相应的,该数据采集模块501,用于:
基于转发的第一节点发送的数据包以及第二节点发送的数据包在任一网络上的传输,获取任一条件对应的训练数据。
可选地,至少一种网络中各个网络的环境不同。
可选地,该至少一种网络中各个网络的以下至少一个参数的值不同:最大带宽、最小往返时延、随机丢包率以及缓冲区的大小,其中,缓冲区包括网络中的路由交换设备中用于缓存端节点发送的数据包的存储空间。
可选地,传输参数包括以下至少一个第二参数:
往返时延;
时延差值,时延差值为:往返时延的当前值与往返时延的最小历史值的差值;
发送速率;
接收速率;
丢包率;
网络上的数据包携带的显示拥塞通知的值;
拥塞窗口值;
正则化处理后的往返时延;
正则化处理后的时延差值;
正则化处理后的发送速率;
正则化处理后的接收速率;
正则化处理后的丢包率;
正则化处理后的链路上的数据包携带的显示拥塞通知的值;
以及正则化处理后的拥塞窗口值。
可选地,传输参数还包括:至少一个第二参数中目标参数对应的变化值,目标参数对应的变化值与目标参数的当前值相对历史值的变化量相关,目标参数为至少一个第二参数中的任一参数。
本申请实施例提供了一种计算机可读存储介质,该存储介质内存储有计算机程序,该计算机程序被处理器执行时实现本申请实施例提供的任一控制数据包发送方法,或者实现本申请实施例提供的任一模型训练方法。
本申请实施例提供了一种芯片,该芯片包括可编程逻辑电路和/或程序指令,当芯片运行时用于实现本申请实施例提供的任一控制数据包发送方法,或者实现本申请实施例提供的任一模型训练方法。
本申请实施例提供了一种包含指令的计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行本申请实施例提供的任一控制数据包发送方法,或者执行本申请实施例提供的任一模型训练方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现,所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机的可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者包含一个或多个可用介质集成的服务器、数据中心等数据存储装置。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质,或者半导体介质(例如固态硬盘)等。
本申请实施例提供了一种控制数据包发送装置,该控制数据包发送装置包括:存储器和处理器,其中,处理器用于执行存储器中存储的程序,以实现本申请实施例提供的任一控制数据包发送方法。
示例地,请参考图8,图8为本申请实施例提供的一种控制数据包发送装置的结构示意图,如图8所示,该控制数据包发送装置600包括:存储器601和处理器602。其中,存储器601用于存储程序,处理器602用于执行存储器601中存储的程序,以实现本申请实施例提供的任一控制数据包发送方法。
可选地,如图8所示,该控制数据包发送装置600还可以包括至少一个通信接口603和至少一个通信总线604。存储器601、处理器602以及通信接口603通过通信总线604通信连接。其中,通信接口603用于在处理器602的控制下与其他装置通信,处理器602可以通过通信总线604调用存储器601中存储的程序。
本申请实施例提供了一种模型训练装置,该模型训练装置包括:存储器和处理器,其中,处理器用于执行存储器中存储的程序,以实现本申请实施例提供的任一模型训练方法。该模型训练装置的结构可以参考图8所示的控制数据包发送装置600的结构,本申请实施例在此不做赘述。
在本申请中,术语“第一”和“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。术语“至少一个”指一个或多个,“多个”指两个或两个以上,除非另有明确的限定。术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
需要说明的是,本申请实施例提供的方法实施例和装置实施例均可以相互参考,本申请实施例对此不做限定。本申请实施例提供的方法实施例步骤的先后顺序能够进行适当调整,步骤也能够根据情况进行相应增减,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化的方法,都应涵盖在本申请的保护范围之内,因此不再赘述。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (30)
1.一种控制数据包发送方法,其特征在于,所述方法用于端节点,所述端节点运行有第一应用,所述方法包括:
获取多个控制模型,所述多个控制模型对应多个条件;
基于第一条件,从所述多个控制模型中选择所述第一条件对应的第一控制模型,其中,所述第一条件用于指示:所述第一应用的拥塞控制需求;所述第一控制模型用于处理至少一种网络中任一网络的传输参数,以得到使用所述任一网络发送所述第一应用的数据包所需的控制参数,所述至少一种网络包括所述端节点接入的第一网络,所述控制参数用于:控制所述第一应用的数据包发送,以使所述任一网络满足所述第一应用的拥塞控制需求;所述控制参数包括拥塞窗口值和发送速率中的至少一种;
使用所述第一控制模型处理所述端节点接入的第一网络的传输参数,得到所述端节点使用所述第一网络发送所述第一应用的数据包所需的第一控制参数;
基于所述第一控制参数,控制所述第一应用的数据包发送。
2.根据权利要求1所述的方法,其特征在于,所述第一条件还用于指示:所述至少一种网络的环境,且所述至少一种网络中各个网络的环境不同。
3.根据权利要求2所述的方法,其特征在于,所述第一条件中用于指示所述至少一种网络的环境的部分包括以下至少一个第一参数的范围:最大带宽、最小往返时延、随机丢包率以及缓冲区的大小,其中,所述缓冲区包括所述网络中的路由交换设备中用于缓存所述端节点发送的数据包的存储空间。
4.根据权利要求1至3任一所述的方法,其特征在于,在使用所述第一控制模型处理所述端节点接入的第一网络的传输参数,得到所述端节点使用所述第一网络发送所述第一应用的数据包所需的第一控制参数之前,所述方法还包括:
基于所述第一网络的当前状态参数以及所述第一网络的历史状态参数中的至少一种,确定所述第一网络的传输参数。
5.根据权利要求4所述的方法,其特征在于,所述传输参数包括以下至少一个第二参数:
往返时延;
时延差值,所述时延差值为:所述往返时延的当前值与所述往返时延的最小历史值的差值;
发送速率;
接收速率;
丢包率;
网络上的数据包携带的显示拥塞通知的值;
拥塞窗口值;
正则化处理后的所述往返时延;
正则化处理后的所述时延差值;
正则化处理后的所述发送速率;
正则化处理后的所述接收速率;
正则化处理后的所述丢包率;
正则化处理后的所述链路上的数据包携带的显示拥塞通知的值;
以及正则化处理后的所述拥塞窗口值。
6.根据权利要求5所述的方法,其特征在于,所述传输参数还包括:所述至少一个第二参数中目标参数对应的变化值,所述目标参数对应的变化值与所述目标参数的当前值相对历史值的变化量相关,所述目标参数为所述至少一个第二参数中的任一参数。
7.根据权利要求1至6任一所述的方法,其特征在于,所述第一条件包括:所述第一条件对应的控制模型的标识。
8.根据权利要求1至7任一所述的方法,其特征在于,在所述基于所述第一控制参数,控制所述第一应用的数据包发送之后,所述方法还包括:
重复执行发送控制流程;
所述发送控制流程包括:使用所述第一控制模型处理所述端节点接入的第一网络的传输参数,得到所述端节点使用所述第一网络发送所述第一应用的数据包所需的第一控制参数,以及基于所述第一控制参数控制所述第一应用的数据包发送。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
在基于所述第一控制参数,控制所述第一应用的数据包发送后,通过所述第一网络发送所述第一应用的至少一个数据包,所述发送控制流程还包括:
通过所述第一网络发送所述至少一个数据包;
所述重复执行发送控制流程,包括:
若通过所述第一网络接收到所述至少一个数据包的确认ACK报文,则重复执行所述发送控制流程。
10.根据权利要求1至9任一所述的方法,其特征在于,所述方法还包括:
获取所述多个条件中任一条件对应的训练数据,其中,所述任一条件对应的训练数据包括:所述至少一种网络的传输参数,以及所述至少一种网络中任一网络对应的控制参数,所述任一网络对应的控制参数用于:控制所述任一网络中数据包的发送,以使所述任一网络满足所述任一条件所指示的拥塞控制需求;
基于所述任一条件对应的训练数据,对初始模型进行训练,以得到所述任一条件对应的控制模型。
11.根据权利要求10所述的方法,其特征在于,在所述获取所述多个条件中任一条件对应的训练数据之前,所述方法还包括:
转发第一节点通过所述任一网络发送的数据包;
转发第二节点通过所述任一网络发送的数据包;
所述获取所述多个条件中任一条件对应的训练数据,包括:
基于转发的所述第一节点发送的数据包以及所述第二节点发送的数据包在所述任一网络上的传输,获取所述任一条件对应的训练数据。
12.一种模型训练方法,其特征在于,所述方法包括:
获取多个条件中任一条件对应的训练数据,其中,所述任一条件对应的训练数据包括:至少一种网络的传输参数,以及至少一种网络中任一网络对应的控制参数,所述任一条件用于指示应用的拥塞控制需求,所述任一网络对应的控制参数用于:控制所述任一网络中数据包的发送,以使所述任一网络满足所述任一条件所指示的拥塞控制需求,所述控制参数包括拥塞窗口和发送速率中的至少一种;
基于所述任一条件对应的训练数据,对初始模型进行训练,以得到所述任一条件对应的控制模型,所述任一条件对应的控制模型用于处理所述至少一种网络中任一网络的传输参数,以得到所述任一网络对应的控制参数。
13.根据权利要求12所述的方法,其特征在于,在所述获取多个条件中任一条件对应的训练数据之前,所述方法还包括:
转发第一节点通过所述任一网络发送的数据包;
转发第二节点通过所述任一网络发送的数据包;
所述获取多个条件中任一条件对应的训练数据,包括:
基于转发的所述第一节点发送的数据包以及所述第二节点发送的数据包在所述任一网络上的传输,获取所述任一条件对应的训练数据。
14.根据权利要求12或13所述的方法,其特征在于,所述至少一种网络中各个网络的环境不同。
15.根据权利要求14所述的方法,其特征在于,所述至少一种网络中各个网络的以下至少一个参数的值不同:最大带宽、最小往返时延、随机丢包率以及缓冲区的大小,其中,所述缓冲区包括所述网络中的路由交换设备中用于缓存所述端节点发送的数据包的存储空间。
16.根据权利要求12至15任一所述的方法,其特征在于,所述传输参数包括以下至少一个第二参数:
往返时延;
时延差值,所述时延差值为:所述往返时延的当前值与所述往返时延的最小历史值的差值;
发送速率;
接收速率;
丢包率;
网络上的数据包携带的显示拥塞通知的值;
拥塞窗口值;
正则化处理后的所述往返时延;
正则化处理后的所述时延差值;
正则化处理后的所述发送速率;
正则化处理后的所述接收速率;
正则化处理后的所述丢包率;
正则化处理后的所述链路上的数据包携带的显示拥塞通知的值;
以及正则化处理后的所述拥塞窗口值。
17.根据权利要求16所述的方法,其特征在于,所述传输参数还包括:所述至少一个第二参数中目标参数对应的变化值,所述目标参数对应的变化值与所述目标参数的当前值相对历史值的变化量相关,所述目标参数为所述至少一个第二参数中的任一参数。
18.一种控制数据包发送装置,其特征在于,所述装置用于端节点,所述控制数据包发送装置包括:第一应用以及协议栈,其中,所述协议栈用于:
获取多个控制模型,所述多个控制模型对应多个条件;
基于第一条件,从所述多个控制模型中选择所述第一条件对应的第一控制模型,其中,所述第一条件用于指示:所述第一应用的拥塞控制需求;所述第一控制模型用于处理至少一种网络中任一网络的传输参数,以得到使用所述任一网络发送所述第一应用的数据包所需的控制参数,所述控制参数用于:控制所述第一应用的数据包发送,以使所述任一网络满足所述第一应用的拥塞控制需求;所述控制参数包括拥塞窗口和发送速率中的至少一种;
使用所述第一控制模型处理所述端节点接入的第一网络的传输参数,得到所述端节点使用所述第一网络发送所述第一应用的数据包所需的第一控制参数;
基于所述第一控制参数,控制所述第一应用的数据包发送。
19.根据权利要求18所述的装置,其特征在于,所述第一条件还用于指示:所述至少一种网络的环境,且所述至少一种网络中各个网络的环境不同。
20.根据权利要求19所述的装置,其特征在于,所述第一条件中用于指示所述至少一种网络的环境的部分包括以下至少一个第一参数的范围:最大带宽、最小往返时延、随机丢包率以及缓冲区的大小,其中,所述缓冲区包括所述网络中的路由交换设备中用于缓存所述端节点发送的数据包的存储空间。
21.根据权利要求18至20任一所述的装置,其特征在于,所述协议栈还用于:
基于所述第一网络的当前状态参数以及所述第一网络的历史状态参数中的至少一种,确定所述第一网络的传输参数。
22.根据权利要求21所述的装置,其特征在于,所述传输参数包括以下至少一个第二参数:
往返时延;
时延差值,所述时延差值为:所述往返时延的当前值与所述往返时延的最小历史值的差值;
发送速率;
接收速率;
丢包率;
网络上的数据包携带的显示拥塞通知的值;
拥塞窗口值;
正则化处理后的所述往返时延;
正则化处理后的所述时延差值;
正则化处理后的所述发送速率;
正则化处理后的所述接收速率;
正则化处理后的所述丢包率;
正则化处理后的所述链路上的数据包携带的显示拥塞通知的值;
以及正则化处理后的所述拥塞窗口值。
23.根据权利要求22所述的装置,其特征在于,所述传输参数还包括:所述至少一个第二参数中目标参数对应的变化值,所述目标参数对应的变化值与所述目标参数的当前值相对历史值的变化量相关,所述目标参数为所述至少一个第二参数中的任一参数。
24.根据权利要求18至23任一所述的装置,其特征在于,所述条件包括:所述条件对应的控制模型的标识。
25.一种模型训练装置,其特征在于,所述模型训练装置包括:
数据采集模块,用于获取多个条件中任一条件对应的训练数据,其中,所述任一条件对应的训练数据包括:至少一种网络的传输参数,以及至少一种网络中任一网络对应的控制参数,所述任一条件用于指示应用的拥塞控制需求,所述任一网络对应的控制参数用于:控制所述任一网络中数据包的发送,以使所述任一网络满足所述任一条件所指示的拥塞控制需求,所述控制参数包括拥塞窗口和发送速率中的至少一种;
训练模块,用于基于所述任一条件对应的训练数据,对初始模型进行训练,以得到所述任一条件对应的控制模型,所述任一条件对应的控制模型用于处理所述至少一种网络中任一网络的传输参数,以得到所述任一网络对应的控制参数。
26.一种控制数据包发送装置,其特征在于,所述控制数据包发送装置包括:
存储器;
处理器;
其中,所述处理器用于执行所述存储器中存储的程序,以实现权利要求1至11任一所述的控制数据包发送方法。
27.一种模型训练装置,其特征在于,所述模型训练装置包括:
存储器;
处理器;
其中,所述处理器用于执行所述存储器中存储的程序,以实现权利要求12至17任一所述的模型训练方法。
28.一种计算机存储介质,其特征在于,所述存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1至11任一所述的控制数据包发送方法。
29.一种计算机存储介质,其特征在于,所述存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求12至17任一所述的模型训练方法。
30.一种网络传输***,其特征在于,所述网络传输***包括:控制数据包发送装置和/或模型训练装置;
所述控制数据包发送装置为权利要求18至24任一所述的控制数据包发送装置,或者所述控制数据包发送装置为权利要求26所述的控制数据包发送装置;
所述模型训练装置为权利要求25所述的模型训练装置,或者所述模型训练装置为权利要求27所述的模型训练装置。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911209073.0A CN112887217B (zh) | 2019-11-30 | 2019-11-30 | 控制数据包发送方法、模型训练方法、装置及*** |
CN202211073928.3A CN115643210A (zh) | 2019-11-30 | 2019-11-30 | 控制数据包发送方法及*** |
PCT/CN2020/111834 WO2021103706A1 (zh) | 2019-11-30 | 2020-08-27 | 控制数据包发送方法、模型训练方法、装置及*** |
US17/750,639 US20220286402A1 (en) | 2019-11-30 | 2022-05-23 | Method and apparatus for controlling data packet sending, model training method and apparatus, and system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911209073.0A CN112887217B (zh) | 2019-11-30 | 2019-11-30 | 控制数据包发送方法、模型训练方法、装置及*** |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211073928.3A Division CN115643210A (zh) | 2019-11-30 | 2019-11-30 | 控制数据包发送方法及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112887217A true CN112887217A (zh) | 2021-06-01 |
CN112887217B CN112887217B (zh) | 2022-09-09 |
Family
ID=76039337
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211073928.3A Pending CN115643210A (zh) | 2019-11-30 | 2019-11-30 | 控制数据包发送方法及*** |
CN201911209073.0A Active CN112887217B (zh) | 2019-11-30 | 2019-11-30 | 控制数据包发送方法、模型训练方法、装置及*** |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211073928.3A Pending CN115643210A (zh) | 2019-11-30 | 2019-11-30 | 控制数据包发送方法及*** |
Country Status (3)
Country | Link |
---|---|
US (1) | US20220286402A1 (zh) |
CN (2) | CN115643210A (zh) |
WO (1) | WO2021103706A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113259255A (zh) * | 2021-06-03 | 2021-08-13 | 鹏城实验室 | 一种网络拥塞控制方法、装置、终端及存储介质 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113839830B (zh) * | 2021-07-15 | 2023-10-24 | 腾讯科技(深圳)有限公司 | 数据包多发参数的预测方法、装置与存储介质 |
US12009993B2 (en) * | 2022-05-25 | 2024-06-11 | Verizon Patent And Licensing Inc. | Systems and methods for selecting a machine learning model and training images for the machine learning model |
CN116055406B (zh) * | 2023-01-10 | 2024-05-03 | 中国联合网络通信集团有限公司 | 拥塞窗口预测模型的训练方法及装置 |
CN116170379B (zh) * | 2023-04-25 | 2023-07-14 | 腾讯科技(深圳)有限公司 | 一种传输控制方法、装置、设备及计算机可读存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103929777A (zh) * | 2014-05-08 | 2014-07-16 | 西安电子科技大学 | 基于拥塞博弈的车辆网络数据分发拥塞控制方法 |
CN106302230A (zh) * | 2015-06-11 | 2017-01-04 | 华为技术有限公司 | 一种数据传输方法及装置 |
CN106533970A (zh) * | 2016-11-02 | 2017-03-22 | 重庆大学 | 面向云计算数据中心网络的差分流传输控制方法及装置 |
CN107171842A (zh) * | 2017-05-22 | 2017-09-15 | 南京大学 | 基于强化学习的多路径传输协议拥塞控制方法 |
CN107634911A (zh) * | 2017-10-31 | 2018-01-26 | 河南科技大学 | 一种信息中心网络中基于深度学习的自适应拥塞控制方法 |
US20180124632A1 (en) * | 2016-10-31 | 2018-05-03 | Cisco Technology, Inc. | Data traffic management in virtual access point (vap) enabled networks |
CN109361601A (zh) * | 2018-10-31 | 2019-02-19 | 浙江工商大学 | 一种基于强化学习的sdn路由规划方法 |
WO2019192361A1 (en) * | 2018-04-06 | 2019-10-10 | Huawei Technologies Co., Ltd. | Congestion control in network communications |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109905918B (zh) * | 2019-02-25 | 2022-04-01 | 重庆邮电大学 | 一种基于能效的noma蜂窝车联网动态资源调度方法 |
-
2019
- 2019-11-30 CN CN202211073928.3A patent/CN115643210A/zh active Pending
- 2019-11-30 CN CN201911209073.0A patent/CN112887217B/zh active Active
-
2020
- 2020-08-27 WO PCT/CN2020/111834 patent/WO2021103706A1/zh active Application Filing
-
2022
- 2022-05-23 US US17/750,639 patent/US20220286402A1/en active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103929777A (zh) * | 2014-05-08 | 2014-07-16 | 西安电子科技大学 | 基于拥塞博弈的车辆网络数据分发拥塞控制方法 |
CN106302230A (zh) * | 2015-06-11 | 2017-01-04 | 华为技术有限公司 | 一种数据传输方法及装置 |
US20180124632A1 (en) * | 2016-10-31 | 2018-05-03 | Cisco Technology, Inc. | Data traffic management in virtual access point (vap) enabled networks |
CN106533970A (zh) * | 2016-11-02 | 2017-03-22 | 重庆大学 | 面向云计算数据中心网络的差分流传输控制方法及装置 |
CN107171842A (zh) * | 2017-05-22 | 2017-09-15 | 南京大学 | 基于强化学习的多路径传输协议拥塞控制方法 |
CN107634911A (zh) * | 2017-10-31 | 2018-01-26 | 河南科技大学 | 一种信息中心网络中基于深度学习的自适应拥塞控制方法 |
WO2019192361A1 (en) * | 2018-04-06 | 2019-10-10 | Huawei Technologies Co., Ltd. | Congestion control in network communications |
CN109361601A (zh) * | 2018-10-31 | 2019-02-19 | 浙江工商大学 | 一种基于强化学习的sdn路由规划方法 |
Non-Patent Citations (4)
Title |
---|
F.D. PRISCOLI 等: ""Multi-model reference control for queue-based resource management in communication networks"", 《2004 43RD IEEE CONFERENCE ON DECISION AND CONTROL (CDC) (IEEE CAT. NO.04CH37601)》 * |
INTEL CORPORATION: ""QoS Aware Congestion Control for NR V2X Communication"", 《3GPP TSG RAN WG1 MEETING #98BIS》 * |
丁男等: ""面向车联网按需驱动的多宿主多链路TCP拥塞控制算法"", 《通信学报》 * |
于娜: ""基于主动队列管理算法的拥塞控制问题研究"", 《中国优秀硕士学位论文全文数据库·信息科技辑》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113259255A (zh) * | 2021-06-03 | 2021-08-13 | 鹏城实验室 | 一种网络拥塞控制方法、装置、终端及存储介质 |
CN113259255B (zh) * | 2021-06-03 | 2021-10-08 | 鹏城实验室 | 一种网络拥塞控制方法、装置、终端及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112887217B (zh) | 2022-09-09 |
WO2021103706A1 (zh) | 2021-06-03 |
US20220286402A1 (en) | 2022-09-08 |
CN115643210A (zh) | 2023-01-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112887217B (zh) | 控制数据包发送方法、模型训练方法、装置及*** | |
US8520517B2 (en) | Switch fabric end-to-end congestion avoidance mechanism | |
EP2890065B1 (en) | Systems and methods for managing congestion | |
US11558302B2 (en) | Data transmission method and apparatus | |
CN112532409B (zh) | 网络参数配置方法、装置、计算机设备以及存储介质 | |
CN112422443B (zh) | 一种拥塞算法的自适应控制方法、存储介质、设备及*** | |
US10721295B2 (en) | Popularity-based load-balancing for fog-cloud placement | |
WO2020063299A1 (zh) | 统计活跃流数目的方法、网络设备和*** | |
CN113572694A (zh) | 拥塞控制方法、装置及***、计算机存储介质 | |
CN113328953B (zh) | 网络拥塞调整的方法、装置和存储介质 | |
WO2024012065A1 (zh) | 数据传输控制方法、装置、计算机可读存储介质、计算机设备及计算机程序产品 | |
CN103108354B (zh) | 控制数据传输 | |
CN112910789A (zh) | 拥塞控制方法以及相关设备 | |
CN111740922B (zh) | 数据传输方法、装置、电子设备及介质 | |
CN111901237B (zh) | 源路由选路方法及***、相关设备及计算机可读存储介质 | |
CN117376212A (zh) | 网络速率调整方法及装置、存储介质及电子设备 | |
CN116938777A (zh) | 网络遥测的方法及装置、电子设备和存储介质 | |
CN115037672B (zh) | 多路径拥塞控制方法及装置 | |
CN115484161B (zh) | Tsn网络配置方法、装置及计算机可读存储介质 | |
CN115550263A (zh) | 一种网络设备的主动队列管理方法及网络设备 | |
CN112019443A (zh) | 多路径数据传输方法及装置 | |
CN116760777B (zh) | 一种基于abea3c的多路径拥塞控制方法 | |
CN113810305B (zh) | 报文转发方法、装置、转发节点以及计算机可读存储介质 | |
WO2024119513A1 (en) | Device and method for agent for dynamically adapting explicit congestion notification configuration in network system | |
CN116886623A (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 |