CN118233400A - 一种拥塞窗口的自适应调整方法、装置、设备及介质 - Google Patents

一种拥塞窗口的自适应调整方法、装置、设备及介质 Download PDF

Info

Publication number
CN118233400A
CN118233400A CN202410324372.3A CN202410324372A CN118233400A CN 118233400 A CN118233400 A CN 118233400A CN 202410324372 A CN202410324372 A CN 202410324372A CN 118233400 A CN118233400 A CN 118233400A
Authority
CN
China
Prior art keywords
information
window
congestion window
determining
data packet
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202410324372.3A
Other languages
English (en)
Inventor
王博
刘静
施澍
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Zitiao Network Technology Co Ltd
Lemon Inc Cayman Island
Original Assignee
Beijing Zitiao Network Technology Co Ltd
Lemon Inc Cayman Island
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Zitiao Network Technology Co Ltd, Lemon Inc Cayman Island filed Critical Beijing Zitiao Network Technology Co Ltd
Priority to CN202410324372.3A priority Critical patent/CN118233400A/zh
Publication of CN118233400A publication Critical patent/CN118233400A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本公开实施例提供了一种拥塞窗口的自适应调整方法、装置、设备及介质。其中,该方法包括:在接收到当前确认帧时,确定与当前确认帧相对应的数据包发送信息;依据数据包发送信息和预先设置的至少一种拥塞窗口调整策略,确定当前拥塞窗口的目标调整信息;基于目标调整信息调整当前拥塞窗口的窗口信息,以基于调整后的窗口信息控制当前拥塞窗口内的数据包量或待发送数据包的字节数。本公开实施例的技术方案,实现了自适应动态调整拥塞窗口,提高了拥塞窗口吞吐量的稳定性和实时性,从而达到了在直播场景中既保证直播画质又保证直播实时性的效果。

Description

一种拥塞窗口的自适应调整方法、装置、设备及介质
技术领域
本公开实施例涉及数据处理技术领域,尤其涉及一种拥塞窗口的自适应调整方法、装置、设备及介质。
背景技术
随着计算机技术和互联网技术的快速发展,在线直播已经成为网络时代人们休闲互动的场景之一。在直播的场景中,主要涉及到直播推流和直播拉流两个过程。其中,直播推流位于直播系统的上行链路部分,推流质量决定了下行链路所有观看用户的拉流质量。在直播推流的多媒体数据流传输过程中,只有动态调整拥塞窗口,以使拥塞窗口适应于当前网络传输环境,才能达到最佳直播视觉效果。
目前,在直播场景中通常采用两种方式对拥塞窗口进行调整,第一种方式是基于数学公式探测最大发送窗口的拥塞窗口调整算法,第二种方式是基于带宽和延迟反馈的拥塞窗口调整算法。然而,第一种方式仅对丢包信号敏感,并且简单将丢包信号识别为拥塞发生的信号,而丢包信息在延迟已经到达很高水平时才会发生,因此存在窗口调整延迟,无法保证直播实时性的问题;而第二种方式由于带宽估计值持续抖动,无法探测到真实带宽大小,因此存在窗口调整稳定性差,无法保证直播画质的问题。
发明内容
本公开提供了一种拥塞窗口的自适应调整方法、装置、设备及介质,以实现自适应动态调整拥塞窗口,提高拥塞窗口吞吐量的稳定性和实时性,从而达到在直播场景中既保证直播画质又保证直播实时性的效果。
第一方面,本公开实施例提供了一种拥塞窗口的自适应调整方法,该方法包括:
在接收到当前确认帧时,确定与所述当前确认帧相对应的数据包发送信息,其中,确认帧是服务端基于接收到的包括多媒体数据流的至少一个数据包后生成的;
依据所述数据包发送信息和预先设置的至少一种拥塞窗口调整策略,确定当前拥塞窗口的目标调整信息;其中,所述拥塞窗口调整策略包括基于带宽估计值的窗口调整策略、基于丢包率的窗口调整策略和/或基于往返时延的窗口调整策略;
基于所述目标调整信息调整所述当前拥塞窗口的窗口信息,以基于调整后的窗口信息控制所述当前拥塞窗口内的数据包量或待发送数据包的字节数。
第二方面,本公开实施例还提供了一种拥塞窗口的自适应调整装置,该装置包括:
数据包信息确定模块,用于在接收到当前确认帧时,确定与所述当前确认帧相对应的数据包发送信息,其中,确认帧是服务端基于接收到的包括多媒体数据流的至少一个数据包后生成的;
调整信息确定模块,用于依据所述数据包发送信息和预先设置的至少一种拥塞窗口调整策略,确定当前拥塞窗口的目标调整信息;其中,所述拥塞窗口调整策略包括基于带宽估计值的窗口调整策略、基于丢包率的窗口调整策略和/或基于往返时延的窗口调整策略;
拥塞窗口调整模块,用于基于所述目标调整信息调整所述当前拥塞窗口的窗口信息,以基于调整后的窗口信息控制所述当前拥塞窗口内的数据包量或待发送数据包的字节数。
第三方面,本公开实施例还提供了一种电子设备,该电子设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本公开实施例中任一所述的拥塞窗口的自适应调整方法。
第四方面,本公开实施例还提供了一种包含计算机可执行指令的存储介质,该计算机可执行指令在由计算机处理器执行时用于执行如本公开实施例中任一所述的拥塞窗口的自适应调整方法。
本公开实施例的技术方案,通过在接收到当前确认帧时,确定与当前确认帧相对应的数据包发送信息;进一步的,依据数据包发送信息和预先设置的至少一种拥塞窗口调整策略,确定当前拥塞窗口的目标调整信息,其中,拥塞窗口调整策略包括基于带宽估计值的窗口调整策略、基于丢包率的窗口调整策略和/或基于往返时延的窗口调整策略,从而,基于目标调整信息调整当前拥塞窗口的窗口信息,以基于调整后的窗口信息控制当前拥塞窗口内的数据包量或待发送数据包的字节数。本公开实施例的技术方案,实现了自适应动态调整拥塞窗口,提高了拥塞窗口吞吐量的稳定性和实时性,从而达到了在直播场景中既保证直播画质又保证直播实时性的效果。
附图说明
结合附图并参考以下具体实施方式,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。贯穿附图中,相同或相似的附图标记表示相同或相似的元素。应当理解附图是示意性的,原件和元素不一定按照比例绘制。
图1为本公开实施例所提供的一种拥塞窗口的自适应调整方法的流程示意图;
图2为本公开实施例所提供的另一种拥塞窗口的自适应调整方法的流程示意图;
图3为本公开实施例所提供的确定进入带宽稳定状态和退出带宽稳定状态的过程示意图;
图4为本公开实施例所提供的另一种拥塞窗口的自适应调整方法的流程示意图;
图5为本公开实施例所提供的窗口调整系数与丢包率间变化关系示意图;
图6为本公开实施例所提供的另一种拥塞窗口的自适应调整方法的流程示意图;
图7为本公开实施例所提供的一种基于参考时延的窗口调整策略确定当前拥塞窗口的目标调整信息的示例图;
图8为本公开实施例所提供的一种拥塞窗口的自适应调整装置的结构示意图;
图9为本公开实施例所提供的一种电子设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。
本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。
需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
可以理解的是,在使用本公开各实施例公开的技术方案之前,均应当依据相关法律法规通过恰当的方式对本公开所涉及个人信息的类型、使用范围、使用场景等告知用户并获得用户的授权。
例如,在响应于接收到用户的主动请求时,向用户发送提示信息,以明确地提示用户,其请求执行的操作将需要获取和使用到用户的个人信息。从而,使得用户可以根据提示信息来自主地选择是否向执行本公开技术方案的操作的电子设备、应用程序、服务器或存储介质等软件或硬件提供个人信息。
作为一种可选的但非限定性的实现方式,响应于接收到用户的主动请求,向用户发送提示信息的方式例如可以是弹窗的方式,弹窗中可以以文字的方式呈现提示信息。此外,弹窗中还可以承载供用户选择“同意”或者“不同意”向电子设备提供个人信息的选择控件。
可以理解的是,上述通知和获取用户授权过程仅是示意性的,不对本公开的实现方式构成限定,其它满足相关法律法规的方式也可应用于本公开的实现方式中。
可以理解的是,本技术方案所涉及的数据(包括但不限于数据本身、数据的获取或使用)应当遵循相应法律法规及相关规定的要求。
在介绍本技术方案之前,可以先对应用场景进行示例性说明。接下来,先说明拥塞窗口的含义,所谓“拥塞窗口”就是“拥塞避免”的窗口。拥塞窗口用于容纳发送端已经发送的,但是接收端未收到的数据流。拥塞窗口是一个可滑动窗口,主要体现在两方面,一方面在数据传输的过程中,拥塞窗口内的数据是有进有出的;另一方面,拥塞窗口可容纳的数据量是可以调整的。调整拥塞窗口的原则是:只要网络没有出现拥塞,拥塞窗口就再增大一些,以便把更多的数据流发送出去。但只要网络出现拥塞,拥塞窗口就减少一些,以减少注入到网络中的数据流,从而避免数据拥塞在拥塞窗口中。该技术方案可以应用于任意需要对拥塞窗口进行动态调整的场景中,例如,直播场景、视频实时处理场景或音频实时处理场景等。为了更加清晰地介绍本技术方案,可以以直播场景为例来对本技术方案的执行过程进行说明,对于其他数据流实时进行数据传输的处理场景均可以参见在直播场景下对拥塞窗口进行自适应调整的处理过程。
示例性的,在直播场景中,主要涉及到直播推流和直播拉流两个过程,所谓直播推流指的是直播源端(即主播对应的终端设备)将实时视频内容发送到直播服务器的过程,所谓直播拉流指的是指观众端(即观众对应的终端设备)从直播源服务器获取直播视频流的过程。在直播推流的多媒体数据流传输过程中,容纳直播源端已经发出,但是直播服务端并未收到的数据包的窗口即为拥塞窗口。在直播的过程中只有动态调整拥塞窗口,以使拥塞窗口适应于当前的网络传输环境,才能达到既保证直播画质有保证直播实时性的要求。
在推流过程中,可以将直播源端产生的多媒体数据流被打包为一个个的数据包,并将数据包依次发送至拥塞窗口;拥塞窗口内的数据包再依次被直播服务器接收,当直播服务器接收到一定数量的数据包后可以反馈一个确认帧,此时,可以确定与该确认帧相对应的数据包发送信息(例如,包括带宽估计值、丢包率以及往返时延中的至少一个)。进而,依据数据包发送信息、现有的第一种拥塞窗口调整方式以及新增的至少一种拥塞窗口调整策略,确定最终的窗口调整信息,从而基于窗口调整信息调整拥塞窗口,以提高拥塞窗口吞吐量的稳定性和实时性,达到在直播场景中既保证直播画质又保证直播实时性的效果。
图1为本公开实施例所提供的一种拥塞窗口的自适应调整方法的流程示意图,本公开实施例适用于任意需要实时对数据流渲染的场景中,该方法可以由拥塞窗口的自适应调整装置来执行,该装置可以通过软件和/或硬件的形式实现,可选的,通过电子设备来实现,该电子设备可以是移动终端、PC端或服务器等。
如图1所示,本实施例的方法具体可包括:
S110、在接收到当前确认帧时,确定与当前确认帧相对应的数据包发送信息。
其中,确认帧主要用于确认当前时刻之前至少一个数据包的接收情况。例如,确认帧可以是ACK(Acknowledge character)帧,当服务端接收到另一个终端设备发送的至少一个数据包后,服务端会发送一个带有接收地址的ACK帧(确认帧)作为响应。当前确认帧为当前时刻接收到的确认帧。
在本实施例中,确认帧是服务端基于接收到的包括多媒体数据流的至少一个数据包后生成的。其中,多媒体数据流可以是由至少一种媒体类型(如,图像、文本、音频、视频等)组成的数据流。在本实施例中,多媒体数据流可以包括音频流和/或视频流。音频流可以理解为由音频组成的数据流。视频流可以理解为由视频组成的数据流。
需要说明的是,在直播场景中,多媒体数据流可以是直播页面中同时呈现的直播画面和音频信息。在实际应用中,可以将多媒体数据流拆分为多个数据包,每个数据包对应于一部分多媒体数据流。服务端在接收一定数量的多媒体数据流的数据包之后,生成一个确认帧,可选的,一定数量可以是一个、两个或者多个。
其中,数据包发送信息用于描述数据包在发送过程中产生的记录或者统计数据。在本实施例中,数据包发送信息中包括带宽估计值、丢包率以及往返时延中的至少一个,如此一来,可以根据多种维度的数据对拥塞窗口进行调整,对带宽信息、丢包信息以及往返时延信息中的任意一个均具有敏感性,增强了本窗口调整方法的适用范围。带宽是指单位时间内从一个点到另一个点传输数据的能力,通常以比特/秒(bps)为单位,带宽估计值为对网络链路上的带宽进行估计所确定的估计值。丢包率为是指在数据传输过程中,丢失的数据包数量占所发送数据包总数的比率。这个比率可以用来衡量数据传输的稳定性和网络通信的质量。在本实施例中,多媒体数据流是以数据包的形式进行传输的,丢包率的高低可以反应数据传输的效率和质量。例如,在直播的场景时,如果丢包率过高,可能会导致实时画面掉帧。因此,丢包率是越小越好,高丢包率通常意味着通信质量不佳。往返时延(Round-Trip Time,RTT)用于表示从发送端发送数据开始,到发送端收到来自接收端的确认(接收端收到数据后便立即发送确认),总共经历的时延。
在本实施例中,确定与当前确认帧相对应的数据包发送信息的具体实现方式为:依据当前确认帧所对应的至少一个数据包的包信息,确定至少一个数据包的传输数据;基于传输数据,确定数据包发送信息。
其中,数据包是由多层协议组成的、可以通过网络进行有效传输的媒介。可以理解的是,把文本、图像、可执行文件、多媒体数据流等其他数据等封装成能够在网络上以可靠和有效的方式传输的有组织的数据单位,即为数据包。在本实施例中,数据包是多媒体数据流在通信传输中的数据单位。
其中,数据包的包信息为数据包的元数据,即包信息为描述数据包属性的信息,用来支持如指示存储位置、历史数据、资源查找、文件记录等功能。例如,数据包的包信息中可以包括数据包的目的IP地址、源IP地址、净载数据、发送时刻、到达时刻、发送字节数、接收字节数、发送时长以及接收时长等信息中的至少一种。
在本实施例中,当前确认帧可以对应于一个或者多个数据包。对每个数据包而言,包信息中包含大量用于描述数据包的信息,可以从包信息中提取描述数据传输过程涉及到的信息,即为传输数据。例如,传输数据可以包括发送时刻、到达时刻、发送字节数、接收字节数、发送时长、接收时长、确认帧发送时刻、确认帧被接收时刻等信息。进一步的,通过对传输数据进行计算,可以得到数据包发送信息。
示例性的,基于传输数据,确定数据包发送信息中的带宽估计值,可以是:根据发送字节数和发送时长,确定发送速率;根据接收字节数和接收时长,确定接受速率;根据发送速率和接收速率,确定带宽估计值。基于传输数据,确定数据包发送信息中的丢包率,可以是:根据发送字节数和接收字节数,确定数据包发送信息中的丢包率。基于传输数据,确定数据包发送信息中的往返时延,可以是:根据发送时刻和确认帧被接收时刻,确定数据包发送信息中的往返时延。
在本实施例中,通过从数据包的大量包信息中提取出关键的传输数据,对这些传输数据进行运算得到数据包发送信息,可以快速、准确的确定数据包发送信息。
示例性的,在直播的场景中,可以根据预先设定的单位承载量,将直播源端产生的多媒体数据流封装为多个数据包,并将多个数据包依次发送至直播服务端,例如,每个数据包可以容纳1000字节的多媒体数据流。直播服务端在接收到一定数量的数据包后,可以反馈一个确认帧,此确认帧即为当前确认帧。进一步的,确定当前确认帧所对应的这些数据包的带宽估计值、丢包率和/或往返时延。
S120、依据数据包发送信息和预先设置的至少一种拥塞窗口调整策略,确定当前拥塞窗口的目标调整信息。
其中,拥塞窗口调整策略为对拥塞窗口的大小进行调整的方式方法。目标调整信息为最终确定的对当前拥塞窗口进行调整的依据信息。
在本实施例中,拥塞窗口调整策略包括基于带宽估计值的窗口调整策略、基于丢包率的窗口调整策略和/或基于往返时延的窗口调整策略。
具体的,基于带宽估计值的窗口调整策略,确定当前拥塞窗口的目标调整信息的实现方式为:根据数据包发送信息中的当前带宽估计值和至少一个历史确认帧所对应的历史带宽估计值判断是否进入带宽稳定状态;具体的,预先设定第一带宽阈值(a)和第二带宽阈值(b),a<b,如果上次进入带宽稳定状态的带宽估计值为x,分别确定当前带宽估计值(A0)和各个历史带宽估计值(A0-1,A0-2,A0-3,…,A0-n),与x的比值,在这些比值均小于a时,则判断为进入带宽稳定状态;在比值均大于b时,则判断为退出带宽稳定状态;在进入带宽稳定状态下,当前拥塞窗口的目标调整信息为抑制拥塞窗口的增长;在退出带宽稳定状态下,当前拥塞窗口的目标调整信息为不抑制拥塞窗口的增长。
基于丢包率的窗口调整策略,确定当前拥塞窗口的目标调整信息的实现方式为:根据数据包发送信息中的丢包率和预先分别配置的两个高低阈值(分别为高阈值和低阈值),确定当前拥塞窗口的目标调整信息。具体的,当丢包率小于低阈值时,目标调整信息为不更改拥塞窗口信息;当丢包率大于高阈值时,目标调整信息为根据预设窗口降低系数来降低拥塞窗口;当丢包率介于低阈值与高阈值之间时,依据线性函数确定丢包率对应于的窗口调整系数,目标调整信息为根据窗口调整系数来降低拥塞窗口。
基于往返时延的窗口调整策略,确定当前拥塞窗口的目标调整信息的实现方式为:预先设定第一时延阈值(d)和第二时延阈值(f),d<f,根据当前确认帧对应的数据包发送信息中的往返时延与当前时刻之前的历史往返时延,确定当前往返时延差值;如果当前往返时延差值大于第一时延阈值(d),则目标调整信息为连续降窗M次,每次降窗的大小为第一预设值;如果当前往返时延差值大于第二时延阈值(f),则目标调整信息为连续降窗N次,每次降窗的大小为第二预设值。
需要特别说明的是,本发明实施例提供的技术方案是在原有的第一种拥塞窗口调整方式的基础上,新增的拥塞窗口调整策略。在具体应用中,由于新增的拥塞窗口调整策略是在满足相应的条件时才会触发的,例如,基于带宽估计值的窗口调整策略只有进入稳定带宽状态时才会触发的策略;基于丢包率的窗口调整策略只有发生丢包时才会触发的策略;基于往返时延的窗口调整策略只有当前确定帧对应的往返时延满足预设条件才会触发的策略。即使三种新增的窗口调整策略都没有被触发,依然会根据原有的第一种拥塞窗口调整方式,调整当前拥塞窗口。而目标调整信息仅是针对触发了至少一种新增的窗口调整策略时,才需要确定的调整信息。
S130、基于目标调整信息调整当前拥塞窗口的窗口信息,以基于调整后的窗口信息控制当前拥塞窗口内的数据包量或待发送数据包的字节数。
其中,当前拥塞窗口的窗口信息用于表征当前时刻拥塞窗口的大小。
在本实施例中,可以根据目标调整信息调整当前拥塞窗口的大小。调整后的拥塞窗口可以容纳多少数量的数据包量以及可以接收多少字节的数据是可以确定的,从而可以控制当前拥塞窗口内的数据包量在调整后拥塞窗口的容纳范围内,或者,控制待发送数据包的字节数在调整后拥塞窗口的容纳范围内。
示例性的,目标调整信息为降低拥塞窗口1000KB的容纳量,则将原本为容纳量为15000KB的当前拥塞窗口,降为容纳量为14000KB的拥塞窗口。若每个数据包对应于1000KB的数据量,则可以控制当前拥塞窗口内的数据包量为小于等于14个,或者,控制待发送数据包的字节数小于等于14000KB。
在上述实施例的基础上,在基于目标调整信息调整当前拥塞窗口的窗口信息之后,还包括:基于调整后的窗口信息确定当前拥塞窗口中的数据包量或待发送数据包的字节数,并将下一时刻所接收到的确认帧作为当前确认帧,并执行确定目标调整信息的步骤。
在本实施例中,每隔预设时长可以接收到一个确认帧。例如,每隔0.1ms可以接收到一个确认帧,若当前时刻(t)接收到当前确认帧(ACK0帧),在下一时刻(t+0.1ms)时,接收到确认帧(ACK1帧),此时将ACK1帧确定为当前确认帧,并执行S110-S130的步骤。基于此,在直播的过程中,持续对拥塞窗口进行智能化调整,从而可以保证直播过程的流畅性。
在上述实施例的基础上,该方法还包括:依据数据包信息中的带宽估计值和预设系数,确定对拥塞窗口内的待发送数据包进行传输的发送速率,以基于发送速率将待发送数据包发送至服务端。
其中,预设系数为预先设定的具体值。待发送数据包为位于拥塞窗口内,即将要发送至服务端的数据包。
在本实施例中,待发送数据包进行传输的发送速率、带宽估计值以及预设系数之间的关系可以以公式的形式表示为:
Pacing_rate=α*Bandwidth_estimate 公式(1)
其中,Pacing_rate为发送速率、Bandwidth_estimate为带宽估计值、α为预设系数。
具体的,在得到带宽估计值的基础上,根据公式(1),对带宽估计值和预设系数作乘运算,可以得到对拥塞窗口内的待发送数据包进行传输的发送速率。进一步的,控制拥塞窗口内的待发送数据包以发送速率发送至服务端。如此一来,拥塞窗口内的待发送数据包对应的发送速率也是实时变化的,拥塞窗口内部不会堆积大量的数据包,从而实现数据传输的顺畅性。
本公开实施例的技术方案,通过在接收到当前确认帧时,确定与当前确认帧相对应的数据包发送信息;进一步的,依据数据包发送信息和预先设置的至少一种拥塞窗口调整策略,确定当前拥塞窗口的目标调整信息,其中,拥塞窗口调整策略包括基于带宽估计值的窗口调整策略、基于丢包率的窗口调整策略和/或基于往返时延的窗口调整策略,从而,基于目标调整信息调整当前拥塞窗口的窗口信息,以基于调整后的窗口信息控制当前拥塞窗口内的数据包量或待发送数据包的字节数。本公开实施例的技术方案,实现了自适应动态调整拥塞窗口,提高了拥塞窗口吞吐量的稳定性和实时性,从而达到了在直播场景中既保证直播画质又保证直播实时性的效果。
图2为本公开实施例所提供的另一种拥塞窗口的自适应调整方法的流程示意图。本实施例的技术方案在上述实施例的基础上,详细介绍如何依据数据包发送信息中的带宽估计值和基于带宽估计值的窗口调整策略,确定当前拥塞窗口的目标调整信息,其具体实施方式可以参见本公开实施例的详细阐述。其中,与前述实施例相同或相似的技术特征在此不再赘述。
如图2所示,本实施例的方法具体可包括:
S210、在接收到当前确认帧时,确定与当前确认帧相对应的数据包发送信息的带宽估计值。
在本实施例中,确定数据包发送信息中的带宽估计值,包括:将传输数据中至少一个数据包的发送速率以及相应的接收速率的最小值,作为数据包发送信息中的带宽估计值。
其中,发送速率为单位时间对应的数据发送量,接收速率为单位时间对应的数据接收量。
具体的,当前确认帧对应至少一个数据包,传输数据中包含至少一个数据包对应的发送速率以及相应的接收速率。可选的,可以是每个数据包对应一个发送速率和接收速率,也可以是所有数据包对应一个发送速率和接收速率。可以依据每个数据包对应的发送速率以及相应的接收速率的最小值确定为带宽估计值。示例性的,当前确认帧对应于数据包1、数据包2和数据包3,数据包1对应的发送速率为a1,接收速率为b1;数据包2对应的发送速率为a2,接收速率为b2;数据包3对应的发送速率为a3,接收速率为b3;其中,a1<b1<a2<b2<a3<b3,则数据包发送信息中的带宽估计值为a1。此外,还可以是依据所有数据包对应的发送速率以及相应的接收速率的最小值确定为带宽估计值。示例性的,当前确认帧对应于数据包1、数据包2和数据包3,数据包1、数据包2和数据包3对应的发送速率为x、接收速率为y,其中,x<y,则数据包发送信息中的带宽估计值为x。
在本实施例中,将当前确认帧对应各个数据包的最小传输速率作为带宽估计值,最小传输速率为网络状态最差时所表现的传输速率,在后续基于带宽估计值确定目标调整信息时,即使是在网络状态最差的情况下,所确定的目标调整信息也是最佳的。
S220、依据数据包发送信息中的带宽估计值和基于带宽估计值的窗口调整策略,确定当前拥塞窗口的目标调整信息。
在本实施例中,依据数据包发送信息中的带宽估计值和至少一个历史确认帧所对应的历史带宽估计值,确定当前拥塞窗口的目标调整信息。
其中,历史确认帧为当前时刻之前至少一个时刻所接收到的确认帧。历史带宽估计值为与历史确认帧对应的带宽估计值。历史带宽估计值的数量为一个或者多个。
在本实施例中,根据当前确认帧对应的带宽估计值和至少一个历史带宽估计值,确定当前这段时间网络带宽是否稳定,带宽稳定和带宽不稳定对应的目标调整信息是不同的,从而确定出目标调整信息是符合当前网络状态的。
可选的,依据带宽估计值和至少一个历史确认帧所对应的历史带宽估计值,确定当前拥塞窗口的目标调整信息,具体可以包括:调取前一次进入稳定带宽状态时所对应的基准带宽估计值;分别确定带宽估计值和历史带宽估计值,与基准带宽估计值的比值;基于比值和预设比值阈值,确定当前拥塞窗口的目标调整信息。
其中,基准带宽估计值为在上一次进入稳定带宽状态时所对应的带宽估计值。预设比值阈值为预先设定的固定值,预设比值阈值的大小取值可以进行调整。
在本实施例中,基准带宽估计值在此时为已知量,在此根据预先设定的存储路径调取即可。可以分别确定宽估计值与基准带宽估计值的比值、每个历史带宽估计值与基准带宽估计值的比值。示例性的,如果基准带宽估计值为x,分别确定带宽估计值(A0)和各个历史带宽估计值(A0-1、A0-2、A0-3、…、A0-n),与x的比值,即A0/x、A0-1/x、A0-2/x、A0-3/x、…、A0-n/x。从而,可以基于比值和预设比值阈值的大小关系,确定当前拥塞窗口的目标调整信息。
在本实施例中,根据当前所确定的带宽估计值、历史带宽估计值、以及前一次进入稳定带宽状态时所对应的基准带宽估计值,确定是否进入带宽稳定状态,不同的状态对应与不同的目标调整信息,由于考虑到了历史带宽估计值和基准带宽估计值,可以消除单次带宽估计值的误差,可以确定更加稳定的目标调整信息。
可选的,预设比值阈值包括第一比值阈值和第二比值阈值,基于比值和预设比值阈值,确定当前拥塞窗口的目标调整信息,具体可以包括:在比值均小于等于第一比值阈值时,确定进入带宽稳定状态,并依据带宽估计值更新进入稳定带宽状态时所对应的基准带宽估计值,以及,确定目标调整信息为抑制拥塞窗口增长;在比值均大于第二比值阈值时,确定退出带宽稳定状态,并确定目标调整信息为不抑制拥塞窗口增长。
其中,第一比值阈值区别于第二比值阈值,第一比值阈值与第二比值阈值的具体取值不同,例如,第一比值阈值为a,第二比值阈值为b。
在上述示例性的基础上,确定进入带宽稳定状态和退出带宽稳定状态的过程示意图参见图3,其中,A0/x、A0-1/x、A0-2/x、A0-3/x、…、A0-n/x中的任意一个可以是当前比值。由图5可知,在A0/x、A0-1/x、A0-2/x、A0-3/x、…、A0-n/x(共计Y个比值)均小于等于第一比值阈值时,确定进入带宽稳定状态,此时将进入稳定带宽状态时所对应的基准带宽估计值更新为A0,并确定目标调整信息为抑制拥塞窗口增长,即在基于第一种拥塞窗口调整方式(原有的)所确定的原有调整信息的基础上,需要抑制拥塞窗口大小的增长。由图3可知,在A0/x、A0-1/x、A0-2/x、A0-3/x、…、A0-n/x(共计Y个比值)均大于第二比值阈值时,此时确定退出带宽稳定状态,并确定目标调整信息为不抑制拥塞窗口增长,即在基于第一种拥塞窗口调整方式(原有的)所确定的原有调整信息的基础上,不抑制拥塞窗口大小的增长。
在本实施例中,进入稳定带宽状态时,表明当前带宽已经接近饱和,如果持续增加拥塞窗口的大小,存在数据拥塞风险;退出稳定带宽状态时,表明判断当前可能有更高的带宽,可以增加拥塞窗口的大小,从而提高拥塞窗口的吞吐量,提高数据传输性能。
S230、基于目标调整信息调整当前拥塞窗口的窗口信息,以基于调整后的窗口信息控制当前拥塞窗口内的数据包量或待发送数据包的字节数。
本公开实施例的技术方案,通过在接收到当前确认帧时,确定与当前确认帧相对应的数据包发送信息;进一步的,依据数据包发送信息中的带宽估计值和基于带宽估计值的窗口调整策略,确定当前拥塞窗口的目标调整信息,从而,基于目标调整信息调整当前拥塞窗口的窗口信息,以基于调整后的窗口信息控制当前拥塞窗口内的数据包量或待发送数据包的字节数。本公开实施例的技术方案,根据当前所确定的带宽估计值、历史带宽估计值、以及前一次进入稳定带宽状态时所对应的基准带宽估计值,确定是否进入带宽稳定状态,不同的状态对应与不同的目标调整信息,由于考虑到了历史带宽估计值和基准带宽估计值,可以消除单次带宽估计值的误差,可以确定更加稳定的目标调整信息。
图4为本公开实施例所提供的另一种拥塞窗口的自适应调整方法的流程示意图。本实施例的技术方案在上述实施例的基础上,详细介绍如何依据数据包发送信息中的丢包率和预先设置的基于丢包率的窗口调整策略,确定当前拥塞窗口的目标调整信息,其具体实施方式可以参见本公开实施例的详细阐述。其中,与前述实施例相同或相似的技术特征在此不再赘述。
如图4所示,本实施例的方法具体可包括:
S310、在接收到当前确认帧时,确定与当前确认帧相对应的数据包发送信息中的丢包率。
在本实施例中,确定与当前确认帧相对应的数据包发送信息中的丢包率,具体包括:依据传输数据中至少一个数据包的发送字节数和接收字节数,确定当前确认帧所对应的待拟合丢包率;在未参与拟合的待拟合丢包率达到预设条件时,对所有待拟合丢包率拟合处理,得到待处理丢包率;依据待处理丢包率和当前拥塞窗口所对应的待更新丢包率,对待更新丢包率进行更新;将更新后的待更新丢包率作为数据包发送信息中的丢包率。
其中,预设条件为预先设定的处理规则,用于控制是否对所有待拟合丢包率拟合处理。例如,预设条件可以是未参与拟合的待拟合丢包率的数量达到预设数量阈值,或者,确定出未参与拟合的待拟合丢包率的时长达到预设时长阈值。当前拥塞窗口所对应的待更新丢包率为上一次确定出的待处理丢包率。
在本实施例中,对当前确认帧,根据各个数据包的发送字节数确定总发送字节数,根据各个数据包的接收字节数确定总接收字节数,将总发送字节数和总接收字节数的比值确定为当前确认帧所对应的待拟合丢包率。进而,在未参与拟合的待拟合丢包率的数量达到预设数量阈值(待拟合丢包率的数量达到5个),和/或,确定出未参与拟合的待拟合丢包率的时长达到预设时长阈值时(确定出未参与拟合的待拟合丢包率的时长达1秒),对所有待拟合丢包率进行拟合处理,得到待处理丢包率。其中,拟合处理的具体方式可以包括但不限于:平均处理、加权平均处理等方式。示例性的,当未参与拟合的待拟合丢包率的数量为5个时,对这个5个待拟合丢包率进行平均处理,得到待处理丢包率。进一步的,可以对待处理丢包率和待更新丢包率进行平滑处理,得到平滑丢包率,依据平滑丢包率对待更新丢包率进行更新。
示例性的,当前确认帧为接收到的第10个确认帧,预设条件为未参与拟合的待拟合丢包率的数量达到5个,则可以对第6个-第10个确认帧对应的待拟合丢包率进行拟合处理,得到待处理丢包率。当前拥塞窗口所对应的待更新丢包率为由第1个-第5个确认帧所确定的待处理丢包率。基于此,对待处理丢包率和当前拥塞窗口所对应的待更新丢包率进行平滑处理,得到平滑丢包率,从而依据平滑丢包率对待更新丢包率进行更新,如此一来,可以提高确定丢包率的准确性,进而提高目标调整信息的准确性。
S320、依据数据包发送信息中的丢包率和预先设置的基于丢包率的窗口调整策略,确定当前拥塞窗口的目标调整信息。
在本实施例中,确定当前拥塞窗口的目标调整信息的具体实现方式为:在丢包率大于第一丢包率阈值时,确定目标调整信息为不更改拥塞窗口信息;在丢包率位于第一丢包率阈值和第二丢包率阈值之间时,依据线性函数确定丢包率对应于的第一窗口调整系数,并将第一窗口调整系数作为目标调整信息;在丢包率大于第二丢包率阈值时,确定目标调整信息为第二窗口调整系数。
其中,第一丢包率阈值大于第一丢包率阈值。例如,第一丢包率阈值为j,第二丢包率阈值为k,j<k。线性函数用于表征丢包率与窗口调整系数之间的线性关系。在丢包率为已知值的情况下,根据丢包率和线性关系可以确定与丢包率对应的窗口调整系数。
具体的,窗口调整系数与丢包率间变化关系示意图参见图5,如图5所示,当在丢包率小于第一丢包率阈值时,窗口调整系数为1,此时确定目标调整信息为不更改拥塞窗口信息;图5中的斜线表示丢包率与窗口调整系数之间的线性关系,在丢包率位于第一丢包率阈值和第二丢包率阈值之间时,依据丢包率与窗口调整系数之间的线性关系确定丢包率对应于的第一窗口调整系数(例如,丢包率为s,根据线性关系确定与丢包率s对应的第一窗口调整系数为p),此时目标调整信息为依据第一窗口调整系数对拥塞窗口进行降窗处理;在丢包率大于第二丢包率阈值时,窗口调整系数为B,此时确定目标调整信息为依据第二窗口调整系数对拥塞窗口进行降窗处理。
在本实施例中,并非简单将丢包信息识别为拥塞发生的信号,避免了在具有一定随机丢包的场景中,即使未发生拥塞,发送窗口大小也会持续降低,造成吞吐性能下降的问题。并且,根据丢包率的具体取值,分段性的确定不同的目标调整信息,提高了调整拥塞窗口的稳定性和准确性。
S330、基于目标调整信息调整当前拥塞窗口的窗口信息,以基于调整后的窗口信息控制当前拥塞窗口内的数据包量或待发送数据包的字节数。
本公开实施例的技术方案,通过在接收到当前确认帧时,确定与当前确认帧相对应的数据包发送信息;进一步的,依据数据包发送信息中的丢包率和预先设置的基于丢包率的窗口调整策略,确定当前拥塞窗口的目标调整信息,从而,基于目标调整信息调整当前拥塞窗口的窗口信息,以基于调整后的窗口信息控制当前拥塞窗口内的数据包量或待发送数据包的字节数。本公开实施例的技术方案,并非简单将丢包识别为拥塞发生的信号,避免了在具有一定随机丢包的场景中即使未发生拥塞,发送窗口大小也会持续降低,造成吞吐性能下降的问题,进一步地提高了调整拥塞窗口的稳定性和准确性。
图6为本公开实施例所提供的另一种拥塞窗口的自适应调整方法的流程示意图。本实施例的技术方案在上述实施例的基础上,详细介绍如何依据数据包发送信息中至少一个数据包所对应的往返时延和预先设置的基于往返时延的窗口调整策略,确定当前拥塞窗口的目标调整信息,其具体实施方式可以参见本公开实施例的详细阐述。其中,与前述实施例相同或相似的技术特征在此不再赘述。
如图6所示,本实施例的方法具体可包括:
S410、在接收到当前确认帧时,确定与当前确认帧相对应的数据包发送信息。
S420、依据数据包发送信息中至少一个数据包所对应的往返时延和预先设置的基于往返时延的窗口调整策略,确定当前拥塞窗口的目标调整信息。
在本实施例中,确定当前拥塞窗口的目标调整信息的具体包括:获取当前传输链路所对应的参考时延;对至少一个往返时延平滑处理,得到待使用往返时延;依据待使用往返时延和参考时延,确定当前拥塞窗口的目标调整信息。
其中,参考时延是根据当前时刻之前所发送的至少一个数据包的历史往返时延确定的。例如,可以将当前时刻之前所发送的至少一个数据包的历史往返时延中的最小值确定为参考时延。
具体的,将参考时延预先存储于预设存储单元中,在此根据预先设定的存储路径调取即可。在本实施例中,可以对至少一个往返时延进行平均处理、加权平均处理或者滤波处理,得到待使用往返时延。进而,可以确定待使用往返时延与参考时延之间的差值,根据差值与预设阈值之间的关系,确定当前拥塞窗口的目标调整信息。
可以理解的是,通常往返时延的采样值往往因为不同数据包存在处理延迟等其他延迟而存在很大的波动,本实施例通过参考时延和平滑后的待使用往返时延,可以确定更加稳定的目标调整信息。
具体的,依据待使用往返时延和参考时延,确定当前拥塞窗口的目标调整信息,实现方式为:在待使用往返时延和参考时延之间的差值大于第一预设差值时,确定目标调整信息为以第一预设降窗系数调整当前拥塞窗口第一预设次数;在待使用往返时延和参考时延之间的差值大于第二预设差值时,确定目标调整信息为以第二预设降窗系数调整当前拥塞窗口第二预设次数。
其中,第二预设差值大于第一预设差值。第一预设降窗系数区别于第二预设降窗系数。第一预设次数区别于第二预设次数。
在本实施例中,第一预设差值为a,第一预设差值为b,第一预设降窗系数为每次降窗x%,第二预设降窗系数为每次降窗y%,第一预设次数为M,第二预设次数为N。确定在待使用往返时延和参考时延之间的差值为h。在h大于a时,确定目标调整信息为连续降窗M次,每次降窗x%的方式调整当前拥塞窗口;在h大于b时,确定目标调整信息为连续降窗N次,每次降窗y%的方式调整当前拥塞窗口。
可以理解的是,在待使用往返时延和参考时延之间的差值大于第二预设差值时,表明此时待使用往返时延突然高于之前监测到的参考时延,猜测可能发生了可用带宽的突降,当前发送的数据量对于新的网络环境来说,如果保持下去可能会发生丢包,因此尝试在丢包前先行降窗,可以有效避免窗口拥塞。
S430、基于目标调整信息调整当前拥塞窗口的窗口信息,以基于调整后的窗口信息控制当前拥塞窗口内的数据包量或待发送数据包的字节数。
在上述实施例的基础上,基于目标调整信息调整当前拥塞窗口的窗口信息之后,还包括:确定调整窗口信息后所发送的至少一个数据包的往返时延,将往返时延的最小值作为参考时延。
在本实施例中,在调整窗口信息之后,在当前时刻的下一时刻还会再次接收当前确认帧(可以称之为下一确认帧),下一确认帧同样对应于至少一个数据包,可以确定这些数据包所对应的往返时延,并将确定这些往返时延的最小值,将该最小值确定为参考时延。这样设置的好处在于:参考时延是随着时间的推移持续更新的,提高了目标调整信息的实时性和适用性。
示例性的,接下来以一个具体的示例说明如何基于参考时延的窗口调整策略,确定当前拥塞窗口的目标调整信息,参见图7。如图7所示,首先判断待使用往返时延和参考时延之间的差值是否大于第二预设差值;若是,此时目标调整信息为以第二预设降窗系数调整当前拥塞窗口第二预设次数(激进降窗);若否,则进一步判断待使用往返时延和参考时延之间的差值是否大于第一预设差值,若是,此时目标调整信息为以第一预设降窗系数调整当前拥塞窗口第一预设次数(保守降窗),若否则不降窗。最后,确定调整窗口信息后所发送的至少一个数据包的往返时延,将往返时延的最小值作为参考时延。
本公开实施例的技术方案,通过在接收到当前确认帧时,确定与当前确认帧相对应的数据包发送信息;进一步的,依据数据包发送信息中至少一个数据包所对应的往返时延和预先设置的基于往返时延的窗口调整策略,确定当前拥塞窗口的目标调整信息,从而,基于目标调整信息调整当前拥塞窗口的窗口信息,以基于调整后的窗口信息控制当前拥塞窗口内的数据包量或待发送数据包的字节数。本公开实施例的技术方案,基于往返时延的窗口调整策略通过设置两个数值大小不同的差值阈值,当待使用往返时延大于数值大的差值阈值时,表明待使用往返时延突然高于之前监测到的参考时延,猜测可能发生了可用带宽的突降,当前发送的数据量对于新的网络环境来说,如果保持下去可能会发生丢包,因此尝试在丢包前先行降窗,可以有效避免窗口拥塞。
图8为本公开实施例所提供的一种拥塞窗口的自适应调整装置的结构示意图,如图8所示,所述装置包括:数据包信息确定模块510、调整信息确定模块520和拥塞窗口调整模块530。
其中,数据包信息确定模块510,用于在接收到当前确认帧时,确定与所述当前确认帧相对应的数据包发送信息,其中,确认帧是服务端基于接收到的包括多媒体数据流的至少一个数据包后生成的;调整信息确定模块520,用于依据所述数据包发送信息和预先设置的至少一种拥塞窗口调整策略,确定当前拥塞窗口的目标调整信息;其中,所述拥塞窗口调整策略包括基于带宽估计值的窗口调整策略、基于丢包率的窗口调整策略和/或基于往返时延的窗口调整策略;拥塞窗口调整模块530,用于基于所述目标调整信息调整所述当前拥塞窗口的窗口信息,以基于调整后的窗口信息控制所述当前拥塞窗口内的数据包量或待发送数据包的字节数。
在上述各可选技术方案的基础上,可选的,数据包信息确定模块510,具体用于依据所述当前确认帧所对应的至少一个数据包的包信息,确定所述至少一个数据包的传输数据;基于所述传输数据,确定所述数据包发送信息。
在上述各可选技术方案的基础上,可选的,所述数据包发送信息中包括带宽估计值、丢包率以及往返时延中的至少一个。
在上述各可选技术方案的基础上,可选的,数据包信息确定模块510还包括带宽估计值确定单元;
带宽估计值确定单元,用于将所述传输数据中至少一个数据包的发送速率以及相应的接收速率的最小值,作为所述数据包发送信息中的带宽估计值。
在上述各可选技术方案的基础上,可选的,调整信息确定模块520,包括:第一调整信息确定子模块、第二调整信息确定子模块和第三调整信息确定子模块;
可选的,所述拥塞窗口调整策略为基于带宽估计值的窗口调整策略,所述数据包发送信息包括带宽估计值,第一调整信息确定子模块,用于依据所述带宽估计值和至少一个历史确认帧所对应的历史带宽估计值,确定所述当前拥塞窗口的目标调整信息。
可选的,第一调整信息确定子模块,具体包括:
基准带宽调取单元,用于调取前一次进入稳定带宽状态时所对应的基准带宽估计值;
基准比值确定单元,用于分别确定所述带宽估计值和所述历史带宽估计值,与所述基准带宽估计值的比值;
第一调整信息确定单元,用于基于所述比值和预设比值阈值,确定所述当前拥塞窗口的目标调整信息。
可选的,所述预设比值阈值包括第一比值阈值和第二比值阈值,第一调整信息确定单元具体用于:在所述比值均小于等于第一比值阈值时,确定进入带宽稳定状态,并依据所述带宽估计值更新进入所述稳定带宽状态时所对应的基准带宽估计值,以及,确定所述目标调整信息为抑制拥塞窗口增长;在所述比值均大于第二比值阈值时,确定退出带宽稳定状态,并确定所述目标调整信息为不抑制拥塞窗口增长。
在上述各可选技术方案的基础上,可选的,所述装置还包括:丢包率确定模块;
可选的,丢包率确定模块,包括:
待拟合丢包率确定单元,用于依据所述传输数据中至少一个数据包的发送字节数和接收字节数,确定所述当前确认帧所对应的待拟合丢包率;
待处理丢包率确定单元,用于在未参与拟合的待拟合丢包率达到预设条件时,对所有所述待拟合丢包率拟合处理,得到待处理丢包率;
丢包率更新单元,用于依据所述待处理丢包率和所述当前拥塞窗口所对应的待更新丢包率,对所述待更新丢包率进行更新;
丢包率确定单元,用于将更新后的待更新丢包率作为所述数据包发送信息中的丢包率。
可选的,所述数据包发送信息包括丢包率,所述拥塞窗口调整策略为基于丢包率的窗口调整策略,第二调整信息确定子模块,具体包括:
可选的,所述数据包发送信息包括丢包率,第二调整子模块,具体包括:
第一调整单元,用于在所述丢包率小于第一丢包率阈值时,确定所述目标调整信息为不更改拥塞窗口信息;
第二调整单元,用于在所述丢包率位于所述第一丢包率阈值和第二丢包率阈值之间时,依据线性函数确定所述丢包率对应于的第一窗口调整系数,并将所述第一窗口调整系数作为所述目标调整信息;
第三调整单元,用于在所述丢包率大于所述第二丢包率阈值时,确定所述目标调整信息为第二窗口调整系数;
其中,所述第二丢包率阈值大于所述第一丢包率阈值。
可选的,所述数据包发送信息包括至少一个数据包所对应的往返时延,所述拥塞窗口调整策略包括基于往返时延的窗口调整策略;第三调整信息确定子模块,具体包括:
参考时延获取单元,用于获取当前传输链路所对应的参考时延,其中,所述参考时延是根据当前时刻之前所发送的至少一个数据包的历史往返时延确定的;
待使用往返时延确定单元,用于对至少一个所述往返时延平滑处理,得到待使用往返时延;
调整信息确定单元,用于依据所述待使用往返时延和所述参考时延,确定所述当前拥塞窗口的目标调整信息。
可选的,调整信息确定单元具体用于:在所述待使用往返时延和所述参考时延之间的差值大于第一预设差值时,确定所述目标调整信息为以第一预设降窗系数调整所述当前拥塞窗口第一预设次数;在所述待使用往返时延和所述参考时延之间的差值大于第二预设差值时,确定所述目标调整信息为以第二预设降窗系数调整所述当前拥塞窗口第二预设次数;其中,所述第二预设差值大于所述第一预设差值。
在上述各可选技术方案的基础上,可选的,所述装置还包括:发送速率确定模块;
发送速率确定模块,用于依据所述数据包信息中的带宽估计值和预设系数,确定对所述拥塞窗口内的待发送数据包进行传输的发送速率,以基于所述发送速率将所述待发送数据包发送至所述服务端。
在上述各可选技术方案的基础上,可选的,所述装置还包括:重复执行模块;
重复执行模块,用于基于调整后的窗口信息确定所述当前拥塞窗口中的数据包量或待发送数据包的字节数,并将下一时刻所接收到的确认帧作为当前确认帧,并执行确定目标调整信息的步骤。
在上述各可选技术方案的基础上,可选的,所述装置还包括:参考时延更新模块;
参考时延更新模块,用于确定调整窗口信息后所发送的至少一个数据包的往返时延,将往返时延的最小值作为参考时延。
本公开实施例的技术方案,通过在接收到当前确认帧时,确定与当前确认帧相对应的数据包发送信息;进一步的,依据数据包发送信息和预先设置的至少一种拥塞窗口调整策略,确定当前拥塞窗口的目标调整信息,其中,拥塞窗口调整策略包括基于带宽估计值的窗口调整策略、基于丢包率的窗口调整策略和/或基于往返时延的窗口调整策略,从而,基于目标调整信息调整当前拥塞窗口的窗口信息,以基于调整后的窗口信息控制当前拥塞窗口内的数据包量或待发送数据包的字节数。本公开实施例的技术方案,实现了自适应动态调整拥塞窗口,提高了拥塞窗口吞吐量的稳定性和实时性,从而达到了在直播场景中既保证直播画质又保证直播实时性的效果。
本公开实施例所提供的拥塞窗口的自适应调整装置可执行本公开任意实施例所提供的拥塞窗口的自适应调整方法,具备执行方法相应的功能模块和有益效果。
值得注意的是,上述装置所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本公开实施例的保护范围。
图9为本公开实施例所提供的一种电子设备的结构示意图。下面参考图9,其示出了适于用来实现本公开实施例的电子设备(例如图9中的终端设备或服务器)500的结构示意图。本公开实施例中的终端设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图9示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图9所示,电子设备500可以包括处理装置(例如中央处理器、图形处理器等)501,其可以根据存储在只读存储器(ROM)502中的程序或者从存储装置508加载到随机访问存储器(RAM)503中的程序而执行各种适当的动作和处理。在RAM 503中,还存储有电子设备500操作所需的各种程序和数据。处理装置501、ROM 502以及RAM 503通过总线504彼此相连。编辑/输出(I/O)接口505也连接至总线504。
通常,以下装置可以连接至I/O接口505:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置506;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置507;包括例如磁带、硬盘等的存储装置508;以及通信装置509。通信装置509可以允许电子设备500与其他设备进行无线或有线通信以交换数据。虽然图9示出了具有各种装置的电子设备500,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在非暂态计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置509从网络上被下载和安装,或者从存储装置508被安装,或者从ROM 502被安装。在该计算机程序被处理装置501执行时,执行本公开实施例的方法中限定的上述功能。
本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
本公开实施例提供的电子设备与上述实施例提供的拥塞窗口的自适应调整方法属于同一发明构思,未在本公开实施例中详尽描述的技术细节可参见上述实施例,并且本实施例与上述实施例具有相同的有益效果。
本公开实施例提供了一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述实施例所提供的拥塞窗口的自适应调整方法。
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
在一些实施方式中,客户端、服务器可以利用诸如HTTP(HyperText TransferProtocol,超文本传输协议)之类的任何当前已知或未来研发的网络协议进行通信,并且可以与任意形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”),广域网(“WAN”),网际网(例如,互联网)以及端对端网络(例如,ad hoc端对端网络),以及任何当前已知或未来研发的网络。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:获取多媒体数据流,其中,所述多媒体数据流包括音频流和/或视频流;在接收到目标请求的情况下,将获取的多媒体数据流发送至目标设备,以使所述目标设备基于所述目标请求对所述多媒体数据流进行渲染处理,得到待推送的多媒体数据流。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括但不限于面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定,例如,第一获取单元还可以被描述为“获取至少两个网际协议地址的单元”。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑设备(CPLD)等等。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
此外,虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序执行来执行。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。

Claims (17)

1.一种拥塞窗口的自适应调整方法,其特征在于,包括:
在接收到当前确认帧时,确定与所述当前确认帧相对应的数据包发送信息,其中,确认帧是服务端基于接收到的包括多媒体数据流的至少一个数据包后生成的;
依据所述数据包发送信息和预先设置的至少一种拥塞窗口调整策略,确定当前拥塞窗口的目标调整信息;其中,所述拥塞窗口调整策略包括基于带宽估计值的窗口调整策略、基于丢包率的窗口调整策略和/或基于往返时延的窗口调整策略;
基于所述目标调整信息调整所述当前拥塞窗口的窗口信息,以基于调整后的窗口信息控制所述当前拥塞窗口内的数据包量或待发送数据包的字节数。
2.根据权利要求1所述的方法,其特征在于,所述确定与所述当前确认帧相对应的数据包发送信息,包括:
依据所述当前确认帧所对应的至少一个数据包的包信息,确定所述至少一个数据包的传输数据;
基于所述传输数据,确定所述数据包发送信息。
3.根据权利要求1或2所述的方法,其特征在于,所述数据包发送信息中包括带宽估计值、丢包率以及往返时延中的至少一个。
4.根据权利要求3所述的方法,其特征在于,确定所述数据包发送信息中的带宽估计值,包括:
将所述传输数据中至少一个数据包的发送速率以及相应的接收速率的最小值,作为所述数据包发送信息中的带宽估计值。
5.根据权利要求1所述的方法,其特征在于,所述拥塞窗口调整策略为基于带宽估计值的窗口调整策略,所述数据包发送信息包括带宽估计值;
所述依据所述数据包发送信息和预先设置的至少一种拥塞窗口调整策略,确定当前拥塞窗口的目标调整信息,包括:
依据所述带宽估计值和至少一个历史确认帧所对应的历史带宽估计值,确定所述当前拥塞窗口的目标调整信息。
6.根据权利要求5所述的方法,其特征在于,所述依据所述带宽估计值和至少一个历史确认帧所对应的历史带宽估计值,确定所述当前拥塞窗口的目标调整信息,包括:
调取前一次进入稳定带宽状态时所对应的基准带宽估计值;
分别确定所述带宽估计值和所述历史带宽估计值,与所述基准带宽估计值的比值;
基于所述比值和预设比值阈值,确定所述当前拥塞窗口的目标调整信息。
7.根据权利要求6所述的方法,其特征在于,所述预设比值阈值包括第一比值阈值和第二比值阈值,所述基于所述比值和预设比值阈值,确定所述当前拥塞窗口的目标调整信息,包括:
在所述比值均小于等于第一比值阈值时,确定进入带宽稳定状态,并依据所述带宽估计值更新进入所述稳定带宽状态时所对应的基准带宽估计值,以及,确定所述目标调整信息为抑制拥塞窗口增长;
在所述比值均大于第二比值阈值时,确定退出带宽稳定状态,并确定所述目标调整信息为不抑制拥塞窗口增长。
8.根据权利要求3所述的方法,其特征在于,确定所述数据包发送信息中的丢包率,包括:
依据所述传输数据中至少一个数据包的发送字节数和接收字节数,确定所述当前确认帧所对应的待拟合丢包率;
在未参与拟合的待拟合丢包率达到预设条件时,对所有所述待拟合丢包率拟合处理,得到待处理丢包率;
依据所述待处理丢包率和所述当前拥塞窗口所对应的待更新丢包率,对所述待更新丢包率进行更新;
将更新后的待更新丢包率作为所述数据包发送信息中的丢包率。
9.根据权利要求1所述的方法,其特征在于,所述数据包发送信息包括丢包率,所述拥塞窗口调整策略为基于丢包率的窗口调整策略;
所述依据所述数据包发送信息和预先设置的至少一种拥塞窗口调整策略,确定当前拥塞窗口的目标调整信息,包括:
在所述丢包率小于第一丢包率阈值时,确定所述目标调整信息为不更改拥塞窗口信息;
在所述丢包率位于所述第一丢包率阈值和第二丢包率阈值之间时,依据线性函数确定所述丢包率对应于的第一窗口调整系数,并将所述第一窗口调整系数作为所述目标调整信息;
在所述丢包率大于所述第二丢包率阈值时,确定所述目标调整信息为第二窗口调整系数;
其中,所述第二丢包率阈值大于所述第一丢包率阈值。
10.根据权利要求1所述的方法,其特征在于,所述数据包发送信息包括至少一个数据包所对应的往返时延,所述拥塞窗口调整策略包括基于往返时延的窗口调整策略;
所述依据所述数据包发送信息和预先设置的至少一种拥塞窗口调整策略,确定当前拥塞窗口的目标调整信息,包括:
获取当前传输链路所对应的参考时延,其中,所述参考时延是根据当前时刻之前所发送的至少一个数据包的历史往返时延确定的;
对至少一个所述往返时延平滑处理,得到待使用往返时延;
依据所述待使用往返时延和所述参考时延,确定所述当前拥塞窗口的目标调整信息。
11.根据权利要求10所述的方法,其特征在于,所述依据所述待使用往返时延和所述参考时延,确定所述当前拥塞窗口的目标调整信息,包括:
在所述待使用往返时延和所述参考时延之间的差值大于第一预设差值时,确定所述目标调整信息为以第一预设降窗系数调整所述当前拥塞窗口第一预设次数;
在所述待使用往返时延和所述参考时延之间的差值大于第二预设差值时,确定所述目标调整信息为以第二预设降窗系数调整所述当前拥塞窗口第二预设次数;
其中,所述第二预设差值大于所述第一预设差值。
12.根据权利要求1所述的方法,其特征在于,所述方法还包括:
依据所述数据包信息中的带宽估计值和预设系数,确定对所述拥塞窗口内的待发送数据包进行传输的发送速率,以基于所述发送速率将所述待发送数据包发送至所述服务端。
13.根据权利要求1所述的方法,其特征在于,在所述基于所述目标调整信息调整所述当前拥塞窗口的窗口信息之后,所述方法还包括:
基于调整后的窗口信息确定所述当前拥塞窗口中的数据包量或待发送数据包的字节数,并将下一时刻所接收到的确认帧作为当前确认帧,并执行确定目标调整信息的步骤。
14.根据权利要求11所述的方法,其特征在于,所述方法还包括:
确定调整窗口信息后所发送的至少一个数据包的往返时延,将往返时延的最小值作为参考时延。
15.一种拥塞窗口的自适应调整装置,其特征在于,包括:
数据包信息确定模块,用于在接收到当前确认帧时,确定与所述当前确认帧相对应的数据包发送信息,其中,确认帧是服务端基于接收到的包括多媒体数据流的至少一个数据包后生成的;
调整信息确定模块,用于依据所述数据包发送信息和预先设置的至少一种拥塞窗口调整策略,确定当前拥塞窗口的目标调整信息;其中,所述拥塞窗口调整策略包括基于带宽估计值的窗口调整策略、基于丢包率的窗口调整策略和/或基于往返时延的窗口调整策略;
拥塞窗口调整模块,用于基于所述目标调整信息调整所述当前拥塞窗口的窗口信息,以基于调整后的窗口信息控制所述当前拥塞窗口内的数据包量或待发送数据包的字节数。
16.一种电子设备,其特征在于,所述电子设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-14中任一所述的拥塞窗口的自适应调整方法。
17.一种包含计算机可执行指令的存储介质,其特征在于,所述计算机可执行指令在由计算机处理器执行时用于执行如权利要求1-14中任一所述的拥塞窗口的自适应调整方法。
CN202410324372.3A 2024-03-20 2024-03-20 一种拥塞窗口的自适应调整方法、装置、设备及介质 Pending CN118233400A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410324372.3A CN118233400A (zh) 2024-03-20 2024-03-20 一种拥塞窗口的自适应调整方法、装置、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410324372.3A CN118233400A (zh) 2024-03-20 2024-03-20 一种拥塞窗口的自适应调整方法、装置、设备及介质

Publications (1)

Publication Number Publication Date
CN118233400A true CN118233400A (zh) 2024-06-21

Family

ID=91502207

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410324372.3A Pending CN118233400A (zh) 2024-03-20 2024-03-20 一种拥塞窗口的自适应调整方法、装置、设备及介质

Country Status (1)

Country Link
CN (1) CN118233400A (zh)

Similar Documents

Publication Publication Date Title
CN109587510B (zh) 一种直播方法、装置、设备和存储介质
CN113992967B (zh) 一种投屏数据传输方法、装置、电子设备及存储介质
US20080022005A1 (en) Glitch-Free Media Streaming
CN111147606B (zh) 数据传输的方法、装置、终端及存储介质
CN112312137A (zh) 一种视频传输方法、装置、电子设备及存储介质
CN111225209B (zh) 视频数据推流方法、装置、终端及存储介质
CN112312229A (zh) 一种视频传输方法、装置、电子设备及存储介质
US9819715B2 (en) Client side control of adaptive streaming
CN112954354B (zh) 视频的转码方法、装置、设备和介质
CN107483401B (zh) 一种多媒体数据传输方法及其设备、存储介质、服务器
CN109660467B (zh) 用于控制流量的方法和装置
CN114401447A (zh) 一种视频卡顿预测方法、装置、设备和介质
US11190430B2 (en) Determining the bandwidth of a communication link
CN116546276A (zh) 链路带宽估计方法、装置、设备、存储介质以及程序产品
CN115801639B (zh) 一种带宽探测方法、装置、电子设备及存储介质
CN114584826B (zh) 一种视频动态下载方法、装置、电子设备及存储介质
CN118233400A (zh) 一种拥塞窗口的自适应调整方法、装置、设备及介质
CN116319569A (zh) 网络参数更新方法、网络参数更新装置、介质及电子设备
CN114979768A (zh) 视频缓存方法、装置、设备及存储介质
CN117319752A (zh) 音视频处理方法、装置、电子设备及存储介质
CN117579903A (zh) 数据流控制方法、装置、电子设备和存储介质
CN118138776A (zh) 一种视频编码方法、装置、设备和存储介质
CN117201418A (zh) 一种数据发送方法、装置、设备和存储介质
CN115103023B (zh) 视频缓存方法、装置、设备及存储介质
CN117459470A (zh) 码率调整方法、装置、电子设备、介质及产品

Legal Events

Date Code Title Description
PB01 Publication
SE01 Entry into force of request for substantive examination