CN118175112A - 数据的传输控制方法、装置、电子设备和存储介质 - Google Patents
数据的传输控制方法、装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN118175112A CN118175112A CN202211542888.2A CN202211542888A CN118175112A CN 118175112 A CN118175112 A CN 118175112A CN 202211542888 A CN202211542888 A CN 202211542888A CN 118175112 A CN118175112 A CN 118175112A
- Authority
- CN
- China
- Prior art keywords
- network
- sending
- transmission
- congestion control
- parameter
- 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
- 230000005540 biological transmission Effects 0.000 title claims abstract description 197
- 238000000034 method Methods 0.000 title claims abstract description 99
- 238000003860 storage Methods 0.000 title claims abstract description 33
- 238000001514 detection method Methods 0.000 claims abstract description 207
- 230000002787 reinforcement Effects 0.000 claims description 48
- 230000015654 memory Effects 0.000 claims description 36
- 238000004590 computer program Methods 0.000 claims description 33
- 230000008901 benefit Effects 0.000 claims description 21
- 230000008569 process Effects 0.000 claims description 20
- 238000012549 training Methods 0.000 claims description 20
- 230000001934 delay Effects 0.000 claims description 11
- 230000004044 response Effects 0.000 claims description 5
- 125000004122 cyclic group Chemical group 0.000 claims description 4
- 238000004891 communication Methods 0.000 abstract description 13
- 230000009286 beneficial effect Effects 0.000 abstract description 4
- 208000027744 congestion Diseases 0.000 description 156
- 238000010586 diagram Methods 0.000 description 39
- 238000004422 calculation algorithm Methods 0.000 description 37
- 238000005516 engineering process Methods 0.000 description 30
- 230000006870 function Effects 0.000 description 19
- 238000005259 measurement Methods 0.000 description 15
- 238000012545 processing Methods 0.000 description 13
- 230000000903 blocking effect Effects 0.000 description 12
- 210000002569 neuron Anatomy 0.000 description 12
- 238000013473 artificial intelligence Methods 0.000 description 10
- 238000004364 calculation method Methods 0.000 description 10
- 230000003993 interaction Effects 0.000 description 8
- 238000010801 machine learning Methods 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 230000000737 periodic effect Effects 0.000 description 5
- 230000007547 defect Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 239000000243 solution Substances 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 238000011160 research Methods 0.000 description 3
- 230000003044 adaptive effect Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 2
- 238000013135 deep learning Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000012512 characterization method Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000006698 induction Effects 0.000 description 1
- 238000002347 injection Methods 0.000 description 1
- 239000007924 injection Substances 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 239000000523 sample Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000013526 transfer learning Methods 0.000 description 1
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/26—Flow control; Congestion control using explicit feedback to the source, e.g. choke packets
- H04L47/263—Rate modification at the source after receiving feedback
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/20—Traffic policing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/80—Actions related to the user profile or the type of traffic
- H04L47/805—QOS or priority aware
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/21—Server components or server architectures
- H04N21/218—Source of audio or video content, e.g. local disk arrays
- H04N21/2187—Live feed
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Databases & Information Systems (AREA)
- Multimedia (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请涉及通信技术领域,尤其涉及一种数据的传输控制方法、装置、电子设备和存储介质,用以提升多媒体资源数据的有效传输性能。其中,方法包括:响应于客户端针对目标资源的流量请求,基于流量请求查询相应的目标资源数据;确定与客户端的会话状态处于拥塞控制阶段,基于当前的发送策略参数,将目标资源数据通过流量报文发送至客户端;确定处于网络探测阶段,基于当前的探测策略参数执行网络探测任务,直至网络探测阶段结束并切换至拥塞控制阶段后,继续发送流量报文;发送策略参数与探测策略参数是根据网络的服务质量信息确定的。本申请能够避免相关慢启动阶段带来的流量传输偏低的问题,有利于提升多媒体资源数据的有效传输性能。
Description
技术领域
本申请涉及通信技术领域,尤其涉及一种数据的传输控制方法、装置、电子设备和存储介质。
背景技术
随着互联网多媒体技术的更新、多媒体平台的扩大、多媒体资源的多元化发展以及智能终端的普及,多媒体应用越来越多的出现在日常生活中,涉及到各个行业和领域。并且,随着这些多媒体应用的使用量越来越大,多媒体质量不稳定,多媒体画面卡顿、马赛克、花屏等问题也经常带来不好的使用体验。
相关技术中,改善多媒体资源数据传输的方法主要聚焦于优化拥塞控制算法。以音视频直播业务为例,该方法并没有考虑音视频直播业务的特性,缺乏对音视频直播业务的适配能力。例如图1所示,相关拥塞控制算法在响应终端对象的流量请求消息时,首先经过慢启动阶段,在该阶段中,拥塞控制算法的拥塞窗口(CWND)或发送速率(Pacing_Rate)不断变化(如成倍增加),直至进入相对稳定的状态(如拥塞避免状态或排空以及网络探测状态)。但是,目前的音视频直播业务会话有很大一部分属于“小流”,当会话结束时,拥塞控制算法还未退出慢启动,因而,只能采用较小的发送速率或窗口进行数据传输,致使传输性能偏低。
综上,如何提升多媒体资源数据的有效传输性能是亟待解决的。
发明内容
本申请实施例提供一种数据的传输控制方法、装置、电子设备和存储介质,用以提升多媒体资源数据的有效传输性能。
本申请实施例提供的一种数据的传输控制方法,包括:
响应于客户端针对目标资源的流量请求,基于所述流量请求查询相应的目标资源数据;
在确定本地与所述客户端之间的会话状态处于拥塞控制阶段时,基于当前的发送策略参数,将所述目标资源数据通过流量报文发送至所述客户端;其中,所述发送策略参数用于指示资源数据的发送参数信息;
在确定本地与所述客户端之间的会话状态处于网络探测阶段时,基于当前的探测策略参数执行网络探测任务,直至所述网络探测阶段结束并切换至所述拥塞控制阶段后,继续向所述客户端发送流量报文;其中,所述探测策略参数用于指示资源数据传输过程中所丢失流量报文的重传次数;所述发送策略参数与探测策略参数是根据网络的服务质量信息确定的。
本申请实施例提供的一种数据的传输控制装置,包括:
响应单元,用于响应于客户端针对目标资源的流量请求,基于所述流量请求查询相应的目标资源数据;
传输单元,用于在确定本地与所述客户端之间的会话状态处于拥塞控制阶段时,基于当前的发送策略参数,将所述目标资源数据通过流量报文发送至所述客户端;其中,所述发送策略参数用于指示资源数据的发送参数信息;
探测单元,用于在确定本地与所述客户端之间的会话状态处于网络探测阶段时,基于当前的探测策略参数执行网络探测任务,直至所述网络探测阶段结束并切换至所述拥塞控制阶段后,继续向所述客户端发送流量报文;其中,所述探测策略参数用于指示资源数据传输过程中所丢失流量报文的重传次数;所述发送策略参数与探测策略参数是根据网络的服务质量信息确定的。
可选的,所述传输单元具体用于:
基于当前的发送策略参数,以及上一轮网络探测得到的服务质量信息,确定本轮拥塞控制阶段对应的发送参数信息;
根据所述发送参数信息,将所述目标资源数据通过流量报文发送至所述客户端。
可选的,所述探测单元具体用于:
基于所述探测策略参数,确定在本轮拥塞控制阶段丢失的流量报文需要进行重传的轮次N,N为大于等于0的整数;
在之后连续N轮网络探测阶段,通过再次重传所述丢失的流量报文执行网络探测任务,获得相应轮次对应的服务质量信息。
可选的,所述发送策略参数与探测策略参数是周期性更新的,每次更新是通过将上一轮网络探测得到的服务质量信息,输入已训练的强化学习模型实现的;所述装置还包括:
模型训练单元,用于通过下列方式训练得到所述强化学习模型:
基于通过网络探测得到的历史服务质量信息,对待训练的强化学习模型进行多轮训练迭代训练,其中,每轮循环迭代训练执行以下过程:
将上一轮探测的历史服务质量信息,输入待训练的强化学习模型;
获取所述强化学习模型输出的,适配本轮网络条件与状态的策略参数组,所述策略参数组包含一个发送策略参数和一个探测策略参数;
获取与所述策略参数组对应的收益值,并基于所述收益值对所述待训练的强化学习模型进行参数调整。
可选的,所述模型训练单元具体用于:
获取基于所述策略参数组进行网络探测得到的历史服务质量信息,所述历史服务质量信息包括:有效吞吐量、时延、网络传输丢包率及重传报文再次丢包率;
基于所述有效吞吐量与时延的比值,以及所述网络传输丢包率及重传报文再次丢包率,确定所述策略参数组对应的收益值。
可选的,所述发送参数信息包括发送速率;所述传输单元具体用于:
获取以预设数值作为底数,以所述发送策略参数作为指数获得的目标系数;
基于上一轮网络探测得到的服务质量信息中所有会话各自的可用带宽,确定目标带宽;
将所述目标系数与所述目标带宽的乘积,作为本轮拥塞控制阶段的发送速率。
可选的,所述发送参数信息包括发送窗口;所述传输单元具体用于:
获取以预设数值作为底数,以所述发送策略参数作为指数获得的目标系数;
基于上一轮网络探测得到的服务质量信息中所有会话各自的可用带宽,确定目标带宽;以及,基于上一轮网络探测得到的服务质量信息中所有会话各自的时延,确定目标时延;
将所述目标系数、所述目标带宽与所述目标时延的乘积,作为本轮拥塞控制阶段的发送窗口。
可选的,所述目标带宽为所有会话各自的最大可用带宽的平均值或指定分位点值。
可选的,所述目标时延为所有会话各自的最小时延的平均值或指定分位点值。
可选的,所述探测单元具体用于:
若所述探测策略参数为0,则确定N为0;
若所述探测策略参数大于0,则确定N=2β-1,β为探测策略参数。
可选的,所述装置还包括:
第一切换单元,用于在确定本地与所述客户端之间的会话满足第一切换条件时,相应的会话状态由拥塞控制阶段切换为网络探测阶段;其中,所述第一切换条件包括以下至少一种:
本轮拥塞控制阶段的持续时长超过第一阈值;
当前没有可发送的资源数据。
可选的,所述装置还包括:
第二切换单元,用于在确定本地与所述客户端之间的会话满足第二切换条件时,相应的会话状态由网络探测阶段切换为拥塞控制阶段;其中,所述第二切换条件包括以下至少一种:
本轮网络探测阶段的持续时长超过第二阈值;
当前有可发送的资源数据。
本申请实施例提供的一种电子设备,包括处理器和存储器,其中,所述存储器存储有计算机程序,当所述计算机程序被所述处理器执行时,使得所述处理器执行上述任意一种数据的传输控制方法的步骤。
本申请实施例提供一种计算机可读存储介质,其包括计算机程序,当所述计算机程序在电子设备上运行时,所述计算机程序用于使所述电子设备执行上述任意一种数据的传输控制方法的步骤。
本申请实施例提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序存储在计算机可读存储介质中;当电子设备的处理器从计算机可读存储介质读取所述计算机程序时,所述处理器执行所述计算机程序,使得所述电子设备执行上述任意一种数据的传输控制方法的步骤。
本申请有益效果如下:
本申请实施例提供了一种数据的传输控制方法、装置、电子设备和存储介质。由于本申请提出的传输控制方法包含两种状态机:拥塞控制阶段和网络探测阶段,可根据网络的服务质量信息,更新两个阶段各自对应的策略参数;进而,数据发送方按照其中的发送策略参数响应客户端请求,并跳过慢启动进入后续排空或拥塞避免算法,避免了相关拥塞控制算法在流结束时还未退出慢启动而导致传输性能偏低的缺陷;此外,数据发送方还可在网络探测阶段,通过再次重传过去一段时间丢失的流量报文来探测最新的网络条件与状态信息,减少了因丢包带来的对象终端卡顿这类问题的发生,有利于提升多媒体资源数据的有效传输性能。
本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为相关技术中的一种拥塞控制算法的工作示意图;
图2A为相关技术中的一种多路径传输示意图;
图2B为相关技术中的一种重传报文丢失示意图;
图3为本申请实施例中的一种音视频直播业务示意图;
图4为本申请实施例中的一种应用场景示意图;
图5为本申请实施例中的一种数据的传输控制方法的实施流程图;
图6为本申请实施例中的一种状态机之间转换示意图;
图7A为本申请实施例中的一种服务器侧智能拥塞控制阶段报文发送示意图;
图7B为本申请实施例中的一种应用受限示意图;
图8A为本申请实施例中的一种服务器侧精细网络探测阶段报文重传示意图;
图8B为本申请实施例中的一种非应用受限示意图;
图9为本申请实施例中的一种报文重传的示意图;
图10为本申请实施例中的另一种报文重传的示意图;
图11为本申请实施例中的一种基于强化学习模型的状态机参数调整示意图;
图12为本申请实施例中的一种基于强化学习的参数生成示意图;
图13为本申请实施例中的一种传输控制方法的实施流程图;
图14为本申请实施例中的一种服务器与客户端之间的交互时序图;
图15为相关技术中的一种流量传输与网络探测示意图;
图16为本申请实施例中的一种服务器侧流量传输与网络探测示意图;
图17为本申请实施例中的一种数据的传输控制装置的组成结构示意图;
图18为本申请实施例中的一种电子设备的组成结构示意图;
图19为应用本申请实施例的一种计算装置的一个硬件组成结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请技术方案的一部分实施例,而不是全部的实施例。基于本申请文件中记载的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请技术方案保护的范围。
下面对本申请实施例中涉及的部分概念进行介绍。
媒体和目标资源:在计算机和通信领域,信息的正文、图形、声音、图像、动画等,都可以称为媒体;本申请中的目标资源则是指数据请求方(客户端)请求数据发送方(如云服务器、网关服务器等)进行传输的多媒体信息,如在线医疗,在线教育,直播,视频点播,短视频,在线会议,安防监测,网络图书馆,利用互联网传送电视节目,在线游戏等相关信息。
资源数据:是指目标资源传输时的相关数据,具体可以是音视频数据、图像数据、文字数据等。以目标资源为直播资源为例,资源数据即表征直播数据,直播数据是直播过程中与直播相关的数据,包括但不限于直播过程中产生的直播视频数据和对应的直播音频数据组成的直播数据块、直播视频帧或者直播音频帧本身等等。此外,直播数据结构中还可进一步携带时间戳、直播数据大小、直播数据类型等等。
流量报文:报文是网络中交换与传输的数据单元,即数据发送方一次性要发送的数据块。报文包含了将要发送的完整的数据信息,其长短很不一致,长度不限且可变。本申请中的流量报文即包含资源数据的报文,以直播数据为例,该直播数据是以帧为单位,帧是视频中的画面,一帧即一个画面,一帧包括直播视频帧及其对应的直播音频数据。一个流量报文数据包可以包含一帧或多帧直播数据。
拥塞控制:拥塞现象是指到达通信子网中某一部分的分组数量过多,使得该部分网络来不及处理,以致引起这部分乃至整个网络性能下降的现象,也即,对网络中的资源需求大于可用的,就会造成拥塞,拥塞控制则是防止过多的数据注入到网络中造成拥塞,保障网络的稳定。
拥塞控制阶段:也称智能拥塞控制阶段,该阶段为本申请提出的智能传输控制方法所包含一种状态机。在智能拥塞控制阶段,服务器可基于当前的发送策略参数,向客户端推送资源数据。此外,在智能拥塞控制阶段可能还会存在丢包的情况,对于丢失的流量报文,可在网络探测阶段进行重传,并通过丢失报文的重传,对网络的服务质量信息进行探测。
网络探测阶段:也称精细网络探测阶段,该阶段为本申请提出的智能传输控制方法所包含另一种状态机。在精细网络探测阶段,服务器可基于当前的探测策略参数确定丢失报文的重传次数,基于该数值,在相应的精细网络探测阶段通过重传智能拥塞控制阶段丢失的流量报文,来执行网络探测任务。
发送策略参数:用于指示资源数据发送参数信息,可基于网络探测得到的服务质量信息确定,其中,发送参数信息即表征数据发送方向客户端发送资源数据时,所采取的发送参数。在本申请中,发送策略参数可进行周期性的更新,在服务器响应客户端的流量请求后,则可基于当前的发送策略参数计算出资源数据的发送速率或是发送窗口等发送参数信息,以便基于相应的发送参数信息,将资源数据发送至客户端。
探测策略参数:用于指示资源数据传输过程中所丢失的流量报文的重传次数。在本申请中,探测策略参数也可进行周期性的更新,在服务器与客户端之间的会话状态切换为精细网络探测阶段后,则可根据基于探测策略参数计算出的重传次数,对当前的网络条件和状态进行探测。
服务质量(Quality of Services,QoS)信息:指一个网络能够利用各种基础技术,为指定的网络通信提供更好的服务能力,是网络的一种安全机制,是用来解决网络延迟和阻塞等问题的一种技术。当网络过载或拥塞时,能确保重要业务量不受延迟或丢弃,同时保证网络的高效运行。
应用受限状态:表征数据发送方的应用受到了限制。在本申请中,数据发送方主要用于向数据请求方进行数据(如资源数据)的传输,因而,应用受限状态即表示数据发送方没有可以向客户端发送的资源数据。
非应用受限状态:表征数据发送方的应用没有受到限制。在本申请中,数据发送方主要用于向数据请求方进行数据(如资源数据)的传输,因而,非应用受限状态即表示数据发送方存在可以向客户端发送的资源数据。需要注意的是,这里所说的“存在”是指数据发送方有新的资源数据可以向客户端发送,“新的资源数据”不包含之前丢失需重传的流量报文。
在本申请中,云技术(Cloud technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。云技术基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。
可选的,本申请中提出的数据的传输控制方法可应用于云服务器,或是与云服务器连接的网关服务器等。具体的,该方法可以应用于云服务器与对象终端之间的音视频直播流量传输,例如,云服务器(通过网关服务器)响应对象终端的直播流请求等。本文中的云服务器、网关服务器都可简称为服务器。
在本申请中,人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
机器学习(Machine Learning,ML)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。机器学习和深度学习通常包括人工神经网络、置信网络、强化学习、迁移学习、归纳学习、式教学习等技术。
需要说明的是,本申请实施例中的发送策略参数和探测策略参数可通过强化学习得到,如将通过网络探测获得的服务质量信息作为强化学习模型输入,通过模型训练与计算获得适配当前网络条件与状态的策略参数组,每个策略参数组可包括一个发送策略参数和一个探测策略参数,该数值最终应用于数据发送方初始拥塞窗口或初始发送速率的调整。
下面对本申请实施例的设计思想进行简要介绍:
以互联网直播为例,近几年,互联网直播逐渐成为内容分发网络(ContentDelivery Network,CDN)厂商(即云服务提供商)、内容服务提供商、网络提供商等的主要营收业务;互联网对象(如用户)可通过音视频直播业务参与网络购物、在线学习、远程会议等,不断丰富自身的生产生活方式。在音视频直播过程中,对象侧的卡顿(如百秒卡顿时长、频率等)、马赛克、花屏等参数成为评估直播业务的重要指标。例如,云服务提供商能够提供快速高效的网络传输质量,则将获得更多的客户订单,其自身的收益也将不断增长;内容服务提供商同样也会选择能够较好传输质量的云服务提供商,从而可以为自身用户带来更好的直播业务体验,随着用户数量的不断提升,这些内容服务提供商也将获得更多的收益。因此,研究提升音视频直播业务效果的网络传输优化方法成为学术界与工业界的热点。
相关改善音视频直播业务的方法,除了上述所列举的优化拥塞控制算法外,还包括设计传输协议的研究。其中,第二类方法主要在相关传输控制协议(Transport ControlProtocol,TCP)或用户数据报协议(User Datagram Protocol,UDP)基础上进行改进或创新,如图2A所示,在TCP基础上,提出具有多路传输功能的多路径TCP传输协议(Multiple-Path TCP,MP-TCP),数据发送方将数据通过不止一条路径(如基于蜂窝网络的路径和基于WIFI网络的路径)发送至接收端,避免了因其中某一条路径拥塞而导致数据传输性能降低的问题,有效改善了对象侧的业务体验。遗憾的是,上述方法的实现具有局限性,只能够正常运行的前提条件在于对象终端支持多路径传输功能,如果终端对象要求流量数据只能通过WIFI传输,则MP-TCP方法无法发挥其技术本身的优势。
而第一类方法主要体现在设计或优化拥塞控制算法,这类研究主要根据流量传输过程中产生的时延、丢包等信息作为拥塞控制信号对发送窗口和/或发送速率进行调整。例如,当网络出现丢包时,reno等算法会将发送窗口进行“减半”操作;当网络时延增大时,Vages等算法对报文发送窗口进行优化;与此同时,现在拥塞控制算法可借助网络设备的辅助对网络拥塞状态进行更为精确的,例如显式拥塞控制(Explicit CongestionNotification,ECN)信息用于标记流量传输过程中沿途设备是否出现拥塞,数据发送方可根据该信息对发送窗口和速率进行调整;另外,BBR(一种拥塞控制算法)等算法基于自身设计的模型对网络传输过程进行拥塞控制。
遗憾的是,上述用于改善网络传输质量的网络传输协议和拥塞控制算法为通用算法,这些算法应用于音视频直播业务中并不能取得令人满意的效果,其根本原因在于在算法设计初期并没有考虑音视频直播业务的特性,即相关方法缺乏对音视频直播业务的适配能力。相关音视频直播业务及其拥塞控制算法主要存在的问题如下:
(1)相关音视频直播业务会话有很大一部分属于“小流”,当会话结束时,拥塞控制算法还未退出慢启动状态。造成该现象的原因可概括为:①会话持续时间太短或流量较小。如图1所示,拥塞控制算法从A点对应的发送策略开始,还未探测到B点时会话就已经结束,此时,会话流量在发送时均以小于B点对应的发送速率或窗口进行发送,致使传输性能偏低;②拥塞控制算法退出慢启动阶段的条件设置得过于严苛。此时,会话在图1中拥塞控制B点时不断尝试更大的发送参数造成更多的报文出现丢包现象,当丢包率增大时,流量传输的有效吞吐量降低。因此,研究如何设置适配音视频直播流量传输的拥塞控制算法参数值(即图1中的B点)将成为本申请关注的重点。
(2)相关拥塞控制算法增加具备网络探测功能的阶段,从而期望获取更加准确的网络条件或状态。如BBR算法在ProbRTT阶段用更小的发送窗口探测最小时延时,以用于对发送窗口实现更为准确的配置;在ProbBW阶段用更大的发送速率探测网络可用带宽,以用于对流量发送速率实现更为准确的配置。但这类方法存在以下问题:①高频率的网络探测(如每隔100ms、200ms或1s)会影响后续流量报文的发送,致使后续报文因等待网络探测而可能错过最佳发送时机,造成对象终端的音视频直播业务的卡顿等现象;②低频率的网络探测(如每隔5s、10s或20s)会造成网络条件或状态探测不够准确,造成流量发送窗口或发送速率不准确,同样会造成对象终端的QoE带来消极影响。因此,研究在不影响后续音视频直播流量传输的情况下如何提升相关拥塞控制算法的网络探测频率将成为本申请关注的重点。
(3)流量传输过程的丢包现象是造成对象终端卡顿的主要原因,更严重地,如果丢失的报文在重传过程中再次出现丢包,会在很大概率上造成对象终端的卡顿。如图2B所示,服务器在向对象终端发送的流量报文在网络传输过程中出现丢失,且重传的报文在路由设备R1处再次丢失,此时云服务器需要再次向对象终端重传丢失的流量报文,在该过程中,对象终端因等待丢失报文的重传而无法将后续报文上送应用层播放器,致使播放器出现卡顿、花屏、马赛克等现象。
有鉴于此,本申请提出的传输控制方法包含两种状态机:拥塞控制阶段和网络探测阶段,可根据网络的服务质量信息,更新两个阶段各自对应的策略参数;进而,数据发送方按照其中的发送策略参数响应客户端请求,并跳过慢启动进入后续排空或拥塞避免算法,避免了相关拥塞控制算法在流结束时还未退出慢启动而导致传输性能偏低的缺陷;此外,数据发送方还可在网络探测阶段,通过再次重传过去一段时间丢失的流量报文来探测最新的网络条件与状态信息,减少了因丢包带来的对象终端卡顿这类问题的发生,有利于提升多媒体资源数据的有效传输性能。
以下结合说明书附图对本申请的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本申请,并不用于限定本申请,并且在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
随着计算机技术以及网络技术的发展,网络越来越复杂,传输内容越来越多,如在线医疗,在线教育,直播,视频点播,短视频,在线会议,安防监测,网络图书馆,利用互联网传送电视节目,在线游戏等等相关多媒体资源的有效传输也越来越关键。
本申请中提出的传输控制方法,即可应用于上述任意一种多媒体资源或者是其他未提及的多媒体资源的数据传输过程。
下面主要以目标资源为直播,目标资源数据为直播数据为例:
本申请实施例可以应用于音视频直播相关的业务,如体育节目直播、游戏直播、晚会直播、空间直播以及现场直播、云直播等。
参阅图3所示,其为本申请实施例中的一种音视频直播业务示意图。在音视频直播业务中,涉及到主播、服务器、观众三者之间的交互,具体交互过程如图3所示,主播通过自身的终端设备采集直播音视频信息,并向服务器推送这些音视频直播流量(即上行:推流),每个直播通过唯一的统一资源定位符(Uniform Resource Locator,URL)链接进行标识,如图3所示列举了n个直播,对应的url分别为url_1、url_2、……、url_n,对应的直播数据分别表示为data_1、data_2、……、data_n;服务器在收到这些直播流量后通过音频编码等形式将直播数据(data)存储于服务器中,并建立<url,data>映射表;当有观众通过安装有直播客户端的对象终端,向服务器发送直播流量请求时,服务器通过请求报文中携带的url标识,将对应的data发送至请求的观众(即下行:推流)。
需要说明的是,上述所列举的音视频直播业务的业务流程只是简单举例说明,具体实施方式可参见下述实施例,重复之处不再赘述。
如图4所示,其为本申请实施例中的一种应用场景示意图。该应用场景图中包括多个对象终端,网关服务器和云服务器。
在本申请实施例中,对象终端包括但不限于手机、平板电脑、笔记本电脑、台式电脑、电子书阅读器、智能语音交互设备、智能家电、车载终端等设备;对象终端上可以安装有直播客户端,该客户端可以是软件(例如浏览器、直播软件、短视频软件、音视频软件、在线会议软件等),也可以是网页、小程序等。
在本申请中,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统;还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。
下面以对象终端1与云服务器之间的直播数据传输为例,对本申请实施例中的传输控制方法进行简单介绍:
如图4所示,①对象终端1向云服务器发送音视频直播流量请求,该请求中包含能够标识音视频直播内容的唯一标识(ID),即直播的URL链接;②云服务器的网关服务器在收到来自对象终端1的直播流量请求后,根据请求报文中携带的URL链接(从云服务器中)查找对应的音视频直播流量,并“准备”将这些流量发送至对象终端1;③网关服务器为每个对象请求的音视频直播会话维持2种状态机,具体包含智能拥塞控制阶段和精细网络探测阶段,通过智能拥塞控制阶段计算相应对象终端请求的发送参数信息(如发送速率和/或发送窗口);④网关服务器通过使用智能拥塞控制阶段计算的发送参数信息向对象终端发送对应的直播数据;⑤对象终端1在收到来自云服务器(更确切地说是网关服务器)的流量报文后,向服务器发送消息确认报文;若服务器为该会话维护的状态机仍为智能拥塞控制阶段,则使用③中的发送参数信息继续向对象终端1发送直播数据;⑥若服务器为该会话维护的状态机已经由智能拥塞控制阶段切换至精细网络探测阶段,则执行⑦;⑦服务器执行网络探测任务,直至精细网络探测阶段结束并切换至智能拥塞控制阶段后继续向对象终端发送直播数据。
需要说明的是,本申请各实施例中的数据的传输控制方法可以由电子设备执行,该电子设备可以为网关服务器或者云服务器。具体地,该方法的核心技术可作为服务器的一个模块,该模块可位于云服务器或网关服务器,主要应用于服务器向对象终端传输直播流量,通过调整流量发送相关的发送策略参数和网络探测相关的探测策略参数,提升流量传输的性能。
在一种可选的实施方式中,对象终端与服务器之间可以通过通信网络进行通信。
在一种可选的实施方式中,通信网络是有线网络或无线网络。
需要说明的是,图4所示只是举例说明,实际上终端和服务器的数量不受限制,在本申请实施例中不做具体限定。
本申请实施例中,当服务器的数量为多个时,多个服务器可组成为一区块链,而服务器为区块链上的节点;如本申请实施例所公开的数据的传输控制方法,其中所涉及的资源数据、发送策略参数、探测策略参数等可保存于区块链上。
需要说明的是,上述主要是以直播数据传输为例,除直播数据外的其他资源数据的传输同样适用于本申请,如在线会议参与者可分为主持人和其他观众,观众可通过相关的在线会议客户端向服务器发送流量请求,以获取相关的会议数据;又如,在线购物业务中的购物方可通过相关的购物客户端向服务器发送流量请求,以获取相关的商品数据等,在此不再一一赘述。
此外,本申请实施例可应用于各种场景,包括但不限于云技术、人工智能、智慧交通、辅助驾驶等场景。
下面结合上述描述的应用场景,参考附图来描述本申请示例性实施方式提供的数据的传输控制方法,需要注意的是,上述应用场景仅是为了便于理解本申请的精神和原理而示出,本申请的实施方式在此方面不受任何限制。
参阅图5所示,为本申请实施例提供的一种数据的传输控制方法的实施流程图,以服务器(云服务器或网关服务器)为执行主体为例,该方法的具体实施流程如下S51~S53:
S51:服务器响应于客户端针对目标资源的流量请求,基于流量请求查询相应的目标资源数据。
具体的,该流量请求中可包含目标资源的唯一标识,该标识可以是直播的URL链接。服务器获取到该流量请求中的URL后,根据预先构建的<url,data>映射表,从云服务器中查找相应的目标资源数据DATA,并“准备”将这些流量发送至所请求的客户端。
S52:服务器在确定本地与客户端之间的会话状态处于拥塞控制阶段时,基于当前的发送策略参数,将目标资源数据通过流量报文发送至客户端。
其中,发送策略参数用于指示资源数据的发送参数信息,该发送参数信息表征的是服务器与客户端之间进行流量传输时,所需的发送参数,如发送速率、发送窗口等。
S53:服务器在确定本地与客户端之间的会话状态处于网络探测阶段时,基于当前的探测策略参数执行网络探测任务,直至网络探测阶段结束并切换至拥塞控制阶段后,继续向客户端发送流量报文。
其中,探测策略参数用于指示资源数据传输过程中所丢失流量报文的重传次数。
服务器在网络探测阶段执行网络探测任务时,可通过重传拥塞控制阶段丢失的直播流量报文获得最新的网络条件和状态信息(也可称作网络QoS信息)。其中,探测报文为过去一段时间丢失的流量报文,探测的内容包括但不限于网络最小时延、最大可用带宽,继而,可通过网络测量(也即网络探测)得到的网络最小时延和最大可用带宽等进行探测,从而获取最新的网络状态或条件(也即最新的网络QoS信息)。
当服务器由网络探测阶段切换为拥塞控制阶段时,可根据最新的探测结果,重新计算流量传输的策略参数,如发送策略参数、探测策略参数等,使用计算后的参数继续响应对象流量请求。也即,在步骤S53中,服务器继续向客户端发送流量报文的过程中,则需要基于最新确定的发送策略参数,继续响应对象终端的流量请求。
在本申请中,拥塞控制算法可分为拥塞控制阶段和网络探测阶段,避免了相关拥塞控制算法中慢启动阶段发送速率偏低、丢包率较高等造成的流量有效传输性能较低的问题;网络探测阶段在相关周期性探测的基础上,通过再次重传过去一段时间丢失的音视频数据的方式对网络最小时延和最大可用带宽等进行探测,避免了低频率网络探测结果不准确和高频率网络探测阻碍后续流量发送的难题。
基于上述实施方式,有利于提升相关资源传输业务(如音视频直播业务、在线会议业务等)对象终端的体验质量(Quality of Experience,QoE),优化相关资源(如音视频直播、在线会议画面)的卡顿时长、频率等指标,提升内容服务提供商和云服务提供商的竞争力。
下面结合具体实施例,对本申请中提出的数据的传输控制方法进行详细说明:
以音视频直播业务为例,本申请中,服务器在响应对象请求的直播流量时,针对每个音视频直播会话的流量传输维持本申请设计的两个状态机,这两个状态机分别为智能拥塞控制阶段(也即拥塞控制阶段)和精细网络探测阶段(也即网络探测阶段),在会话最开始,状态机处于智能拥塞控制阶段,此时服务器会基于当前的发送策略参数计算发送参数信息,并使用该发送参数信息向对象终端发送音视频直播流量。在经过一定时间后,会话状态机之间会出现切换,由智能拥塞控制阶段切换至精细网络探测阶段。在精细网络探测阶段,服务器可通过重传智能拥塞控制阶段丢失的直播流量报文获得最新的网络条件和状态信息。
具体的,上述智能拥塞控制阶段和精细网络探测阶段这两个状态机之间在满足一定条件的情况下可进行状态切换。如图6所示,其为本申请实施例中的一种状态机之间转换示意图,在满足条件1的情况下,服务器本地与客户端之间的会话状态可由智能拥塞控制阶段切换为精细网络探测阶段;在满足条件2的情况下,服务器本地与客户端之间的会话状态可由精细网络探测阶段切换为智能拥塞控制阶段。其中,条件1也可称作第一切换条件2也可称作第二切换条件。
具体地,服务器在确定本地与某一客户端之间的会话满足第一切换条件时,与该客户端的会话状态由智能拥塞控制阶段切换为精细网络探测阶段;其中,第一切换条件包括以下至少一种:
A1:本轮拥塞控制阶段的持续时长超过第一阈值。
例如,该阶段持续时长超过第一阈值T1,则由智能拥塞控制阶段切换为精细网络探测阶段。其中,第一阈值T1可由管理员进行设置。
如图7A所示,其为本申请实施例中的一种服务器侧智能拥塞控制阶段报文发送示意图。图7A中,服务器在智能拥塞控制阶段响应对象直播流量请求,统计该阶段的持续时长t,若该时长超过阈值T1,如公式(1)所示,,则服务器将智能拥塞控制阶段切换至精细网络探测阶段。
t1 - t0 > T1 (1)
其中,t0为智能拥塞控制阶段的开始时间,t1为智能拥塞控制阶段的当前时间;t1-t0即表示本轮智能拥塞控制阶段的持续时长。
A2:当前没有可发送的资源数据,也即数据发送方处于应用受限状态。
参阅图7B所示,其为本申请实施例中的一种应用受限示意图。若服务器在智能拥塞控制阶段的持续时间不超过第一阈值T1(即t1-t0≤T1),但服务器响应对象终端请求过程中处于应用受限状态(即当前没有数据可以发送),则服务器侧针对该会话从智能拥塞控制阶段切换至精细网络探测阶段,即图7B中,从时间点t1至t2,服务器将执行精细化的网络探测。
需要说明的是,上述是以第一切换条件仅包含A1或A2为例的,在第一切换条件仅包含A1的情况下,若本轮智能拥塞控制阶段的持续时长超过T1,即可切换为精细网络探测阶段;在第一切换条件仅包含A2的情况下,若服务器当前处于应用受限状态,即可切换为精细网络探测阶段。此外,第一切换条件也可包括A1和A2,即在本轮智能拥塞控制阶段的持续时长超过第一阈值T1,且当前服务器针对该会话处于应用受限状态,则切换为精细网络探测阶段,本文不做具体限定。
可选的,服务器在确定本地与某一客户端之间的会话满足第二切换条件时,与该客户端的会话状态由网络探测阶段切换为拥塞控制阶段;其中,第二切换条件包括以下至少一种:
B1:本轮网络探测阶段的持续时长超过第二阈值。
例如,该阶段持续时长超过第二阈值T2,针对周期性网络探测的第二阈值T2由管理员设置。
如图8A所示,其为本申请实施例中的一种服务器侧精细网络探测阶段报文重传示意图。在图8A中,服务器在精细网络探测阶段通过重传报文进行网络探测,统计该阶段的持续时长t,若该时长超过阈值T2,如公式(2)所示,则服务器将智能拥塞控制阶段切换至精细网络探测阶段。
t2 – t1 > T2 (2)
其中,t1为精细网络探测阶段的开始时间,t2为精细网络探测阶段的当前时间;t2–t1即表示本轮精细网络探测阶段的持续时长。
B2:当前有可发送的资源数据,也即数据发送方处于非应用受限状态。
如图8B所示,其为本申请实施例中的一种非应用受限示意图。若服务器在精细网络探测阶段的持续时间不超过第二阈值T2(即t2-t1≤T2),但服务器网络探测过程中处于非应用受限状态(即当前有数据可以发送),则服务器侧针对该会话从精细网络探测阶段切换至智能拥塞控制阶段,即图8B中,从时间点t2至t3,服务器继续向客户端发送资源数据。
需要说明的是,上述是以第二切换条件仅包含B1或B2为例的,在第二切换条件仅包含B1的情况下,若本轮精细网络探测阶段的持续时长超过T1,即可切换为智能拥塞控制阶段;在第二切换条件仅包含B2的情况下,若服务器当前处于非应用受限状态,即可切换为智能拥塞控制阶段。此外,第二切换条件也可包括B1和B2,即在本轮精细网络探测阶段的持续时长超过第二阈值T2,且当前服务器针对该会话处于非应用受限状态,则切换为智能拥塞控制阶段,本文不做具体限定。
下面主要是以第一切换条件为A1或A2,第二切换条件为B1和B2为例,进行简单举例说明。
在本申请实施例中,云服务器在向对象发送资源数据,如音视频直播流量时,可根据当前的发送策略参数调节发送窗口和/或发送速率等发送参数信息;当服务器处于应用受限状态或超过一段时间阈值T1后,流量传输进入精细网络探测阶段,在该阶段中,服务器通过再次重传上一阶段的丢包对网络最小时延和最大可用带宽等进行探测,从而获取最新的网络状态或条件;当探测完成后,直播视频流量传输重新进入智能拥塞控制阶段,并根据最新的探测结果设置发送策略参数等。
通过上述切换条件的设置,本申请中当流量发送过程中出现应用受限时,数据发送方可通过再次重传过去一段时间丢失的报文来探测最新的网络条件与状态信息,避免了重传次数过少带来的因再次丢包造成终端卡顿和重传次数过多造成的流量成本过高的难题。
此外,本申请中的精细网络探测周期支持固定周期与应用受限状态探测相结合,在不阻塞后续流量发送的情况下增大了网络探测的频率,有利于配置更为准确的发送策略参数、重传策略参数,改善对象侧的使用体验。
下面对智能拥塞控制阶段和精细网络探测阶段的具体实施过程进行详细说明:
在本申请实施例中的智能拥塞控制阶段,服务器可基于如下方式确定发送参数信息,并向对象终端发送资源数据,如音视频直播流量。一种可选的实施方式为,步骤S52包括如下子步骤S521~S522(图5中未示出):
S521:基于当前的发送策略参数,以及上一轮网络探测得到的服务质量信息,确定本轮拥塞控制阶段对应的发送参数信息。
在本申请中,QoS信息可以通过周期性的网络探测得到。在本轮为第一轮(也即第一个网络测量周期)的情况下,对应的“上一轮网络探测得到的服务质量信息”可以为预设值。
其中,发送参数信息表征的物理含义不同时,相应的计算方式也不相同。
本申请中,步骤S521中的发送参数信息包括但不限于:发送速率、发送窗口。
在发送参数信息包括发送速率时,S521的一种可选的实施方式为:
S5211a:获取以预设数值作为底数,以发送策略参数作为指数获得的目标系数。
例如,预设数值为2,发送策略参数记作α,则目标系数为2α。
S5212a:基于上一轮网络探测得到的服务质量信息中所有会话各自的可用带宽,确定目标带宽。
可选的,目标带宽可以为所有会话各自的最大可用带宽的平均值或指定分位点值。
这里的所有会话是指网络测量周期内,服务器与各客户端之间的会话,如有100个客户端,在该网络测量周期内,服务器与这100个客户端各自的会话,都可测量得到一个最大可用带宽,目标带宽可以是这100个最大可用带宽的平均值,也可以是这100个最大可用带宽的指定分位点值。
如设置指定分位点值为二十分位点值,即这100个最大可用带宽按照从小到大排序时,位于第二十个位置的最大可用带宽;又如指定分位点值为五十分位点值,即位于第五十个位置的最大可用带宽,等等。
S5213a:将目标系数与目标带宽的乘积,作为本轮拥塞控制阶段的发送速率。
如,目标带宽记作BtlBW,则发送速率即为2α*BtlBW。
具体地,当服务器收到来自对象终端的直播流量请求报文时,查询智能拥塞控制阶段的最新发送策略参数α,并使用上一周期(如时间周期为T0)网络测量的QoS信息计算该会话的发送速率Pacing_rate,如公式(3)所示:
Pacing_rate = 2α * BtlBW (3)
其中,BtlBW表示上一网络测量周期获取的所有会话的最大可用带宽的平均值或指定分位点值;服务器根据上述计算的发送速率Pacing_rate响应对象终端的直播流量请求。
此外,若当前为第一个网络测量周期时,在公式(3)中,发送策略参数α和服务质量信息BtlBW都可以为预设值,如设置α为0,BtlBW为100M。
同理,在发送参数信息包括发送窗口时,S521的一种可选的实施方式为:
S5211b:获取以预设数值作为底数,以发送策略参数作为指数获得的目标系数;
S5212b:基于上一轮网络探测得到的服务质量信息中所有会话各自的可用带宽,确定目标带宽;以及,基于上一轮网络探测得到的服务质量信息中所有会话各自的时延,确定目标时延。
其中,S5211b以及S5212b中目标带宽的计算方式如上,重复之处不再赘述。
可选的,时延为所有会话各自的最小时延的平均值或指定分位点值。仍以有100个客户端为例,在该网络测量周期内,服务器与这100个客户端各自的会话,都可测量得到一个最小时延,目标时延可以是这100个最小时延的平均值,也可以是这100个最小时延的指定分位点值。
如指定分位点值为七十分位点值,即这100个最小时延按照从小到大排序时,位于第七十个位置的最小时延。
S5213b:将目标系数、目标带宽与目标时延的乘积,作为本轮拥塞控制阶段的发送窗口。
如,目标时延记作min_rtt,则发送窗口即为2α*BtlBW*min_rtt,如公式(4)所示:
CWND = Pacing_rate * min_rtt= 2α * BtlBW * min_rtt (4)
其中,CWND表示发送窗口,BtlBW表示上一网络测量周期获取的所有会话的最大可用带宽的平均值或指定分位点值;min_rtt表示上一网络测量周期获取的所有会话的最小时延的平均值或指定分位点值。
此外,若当前为第一个网络测量周期时,在公式(3)中,发送策略参数α和服务质量信息BtlBW、min_rtt都可以为预设值,如设置α为0,BtlBW为100M,min_rtt为30ms。
S522:根据发送参数信息,将目标资源数据通过流量报文发送至客户端。
具体的,服务器可根据上述计算的发送速率Pacing_rate和发送窗口CWND中的至少一种,响应对象终端的直播流量请求。
在上述实施方式中,结合上一轮网络探测的服务质量信息(最大可用带宽、最小时延),以及最新的发送策略参数,来计算用于向客户端传输资源数据的发送参数,如发送速率、发送窗口等,基于此来进行流量传输,使得流量发送时跳过慢启动状态直接进入拥塞控制的稳定阶段,因此,拥塞控制方法避免了相关方法中慢启动过程带来的传输性能偏低且退出慢启动过程中较高的丢包率导致的流量有效传输性能偏低的问题。
在本申请中,探测策略参数决定精细网络探测阶段中丢失报文的再次重传的次数。在本申请实施例中的精细网络探测阶段,服务器可基于如下方式确定重传次数,以在相应轮次执行网络探测任务。一种可选的实施方式为,步骤S53可包括如下子步骤S531~S532(图5中未示出):
S531:基于探测策略参数,确定在本轮拥塞控制阶段丢失的流量报文需要进行重传的轮次N,N为大于等于0的整数。
其中,探测策略参数记作β,可通过不断的网络探测进行周期性更新。
本申请中,可设置探测策略参数的取值范围为0≤β≤3,β为整数。
可选的,基于探测策略参数,确定在本轮拥塞控制阶段丢失的流量报文需要进行重传的轮次N:
情况一、若探测策略参数为0,则确定N为0;
该情况下,若β=0,则在精细网络探测阶段不再重传丢失的流量报文,因而在智能拥塞控制阶段,发现丢包后可立即重传,也即这部分丢包已在智能拥塞控制阶段进行了重传。
情况二、若探测策略参数大于0,则确定N=2β-1。
也即,若β≥1,则在后续连续的(2β-1)个精细网络探测阶段,分别对丢失的流量报文进行再次重传。
在本申请中,每个探测阶段针对丢失的流量报文分别再次重传1次,共计2β-1次,加上智能拥塞控制阶段重传的1次,共计2β次。
例如,β=2时,不仅在丢失的当轮智能拥塞控制阶段重传,还需要在连续3个精细网络探测阶段重传丢失的流量报文。
S532:在之后连续N轮网络探测阶段,通过再次重传丢失的流量报文执行网络探测任务,获得相应轮次对应的服务质量信息。
具体的,服务器在进入精细网络探测阶段后,根据上述强化学习模型输出的参数β再次重传智能拥塞控制阶段丢失的直播流量报文获得最新的网络条件和状态信息。
在本申请中,精细网络探测阶段使用的探测报文为智能拥塞控制丢失的直播流量报文,如图9所示,其为本申请实施例中所列举的一种报文重传的示意图。图9表示,在智能拥塞控制阶段丢失的报文编号为2和4,除了在收到智能拥塞控制阶段重传丢失的报文2和4之外;在精细网络探测阶段,服务器再次重传丢失的报文2和4。
需要说明的是,图9所示只是为了举例说明在智能拥塞控制阶段和精细网络探测阶段各自所需发送的报文。其中,智能拥塞控制阶段也可重传丢失的报文2和4(图9中未示出)。
又如图10所示,其为本申请实施例中所列举的另一种报文重传的示意图。以当前的探测策略参数β=2为例,丢失的报文2和4在接下来的连续3个精细网络探测阶段再次重传。
如图10中,在t0-t1时间段内,服务器与客户端之间的会话处于智能拥塞控制阶段,即智能拥塞控制阶段1,服务器向该客户端发送报文1~6,其中,报文2和报文4发生丢包。在t1-t2时间段内,服务器与该客户端之间的会话处于精细网络探测阶段,即精细网络探测阶段1,由于在智能拥塞控制阶段1发送的丢包需要在接下来的连续3个精细网络探测阶段进行重传,因而,在精细网络探测阶段1,服务器通过向该客户端发送报文2和报文4,来探测最新的网络条件与状态,包括最小时延和最大可用带宽等信息。
在t2-t3时间段内,该会话处于智能拥塞控制阶段,即智能拥塞控制阶段2,服务器向该客户端发送报文7~12,未发生丢包。在t3-t4时间段内,服务器与该客户端之间的会话处于精细网络探测阶段,即精细网络探测阶段2,服务器通过向该客户端发送报文2和报文4,来探测最新的网络条件与状态,包括最小时延和最大可用带宽等信息。
在t4-t5时间段内,该会话处于智能拥塞控制阶段,即智能拥塞控制阶段3,服务器向该客户端发送报文13~18,未发生丢包。在t5-t6时间段内,服务器与该客户端之间的会话处于精细网络探测阶段,即精细网络探测阶段3,服务器通过向该客户端发送报文2和报文4,来探测最新的网络条件与状态,包括最小时延和最大可用带宽等信息。
本申请中,当服务器收到来自的对象终端的直播流量请求报文时,通过智能拥塞控制阶段的发送策略参数响应对象请求;当会话所在智能拥塞控制阶段的时长超过T1或该会话处于应用受限阶段时,流量传输切换至精细网络探测阶段,此时,云服务器通过再次重传智能拥塞控制阶段丢失的直播流量报文对网络QoS信息(如最小时延值和最大可用带宽)进行探测;当探测时长超过T2且数据发送方处于非应用受限状态时,直播流量传输切换至智能拥塞控制阶段,此时,服务器根据探测到的最新的网络QoS信息调整流量发送策略参数继续响应终端对象的流量请求。
可选的,智能拥塞控制阶段的发送策略参数α和精细网络探测阶段的探测策略参数β可以由强化学习模型,根据测量的QoS信息周期性设置,如图11所示,其为本申请实施例中的一种基于强化学习模型的状态机参数调整示意图。在本申请实施例中,服务器(即数据发送方)通过强化学习周期性地为下一阶段资源数据的发送策略配置权重参数,并基于网络测量的QoS信息计算智能拥塞控制阶段的发送策略参数α;同时,服务器侧的强化学习模型周期性地输出探测策略参数β。
在本申请中,强化学习模型针对两种状态机参数的调整周期T0是由管理员设置的,该数值可为秒级,如1s、10s或30s等,也可为分钟级(如1min、10min或15min等,本文不做具体限定。
其中,服务质量信息为表征服务器与客户端之间网络传输质量、网络条件与状态等的信息,包括但不限于:
①最小往返时延(Rround-Trip Time,RTT)(min_rtt,可简称最小时延)、②平滑RTT(srtt)或平均RTT(rtt_avg)、③有效吞吐量goodput、④最大可用带宽BtlBW和⑤重传率retran_ratio或丢包率loss_ratio、⑥最大RTT(max_rtt)、⑦最大在途量max_inflight、⑧初始窗口init_cwnd、⑨最大窗口max_cwnd等的平均值QoS_avg或指定分位点值QoS_i-th(如50分位点值QoS_50th)。
需要说明的是,这里所列举的平均值QoS_avg是指该网络测量周期内服务器与所有客户端之间的会话所对应的上述信息的平均值,如100个会话的min_rtt的平均值,100个会话的srtt平均值等等,指定分位点值QoS_i-th同理,在此不再重复赘述。
以音视频直播业务为例,在本申请中,服务器可为每个音视频直播会话的流量传输维持智能拥塞控制阶段和精细网络探测阶段两个状态机。服务器在响应对象请求的直播流量时,针对每个会话维护上述两个状态机,在会话最开始,状态机处于智能拥塞控制阶段,此时服务器会根据强化学习模型输出的参数变量α计算发送参数信息(如上公式(3)和/或(4)),并使用计算出的发送参数信息向对象终端发送音视频直播流量。并且,在智能拥塞控制阶段主要基于强化学习设置流量传输的发送策略参数和丢失报文的重传策略参数,其中发送策略参数用于确定流量发送窗口和/或发送速率,重传策略参数用于确定重传的次数等。
在经过一定时间后,会话状态机之间会出现切换,由智能拥塞控制阶段切换为精细网络探测阶段。精细网络探测阶段在相关周期性探测的基础上,在应用受限(如没有可以发送的音视频直播数据)时,通过再次重传过去一段时间丢失的音视频直播数据的方式对网络服务质量信息(如网络最小时延和最大可用带宽)进行探测,避免了低频率网络探测结果不准确和高频率网络探测阻碍后续流量发送的难题。
一种可选的实施方式为,发送策略参数与探测策略参数是周期性更新的,每次更新是通过将上一轮网络探测得到的服务质量信息,输入已训练的强化学习模型实现的;强化学习模型是通过下列方式训练得到的:
基于通过网络探测得到的历史服务质量信息,对待训练的强化学习模型进行多轮训练迭代训练,其中,每轮循环迭代训练执行以下过程:
①将上一轮探测的历史服务质量信息,输入待训练的强化学习模型。
②获取强化学习模型输出的,适配本轮网络条件与状态的策略参数组,策略参数组包含一个发送策略参数和一个探测策略参数。
③获取与策略参数组对应的收益值,并基于收益值对待训练的强化学习模型进行参数调整。
在本申请中,强化学习模型是由多层神经元构成,各层神经元是通过全连接的形式连接的。
例如,该强化学习模型可以是一种深度强化学习(Deep reinforcementlearning,DRL)模型,由多层神经元构成,各层神经元中相邻层的神经元通过全连接的形式进行连接,其中,DRL模型的输入状态信息的数量为网络测量的QoS信息的数量。
具体的,DRL模型包括输入层、隐藏层和输出层。其中,输入层每一层神经元的数量至少为2个;本申请隐藏层至少包含2层神经元,每一层神经元的数量至少为2个;输出层的神经元数量为2,分别表示参数变量α和β的取值;其中,α即为发送策略参数,β即为探测策略参数。
此外,本申请中DRL模型的激活函数包括但不限于:①Sigmoid函数、②Tanh函数、③ReLU函数、④Softmax函数等。
如图12所示,其为本申请实施例中的一种强化学习模型的结构示意图。图12所列举的DRL模型输入层的神经元数量为3,,隐藏层包含3层神经元,隐藏层中各层神经元的数量为5,输出层的神经元数量为2为例,
在本申请中,输入至DRL模型的网络QoS信息至少包含:①最小RTT往返时延(min_rtt)、②平滑RTT(srtt—smoth rtt)或平均RTT(rtt_avg)、③有效吞吐量goodput、④最大可用带宽BtlBW和⑤重传率retran_ratio或丢包率loss_ratio。
强化学习模型以最新测量的网络传输质量指标(如丢包率、吞吐量、端到端时延等)作为输入,通过模型训练与计算获得适配当前网络条件与状态的策略参数组。
进一步地,模型输出策略参数组后,该策略参数组可用于下一轮的网络传输配置中,进而,在下一轮即可测量得到新的服务质量信息,基于这些服务质量信息,可以计算出一个最新的一个收益值(reward),基于该reward即可判断上一轮输出的参数策略组的取值是否合理,以基于此调整模型的参数。
可选的,通过如下方式获取与策略参数组对应的收益值:
①获取基于策略参数组进行网络探测得到的历史服务质量信息,历史服务质量信息包括:有效吞吐量、时延、网络传输丢包率及重传报文再次丢包率。
②基于有效吞吐量与时延的比值,以及网络传输丢包率及重传报文再次丢包率,确定该策略参数组对应的收益值。
例如,将有效吞吐量与时延的比值,以及网络传输丢包率及重传报文再次丢包率进行加权求和,获得相应的收益值。该方式下,强化学习模型的reward的计算如公式(5)所示:
reward=a1*goodput/rtt + a2*(1-loss_rate) + a3*(1-reloss_rate) (5)
其中,goodput为直播流量的有效吞吐量,rtt为时延,loss_rate为网络传输丢包率,reloss_rate为重传报文再次丢包的概率,a1、a2和a3为公式(5)中各部分的权重系数,且a1+a2+a3=1。
在本申请实施例中,某一网络测量周期对应的loss_rate是指:该网络测量周期内,在智能拥塞控制阶段传输报文时,丢失报文占传输总报文的比率,如需要传输100个报文,有10个报文发生了丢包,loss_rate即为10%;reloss_rate则是指在精细网络探测阶段重传之前丢失的报文时,再次丢失的重传报文占传输总重传报文的比率,如需要传输在智能拥塞控制阶段丢失的10个报文,折10个重传报文中有2个发生了丢包,reloss_rate即为20%。
在计算公式(5)中,rtt可以是最小时延min_rtt,最大时延max_rtt,平滑时延srtt或平均时延rtt_avg等。
其中,在上一轮网络探测过程中,服务器与每个客户端之间都有一个会话,对每个会话进行探测都可获得一个最小rtt,一个最大rtt,一个平均rtt和一个平滑rtt。而在公式(5)中,min_rtt指所有会话各自最小rtt的平均值(或指定分位点值),又或者是指探测所得到的所有rtt的最小值;相应的,max_rtt则指所有会话各自最大rtt的平均值(或指定分位点值),又或者是指探测所得到的所有rtt的最大值;rtt_avg指所有会话各自平均rtt的平均值(或指定分位点值),又或者是指探测所得到的所有rtt的平均值,srtt指所有会话各自平滑rtt的平均值(或指定分位点值),又或者是指探测所得到的所有rtt的加权平均值。
需要说明的是,为了与模型应用进行区分,本申请中将模型训练阶段所采用的服务质量信息称作历史服务质量信息。
本申请中,强化学习模型周期性地获取最新的网络传输数据,并输出发送策略参数和探测策略参数等指标配置值,基于此对流量发送策略和丢包重传策略进行智能化配置,降低因丢包带来的对象终端卡顿的问题;同时,数据发送方按照上述发送策略参数响应对象请求,并跳过慢启动进入后续排空或拥塞避免状态,避免了相关拥塞控制算法在流结束时还未退出慢启动而导致传输性能偏低的缺陷。
参阅图13所示,其为本申请实施例中的一种传输控制方法的实施流程图,具体实施流程如下:
①服务器根据测量的网络QoS信息周期性更新参数α和β值。
具体的,该步骤可通过强化学习模型来实现,如设置上述两种状态机参数的调整周期T0为1min,在初始时刻,参数α和β可随机设置,如都设置为0;进而基于初始化的两个状态值,来计算发送参数信息及重传次数等,并基于这些计算结果进行资源数据的传输和网络探测等;基于上述设置的调整周期T0,当新的调整周期到达时,即可根据最新测得的QoS信息,输入强化学习模型,获得模型输出的最新的α和β,并基于最新的α和β,来计算发送参数信息及重传次数等,基于这些计算结果进行资源数据的传输和网络探测;…;不断重复上述过程即可实现参数α和β值的周期性更新。
具体的,基于α和β这两个状态值,来计算发送参数信息及重传次数等,并基于这些计算结果进行资源数据的传输和网络探测的过程中,还需要考虑到本申请实施例中智能拥塞控制阶段和精细网络探测阶段之间的切换条件,具体过程可参见如下步骤②-⑤。
②服务器根据α计算发送参数信息,并响应对象请求。
以发送参数信息包含发送速率及发送窗口为例。具体的,在会话最开始,服务器与客户端之间的会话状态处于智能拥塞控制阶段,服务器需要根据当前最新的发送策略参数α,采用上述所列举的公式(3)计算发送速率,采用上述所列举的公式(4)计算发送窗口,并基于发送速率及发送窗口这些发送参数信息,响应对象针对目标资源的流量请求(即图13中的对象请求),具体实施方式可参见步骤S52及其相关子步骤,如S521~S522部分,重复之处不再赘述。
③判断是否满足第一切换条件,若是,则执行④,否则,返回②。
在经过一定时间后,会话状态机之间会出现切换,具体的,第一切换条件表征的是服务器与客户端之间的会话状态由智能拥塞控制阶段切换为精细网络探测阶段的条件,具体可参见上述所列举的条件A1、A2部分,重复之处不再赘述。
④服务器根据参数β计算重传次数,并探测最新网络条件与状态信息。
在该步骤中,服务器需要根据当前最新的探测策略参数β,计算探测报文的重传次数,基于此,通过重传智能拥塞控制阶段丢失的直播流量报文获得最新的QoS信息,具体实施方式可参见步骤S53及其相关子步骤,如S531~S532部分,重复之处不再赘述。
⑤判断是否满足第二切换条件,若是,则返回②,否则,返回④。
在经过一定时间后,会话状态机之间会再次出现切换,具体的,第二切换条件表征的是服务器与客户端之间的会话状态由精细网络探测阶段切换为智能拥塞控制阶段的条件,具体可参见上述所列举的条件B1、B2部分,重复之处不再赘述。
上述图13是从服务器侧单独介绍的,下面从服务器与客户端之间的交互来进行简单介绍:
以目标资源为直播为例,参阅图14所示,其为本申请实施例中的一种服务器与客户端之间的交互时序图。该方法的具体实施流程如下:
步骤S1401:服务器通过强化学习模型周期性更新发送策略参数和探测策略参数;
步骤S1402:客户端向服务器发送针对目标音视频直播的流量请求;
步骤S1403:服务器响应该流量请求,基于流量请求中的url标识,查询相应的目标直播数据;
步骤S1404:服务器确定当前处于智能拥塞控制阶段,基于当前的发送策略参数,将目标直播数据通过流量报文发送至客户端;
步骤S1405:服务器判断当前是否满足第一切换条件,若是,则执行步骤S1406,否则,返回步骤S1404;
步骤S1406:服务器由智能拥塞控制阶段进入精细网络探测阶段,基于当前的探测策略参数向客户端重传之前丢失的流量报文,以执行网络探测任务;
步骤S1407:服务器判断当前是否满足第二切换条件,若是,则返回步骤S1404,否则,返回步骤S1406。
需要说明的是,上述所列举的交互时序图只是简单的举例说明,任何一种相关的变形都适用于本申请实施例,在此不做具体限定。
此外需要说明的是,相关技术中报文重传与网络探测是分开的,如图15所示,当报文在网络传输过程中出现丢包时,服务器(在收到确认字符(Acknowledgement,ACK)后)会立刻重传丢失的流量报文,如果重传报文再次丢失,服务器(在收到ACK后)会再次重传,直至客户端收到为止;此外,服务器在发送流量报文时,如果BBR算法进入Probe_RTT或Probe_BW状态机,则会执行网络探测阶段任务。相关方法未能充分考虑音视频直播流量独
有的特性(即周期性地出现应用受限),使得流量发送在时序上未能充分利用频繁出现的应用受限。
本申请在相关丢包重传和网络探测的基础上,在音视频直播流量中应用受限时间段新增基于丢包再次重传的网络探测功能,如图16所示,服务器作为数据发送方在音视频直播会话的应用受限阶段再次重传还未被ACK的重传报文,其中,再次重传丢失的报文时,服务器调低流量发送窗口以实现对最小时延的网络探测;服务器增大发送速率以实现对最大可用带宽的网络探测。
相比于相关技术,上述方式不仅可以提升丢包重传的成功率、降低重传报文对后续正常流量报文的资源挤占;还可以在不牺牲音视频直播流量有效吞吐的情况下,增加网络探测的频率,有利于获取更为准确的网络质量参数。
基于相同的发明构思,本申请实施例还提供一种数据的传输控制装置。如图17所示,其为数据的传输控制装置1700的结构示意图,可以包括:
响应单元1701,用于响应于客户端针对目标资源的流量请求,基于流量请求查询相应的目标资源数据;
传输单元1702,用于在确定本地与客户端之间的会话状态处于拥塞控制阶段时,基于当前的发送策略参数,将目标资源数据通过流量报文发送至客户端;其中,发送策略参数用于指示资源数据的发送参数信息;
探测单元1703,用于在确定本地与客户端之间的会话状态处于网络探测阶段时,基于当前的探测策略参数执行网络探测任务,直至网络探测阶段结束并切换至拥塞控制阶段后,继续向客户端发送流量报文;其中,探测策略参数用于指示资源数据传输过程中所丢失流量报文的重传次数;发送策略参数与探测策略参数是根据网络的服务质量信息确定的。
可选的,传输单元1702具体用于:
基于当前的发送策略参数,以及上一轮网络探测得到的服务质量信息,确定本轮拥塞控制阶段对应的发送参数信息;
根据发送参数信息,将目标资源数据通过流量报文发送至客户端。
可选的,探测单元1703具体用于:
基于探测策略参数,确定在本轮拥塞控制阶段丢失的流量报文需要进行重传的轮次N,N为大于等于0的整数;
在之后连续N轮网络探测阶段,通过再次重传丢失的流量报文执行网络探测任务,获得相应轮次对应的服务质量信息。
可选的,发送策略参数与探测策略参数是周期性更新的,每次更新是通过将上一轮网络探测得到的服务质量信息,输入已训练的强化学习模型实现的;装置还包括:
模型训练单元1704,用于通过下列方式训练得到强化学习模型:
基于通过网络探测得到的历史服务质量信息,对待训练的强化学习模型进行多轮训练迭代训练,其中,每轮循环迭代训练执行以下过程:
将上一轮探测的历史服务质量信息,输入待训练的强化学习模型;
获取强化学习模型输出的,适配本轮网络条件与状态的策略参数组,策略参数组包含一个发送策略参数和一个探测策略参数;
获取与策略参数组对应的收益值,并基于收益值对待训练的强化学习模型进行参数调整。
可选的,模型训练单元1704具体用于:
获取基于策略参数组进行网络探测得到的历史服务质量信息,历史服务质量信息包括:有效吞吐量、时延、网络传输丢包率及重传报文再次丢包率;
基于有效吞吐量与时延的比值,以及网络传输丢包率及重传报文再次丢包率,确定策略参数组对应的收益值。
可选的,发送参数信息包括发送速率;传输单元1702具体用于:
获取以预设数值作为底数,以发送策略参数作为指数获得的目标系数;
基于上一轮网络探测得到的服务质量信息中所有会话各自的可用带宽,确定目标带宽;
将目标系数与目标带宽的乘积,作为本轮拥塞控制阶段的发送速率。
可选的,发送参数信息包括发送窗口;传输单元1702具体用于:
获取以预设数值作为底数,以发送策略参数作为指数获得的目标系数;
基于上一轮网络探测得到的服务质量信息中所有会话各自的可用带宽,确定目标带宽;以及,基于上一轮网络探测得到的服务质量信息中所有会话各自的时延,确定目标时延;
将目标系数、目标带宽与目标时延的乘积,作为本轮拥塞控制阶段的发送窗口。
可选的,目标带宽为所有会话各自的最大可用带宽的平均值或指定分位点值。
可选的,目标时延为所有会话各自的最小时延的平均值或指定分位点值。
可选的,探测单元1703具体用于:
若探测策略参数为0,则确定N为0;
若探测策略参数大于0,则确定N=2β-1,β为探测策略参数。
可选的,装置还包括:
第一切换单元1705,用于在确定本地与客户端之间的会话满足第一切换条件时,相应的会话状态由拥塞控制阶段切换为网络探测阶段;其中,第一切换条件包括以下至少一种:
本轮拥塞控制阶段的持续时长超过第一阈值;
当前没有可发送的资源数据。
可选的,装置还包括:
第二切换单元1706,用于在确定本地与客户端之间的会话满足第二切换条件时,相应的会话状态由网络探测阶段切换为拥塞控制阶段;其中,第二切换条件包括以下至少一种:
本轮网络探测阶段的持续时长超过第二阈值;
当前有可发送的资源数据。
由于本申请提出的传输控制方法包含两种状态机:拥塞控制阶段和网络探测阶段,可根据网络的服务质量信息,更新两个阶段各自对应的策略参数;进而,数据发送方按照其中的发送策略参数响应客户端请求,并跳过慢启动进入后续排空或拥塞避免算法,避免了相关拥塞控制算法在流结束时还未退出慢启动而导致传输性能偏低的缺陷;此外,数据发送方还可在网络探测阶段,通过再次重传过去一段时间丢失的流量报文来探测最新的网络条件与状态信息,减少了因丢包带来的对象终端卡顿这类问题的发生,有利于提升多媒体资源数据的有效传输性能
为了描述的方便,以上各部分按照功能划分为各模块(或单元)分别描述。当然,在实施本申请时可以把各模块(或单元)的功能在同一个或多个软件或硬件中实现。
在介绍了本申请示例性实施方式的数据的传输控制方法和装置之后,接下来,介绍根据本申请的另一示例性实施方式的电子设备。
所属技术领域的技术人员能够理解,本申请的各个方面可以实现为系统、方法或程序产品。因此,本申请的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
与上述方法实施例基于同一发明构思,本申请实施例中还提供了一种电子设备。在一种实施例中,该电子设备可以是服务器,如图4所示的网关服务器或云服务器。在该实施例中,电子设备的结构可以如图18所示,包括存储器1801,通讯模块1803以及一个或多个处理器1802。
存储器1801,用于存储处理器1802执行的计算机程序。存储器1801可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统,以及运行即时通讯功能所需的程序等;存储数据区可存储各种即时通讯信息和操作指令集等。
存储器1801可以是易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);存储器1801也可以是非易失性存储器(non-volatilememory),例如只读存储器,快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD);或者存储器1801是能够用于携带或存储具有指令或数据结构形式的期望的计算机程序并能够由计算机存取的任何其他介质,但不限于此。存储器1801可以是上述存储器的组合。
处理器1802,可以包括一个或多个中央处理单元(central processing unit,CPU)或者为数字处理单元等等。处理器1802,用于调用存储器1801中存储的计算机程序时实现上述数据的传输控制方法。
通讯模块1803用于与终端和其他服务器进行通信。
本申请实施例中不限定上述存储器1801、通讯模块1803和处理器1802之间的具体连接介质。本申请实施例在图18中以存储器1801和处理器1802之间通过总线1804连接,总线1804在图18中以粗线描述,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。总线1804可以分为地址总线、数据总线、控制总线等。为便于描述,图18中仅用一条粗线描述,但并不描述仅有一根总线或一种类型的总线。
存储器1801中存储有计算机存储介质,计算机存储介质中存储有计算机可执行指令,计算机可执行指令用于实现本申请实施例的数据的传输控制方法。处理器1802用于执行上述的数据的传输控制方法,如图5所示。
下面参照图19来描述根据本申请的这种实施方式的计算装置190。图19的计算装置190仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图19,计算装置190以通用计算装置的形式表现。计算装置190的组件可以包括但不限于:上述至少一个处理单元191、上述至少一个存储单元192、连接不同系统组件(包括存储单元192和处理单元191)的总线193。
总线193表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器、外围总线、处理器或者使用多种总线结构中的任意总线结构的局域总线。
存储单元192可以包括易失性存储器形式的可读介质,例如随机存取存储器(RAM)1921和/或高速缓存存储单元1922,还可以进一步包括只读存储器(ROM)1923。
存储单元192还可以包括具有一组(至少一个)程序模块1924的程序/实用工具1925,这样的程序模块1924包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
计算装置190也可以与一个或多个外部设备194(例如键盘、指向设备等)通信,还可与一个或者多个使得对象能与计算装置190交互的设备通信,和/或与使得该计算装置190能与一个或多个其它计算装置进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口195进行。并且,计算装置190还可以通过网络适配器196与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器196通过总线193与用于计算装置190的其它模块通信。应当理解,尽管图中未示出,可以结合计算装置190使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
在一些可能的实施方式中,本申请提供的数据的传输控制方法的各个方面还可以实现为一种程序产品的形式,其包括计算机程序,当程序产品在电子设备上运行时,计算机程序用于使电子设备执行本说明书上述描述的根据本申请各种示例性实施方式的数据的传输控制方法中的步骤,例如,电子设备可以执行如图5中所示的步骤。
程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
本申请的实施方式的程序产品可以采用便携式紧凑盘只读存储器(CD-ROM)并包括计算机程序,并可以在电子设备上运行。然而,本申请的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被命令执行系统、装置或者器件使用或者与其结合使用。
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读计算机程序。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由命令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的计算机程序可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本申请操作的计算机程序,程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。计算机程序可以完全地在对象计算装置上执行、部分地在对象计算装置上执行、作为一个独立的软件包执行、部分在对象计算装置上部分在远程计算装置上执行、或者完全在远程计算装置或服务器上执行。在涉及远程计算装置的情形中,远程计算装置可以通过任意种类的网络包括局域网(LAN)或广域网(WAN)连接到对象计算装置,或者,可以连接到外部计算装置(例如利用因特网服务提供商来通过因特网连接)。
应当注意,尽管在上文详细描述中提及了装置的若干单元或子单元,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多单元的特征和功能可以在一个单元中具体化。反之,上文描述的一个单元的特征和功能可以进一步划分为由多个单元来具体化。
此外,尽管在附图中以特定顺序描述了本申请方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用计算机程序的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序命令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序命令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的命令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序命令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的命令产生包括命令装置的制造品,该命令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序命令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的命令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (16)
1.一种数据的传输控制方法,其特征在于,所述方法包括:
响应于客户端针对目标资源的流量请求,基于所述流量请求查询相应的目标资源数据;
在确定本地与所述客户端之间的会话状态处于拥塞控制阶段时,基于当前的发送策略参数,将所述目标资源数据通过流量报文发送至所述客户端;其中,所述发送策略参数用于指示资源数据的发送参数信息;
在确定本地与所述客户端之间的会话状态处于网络探测阶段时,基于当前的探测策略参数执行网络探测任务,直至所述网络探测阶段结束并切换至所述拥塞控制阶段后,继续向所述客户端发送流量报文;其中,所述探测策略参数用于指示资源数据传输过程中所丢失流量报文的重传次数;所述发送策略参数与探测策略参数是根据网络的服务质量信息确定的。
2.如权利要求1所述的方法,其特征在于,所述基于当前的发送策略参数,将所述目标资源数据通过流量报文发送至所述客户端,包括:
基于当前的发送策略参数,以及上一轮网络探测得到的服务质量信息,确定本轮拥塞控制阶段对应的发送参数信息;
根据所述发送参数信息,将所述目标资源数据通过流量报文发送至所述客户端。
3.如权利要求1所述的方法,其特征在于,所述基于当前的探测策略参数执行网络探测任务,包括:
基于所述探测策略参数,确定在本轮拥塞控制阶段丢失的流量报文需要进行重传的轮次N,N为大于等于0的整数;
在之后连续N轮网络探测阶段,通过再次重传所述丢失的流量报文执行网络探测任务,获得相应轮次对应的服务质量信息。
4.如权利要求1所述的方法,其特征在于,所述发送策略参数与探测策略参数是周期性更新的,每次更新是通过将上一轮网络探测得到的服务质量信息,输入已训练的强化学习模型实现的;所述强化学习模型是通过下列方式训练得到的:
基于通过网络探测得到的历史服务质量信息,对待训练的强化学习模型进行多轮训练迭代训练,其中,每轮循环迭代训练执行以下过程:
将上一轮探测的历史服务质量信息,输入待训练的强化学习模型;
获取所述强化学习模型输出的,适配本轮网络条件与状态的策略参数组,所述策略参数组包含一个发送策略参数和一个探测策略参数;
获取与所述策略参数组对应的收益值,并基于所述收益值对所述待训练的强化学习模型进行参数调整。
5.如权利要求4所述的方法,其特征在于,所述获取与所述策略参数组对应的收益值,包括:
获取基于所述策略参数组进行网络探测得到的历史服务质量信息,所述历史服务质量信息包括:有效吞吐量、时延、网络传输丢包率及重传报文再次丢包率;
基于所述有效吞吐量与时延的比值,以及所述网络传输丢包率及重传报文再次丢包率,确定所述策略参数组对应的收益值。
6.如权利要求2所述的方法,其特征在于,所述发送参数信息包括发送速率;所述基于当前的发送策略参数,以及上一轮网络探测得到的服务质量信息,确定本轮拥塞控制阶段对应的发送参数信息,包括:
获取以预设数值作为底数,以所述发送策略参数作为指数获得的目标系数;
基于上一轮网络探测得到的服务质量信息中所有会话各自的可用带宽,确定目标带宽;
将所述目标系数与所述目标带宽的乘积,作为本轮拥塞控制阶段的发送速率。
7.如权利要求2所述的方法,其特征在于,所述发送参数信息包括发送窗口;所述基于当前的发送策略参数,以及上一轮网络探测得到的服务质量信息,确定本轮拥塞控制阶段对应的发送参数信息,包括:
获取以预设数值作为底数,以所述发送策略参数作为指数获得的目标系数;
基于上一轮网络探测得到的服务质量信息中所有会话各自的可用带宽,确定目标带宽;以及,基于上一轮网络探测得到的服务质量信息中所有会话各自的时延,确定目标时延;
将所述目标系数、所述目标带宽与所述目标时延的乘积,作为本轮拥塞控制阶段的发送窗口。
8.如权利要求6或7所述的方法,其特征在于,所述目标带宽为所有会话各自的最大可用带宽的平均值或指定分位点值。
9.如权利要求7所述的方法,其特征在于,所述目标时延为所有会话各自的最小时延的平均值或指定分位点值。
10.如权利要求3所述的方法,其特征在于,所述基于所述探测策略参数,确定在本轮拥塞控制阶段丢失的流量报文需要进行重传的轮次N,包括:
若所述探测策略参数为0,则确定N为0;
若所述探测策略参数大于0,则确定N=2β-1,β为探测策略参数。
11.如权利要求1~7、9~10任一项所述的方法,其特征在于,所述方法还包括:
在确定本地与所述客户端之间的会话满足第一切换条件时,相应的会话状态由拥塞控制阶段切换为网络探测阶段;其中,所述第一切换条件包括以下至少一种:
本轮拥塞控制阶段的持续时长超过第一阈值;
当前没有可发送的资源数据。
12.如权利要求1~7、9~10任一项所述的方法,其特征在于,所述方法还包括:
在确定本地与所述客户端之间的会话满足第二切换条件时,相应的会话状态由网络探测阶段切换为拥塞控制阶段;其中,所述第二切换条件包括以下至少一种:
本轮网络探测阶段的持续时长超过第二阈值;
当前有可发送的资源数据。
13.一种数据的传输控制装置,其特征在于,包括:
响应单元,用于响应于客户端针对目标资源的流量请求,基于所述流量请求查询相应的目标资源数据;
传输单元,用于在确定本地与所述客户端之间的会话状态处于拥塞控制阶段时,基于当前的发送策略参数,将所述目标资源数据通过流量报文发送至所述客户端;其中,所述发送策略参数用于指示资源数据的发送参数信息;
探测单元,用于在确定本地与所述客户端之间的会话状态处于网络探测阶段时,基于当前的探测策略参数执行网络探测任务,直至所述网络探测阶段结束并切换至所述拥塞控制阶段后,继续向所述客户端发送流量报文;其中,所述探测策略参数用于指示资源数据传输过程中所丢失流量报文的重传次数;所述发送策略参数与探测策略参数是根据网络的服务质量信息确定的。
14.一种电子设备,其特征在于,其包括处理器和存储器,其中,所述存储器存储有计算机程序,当所述计算机程序被所述处理器执行时,使得所述处理器执行权利要求1~12中任一所述方法的步骤。
15.一种计算机可读存储介质,其特征在于,其包括计算机程序,当所述计算机程序在电子设备上运行时,所述计算机程序用于使所述电子设备执行权利要求1~12中任一所述方法的步骤。
16.一种计算机程序产品,其特征在于,包括计算机程序,所述计算机程序存储在计算机可读存储介质中;当电子设备的处理器从所述计算机可读存储介质读取所述计算机程序时,所述处理器执行所述计算机程序,使得所述电子设备执行权利要求1~12中任一所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211542888.2A CN118175112A (zh) | 2022-12-02 | 2022-12-02 | 数据的传输控制方法、装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211542888.2A CN118175112A (zh) | 2022-12-02 | 2022-12-02 | 数据的传输控制方法、装置、电子设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118175112A true CN118175112A (zh) | 2024-06-11 |
Family
ID=91349087
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211542888.2A Pending CN118175112A (zh) | 2022-12-02 | 2022-12-02 | 数据的传输控制方法、装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118175112A (zh) |
-
2022
- 2022-12-02 CN CN202211542888.2A patent/CN118175112A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106304203B (zh) | 数据传输方法及装置 | |
EP3318067B1 (en) | A media user client, a media user agent and respective methods performed thereby for providing media from a media server to the media user client | |
Liu et al. | Rate adaptation for dynamic adaptive streaming over HTTP in content distribution network | |
US10110507B2 (en) | Push-based transmission of resources and correlated network quality estimation | |
WO2016138786A1 (zh) | 传输控制协议tcp数据包的发送方法、发送装置和系统 | |
KR102208877B1 (ko) | 심층 강화학습 기반 다중경로 패킷 스케줄링 방법 | |
Zhang et al. | Congestion control and packet scheduling for multipath real time video streaming | |
de Morais et al. | Application of active queue management for real-time adaptive video streaming | |
US11902599B2 (en) | Multiple protocol prediction and in-session adaptation in video streaming | |
CN113301392A (zh) | 码率确定方法、装置、设备及存储介质 | |
CN107637046A (zh) | 用于控制多连接以提高数据传输率的方法和设备 | |
WO2022123066A1 (en) | Method for playing on a player of a client device a content streamed in a network | |
US20230224548A1 (en) | Streaming Assistance System and Computer-Implemented Method | |
CN116566919A (zh) | 带宽探测方法、装置、电子设备及存储介质 | |
CN118175112A (zh) | 数据的传输控制方法、装置、电子设备和存储介质 | |
CN116192766A (zh) | 用于调整数据发送速率和训练拥塞控制模型的方法及装置 | |
CN110381036A (zh) | 一种用于dash流媒体的tcp拥塞控制方法 | |
Hayes et al. | Adaptive bitrate video delivery using HTTP/2 over MPTCP architecture | |
CN115604507A (zh) | 基于多站点协同的视频传输装置 | |
CN114024917B (zh) | 互联网业务带宽保障的方法、装置、设备及存储介质 | |
Kim et al. | Network Access Control for Location‐Based Mobile Services in Heterogeneous Wireless Networks | |
Zhang et al. | An online learning based path selection for multipath real‐time video transmission in overlay network | |
Kennedy et al. | Household bandwidth and the'need for speed': evaluating the impact of active queue management for home internet traffic | |
KR102237900B1 (ko) | 클라이언트 단말에 의해 멀티미디어 콘텐츠의 콘텐츠 부분을 검색하기 위한 방법 | |
CN102325082A (zh) | 一种面向游牧应用的网络拥塞控制方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |