CN114726730B - 应用于cdn的拥塞控制方法、电子设备、介质及产品 - Google Patents
应用于cdn的拥塞控制方法、电子设备、介质及产品 Download PDFInfo
- Publication number
- CN114726730B CN114726730B CN202210137739.1A CN202210137739A CN114726730B CN 114726730 B CN114726730 B CN 114726730B CN 202210137739 A CN202210137739 A CN 202210137739A CN 114726730 B CN114726730 B CN 114726730B
- Authority
- CN
- China
- Prior art keywords
- key frame
- rate
- transmission rate
- ratio
- frame
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 81
- 230000005540 biological transmission Effects 0.000 claims abstract description 229
- 238000011897 real-time detection Methods 0.000 claims description 20
- 238000001514 detection method Methods 0.000 claims description 11
- 230000001105 regulatory effect Effects 0.000 claims description 10
- 230000000903 blocking effect Effects 0.000 abstract description 12
- 208000027744 congestion Diseases 0.000 description 123
- 239000000523 sample Substances 0.000 description 28
- 238000010586 diagram Methods 0.000 description 13
- 238000004422 calculation algorithm Methods 0.000 description 12
- 238000004891 communication Methods 0.000 description 9
- 238000004590 computer program Methods 0.000 description 9
- 238000012545 processing Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 238000011084 recovery Methods 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 230000002457 bidirectional effect Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000001276 controlling effect Effects 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 230000001351 cycling effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0896—Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/14—Network analysis or design
- H04L41/147—Network analysis or design for predicting network behaviour
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0876—Network utilisation, e.g. volume of load or congestion level
- H04L43/0894—Packet rate
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
-
- 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
Abstract
本公开实施例公开了一种应用于CDN的拥塞控制方法、电子设备、介质及产品,该方法获取待发送的关键帧的帧信息,所述帧信息包括与所述关键帧的发送速率相关的信息;基于所述关键帧的帧信息,确定未来时间段的预测发送速率;确定所述预测发送速率相对于实时探测带宽的比值;基于所述比值调整当前发送速率。该技术方案可以降低发送速率切换时引起的丢包、卡顿发生频次。
Description
技术领域
本公开实施例涉及通信技术领域,具体涉及一种应用于CDN(Content DeliveryNetwork,内容分发网络)的拥塞控制方法、电子设备、介质及产品。
背景技术
随着互联网的普及,越来越多的网络流量堆积在瓶颈链路上,拥有一个合理的拥塞控制算法来保护互联网不受持续过载的影响显得十分重要。CDN产业已是超千亿的市场规模,庞大的市场中流媒体服务持续高速发展,而流媒体类服务的终端消费侧是客户体验与服务质量,注重的是上层服务质量。但是,目前的拥塞控制算法都是针对四层网络中传输层的问题设计的算法,无论采取哪种拥塞控制算法都无关、也不关心上层应用的服务质量,故如何通过更高效的拥塞控制方法解决流媒体传输过程中的服务质量问题,是目前亟需攻克的技术难题。
发明内容
本公开实施例提供一种应用于CDN的拥塞控制方法、电子设备、介质及产品。
第一方面,本公开实施例中提供了一种应用于内容分发网络CDN的拥塞控制法,其中,包括:
获取待发送的关键帧的帧信息,所述帧信息包括与所述关键帧的发送速率相关的信息;
基于所述关键帧的帧信息,确定未来时间段的预测发送速率;
确定所述预测发送速率相对于实时探测带宽的比值;
基于所述比值调整当前发送速率。
第二方面,本公开实施例中提供了一种拥塞控制方法。
具体的,所述拥塞控制方法,包括:
获取待发送的关键帧的帧信息,所述帧信息包括与所述关键帧的发送速率相关的信息;
基于所述关键帧的帧信息,确定未来时间段的预测发送速率;
确定所述预测发送速率相对于实时探测带宽的比值;
基于所述比值调整当前发送速率。
结合第二方面,本公开在第二方面的第一种实现方式中,其中,所述基于所述比值实时调整发送速率,包括:
在所述比值大于1时,调高发送速率。
结合第二方面和第二方面的第一种实现方式,本公开在第二方面的第二种实现方式中,其中,所述帧信息包括关键帧长度和最大可容忍发送时长,所述基于所述关键帧的帧信息,确定未来时间段的预测发送速率,包括:
计算未来时间段内B/P帧的预测发送速率峰值为实时探测带宽乘以预设系数;
计算未来时间段内所述关键帧的预测发送速率峰值为:(关键帧长度/最大可容忍发送时长)*预设因子值;
基于所述未来时间段内B/P帧的预测发送速率峰值和所述关键帧的预测发送速率峰值,确定所述未来时间段的预测发送速率。
结合第二方面和第二方面的各种实现方式,本公开在第二方面的第三种实现方式中,其中,基于瓶颈带宽和往返传输时间BBR进行拥塞控制,所述在所述比值大于1时,调高发送速率,包括:
在所述比值大于1小于等于预设阈值时,基于所述比值,调高BBR状态机中的发包速率和目标拥塞窗口;
在所述比值大于预设阈值时,基于所述预设阈值,调高BBR状态机中的发包速率和目标拥塞窗口。
结合第二方面和第二方面的各种实现方式,本公开在第二方面的第四种实现方式中,其中,所述基于所述比值,调高BBR状态机中的发包速率和目标拥塞窗口,包括:
将BBR状态机中的发包速率调整为原发包速率的比值倍,并将所述BBR状态机中的目标拥塞窗口调整为原目标拥塞窗口的比值倍。
结合第二方面和第二方面的各种实现方式,本公开在第二方面的第五种实现方式中,其中,所述基于所述预设阈值,调高BBR状态机中的发包速率和目标拥塞窗口,包括:
将BBR状态机中的发包速率调整为原发包速率的预设阈值倍,并将所述BBR状态机中的目标拥塞窗口调整为原目标拥塞窗口的预设阈值倍。
结合第二方面和第二方面的各种实现方式,本公开在第二方面的第六种实现方式中,其中,所述基于所述比值调整当前发送速率,包括:
在所述比值小于等于1时,按照当前发送速率继续发送。
结合第二方面和第二方面的各种实现方式,本公开在第二方面的第七种实现方式中,其中,所述方法还包括:
在数据包出现丢包时,确定所述数据包的数据包信息中携带有关键帧标识信息,优先重传所述数据包,所述关键帧标识信息由上层协议栈设置在数据包信息中。
结合第二方面和第二方面的各种实现方式,本公开在第二方面的第八种实现方式中,其中,所述方法还包括:
在数据包出现丢包进行数据包重传时,调高重传数据包的发送速率。
结合第二方面和第二方面的各种实现方式,本公开在第二方面的第九种实现方式中,其中,所述方法还包括:
在ACK静默时,发送多个探测信号以进行连接重建。
第三方面,本公开实施例中提供了一种拥塞控制装置。
具体的,所述拥塞控制装置包括:
第一获取模块,被配置为获取待发送的关键帧的帧信息,所述帧信息包括与所述关键帧的发送速率相关的信息;
第一确定模块,被配置为基于所述关键帧的帧信息,确定未来时间段的预测发送速率;
第二确定模块,被配置为确定所述预测发送速率相对于实时探测带宽的比值;
第一调整模块,被配置为基于所述比值调整当前发送速率。
结合第三方面,本公开在第三方面的第一种实现方式中,其中,所述第一调整模块被配置为:
在所述比值大于1时,调高发送速率。
结合第三方面,本公开在第三方面的第二种实现方式中,其中,所述帧信息包括关键帧长度和最大可容忍发送时长,所述第一确定模块被配置为:
计算未来时间段内B/P帧的预测发送速率峰值为实时探测带宽乘以预设系数;
计算未来时间段内所述关键帧的预测发送速率峰值为:(关键帧长度/最大可容忍发送时长)*预设因子值;
基于所述未来时间段内B/P帧的预测发送速率峰值和所述关键帧的预测发送速率峰值,确定所述未来时间段的预测发送速率。
结合第三方面和第三方面的各种实现方式,本公开在第三方面的第三种实现方式中,其中,基于瓶颈带宽和往返传输时间BBR进行拥塞控制,第一调整模块中在所述比值大于1时,调高发送速率部分被配置为:
在所述比值大于1小于等于预设阈值时,基于所述比值,调高BBR状态机中的发包速率和目标拥塞窗口;
在所述比值大于预设阈值时,基于所述预设阈值,调高BBR状态机中的发包速率和目标拥塞窗口。
结合第三方面和第三方面的各种实现方式,本公开在第三方面的第四种实现方式中,其中,第一调整模块中所述基于所述比值,调高BBR状态机中的发包速率和目标拥塞窗口的部分被配置为:
将BBR状态机中的发包速率调整为原发包速率的比值倍,并将所述BBR状态机中的目标拥塞窗口调整为原目标拥塞窗口的比值倍。
结合第三方面和第三方面的各种实现方式,本公开在第三方面的第五种实现方式中,其中,第一调整模块中所述基于所述预设阈值,调高BBR状态机中的发包速率和目标拥塞窗口的部分被配置为:
将BBR状态机中的发包速率调整为原发包速率的预设阈值倍,并将所述BBR状态机中的目标拥塞窗口调整为原目标拥塞窗口的预设阈值倍。
结合第三方面和第三方面的各种实现方式,本公开在第三方面的第六种实现方式中,其中,所述装置还包括:
运行模块,被配置为在所述比值小于等于1时,按照当前发送速率继续发送。
结合第三方面和第三方面的各种实现方式,本公开在第三方面的第七种实现方式中,其中,所述装置还包括:
第一重传模块,被配置为在数据包出现丢包时,确定所述数据包的数据包信息中携带有关键帧标识信息,优先重传所述数据包,所述关键帧标识信息由上层协议栈设置在数据包信息中。
结合第三方面和第三方面的各种实现方式,本公开在第三方面的第八种实现方式中,其中,所述装置还包括:
第二重传模块,被配置为在数据包出现丢包进行数据包重传时,调高重传数据包的发送速率。
结合第三方面和第三方面的各种实现方式,本公开在第三方面的第九种实现方式中,其中,所述装置还包括:
发送模块,被配置为在ACK静默时,发送多个探测信号以进行连接重建。
第四方面,本公开实施例提供了一种应用于内容分发网络CDN的拥塞控制装置,其中,包括:
第二获取模块,被配置为获取待发送的关键帧的帧信息,所述帧信息包括与所述关键帧的发送速率相关的信息;
第三确定模块,被配置为基于所述关键帧的帧信息,确定未来时间段的预测发送速率;
第四确定模块,被配置为确定所述预测发送速率相对于实时探测带宽的比值;
第二调整模块,被配置为基于所述比值调整当前发送速率。
第三方面,本公开实施例提供了一种电子设备,包括存储器和处理器,所述存储器用于存储一条或多条支持上述装置执行上述方法的计算机指令,所述处理器被配置为用于执行所述存储器中存储的计算机指令。
第四方面,本公开实施例提供了一种计算机可读存储介质,其上存储有计算机指令,该计算机指令被处理器执行时实现上述任一方面所述的方法步骤。
第五方面,本公开实施例提供了一种计算机程序产品,包括计算机程序/指令,其中,该计算机程序/指令被处理器执行时实现上述任一方面所述的方法步骤。
本公开实施例提供的技术方案可包括以下有益效果:
上述技术方案可以从应用层获取待发送的关键帧的帧信息,所述帧信息包括与所述关键帧的发送速率相关的信息,基于所述关键帧的帧信息,确定未来时间段的预测发送速率,如此,可以提前预测各帧的发送速率,确定所述预测发送速率相对于实时探测带宽的比值,基于所述比值调整当前发送速率,这样就可以在预测发送速率大于实时探测带宽时,表明当前需要较大带宽,此时可以即时调高当前发送速率,这样通过提前预测的发送速率,实时对当前的发送速率进行修正,与现有技术中发送速率激增后根据反馈信息再进行带宽修正相比,可以及时调高发送速率,降低发送速率切换时引起的丢包、卡顿发生频次,提高服务质量,提升用户体验。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开实施例。
附图说明
结合附图,通过以下非限制性实施方式的详细描述,本公开实施例的其它特征、目的和优点将变得更加明显。在附图中:
图1示出根据本公开一实施方式的拥塞控制方法的流程图;
图2示出根据本公开一实施方式的一种“脉冲式”发包模型的示意图;
图3示出根据本公开一实施方式的一种预测发送速率和实时发送带宽的比对示意图;
图4示出根据本公开一实施方式的传输曲线的比对示意图;
图5示出根据本公开一实施方式的拥塞控制装置的流程图;
图6示出根据本公开一实施方式的电子设备的结构框图;
图7是适于用来实现根据本公开实施例所述方法的计算机系统的结构示意图。
具体实施方式
下文中,将参考附图详细描述本公开实施例的示例性实施方式,以使本领域技术人员可容易地实现它们。此外,为了清楚起见,在附图中省略了与描述示例性实施方式无关的部分。
在本公开实施例中,应理解,诸如“包括”或“具有”等的术语旨在指示本说明书中所公开的特征、数字、步骤、行为、部件、部分或其组合的存在,并且不欲排除一个或多个其他特征、数字、步骤、行为、部件、部分或其组合存在或被添加的可能性。
另外还需要说明的是,在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本公开实施例。
图1示出根据本公开一实施方式的拥塞控制方法的流程图,如图1所示,所述拥塞控制方法包括以下步骤S101-S104:
在步骤S101中,获取待发送的关键帧的帧信息,所述帧信息包括与所述关键帧的发送速率相关的信息;
在步骤S102中,基于所述关键帧的帧信息,确定未来时间段的预测发送速率;
在步骤S103中,确定所述预测发送速率相对于实时探测带宽的比值;
在步骤S104中,基于所述比值调整当前发送速率。
由上文所述,随着互联网的普及,越来越多的网络流量堆积在瓶颈链路上,拥有一个合理的拥塞控制算法来保护互联网不受持续过载的影响显得十分重要。CDN(ContentDelivery Network,内容分发网络)产业已是超千亿的市场规模,庞大的市场中流媒体服务持续高速发展,而流媒体类服务的终端消费侧是客户体验与服务质量,注重的是上层服务质量。但是,目前的拥塞控制算法都是针对四层网络中传输层的问题设计的算法,无论采取哪种拥塞控制算法都无关、也不关心上层应用的服务质量,故如何通过更高效的拥塞控制方法解决流媒体传输过程中的服务质量问题,是目前亟需攻克的技术难题。
众所周知,在CDN中,服务器在进行直播等流媒体服务时是图2所示的“脉冲式”发包模型,服务器发送的数据帧包括I帧、B帧和P帧,I帧表示关键帧,可以理解为这一帧的画面数据是完整保留的,P帧为前向差别帧,只保留这一帧跟之前的一个关键帧(或P帧)的差别数据,B帧是双向差别帧,保留的是本帧与前后帧的差别数据,所以服务器发送关键帧的数据大小都是远远大于B/P帧,所述B/P帧时的发送速率“脉冲”一般都较为稳定且峰值较小,而发送关键帧的发送速率“脉冲”峰值较大导致发送速率变化较大。大部分的连接中的发送速率波动是由于发送关键帧帧引起的,从理论上讲,关键帧导致的发送速率激增是引起卡顿的重要原因之一,现有的拥塞控制方案对于发送窗口的变化都是不准确且滞后的,对于激增的关键帧数据包的发送会由于窗口调整不准确或不及时导致延迟或丢包,引起卡顿现象。
为了解决上述问题,本公开提供了一种拥塞控制方法,从应用层获取待发送的关键帧的帧信息,所述帧信息包括与所述关键帧的发送速率相关的信息,基于所述关键帧的帧信息,确定未来时间段的预测发送速率,如此,可以提前预测各帧的发送速率,确定所述预测发送速率相对于实时探测带宽的比值,基于所述比值调整当前发送速率,这样就可以在预测发送速率大于实时探测带宽时,表明当前需要较大带宽,此时可以即时调高当前发送速率,这样通过提前预测的发送速率,实时对当前的发送速率进行修正,与现有技术中发送速率激增后根据反馈信息再进行带宽修正相比,可以及时调高发送速率,降低发送速率切换时引起的丢包、卡顿发生频次,提高服务质量,提升用户体验。
在本公开一实施方式中,本实施例中的上层指的是七层网络模型中的应用层,下层指的是四层网络中的TCP/IP层,上层在缓存有关键帧待发送时,会在将该关键帧发送给下层之前,将该待发送的关键帧的帧信息通过setsocketopt接口传输至下层,如通过setsocketopt接口传输实时关键帧序列段frame_seq(用于标识待发送的关键帧)、关键帧长度frame_len和关键帧的最大可容忍发送时长,如此打通四七层,将七层信息传递给四层,如此,四层的TCP/IP层在进行数据传输时,就可以实时的接收上层服务传递下来的实时的待发送关键帧的帧信息,根据这个待发送关键帧的帧信息进行动态的拥塞控制调整,以便兼顾网络拥塞的同时,也能保证应用服务所需的网络传输质量。
在本公开一实施方式中,该关键帧的帧信息包括与所述关键帧的发送速率相关的属性信息,比如说,可以是关键帧长度和最大可容忍发送时长,该关键帧长度的单位是字节(Byte),该最大可容忍发送时长指的是发送该关键帧时能够容忍的最大发送时长。
在本公开一实施方式中,可以基于所述关键帧的帧信息,确定未来时间段的预测发送速率,具体的可以包括以下步骤:
计算未来时间段内B/P帧的预测发送速率峰值为实时探测带宽乘以预设系数;
计算未来时间段内所述关键帧的预测发送速率峰值为:(关键帧长度/最大可容忍发送时长)*预设因子值;
基于所述未来时间段内B/P帧的预测发送速率峰值和所述关键帧的预测发送速率峰值,确定所述未来时间段的预测发送速率。
在该实施方式中,由于B帧和P帧本质上并不会引起发送速率的较大波动,而且实际场景中B帧和P帧的发送速率峰值相对较小,故本实施方式可以用实时探测带宽乘以预设系数作为预测的发送速率峰值,该预设系数可以是一预设的经验值。关键帧的发送速率峰值部分是需要重点处理的。关键帧的大小相对较大,可以用(关键帧长度/最大可容忍发送时长)*预设因子值=frame_len/tolerate_time*factor来计算得到该关键帧的预测发送速率峰值,如此,下层TCP/IP层就可以在发送这些帧时,基于这些B/P帧的预测发送速率峰值和所述关键帧的预测发送速率峰值,实时获取未来时间段内各时刻的预测发送速率,示例的,实时的预测发送速率可以如图3中A1曲线所示。
在本公开一实施方式中,可以基于数据包的实时发送情况计算得到实时探测带宽,确定当前的预测发送速率相对于实时探测带宽的比值,基于所述比值调整当前发送速率,如果比值表明该实时探测带宽小于预测发送速率,表明预测到当前需要的发送速率要大于实时探测带宽,此时为了避免发送速率波动引起延迟或丢包,需要调高当前的发送速率,提前对发包带宽进行修正。如果比值表明该实时探测带宽大于预测发送速率,表明预测到当前需要的发送速率要小于实时探测带宽,不会引起延迟或丢包,此时可以不调整当前的发送速率。
在本公开一实施方式中,上述拥塞控制方法中的步骤S103即所述基于所述比值实时调整发送速率还可以包括以下步骤:
在所述比值大于1时,调高发送速率。
在该实施方式中,如果所述比值大于1,表明预测到当前需要的发送速率要大于实时探测带宽,为了避免发送速率波动引起延迟或丢包,需要调高当前的发送速率,提前对发包带宽进行修正。
在本公开一实施方式中,上述拥塞控制方法基于瓶颈带宽和往返传输时间BBR进行拥塞控制,该方法中的步骤S104,即在所述比值大于1时,调高发送速率的步骤还可以包括以下步骤:
在所述比值大于1小于等于预设阈值时,基于所述比值,调高BBR状态机中的发包速率和目标拥塞窗口;
在所述比值大于预设阈值时,基于所述预设阈值,调高BBR状态机中的发包速率和目标拥塞窗口。
在该实施方式中,BBR可以基于数据包的实时发送情况计算得到实时探测带宽,确定当前的预测发送速率相对于实时探测带宽的比值,如果所述比值大于1时,表明预测到当前的发送速率要大于实时探测带宽,为了避免发送速率波动引起延迟或丢包,需要调高BBR状态机中的发包速率和目标拥塞窗口,提前对发包带宽进行修正。本公开的拥塞控制方法是基于BBR(Bottleneck Bandwidth and Round-trip propagation time,瓶颈带宽和往返传输时间)进行拥塞控制,该BBR拥塞控制方法分为四个阶段,分别为STARTUP阶段、DRAIN阶段、PROBE_BW阶段以及PROBE_RTT阶段。STARTUP阶段为连接建立阶段,在该阶段采用指数增加数据发送速率,使得发送数据尽可能快的占满通信管道,通信管道被占满后,开始占用缓冲器,接下来进入DRAIN阶段。DRAIN阶段为排空阶段,采用指数降低数据发送码率,将缓冲器中的数据慢慢排空。完成上面两步,进入稳定状态,在稳定状态,交替执行PROBE_BW阶段以及PROBE_RTT阶段,交替执行过程为:首先进入PROBE_BW阶段,PROBE_BW阶段为带宽探测阶段,PROBE_BW阶段中改变数据发送速率进行带宽探测,具体为先在一个RTT(Round-TripTime,往返时延)时间内增加数据发送速率,探测最大带宽,直到RTT没有变化后减小发送速率排空之前的一个RTT多发出来的数据。在PROBE_BW阶段,除了进行带宽探测之外,还计算发送端每次需要发送的数据量,每过10秒,如果估计RTT不变,就进入PROBE_RTT阶段。PROBE_RTT阶段为延迟探测阶段,该阶段采用每次只发四个数据包的策略,排空链路上的数据包,探测最小RTT,探测到最小RTT之后,则重新进入PROBE_BW阶段,在PROBE_BW阶段处理再次探测最大带宽之外,还利用探测到的最大带宽以及最小RTT来计算发送端每次需要发送的数据量,并将计算结果通知发送端,使得发送端按照计算出来的数据量来发送数据,起到拥塞控制的目的。在PROBE_BW阶段,每过10秒,如果估计延迟不变,则继续进入PROBE_RTT阶段重复执行上述过程。BBR使用一个清晰明了的状态机来维护发包速率(pacing rate)和目标拥塞窗口(target_cwnd),该发包速率用于控制发包间隔,该目标拥塞窗口指的是BBR允许网络中处于传输状态的数据量的最大值,用于限制传输中的数据量;该状态机通过交替循环探测最大带宽和最小RTT,来实现高吞吐量、低延时、近似公平的带宽共享。本公开可以在关键帧造成发送速率波动时,即时调高BBR状态机中的发包速率和目标拥塞窗口,使得实时发送带宽如图3中A2曲线所示实时高于预测发送速率,由于提前对发包带宽进行了修正,解决了流媒体数据在发送速率波动时容易产生丢包、卡顿等的问题。
在该实施方式中,该预设阈值是预设的经验值,该预设阈值大于1,示例的可以是4,该预设阈值用于限定该BBR状态机中的发包速率和目标拥塞窗口的最大调整范围,防止BBR状态机中的发包速率和目标拥塞窗口增加过大。在所述比值大于1小于等于预设阈值时,表明预测发送速率即准实时发送速率大于实时探测带宽,但是大的不多,此时,可以基于所述比值小范围地调高BBR状态机中的发包速率和目标拥塞窗口;在比值大于预设阈值时,表明预测发送速率即准实时发送速率远远大于实时探测带宽,此时为了避免基于该比值大范围调整该BBR状态机中的发包速率和目标拥塞窗口,又保证发包带宽可以适应当前的发送速率,可以基于预设阈值来调高BBR状态机中的发包速率和目标拥塞窗口。
在本公开一实施方式中,基于所述比值,调高BBR状态机中的发包速率和目标拥塞窗口的部分可以包括以下步骤:将BBR状态机中的发包速率调整为原发包速率的比值倍,并将所述BBR状态机中的目标拥塞窗口调整为原目标拥塞窗口的比值倍。
在本公开一实施方式中,基于所述预设阈值,调高BBR状态机中的发包速率和目标拥塞窗口的部分可以包括以下步骤:将BBR状态机中的发包速率调整为原发包速率的预设阈值倍,并将所述BBR状态机中的目标拥塞窗口调整为原目标拥塞窗口的预设阈值倍。
图4示出根据本公开一实施方式的传输曲线的比对示意图,图4中的横轴为时间轴,纵轴为帧序号轴,图4中的曲线B1为使用本公开的基于BBR的优化拥塞控制方法时的传输曲线图,曲线B2为使用现有的标准BBR拥塞控制方法时的传输曲线图,由图4可以看出,在发送关键帧引起发送速率波动时,该本公开的基于BBR的优化拥塞控制方法,可以在t1时刻快速提高至较高的发包速率。而现有的标准BBR拥塞控制方法会在t1时刻延后t2时刻开始上探带宽,经过多次上探多次不断提高发包速率。由图4中的对比可以看出本公开的方案可以在发送关键帧时及时调高BBR状态机中的发包速率和目标拥塞窗口,降低发送速率切换时引起的丢包、卡顿发生频次,提高服务质量,提升用户体验。
这里,还给出了使用现有方案和本公开方案进行数据传输时的播测对比数据,其中,对照组使用现有方案进行流媒体直播应用,实验组使用本公开方案进行流媒体直播应用,两者长时间播测对比数据如下表1所示,可以看到相比现有方案,本公开方案在首播时间、卡顿次数、卡顿时间、卡顿率和下载速度上均有不同程度效果提升。
表1
在本公开一实施方式中,上述拥塞控制方法还可以包括以下步骤:
在所述比值小于等于1时,按照当前发送速率继续发送。
在该实施方式中,如果所述比值小于等于1时,表明预测到当前的发送速率要小于等于实时探测带宽,此时不会因发送速率引起延迟或丢包,不需要做调整,可以继续按照现有的发送方案进行发送;比如在该拥塞控制方法是基于BBR进行拥塞控制时,在所述比值小于等于1时,所述BBR状态机继续保持原样运行,所述BBR状态机按照原发包速率和原拥塞窗口继续运行。
在一种可能的实施方式中,上述拥塞控制方法还可以包括以下步骤:
在数据包出现丢包时,确定所述数据包的数据包信息中携带有关键帧标识信息,优先重传所述数据包,所述关键帧标识信息由上层协议栈设置在数据包信息中。
在该实施方式中,上层即七层网络模型中的应用层的协议栈可以设置每数据包信息,通过msghdr封装关键帧标识信息,通过8u协议栈预留skb字段保存,下层即四层网络模型中的TCP/IP层的协议栈可以识别该关键帧标识信息,这样打通七层和四层,将七层中的信息传递给四层,这样,在进行TCP/IP层在数据丢包进行数据包重传时,如果确定所述数据包的数据包信息中携带有关键帧标识信息,则表明该数据包是关键帧的数据包,此时可以优先重传该关键帧的数据包,避免出现关键帧丢失导致直播黑屏等问题。
在一种可能的实施方式中,上述拥塞控制方法还可以包括以下步骤:
在数据包出现丢包进行数据包重传时,可以调高重传数据包的重传速率。
在该实施方式中,BBR状态机在进入DRAIN阶段时,采用指数降低数据发送速率,将缓冲器中的数据慢慢排空,如果在drain状态出现丢包,会使得重传恢复受到较大影响,故可以在数据包出现丢包进行数据包重传时,可以调高重传数据包的发送速率,实现快速丢包恢复,降低直播卡顿率。
在一种可能的实施方式中,针对直播延迟问题,可以将BBR状态机中的targetcwnd调整至一倍BDP(Bandwidth-Delay Product,带宽时延积),使得客户端播放时延降低。
在一种可能的实施方式中,针对直播延迟问题,可以将BBR状态机中的targetcwnd调整至一倍BDP(Bandwidth-Delay Product,带宽时延积),使得客户端播放时延降低。
在一种可能的实施方式中,直播流量大多是长连接,现有的BBR拥塞控制方法对长连接的传输效率有概率会失速,特别是在PROBE_RTT阶段要维持至少200ms的只发四个数据包的策略,该策略相当于几乎不发包,对实时带宽降低较多,会造成网络整体数据传输带宽下降,出现严重失速情况,因此可以针对直播长连接场景优化对bbr状态机进行修改,对状态机中的PROBE_RTT阶段的策略进行优化,如不再执行PROBE_RTT阶段的策略。
在一种可能的实施方式中,上述拥塞控制方法还可以包括以下步骤:
在ACK静默时,发送多个探测信号,进行连接重建。
在该实施方式中,ACK静默指的是客户端在进入电梯等网路信号较弱的区域,会断开与服务端之间的网络连接,不能继续向服务端发送ACK信号,此时,服务器可以发送多个探测信号来探测客户端,如果该客户端进入到强网络信号区域,该探测信号就可以探测到该客户端,重建与客户端之间的连接,继续进行数据传输。
本公开还提供了一种应用于内容分发网络CDN的拥塞控制方法,该方法包括以下步骤:
获取待发送的关键帧的帧信息,所述帧信息包括与所述关键帧的发送速率相关的信息;
基于所述关键帧的帧信息,确定未来时间段的预测发送速率;
确定所述预测发送速率相对于实时探测带宽的比值;
基于所述比值调整当前发送速率。
本公开提供的上述拥塞控制方法可以应用于CDN网络,在该CDN网络的直播、点播等应用场景中,在发送流媒体数据包时,都可以采用该拥塞控制方法进行数据包的发送。具体描述参考上述实施例中的描述,在此不再赘述。
下述为本公开装置实施例,可以用于执行本公开方法实施例。
图5示出根据本公开一实施方式的拥塞控制装置的结构框图,该装置可以通过软件、硬件或者两者的结合实现成为电子设备的部分或者全部。如图5所示,所述拥塞控制装置包括:
第一获取模块501,被配置为获取待发送的关键帧的帧信息,所述帧信息包括与所述关键帧的发送速率相关的信息;
第一确定模块502,被配置为基于所述关键帧的帧信息,确定未来时间段的预测发送速率;
第二确定模块503,被配置为确定所述预测发送速率相对于实时探测带宽的比值;
第一调整模块504,被配置为基于所述比值调整当前发送速率。
由上文所述,随着互联网的普及,越来越多的网络流量堆积在瓶颈链路上,拥有一个合理的拥塞控制算法来保护互联网不受持续过载的影响显得十分重要。CDN(ContentDelivery Network,内容分发网络)产业已是超千亿的市场规模,庞大的市场中流媒体服务持续高速发展,而流媒体类服务的终端消费侧是客户体验与服务质量,注重的是上层服务质量。但是,目前的拥塞控制算法都是针对四层网络中传输层的问题设计的算法,无论采取哪种拥塞控制算法都无关、也不关心上层应用的服务质量,故如何通过更高效的拥塞控制方法解决流媒体传输过程中的服务质量问题,是目前亟需攻克的技术难题。
众所周知,在CDN中,服务器在进行直播等流媒体服务时是图2所示的“脉冲式”发包模型,服务器发送的数据帧包括I帧、B帧和P帧,I帧表示关键帧,可以理解为这一帧的画面数据是完整保留的,P帧为前向差别帧,只保留这一帧跟之前的一个关键帧(或P帧)的差别数据,B帧是双向差别帧,保留的是本帧与前后帧的差别数据,所以服务器发送关键帧的数据大小都是远远大于B/P帧,所述B/P帧时的发送速率“脉冲”一般都较为稳定且峰值较小,而发送关键帧的发送速率“脉冲”峰值较大导致发送速率变化较大。大部分的连接中的发送速率波动是由于发送关键帧帧引起的,从理论上讲,关键帧导致的发送速率激增是引起卡顿的重要原因之一,现有的拥塞控制方案对于发送窗口的变化都是不准确且滞后的,对于激增的关键帧数据包的发送会由于窗口调整不准确或不及时导致延迟或丢包,引起卡顿现象。
为了解决上述问题,本公开提供了一种拥塞控制装置,可以从应用层获取待发送的关键帧的帧信息,所述帧信息包括与所述关键帧的发送速率相关的信息,基于所述关键帧的帧信息,确定未来时间段的预测发送速率,如此,可以提前预测各帧的发送速率,确定所述预测发送速率相对于实时探测带宽的比值,基于所述比值调整当前发送速率,这样就可以在预测发送速率大于实时探测带宽时,表明当前需要较大带宽,此时可以即时调高当前发送速率,这样通过提前预测的发送速率,实时对当前的发送速率进行修正,与现有技术中发送速率激增后根据反馈信息再进行带宽修正相比,可以及时调高发送速率,降低发送速率切换时引起的丢包、卡顿发生频次,提高服务质量,提升用户体验。
在本公开一实施方式中,本实施例中的上层指的是七层网络模型中的应用层,下层指的是四层网络中的TCP/IP层,上层在缓存有关键帧待发送时,会在将该关键帧发送给下层之前,将该待发送的关键帧的帧信息通过setsocketopt接口传输至下层,如通过setsocketopt接口传输实时关键帧序列段frame_seq(用于标识待发送的关键帧)、关键帧长度frame_len和关键帧的最大可容忍发送时长,如此打通四七层,将七层信息传递给四层,如此,四层的TCP/IP层在进行数据传输时,就可以实时的接收上层服务传递下来的实时的待发送关键帧的帧信息,根据这个待发送关键帧的帧信息进行动态的拥塞控制调整,以便兼顾网络拥塞的同时,也能保证应用服务所需的网络传输质量。
在本公开一实施方式中,该关键帧的帧信息包括与所述关键帧的发送速率相关的属性信息,比如说,可以是关键帧长度和最大可容忍发送时长,该关键帧长度的单位是字节(Byte),该最大可容忍发送时长指的是发送该关键帧时能够容忍的最大发送时长。
在一种可能的实施方式中,所述第一确定模块502被配置为:
计算未来时间段内B/P帧的预测发送速率峰值为实时探测带宽乘以预设系数;
计算未来时间段内所述关键帧的预测发送速率峰值为:(关键帧长度/最大可容忍发送时长)*预设因子值;
基于所述未来时间段内B/P帧的预测发送速率峰值和所述关键帧的预测发送速率峰值,确定所述未来时间段的预测发送速率。
在该实施方式中,由于B帧和P帧本质上并不会引起发送速率的较大波动,而且实际场景中B帧和P帧的发送速率峰值相对较小,故本实施方式可以用实时探测带宽乘以预设系数作为预测的发送速率峰值,该预设系数可以是一预设的经验值。关键帧的发送速率峰值部分是需要重点处理的。关键帧的大小相对较大,可以用(关键帧长度/最大可容忍发送时长)*预设因子值=frame_len/tolerate_time*factor来计算得到该关键帧的预测发送速率峰值,如此,下层TCP/IP层就可以在发送这些帧时,基于这些B/P帧的预测发送速率峰值和所述关键帧的预测发送速率峰值,实时获取未来时间段内各时刻的预测发送速率,示例的,实时的预测发送速率可以如图3中A1曲线所示。
在本公开一实施方式中,可以基于数据包的实时发送情况计算得到实时探测带宽,确定当前的预测发送速率相对于实时探测带宽的比值,基于所述比值调整当前发送速率,如果比值表明该实时探测带宽小于预测发送速率,表明预测到当前需要的发送速率要大于实时探测带宽,此时为了避免发送速率波动引起延迟或丢包,需要调高当前的发送速率,提前对发包带宽进行修正。如果比值表明该实时探测带宽大于预测发送速率,表明预测到当前需要的发送速率要小于实时探测带宽,不会引起延迟或丢包,此时可以不调整当前的发送速率。
在本公开一实施方式中,上述拥塞控制装置中的第一调整模块504被配置为:
在所述比值大于1时,调高发送速率。
在该实施方式中,如果所述比值大于1,表明预测到当前需要的发送速率要大于实时探测带宽,为了避免发送速率波动引起延迟或丢包,需要调高当前的发送速率,提前对发包带宽进行修正。
在一种可能的实施方式中,第一调整模块504中在所述比值大于1时,调高发送速率的部分被配置为:
在所述比值大于1小于等于预设阈值时,基于所述比值,调高BBR状态机中的发包速率和目标拥塞窗口;
在所述比值大于预设阈值时,基于所述预设阈值,调高BBR状态机中的发包速率和目标拥塞窗口。
在该实施方式中,BBR可以基于数据包的实时发送情况计算得到实时探测带宽,确定当前的预测发送速率相对于实时探测带宽的比值,如果所述比值大于1时,表明预测到当前的发送速率要大于实时探测带宽,为了避免发送速率波动引起延迟或丢包,需要调高BBR状态机中的发包速率和目标拥塞窗口,提前对发包带宽进行修正。本公开的拥塞控制方法是基于BBR(Bottleneck Bandwidth and Round-trip propagation time,瓶颈带宽和往返传输时间)进行拥塞控制,该BBR拥塞控制方法分为四个阶段,分别为STARTUP阶段、DRAIN阶段、PROBE_BW阶段以及PROBE_RTT阶段。STARTUP阶段为连接建立阶段,在该阶段采用指数增加数据发送速率,使得发送数据尽可能快的占满通信管道,通信管道被占满后,开始占用缓冲器,接下来进入DRAIN阶段。DRAIN阶段为排空阶段,采用指数降低数据发送码率,将缓冲器中的数据慢慢排空。完成上面两步,进入稳定状态,在稳定状态,交替执行PROBE_BW阶段以及PROBE_RTT阶段,交替执行过程为:首先进入PROBE_BW阶段,PROBE_BW阶段为带宽探测阶段,PROBE_BW阶段中改变数据发送速率进行带宽探测,具体为先在一个RTT(Round-TripTime,往返时延)时间内增加数据发送速率,探测最大带宽,直到RTT没有变化后减小发送速率排空之前的一个RTT多发出来的数据。在PROBE_BW阶段,除了进行带宽探测之外,还计算发送端每次需要发送的数据量,每过10秒,如果估计RTT不变,就进入PROBE_RTT阶段。PROBE_RTT阶段为延迟探测阶段,该阶段采用每次只发四个数据包的策略,排空链路上的数据包,探测最小RTT,探测到最小RTT之后,则重新进入PROBE_BW阶段,在PROBE_BW阶段处理再次探测最大带宽之外,还利用探测到的最大带宽以及最小RTT来计算发送端每次需要发送的数据量,并将计算结果通知发送端,使得发送端按照计算出来的数据量来发送数据,起到拥塞控制的目的。在PROBE_BW阶段,每过10秒,如果估计延迟不变,则继续进入PROBE_RTT阶段重复执行上述过程。BBR使用一个清晰明了的状态机来维护发包速率(pacing rate)和目标拥塞窗口(target_cwnd),该发包速率用于控制发包间隔,该目标拥塞窗口指的是BBR允许网络中处于传输状态的数据量的最大值,用于限制传输中的数据量;该状态机通过交替循环探测最大带宽和最小RTT,来实现高吞吐量、低延时、近似公平的带宽共享。本公开可以在关键帧造成发送速率波动时,即时调高BBR状态机中的发包速率和目标拥塞窗口,使得实时发送带宽如图3中A2曲线所示实时高于预测发送速率,由于提前对发包带宽进行了修正,解决了流媒体数据在发送速率波动时容易产生丢包、卡顿等的问题。
在该实施方式中,该预设阈值是预设的经验值,该预设阈值大于1,示例的可以是4,该预设阈值用于限定该BBR状态机中的发包速率和目标拥塞窗口的最大调整范围,防止BBR状态机中的发包速率和目标拥塞窗口增加过大。在所述比值大于1小于等于预设阈值时,表明预测发送速率即准实时发送速率大于实时探测带宽,但是大的不多,此时,可以基于所述比值小范围地调高BBR状态机中的发包速率和目标拥塞窗口;在比值大于预设阈值时,表明预测发送速率即准实时发送速率远远大于实时探测带宽,此时为了避免基于该比值大范围调整该BBR状态机中的发包速率和目标拥塞窗口,又保证发包带宽可以适应当前的发送速率,可以基于预设阈值来调高BBR状态机中的发包速率和目标拥塞窗口。
在一种可能的实施方式中,第一调整模块504中所述基于所述比值,调高BBR状态机中的发包速率和目标拥塞窗口的部分被配置为:
将BBR状态机中的发包速率调整为原发包速率的比值倍,并将所述BBR状态机中的目标拥塞窗口调整为原目标拥塞窗口的比值倍。
在一种可能的实施方式中,第一调整模块504中所述基于所述预设阈值,调高BBR状态机中的发包速率和目标拥塞窗口的部分被配置为:
将BBR状态机中的发包速率调整为原发包速率的预设阈值倍,并将所述BBR状态机中的目标拥塞窗口调整为原目标拥塞窗口的预设阈值倍。
图4示出根据本公开一实施方式的传输曲线的比对示意图,图4中的横轴为时间轴,纵轴为帧序号轴,图4中的曲线B1为使用本公开的基于BBR的优化拥塞控制方法时的传输曲线图,曲线B2为使用现有的标准BBR拥塞控制方法时的传输曲线图,由图4可以看出,在发送关键帧引起发送速率波动时,该本公开的基于BBR的优化拥塞控制方法,可以在t1时刻快速提高至较高的发包速率。而现有的标准BBR拥塞控制方法会在t1时刻延后t2时刻开始上探带宽,经过多次上探多次不断提高发包速率。由图4中的对比可以看出本公开的方案可以在发送关键帧时及时调高BBR状态机中的发包速率和目标拥塞窗口,降低发送速率切换时引起的丢包、卡顿发生频次,提高服务质量,提升用户体验。
这里,还给出了使用现有方案和本公开方案进行数据传输时的播测对比数据,其中,对照组使用现有方案进行流媒体直播应用,实验组使用本公开方案进行流媒体直播应用,两者长时间播测对比数据如上表1所示,可以看到相比现有方案,本公开方案在首播时间、卡顿次数、卡顿时间、卡顿率和下载速度上均有不同程度效果提升。
在一种可能的实施方式中,所述第一调整模块504被配置为:
在所述比值小于等于1时,按照当前发送速率继续发送。
在该实施方式中,如果所述比值小于等于1时,表明预测到当前的发送速率要小于等于实时探测带宽,此时不会因发送速率引起延迟或丢包,不需要做任何调整,比如在该拥塞控制方法是基于BBR进行拥塞控制时,在所述比值小于等于1时,所述BBR状态机继续保持原样运行,所述BBR状态机按照原发包速率和原拥塞窗口继续运行。
在该实施方式中,如果所述比值小于等于1时,表明预测到当前的发送速率要小于等于实时探测带宽,此时不会因发送速率引起延迟或丢包,不需要做任何调整,所述BBR状态机继续保持原样运行。
在一种可能的实施方式中,所述装置还包括:
第一重传模块,被配置为在数据包出现丢包时,确定所述数据包的数据包信息中携带有关键帧标识信息,优先重传所述数据包,所述关键帧标识信息由上层协议栈设置在数据包信息中。
在该实施方式中,上层即七层网络模型中的应用层的协议栈可以设置每数据包信息,通过msghdr封装关键帧标识信息,通过8u协议栈预留skb字段保存,下层即四层网络模型中的TCP/IP层的协议栈可以识别该关键帧标识信息,这样打通七层和四层,将七层中的信息传递给四层,这样,在进行TCP/IP层在数据丢包进行数据包重传时,如果确定所述数据包的数据包信息中携带有关键帧标识信息,则表明该数据包是关键帧的数据包,此时可以优先重传该关键帧的数据包,避免出现关键帧丢失导致直播黑屏等问题。
在一种可能的实施方式中,所述装置还包括:
第二重传模块,被配置为在数据包出现丢包进行数据包重传时,调高重传数据包的发送速率。
在该实施方式中,BBR状态机在进入DRAIN阶段时,采用指数降低数据发送速率,将缓冲器中的数据慢慢排空,如果在drain状态出现丢包,会使得重传恢复受到较大影响,故可以在数据包出现丢包进行数据包重传时,可以调高重传数据包的发送速率,实现快速丢包恢复,降低直播卡顿率。
在一种可能的实施方式中,所述装置还包括:
发送模块,被配置为在ACK静默时,发送多个探测信号以进行连接重建。
在该实施方式中,ACK静默指的是客户端在进入电梯等网路信号较弱的区域,会断开与服务端之间的网络连接,不能继续向服务端发送ACK信号,此时,服务器可以发送多个探测信号来探测客户端,如果该客户端进入到强网络信号区域,该探测信号就可以探测到该客户端,重建与客户端之间的连接,继续进行数据传输。
本公开还提供了一种应用于内容分发网络CDN的拥塞控制装置,该装置包括以下步骤:
第二获取模块,被配置为获取待发送的关键帧的帧信息,所述帧信息包括与所述关键帧的发送速率相关的信息;
第三确定模块,被配置为基于所述关键帧的帧信息,确定未来时间段的预测发送速率;
第四确定模块,被配置为确定所述预测发送速率相对于实时探测带宽的比值;
调整模块,被配置为基于所述比值调整当前发送速率。
本公开提供的上述拥塞控制装置可以应用于CDN网络,在该CDN网络的直播、点播等应用场景中,在发送流媒体数据包时,都可以采用该拥塞控制装置提供的控制方案进行数据包的发送。具体描述参考上述拥塞控制装置实施例中的描述,在此不再赘述。
本公开还公开了一种电子设备,图6示出根据本公开一实施方式的电子设备的结构框图,如图6所示,所述电子设备600包括存储器601和处理器602;其中,
所述存储器601用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器602执行以实现上述方法步骤。
图7是适于用来实现根据本公开实施例所述方法的计算机系统的结构示意图。
如图7所示,计算机系统700包括处理单元701,其可以根据存储在只读存储器(ROM)702中的程序或者从存储部分708加载到随机访问存储器(RAM)703中的程序而执行上述实施方式中的各种处理。在RAM703中,还存储有系统700操作所需的各种程序和数据。处理单元701、ROM702以及RAM703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。
以下部件连接至I/O接口705:包括键盘、鼠标等的输入部分706;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分707;包括硬盘等的存储部分708;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分709。通信部分709经由诸如因特网的网络执行通信处理。驱动器710也根据需要连接至I/O接口705。可拆卸介质711,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器710上,以便于从其上读出的计算机程序根据需要被安装入存储部分708。其中,所述处理单元701可实现为CPU、GPU、TPU、FPGA、NPU等处理单元。
特别地,根据本公开的实施方式,上文描述的方法可以被实现为计算机软件程序。例如,本公开的实施方式包括一种计算机程序产品,其包括有形地包含在及其可读介质上的计算机程序,所述计算机程序包含用于执行上文描述的方法的程序代码。在这样的实施方式中,该计算机程序可以通过通信部分709从网络上被下载和安装,和/或从可拆卸介质711被安装。
附图中的流程图和框图,图示了按照本公开各种实施方式的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,路程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施方式中所涉及到的单元或模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元或模块也可以设置在处理器中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定。
作为另一方面,本公开实施例还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施方式中所述装置中所包含的计算机可读存储介质;也可以是单独存在,未装配入设备中的计算机可读存储介质。计算机可读存储介质存储有一个或者一个以上程序,所述程序被一个或者一个以上的处理器用来执行描述于本公开实施例的方法。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开实施例中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开实施例中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (13)
1.一种应用于内容分发网络CDN的拥塞控制方法,其中,包括:
获取待发送的关键帧的帧信息,所述帧信息包括与所述关键帧的发送速率相关的信息,所述帧信息包括关键帧长度和最大可容忍发送时长,所述最大可容忍发送时长指的是发送所述关键帧时能够容忍的最大发送时长;
基于所述关键帧的帧信息,确定未来时间段的预测发送速率;
确定所述预测发送速率相对于实时探测带宽的比值;
基于所述比值调整当前发送速率。
2.一种拥塞控制方法,其中,包括:
获取待发送的关键帧的帧信息,所述帧信息包括与所述关键帧的发送速率相关的信息;
基于所述关键帧的帧信息,确定未来时间段的预测发送速率,所述帧信息包括关键帧长度和最大可容忍发送时长,所述最大可容忍发送时长指的是发送所述关键帧时能够容忍的最大发送时长;
确定所述预测发送速率相对于实时探测带宽的比值;
基于所述比值调整当前发送速率。
3.根据权利要求2所述的方法,其中,所述基于所述比值实时调整发送速率,包括:
在所述比值大于1时,调高发送速率。
4.根据权利要求2所述的方法,其中,所述基于所述关键帧的帧信息,确定未来时间段的预测发送速率,包括:
计算未来时间段内B/P帧的预测发送速率峰值为实时探测带宽乘以预设系数;
计算未来时间段内所述关键帧的预测发送速率峰值为:(关键帧长度/最大可容忍发送时长)*预设因子值;
基于所述未来时间段内B/P帧的预测发送速率峰值和所述关键帧的预测发送速率峰值,确定所述未来时间段的预测发送速率。
5.根据权利要求3所述的方法,其中,基于瓶颈带宽和往返传输时间BBR进行拥塞控制,所述在所述比值大于1时,调高发送速率,包括:
在所述比值大于1小于等于预设阈值时,基于所述比值,调高BBR状态机中的发包速率和目标拥塞窗口;
在所述比值大于预设阈值时,基于所述预设阈值,调高BBR状态机中的发包速率和目标拥塞窗口。
6.根据权利要求5所述的方法,其中,所述基于所述比值,调高BBR状态机中的发包速率和目标拥塞窗口,包括:
将BBR状态机中的发包速率调整为原发包速率的比值倍,并将所述BBR状态机中的目标拥塞窗口调整为原目标拥塞窗口的比值倍。
7.根据权利要求5所述的方法,其中,所述基于所述预设阈值,调高BBR状态机中的发包速率和目标拥塞窗口,包括:
将BBR状态机中的发包速率调整为原发包速率的预设阈值倍,并将所述BBR状态机中的目标拥塞窗口调整为原目标拥塞窗口的预设阈值倍。
8.根据权利要求2所述的方法,其中,所述基于所述比值调整当前发送速率,包括:
在所述比值小于等于1时,按照当前发送速率继续发送。
9.根据权利要求2所述的方法,其中,所述方法还包括:
在数据包出现丢包时,确定所述数据包的数据包信息中携带有关键帧标识信息,优先重传所述数据包,所述关键帧标识信息由上层协议栈设置在数据包信息中。
10.根据权利要求2所述的方法,其中,所述方法还包括:
在数据包出现丢包进行数据包重传时,调高重传数据包的发送速率。
11.根据权利要求2所述的方法,其中,所述方法还包括:
在ACK静默时,发送多个探测信号以进行连接重建。
12.一种电子设备,包括存储器和至少一个处理器;其中,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述至少一个处理器执行以实现权利要求1-11任一项所述的方法步骤。
13.一种计算机可读存储介质,其上存储有计算机指令,该计算机指令被处理器执行时实现权利要求1-11任一项所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210137739.1A CN114726730B (zh) | 2022-02-15 | 2022-02-15 | 应用于cdn的拥塞控制方法、电子设备、介质及产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210137739.1A CN114726730B (zh) | 2022-02-15 | 2022-02-15 | 应用于cdn的拥塞控制方法、电子设备、介质及产品 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114726730A CN114726730A (zh) | 2022-07-08 |
CN114726730B true CN114726730B (zh) | 2023-12-29 |
Family
ID=82235249
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210137739.1A Active CN114726730B (zh) | 2022-02-15 | 2022-02-15 | 应用于cdn的拥塞控制方法、电子设备、介质及产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114726730B (zh) |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006034654A1 (fr) * | 2004-09-30 | 2006-04-06 | Zte Corporation | Procede de transmission adaptatif a debits multiples pour reseau local sans fil |
CN101075957A (zh) * | 2007-06-26 | 2007-11-21 | 上海大学 | Avs流媒体传输控制方法 |
US7426306B1 (en) * | 2002-10-24 | 2008-09-16 | Altera Corporation | Efficient use of keyframes in video compression |
CN101562497A (zh) * | 2008-04-17 | 2009-10-21 | 华为技术有限公司 | 一种分级b帧的帧层速率控制方法及装置 |
CN101616477A (zh) * | 2003-03-05 | 2009-12-30 | 三星电子株式会社 | 移动通信系统中控制反向业务速率的方法及装置 |
CN104125429A (zh) * | 2013-04-27 | 2014-10-29 | 杭州海康威视数字技术股份有限公司 | 视频数据传输的调节方法及装置 |
CN106102094A (zh) * | 2016-07-06 | 2016-11-09 | 广州海格通信集团股份有限公司 | 一种基于sdn网络的tcp拥塞控制方法 |
CN106973066A (zh) * | 2017-05-10 | 2017-07-21 | 福建星网智慧科技股份有限公司 | 一种实时通讯中h264编码视频数据传输方法以及系统 |
CN107027030A (zh) * | 2017-03-07 | 2017-08-08 | 腾讯科技(深圳)有限公司 | 一种码率分配方法及其设备 |
CN112054965A (zh) * | 2019-06-05 | 2020-12-08 | 阿里巴巴集团控股有限公司 | 一种拥塞控制方法、设备及计算机可读介质 |
CN113473185A (zh) * | 2021-04-28 | 2021-10-01 | 清华大学 | 基于视频流关键帧突发特性的可用带宽探测方法及装置 |
CN113992987A (zh) * | 2021-12-27 | 2022-01-28 | 北京蔚领时代科技有限公司 | 一种适用于云游戏场景的智能码率调节系统及方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8812673B2 (en) * | 2007-02-14 | 2014-08-19 | Alcatel Lucent | Content rate control for streaming media servers |
US9998338B2 (en) * | 2014-03-14 | 2018-06-12 | Huawei Technologies Co., Ltd | System and method for dynamic effective rate estimation for real-time video traffic |
-
2022
- 2022-02-15 CN CN202210137739.1A patent/CN114726730B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7426306B1 (en) * | 2002-10-24 | 2008-09-16 | Altera Corporation | Efficient use of keyframes in video compression |
CN101616477A (zh) * | 2003-03-05 | 2009-12-30 | 三星电子株式会社 | 移动通信系统中控制反向业务速率的方法及装置 |
WO2006034654A1 (fr) * | 2004-09-30 | 2006-04-06 | Zte Corporation | Procede de transmission adaptatif a debits multiples pour reseau local sans fil |
CN101075957A (zh) * | 2007-06-26 | 2007-11-21 | 上海大学 | Avs流媒体传输控制方法 |
CN101562497A (zh) * | 2008-04-17 | 2009-10-21 | 华为技术有限公司 | 一种分级b帧的帧层速率控制方法及装置 |
CN104125429A (zh) * | 2013-04-27 | 2014-10-29 | 杭州海康威视数字技术股份有限公司 | 视频数据传输的调节方法及装置 |
CN106102094A (zh) * | 2016-07-06 | 2016-11-09 | 广州海格通信集团股份有限公司 | 一种基于sdn网络的tcp拥塞控制方法 |
CN107027030A (zh) * | 2017-03-07 | 2017-08-08 | 腾讯科技(深圳)有限公司 | 一种码率分配方法及其设备 |
CN106973066A (zh) * | 2017-05-10 | 2017-07-21 | 福建星网智慧科技股份有限公司 | 一种实时通讯中h264编码视频数据传输方法以及系统 |
CN112054965A (zh) * | 2019-06-05 | 2020-12-08 | 阿里巴巴集团控股有限公司 | 一种拥塞控制方法、设备及计算机可读介质 |
CN113473185A (zh) * | 2021-04-28 | 2021-10-01 | 清华大学 | 基于视频流关键帧突发特性的可用带宽探测方法及装置 |
CN113992987A (zh) * | 2021-12-27 | 2022-01-28 | 北京蔚领时代科技有限公司 | 一种适用于云游戏场景的智能码率调节系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN114726730A (zh) | 2022-07-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9596281B2 (en) | Transport accelerator implementing request manager and connection manager functionality | |
CN106304203B (zh) | 数据传输方法及装置 | |
US6700893B1 (en) | System and method for controlling the delay budget of a decoder buffer in a streaming data receiver | |
US7496036B2 (en) | Method and apparatus for determining client-perceived server response time | |
US9438653B2 (en) | Method for providing an adaptive streaming service | |
EP2693707B1 (en) | Packet handling method, forwarding device and system | |
US9930097B2 (en) | Transport accelerator systems and methods | |
CA2846546C (en) | Cable modem termination system control of cable modem queue length | |
CN103269260A (zh) | 数据传输方法、数据接收端、数据发送端和数据传输系统 | |
JP5807710B2 (ja) | コンテンツ配信システム、コンテンツ配信方法及びプログラム | |
EP3560207A1 (en) | Managing congestion response during content delivery | |
US10868839B2 (en) | Method and system for upload optimization | |
CN103686446A (zh) | 视频数据传输的丢包重传方法和系统 | |
KR20230002784A (ko) | 오디오 및/또는 비디오 콘텐츠 전송을 위한 방법 및 서버 | |
GB2559271A (en) | Managing congestion response during content delivery | |
CN110602568A (zh) | 一种基于rtp的视频流传输丢包重传方法、设备及存储设备 | |
CN114726730B (zh) | 应用于cdn的拥塞控制方法、电子设备、介质及产品 | |
US9130843B2 (en) | Method and apparatus for improving HTTP adaptive streaming performance using TCP modifications at content source | |
WO2023060029A1 (en) | Techniques for client-controlled pacing of media streaming | |
Hisamatsu et al. | Non bandwidth-intrusive video streaming over TCP | |
CN109951717A (zh) | 一种快速开播方法及装置 | |
Wan et al. | Research on tcp optimization strategy of application delivery network | |
GB2588930A (en) | Multimedia system & method | |
CN116389480A (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 |