CN112653635A - 一种拥塞控制算法的改进方法、装置、设备及存储介质 - Google Patents
一种拥塞控制算法的改进方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN112653635A CN112653635A CN202011538258.9A CN202011538258A CN112653635A CN 112653635 A CN112653635 A CN 112653635A CN 202011538258 A CN202011538258 A CN 202011538258A CN 112653635 A CN112653635 A CN 112653635A
- Authority
- CN
- China
- Prior art keywords
- current
- rate
- detection
- packet
- receiving
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 160
- 238000004422 calculation algorithm Methods 0.000 title claims abstract description 96
- 230000006872 improvement Effects 0.000 title description 14
- 238000001514 detection method Methods 0.000 claims abstract description 406
- 230000005540 biological transmission Effects 0.000 claims abstract description 221
- 239000000523 sample Substances 0.000 claims description 89
- 230000007246 mechanism Effects 0.000 claims description 17
- 230000008569 process Effects 0.000 claims description 16
- 238000006243 chemical reaction Methods 0.000 claims description 15
- 238000012790 confirmation Methods 0.000 claims description 10
- 238000012544 monitoring process Methods 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 3
- 238000009499 grossing Methods 0.000 claims description 2
- 238000012360 testing method Methods 0.000 description 47
- 230000006870 function Effects 0.000 description 41
- 238000010586 diagram Methods 0.000 description 18
- 230000000694 effects Effects 0.000 description 13
- 238000005457 optimization Methods 0.000 description 13
- 230000007704 transition Effects 0.000 description 9
- 238000009825 accumulation Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 230000001105 regulatory effect Effects 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
- 238000002054 transplantation 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/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
- 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]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例公开了一种拥塞控制算法的改进方法、装置、设备及存储介质。该方法包括在当前传输轮次满足探测功能执行条件时,如果确定当前满足探测发包条件,则基于所获取当前窗口量的待发送数据包形成探测数据包组并采用确定的当前探测速率进行探测发包;在满足探测收包条件时,对探测数据包组进行探测收包操作,并在监测到完成探测收包后,确定探测数据包组的当前接收速率;根据当前接收速率确定下一传输轮次对应的下一数据包发送速率。利用该方法,主要对拥塞控制的起始状态模式进行了改进,使得拥塞控制在起始状态模式下能够更快、更准确探测到网络的最大可用带宽,进而提升网络传输中拥塞控制在初始阶段的吞吐率,具备更广泛的实用性。
Description
技术领域
本发明实施例涉及网络传输技术领域,尤其涉及一种拥塞控制算法的改进方法、装置、设备及存储介 质。
背景技术
随着互联网的发展,网络流量迅猛增长,互联网的传输越来越拥堵。为了实现速率和带宽的平衡,业 界提出了许多算法,目前较流行的一种拥塞控制方法是瓶颈带宽和往返时延(Bottleneck Bandwidth and Round-trip propagation time,BBR)拥塞控制算法。该BBR拥塞控制算法由谷歌提出,其进行拥塞控制的 核心思想可概括为:通过测量瓶颈带宽和往返传播时延来动态调控网络传输时的窗口量(cwnd)以及数 据包发送速率(pacingrate,pacing速率),且BBR拥塞控制算法可以在四个状态模式下实现窗口量以及 pacing速率的调控。
图1给出了BBR拥塞控制算法中四个状态模式的状态转换图,其中,四个状态模式分别为:起始状 态模式(Startup)11、排空状态模式(Drain)12、瓶颈带宽探测状态模式(Probe_BW)13以及往返传播 时延探测状态模式(Probe_RTT)14。如图1所示,BBR算法的状态转移过程可表述为:在具备网络传输 需求时,BBR流首先处于Startup状态模式,逐渐地加大Packing速率以及窗口量量;当通过即时带宽Bw 确定网络管道已满,则进入Drain状态模式,发送端通过主动少发数据包以排空队列;然后在处于稳态工 作状态时,进入Probe_Bw状态模式以通过设定更高的带宽来进行瓶颈带宽探测,以及每隔10s从Probe_Bw 状态模式转移到Probe_RTT状态模式以测量往返传播时延(Round-Trip Time,RTT),从而实现交替地测 量瓶颈带宽和RTT。
可以看出,相对一些传统拥塞控制方法整个BBR算法在拥塞控制上较为完整和系统,但仍存在一些 缺陷影响其在实际应用中的控制效果,如:1)BBR的Startup状态模式继承了传统基于丢包的拥塞控制算 法中的慢启动方式,即指数增长窗口量;而该状态模式的退出条件为连续3个轮次的带宽Bw都不再增长 25%。该种增长形式,在长远距离、大时延网络场景下,轮次周期长,窗口量的增长非常缓慢,会严重影 响网络传输的吞吐率和网络的带宽利用率;2)通过这种固定指数增长窗口量的方式去感知网络瓶颈带宽 是被动的和不灵敏的,在增长前期,存在带宽按照指数增长仍然不够快的情况,降低了该种增长模式的收敛速度;3)通过在实际应用(如进行短视频传输)中对BBR算法运行状态模式的统计分析,发现超过 50%的短视频在BBR还没有退出Startup状态模式时就结束了传输任务,而BBR算法的其他状态模式很 难在这种应用中实际生效;此外,通过对BBR在起始状态模式下对平均RTT的统计发现,有75%的延时 时长位于[128,384]ms之间,即用户到服务器的时延偏大。
发明内容
有鉴于此,本发明实施例提供了拥塞控制算法的改进方法、装置、设备及存储介质,以提高网络传输 拥塞控制初始阶段的吞吐性能。
第一方面,本发明实施例提供了一种拥塞控制算法的改进方法,包括:
在当前传输轮次满足探测功能执行条件时,如果确定当前满足探测发包条件,则基于所获取当前窗口 量的待发送数据包形成探测数据包组并采用确定的当前探测速率进行探测发包;
在满足探测收包条件时,对所述探测数据包组进行探测收包操作,并在监测到完成探测收包后,确定 所述探测数据包组的当前接收速率;
根据所述当前接收速率确定下一传输轮次中数据包发送所需的下一数据包发送速率;
其中,所述探测功能执行条件为当前传输轮次处于拥塞控制的起始状态模式且所设定探测机制功能处 于使能状态。
第二方面,本发明实施例提供一种一种拥塞控制算法的改进方法,包括:
探测发包模块,用于在当前传输轮次满足探测功能执行条件时,如果确定当前满足探测发包条件,则 基于所获取当前窗口量的待发送数据包形成探测数据包组并采用确定的当前探测速率进行探测发包;
探测收包模块,用于在满足探测收包条件时,对所述探测数据包组进行探测收包操作,并在监测到完 成探测收包后,确定所述探测数据包组的当前接收速率;
信息确定模块,用于根据所述当前接收速率确定下一传输轮次中数据包发送所需的下一数据包发送速 率;
其中,所述探测功能执行条件为当前传输轮次处于拥塞控制的起始状态模式且所设定探测机制功能处 于使能状态。
第三方面,本发明实施例提供了一种计算机设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明第一方面 实施例提供的拥塞控制算法的改进方法。
第四方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器 执行时实现本发明第一方面实施例提供的拥塞控制算法的改进方法。
本发明实施例提供的一种拥塞控制算法的改进方法、装置、设备及存储介质,首先可以在获取当前传 输轮次满足探测功能执行条件时,如果确定当前满足探测发包条件,则基于所获取当前窗口量的待发送数 据包形成探测数据包组并采用确定的当前探测速率进行探测发包;在满足探测收包条件时对所述探测数据 包组进行探测收包操作,并在监测到完成探测收包后,确定所述探测数据包组的当前接收速率;最终,根 据当前接收速率确定下一传输轮次中数据包发送所需的下一数据包发送速率。上述技术方案,相比于现有 的拥塞控制算法,主要对拥塞控制的起始状态模式进行了改进,具体从待发送数据包中确定较小的探测数 据包组,通过探测数据包组短时变快发包速率来实现网络带宽探测的优化,并从而对拥塞控制中数据包发 送速率进行有效更新,使得拥塞控制在起始状态模式下能够更快、更准确探测到网络的最大可用带宽,进 而提升网络传输中拥塞控制在初始阶段的吞吐率;同时,本实施例所提供改进后方法具备更广泛的实用性。
附图说明
图1给出了BBR拥塞控制算法中四个状态模式的状态转换图;
图2给出了本发明实施例一提供的一种拥塞控制算法的改进方法的流程示意图;
图3给出了本发明实施例二提供的一种拥塞控制算法的改进方法的流程示意图;
图3a给出了本发明实施例二所提供拥塞控制算法的改进方法中探测包个数确定的一种实现流程图;
图3b给出了本发明实施例二所提供拥塞控制算法的改进方法中探测速率确定的一种实现流程图;
图3c给出了本发明实施例二所提供拥塞控制算法的改进方法中探测速率确定的另一种实现流程图;
图4给出了本发明实施例三提供的一种拥塞控制算法的改进方法的流程示意图;
图4a给出了本发明实施例三所提供拥塞控制算法的改进方法中置信接收速率确定的一种实现流程 图;
图4b给出了本发明实施例三所提供拥塞控制算法的改进方法中置信接收速率确定的一种实现流程 图;
图4c给出了本发明实施例三所提供拥塞控制算法的改进方法中当前窗口量更新的一种实现流程图;
图4d给出了现有拥塞控制算法在单个测试场景下的测试结果展示图;
图4e给出了本实施例所提供拥塞控制算法的改进方法在同一个测试场景下的测试结果展示图;
图4f给出本实施例所提供拥塞控制算法的改进方法在多个基准测试场景下以RTT作为测试维度时的 测试效果展示图;
图4g给出本实施例所提供拥塞控制算法的改进方法在多个基准测试场景下以带宽作为测试维度时的 测试效果展示图;
图4h给出本实施例所提供拥塞控制算法的改进方法在多个基准测试场景下以丢包率作为测试维度时 的测试效果展示图;
图4i给出本实施例所提供拥塞控制算法的改进方法在多个基准测试场景下以缓存大小作为测试维度 时的测试效果展示图;
图5给出了本发明实施例四提供的一种拥塞控制算法的改进装置的结构框图;
图6给出了本发明实施例五提供的一种计算机设备的硬件结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施例方式作进一步地详细 描述。应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。此外,在不冲突的 情况下,本发明中的实施例及实施例中的特征可以相互组合。
在本申请的描述中,需要理解的是,术语“第一”、“第二”、“第三”等仅用于区别类似的对象,而不 必用于描述特定的顺序或先后次序,也不能理解为指示或暗示相对重要性。对于本领域的普通技术人员而 言,可以根据具体情况理解上述术语在本申请中的具体含义。
实施例一
图2给出了本发明实施例一提供的一种拥塞控制算法的改进方法的流程示意图,该方法适用于对网络 传输中的带宽进行拥塞控制的情况,该方法可以由拥塞控制算法的改进方法执行,其中,该系统可以由软 件和/或硬件实现,并一般包括可执行上述方法的计算机设备。
需要说明的是,本发明实施例所提供方法相当于对BBR拥塞控制算法在处于起始状态模式下执行时 的改进方法。对于BBR拥塞控制算法的起始状态模式当前存在的不足,当前也存在其他改进方法。例如 其中一种是默认设置较大的初始窗口量(如由最初的1个直接调整为10个),该种方法虽然简单,但其 仅仅适用于短小流类型的应用,如网页形式的数据,当待传输流为视频文件这类应用时,在起始状态模式 时其传输速率依旧受限。又如,将适用于其他拥塞控制算法的改进直接移植到BBR拥塞控制算法中,但 因为不同拥塞控制算法的控制原理存在区别,移植后的改进方式并不适应BBR拥塞控制算法。
本实施例所提供拥塞控制算法的改进方法能够有效改善起始状态模式当前存在的不足,使得拥塞控制 在起始状态模式下能够更快、更准确探测到网络的最大可用带宽。
具体的,如图2所示,本实施例一提供的一种拥塞控制算法的改进方法,包括如下操作:
S101、在当前传输轮次满足探测功能执行条件时,如果确定当前满足探测发包条件,则基于所获取当 前窗口量的待发送数据包形成探测数据包组并采用确定的当前探测速率进行探测发包。
在本实施例中,网络传输的拥塞控制中往往以一个传输轮次进行控制,而传输轮次所经历的时间可认 为是数据包传输的往返传播时延。本实施例所提供的改进方法相当于以起始状态模式下的一个传输轮次作 为方法执行的循环周期,以此在满足本方法的执行条件时,能够在各传输轮次下循环执行。所述当前传输 轮次具体可理解为进行网络传输的拥塞控制中当前所处的传输轮次。
考虑到整个拥塞控制过程中都以传输轮次为单位来进行,而对BBR拥塞控制算法的改进主要在起始 状态模式。因此,本实施例所提供的方法首先需要对当前传输轮次进行探测功能执行条件的判定,只要在 确定当前传输轮次满足探测功能执行条件时才能继续执行本实施例提供的方法。
其中,所述探测功能执行条件可优选为当前传输轮次处于拥塞控制的起始状态模式且所设定探测机制 功能处于使能状态。所述探测机制功能可认为是本实施对起始状态模式进行改进的一个信号控制开关,在 实际传输中,假设不需要通过本实施例所提供改进后的拥塞控制方法进行拥塞控制,则无需给定该探测机 制功能使能信号,以使控制该探测机制功能一直保持在失能状态下;假设需要本实施例所提供改进后的拥 塞控制方法进行拥塞控制,则需要预先给定该探测机制功能一个使能信号,是探测机制功能处于使能状态下。
本实施例确定当前传输轮次满足所设定的探测功能执行条件后,相当于能够继续执行本实施例的后续 步骤。需要说明的是,在当前传输轮次下进行网络传输的常规拥塞控制时,首先需要获知的是当前传输轮 次下进行数据包发送所给定的窗口量,以及对所选定该窗口量的数据包发送时需要的数据包发送速率。
而本实施例为了提升起始状态模式下的吞吐率,可在探测机制功能处于使能状态后,采用常规确定的 数据包发送速率进行数据包发送前,先考虑对所选定窗口量中的一部分待发送数据包以高于该数据包发送 速率的探测速率进行数据包发送,以通过该种操作来最大可能的对当前的网络带宽进行探测,使得数据包 发送速率能够更快速的到达当前所允许最大带宽。
本实施例将上述通过较高的速率优先发送一部分数据包的过程记为探测发包操作,而该探测发包操作 需要在满足探测发包条件后执行,由此,本步骤可以在判定当前传输轮次满足探测功能执行条件后,进一 步进行当前是否满足探测发包条件的判定。所述探测发包条件可优选为当前处于所述当前传输轮次的起始 时刻且当前不存在网络传输的应用限制。
其中,是否网络传输的应用限制的确定具体可通过对是否存在一定量进行网络传输的数据判定来实 现,示例性的,可认为如果所允许的业务应用当前还不存在网络传输所关联的数据(如待发送数据包或者 已接收到的确认数据包等),则可认为此时探测发包的执行存在网络传输的应用限制;如果所允许的业务 应用当前存在网络传输所关联的数据,则可认为此时探测发包的执行不存在网络传输的应用显示。
可以知道的是,本步骤在满足探测功能执行条件,且确定当前满足探测发包条件后,就可以启动探测 发包操作,即,以高于当前传输轮次所对应常规数据包发送速率的当前探测速率对探测数据包组中的各探 测数据包进行发送操作,其中,所构成的探测数据包组中各探测数据包直接来源于所选定当前窗口量的待 发送数据包从所选定当前窗口量的待发送数据包,相当于直接从待发送数据中挑选用于速率探测的数据对 象,而无需注入其他额外的数据包作为探测数据包,由此保证了本实施例所提供方法相对原拥塞控制算法的精简性。
其中,所述当前窗口量可认为是当前传输轮次下进行数据传输所允许发送数据包的个数。本步骤可以 从待发送至接收端的业务应用数据包中选定当前窗口量的待发送数据包,然后通过选定各待发送数据包进 行探测包数据组的确定。当前探测速率具体可认为是对所形成探测数据包组中各探测数据包进行数据到接 收端发送时所采用的数据包发送速率。
可以理解的是,本实施例所提供拥塞控制算法的改进方法结合在实际的应用场景中。对于具体的某个 业务应用,可认为本实施例中给出的待发送数据包为待发送给接收方的业务应用数据。示例性的,在以视 频文件为网络资源的业务应用中,本实施例所提供的方法可以相当于与视频文件的传输过程相结合,此时, 所述待发送数据包可认为是待发送给接收方的视频帧数据,且各所述视频帧数据构成了待发送的视频文 件。
S102、在满足探测收包条件时,对所述探测数据包组进行探测收包操作,并在监测到完成探测收包后, 确定所述探测数据包组的当前接收速率。
需要说明的是,在采用BBR拥塞控制的网络传输中,其在一个传输轮次下,除了进行所给定窗口量 的数据包选取以及对所选取的数据包按照给定的数据包发送速率进行数据包发送外,还会通过对接收端相 对各数据包发送的确认数据包的监测,来进行数据包接收速率的确定,且所确定的数据包接收速率可用于 对当前传输轮次中窗口量的调整,还可用于对下一传输轮次中数据包发送数据的调整。
本实施例上述步骤相当于对当前传输轮次中探测数据包组的探测发包,基于上述描述,可知在当前传 输轮次中还需要对所发送探测数据包进行探测数据包的收包操作,本实施例可以将探测数据包的收包操作 简称为探测收包。本步骤为探测收包操作的具体实现。
具体的,本步骤中探测收包操作的执行首先需要满足探测收包条件,然后开始执行探测收包,即对探 测数据包组中所发送各探测数据包的确认数据包接收过程进行监测,获得相关联的数据信息(如确认数据 包的接收个数,确认数据包的丢失个数等),直至监测到完成了探测收包;之后可以通过探测收包操作中 监测获得的数据对探测数据包组的接收进行当前接收速率的确定。其中,所述探测收包条件可优选包括: 当前所进行数据包发送操作的发送时刻大于或等于探测发包操作中的发包起始时间,且小于或等于所述探 测发包操作中的发包结束时间。
可以知道的是,只要当前传输轮次下未完成所选定当前窗口量的待发送数据包的发送,就会一直持续 进行数据包发送,由此本实施例可以获取到各进行数据包发送操作的时刻,且可获取到最新的一个发送时 刻,本实施将最新的这个发送时刻作为当前所进行数据包发送操作的发送时刻。探测发包操作的发包起始 时间可认为是发送首个探测数据包的起始时间;发包结束时间可认为是达到发包结束条件时所对应的时 间。
S103、根据所述当前接收速率确定下一传输轮次中数据包发送所需的下一数据包发送速率。
通过上述步骤相当于完成了当前传输轮次所对应当前接收速率的确定,本步骤可以通过所确定的当前 接收速率确定下一传输轮次下所需下一数据包发送速率的确定。所确定出的下一数据包发送速率可用于下 一传输轮次中数据包的发送,而且在确定下一传输轮次也满足探测功能执行条件时,还可以在下一传输轮 次中通过所确定出的下一数据包发送速率实现探测发包操作所需下一探测速率的确定。
需要说明的是,网络传输进行拥塞控制的目的在于保证网络传输中的带宽能够承载数据包由发送方到 接收方的正常传输,由此需要对数据包发送数据进行调控,而对数据包的发送速率进行调控的参照信息一 方面为接收到确认数据包的接收速率以及网络当前所具备的带宽。示例性的,可以将数据包的发送速率调 整为上述接收速率或者网络带宽中的最大值。本步骤可以采用该种调控方式获取到网络当前的带宽,并通 过将其与已确定的当前接收速率的比较,来选择二者中的最大值作为本实施例下一传输轮次中的下一数据包发送速率。
可以知道的是,本实施例所提供方法为可以在网络传输的拥塞控制过程循环执行,循环执行的周期为 一个传输轮次。具体的,本实施例可以在进入一个新的传输轮次后,首先判定该传输轮次是否满足探测功 能执行条件,若满足则可认为该传输轮次满足本实施例所提供方法的循环执行条件,由此可继续进行本实 施例所提供方法的执行。
本发明实施例一提供的一种拥塞控制算法的改进方法,相比于现有的拥塞控制算法,主要对拥塞控制 的起始状态模式进行了改进,具体从待发送数据包中确定较小的探测数据包组,通过探测数据包组短时变 快发包速率来实现网络带宽探测的优化,并从而对拥塞控制中数据包发送速率进行有效更新,使得拥塞控 制在起始状态模式下能够更快、更准确探测到网络的最大可用带宽,进而提升网络传输中拥塞控制在初始 阶段的吞吐率;同时,本实施例所提供改进后方法具备更广泛的实用性。
实施例二
图3给出了本发明实施例二提供的一种拥塞控制算法的改进方法的流程示意图,本实施例以上述实施 例为基础进行优化,在本实施例中,可以将基于所获取当前窗口量的待发送数据包形成探测数据包组并采 用确定的当前探测速率进行探测发包具体化为获取当前执行时刻对应的当前窗口量,并从待发送数据队列 中提取所述当前窗口量的待发送数据包,形成待发送数据包序列;确定执行探测发包所需的当前探测包个 数,并确定执行探测发包所需的当前探测速率;从所述待发送数据包序列的首位开始,顺序选定所述当前探测包个数的待发送数据包作为探测数据包并构成探测数据包组;采用所述当前探测速率进行各所述探测 数据包的发送。
如图3所示,本发明实施例二提供的一种拥塞控制算法的改进方法具体包括如下:
S201、在当前传输轮次满足探测功能执行条件时,如果确定当前满足探测发包条件,则获取当前执行 时刻对应的当前窗口量。
示例性的,在当前传输轮次处于拥塞控制的起始状态模式、探测机制功能使能状态,且当前时刻为当 前传输轮次的起始时刻,又不存在网络传输的应用限制时,相当于满足了在拥塞控制的起始状态模式下启 动探测功能进行探测发包的条件,由此可以按照本步骤至下述S206给定的方法步骤开始执行探测发包操 作。
可以知道的是,本步骤首先进行了探测发包操作中所需当前窗口量的获取操作。所述当前窗口量具体 位置当前传输轮次在本步骤执行时刻对应的用于待发送数据包个数限定的窗口量,该当前窗口量可以在满 足窗口调整条件时通过相应的操作确定,也可以在当前传输轮次为网络传输的首个传输轮次时初始化设 定。
S202、从待发送数据队列中提取所述当前窗口量的待发送数据包,形成待发送数据包序列。
在本实施例中,所述待发送数据队列具体可理解为基于业务应用层的数据流形成的包含待发送至接收 方数据的数据缓存队列,数据流可以优选为业务应用中的视频帧流,待发送数据队列中可优选包括视频文 件的各视频帧。
本步骤首先可以从待发送数据队列中选定当前窗口量的待发送数据包,并通过选定出的各待发送数据 包形成待发送数据包序列。
S203、确定执行探测发包所需的当前探测包个数。
本实施例所采用的探测数据包组直接通过待发送数据包构成,由此可首先通过本步骤确定当前传输轮 次下执行探测发包时所需的当前探测包个数,所述当前探测包个数可认为是允许从待测数据包序列中选取 的作为探测数据包的数据包个数。
具体的,当前探测包个数的确定应该通过当前的网络传输状态来决定,而当前的网络传输状态可以通 过往返传播时延、接收方所允许的接收窗口量以及当前已发数据包量来体现。因此,本步骤可以根据网络 传输在当前执行时刻的往返传播时延、接收方接收数据包所允许的接收窗口量、当前传输轮次下已发送数 据包的数量及初始设定的窗口量来确定。
示例性地,图3a给出了本发明实施例二所提供拥塞控制算法的改进方法中探测包个数确定的一种实 现流程图,如图3a所示,本实施例进一步将确定执行探测发包所需的当前探测包个数具体化为:
S2031、获取当前执行时刻对应的第一当前最小RTT、当前通告窗口量以及当前已发包数。
需要说明的是,本实施例中所采用的当前执行时刻可认为是相应步骤启动执行的时刻,而对于随时间 而相应变化的信息在不同执行时刻可能具备的值也不相同。同时,在网络传输拥塞控制的执行过程中,可 以获取到每个时刻所对应的最小RTT,本实施例将执行本步骤是在当前执行时刻对应的最小RTT记为第 一当前最小RTT。还可以获取到接收方所允许的接收窗口量,本实施将当前执行时刻所获取的接收窗口量 记为当前通告窗口量。此外,本实施例还可以实时计算出当前传输轮次中在当前执行时刻已发送数据包的 已发数据包个数,本实施例记为当前已发包数。
S2032、如果所述第一当前最小RTT大于或等于第一设定阈值且确定所述当前通告窗口量或当前已发 包数满足第一执行条件,则将所设定初始窗口量的一半作为所述当前探测包个数;否则,将所述初始窗口 量作为所述当前探测包个数。
本实施例可以上述确定的第一当前最小RTT与预先给定的一个第一设定阈值进行比对,同时还进行 当前通告窗口量或当前已发包数与预先设定第一执行条件的判定,然后通过不同比对结果或判定结果对应 的操作来实现当前探测包个数的确定。
在本实施例中,可优选所述第一执行条件包括:所述当前通告窗口量小于或等于所述初始窗口量的第 一倍数值,或者,当前已发包数小于或等于所述初始窗口量的第二倍数值;且所述第一倍数值大于所述第 二倍数值。其中,所述初始窗口量相当于一个窗口量的初始化值,可认为是进入当前传输轮次后对应的首 个当前窗口量。
其中,本步骤可以将所述第一设定阈值优选为400ms,将所述第一倍数值优选为3倍,将所述第二倍 数值优选为2倍。
S204、确定执行探测发包所需的当前探测速率。
本实施例进行探测发包时,除了需要确定当前探测包个数外,还需要进行当前探测速率的确定,本实 施例可以通过本步骤实现当前探测速率的确定。所述当前探测速率可认为是向接收方发送进行探测数据包 组中各探测数据包时所具备的发送速率。
具体的,该当前探测速率可以结合当前传输轮次下所进行探测发包的首次或非首次判定,以及结合下 当前传输轮次下对应的数据包发送速率(本实施例记为当前数据包发送速率)来实现。如,可以在本次为 首次探测发包时,采用直接给出一个初始速率的形式确定当前探测速率,也可以本次为非首次探测发包时, 采用前一次拥塞控制中对应该当前传输轮次确定的数据包发送速率来确定。
示例性地,图3b给出了本发明实施例二所提供拥塞控制算法的改进方法中探测速率确定的一种实现 流程图,如图3b所示,本实施例进一步将确定执行探测发包所需的当前探测速率具体化为:
可以知道的是,本实施例通过下述步骤实现了当前首次满足给定的探测发包条件时当前探测速率的确 定。
S2041、如果当前为首次满足探测发包条件,则获取当前执行时刻所对应第二当前最小RTT。
示例性的,本实施例首先通过本步骤在确定当前传输轮次为首次满足探测发包条件后,进行本步骤执 行时刻所对应最小RTT的获取,本实施例记该最小RTT为第二当前最小RTT。
S2042、判定第二当前最小RTT是否大于或等于第二设定阈值,若是,则执行S2043;若否,则执行 S2044。
本实施例在该种探测速率的确定方式下同样考虑当前的网络传输状态对探测速率的影响,由此通过本 步骤进行第二当前最小RTT与预先所给定第二设定阈值的比对,且不同的比对结果可以执行不同的确定 操作,其中,所述第二设定阈值优选为384ms。
S2043、将给定的基准速率作为初始的探测发包所需的当前探测速率。
本步骤可以在上述判定第二当前最小RTT大于或等于第二设定阈值(如384ms)时执行,具体可直 接将给定的基准速率作为初始的探测发包所需的当前探测速率。
其中,所述基准速率优选为1Mbps带宽所对应的速率,且将1Mbps带宽转换为速率的公式可描述为: first_probe_bw=BW_UNIT/1000/12,其中,first_probe_bw为初始的当前探测速率,BW_UNIT为带宽转换 为速率的一个常量值,本实施例记为字节速率转换常量。需要知道的是,本实施例中提及的各种速率的单 位均为pkt/us。
S2044、将所述当前探测包个数与所给定字节速率转换常量相乘后与所述第二当前最小RTT的商作为 初始的探测发包所需的当前探测速率。
本步骤可以在上述判定第二当前最小RTT大于或等于第二设定阈值(如384ms)时执行,且本步骤 的具体执行实现可通过一个公式表示,first_probe_bw=pt_length*BW_UNIT/min_rtt_us,其中, first_probe_bw同样表示初始的当前探测速率,pt_length表示当前探测包个数,BW_UNIT同样为字节速 率转换常量;min_rtt_us表示第二当前最小RTT。
此外,本实施例还通过下述步骤实现了当前为非首次满足给定的探测发包条件时当前探测速率的确定 过程。
具体的地,图3c给出了本发明实施例二所提供拥塞控制算法的改进方法中探测速率确定的另一种实 现流程图,如图3c所示,本实施例进一步将确定执行探测发包所需的当前探测速率具体化为:
S2401、如果当前为非首次满足探测发包条件,则获取在上一传输轮次中确定的当前数据包发送速率。
示例性的,本实施例首先通过本步骤在确定当前传输轮次为非首次满足探测发包条件(即相当于已经 在之前的传输轮次中也进行过探测发包操作)后,直接获取在上一传输轮次中确定的当前数据包发送速率。
可以理解的是,根据拥塞控制过程的执行原理,可知用于下一传输轮次的数据包发送速率需要在当前 的传输轮次下确定,因此,当前传输轮次下所具备的当前数据包发送速率可以在上一传输轮次下确定,本 步骤可以直接获取到该当前数据包传输速率。
S2402、根据所述当前数据包发送速率与所设定最高速率阈值的比对结果,确定执行探测发包所需的 当前探测速率。
本实施例的目的在于采用高于当前数据包发送速率的速率进行一小部分数据包的发送,以实现对网络 带宽的探测。因此,本实施例待确定的当前探测速率应当高于当前数据包发送速率。而当前探测速率的具 体设定则可根据当前数据包发送速率与一个预先所设定最高速率阈值的比对结果来相应确定。
示例性的,本实施例进一步将根据所述当前数据包发送速率与所设定最高速率阈值的比对结果,确定 执行探测发包所需的当前探测速率具体化为:
如果所述当前数据包发送速率小于所设定最高速率阈值的一半,则将所述当前数据包发送速率的第三 倍数值作为探测发包所需的当前探测速率;
如果所述当前数据包发送速率大于或等于最高速率阈值的一半且小于或等于所述最高速率阈值,则将 所述当前数据包发送速率的第四倍数值作为探测发包所需的当前探测速率;
如果所述当前数据包发送速率大于所述最高速率阈值,则将所述当前数据包发送速率的第五倍数值作 为探测发包所需的当前探测速率;
其中,所述第四倍数值大于所述第五倍数值且小于所述第三倍数值。
本实施例上述给出了基于当前数据包发送速率与最高速率阈值的大小比对结果的不同,进行当前探测 速率设定的不同操作。具体的,上述操作中的最高速率阈值可由选为12Mbps的带宽对应的速率,第三倍 数值优选为5倍,第四倍数值优选为2倍,第五倍数值优选为1.25倍。
此外,本实施例上述过程可通过一个公式表示:
其中,probe_rate表示当前探测速率,pacing_rate表示当前数据包发送速率,rate_high表示最高速率 阈值。
需要知道的是,探测机制功能可以在处于使能状态时自动进行向失能状态的转换,其转换条件可以为 监测到当前带宽大于了所给定的基准带宽,该基准带宽可由选为BW_UNIT与1000的商;转换条件还可 以是所确定出的数据包发送速率大于了3倍的最高速率阈值。
S205、从所述待发送数据包序列的首位开始,顺序选定所述当前探测包个数的待发送数据包作为探测 数据包并构成探测数据包组。
本实施例上述确定了当前探测数据包个数以及当前探测速率后,可以通过本步骤的执行来实现探测数 据包的挑选并形成探测数据包组。
具体的,上述形成的待发送数据包序列默认按数据流的时间顺序排列,本步骤可以从待发送数据包序 列中的首位开始,依次选定当前探测包个数的待发送数据包作为探测数据包,以此来构成探测数据包组。
S206、采用所述当前探测速率进行各所述探测数据包的发送。
S207、在满足探测收包条件时,对所述探测数据包组进行探测收包操作,并在监测到完成探测收包后, 确定所述探测数据包组的当前接收速率。
S208、根据所述当前接收速率确定下一传输轮次中数据包发送所需的下一数据包发送速率。
可以知道的是,上述操作执行后确定其执行时刻进入新的传输轮次,且传输轮次满足探测功能执行条 件时,可以进行本实施例上述所提供方法的循环。需要知道的是,探测功能执行条件中的探测机制功能可 以在处于使能状态时自动进行向失能状态转换,其转换条件可以为监测到当前带宽大于了所给定的基准带 宽,该基准带宽可由选为BW_UNIT与1000的商;转换条件还可以是所确定出的数据包发送速率大于了 3倍的最高速率阈值。
本发明实施例二提供的一种拥塞控制算法的改进方法,给出了探测发包操作的具体实现过程,从而在 满足探测发包条件后,能够通过确定探测包个数、探测速率来选定探测数据包组并使得进行探测包组中各 探测数据包以探测速率发送至接收方。利用该方法,实现了对拥塞控制算法中起始状态模式下的控制改进, 具体从待发送数据包中确定较小的探测数据包组,通过探测数据包组短时变快发包速率来实现网络带宽探 测的优化,并从而对拥塞控制中数据包发送速率进行有效更新,使得拥塞控制在起始状态模式下能够更快、 更准确探测到网络的最大可用带宽,进而提升网络传输中拥塞控制在初始阶段的吞吐率;同时,本实施例 所提供改进后方法具备更广泛的实用性。
作为本实施例二的第一可选实施例中,本第一可选实施例进一步在确定执行探测发包所需的当前探测 速率之后还优化包括了:确定用于探测发包结束限定的当前探测定时时长。
本实施例上述所进行的探测发包具备探测发包结束的条件,对探测发包时间的监控,进行探测发包时 长与一个定时时长的比对为其中一种判定探测发包是否结束的方式,为能够采用该种方式进行判定,本实 施例优选在确定出当前探测速率之后进行该定时时长的确定,本实施例将该定时时长记为当前探测定时时 长。
示例性的,该当前探测定时时长可以通过探测数据包组所包括探测数据包的个数以及当前探测速率进 行预估。
具体的,作为上述第一可选实施例的进一步优化,所述确定用于探测发包结束限定的当前探测定时时 长可以包括下述步骤:通过所述当前探测包个数,预估探测发包所需的总预估时长;将所述总预估时长与 所述当前探测速率的商作为用于探测发包结束限定的当前探测定时时长。
本实施例所设定的当前探测定时时长可以有效的对探测发包的执行进行时间上的强制限定,以保证本 实施例所提供方法有效性。
作为本实施例二的第二可选实施例,本第二可选实施例进一步在确定当前满足探测发包条件后,还优 化包括了:将探测发包标志位赋值为设定的第一标识值,进行探测发包的起始参数信息记录;其中,所述 起始参数信息包括:探测发包的发包起始时间和探测发包基数;所述探测发包基数为当前首个待发送数据 对应的数据包号。
本第二可选实施例具体给出了满足探测发包条件后探测发包阶段所要进行的其他一些操作,如,需要 将探测发包标志为置为第一标识值,该第一标识值优选为1;需要进行探测发包起始参数信息的记录,如 记录探测发包起始时的起始时间,以及探测发包基数。
可以知道的是,整个网络传输中所发送数据包均具备相应的序号,而该序号是从一个数据包开始累加 的,当前传输轮次下所发送的首个数据包之前可能存在已发送的其他数据包,本实施例可以对该当前传输 轮次下发生的首个数据包对应的数据包号进行记录。
在上述优化的基础上,本实施例还优化包括了:如果所述探测发包标志位为所述第一标识值且所获取 当前发包数与所述探测发包基数的差值大于或等于探测包个数,则确定探测发包操作结束;或者,如果所 述探测发包标志位为所述第一标识值且探测发包的持续时长达到预确定的当前探测定时时长,则确定探测 发包操作结束;其中,所述当前发包数为当前执行时刻所发送数据包对应的数据包号。
在本实施例中,进行上述第二可选实施例的优选后,可以采用上述所记录的信息进行探测发包结束事 件的监控。如,探测发包标志位为第一标识值相当于限定对探测发包结束的监控在标志位为第一标识值时 才进行,在当前传输轮次下,数据包持续向接收方发送,本实施例可以获取到本步骤执行时刻所对应发送 给接收方的最新数据包的数据包号,并记为当前发包数。
具体的,本可选实施例可以在当前发包数与上述所记录探测发包基数的差如果大于或等于了上述确定 的探测包个数,就可认为达到了探测发包的结束条件;或者,直接通过上述可选实施例所确定当前探测定 时时长与探测发包持续时间的比对结果来判定发包是否结束。
作为上述第二可选实施例的进一步优化,本优化实施例进一步在确定探测发包操作结束之后还优化包 括了:将所述探测发包标志位赋值为设定的第二标识值,并进行探测发包的发包结束时间记录;采用预获 取的当前数据包发送速率发送所述待发送数据包序列中的非探测数据包。
本第二可选实施例具体给出了满足探测发包结束条件后所要进行的其他一些操作,如将探测发包标志 位置为第二标识值,该第二标识值优选为0,表示结束了当前传输轮次下的探测发包。又如进行发包结束 时间的记录。
此外,当前传输轮次下选定出的当前窗口量的待发送数据包可能还未完全完成发送,由此本实施例可 以采用预先获取的当前数据包发送速率继续对探测数据包组以外的其他非探测数据包进行发送。
实施例三
图4给出了本发明实施例三提供的一种拥塞控制算法的改进方法的流程示意图,本实施例以上述实施 例一或实施例二为基础进行优化,在本实施例中,在对所述探测数据包组进行的探测收包操作之前还优化 包括了:将探测收包标志位赋值为设定的第三标识值,将探测数据包的收包个数以及丢包个数分别赋值为 0,以及记录探测收包的探测收包起始时间戳。
同时,本实施例进一步将对所述探测数据包组进行探测收包操作具体化为接收到所述探测数据包组中 探测数据包对应的确认数据包,进行所述收包个数累加;监测到所述探测数据包组中探测数据包的丢包事 件,进行所述丢包个数累加。
此外,本实施例将监测到完成探测收包具体化为当所述探测收包标志位为所述第三标识值,且对当前 执行时刻所对应收包个数及丢包个数的判定满足第二执行条件时,确定当前结束探测收包操作,并将所述 探测收包标志位赋值为设定的第四标识值;其中,所述第二执行条件包括:当前执行时刻所对应收包个数 与丢包个数之和大于或等于所述探测数据包组中所包含探测数据包数量的第六倍数值。
进一步地,本实施例将确定所述探测数据包组的当前接收速率具体化为将探测收包操作结束时对应的 收包个数作为探测收包个数;如果所述探测收包个数大于或等于设定的收包有效值,则获取预先记录的探 测起始时间戳;将当前执行时刻与所述探测起始时间戳的时间差确定为探测收包时长;确定所给定字节速 率转换常量与探测收包个数的第一乘积,并将所述第一乘积与所述探测收包时长的商作为所述探测数据包 组的当前接收速率。
进一步地,本实施例将根据所述当前接收速率确定下一传输轮次对应的下一数据包发送速率具体化为 获取当前执行时刻的即时带宽,并确定所述即时带宽转换后对应的即时速率;选定所述当前接收速率与所 述即时速率中的最大值作为下一传输轮次中数据包发送所需的下一数据包发送速率。
如图4所示,本实施例三提供的一种拥塞控制算法的改进方法,具体包括如下:
S301、在当前传输轮次满足探测功能执行条件时,如果确定当前满足探测发包条件,则基于所获取当 前窗口量的待发送数据包形成探测数据包组并采用确定的当前探测速率进行探测发包。
本步骤主要实现了当前传输轮次下的探测发包,下述S302至S310给出了满足探测收包条件后进行探 测收包,以及完成探测收包操作后进行当前接收速率确定的具体实现。
S302、在满足探测收包条件时,将探测收包标志位赋值为设定的第三标识值,将探测数据包的收包个 数以及丢包个数分别赋值为0,以及记录探测收包的探测收包起始时间戳。
本步骤为探测收包条件满足后的进行信息设置,、记录以及初始化等操作,具体进行了探测收包标志 位的赋值,第三标识值优选为1,还进行了探测数据包所对应收包个数以及丢包个数的初始化,以及探测 收包起始时间戳的记录。
S303、接收到所述探测数据包组中探测数据包对应的确认数据包,进行所述收包个数累加。
本实施例为探测收包过程中的一个执行步骤,主要实现对探测数据包所对应收包个数的累加。
S304、监测到所述探测数据包组中探测数据包的丢包事件,进行所述丢包个数累加。
本实施例为探测收包过程中的一个执行步骤,主要实现对探测数据包所对应丢包个数的累加。
可以看出,在未达到探测收包结束条件之前,可持续进行上述S303以及S304的操作。
S305、确定所述探测收包标志位为所述第三标识值时,对当前执行时刻所对应收包个数及丢包个数的 判定是否满足第二执行条件,若是,则执行S306;若否,则返回分别执行S303和S304。
本步骤为探测收包结束条件的判定,该判定首先在探测收包标志位第三标识值时进行,且可进一步通 过确定当前执行时刻时所对应收包个数及丢包个数的与相应第二执行条件的比对来确定是否达到了探测 收包结束的条件,并可在收包个数及丢包个数未达到第二执行条件时认为不满足收包接收条件,从而返回 S303和S304分别进行收包以及丢包个数的累加;以及可在收包个数及丢包个数未达到第二执行条件时, 认为满足收包结束条件,由此进行S306的操作。
本实施例优选所述第二执行条件包括:当前执行时刻所对应收包个数与丢包个数之和大于或等于所述 探测数据包组中所包含探测数据包数量的第六倍数值。其中,所述探测数据包组中所包含的探测数据包数 量相当于上述实施例确定的探测包个数,所述第六倍数值可优选为4./5倍。
S306、确定当前结束探测收包操作,并将所述探测收包标志位赋值为设定的第四标识值。
本步骤为符合探测收包结束条件时的执行,可以在结束探测收包操作,并同时可以将探测收包标志位 赋值为设定的第四标识值,其中,第四标识值优选为0。
S307、将探测收包操作结束时对应的收包个数作为探测收包个数。
S308、如果所述探测收包个数大于或等于设定的收包有效值,则获取预先记录的探测起始时间戳。
在本实施例中,所述收包有效值可由选为收包个数的4/5倍或2/3倍等,所述探测起始时间戳为探测 收包操作起始时所对应的时间戳。
S309、将当前执行时刻与所述探测起始时间戳的时间差确定为探测收包时长。
在本实施例中,当前执行时刻为本步骤的执行时刻。同时需要说明的是,本实施例还可以确定出每个 探测数据包的平均接收时间间隔,该平均接收时间间隔相当于该探测收包时长与上述探测收包个数的商。 且本实施例优选为该平均接收时间间隔进行了上下限的设置,其中,上限为120ms,下限为0.33ms,当该 平均接收时间间隔不属于该上下限范围时,可认为当前传输轮次下的收包速率存在异常。
S310、确定所给定字节速率转换常量与探测收包个数的第一乘积,并将所述第一乘积与所述探测收包 时长的商作为所述探测数据包组的当前接收速率。
本步骤进行当前接收速率的确定实现可以通过一个公式表示:
bw=BW_UNIT*acked/probe_delta_time,其中,BW_UNIT同样为所给定字节速率转换常量,acked 为探测收包个数,probe_delta_time探测收包时长。
下述S311和S312给出了结合当前接收速率进行下一传输轮次中下一数据包发送速率确定的具体实 现。
S311、获取当前执行时刻的即时带宽,并确定所述即时带宽转换后对应的即时速率。
需要说明的是,在网络传输的拥塞控制过程中可以实时获取到网络带宽,本实施例将实时获取到的网 络带宽记为即时带宽,本步骤的执行时刻可以获取到相应的即时带宽。且本步骤可以通过所给定字节速率 转换常量对该即时带宽进行带宽速率的转换,由此获得当前时刻对应的即时速率。
S312、选定所述当前接收速率与所述即时速率中的最大值作为下一传输轮次中数据包发送所需的下一 数据包发送速率。
本步骤可以将当前接收速率与确定出的即时速率进行比较,从而选定二者中的最大值作为下一传输轮 次中所需的下一数据包发送速率。
本发明实施例三提供的一种拥塞控制算法的改进方法,给出了探测收包操作的具体实现过程,同时还 给出了下一数据包发送速率确定的具体实现。本实施例主要实现了对探测发包阶段所发送探测数据包的收 包监控,并通过收包情况确定了用于下一数据包发送速率确定的当前接收速率计算。利用该方法,使得 BBR拥塞控制算法在起始状态模式下能够基于探测数据包的收发情况进行数据包发送速率的确定,相比 现有方法中数据包发送速率的确定,能够实现对拥塞控制中数据包发送速率进行有效更新,并使得拥塞控 制在起始状态模式下能够更快、更准确探测到网络的最大可用带宽,进而提升网络传输中拥塞控制在初始 阶段的吞吐率;同时,本实施例所提供改进后方法具备更广泛的实用性。
作为本发明实施例三的第一可选实施例,本第一可选实施例可以在确定所述探测数据包组的当前接收 速率之后还优化包括:确定所述探测数据包组的置信接收速率,将所述置信接收速率作为新的当前接收速 率。
在本可选实施例中,具体给出了对上述所确定当前接收速率的精准性优化,该优化过程通过对当前接 收速率进行置信处理实现,且本实施例还可以将确定出的置信接收速率作为新的当前接收速率替代上述确 定出的当前接收速率。
具体的,该置信接收速率的确定可首先通过对上述确定的当前接收速率进行是否为首次获得的分析开 始,并根据分析结果采用所对应的置信处理方式进行置信接收速率的确定。如,分析结果为当前接收速率 为首次获得,就可以通过预先设定的接收速率当上下界限,以及预先给定的初始接收速率来进行当前接收 速率的置信处理;又如,分析结果为当前接收速率为非首次获得时,就可认为上一传输轮次中也进行了接 收速率的确定,本实施例记为上一接收速率,并可基于该上一接收速率与当前接收速率的大小比对,进行 当前接收速率的置信处理。
示例性地,图4a给出了本发明实施例三所提供拥塞控制算法的改进方法中置信接收速率确定的一种 实现流程图,如图4a所示,本实施例将确定所述探测数据包组的置信接收速率具体优化为:
本可选实施例的下述步骤给出了确定当前接收速率为首次获得时的置信接收速率实现方式。
S3120、如果所述当前接收速率为首次获得,则获取初始化的初始探测速率,并将所述初始探测速率 作为接收速率上限值。
本步骤进行接收速率上限值的确定,该接收速率上限值优选为网络传输拥塞控制执行时所初始化的初 始探测速率。
S3121、根据所述当前接收速率相对所述接收速率上限值及所设定接收速率下限值的比对结果,确定 中间接收速率。
本实施例同样给出了接收速率下限值,该接收速率下限值优选为一个给定带宽值对应的速率,且该给 定带宽值可以为0.1Mbps。本步骤可以将当前接收速率与接收速率上限值及所设定接收速率下限值所形成 的接收速率范围进行比对,并可根据比对结果首先确定出一个中间接收速率。
进一步的,本第一可选实施例将根据所述当前接收速率相对所述接收速率上限值及所设定接收速率下 限值的比对结果,确定中间接收速率具体化为:如果所述当前接收速率大于所述接收速率上限值,则将所 述接收速率上限值作为中间接收速率;如果所述当前接收速率小于预设的接收速率下限值,则将所述接收 速率下限值作为所述中间接收速率。
S3122、获取所给定初始窗口对应的初始接收速率,选定所述中间接收速率与所述初始接收速率中的 最大值作为探测数据包组的置信接收速率。
在本可选实施例中,本实施例还可以为当前传输轮次下所给定的初始窗口进行初始接收速率的确定操 作,该确定操作可以在获取到所给定初始窗口时进行,本步骤可以获取到预先确定出的该初始接收速率, 之后可以将该初始接收速率与上述确定的中间接收速率进行比对,最终选出二者中的最大值作为当前接收 速率首次获得时对应的置信接收速率。
在本可选实施例中,进一步将所给定初始窗口对应的初始接收速率的确定步骤具体化为:
a1)如果所给定初始窗口不存在相应的接收速率,且当前执行时刻所接收确认数据包的个数小于所述 初始窗口的数量,则记录当前传输轮次开始时的轮次起始时间戳,并持续对所接收确认数据包的个数进行 累加。
具体的,所给定的初始窗口在还不存在相应的接收速率时,可以进一步判定本步骤执行时刻已接收到 的确认数据包的个数,并可以在确认数据包的个数小于所给定初始窗口的数量时,通过本步骤来启动初始 接收速率的确定操作。即,本步骤首先进行当前传输轮次开始时轮次起始时间戳的记录,并持续进行所接 收确认数据包的个数的累加操作。
b1)当所接收确认数据包的个数累加值大于或等于初始窗口数量的第七倍数值时,确定当前执行时刻 对应的当前时间戳。
本步骤可以将上述进行确定数据包个数累加后的个数累加值与所给定初始窗口的初始窗口数量的倍 数值进行比对,并在比对结果满足条件时进行本步骤执行时刻对应的当前时间戳的确定。其中,第七倍数 值可优选为4/5倍。
c1)确定所给定字节速率转换常量与所述个数累加值的第二乘积,以及所述当前时间戳与所述轮次起 始时间戳的时间差值。
d1)将所述第二乘积与所述时间差值的商确定为所给定初始窗口的初始接收速率。
本实施例中上述步骤相当于采用所接收确认包数的总个数与进行接收操作的接收时长进行来进行初 始接收速率的计算。
在本可选实施例中,给定了下述操作来描述当前接收速率为非首次获得时进行置信接收速率确定的过 程。
示例性地,图4b给出了本发明实施例三所提供拥塞控制算法的改进方法中置信接收速率确定的一种 实现流程图,如图4b所示,本实施例将确定所述探测数据包组的置信接收速率具体优化为:
S3210、如果所述当前接收速率为非首次获得,则获取上一传输轮次中确定的上一接收速率。
在本可选实施例中,可以通过本步骤在确定当前接收速率为非首次获得时直接进行上一传输轮次中上 一接收速率的获取操作。
S3211、判定所述当前接收速率是否大于或等于所述上一接收速率的第八倍数值,且小于或等于所述 上一接收速率的第九倍数值,若是,则执行S3212;若否,则执行S3213。
本步骤相当于一个当前接收速率与上一接收速率的大小比对判定操作,并给出了不同比对结果进行所 对应的置信接收速率应当执行的后续步骤。其中,所述第八倍数值优选为4/5倍;第九倍数值优选为1.5 倍。
S3212、将所述当前接收速率作为所述探测数据包组的置信接收速率。
本步骤为当前接收速率大于或等于所述上一接收速率的第八倍数值,且小于或等于所述上一接收速率 的第九倍数值时可执行的操作,满足该条件时可直接将上述确定的当前接收速率确定为置信接收速率。
S3213、根据对所述当前接收速率及所述上一接收速率的平滑处理,确定所述探测数据包组的置信接 收速率。
本实施例在不满足当前接收速率大于或等于所述上一接收速率的第八倍数值,且小于或等于所述上一 接收速率的第九倍数值时,需要通过本步骤进行置信接收速率的确定。其具体可通过基于当前接收速率与 上一接收速率的平滑处理,如,可以为当前接收速率以及上一接收速率分别赋予一个权重系数,然后将二 者与相应权重系数相乘后的和作为待确定的置信接收速率。其中,当前接收速率的权重系数可优选为1/4, 上一接收速率的权重系数可优选为3/4。
本实施例上述可选实施例为当前接收速率的置信处理,通过本置信处理操作后,可以保证当前接收速 率的精准化。
作为本实施例三的第二可选实施例,本第二可选实施例在确定所述探测数据包组的当前接收速率之 后,进一步优化增加了如果当前传输轮次下当前采用的当前窗口量小于预确定的当前目标窗口量,则更新 所述当前窗口量;
其中,所述当前窗口量初始为当前传输轮次下所给定初始窗口的数量。
本第二可选实施例同样为当前接收速率确定后在方法实现上的优化,其具体给出了对当前传输轮次下 的当前窗口量进行动态调控的实现。首先当前窗口量的调控需要满足的一个触发条件为当前传输轮次下当 前所采用的当前窗口量小于预先确定出的当前目标窗口量。所述当前目标窗口量为当前传输轮次下进行数 据包发送时所允许的数据包最大发送个数,该当前目标窗口量可以根据当前接收速率是否为首次获得的判 定,决定是在当前传输轮次中进行初始化设定,还是在当前传输轮次完成探测发包后基于上一接收速率确 定。
对于当前窗口量的更新,其在当前传输轮次还处于探测机制功能的使能处状态时,具体根据当前传输 轮次下的目标当前窗口量以及当前所存在未接收确认数据包的未接收个数进行更新探测收包阶段所确定 的当前接收速率来实现。
示例性地,图4c给出了本发明实施例三所提供拥塞控制算法的改进方法中当前窗口量更新的一种实 现流程图,如图4c所示,本可选实施例进一步将更新所述当前窗口量具体化为:
S3130、获取预确定的当前目标窗口量以及当前执行时刻所接收确认数据包的确认数量和未接收数据 包的未确认数量。
同样的,当前执行时刻为本步骤的执行时刻,所接收的确认数据包具体可以与探测发包结束后所发送 其他非探测数据包对应,确认数量可以从当前传输轮次下接收到首个确认数据包开始进行累加获得。未接 收数据包的未确认数量可认为是上述所选定当前窗口量的待发送数据包中未接收到相应确认数据包的数 量。
S3131、将所述当前目标窗口量与所述未确认数量的商作为当前窗口增量,并确定所述当前窗口增量 加1后与所述确认数量的第三乘积。
S3132、将当前传输轮次下当前采用的当前窗口量与所述第三乘积的和确定为当前传输轮次下新的当 前窗口量。
本实施例上述进行当前窗口量的确定可以采用一个公式表示:
cwnd=cwnd+(add_cwd+1)*acked1,其中,cwnd为当前窗口量;add_cwd为当前窗口增量,acked1 为确认数量。
本可选实施例还给出了上述所需当前目标窗口量确定的实现过程。
具体的,在上述第二可选实施例的基础上,本实施例进一步限定:如果所述当前接收速率为首次确定, 则所述当前目标窗口量为在当前传输轮次下完成所述当前接收速率确定之前确定的初始目标窗口量;
在本实施例中,在确认当前接收速率为首次确定时,当前目标窗口量相当于初始的初始目标窗口量设 定,且该初始目标窗口量的设定在当前接收速率确定之前进行。
示例性的,所述初始目标窗口量的确定过程包括:
a2)将当前采用的当前窗口量记为当前实际窗口量,并获取探测收包操作在当前执行时刻对应的当前 收包个数。
在本实施例中,可认为初始目标窗口量在进行探测收包的过程中未完成当前接收速率确定前进行,通 过上述描述可知探测收包操作中一直进行收包个数的累加,可以将本步骤执行时刻所对应的收包个数记为 当前收包个数。
b2)将所述当前收包个数的第十倍数值与所述当前实际窗口量的和确定为初始目标窗口量。
其中,所述第十倍数值优选为2。
本可选实施例下述给出了当前接收速率为非首次确定时对当前目标窗口量确定的具体实现。
示例性的,在上述第二可选实施例的基础上,本实施例进一步限定:如果所述当前接收速率为非首次 确定,则所述当前窗口量在探测发包结束之后通过上一传输轮次中获得的上一接收速率确定。
本可选实施例可以在当前接收速率为非首次确定时,认为上一传输轮次下也进行了探测数据包组所对 应接收速率的确定,本可选实施例可以将上一传输轮次下确定的接收速率记为上一接收速率,由此可在当 前传输轮次下的探测发包操作结束后,结合上一传输轮次获得上一接收速率,进行当前传输轮次所需当前 目标窗口量的确定。
由此,本可选实施例下述给出了在探测发包操作结束后根据上一传输轮次中获得的上一接收速率确定 所述当前目标窗口量的具体实现:
a3)获取上一传输轮次对应的上一接收速率,并基于所述上一接收速率确定中间窗口量。
在上述可选实施例中,可以将基于所述上一接收速率确定中间窗口量具体化为:获取当前执行时刻的 第三当前最小RTT;获得所述上一接收速率与所述第三当前最小RTT的第四乘积,将所述第四乘积与设 定常量值的商确定为所述中间窗口量;其中,所述设定常量值为所给定字节速率转换常量的第十三倍数值。
b3)确定所述中间窗口量是否为0,若是,则执行步骤c3);若否,则执行步骤d3)。
本实施例采用上述步骤a3)进行中间窗口量的确定时存在所确定结果为0的情况,此时相当于中间 窗口量的计算异常,可以通过步骤c3)的执行确定一个基准的下一目标窗口量。如果中间窗口量不为0, 则可以通过步骤d3)确定一个下一目标窗口量。
c3)将所述探测收包操作结束时所对应收包个数的第十一倍数值与当前所采用当前窗口量之和确定为 下一传输轮次对应的下一目标窗口量。
本实施例优选第十一倍数值为3倍。
d3)将所述探测收包操作结束时所对应收包个数的第十二倍数值与所述中间窗口量之和确定为下一传 输轮次对应的下一目标窗口量。
本可选实施例优选第十二倍数值为2倍,即所述第十一倍数值小于所述第十二倍数值。
本实施例上述提供的拥塞控制算法的改进方法,有效地提升了拥塞控制算法起始状态模式下的吞吐 率。为更好说明本实施例所提供方法的有效性,结合测试场景对本实施例所提供方法进行了验证,具体的, 图4d给出了现有拥塞控制算法在单个测试场景下的测试结果展示图;图4e给出了本实施例所提供拥塞控 制算法的改进方法在同一个测试场景下的测试结果展示图。
作为本实施例上述所提供改进方法的一个效果测试描述,首先考虑在单个测试场景下进行本实施例上 述所提供方法的验证,并同样给出了采用现有的BBR拥塞控制算法在单个测试场景下进行拥塞控制的测 试。而通过本实施例所提供方法在该当个测试场景下进行测试的测试结果如图4e所示;通过BBR拥塞控 制算法进行测试的测试结果如图4d所示。
在同样的最大可用带宽场景(相当于目标窗口量相同)下,截取两个拥塞控制方法在前5秒的运行曲 线进行分析,通过比对图4d和图4e,可以发现,采用本实施例所提供拥塞控制算法的改进方法后,可以 更快将数据包发送速率提升至最大可用带宽处,所花费时间大约为2.2秒,而图4d中采用原始BBR拥塞 控制算法进行数据包发送速率提升至最大可用带宽处的时间相对较慢,所花费时间大约为3秒。
相应的,通过图4d和图4e还可以发现,BBR拥塞控制算法在前3秒所取得的平均吞吐率(图4d中 显示的第一区域41)相比本实施例所提供方法在前3秒所取得的平均吞吐率(图4e中显示的第二区域42) 要低。
同时,本实施例还给出了在多个基准测试场景下对本实施例所提供方法进行验证的具体描述,其中, 图4f给出本实施例所提供拥塞控制算法的改进方法在多个基准测试场景下以RTT作为测试维度时的测试 效果展示图;图4g给出本实施例所提供拥塞控制算法的改进方法在多个基准测试场景下以带宽作为测试 维度时的测试效果展示图;图4h给出本实施例所提供拥塞控制算法的改进方法在多个基准测试场景下以 丢包率作为测试维度时的测试效果展示图;图4i给出本实施例所提供拥塞控制算法的改进方法在多个基 准测试场景下以缓存大小作为测试维度时的测试效果展示图。
可以知道的是,效果测试中还考虑了在多个测试场景下本实施例上述所提供方法的验证,多个测试场 景分别包括了分RTT维度(20ms~800ms)、带宽维度(0.1Mbps~100Mbps)、丢包率维度(0.1%~30%)以及缓 存大小维度(1/10BDP~10BPD)。
通过在上述四个维度变化场景下对本实施例所提供拥塞控制算法的改进方法及原始的BBP拥塞控制 算法的多次实验,本实施例所提供方法相比原始的BBP拥塞控制算法,其在上述四个维度下的有效吞吐 和整个生命周期中的吞吐率提升比例分别如图4f至图4i所示。
可以看出,本实施例所提供方法在RTT维度下的有效吞吐最高接近15%,整个生命周期中的吞吐率 提升比例最高也能达到13%;其在带宽维度下的有效吞吐最高可达15%,整个生命周期中的吞吐率提升 比例最高也能接近10%;其在丢包率维度下的有效吞吐最高接近30%,整个生命周期中的吞吐率提升比 例最高也能达到20%;其在缓存大小维度下的有效吞吐最高接近8.5%,整个生命周期中的吞吐率提升比 例最高也能接近3%。
上述测试效果的描述也更好的说明了本实施例所提供的拥塞控制算法的改进方法在起始状态模式下 能够更快、更准确探测到网络的最大可用带宽,进而提升网络传输中拥塞控制在初始阶段的吞吐率;同时, 本实施例所提供改进后方法具备更广泛的实用性。
实施例四
图5给出了本发明实施例四提供的一种拥塞控制算法的改进装置的结构框图,该装置适用于对网络传 输中的带宽进行拥塞控制的情况,该装置存在于可以由软件和/或硬件实现。如图5所示,该装置包括: 探测发包模块61、探测收包模块62以及信息确定模块63。
其中,探测发包模块61,用于在当前传输轮次满足探测功能执行条件时,如果确定当前满足探测发 包条件,则基于所获取当前窗口量的待发送数据包形成探测数据包组并采用确定的当前探测速率进行探测 发包;
探测收包模块62,用于在满足探测收包条件时,对所述探测数据包组进行探测收包操作,并在监测 到完成探测收包后,确定所述探测数据包组的当前接收速率;
信息确定模块63,用于根据所述当前接收速率确定下一传输轮次中数据包发送所需的下一数据包发 送速率。
其中,所述探测功能执行条件为当前传输轮次处于拥塞控制的起始状态模式且所设定探测机制功能处 于使能状态。
本实施例四提供的一种拥塞控制算法的改进装置,相比于现有的拥塞控制算法的执行装置相比,主要 对拥塞控制的起始状态模式进行了改进,具体从待发送数据包中确定较小的探测数据包组,通过探测数据 包组短时变快发包速率来实现网络带宽探测的优化,并从而对拥塞控制中数据包发送速率进行有效更新, 使得拥塞控制在起始状态模式下能够更快、更准确探测到网络的最大可用带宽,进而提升网络传输中拥塞 控制在初始阶段的吞吐率;同时,本实施例所提供改进后方法具备更广泛的实用性。
实施例五
图6给出了本发明实施例五提供的一种计算机设备的硬件结构示意图,具体地,该计算机设备可以包 括:处理器和存储装置。存储装置中存储有至少一条指令,且指令由所述处理器执行,使得所述计算机设 备执行如上述方法实施例所述的拥塞控制算法的改进方法。
参照图6,该计算机设备具体可以包括:处理器70、存储装置71、显示屏72、输入装置73、输出装 置74以及通信装置75。该计算机设备中处理器70的数量可以是一个或者多个,图6中以一个处理器70 为例。该计算机设备中存储装置71的数量可以是一个或者多个,图6中以一个存储装置71为例。该计算 机设备的处理器70、存储装置71、显示屏72、输入装置73、输出装置74以及通信装置75可以通过总线 或者其他方式连接,图6中以通过总线连接为例。
具体的,实施例中,处理器70执行存储装置71中存储的一个或多个程序时,可以实现如下操作:在 当前传输轮次满足探测功能执行条件时,如果确定当前满足探测发包条件,则基于所获取当前窗口量的待 发送数据包形成探测数据包组并采用确定的当前探测速率进行探测发包;在满足探测收包条件时,对所述 探测数据包组进行探测收包操作,并在监测到完成探测收包后,确定所述探测数据包组的当前接收速率; 根据所述当前接收速率确定下一传输轮次中数据包发送所需的下一数据包发送速率。
本发明实施例还提供一种计算机可读存储介质,所述存储介质中的程序由计算机设备的处理器执行 时,使得计算机设备能够执行如上述实施例所述的拥塞控制算法的改进方法。示例性的,上述实施例所述 的拥塞控制算法的改进方法包括:在当前传输轮次满足探测功能执行条件时,如果确定当前满足探测发包 条件,则基于所获取当前窗口量的待发送数据包形成探测数据包组并采用确定的当前探测速率进行探测发 包;在满足探测收包条件时,对所述探测数据包组进行探测收包操作,并在监测到完成探测收包后,确定 所述探测数据包组的当前接收速率;根据所述当前接收速率确定下一传输轮次中数据包发送所需的下一数 据包发送速率。
需要说明的是,对于装置、计算机设备、存储介质实施例而言,由于其与方法实施例基本相似,所以 描述的比较简单,相关之处参见方法实施例的部分说明即可。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的 通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本 发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件 产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随 机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使 得一台计算机设备(可以是机器人,个人计算机,服务器,或者网络设备等)执行本发明任意实施例所述 的拥塞控制算法的改进方法。
值得注意的是,上述将一种拥塞控制算法的改进装置中,所包括的各个单元和模块只是按照功能逻辑 进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也 只是为了便于相互区分,并不用于限制本发明的保护范围。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个 步骤或方法可以用存储在存储器中且由合适的指令执行装置执行的软件或固件来实现。例如,如果用硬件 来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用 于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路, 可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里 所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明 的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实 施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要 求范围决定。
Claims (33)
1.一种拥塞控制算法的改进方法,其特征在于,包括:
在当前传输轮次满足探测功能执行条件时,如果确定当前满足探测发包条件,则基于所获取当前窗口量的待发送数据包形成探测数据包组并采用确定的当前探测速率进行探测发包;
在满足探测收包条件时,对所述探测数据包组进行探测收包操作,并在监测到完成探测收包后,确定所述探测数据包组的当前接收速率;
根据所述当前接收速率确定下一传输轮次中数据包发送所需的下一数据包发送速率;
其中,所述探测功能执行条件为当前传输轮次处于拥塞控制的起始状态模式且所设定探测机制功能处于使能状态。
2.根据权利要求1所述的方法,其特征在于,
所述探测发包条件包括:当前处于所述当前传输轮次的起始时刻且当前不存在网络传输的应用限制。
3.根据权利要求1所述的方法,其特征在于,所述基于所获取当前窗口量的待发送数据包形成探测数据包组并采用确定的当前探测速率进行探测发包,包括:
获取当前执行时刻对应的当前窗口量,并从待发送数据队列中提取所述当前窗口量的待发送数据包,形成待发送数据包序列;
确定执行探测发包所需的当前探测包个数,并确定执行探测发包所需的当前探测速率;
从所述待发送数据包序列的首位开始,顺序选定所述当前探测包个数的待发送数据包作为探测数据包并构成探测数据包组;
采用所述当前探测速率进行各所述探测数据包的发送。
4.根据权利要求3所述的方法,其特征在于,所述确定执行探测发包所需的当前探测包个数,包括:
获取当前执行时刻对应的第一当前最小往返时延RTT、当前通告窗口量以及当前已发包数;
如果所述第一当前最小RTT大于或等于第一设定阈值且确定所述当前通告窗口量或当前已发包数满足第一执行条件,则将所设定初始窗口量的一半作为所述当前探测包个数;否则,将所述初始窗口量作为所述当前探测包个数;
所述第一执行条件包括:所述当前通告窗口量小于或等于所述初始窗口量的第一倍数值,或者,当前已发包数小于或等于所述初始窗口量的第二倍数值;
其中,所述第一倍数值大于所述第二倍数值。
5.根据权利要求3所述的方法,其特征在于,所述确定执行探测发包所需的当前探测速率,包括:
如果当前为首次满足探测发包条件,则获取当前执行时刻所对应第二当前最小RTT;
如果所述第二当前最小RTT大于或等于第二设定阈值,则将给定的基准速率作为初始的探测发包所需的当前探测速率;否则,
将所述当前探测包个数与所给定字节速率转换常量相乘后与所述第二当前最小RTT的商作为初始的探测发包所需的当前探测速率。
6.根据权利要求3所述的方法,其特征在于,所述确定执行探测发包所需的当前探测速率,包括:
如果当前为非首次满足探测发包条件,则获取在上一传输轮次中确定的当前数据包发送速率;
根据所述当前数据包发送速率与所设定最高速率阈值的比对结果,确定执行探测发包所需的当前探测速率。
7.根据权利要求6所述的方法,其特征在于,所述根据所述当前数据包发送速率与所设定最高速率阈值的比对结果,确定执行探测发包所需的当前探测速率,包括:
如果所述当前数据包发送速率小于所设定最高速率阈值的一半,则将所述当前数据包发送速率的第三倍数值作为探测发包所需的当前探测速率;
如果所述当前数据包发送速率大于或等于最高速率阈值的一半且小于或等于所述最高速率阈值,则将所述当前数据包发送速率的第四倍数值作为探测发包所需的当前探测速率;
如果所述当前数据包发送速率大于所述最高速率阈值,则将所述当前数据包发送速率的第五倍数值作为探测发包所需的当前探测速率;
其中,所述第四倍数值大于所述第五倍数值且小于所述第三倍数值。
8.根据权利要求3所述的方法,其特征在于,在所述确定执行探测发包所需的当前探测速率之后,还包括:
确定用于探测发包结束限定的当前探测定时时长。
9.根据权利要求8所述的方法,其特征在于,所述确定用于探测发包结束限定的当前探测定时时长,包括:
通过所述当前探测包个数,预估探测发包所需的总预估时长;
将所述总预估时长与所述当前探测速率的商作为用于探测发包结束限定的当前探测定时时长。
10.根据权利要求3-9任一项所述的方法,其特征在于,在确定当前满足探测发包条件后,还包括:
将探测发包标志位赋值为设定的第一标识值,进行探测发包的起始参数信息记录;
其中,所述起始参数信息包括:探测发包的发包起始时间和探测发包基数;所述探测发包基数为当前首个待发送数据对应的数据包号。
11.根据权利要求10所述的方法,其特征在于,还包括:
如果所述探测发包标志位为所述第一标识值且所获取当前发包数与所述探测发包基数的差值大于或等于探测包个数,则确定探测发包操作结束;或者,
如果所述探测发包标志位为所述第一标识值且探测发包的持续时长达到预确定的当前探测定时时长,则确定探测发包操作结束;
其中,所述当前发包数为当前执行时刻所发送数据包对应的数据包号。
12.根据权利要求11所述的方法,其特征在于,在所述确定探测发包操作结束之后,还包括:
将所述探测发包标志位赋值为设定的第二标识值,并进行探测发包的发包结束时间记录;
采用预获取的当前数据包发送速率发送所述待发送数据包序列中的非探测数据包。
13.根据权利要求1所述方法,其特征在于,
所述探测收包条件包括:当前所进行数据包发送操作的发送时刻大于或等于探测发包操作中的发包起始时间,且小于或等于所述探测发包操作中的发包结束时间。
14.根据权利要求1所述的方法,其特征在于,在对所述探测数据包组进行的探测收包操作之前,还包括:
将探测收包标志位赋值为设定的第三标识值,将探测数据包的收包个数以及丢包个数分别赋值为0,以及记录探测收包的探测收包起始时间戳。
15.根据权利要求14所述的方法,其特征在于,所述对所述探测数据包组进行探测收包操作包括:
接收到所述探测数据包组中探测数据包对应的确认数据包,进行所述收包个数累加;
监测到所述探测数据包组中探测数据包的丢包事件,进行所述丢包个数累加。
16.根据权利要求15所述的方法,其特征在于,所述监测到完成探测收包,包括:
当所述探测收包标志位为所述第三标识值,且对当前执行时刻所对应收包个数及丢包个数的判定满足第二执行条件时,确定当前结束探测收包操作,并将所述探测收包标志位赋值为设定的第四标识值;
其中,所述第二执行条件包括:当前执行时刻所对应收包个数与丢包个数之和大于或等于所述探测数据包组中所包含探测数据包数量的第六倍数值。
17.根据权利要求1、13-16任一项所述的方法,其特征在于,所述确定所述探测数据包组的当前接收速率,包括:
将探测收包操作结束时对应的收包个数作为探测收包个数;
如果所述探测收包个数大于或等于设定的收包有效值,则获取预先记录的探测起始时间戳;
将当前执行时刻与所述探测起始时间戳的时间差确定为探测收包时长;
确定所给定字节速率转换常量与探测收包个数的第一乘积,并将所述第一乘积与所述探测收包时长的商作为所述探测数据包组的当前接收速率。
18.根据权利要求1、13-16任一项所述的方法,其特征在于,在确定所述探测数据包组的当前接收速率之后,还包括:
确定所述探测数据包组的置信接收速率,将所述置信接收速率作为新的当前接收速率。
19.根据权利要求18所述的方法,其特征在于,确定所述探测数据包组的置信接收速率,包括:
如果所述当前接收速率为首次获得,则获取初始化的初始探测速率,并将所述初始探测速率作为接收速率上限值;
根据所述当前接收速率相对所述接收速率上限值及所设定接收速率下限值的比对结果,确定中间接收速率;
获取所给定初始窗口对应的初始接收速率,选定所述中间接收速率与所述初始接收速率中的最大值作为探测数据包组的置信接收速率。
20.根据权利要求19所述的方法,其特征在于,所述根据所述当前接收速率相对所述接收速率上限值及所设定接收速率下限值的比对结果,确定中间接收速率,包括:
如果所述当前接收速率大于所述接收速率上限值,则将所述接收速率上限值作为中间接收速率;
如果所述当前接收速率小于预设的接收速率下限值,则将所述接收速率下限值作为所述中间接收速率。
21.根据权利要求19所述的方法,其特征在于,所给定初始窗口对应的初始接收速率的确定步骤包括:
如果所给定初始窗口不存在相应的接收速率,且当前执行时刻所接收确认数据包的个数小于所述初始窗口的数量,则记录当前传输轮次开始时的轮次起始时间戳,并持续对所接收确认数据包的个数进行累加;
当所接收确认数据包的个数累加值大于或等于初始窗口数量的第七倍数值时,确定当前执行时刻对应的当前时间戳;
确定所给定字节速率转换常量与所述个数累加值的第二乘积,以及所述当前时间戳与所述轮次起始时间戳的时间差值;
将所述第二乘积与所述时间差值的商确定为所给定初始窗口的初始接收速率。
22.根据权利要求18所述的方法,其特征在于,确定所述探测数据包组的置信接收速率,包括:
如果所述当前接收速率为非首次获得,则获取上一传输轮次中确定的上一接收速率;
如果所述当前接收速率大于或等于所述上一接收速率的第八倍数值,且小于或等于所述上一接收速率的第九倍数值,则将所述当前接收速率作为所述探测数据包组的置信接收速率;否则,根据对所述当前接收速率及所述上一接收速率的平滑处理,确定所述探测数据包组的置信接收速率。
23.根据权利要求1、13-16任一项所述的方法,其特征在于,根据所述当前接收速率确定下一传输轮次中数据包发送所需的下一数据包发送速率,包括:
获取当前执行时刻的即时带宽,并确定所述即时带宽转换后对应的即时速率;
选定所述当前接收速率与所述即时速率中的最大值作为下一传输轮次中数据包发送所需的下一数据包发送速率。
24.根据权利要求1、13-16任一项所述的方法,其特征在于,在确定所述探测数据包组的当前接收速率之后,还包括:
如果当前传输轮次下当前采用的当前窗口量小于预确定的当前目标窗口量,则更新所述当前窗口量;
其中,所述当前窗口量初始为当前传输轮次下所给定初始窗口的数量。
25.根据权利要求24所述的方法,其特征在于,更新所述当前窗口量包括:
获取预确定的当前目标窗口量以及当前执行时刻所接收确认数据包的确认数量和未接收数据包的未确认数量;
将所述当前目标窗口量与所述未确认数量的商作为当前窗口增量,并确定所述当前窗口增量加1后与所述确认数量的第三乘积;
将当前传输轮次下当前采用的当前窗口量与所述第三乘积的和确定为当前传输轮次下新的当前窗口量。
26.根据权利要求24所述的方法,其特征在于,如果所述当前接收速率为首次确定,则所述当前目标窗口量为在当前传输轮次下完成所述当前接收速率确定之前确定的初始目标窗口量;
相应的,所述初始目标窗口量的确定过程包括:
将当前采用的当前窗口量记为当前实际窗口量,并获取探测收包操作在当前执行时刻对应的当前收包个数;
将所述当前收包个数的第十倍数值与所述当前实际窗口量的和确定为初始目标窗口量。
27.根据权利要求24所述的方法,其特征在于,如果所述当前接收速率为非首次确定,则所述当前窗口量在探测发包结束之后通过上一传输轮次中获得的上一接收速率确定。
28.根据权利要求27所述的方法,其特征在于,所述根据上一传输轮次中获得的上一接收速率确定所述当前目标窗口量的步骤包括:
获取上一传输轮次对应的上一接收速率,并基于所述上一接收速率确定中间窗口量;
如果所述中间窗口量为0,则将所述探测收包操作结束时所对应收包个数的第十一倍数值与当前所采用当前窗口量之和确定为下一传输轮次对应的下一目标窗口量;否则,
将所述探测收包操作结束时所对应收包个数的第十二倍数值与所述中间窗口量之和确定为下一传输轮次对应的下一目标窗口量;
其中,所述第十一倍数值小于所述第十二倍数值。
29.根据权利要求28所述的方法,其特征在于,基于所述上一接收速率确定中间窗口量,包括:
获取当前执行时刻的第三当前最小RTT;
获得所述上一接收速率与所述第三当前最小RTT的第四乘积,将所述第四乘积与设定常量值的商确定为所述中间窗口量;
其中,所述设定常量值为所给定字节速率转换常量的第十三倍数值。
30.根据权利要求1所述的方法,其特征在于,所述待发送数据包为待发送给接收方的视频帧数据,各所述视频帧数据构成待发送的视频文件。
31.一种拥塞控制算法的改进装置,其特征在于,包括:
探测发包模块,用于在当前传输轮次满足探测功能执行条件时,如果确定当前满足探测发包条件,则基于所获取当前窗口量的待发送数据包形成探测数据包组并采用确定的当前探测速率进行探测发包;
探测收包模块,用于在满足探测收包条件时,对所述探测数据包组进行探测收包操作,并在监测到完成探测收包后,确定所述探测数据包组的当前接收速率;
信息确定模块,用于根据所述当前接收速率确定下一传输轮次中数据包发送所需的下一数据包发送速率;
其中,所述探测功能执行条件为当前传输轮次处于拥塞控制的起始状态模式且所设定探测机制功能处于使能状态。
32.一种计算机设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-30任一项所述的拥塞控制算法的改进方法。
33.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-30任一项所述的拥塞控制算法的改进方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011538258.9A CN112653635A (zh) | 2020-12-23 | 2020-12-23 | 一种拥塞控制算法的改进方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011538258.9A CN112653635A (zh) | 2020-12-23 | 2020-12-23 | 一种拥塞控制算法的改进方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112653635A true CN112653635A (zh) | 2021-04-13 |
Family
ID=75359454
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011538258.9A Pending CN112653635A (zh) | 2020-12-23 | 2020-12-23 | 一种拥塞控制算法的改进方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112653635A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115022247A (zh) * | 2022-06-02 | 2022-09-06 | 成都卫士通信息产业股份有限公司 | 流控制传输方法、装置、设备及介质 |
CN115174429A (zh) * | 2022-05-25 | 2022-10-11 | 深信服科技股份有限公司 | 网络带宽检测方法、装置、系统、设备及存储介质 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060159098A1 (en) * | 2004-12-24 | 2006-07-20 | Munson Michelle C | Bulk data transfer |
US20070217448A1 (en) * | 2006-03-16 | 2007-09-20 | Microsoft Corporation | Estimating Available Bandwidth With Multiple Overloading Streams |
US20080037420A1 (en) * | 2003-10-08 | 2008-02-14 | Bob Tang | Immediate ready implementation of virtually congestion free guaranteed service capable network: external internet nextgentcp (square waveform) TCP friendly san |
US20140056136A1 (en) * | 2012-08-27 | 2014-02-27 | Akamai Technologies, Inc. | Preventing TCP from becoming too conservative too quickly |
EP2947821A1 (en) * | 2014-05-21 | 2015-11-25 | Huawei Technologies Co., Ltd. | Method for detecting network transmission status and related device |
CN105245399A (zh) * | 2015-09-08 | 2016-01-13 | 海南大学 | 一种端到端网络通信路径中瓶颈链路的度量方法 |
CN106789718A (zh) * | 2016-12-05 | 2017-05-31 | 广东神马搜索科技有限公司 | 数据传输的拥塞控制方法、设备、服务器及可编程设备 |
WO2017133014A1 (zh) * | 2016-02-06 | 2017-08-10 | 中国科学院计算技术研究所 | Tcp传输流中基于接收端的网络性能检测方法及系统 |
CN109428784A (zh) * | 2017-08-31 | 2019-03-05 | 腾讯科技(深圳)有限公司 | 网络探测方法及装置、计算机存储介质及设备 |
CN109873773A (zh) * | 2019-03-14 | 2019-06-11 | 宁波大学 | 一种用于数据中心的拥塞控制方法 |
WO2019158106A1 (zh) * | 2018-02-14 | 2019-08-22 | 华为技术有限公司 | 网络拥塞控制方法、装置和系统 |
CN110290428A (zh) * | 2019-06-26 | 2019-09-27 | 腾讯科技(深圳)有限公司 | 一种拥塞控制方法、装置、终端及存储介质 |
CN111726301A (zh) * | 2020-05-15 | 2020-09-29 | 北京理工大学 | 一种实时视频中保证视频质量的拥塞控制方法及系统 |
-
2020
- 2020-12-23 CN CN202011538258.9A patent/CN112653635A/zh active Pending
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080037420A1 (en) * | 2003-10-08 | 2008-02-14 | Bob Tang | Immediate ready implementation of virtually congestion free guaranteed service capable network: external internet nextgentcp (square waveform) TCP friendly san |
US20060159098A1 (en) * | 2004-12-24 | 2006-07-20 | Munson Michelle C | Bulk data transfer |
US20070217448A1 (en) * | 2006-03-16 | 2007-09-20 | Microsoft Corporation | Estimating Available Bandwidth With Multiple Overloading Streams |
US20140056136A1 (en) * | 2012-08-27 | 2014-02-27 | Akamai Technologies, Inc. | Preventing TCP from becoming too conservative too quickly |
EP2947821A1 (en) * | 2014-05-21 | 2015-11-25 | Huawei Technologies Co., Ltd. | Method for detecting network transmission status and related device |
CN105245399A (zh) * | 2015-09-08 | 2016-01-13 | 海南大学 | 一种端到端网络通信路径中瓶颈链路的度量方法 |
WO2017133014A1 (zh) * | 2016-02-06 | 2017-08-10 | 中国科学院计算技术研究所 | Tcp传输流中基于接收端的网络性能检测方法及系统 |
CN106789718A (zh) * | 2016-12-05 | 2017-05-31 | 广东神马搜索科技有限公司 | 数据传输的拥塞控制方法、设备、服务器及可编程设备 |
CN109428784A (zh) * | 2017-08-31 | 2019-03-05 | 腾讯科技(深圳)有限公司 | 网络探测方法及装置、计算机存储介质及设备 |
WO2019158106A1 (zh) * | 2018-02-14 | 2019-08-22 | 华为技术有限公司 | 网络拥塞控制方法、装置和系统 |
CN109873773A (zh) * | 2019-03-14 | 2019-06-11 | 宁波大学 | 一种用于数据中心的拥塞控制方法 |
CN110290428A (zh) * | 2019-06-26 | 2019-09-27 | 腾讯科技(深圳)有限公司 | 一种拥塞控制方法、装置、终端及存储介质 |
CN111726301A (zh) * | 2020-05-15 | 2020-09-29 | 北京理工大学 | 一种实时视频中保证视频质量的拥塞控制方法及系统 |
Non-Patent Citations (2)
Title |
---|
XIAOHUI NIE等: "Dynamic TCP Initial Windows and Congestion Control Schemes Through Reinforcement Learning", IEEE JOURNAL ON SELECTED AREAS IN COMMUNICATIONS ( VOLUME: 37, ISSUE: 6, JUNE 2019), 17 March 2019 (2019-03-17) * |
王倩;徐如志;杨峰;: "无线网络中基于自适应带宽估计的跨层拥塞控制算法", 山东大学学报(理学版), no. 11, 12 November 2011 (2011-11-12) * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115174429A (zh) * | 2022-05-25 | 2022-10-11 | 深信服科技股份有限公司 | 网络带宽检测方法、装置、系统、设备及存储介质 |
CN115174429B (zh) * | 2022-05-25 | 2024-04-09 | 深信服科技股份有限公司 | 网络带宽检测方法、装置、系统、设备及存储介质 |
CN115022247A (zh) * | 2022-06-02 | 2022-09-06 | 成都卫士通信息产业股份有限公司 | 流控制传输方法、装置、设备及介质 |
CN115022247B (zh) * | 2022-06-02 | 2023-10-20 | 成都卫士通信息产业股份有限公司 | 流控制传输方法、装置、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7843815B2 (en) | Estimation of time-varying latency based on network trace information | |
US6996064B2 (en) | System and method for determining network throughput speed and streaming utilization | |
JP4491257B2 (ja) | 終端間測定に基づくネットワークへのデータストリームの許容の制御 | |
JP4153321B2 (ja) | サービスの品質アウェアなハンドオフトリガ | |
EP1376951B1 (en) | Method and system for measuring load and capacity on a variable capacity channel | |
US10129123B2 (en) | Measurement apparatus, communications apparatus, and relay apparatus | |
CN106301684B (zh) | 一种媒体数据传输方法及装置 | |
CN110266551A (zh) | 一种带宽预测方法、装置、设备及存储介质 | |
KR102350504B1 (ko) | 통신 시스템에서 하향링크 전송률 제어를 위한 장치 및 방법 | |
US20050232227A1 (en) | Method and apparatus for characterizing an end-to-end path of a packet-based network | |
US9559927B2 (en) | Terminal, system and method for measuring network state using the same | |
WO2002087276A2 (en) | Method and device for robust real-time estimation of bottleneck bandwidth | |
CN112653635A (zh) | 一种拥塞控制算法的改进方法、装置、设备及存储介质 | |
US9510354B2 (en) | Method and a device for low intrusive fast estimation of the bandwidth available between two IP nodes | |
CN104618258B (zh) | 一种数据传输速率的控制方法 | |
JP6014932B2 (ja) | ネットワーク装置、性能制御方法及びネットワークシステム | |
US20130343190A1 (en) | Application-driven control of wireless networking settings | |
JP2005303927A (ja) | 情報処理システム、情報処理装置および方法、記録媒体、並びにプログラム | |
CN112737940A (zh) | 一种数据传输的方法和装置 | |
CN110290552B (zh) | 缓存深度的测量方法和装置、存储介质、电子装置 | |
US10680756B2 (en) | Packet classification apparatus, packet classification method and storage medium | |
CN104579582B (zh) | 一种基于通信网络的高质量语音传输方法 | |
JP2003037649A (ja) | コンテンツ配信完了時刻の推定方法及び記録媒体並びにプログラム | |
KR101210926B1 (ko) | 동적 라우팅 비용 할당 서버, 장치 및 방법 | |
CN113542215B (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 |