CN115150283B - 网络带宽探测方法、装置、计算机设备和存储介质 - Google Patents

网络带宽探测方法、装置、计算机设备和存储介质 Download PDF

Info

Publication number
CN115150283B
CN115150283B CN202211077232.8A CN202211077232A CN115150283B CN 115150283 B CN115150283 B CN 115150283B CN 202211077232 A CN202211077232 A CN 202211077232A CN 115150283 B CN115150283 B CN 115150283B
Authority
CN
China
Prior art keywords
bandwidth
packet
detection
network
value
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
Application number
CN202211077232.8A
Other languages
English (en)
Other versions
CN115150283A (zh
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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202211077232.8A priority Critical patent/CN115150283B/zh
Publication of CN115150283A publication Critical patent/CN115150283A/zh
Application granted granted Critical
Publication of CN115150283B publication Critical patent/CN115150283B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0896Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Environmental & Geological Engineering (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请涉及一种网络带宽探测方法、装置、计算机设备和存储介质。所述方法包括:获取上一探测周期的网络质量参数,基于网络质量参数,从多个预设的网络模态中确定当前探测周期的当前网络模态;确定为当前网络模态预配置的探测包发送策略和带宽计算方式;获取上一探测周期的历史带宽探测值,在当前探测周期内,基于探测包发送策略,并按照历史带宽探测值所表征的网络带宽发送带宽探测包,获得当前探测周期的探测包发送记录;获取与当前探测周期的探测包发送记录相应的探测包接收记录,基于探测包发送记录和探测包接收记录,并按照带宽计算方式,确定当前探测周期的带宽探测值。采用本方法能够提高网络带宽探测精度。

Description

网络带宽探测方法、装置、计算机设备和存储介质
技术领域
本申请涉及数据传输技术领域,特别是涉及一种网络带宽探测方法、装置、计算机设备、存储介质和计算机程序产品。
背景技术
随着数据传输技术的发展,互联网应用对延迟、吞吐量的需求呈现爆炸式增长,对端到端网络数据传输技术的延迟稳定性、可靠性提出了极高挑战。现有端到端网络数据传输技术依赖网络带宽的精确探测来制定最佳的数据传输策略,以尽可能抵抗互联网中不可预知的丢包、延迟抖动等不良因素,因此,实现精确的网络带宽探测尤为重要。
传统技术中,常采用被动探测方法进行网络带宽探测,被动探测方法通常直接利用收发包数据来估计网络带宽,不会干扰正常数据传输。
然而,传统方法在不稳定的网络环境下存在网络带宽探测精度低的问题。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高网络带宽探测精度的网络带宽探测方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
第一方面,本申请提供了一种网络带宽探测方法。所述方法包括:
获取上一探测周期的网络质量参数,基于网络质量参数,从多个预设的网络模态中确定当前探测周期的当前网络模态;
确定为当前网络模态预配置的探测包发送策略和带宽计算方式;
获取上一探测周期的历史带宽探测值,在当前探测周期内,基于探测包发送策略,并按照历史带宽探测值所表征的网络带宽发送带宽探测包,获得当前探测周期的探测包发送记录;
获取与当前探测周期的探测包发送记录相应的探测包接收记录,基于探测包发送记录和探测包接收记录,并按照带宽计算方式,确定当前探测周期的带宽探测值。
第二方面,本申请还提供了一种网络带宽探测方法。所述方法包括:
获取待向接收装置发送的数据,将数据存储于发送缓冲器;
控制器基于接收装置反馈的记录有上一探测周期的历史探测包接收记录的反馈信号,获取上一探测周期的网络质量参数,基于网络质量参数,从多个预设的网络模态中确定当前探测周期的当前网络模态,确定为当前网络模态预配置的探测包发送策略和带宽计算方式,获取上一探测周期的历史带宽探测值;
在当前探测周期内,步进器按照控制器提供的探测包发送策略以及历史带宽探测值所表征的网络带宽,将发送缓冲器中数据形成带宽探测包并向接收装置发送,并通过存储器记录当前探测周期的探测包发送记录;
控制器接收接收装置响应于带宽探测包反馈的记录当前探测周期的探测包接收记录的反馈信号,基于存储器中存储的探测包发送记录和探测包接收记录,并按照带宽计算方式,确定当前探测周期的带宽探测值。
第三方面,本申请还提供了一种网络带宽探测装置。所述装置包括:
网络模态判定模块,用于获取上一探测周期的网络质量参数,基于网络质量参数,从多个预设的网络模态中确定当前探测周期的当前网络模态;
处理模块,用于确定为当前网络模态预配置的探测包发送策略和带宽计算方式;
探测包发送模块,用于获取上一探测周期的历史带宽探测值,在当前探测周期内,基于探测包发送策略,并按照历史带宽探测值所表征的网络带宽发送带宽探测包,获得当前探测周期的探测包发送记录;
带宽估计模块,用于获取与当前探测周期的探测包发送记录相应的探测包接收记录,基于探测包发送记录和探测包接收记录,并按照带宽计算方式,确定当前探测周期的带宽探测值。
第四方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取上一探测周期的网络质量参数,基于网络质量参数,从多个预设的网络模态中确定当前探测周期的当前网络模态;
确定为当前网络模态预配置的探测包发送策略和带宽计算方式;
获取上一探测周期的历史带宽探测值,在当前探测周期内,基于探测包发送策略,并按照历史带宽探测值所表征的网络带宽发送带宽探测包,获得当前探测周期的探测包发送记录;
获取与当前探测周期的探测包发送记录相应的探测包接收记录,基于探测包发送记录和探测包接收记录,并按照带宽计算方式,确定当前探测周期的带宽探测值。
第五方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取上一探测周期的网络质量参数,基于网络质量参数,从多个预设的网络模态中确定当前探测周期的当前网络模态;
确定为当前网络模态预配置的探测包发送策略和带宽计算方式;
获取上一探测周期的历史带宽探测值,在当前探测周期内,基于探测包发送策略,并按照历史带宽探测值所表征的网络带宽发送带宽探测包,获得当前探测周期的探测包发送记录;
获取与当前探测周期的探测包发送记录相应的探测包接收记录,基于探测包发送记录和探测包接收记录,并按照带宽计算方式,确定当前探测周期的带宽探测值。
第六方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
获取上一探测周期的网络质量参数,基于网络质量参数,从多个预设的网络模态中确定当前探测周期的当前网络模态;
确定为当前网络模态预配置的探测包发送策略和带宽计算方式;
获取上一探测周期的历史带宽探测值,在当前探测周期内,基于探测包发送策略,并按照历史带宽探测值所表征的网络带宽发送带宽探测包,获得当前探测周期的探测包发送记录;
获取与当前探测周期的探测包发送记录相应的探测包接收记录,基于探测包发送记录和探测包接收记录,并按照带宽计算方式,确定当前探测周期的带宽探测值。
上述网络带宽探测方法、装置、计算机设备、存储介质和计算机程序产品,通过获取上一探测周期的网络质量参数,能够基于网络质量参数,从多个预设的网络模态中确定当前探测周期的当前网络模态,从而可以在确定为当前网络模态预配置的探测包发送策略和带宽计算方式的基础上,通过获取上一探测周期的历史带宽探测值,在当前探测周期内,基于探测包发送策略,并按照历史带宽探测值所表征的网络带宽发送带宽探测包,实现对带宽探测包的发送,进而可以在获取当前探测周期的探测包发送记录和探测包发送记录相应的探测包接收记录的基础上,基于探测包发送记录和探测包接收记录,并按照带宽计算方式,确定当前探测周期的带宽探测值,整个过程,能够通过上一探测周期的网络质量参数确定当前探测周期的当前网络模态,进而可以在确定为当前网络模态预配置的探测包发送策略和带宽计算方式的基础上,有针对性的进行网络带宽探测,能够提高网络带宽探测精度。
附图说明
图1为一个实施例中网络带宽探测方法的应用环境图;
图2为一个实施例中网络带宽探测方法的流程示意图;
图3为另一个实施例中网络带宽探测方法的流程示意图;
图4为一个实施例中WebRTC (Web Real-Time Communications,一项实时通讯技术) 框架内网络带宽探测方法的示意图;
图5为一个实施例中HTTP3(Hyper Text Transfer Protocol,超文本传输协议)框架内网络带宽探测方法的示意图;
图6为一个实施例中网络带宽探测方法的技术效果示意图;
图7为另一个实施例中网络带宽探测方法的技术效果示意图;
图8为又一个实施例中网络带宽探测方法的流程示意图;
图9为一个实施例中网络带宽探测系统的示意图;
图10为一个实施例中网络带宽探测装置的结构框图;
图11为一个实施例中计算机设备的内部结构图;
图12为另一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例提供的网络带宽探测方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。数据存储系统可以存储服务器104需要处理的数据。数据存储系统可以集成在服务器104上,也可以放在云上或其他服务器上。服务器104获取上一探测周期的网络质量参数,基于网络质量参数,从多个预设的网络模态中确定当前探测周期的当前网络模态,确定为当前网络模态预配置的探测包发送策略和带宽计算方式,获取上一探测周期的历史带宽探测值,在当前探测周期内,基于探测包发送策略,并按照历史带宽探测值所表征的网络带宽发送带宽探测包至终端102,获得当前探测周期的探测包发送记录,获取与当前探测周期的探测包发送记录相应的探测包接收记录,基于探测包发送记录和探测包接收记录,并按照带宽计算方式,确定当前探测周期的带宽探测值。其中,终端102可以但不限于是各种台式计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能空调、智能车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。服务器104可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。
在一个实施例中,如图2所示,提供了一种网络带宽探测方法,本实施例以该方法应用于服务器进行举例说明,可以理解的是,该方法也可以应用于终端,还可以应用于包括终端和服务器的系统,并通过终端和服务器的交互实现,包括以下步骤:
步骤202,获取上一探测周期的网络质量参数,基于网络质量参数,从多个预设的网络模态中确定当前探测周期的当前网络模态。
其中,网络质量参数是指用于衡量网络质量的参数。比如,网络质量参数具体可以是指用于衡量网络质量的延迟。延迟是指带宽探测包从源节点传输到目的节点需要的时间,如果使用ping(Packet Internet Groper,一种因特网包探索器,用于测试网络连接量的程序)来测试的话,可以通过往返时延来反映其状况。举例说明,本实施例中延迟具体可以是指带宽探测包从服务器传输到接收端需要的时间,该时间具体可以为往返时延,即往返时间。又比如,网络质量参数具体可以是指用于衡量网络质量的丢包率。丢包是指一个或多个带宽探测包的数据无法通过网络传输到达目的节点,丢包率越大网络质量越差。再比如,网络质量参数具体可以是指用于衡量网络质量的抖动。抖动是指数据到达的顺序以及间隔和触发时的差异,我们通常期望网络延迟能够稳定在某个区间上,如果网络延迟抖动比较大,也就说明网络质量存在一定问题。
其中,模态是指模式和状态,网络模态是指网络所处于的模式和状态,根据网络质量参数所表征的网络质量的不同,可以对网络进行划分,确定网络处于何种模态。比如,当网络质量参数所表征的网络质量好,网络模态具体可以为网络处于稳定的模式和状态。又比如,当网络质量参数所表征的网络质量不好,网络模态具体可以为网络处于不稳定的模式和状态。预设的网络模态是指预先设置的网络模态,可以按照实际的应用场景进行配置。当前网络模态是指在当前探测周期网络所处于的模态。
具体的,服务器会获取上一探测周期的网络质量参数,基于网络质量参数进行网络模态判定,从多个预设的网络模态中确定当前探测周期的当前网络模态。在具体的应用中,在基于网络质量参数进行网络模态判定时,服务器会获取当前探测周期的用于对网络模态进行判定的判断阈值,以通过比对判断阈值和网络质量参数中相对应的网络质量量化值,从多个预设的网络模态中确定当前探测周期的当前网络模态。
步骤204,确定为当前网络模态预配置的探测包发送策略和带宽计算方式。
其中,探测包发送策略是指在发送带宽探测包时所采用的策略。比如,探测包发送策略具体可以包括采用多长时间作为带宽探测时长发送带宽探测包。又比如,探测包发送策略具体可以包括采用何种模式发送带宽探测包。举例说明,探测包发送策略具体可以包括采用突发模式发送带宽探测包,即将多个带宽探测包同时发送出去,根据实际应用场景设置每次以突发模式发送带宽探测包的大小。再比如,探测包发送策略具体可以包括为不同类型的网络环境预配置不同的数据包大小。举例说明,对于蜂窝网络和无线网络可以预配置不同的数据包大小。
其中,带宽计算方式是指在计算带宽探测值时所采用的计算方式。比如,带宽计算方式具体可以包括采用何种速率作为依据计算带宽探测值。举例说明,可以以上一周期的探测包按序到达速率作为依据计算带宽探测值。又举例说明,可以以探测包实际接收速率为依据计算带宽探测值。再举例说明,可以以探测包实际发送速率和探测包实际接收速率为依据计算带宽探测值。
具体的,针对于每种网络模态,都预配置有相应的探测包发送策略和带宽计算方式,在确定当前探测周期的当前网络模态后,服务器会确定为当前网络模态预配置的探测包发送策略和带宽计算方式。
步骤206,获取上一探测周期的历史带宽探测值,在当前探测周期内,基于探测包发送策略,并按照历史带宽探测值所表征的网络带宽发送带宽探测包,获得当前探测周期的探测包发送记录。
其中,历史带宽探测值是指在上一探测周期所确定的带宽探测值。带宽探测包是指用于带宽探测的数据包。对于不同类型的使用网络带宽的应用而言,在网络带宽探测时所使用的数据包类型可以不同。比如,对于视频类应用,带宽探测包具体可以为视频数据包。又比如,对于音频类应用,带宽探测包具体可以为音频数据包。探测包发送记录用于对所发送的带宽探测包的发送情况进行记录。比如,探测包发送记录具体可以包括所发送的带宽探测包的探测包序列号、探测包大小以及发送时间。
具体的,服务器会获取上一探测周期的历史带宽探测值,在当前探测周期内,基于为当前网络模态预配置的探测包发送策略,并按照历史带宽探测值所表征的网络带宽发送带宽探测包,记录下所发送的每个带宽探测包的探测包序列号、探测包大小以及发送时间,在当前探测周期相应的带宽探测包全部发送完毕后,获得当前探测周期的探测包发送记录。
在具体的应用中,在当前探测周期之前,服务器在上一探测周期也会进行带宽探测,从而可以在上一探测周期确定相应的带宽探测值,即历史带宽探测值,则在当前探测周期内,可以直接获取上一探测周期的历史带宽探测值。在一个具体的应用中,当上一探测周期为初始探测周期,上一探测周期的历史带宽探测值为预配置的初始带宽探测值。当上一探测周期不为初始探测周期,上一探测周期的历史带宽探测值是根据上一探测周期的历史探测包发送记录以及历史探测包发送记录相应的历史探测包接收记录,并按照为上一探测周期的历史网络模态预配置的带宽计算方式确定的。其中,预配置的初始带宽探测值可按照实际应用场景进行配置。
在具体的应用中,为当前网络模态预配置的探测包发送策略包括带宽探测时长、带宽探测包发送模式等,服务器可基于带宽探测时长、带宽探测包发送模式等,按照历史带宽探测值所表征的网络带宽发送带宽探测包。
步骤208,获取与当前探测周期的探测包发送记录相应的探测包接收记录,基于探测包发送记录和探测包接收记录,并按照带宽计算方式,确定当前探测周期的带宽探测值。
其中,探测包接收记录用于描述对所发送的带宽探测包的接收情况,由接收带宽探测包的接收端生成并反馈。比如,探测包接收记录具体可以包括丢包记录以及带宽探测包的探测包序列号和到达时间,丢包记录记录有未成功接收到的带宽探测包的探测包序列号。接收带宽探测包的接收端可以为终端,也可以为服务器,还可以为服务器和终端组成的系统,本实施例中在此处不对接收带宽探测包的接收端进行限定。
具体的,在服务器将带宽探测包发送至接收端后,接收带宽探测包的接收端会基于所接收的带宽探测包的接收情况,生成探测包接收记录,并反馈探测包接收记录至服务器,以使得服务器可以获取到与当前探测周期的探测包发送记录相应的探测包接收记录,进而基于探测包发送记录和探测包接收记录,按照带宽计算方式,确定当前探测周期的带宽探测值。需要说明的是,不同网络模态预配置有不同的带宽计算方式。
在具体的应用中,当当前网络模态为第一网络模态且使用网络带宽的应用为延迟敏感型应用,或当前网络模态为第二网络模态,或当前网络模态为第三网络模态,服务器会基于探测包发送记录分析探测包大小变化情况,并基于探测包接收记录分析探测包到达时间变化情况,基于探测包大小变化情况、探测包到达时间变化情况和带宽计算方式,确定当前探测周期的带宽探测值。
在一个具体的应用中,基于探测包发送记录分析探测包大小变化情况,可以得到每个带宽探测包对应的探测包大小变化率,基于探测包接收记录分析探测包到达时间变化情况,可以得到每个带宽探测包对应的探测包到达时间变化值,从而可以根据探测包大小变化率、探测包到达时间变化值和带宽计算方式,确定当前探测周期的带宽探测值。
在具体的应用中,当当前网络模态为第一网络模态且使用网络带宽的应用为吞吐量敏感型应用,服务器会基于探测包接收记录进行丢包分析,获得丢包分析结果,再基于是否存在丢包采用不同的计算方式,确定当前探测周期的带宽探测值。
上述网络带宽探测方法,通过获取上一探测周期的网络质量参数,能够基于网络质量参数,从多个预设的网络模态中确定当前探测周期的当前网络模态,从而可以在确定为当前网络模态预配置的探测包发送策略和带宽计算方式的基础上,通过获取上一探测周期的历史带宽探测值,在当前探测周期内,基于探测包发送策略,并按照历史带宽探测值所表征的网络带宽发送带宽探测包,实现对带宽探测包的发送,进而可以在获取当前探测周期的探测包发送记录和探测包发送记录相应的探测包接收记录的基础上,基于探测包发送记录和探测包接收记录,并按照带宽计算方式,确定当前探测周期的带宽探测值,整个过程,能够通过上一探测周期的网络质量参数确定当前探测周期的当前网络模态,进而可以在确定为当前网络模态预配置的探测包发送策略和带宽计算方式的基础上,有针对性的进行网络带宽探测,能够提高网络带宽探测精度。
在一个实施例中,网络质量参数包括至少一种网络质量量化值,基于网络质量参数,从多个预设的网络模态中确定当前探测周期的当前网络模态,包括:
分别将每种网络质量量化值与相对应的判断阈值进行比较,获得比较结果,比较结果表征每种网络质量量化值与相对应的判断阈值的大小关系;
按照比较结果,从预设的网络模态中选择网络模态作为当前探测周期的当前网络模态,选择的网络模态的网络模态判定条件与比较结果匹配。
其中,网络质量量化值是指用于衡量网络质量的量化值。比如,网络质量量化值具体可以为延迟最大值。又比如,网络质量量化值具体可以为抖动标准差。再比如,网络质量量化值具体可以为丢包率。再比如,网络质量量化值具体可以为抖动方差。判断阈值是指与网络质量量化值相应的、用于对网络模态进行判定的阈值。比如,判断阈值具体可以为延迟阈值。又比如,判断阈值具体可以为抖动标准差阈值。再比如,判断阈值具体可以为丢包率阈值。再比如,判断阈值具体可以为抖动方差阈值。网络模态判定条件是指在选择网络模态时所使用的判定条件,不同的网络模态判定条件与不同的比较结果相匹配。
具体的,网络质量参数包括至少一种网络质量量化值,在确定当前探测周期的当前网络模态时,服务器会分别将每种网络质量量化值与相对应的判断阈值进行比较,获得比较结果,比较结果表征每种网络质量量化值与相对应的判断阈值的大小关系,按照比较结果,从预设的网络模态中选择网络模态作为当前探测周期的当前网络模态,所选择的网络模态的网络模态判定条件与比较结果匹配。
在具体的应用中,不同比较结果与不同的网络模态判定条件相匹配。当网络质量参数包括一种网络质量量化值,可以根据比较结果中该网络质量量化值与相对应的判断阈值的大小关系,确定比较结果相匹配的网络模态判定条件。在一个具体的应用中,网络质量量化值小于相对应的判断阈值与一种网络模态判定条件相匹配,网络质量量化值大于或者等于相对应的判断阈值与另一种网络模态判定条件相匹配。
在具体的应用中,当网络质量参数包括至少两种网络质量量化值,需要综合考虑比较结果中至少两种网络质量量化值与相对应的判断阈值的大小关系的组合,确定比较结果相对应的网络模态判定条件。在一个具体的应用中,至少两种网络质量量化值均小于相对应的判断阈值与一种网络模态判定条件相匹配。至少两种网络质量量化值中其中一种网络质量量化值大于或者等于相对应的判断阈值,其余网络质量量化值小于相对应的判断阈值与另一种网络模态判定条件相匹配。
本实施例中,通过分别将每种网络质量量化值与相对应的判断阈值进行比较,获得比较结果,能够按照比较结果所表征的每种网络质量量化值与相对应的判断阈值的大小关系,从预设的网络模态中选择网络模态判定条件与比较结果匹配的网络模态作为当前探测周期的当前网络模态,实现对当前网络模态的确定。
在一个实施例中,至少一种网络质量量化值包括延迟最大值、抖动标准差和丢包率,各自对应的判断阈值分别是延迟阈值、抖动标准差阈值和丢包率阈值,当丢包率低于丢包率阈值,且延迟最大值小于延迟阈值,且抖动标准差小于抖动标准差阈值,当前网络模态为第一网络模态。
其中,延迟是指带宽探测包从服务器传输到接收端需要的时间,每个带宽探测包都有对应的延迟。比如,延迟具体可以是指带宽探测包从服务器传输到接收端需要的往返时间。延迟最大值是指探测周期内所传输的带宽探测包所对应的延迟的最大值。比如,延迟最大值具体可以是指探测周期内所传输的带宽探测包所对应的往返时间最大值。往返时间是指从发送端发送数据开始,到发送端收到来自接收端的确认,总共经历的时间。本实施例中,往返时间是指从服务器发送探测数据包开始,到服务器接收到来自接收端的确认总共经历的时间。
其中,抖动是指数据到达的顺序以及间隔和触发时的差异,本实施例中,抖动是指带宽探测包到达的顺序以及间隔和触发时的差异。抖动标准差用于对探测周期的网络质量进行衡量,一般来说,如果网络延迟抖动比较大,说明网络质量存在一定问题。抖动标准差可通过每个带宽探测包所对应的延迟计算得到。
其中,丢包率是指测试中所丢失数据包数量占所发送数据包数量的比率,本实施例中,即探测周期内所丢失带宽探测包数量占所发送带宽探测包数量的比率。比如,当所丢失带宽探测包数量为9个,所发送带宽探测包数量为100个,根据定义可以计算得到丢包率为9%。
具体的,至少一种网络质量量化值包括延迟最大值、抖动标准差和丢包率,各自对应的判断阈值分别是延迟阈值、抖动标准差阈值和丢包率阈值,服务器会分别将延迟最大值与延迟阈值、抖动标准差与标准差阈值以及丢包率与丢包率阈值进行比较,获得比较结果,当比较结果表征为丢包率低于丢包率阈值,且延迟最大值小于延迟阈值,且抖动标准差小于抖动标准差阈值,确定当前网络模态为第一网络模态。
本实施例中,能够利用延迟最大值、抖动标准差和丢包率以及延迟阈值、抖动标准差阈值和丢包率阈值,实现对当前网络模态的确定。
在一个实施例中,至少一种网络质量量化值包括延迟最大值和丢包率,各自对应的判断阈值分别是延迟阈值和丢包率阈值,当丢包率低于丢包率阈值,且延迟最大值大于或者等于延迟阈值,当前网络模态为第二网络模态。
具体的,至少一种网络质量量化值包括延迟最大值和丢包率,各自对应的判断阈值分别是延迟阈值和丢包率阈值,服务器会分别将延迟最大值与延迟阈值以及丢包率与丢包率阈值进行比较,获得比较结果,当比较结果表征为丢包率低于丢包率阈值,且延迟最大值大于或者等于延迟阈值,确定当前网络模态为第二网络模态。
本实施例中,能够利用延迟最大值和丢包率以及延迟阈值和丢包率阈值,实现对当前网络模态的确定。
在一个实施例中,至少一种网络质量量化值包括抖动标准差和丢包率,各自对应的判断阈值分别是抖动标准差阈值和丢包率阈值,当丢包率低于丢包率阈值,且抖动标准差大于或者等于抖动标准差阈值,当前网络模态为第二网络模态。
具体的,至少一种网络质量量化值包括抖动标准差和丢包率,各自对应的判断阈值分别是抖动标准差阈值和丢包率阈值,服务器会分别将抖动标准差和抖动标准差阈值以及丢包率和丢包率阈值进行比较,获得比较结果,当比较结果表征为丢包率低于丢包率阈值,且抖动标准差大于或者等于抖动标准差阈值,确定当前网络模态为第二网络模态。
本实施例中,能够利用抖动标准差和丢包率以及抖动标准差阈值和丢包率阈值,实现对当前网络模态的确定。
在一个实施例中,至少一种网络质量量化值包括丢包率,对应的判断阈值是丢包率阈值,当丢包率大于或者等于丢包率阈值,当前网络模态为第三网络模态。
具体的,至少一种网络质量量化值包括丢包率,对应的判断阈值是丢包率阈值,服务器会将丢包率和丢包率阈值进行比较,获得比较结果,当比较结果表征为丢包率大于或者等于丢包率阈值,确定当前网络模态为第三网络模态。
本实施例中,能够利用丢包率和丢包率阈值,实现对当前网络模态的确定。
在一个实施例中,上一探测周期的网络质量参数,是根据上一探测周期中发送带宽探测包获得的历史探测包发送记录和相对应的历史探测包接收记录生成的,当前探测周期的判断阈值,是基于上一探测周期的网络质量参数对用于确定上一探测周期的网络模态的判断阈值进行更新后获得的。
其中,历史探测包发送记录记录有上一探测周期发送端发送带宽探测包的情况,包括上一探测周期所发送的带宽探测包的探测包序列号、探测包大小以及发送时间。历史探测包接收记录记录有上一探测周期接收端接收带宽探测包的情况,包括上一探测周期接收带宽探测包的探测包序列号和到达时间以及丢包记录,丢包记录记录有未成功接收到的带宽探测包的探测包序列号。
具体的,上一探测周期的网络质量参数,是根据上一探测周期中发送带宽探测包获得的历史探测包发送记录和相对应的历史探测包接收记录生成的。当前探测周期的判断阈值,是基于上一探测周期的网络质量参数中每种网络质量量化值分别对相对应的、用于确定上一探测周期的网络模态的判断阈值进行更新后获得的。
在具体的应用中,上一探测周期的网络质量参数包括延迟最大值,延迟最大值可以通过比较上一探测周期中发送的带宽探测包所对应的延迟得到,上一探测周期中发送的带宽探测包所对应的延迟,可以根据带宽探测包的发送时间和带宽探测包的到达时间计算得到。在一个具体的应用中,根据带宽探测包的发送时间和带宽探测包的到达时间,可以得到带宽探测包的传播时延,从而可以基于带宽探测包的传播时延,得到带宽探测包所对应的延迟。
在具体的应用中,上一探测周期的网络质量参数包括抖动标准差,抖动标准差可以基于上一探测周期中发送的带宽探测包所对应的延迟得到,通过计算上一探测周期中发送的带宽探测包所对应的延迟的平均值,可以基于延迟和延迟的平均值,得到延迟方差,进而可以基于延迟方差得到延迟标准差,将延迟标准差作为抖动标准差。
在具体的应用中,上一探测周期的网络质量参数包括丢包率,通过历史探测包发送记录可以获得上一探测周期中发送的带宽探测包数量,通过历史探测包接收记录所包括的丢包记录,可以获得上一探测周期所丢失的带宽探测包数量,进而可以通过所丢失的带宽探测包数量和发送的带宽探测包数量,计算出丢包率。
在具体的应用中,判断阈值为丢包率阈值,当前探测周期的丢包率阈值,是基于上一探测周期的丢包率以及用于确定上一探测周期的网络模态的丢包率阈值进行更新后获得的。在一个具体的应用中,在获得当前探测周期的丢包率阈值时,会先比对用于确定上一探测周期的网络模态的丢包率阈值与上一探测周期的丢包率的一半,将比对所得差值与预设临界值做比较,将较大值与丢包率参考值做比较,将比较所确定的较小值作为当前探测周期的丢包率阈值,丢包率参考值可按照实际应用场景进行配置。举例说明,当前探测周期的丢包率阈值可以通过公式
Figure 604662DEST_PATH_IMAGE002
得到,其中,
Figure 543799DEST_PATH_IMAGE004
为上一探测周期的丢包率,
Figure 460808DEST_PATH_IMAGE006
为用于确定上一探测周期的网络模态的丢包率阈值,10%为丢包率参考值,0为预设临界值。
在具体的应用中,判断阈值为延迟阈值,当前探测周期的延迟阈值,是基于上一探 测周期的延迟最大值以及用于确定上一探测周期的网络模态的延迟阈值进行更新后获得 的。在一个具体的应用中,在获得当前探测周期的延迟阈值时,会先比对用于确定上一探测 周期的网络模态的延迟阈值与上一探测周期的延迟最大值的一半,将比对所得差值与预设 临界值做比较,将较大值与延迟参考值做比较,将比较所确定的较小值作为当前探测周期 的延迟阈值,延迟参考值可按照实际应用场景进行配置。举例说明,当前探测周期的延迟阈 值可以通过公式
Figure 395266DEST_PATH_IMAGE008
得到,其中,
Figure 857472DEST_PATH_IMAGE010
为上一探测 周期的延迟最大值,
Figure 611801DEST_PATH_IMAGE012
为用于确定上一探测周期的网络模态的延迟阈值,200为延迟参 考值,0为预设临界值。
在具体的应用中,判断阈值为抖动方差阈值,当前探测周期的抖动方差阈值,是基于上一探测周期的抖动方差以及用于确定上一探测周期的网络模态的抖动方差阈值进行更新后获得的。在一个具体的应用中,在获得当前探测周期的抖动方差阈值时,会先比对用于确定上一探测周期的网络模态的抖动方差阈值与上一探测周期的抖动方差的一半,将比对所得差值与预设临界值做比较,将较大值与抖动方差参考值做比较,将比较所确定的较小值作为当前探测周期的抖动方差阈值,抖动方差参考值可按照实际应用场景进行配置。举例说明,当前探测周期的抖动方差阈值可以通过公式
Figure 83234DEST_PATH_IMAGE014
得到。其中,
Figure 75460DEST_PATH_IMAGE016
为上一探测周期的抖动方差,
Figure 659632DEST_PATH_IMAGE018
为用于确定上一探测周期的网络模态的抖动方差阈值,50%为抖动方差参考值,0为预设临界值。
本实施例中,根据上一探测周期中发送带宽探测包获得的历史探测包发送记录和相对应的历史探测包接收记录,确定上一探测周期的网络质量参数,能够基于实际发送和接收情况实现对网络质量参数的确定,通过基于上一探测周期的网络质量参数对用于确定上一探测周期的网络模态的判断阈值进行更新,得到当前探测周期的判断阈值,能够实现基于实际的网络状况对判断阈值进行更新,以便利用判断阈值实现对网络模态的准确判定。
在一个实施例中,基于探测包发送策略,并按照历史带宽探测值所表征的网络带宽发送带宽探测包包括:
当当前网络模态为第一网络模态或第二网络模态中任一种,按照预设探测时长和历史带宽探测值所表征的网络带宽发送带宽探测包。
其中,预设探测时长是指预先设置的进行网络带宽探测的时长,可按照实际应用场景进行配置。比如,预设探测时长具体可以为一个往返时间。
具体的,当当前网络模态为第一网络模态或第二网络模态中任一种,服务器会按照预设探测时长和历史带宽探测值所表征的网络带宽发送带宽探测包至接收端。在具体的应用中,预设探测时长具体可以为一个往返时间,该往返时间可以基于上一探测周期中发送的带宽探测包所对应的延迟得到。
本实施例中,通过当当前网络模态为第一网络模态或第二网络模态中任一种,按照预设探测时长和历史带宽探测值所表征的网络带宽发送带宽探测包,能够在网络处于第一网络模态或第二网络模态时,实现对带宽探测包的发送。
在一个实施例中,基于探测包发送策略,并按照历史带宽探测值所表征的网络带宽发送带宽探测包包括:
当当前网络模态为第三网络模态,获取使用网络带宽的应用的类型,根据使用网络带宽的应用的类型确定带宽探测时长,并根据网络带宽相对应的网络环境确定目标探测数据量;
按照带宽探测时长、历史带宽探测值所表征的网络带宽和目标探测数据量,发送带宽探测包。
其中,按照使用网络带宽的应用对不同网络质量参数的敏感程度的不同,可以对使用网络带宽的应用进行分类,得到使用网络带宽的应用的类型。比如,按照对延迟和吞吐量的敏感程度不同,可以将使用网络带宽的应用分为延迟敏感型应用和吞吐量敏感型应用。延迟敏感型应用是指对延迟较为敏感的应用。比如,延迟敏感型应用具体可以为游戏、在线会议等交互应用。吞吐量敏感型应用是指对吞吐量较为敏感的应用。比如,吞吐量敏感型应用具体可以为视频应用、音频应用。
其中,网络环境用于描述网络通信方式。比如,网络环境具体可以为蜂窝网络。又比如,网络环境具体可以为无线网络。目标探测数据量是指在当前探测周期内需要发送的带宽探测包的大小,可按照实际应用场景进行配置。不同网络环境所需要发送的目标探测数据量可以不同,通过结合网络环境来确定所需要发送的目标探测数据量,能够提高网络带宽探测精度。
具体的,当当前网络模态为第三网络模态,服务器会获取使用网络带宽的应用的类型,根据使用网络带宽的应用的类型确定带宽探测时长,并根据网络带宽相对应的网络环境确定目标探测数据量,按照带宽探测时长、历史带宽探测值所表征的网络带宽和目标探测数据量,发送带宽探测包至接收端。
在具体的应用中,为每种使用网络带宽的应用预配置有带宽探测时长,不同类型的使用网络带宽的应用所对应的带宽探测时长不同,可按照实际应用场景进行配置。为每种网络环境预配置有目标探测数据量,不同网络环境所对应的目标探测数据量不同,可按照实际应用场景进行配置。比如,当网络环境为蜂窝网络,目标探测数据量可以为8千字节。又比如,当网络环境为无线网络,目标探测数据量可以为4千字节。
在具体的应用中,当当前探测周期内服务器所缓存的数据包的大小不满足目标探测数据量时,需要采用冗余填充的方式将数据包的大小填充至目标探测数据量,获得冗余填充数据包,再将冗余填充数据包作为带宽探测包发送。在发送带宽探测包时,可以采用突发模式,一次性注入所述带宽探测包至接收端。
本实施例中,通过根据使用网络带宽的应用的类型确定带宽探测时长,并根据网络带宽相对应的网络环境确定目标探测数据量,能够在网络处于第三网络模态,按照带宽探测时长、历史带宽探测值所表征的网络带宽和目标探测数据量,实现对带宽探测包的发送。
在一个实施例中,基于探测包发送记录和探测包接收记录,并按照带宽计算方式,确定当前探测周期的带宽探测值包括:
基于探测包发送记录中每个带宽探测包的大小,获得每个带宽探测包对应的探测包大小变化率;
基于探测包接收记录中每个带宽探测包的到达时间,获得每个带宽探测包对应的探测包到达时间变化值;
根据探测包大小变化率、探测包到达时间变化值和带宽计算方式,确定当前探测周期的带宽探测值。
其中,探测包大小变化率用于描述已发送带宽探测包与上一个已发送带宽探测包之间的探测包大小变化情况。比如,探测包大小变化率具体可以为
Figure 166837DEST_PATH_IMAGE020
,其中,
Figure 707540DEST_PATH_IMAGE022
为已发送带宽探测包的探测包大小,
Figure 554273DEST_PATH_IMAGE024
为上一个已发送带宽探测包的探测包大小。探测包到达时间变化值用于描述已到达带宽探测包与上一个已到达带宽探测包之间的到达时间变化情况。比如,探测包到达时间变化值具体可以为
Figure 623860DEST_PATH_IMAGE026
,其中,
Figure 87202DEST_PATH_IMAGE028
为已到达带宽探测包的到达时间,
Figure 149705DEST_PATH_IMAGE030
为上一个已到达带宽探测包的到达时间。
具体的,服务器基于探测包发送记录中探测包序列号以及每个带宽探测包的大小,可以获得每个带宽探测包对应的探测包大小变化率,即与上一个已发送带宽探测包的探测包大小的差值,基于探测包接收记录中每个带宽探测包的到达时间,可以获得每个带宽探测包对应的探测包到达时间变化值,即与上一个已到达带宽探测包之间的到达时间的差值,进而可以根据探测包大小变化率、探测包到达时间变化值和带宽计算方式,确定当前探测周期的带宽探测值。
在具体的应用中,基于探测包接收记录,服务器可以确定接收端未成功接收到的已发送带宽探测包,在计算未成功接收到的已发送带宽探测包对应的到达时间变化值时,服务器可以将到达时间变化值设置为默认值。其中,默认值可以按照实际应用场景进行配置,举例说明,默认值具体可以为无穷大。
本实施例中,能够基于探测包发送记录中每个带宽探测包的大小,实现对每个带宽探测包对应的探测包大小变化率的计算,能够基于探测包接收记录中每个带宽探测包的到达时间,实现对每个带宽探测包对应的探测包到达时间变化值的计算,进而可以根据探测包大小变化率、探测包到达时间变化值和带宽计算方式,确定当前探测周期的带宽探测值。
在一个实施例中,根据探测包大小变化率、探测包到达时间变化值和带宽计算方式,确定当前探测周期的带宽探测值包括:
当当前网络模态为第一网络模态且使用网络带宽的应用为延迟敏感型应用,获取上一探测周期的探测包按序到达速率;
基于探测包按序到达速率、探测包大小变化率和探测包到达时间变化值,确定当前探测周期的带宽探测值。
其中,探测包按序到达速率是指带宽探测包按照探测包序列号到达的速率。
具体的,当当前网络模态为第一网络模态且使用网络带宽的应用为延迟敏感型应用时,服务器会获取上一探测周期的探测包按序到达速率,在不考虑丢包和乱序的带宽探测包的情况下,基于探测包按序到达速率、探测包大小变化率和探测包到达时间变化值,确定当前探测周期的带宽探测值。其中,上一探测周期的探测包按序到达速率是基于上一探测周期按序到达的带宽探测包的大小和到达时间生成的。其中,丢包和乱序的带宽探测包可以基于探测包接收记录确定。
本实施例中,当当前网络模态为第一网络模态且使用网络带宽的应用为延迟敏感型应用,能够基于所获取到的探测包按序到达速率、探测包大小变化率和探测包到达时间变化值,实现对当前探测周期的带宽探测值的确定。
在一个实施例中,基于探测包按序到达速率、探测包大小变化率和探测包到达时间变化值,确定当前探测周期的带宽探测值包括:
基于探测包大小变化率和探测包到达时间变化值,构建线性回归方程,计算线性回归方程的斜率和截距;
基于探测包按序到达速率以及线性回归方程的斜率和截距,确定当前探测周期的带宽探测值。
具体的,服务器会在不考虑丢包和乱序的带宽探测包的情况下,基于每个带宽探测包对应的探测包大小变化率和探测包到达时间变化值,构建线性回归方程,计算线性回归方程的斜率和截距,获取上一探测周期相应的线性回归方程的截距,分别比较上一探测周期相应的线性回归方程的截距和所计算的线性回归方程的截距以及所计算的线性回归方程的斜率与斜率阈值,获得截距比较结果和斜率比较结果,按照截距比较结果和斜率比较结果,从预设的带宽计算公式中选择计算公式计算当前探测周期的带宽探测值,选择的计算公式与截距比较结果和斜率比较结果匹配。其中,斜率阈值可按照实际应用场景进行配置。
在具体的应用中,服务器会以每个带宽探测包对应的探测包到达时间变化值为输入,以每个带宽探测包对应的探测包大小变化率为输出,构建线性回归方程,计算线性回归方程的斜率和截距。上一探测周期相应的线性回归方程,是根据上一探测周期内每个带宽探测包对应的探测包大小变化率和探测包到达时间变化值生成的。
在具体的应用中,当斜率小于斜率阈值且所计算的线性回归方程的截距小于上一探测周期相应的线性回归方程的截距,计算当前探测周期的带宽探测值的计算公式可以为
Figure 54207DEST_PATH_IMAGE032
,其中,C >1可按照实际应用场景进行配置,
Figure 294696DEST_PATH_IMAGE034
为探测包按序到达速率。
在具体的应用中,当斜率小于斜率阈值且所计算的线性回归方程的截距大于或者等于上一探测周期相应的线性回归方程的截距,计算当前探测周期的带宽探测值的计算公式可以为
Figure 510913DEST_PATH_IMAGE036
,其中,C > 1可按照实际应用场景进行配置,
Figure 612993DEST_PATH_IMAGE034
为探测包按序到达速率。
在具体的应用中,当斜率大于斜率阈值且所计算的线性回归方程的截距小于上一探测周期相应的线性回归方程的截距,计算当前探测周期的带宽探测值的计算公式可以为
Figure 434318DEST_PATH_IMAGE038
,其中,C > 1可按照实际应用场景进行配置,
Figure 376866DEST_PATH_IMAGE034
为探测包按序到达速率。
在具体的应用中,当斜率大于斜率阈值且所计算的线性回归方程的截距大于或者等于上一探测周期相应的线性回归方程的截距,计算当前探测周期的带宽探测值的计算公式可以为
Figure 486905DEST_PATH_IMAGE040
,其中,C > 1可按照实际应用场景进行配置,
Figure 891210DEST_PATH_IMAGE034
为探测包按序到达速率。
需要说明的是,在本申请的实施例中,在每个计算公式内的C均表示一个系数,均可按照实际应用场景进行配置,并不完全相同。
本实施例中,通过基于探测包大小变化率和探测包到达时间变化值,构建线性回归方程,计算线性回归方程的斜率和截距,能够利用线性回归方程的斜率和截距分析速率变化情况,进而可以在考虑速率变化情况的情况下,结合探测包按序到达速率,确定当前探测周期的带宽探测值。
在一个实施例中,根据探测包大小变化率、探测包到达时间变化值和带宽计算方式,确定当前探测周期的带宽探测值包括:
当当前网络模态为第二网络模态,根据探测包发送记录,确定探测包实际发送速率;
基于探测包大小变化率和探测包到达时间变化值,获得探测包实际接收速率;
对探测包实际发送速率和探测包实际接收速率进行加权求和,确定当前探测周期的带宽探测值。
具体的,当当前网络模态为第二网络模态,服务器会根据探测包发送记录,获得所发送的探测包的大小以及发送所用时间,根据所发送的探测包的大小以及发送所用时间,确定探测包实际发送速率,并在不考虑丢包和乱序的带宽探测包的情况下,基于每个带宽探测包对应的探测包大小变化率和探测包到达时间变化值,获得探测包实际接收速率,按照预配置的加权系数对探测包实际发送速率和探测包实际接收速率进行加权求和,确定当前探测周期的带宽探测值。其中,预配置的加权系数可按照实际应用场景进行配置。
在具体的应用中,服务器会将所发送的探测包的大小除以发送所用时间,获得探测包实际发送速率,对每个带宽探测包对应的探测包大小变化率进行求和,并对每个带宽探测包对应的探测包到达时间变化值进行求和,将求和后探测包大小变化率除以求和后探测包到达时间变化值,获得探测包实际接收速率。
在一个具体的应用中,探测包实际接收速率可以通过公式
Figure 98201DEST_PATH_IMAGE042
计算,其中
Figure 477229DEST_PATH_IMAGE044
是指求和后探测包大小变化率,
Figure 871302DEST_PATH_IMAGE046
是指求和后探测包到达时间变化值。当前探测 周期的带宽探测值可以通过公式
Figure 95610DEST_PATH_IMAGE048
计算。
其中
Figure 891527DEST_PATH_IMAGE050
,这两个系数可按照实际应用场景进行配置,
Figure 379140DEST_PATH_IMAGE052
为探测包实际接收速率,
Figure 791667DEST_PATH_IMAGE054
为探测包实际发送速率。
本实施例中,通过根据探测包发送记录,确定探测包实际发送速率,基于探测包大小变化率和探测包到达时间变化值,获得探测包实际接收速率,能够在第二网络模态下,综合考虑探测包发送速率和探测包接收速率进行带宽估计,通过对探测包实际发送速率和探测包实际接收速率进行加权求和,实现对当前探测周期的带宽探测值的确定。
在一个实施例中,根据探测包大小变化率、探测包到达时间变化值和带宽计算方式,确定当前探测周期的带宽探测值包括:
当当前网络模态为第三网络模态,根据探测包大小变化率和探测包到达时间变化值,获得探测包实际接收速率;
将探测包实际接收速率作为当前探测周期的带宽探测值。
具体的,当当前网络模态为第三网络模态,服务器会在不考虑丢包和乱序的带宽探测包的情况下,基于每个带宽探测包对应的探测包大小变化率和探测包到达时间变化值,获得探测包实际接收速率,将探测包实际接收速率作为当前探测周期的带宽探测值。
在具体的应用中,服务器会对每个带宽探测包对应的探测包大小变化率进行求和,并对每个带宽探测包对应的探测包到达时间变化值进行求和,将求和后探测包大小变化率除以求和后探测包到达时间变化值,获得探测包实际接收速率。
在一个具体的应用中,探测包实际接收速率可以通过公式
Figure 239573DEST_PATH_IMAGE042
计算,其中
Figure 686735DEST_PATH_IMAGE044
是指求和后探测包大小变化率,
Figure 141987DEST_PATH_IMAGE046
是指求和后探测包到达时间变化值。当前探测 周期的带宽探测值可以通过公式
Figure 245072DEST_PATH_IMAGE056
计算,其中,
Figure 280024DEST_PATH_IMAGE052
为探测包实际接收速率。
本实施例中,通过根据探测包大小变化率和探测包到达时间变化值,获得探测包实际接收速率,能够在网络不稳定的第三网络模态下,仅考虑探测包实际接收情况进行带宽估计,将探测包实际接收速率作为当前探测周期的带宽探测值。
在一个实施例中,基于探测包发送记录和探测包接收记录,并按照带宽计算方式,确定当前探测周期的带宽探测值包括:
当当前网络模态为第一网络模态且使用网络带宽的应用为吞吐量敏感型应用,基于探测包接收记录进行丢包分析,获得丢包分析结果;
当丢包分析结果为不存在丢包,基于探测包发送记录和探测包接收记录,计算探测包往返时间,根据探测包往返时间和历史带宽探测值,确定当前探测周期的带宽探测值。
具体的,当当前网络模态为第一网络模态且使用网络带宽的应用为吞吐量敏感型应用,服务器会基于探测包接收记录中丢包记录进行丢包分析,获得丢包分析结果,丢包分析结果可以为不存在丢包,也可以为存在丢包。当丢包分析结果为不存在丢包,服务器会基于探测包发送记录和探测包接收记录,计算每个带宽探测包对应的往返时间,基于每个带宽探测包对应的往返时间,计算探测包往返时间,根据探测包往返时间和历史带宽探测值,确定当前探测周期的带宽探测值。
在具体的应用中,基于探测包发送记录中带宽探测包的发送时间和探测包接收记录中带宽探测包的到达时间,服务器可以计算带宽探测包对应的往返时间,将当前探测周期内所发送的带宽探测包对应的往返时间的平均值,作为探测包往返时间,按照为当前网络模态为第一网络模态且使用网络带宽的应用为吞吐量敏感型应用且丢包分析结果为不存在丢包预配置的带宽计算公式,根据探测包往返时间和历史带宽探测值,确定当前探测周期的带宽探测值。
在一个具体的应用中,通过带宽探测包的发送时间和到达时间,可以计算带宽探 测包对应的传播时延,进而可以根据传播时延得到带宽探测包对应的往返时间。在具体的 应用中,带宽探测包对应的往返时间为传播时延的两倍。在另一个具体的应用中,预配置的 带宽计算公式可按照实际应用场景进行配置,举例说明,预配置的带宽计算公式可以为
Figure 581692DEST_PATH_IMAGE058
,其中RTT(Round Trip Time,往返时间)为探测包往返时间,
Figure 598059DEST_PATH_IMAGE054
为 历史带宽探测值。
本实施例中,当当前网络模态为第一网络模态且使用网络带宽的应用为吞吐量敏感型应用,通过基于探测包接收记录进行丢包分析,获得丢包分析结果,能够结合丢包分析结果的不同,采用不同的方式计算带宽探测值,实现对带宽探测值的准确估计,通过当丢包分析结果为不存在丢包,基于探测包发送记录和探测包接收记录,计算探测包往返时间,能够根据探测包往返时间和历史带宽探测值,实现对不存在丢包时的带宽探测值的准确估计。
在一个实施例中,网络带宽探测方法还包括:
当丢包分析结果为存在丢包,基于历史带宽探测值和预设发生丢包时带宽估计系数,确定当前探测周期的带宽探测值。
其中,预设发生丢包时带宽估计系数为预配置的系数,可按照实际应用场景进行配置。
具体的,当丢包分析结果为存在丢包,服务器会按照为当前网络模态为第一网络 模态且使用网络带宽的应用为吞吐量敏感型应用且丢包分析结果为存在丢包预配置的带 宽计算公式,基于历史带宽探测值和预设发生丢包时带宽估计系数,确定当前探测周期的 带宽探测值。在具体的应用中,带宽计算公式可以为
Figure 719599DEST_PATH_IMAGE060
,其中C为预设发生丢包 时带宽估计系数,
Figure 558242DEST_PATH_IMAGE054
为历史带宽探测值。
本实施例中,通过当丢包分析结果为存在丢包,基于历史带宽探测值和预设发生丢包时带宽估计系数,确定当前探测周期的带宽探测值,实现对存在丢包时的带宽探测值的准确估计。
发明人认为,传统的端到端网络带宽探测技术,按照是否向网络内注入带宽探测包,可分为主动探测和被动探测两类方法。被动探测依靠精准的收发包数据估计网络真实带宽,不干扰正常数据传输,具有开销小的特点,但易受应用层行为的限制和网络丢包的影响,适用场景十分有限,难以为码率调整、前向纠错等模块提供有价值的带宽探测值。主动测量通过按照规定速率向网络发送大小一致的数据包,具有精度较高、灵活性强的特点,但容易干扰正常数据流的传输,造成网络拥塞。
随着无线传输技术的普及,最后一公里网络带宽大部分由无线链路引起。此时,若想获得较高精度的带宽探测值,要求主动测量方案频繁的向网路注入大量探测包,极易干扰正常数据的传输且增大带宽成本,因此,常见的最后一公里带宽测量技术均采用被动测量技术。然而,在弱网等高丢包场景下,被动测量方法精度低。例如采用CUBIC(拥塞控制算法)、GCC(延时估计和丢包相结合的拥塞控制算法)机制的拥塞控制模块内部的带宽探测方案,在高于10%随机丢包时难以输出有效的带宽估计值,导致主动重传和冗余包无法响应恶劣的网路情况,也就无法在接收端恢复丢失的数据,极易导致性能劣化。
总而言之,现有带宽探测方案或因代价过高无法应用于最后一公里网络的带宽探测,或弱网场景下精度较低,无法提供有效的带宽探测值。基于此,本申请提出了一种网络带宽探测方法,通过上一探测周期的网络质量参数确定当前探测周期的当前网络模态,进而可以在确定为当前网络模态预配置的探测包发送策略和带宽计算方式的基础上,有针对性的进行网络带宽探测,能显著提升不同网络模态下带宽探测精度,最终提升数据传输效率、降低延迟。
在一个实施例中,如图3所示,以应用于数据传输过程中来说明本申请的网络带宽探测方法,该网络带宽探测方法具体包括以下步骤:
步骤302,发送端与接收端连接初始化。
步骤304,发送端采样RTT(往返时间),更新带宽探测时长k*RTT。
步骤306,发送端进入第0轮带宽探测(对应初始探测周期),默认处于第一网络模态,按照带宽探测时长,采用默认发送速率发送带宽探测包,获得第0轮带宽探测的探测包发送记录。
步骤308,接收端收到探测数据包,生成探测包接收记录,反馈至发送端。
步骤310,发送端获取探测包接收记录,根据探测包发送记录和探测包接收记录,更新网络质量参数,通过更新获得第1轮带宽探测的判断阈值。
步骤312,发送端按照第一网络模态的带宽计算方法更新带宽探测值
Figure 714416DEST_PATH_IMAGE062
,更新发送速率
Figure 996624DEST_PATH_IMAGE064
,根据第0轮带宽探测的网络质量参数,确定第1轮带宽探测的网络模态,确定为第1轮带宽探测的网络模态预配置的探测包发送策略和带宽计算方式。
具体的,网络质量参数包括延迟最大值、抖动标准差和丢包率,服务器分别将延迟最大值、抖动标准差和丢包率与相对应的判断阈值进行比较,获得比较结果,按照比较结果,从预设的网络模态中选择网络模态作为第1轮带宽探测的网络模态,选择的网络模态的网络模态判定条件与比较结果匹配。
在具体的应用中,当丢包率低于丢包率阈值,且延迟最大值小于延迟阈值,且抖动标准差小于抖动标准差阈值,当前网络模态为第一网络模态。当丢包率低于丢包率阈值,且延迟最大值大于或者等于延迟阈值,当前网络模态为第二网络模态。当丢包率低于丢包率阈值,且抖动标准差大于或者等于抖动标准差阈值,当前网络模态为第二网络模态。当丢包率大于或者等于丢包率阈值,当前网络模态为第三网络模态。
其中,为第一网络模态预配置的探测包发送策略为:发送端将所有发送的数据包作为带宽探测包,每个带宽探测包的字节大小为
Figure 605460DEST_PATH_IMAGE022
,与上一个带宽探测包的探测包大小变化率为
Figure 982215DEST_PATH_IMAGE020
,接收端采集第
Figure 665000DEST_PATH_IMAGE066
个带宽探测包的到达时间
Figure 632956DEST_PATH_IMAGE028
,如果发生了探测包丢包或者乱序,则标记未成功接收的数据包序列号,将探测包接收记录反馈给发送端,发送端根据每个带宽探测包的到达时间,可以计算每个带宽探测包与上一个带宽探测包的探测包到达时间变化值,
Figure 447197DEST_PATH_IMAGE026
其中,为第一网络模态预配置的带宽计算方式为:
对于延迟敏感型应用,每收到k个带宽探测包(k个带宽探测包对应一个探测周期,即一个探测周期内可收到的带宽探测包数量为k个)更新一轮带宽探测值。具体而言,第1轮带宽探测值
Figure 158801DEST_PATH_IMAGE068
(默认发送速率),第
Figure 289568DEST_PATH_IMAGE070
次更新计算带宽时,更新j-1周期的带宽探测包按序到达速率
Figure 897267DEST_PATH_IMAGE054
,获得每个带宽探测包对应的探测包大小变化率
Figure 949537DEST_PATH_IMAGE072
以及探测包到达时间变化值
Figure 933673DEST_PATH_IMAGE074
,以探测包大小变化率和探测包到达时间变化值构建线性回归方程,计算线性回归方程的的斜率
Figure 653368DEST_PATH_IMAGE076
,与截距
Figure 383033DEST_PATH_IMAGE078
Figure 719336DEST_PATH_IMAGE080
Figure 772743DEST_PATH_IMAGE082
时,带宽探测值等于
Figure 81365DEST_PATH_IMAGE084
。当
Figure 30866DEST_PATH_IMAGE080
Figure 588886DEST_PATH_IMAGE086
时,带宽探测值等于
Figure 898514DEST_PATH_IMAGE088
。当
Figure 264904DEST_PATH_IMAGE090
Figure 182045DEST_PATH_IMAGE082
时,带宽探测值等于
Figure 430623DEST_PATH_IMAGE092
。当
Figure 91412DEST_PATH_IMAGE090
Figure 905784DEST_PATH_IMAGE086
时,带宽探测值等于
Figure 947821DEST_PATH_IMAGE094
,C> 1。其中,
Figure 683695DEST_PATH_IMAGE054
为上一探测周期的带宽探测包按序到达速率。需要说明的是,在本申请的实施例中,在每个计算公式内的C均表示一个系数,均可按照实际应用场景进行配置,并不完全相同。
对于吞吐量敏感型应用,每收到k个带宽探测包(k个带宽探测包对应一个探测周期,即一个探测周期内可收到的带宽探测包数量为k个)更新一轮带宽探测值。
具体而言,第1轮带宽探测值
Figure 882596DEST_PATH_IMAGE096
(默认发送速率),第
Figure 223578DEST_PATH_IMAGE098
次探测周 期内,若未发生丢包,带宽探测值等于
Figure 935051DEST_PATH_IMAGE100
,若发生丢包带宽探测值等 于
Figure 689380DEST_PATH_IMAGE102
。其中
Figure 691972DEST_PATH_IMAGE054
为上一探测周期的历史带宽探测值, RTT为探测包往返时间。
其中,为第二网络模态预配置的探测包发送策略为:发送端将所有发送的数据包作为带宽探测包,记录当前发送速率
Figure 684198DEST_PATH_IMAGE054
,每个带宽探测包的字节大小为
Figure 114043DEST_PATH_IMAGE022
,与上一个带宽探测包的探测包大小变化率为
Figure 824510DEST_PATH_IMAGE020
,接收端采集第
Figure 568475DEST_PATH_IMAGE104
个带宽探测包的到达时间
Figure 211946DEST_PATH_IMAGE106
,如果发生了探测包丢包或者乱序,则标记未成功接收的数据包序列号,将探测包接收记录反馈给发送端,发送端根据每个带宽探测包的到达时间,可以计算每个带宽探测包与上一个带宽探测包的探测包到达时间变化值,
Figure 967019DEST_PATH_IMAGE026
。针对于未成功接收的带宽探测包,将其对应的探测包到达时间变化值确定为
Figure 961520DEST_PATH_IMAGE108
其中,为第二网络模态预配置的带宽计算方式为:不计算乱序与缺失的带宽探测 包。在第
Figure 509176DEST_PATH_IMAGE110
轮更新带宽探测值时,统计至少k个带宽探测包(k个带宽探测包对 应一个探测周期,即一个探测周期内可收到的带宽探测包数量为k个)对应的探测包大小变 化率
Figure 7153DEST_PATH_IMAGE072
以及探测包到达时间变化值
Figure 247641DEST_PATH_IMAGE074
,计算该轮统计周期(即探测周期)内计算探测包 实际接收速率,
Figure 916389DEST_PATH_IMAGE042
,带宽探测值等于
Figure 798894DEST_PATH_IMAGE112
,其中
Figure 823482DEST_PATH_IMAGE114
Figure 234872DEST_PATH_IMAGE116
可按照实际应用场景 进行配置,
Figure 672807DEST_PATH_IMAGE054
为当前发送速率,
Figure 359003DEST_PATH_IMAGE052
为探测包实际接收速率。
其中,为第三网络模态预配置的探测包发送策略为:发送端会根据接收端的不同网络类型(具体可以为延迟敏感型应用、吞吐量敏感型应用等)设定不同的带宽探测时长
Figure 51146DEST_PATH_IMAGE118
。同时,根据具体网络环境确定每个探测周期数据的最小体积K,即目标探测数据量。例如,当接收端位于蜂窝网络,每轮带宽探测包至少需要8千字节,当接收端位于无线网络下,每轮带宽探测包至少需要4千字节。默认带宽探测包数据长度为4千字节,当发送缓冲区中冗余包不足,采用冗余填充的方式填充至少8千字节的带宽探测包。发送端以
Figure 164596DEST_PATH_IMAGE118
为带宽探测时长向网络中注入带宽探测包,每轮采用突发模式发送带宽探测包,以一次性注入所有带宽探测包,记录此时带宽探测包的序列号和大小。接收端采集第
Figure 558668DEST_PATH_IMAGE104
个探测包到达时刻
Figure 455080DEST_PATH_IMAGE106
,发送端计算每个带宽探测包对应的探测包大小变化率
Figure 516577DEST_PATH_IMAGE020
以及探测包到达时间变化值
Figure 519037DEST_PATH_IMAGE026
,针对于未成功接收的带宽探测包,将其对应的探测包到达时间变化值确定为
Figure 931564DEST_PATH_IMAGE108
其中,为第三网络模态预配置的带宽计算方式为:排除掉
Figure 225142DEST_PATH_IMAGE108
,即不考虑所 有乱序以及丢包的场景。计算该轮统计周期内实际数据接受速率
Figure 875566DEST_PATH_IMAGE042
。带宽探测值 等于
Figure 65239DEST_PATH_IMAGE056
。此时,完全依赖特殊的探测包包组对网络带宽进行探测。
步骤314,发送端获取上一探测周期的历史带宽探测值,在当前探测周期内,基于探测包发送策略,并按照历史带宽探测值所表征的网络带宽发送带宽探测包,获得当前探测周期的探测包发送记录。
步骤316,接收端收到探测数据包生成探测包接收记录,并反馈至发送端。
步骤318,发送端获取探测包接收记录,基于探测包发送记录和探测包接收记录,并按照带宽计算方式,确定当前探测周期的带宽探测值,进入下一轮带宽探测继续进行带宽探测。
步骤320,直到接收到DTX(非连续性发射)信号则重置与接收端的链接或CLOSE(关闭)信号中断与接收端的链接,否则持续进行带宽探测。
在一个实施例中,以应用于如图4所示的WebRTC框架内来说明本申请的网络带宽探测方法,本申请的网络带宽探测方法应用于WebRTC框架内,可以提高WebRTC框架的带宽探测精度,以便进一步提高弱网抗性。其中,WebRTC使用ICE协议握手,对数据编码后,WebRTC 里面的媒体流用实时传输协议(Real-time Transport Protocol或简写RTP)格式封装,反馈用实时传输控制协议(RTCP,Real-time Transport Control Protocol)格式封装,实时传输控制协议里面的反馈信号具体可以为TWCC/NACK/RR/SR/XR(RTCP里面的一些报文名,用来计算接收探测包序列号和探测包的到达时间),基于反馈信号可以拿到接收端的探测包接收记录,即接收的带宽探测包的探测包序列号、到达时间以及丢包记录。需要说明的是,webRTC比较混乱,这里实时传输控制协议的反馈用一种信号是采集不全面的,因此需要采用多种反馈信号。接收端基于实时传输协议解包和冗余解包,可以解析带宽探测包,进而可以通过解码获得数据。发送端的系统时钟用于记录发送时间,接收端的系统时钟用于记录到达时间,冗余器用于采用冗余包计算算法进行冗余填充。
该网络带宽探测方法具体包括以下步骤:
1、WebRTC 发送端在SDP(会话描述协议)交互时期,记录当前网络RTT(往返时间),协商网络模态判定阈值的初始值
Figure 433903DEST_PATH_IMAGE120
(分别为初始探测周期的丢包率阈值、延迟阈值、抖动方差阈值),带宽探测时长k,第三网络模态下周期探测数据的最小体积K,初始带宽探测值
Figure 468855DEST_PATH_IMAGE122
。发送端开始按照
Figure 770524DEST_PATH_IMAGE124
的速度发送缓冲区数据,控制按照第一网络模态设计的流程工作。
2、发送端存储器开始记录第0个探测周期的带宽探测包的大小,发送时间戳。
3、接收端接收到带宽探测包,开始反馈带宽探测包的到达时间戳、丢包,生成反馈Transport CC(Transport-wide Congestion Control,传输带宽拥塞控制)信号给发送端(即反馈探测包接收记录)。
4、发送端收到完整的第0个探测周期内探测包的所有Transport CC信号。控制器结合存储器记录的探测包信息(即探测包发送记录),更新RTT(往返时间)、丢包率
Figure 551005DEST_PATH_IMAGE126
(分别为第1探测周期的丢包率阈值、延迟阈值、抖动方差阈值)。
5、更新当前网络模态:若丢包率
Figure 203703DEST_PATH_IMAGE128
,则进入第三网络模态,否则,若RTT最大值大于
Figure 573504DEST_PATH_IMAGE130
或RTT方差大于
Figure 932941DEST_PATH_IMAGE122
,则进入第二网络模态,否则,进入第一网络模态。
6、发送端存储器开始记录第1个探测周期内探测包的大小,发送时间戳。
7、发送端收到完整的第
Figure 198838DEST_PATH_IMAGE132
探测周期的Transport CC信号。控制器结合存储器 记录的探测包信息(即探测包发送记录),更新RTT(往返时间)的最大值
Figure 807674DEST_PATH_IMAGE134
(即延迟最大 值)、方差
Figure 699275DEST_PATH_IMAGE136
(即抖动方差) 、丢包率
Figure 382060DEST_PATH_IMAGE138
Figure 818858DEST_PATH_IMAGE140
(分别为第j+1探测周期的丢包 率阈值、延迟阈值、抖动方差阈值)。其中,
Figure 914990DEST_PATH_IMAGE142
Figure 892173DEST_PATH_IMAGE144
Figure 976935DEST_PATH_IMAGE146
8、若
Figure 115792DEST_PATH_IMAGE148
则进入第三网络模态,否则,若
Figure 168062DEST_PATH_IMAGE150
Figure 89881DEST_PATH_IMAGE152
,则进入第二网络模态,否则进入第一网络模态。
9、当进入第一网络模态,计算本探测周期内探测数据包大小变化率
Figure 793264DEST_PATH_IMAGE072
与探测包到达时间变化值
Figure 103023DEST_PATH_IMAGE074
,计算二项回归斜率
Figure 439326DEST_PATH_IMAGE076
与截距
Figure 961574DEST_PATH_IMAGE078
。当
Figure 801354DEST_PATH_IMAGE080
Figure 750856DEST_PATH_IMAGE082
时,带宽探测值等于
Figure 512138DEST_PATH_IMAGE154
。当
Figure 369236DEST_PATH_IMAGE080
Figure 483429DEST_PATH_IMAGE086
时,带宽探测值等于
Figure 134990DEST_PATH_IMAGE156
。当
Figure 445886DEST_PATH_IMAGE090
Figure 309937DEST_PATH_IMAGE082
时,带宽探测值等于
Figure 858730DEST_PATH_IMAGE158
。当
Figure 133722DEST_PATH_IMAGE090
Figure 400755DEST_PATH_IMAGE086
时,带宽估计值等于
Figure 271760DEST_PATH_IMAGE160
10、当进入第二网络模态,计算本探测周期内接收端实际收包速率
Figure 675059DEST_PATH_IMAGE054
,带宽探测值等于
Figure 402844DEST_PATH_IMAGE162
11、当网络进入第三网络模态,每个探测周期以突发发包的形式向网络灌入8千字节探测数据包,计算探测数据包的吞吐量,作为当前带宽预测值
Figure 422752DEST_PATH_IMAGE164
12、若缓冲数据充足,步进器则以
Figure 379338DEST_PATH_IMAGE164
作为发送带宽探测包的最大速度继续进行带宽探测,否则尽力发送数据,直到收到终止信号。
在一个实施例中,以应用于如图5所示的HTTP3框架内来说明本申请的网络带宽探测方法,本申请的网络带宽探测方法应用于HTTP3框架内,可以用于增强HTTP3的稳定性,特别是辅助QUIC(HTTP3,是第三代HTTP协议的标准格式)在原生Cubic算法(拥塞控制算法)在高丢包区域失效时,采用包组探测的方式获得精确带宽值,指导FEC生成合适冗余包,降低传输延迟。其中,HTTP3使用QUIC握手,对数据编码后,用QUIC封包,接收端基于QUIC解包和冗余解包可以解析带宽探测包,进而可以生成并反馈相应的反馈信号QUIC SACK(一种用来标记接收端接收带宽探测包的探测包序列号和到达时间的一种数据记录格式),并通过解码获得数据。发送端的系统时钟用于记录发送时间,接收端的系统时钟用于记录到达时间,冗余器用于采用冗余包计算算法进行冗余填充。
该网络带宽探测方法具体包括以下步骤:
1、HTTP3发送端在交握时期,记录当前网络RTT(往返时间),协商网络模态判定阈值的初始值
Figure 371565DEST_PATH_IMAGE120
(分别为初始探测周期的丢包率阈值、延迟阈值、抖动方差阈值),带宽探测时长
Figure 801409DEST_PATH_IMAGE166
,第三网络模态下周期探测数据的最小体积8千字节,初始带宽探测值
Figure 449559DEST_PATH_IMAGE122
。发送端开始按照
Figure 990262DEST_PATH_IMAGE124
的速度发送缓冲区数据,控制按照网络模态I设计的流程工作。
2、发送端经历Cubic慢启动阶段,打满当前可用带宽。
3、发送端存储器开始记录第0个探测周期的探测包的大小,发送时间戳。
4、接收端接收到数据包,开始反馈数据包的到达时间戳、丢包,生成反馈QUICSACK信号给发送端(即反馈探测包接收记录)。
5、发送端收到完整的第0个探测周期内探测包的所有QUIC SACK信号。控制器结合存储器记录的探测包信息(即探测包发送记录),更新RTT(往返时间)、丢包率
Figure 351842DEST_PATH_IMAGE126
(分别为第1探测周期的丢包率阈值、延迟阈值、抖动方差阈值)。
6、更新当前网络模态:若丢包率
Figure 952588DEST_PATH_IMAGE128
,则进入第三网络模态,否则,若RTT最大值大于
Figure 681509DEST_PATH_IMAGE130
或RTT方差大于
Figure 229165DEST_PATH_IMAGE122
,则进入第二网络模态,否则,进入第一网络模态。
7、发送端存储器开始记录第1个探测周期内探测包的大小,发送时间戳。
8、发送端收到完整的第
Figure 195984DEST_PATH_IMAGE132
探测周期的QUIC SACK信号。控制器结合存储器记 录的探测包信息,更新RTT的最大值
Figure 702052DEST_PATH_IMAGE134
(即延迟最大值)、方差
Figure 387111DEST_PATH_IMAGE136
(即抖动方差)、丢包率
Figure 269617DEST_PATH_IMAGE138
Figure 65445DEST_PATH_IMAGE140
(分别为第j+1探测周期的丢包率阈值、延迟阈值、抖动方差阈值)。其 中,
Figure 273572DEST_PATH_IMAGE142
Figure 711507DEST_PATH_IMAGE144
Figure 600965DEST_PATH_IMAGE146
9、若
Figure 542376DEST_PATH_IMAGE148
则进入第三网络模态,否则,若
Figure 390247DEST_PATH_IMAGE150
Figure 33587DEST_PATH_IMAGE152
,则进入第二网络模态,否则进入第一网络模态。
10、当进入第一网络模态,统计本探测周期内是否有丢包发生,计算本探测周期内探测数据包大小变化率
Figure 929998DEST_PATH_IMAGE072
与探测包到达时间变化值
Figure 725916DEST_PATH_IMAGE074
,计算二项回归斜率
Figure 10267DEST_PATH_IMAGE076
与截距
Figure 688373DEST_PATH_IMAGE078
。当
Figure 450793DEST_PATH_IMAGE080
Figure 851949DEST_PATH_IMAGE082
时,带宽探测值等于
Figure 776043DEST_PATH_IMAGE154
。当
Figure 675866DEST_PATH_IMAGE080
Figure 914080DEST_PATH_IMAGE167
时,带宽探测值等于
Figure 950169DEST_PATH_IMAGE156
。当
Figure 294432DEST_PATH_IMAGE090
Figure 947130DEST_PATH_IMAGE082
时,带宽探测值等于
Figure 51352DEST_PATH_IMAGE158
。当
Figure 676369DEST_PATH_IMAGE090
Figure 942265DEST_PATH_IMAGE086
时,带宽估计值等于
Figure 551101DEST_PATH_IMAGE160
11、当进入第二网络模态,计算本探测周期内接收端实际收包速率
Figure 193435DEST_PATH_IMAGE054
,带宽探测值等于
Figure 624023DEST_PATH_IMAGE162
12、当进入第三网络模态,每个探测周期以突发发包的形式向网络灌入8千字节探测数据包,计算探测数据包的吞吐量,作为当前带宽预测值
Figure 857558DEST_PATH_IMAGE164
13、若缓冲数据充足,步进器则以
Figure 953690DEST_PATH_IMAGE164
作为发送带宽探测包的最大速度继续进行带宽探测,否则尽力发送数据,直到收到终止信号。
在一个实施例中,发明人认为,通过将本申请的网络带宽探测方法应用于互联网应用后,通过比对分析发现,如图6所示,在带宽限速场景下,在带宽容量突变时,200毫秒卡顿率平均降低4倍左右,如图7所示,在带宽限速场景下,在带宽容量突变时,通过分析码率与带宽容量的关系,可以看出带宽跟随精度显著提升。
基于同样的发明构思,本申请实施例还提供了一种网络带宽探测方法,该方法所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个网络带宽探测方法实施例中的具体限定可以参见上文中对于网络带宽探测方法的限定,在此不再撰述。
在一个实施例中,如图8所示,提供了一种网络带宽探测方法,应用于包括发送缓冲器、存储器、步进器和控制器的发送装置,该网络带宽探测方法包括以下步骤:
步骤802,获取待向接收装置发送的数据,将数据存储于发送缓冲器。
具体的,发送装置获取待向接收装置发送的数据,将数据存储于发送缓冲器。其中,数据可以为视频数据,也可以为音频数据。
步骤804,控制器基于接收装置反馈的记录有上一探测周期的历史探测包接收记录的反馈信号,获取上一探测周期的网络质量参数,基于网络质量参数,从多个预设的网络模态中确定当前探测周期的当前网络模态,确定为当前网络模态预配置的探测包发送策略和带宽计算方式,获取上一探测周期的历史带宽探测值。
具体的,控制器基于接收装置反馈的记录有上一探测周期的历史探测包接收记录的反馈信号以及存储器中存储的上一探测周期的历史探测包发送记录,获取上一探测周期的网络质量参数,基于网络质量参数,从多个预设的网络模态中确定当前探测周期的当前网络模态,确定为当前网络模态预配置的探测包发送策略和带宽计算方式,获取上一探测周期的历史带宽探测值。
步骤806,在当前探测周期内,步进器按照控制器提供的探测包发送策略以及历史带宽探测值所表征的网络带宽,将发送缓冲器中数据形成带宽探测包并向接收装置发送,并通过存储器记录当前探测周期的探测包发送记录。
具体的,在当前探测周期内,步进器基于时钟所提供的时钟信号,按照控制器提供的探测包发送策略以及历史带宽探测值所表征的网络带宽,将发送缓冲器中数据形成带宽探测包并通过计算机网卡向接收装置发送,并通过存储器记录下所发送的每个带宽探测包的探测包序列号、探测包大小以及发送时间,即探测包发送记录。
步骤808,控制器接收接收装置响应于带宽探测包反馈的记录当前探测周期的探测包接收记录的反馈信号,基于存储器中存储的探测包发送记录和探测包接收记录,并按照带宽计算方式,确定当前探测周期的带宽探测值。
具体的,控制器接收接收装置响应于带宽探测包反馈的记录当前探测周期的探测包接收记录的反馈信号,就可以基于存储器中存储的探测包发送记录和探测包接收记录,按照带宽计算方式,确定当前探测周期的带宽探测值。需要说明的是,不同网络模态预配置有不同的带宽计算方式。
上述网络带宽探测方法,通过获取上一探测周期的网络质量参数,能够基于网络质量参数,从多个预设的网络模态中确定当前探测周期的当前网络模态,从而可以在确定为当前网络模态预配置的探测包发送策略和带宽计算方式的基础上,通过获取上一探测周期的历史带宽探测值,在当前探测周期内,基于探测包发送策略,并按照历史带宽探测值所表征的网络带宽发送带宽探测包,实现对带宽探测包的发送,进而可以在获取当前探测周期的探测包发送记录和探测包发送记录相应的探测包接收记录的基础上,基于探测包发送记录和探测包接收记录,并按照带宽计算方式,确定当前探测周期的带宽探测值,整个过程,能够通过上一探测周期的网络质量参数确定当前探测周期的当前网络模态,进而可以在确定为当前网络模态预配置的探测包发送策略和带宽计算方式的基础上,有针对性的进行网络带宽探测,能够提高网络带宽探测精度。
在一个实施例中,探测包发送记录包括带宽探测包的探测包序列号以及每个带宽探测包的大小,基于存储器中存储的探测包发送记录和探测包接收记录,并按照带宽计算方式,确定当前探测周期的带宽探测值包括:
基于探测包序列号以及每个带宽探测包的大小,获得每个带宽探测包对应的探测包大小变化率;
基于探测包接收记录中每个带宽探测包的到达时间,获得每个带宽探测包对应的探测包到达时间变化值;
根据探测包大小变化率、探测包到达时间变化值和带宽计算方式,确定当前探测周期的带宽探测值。
具体的,控制器基于探测包序列号以及每个带宽探测包的大小,可以获得每个带宽探测包对应的探测包大小变化率,即与上一个已发送带宽探测包的探测包大小的差值,基于探测包接收记录中每个带宽探测包的到达时间,可以获得每个带宽探测包对应的探测包到达时间变化值,即与上一个已到达带宽探测包之间的到达时间的差值,进而可以根据探测包大小变化率、探测包到达时间变化值和带宽计算方式,确定当前探测周期的带宽探测值。
本实施例中,能够基于探测包序列号以及每个带宽探测包的大小,实现对每个带宽探测包对应的探测包大小变化率的计算,能够基于探测包接收记录中每个带宽探测包的到达时间,实现对每个带宽探测包对应的探测包到达时间变化值的计算,进而可以根据探测包大小变化率、探测包到达时间变化值和带宽计算方式,确定当前探测周期的带宽探测值。
在一个实施例中,步进器按照控制器提供的探测包发送策略以及历史带宽探测值所表征的网络带宽,将发送缓冲器中数据形成带宽探测包并向接收装置发送包括:
当当前网络模态为第三网络模态,控制器获取使用网络带宽的应用的类型,根据使用网络带宽的应用的类型确定带宽探测时长,并根据网络带宽相对应的网络环境确定目标探测数据量;
步进器按照控制器提供的带宽探测时长、历史带宽探测值所表征的网络带宽以及目标探测数据量,将发送缓冲器中数据形成带宽探测包并向接收装置发送。
具体的,当当前网络模态为第三网络模态,控制器会获取使用网络带宽的应用的类型,根据使用网络带宽的应用的类型确定带宽探测时长,并根据网络带宽相对应的网络环境确定目标探测数据量。在确定带宽探测时长和目标探测数据量后,步进器基于时钟所提供的时钟信号,按照控制器提供的带宽探测时长、历史带宽探测值所表征的网络带宽以及目标探测数据量,将发送缓冲器中数据形成带宽探测包并通过计算机网卡向接收装置发送。
本实施例中,通过根据使用网络带宽的应用的类型确定带宽探测时长,并根据网络带宽相对应的网络环境确定目标探测数据量,能够在网络处于第三网络模态,按照带宽探测时长、历史带宽探测值所表征的网络带宽和目标探测数据量,实现对带宽探测包的发送。
在一个实施例中,步进器按照控制器提供的带宽探测时长、历史带宽探测值所表征的网络带宽以及目标探测数据量,将发送缓冲器中数据形成带宽探测包并向接收装置发送包括:
当发送缓冲器中数据的大小不满足目标探测数据量,控制器控制冗余填充器采用冗余填充的方式将发送缓冲器中数据的大小填充至目标探测数据量,获得冗余填充数据包;
步进器按照控制器提供的带宽探测时长以及历史带宽探测值所表征的网络带宽,将冗余填充数据包作为带宽探测包并向接收装置发送。
具体的,当发送缓冲器中数据的大小不满足目标探测数据量,需要采用冗余填充的方式将发送缓冲器中数据的大小填充至目标探测数据量,控制器会控制器控制冗余填充器采用冗余填充的方式将发送缓冲器中数据的大小填充至目标探测数据量,获得冗余填充数据包。在获得冗余填充数据包后,步进器基于时钟所提供的时钟信号,按照控制器提供的带宽探测时长以及历史带宽探测值所表征的网络带宽,将冗余填充数据包作为带宽探测包并通过计算机网卡向接收装置发送。
本实施例中,能够在发送缓冲器中数据的大小不满足目标探测数据量时,通过控制器控制冗余填充器采用冗余填充的方式将发送缓冲器中数据的大小填充至目标探测数据量,获得冗余填充数据包,进而可以利用步进器将冗余填充数据包作为带宽探测包向接收装置发送。
在一个具体的应用中,以应用于如图9所示的网络带宽探测系统来说明上述实施例中的网络带宽探测方法,其中,网络带宽探测系统包括封装有发送缓冲器、冗余填充器、存储器、步进器、控制器和时钟的发送装置,以及封装有接收缓冲器、反馈信号器、时钟(未在图9中示出)和冗余解析器的接收装置,发送装置和接收装置通过互联网通信。
发送装置获取待向接收装置发送的数据,将数据存储于发送缓冲器,控制器基于接收装置反馈的记录有上一探测周期的历史探测包接收记录的反馈信号,获取上一探测周期的网络质量参数,基于网络质量参数,从多个预设的网络模态中确定当前探测周期的当前网络模态,确定为当前网络模态预配置的探测包发送策略和带宽计算方式,获取上一探测周期的历史带宽探测值,在当前探测周期内,步进器基于时钟所提供的时钟信号,按照控制器提供的探测包发送策略以及历史带宽探测值所表征的网络带宽,将发送缓冲器中数据形成带宽探测包并通过计算机网卡向接收装置发送,并通过存储器记录当前探测周期的探测包发送记录。
其中,当当前网络模态为第三网络模态且当前探测周期内发送缓冲器中数据的大小不满足目标探测数据量,需要利用冗余填充器采用冗余填充的方式将发送缓冲器中数据的大小填充至目标探测数据量,获得冗余填充数据包,再将冗余填充数据包作为带宽探测包发送。在发送带宽探测包时,可以采用突发模式,一次性注入带宽探测包至接收装置。
接收装置通过计算机网卡接收到带宽探测包后,通过接收缓冲器存储带宽探测包,通过冗余解析器解析带宽探测包的探测包序列号,根据时钟(未在图9中示出)记录收包时间,通过反馈信号器生成记录当前探测周期的探测包接收记录的反馈信号,反馈记录当前探测周期的探测包接收记录的反馈信号至发送装置的控制器。
控制器接收记录当前探测周期的探测包接收记录的反馈信号,基于存储器中存储的探测包发送记录和探测包接收记录,并按照带宽计算方式,确定当前探测周期的带宽探测值。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的网络带宽探测方法的网络带宽探测装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个网络带宽探测装置实施例中的具体限定可以参见上文中对于网络带宽探测方法的限定,在此不再赘述。
在一个实施例中,如图10所示,提供了一种网络带宽探测装置,包括:网络模态判定模块1002、处理模块1004、探测包发送模块1006和带宽估计模块1008,其中:
网络模态判定模块1002,用于获取上一探测周期的网络质量参数,基于网络质量参数,从多个预设的网络模态中确定当前探测周期的当前网络模态;
处理模块1004,用于确定为当前网络模态预配置的探测包发送策略和带宽计算方式;
探测包发送模块1006,用于获取上一探测周期的历史带宽探测值,在当前探测周期内,基于探测包发送策略,并按照历史带宽探测值所表征的网络带宽发送带宽探测包,获得当前探测周期的探测包发送记录;
带宽估计模块1008,用于获取与当前探测周期的探测包发送记录相应的探测包接收记录,基于探测包发送记录和探测包接收记录,并按照带宽计算方式,确定当前探测周期的带宽探测值。
上述网络带宽探测装置,通过获取上一探测周期的网络质量参数,能够基于网络质量参数,从多个预设的网络模态中确定当前探测周期的当前网络模态,从而可以在确定为当前网络模态预配置的探测包发送策略和带宽计算方式的基础上,通过获取上一探测周期的历史带宽探测值,在当前探测周期内,基于探测包发送策略,并按照历史带宽探测值所表征的网络带宽发送带宽探测包,实现对带宽探测包的发送,进而可以在获取当前探测周期的探测包发送记录和探测包发送记录相应的探测包接收记录的基础上,基于探测包发送记录和探测包接收记录,并按照带宽计算方式,确定当前探测周期的带宽探测值,整个过程,能够通过上一探测周期的网络质量参数确定当前探测周期的当前网络模态,进而可以在确定为当前网络模态预配置的探测包发送策略和带宽计算方式的基础上,有针对性的进行网络带宽探测,能够提高网络带宽探测精度。
在一个实施例中,网络质量参数包括至少一种网络质量量化值,网络模态判定模块还用于分别将每种网络质量量化值与相对应的判断阈值进行比较,获得比较结果,比较结果表征每种网络质量量化值与相对应的判断阈值的大小关系,按照比较结果,从预设的网络模态中选择网络模态作为当前探测周期的当前网络模态,选择的网络模态的网络模态判定条件与比较结果匹配。
在一个实施例中,至少一种网络质量量化值包括延迟最大值、抖动标准差和丢包率,各自对应的判断阈值分别是延迟阈值、抖动标准差阈值和丢包率阈值,当丢包率低于丢包率阈值,且延迟最大值小于延迟阈值,且抖动标准差小于抖动标准差阈值,当前网络模态为第一网络模态。
在一个实施例中,至少一种网络质量量化值包括延迟最大值和丢包率,各自对应的判断阈值分别是延迟阈值和丢包率阈值,当丢包率低于丢包率阈值,且延迟最大值大于或者等于延迟阈值,当前网络模态为第二网络模态。
在一个实施例中,至少一种网络质量量化值包括抖动标准差和丢包率,各自对应的判断阈值分别是抖动标准差阈值和丢包率阈值,当丢包率低于丢包率阈值,且抖动标准差大于或者等于抖动标准差阈值,当前网络模态为第二网络模态。
在一个实施例中,至少一种网络质量量化值包括丢包率,对应的判断阈值是丢包率阈值,当丢包率大于或者等于丢包率阈值,当前网络模态为第三网络模态。
在一个实施例中,上一探测周期的网络质量参数,是根据上一探测周期中发送带宽探测包获得的历史探测包发送记录和相对应的历史探测包接收记录生成的,当前探测周期的判断阈值,是基于上一探测周期的网络质量参数对用于确定上一探测周期的网络模态的判断阈值进行更新后获得的。
在一个实施例中,探测包发送模块还用于当当前网络模态为第一网络模态或第二网络模态中任一种,按照预设探测时长和历史带宽探测值所表征的网络带宽发送带宽探测包。
在一个实施例中,探测包发送模块还用于当当前网络模态为第三网络模态,获取使用网络带宽的应用的类型,根据使用网络带宽的应用的类型确定带宽探测时长,并根据网络带宽相对应的网络环境确定目标探测数据量,按照带宽探测时长、历史带宽探测值所表征的网络带宽和目标探测数据量,发送带宽探测包。
在一个实施例中,带宽估计模块还用于基于探测包发送记录中每个带宽探测包的大小,获得每个带宽探测包对应的探测包大小变化率,基于探测包接收记录中每个带宽探测包的到达时间,获得每个带宽探测包对应的探测包到达时间变化值,根据探测包大小变化率、探测包到达时间变化值和带宽计算方式,确定当前探测周期的带宽探测值。
在一个实施例中,带宽估计模块还用于当当前网络模态为第一网络模态且使用网络带宽的应用为延迟敏感型应用,获取上一探测周期的探测包按序到达速率,基于探测包按序到达速率、探测包大小变化率和探测包到达时间变化值,确定当前探测周期的带宽探测值。
在一个实施例中,带宽估计模块还用于基于探测包大小变化率和探测包到达时间变化值,构建线性回归方程,计算线性回归方程的斜率和截距,基于探测包按序到达速率以及线性回归方程的斜率和截距,确定当前探测周期的带宽探测值。
在一个实施例中,带宽估计模块还用于当当前网络模态为第二网络模态,根据探测包发送记录,确定探测包实际发送速率,基于探测包大小变化率和探测包到达时间变化值,获得探测包实际接收速率,对探测包实际发送速率和探测包实际接收速率进行加权求和,确定当前探测周期的带宽探测值。
在一个实施例中,带宽估计模块还用于当当前网络模态为第三网络模态,根据探测包大小变化率和探测包到达时间变化值,获得探测包实际接收速率,将探测包实际接收速率作为当前探测周期的带宽探测值。
在一个实施例中,带宽估计模块还用于当当前网络模态为第一网络模态且使用网络带宽的应用为吞吐量敏感型应用,基于探测包接收记录进行丢包分析,获得丢包分析结果,当丢包分析结果为不存在丢包,基于探测包发送记录和探测包接收记录,计算探测包往返时间,根据探测包往返时间和历史带宽探测值,确定当前探测周期的带宽探测值。
在一个实施例中,带宽估计模块还用于当丢包分析结果为存在丢包,基于历史带宽探测值和预设发生丢包时带宽估计系数,确定当前探测周期的带宽探测值。
上述网络带宽探测装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图11所示。该计算机设备包括处理器、存储器、输入/输出接口(Input/Output,简称I/O)和通信接口。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储带宽探测包、探测包发送记录等数据。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种网络带宽探测方法。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图12所示。该计算机设备包括处理器、存储器、输入/输出接口、通信接口、显示单元和输入装置。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口、显示单元和输入装置通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、移动蜂窝网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种网络带宽探测方法。该计算机设备的显示单元用于形成视觉可见的画面,可以是显示屏、投影装置或虚拟现实成像装置,显示屏可以是液晶显示屏或电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图11和图12中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品,该计算机程序产品包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各方法实施例中的步骤。
需要说明的是,本申请所涉及的数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经过各方充分授权的数据,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。

Claims (38)

1.一种网络带宽探测方法,其特征在于,所述方法包括:
获取上一探测周期的网络质量参数,基于所述网络质量参数,从多个预设的网络模态中确定当前探测周期的当前网络模态;
确定为所述当前网络模态预配置的探测包发送策略和带宽计算方式;
获取所述上一探测周期的历史带宽探测值,在所述当前探测周期内,基于所述探测包发送策略,并按照所述历史带宽探测值所表征的网络带宽发送带宽探测包,获得所述当前探测周期的探测包发送记录;
获取与所述当前探测周期的探测包发送记录相应的探测包接收记录,基于所述探测包发送记录和所述探测包接收记录,并按照所述带宽计算方式,确定当前探测周期的带宽探测值。
2.根据权利要求1所述的方法,其特征在于,所述网络质量参数包括至少一种网络质量量化值;所述基于所述网络质量参数,从多个预设的网络模态中确定当前探测周期的当前网络模态,包括:
分别将每种网络质量量化值与相对应的判断阈值进行比较,获得比较结果,所述比较结果表征每种网络质量量化值与相对应的判断阈值的大小关系;
按照所述比较结果,从预设的网络模态中选择网络模态作为当前探测周期的当前网络模态,选择的网络模态的网络模态判定条件与所述比较结果匹配。
3.根据权利要求2所述的方法,其特征在于,所述至少一种网络质量量化值包括延迟最大值、抖动标准差和丢包率,各自对应的判断阈值分别是延迟阈值、抖动标准差阈值和丢包率阈值;
当所述丢包率低于所述丢包率阈值,且所述延迟最大值小于所述延迟阈值,且所述抖动标准差小于所述抖动标准差阈值,所述当前网络模态为第一网络模态。
4.根据权利要求2所述的方法,其特征在于,所述至少一种网络质量量化值包括延迟最大值和丢包率,各自对应的判断阈值分别是延迟阈值和丢包率阈值;
当所述丢包率低于所述丢包率阈值,且所述延迟最大值大于或者等于所述延迟阈值,所述当前网络模态为第二网络模态。
5.根据权利要求2所述的方法,其特征在于,所述至少一种网络质量量化值包括抖动标准差和丢包率,各自对应的判断阈值分别是抖动标准差阈值和丢包率阈值;
当所述丢包率低于所述丢包率阈值,且所述抖动标准差大于或者等于所述抖动标准差阈值,所述当前网络模态为第二网络模态。
6.根据权利要求2所述的方法,其特征在于,所述至少一种网络质量量化值包括丢包率,对应的判断阈值是丢包率阈值;
当所述丢包率大于或者等于所述丢包率阈值,所述当前网络模态为第三网络模态。
7.根据权利要求2至6任一项所述的方法,其特征在于,所述上一探测周期的网络质量参数,是根据上一探测周期中发送带宽探测包获得的历史探测包发送记录和相对应的历史探测包接收记录生成的;当前探测周期的所述判断阈值,是基于所述上一探测周期的网络质量参数对用于确定上一探测周期的网络模态的判断阈值进行更新后获得的。
8.根据权利要求1所述的方法,其特征在于,所述基于所述探测包发送策略,并按照所述历史带宽探测值所表征的网络带宽发送带宽探测包包括:
当所述当前网络模态为第一网络模态或第二网络模态中任一种,按照预设探测时长和所述历史带宽探测值所表征的网络带宽发送带宽探测包。
9.根据权利要求1所述的方法,其特征在于,所述基于所述探测包发送策略,并按照所述历史带宽探测值所表征的网络带宽发送带宽探测包包括:
当所述当前网络模态为第三网络模态,获取使用网络带宽的应用的类型,根据所述使用网络带宽的应用的类型确定带宽探测时长,并根据所述网络带宽相对应的网络环境确定目标探测数据量;
按照所述带宽探测时长、所述历史带宽探测值所表征的网络带宽和所述目标探测数据量,发送带宽探测包。
10.根据权利要求1至6任一项所述的方法,其特征在于,所述基于所述探测包发送记录和所述探测包接收记录,并按照所述带宽计算方式,确定当前探测周期的带宽探测值包括:
基于所述探测包发送记录中每个带宽探测包的大小,获得每个带宽探测包对应的探测包大小变化率;
基于所述探测包接收记录中每个带宽探测包的到达时间,获得每个带宽探测包对应的探测包到达时间变化值;
根据所述探测包大小变化率、所述探测包到达时间变化值和所述带宽计算方式,确定当前探测周期的带宽探测值。
11.根据权利要求10所述的方法,其特征在于,所述根据所述探测包大小变化率、所述探测包到达时间变化值和所述带宽计算方式,确定当前探测周期的带宽探测值包括:
当所述当前网络模态为第一网络模态且使用网络带宽的应用为延迟敏感型应用,获取上一探测周期的探测包按序到达速率;
基于所述探测包按序到达速率、所述探测包大小变化率和所述探测包到达时间变化值,确定当前探测周期的带宽探测值。
12.根据权利要求11所述的方法,其特征在于,所述基于所述探测包按序到达速率、所述探测包大小变化率和所述探测包到达时间变化值,确定当前探测周期的带宽探测值包括:
基于所述探测包大小变化率和所述探测包到达时间变化值,构建线性回归方程,计算所述线性回归方程的斜率和截距;
基于所述探测包按序到达速率以及所述线性回归方程的斜率和截距,确定当前探测周期的带宽探测值。
13.根据权利要求10所述的方法,其特征在于,所述根据所述探测包大小变化率、所述探测包到达时间变化值和所述带宽计算方式,确定当前探测周期的带宽探测值包括:
当所述当前网络模态为第二网络模态,根据所述探测包发送记录,确定探测包实际发送速率;
基于所述探测包大小变化率和所述探测包到达时间变化值,获得探测包实际接收速率;
对所述探测包实际发送速率和所述探测包实际接收速率进行加权求和,确定当前探测周期的带宽探测值。
14.根据权利要求10所述的方法,其特征在于,所述根据所述探测包大小变化率、所述探测包到达时间变化值和所述带宽计算方式,确定当前探测周期的带宽探测值包括:
当所述当前网络模态为第三网络模态,根据所述探测包大小变化率和所述探测包到达时间变化值,获得探测包实际接收速率;
将所述探测包实际接收速率作为当前探测周期的带宽探测值。
15.根据权利要求1所述的方法,其特征在于,所述基于所述探测包发送记录和所述探测包接收记录,并按照所述带宽计算方式,确定当前探测周期的带宽探测值包括:
当所述当前网络模态为第一网络模态且使用网络带宽的应用为吞吐量敏感型应用,基于所述探测包接收记录进行丢包分析,获得丢包分析结果;
当所述丢包分析结果为不存在丢包,基于所述探测包发送记录和所述探测包接收记录,计算探测包往返时间,根据所述探测包往返时间和所述历史带宽探测值,确定当前探测周期的带宽探测值。
16.根据权利要求15所述的方法,其特征在于,所述方法还包括:
当所述丢包分析结果为存在丢包,基于所述历史带宽探测值和预设发生丢包时带宽估计系数,确定当前探测周期的带宽探测值。
17.一种网络带宽探测方法,其特征在于,所述方法包括:
获取待向接收装置发送的数据,将所述数据存储于发送缓冲器;
控制器基于所述接收装置反馈的记录有上一探测周期的历史探测包接收记录的反馈信号,获取所述上一探测周期的网络质量参数,基于所述网络质量参数,从多个预设的网络模态中确定当前探测周期的当前网络模态,确定为所述当前网络模态预配置的探测包发送策略和带宽计算方式,获取所述上一探测周期的历史带宽探测值;
在所述当前探测周期内,步进器按照所述控制器提供的所述探测包发送策略以及所述历史带宽探测值所表征的网络带宽,将所述发送缓冲器中数据形成带宽探测包并向所述接收装置发送,并通过存储器记录所述当前探测周期的探测包发送记录;
所述控制器接收所述接收装置响应于所述带宽探测包反馈的记录所述当前探测周期的探测包接收记录的反馈信号,基于存储器中存储的所述探测包发送记录和所述探测包接收记录,并按照所述带宽计算方式,确定当前探测周期的带宽探测值。
18.根据权利要求17所述的方法,其特征在于,所述探测包发送记录包括所述带宽探测包的探测包序列号以及每个带宽探测包的大小;
所述基于所述存储器中存储的所述探测包发送记录和所述探测包接收记录,并按照所述带宽计算方式,确定当前探测周期的带宽探测值包括:
基于所述探测包序列号以及所述每个带宽探测包的大小,获得每个带宽探测包对应的探测包大小变化率;
基于所述探测包接收记录中每个带宽探测包的到达时间,获得每个带宽探测包对应的探测包到达时间变化值;
根据所述探测包大小变化率、所述探测包到达时间变化值和所述带宽计算方式,确定当前探测周期的带宽探测值。
19.根据权利要求17或18任一项所述的方法,其特征在于,所述步进器按照所述控制器提供的所述探测包发送策略以及所述历史带宽探测值所表征的网络带宽,将所述发送缓冲器中数据形成所述带宽探测包并向所述接收装置发送包括:
当所述当前网络模态为第三网络模态,所述控制器获取使用网络带宽的应用的类型,根据所述使用网络带宽的应用的类型确定带宽探测时长,并根据所述网络带宽相对应的网络环境确定目标探测数据量;
步进器按照所述控制器提供的所述带宽探测时长、所述历史带宽探测值所表征的网络带宽以及所述目标探测数据量,将所述发送缓冲器中数据形成所述带宽探测包并向所述接收装置发送。
20.根据权利要求19所述的方法,其特征在于,所述步进器按照所述控制器提供的所述带宽探测时长、所述历史带宽探测值所表征的网络带宽以及所述目标探测数据量,将所述发送缓冲器中数据形成所述带宽探测包并向所述接收装置发送包括:
当所述发送缓冲器中数据的大小不满足所述目标探测数据量,所述控制器控制冗余填充器采用冗余填充的方式将所述发送缓冲器中数据的大小填充至所述目标探测数据量,获得冗余填充数据包;
步进器按照所述控制器提供的所述带宽探测时长以及所述历史带宽探测值所表征的网络带宽,将所述冗余填充数据包作为所述带宽探测包并向所述接收装置发送。
21.一种网络带宽探测装置,其特征在于,所述装置包括:
网络模态判定模块,用于获取上一探测周期的网络质量参数,基于所述网络质量参数,从多个预设的网络模态中确定当前探测周期的当前网络模态;
处理模块,用于确定为所述当前网络模态预配置的探测包发送策略和带宽计算方式;
探测包发送模块,用于获取所述上一探测周期的历史带宽探测值,在所述当前探测周期内,基于所述探测包发送策略,并按照所述历史带宽探测值所表征的网络带宽发送带宽探测包,获得所述当前探测周期的探测包发送记录;
带宽估计模块,用于获取与所述当前探测周期的探测包发送记录相应的探测包接收记录,基于所述探测包发送记录和所述探测包接收记录,并按照所述带宽计算方式,确定当前探测周期的带宽探测值。
22.根据权利要求21所述的装置,其特征在于,所述网络质量参数包括至少一种网络质量量化值,所述网络模态判定模块还用于分别将每种网络质量量化值与相对应的判断阈值进行比较,获得比较结果,所述比较结果表征每种网络质量量化值与相对应的判断阈值的大小关系,按照所述比较结果,从预设的网络模态中选择网络模态作为当前探测周期的当前网络模态,选择的网络模态的网络模态判定条件与所述比较结果匹配。
23.根据权利要求22所述的装置,其特征在于,所述至少一种网络质量量化值包括延迟最大值、抖动标准差和丢包率,各自对应的判断阈值分别是延迟阈值、抖动标准差阈值和丢包率阈值,当所述丢包率低于所述丢包率阈值,且所述延迟最大值小于所述延迟阈值,且所述抖动标准差小于所述抖动标准差阈值,所述当前网络模态为第一网络模态。
24.根据权利要求22所述的装置,其特征在于,所述至少一种网络质量量化值包括延迟最大值和丢包率,各自对应的判断阈值分别是延迟阈值和丢包率阈值,当所述丢包率低于所述丢包率阈值,且所述延迟最大值大于或者等于所述延迟阈值,所述当前网络模态为第二网络模态。
25.根据权利要求22所述的装置,其特征在于,所述至少一种网络质量量化值包括抖动标准差和丢包率,各自对应的判断阈值分别是抖动标准差阈值和丢包率阈值,当所述丢包率低于所述丢包率阈值,且所述抖动标准差大于或者等于所述抖动标准差阈值,所述当前网络模态为第二网络模态。
26.根据权利要求22所述的装置,其特征在于,所述至少一种网络质量量化值包括丢包率,对应的判断阈值是丢包率阈值,当所述丢包率大于或者等于所述丢包率阈值,所述当前网络模态为第三网络模态。
27.根据权利要求22至26任一项所述的装置,其特征在于,所述上一探测周期的网络质量参数,是根据上一探测周期中发送带宽探测包获得的历史探测包发送记录和相对应的历史探测包接收记录生成的,当前探测周期的所述判断阈值,是基于所述上一探测周期的网络质量参数对用于确定上一探测周期的网络模态的判断阈值进行更新后获得的。
28.根据权利要求21所述的装置,其特征在于,所述探测包发送模块还用于当所述当前网络模态为第一网络模态或第二网络模态中任一种,按照预设探测时长和所述历史带宽探测值所表征的网络带宽发送带宽探测包。
29.根据权利要求21所述的装置,其特征在于,所述探测包发送模块还用于当所述当前网络模态为第三网络模态,获取使用网络带宽的应用的类型,根据所述使用网络带宽的应用的类型确定带宽探测时长,并根据所述网络带宽相对应的网络环境确定目标探测数据量,按照所述带宽探测时长、所述历史带宽探测值所表征的网络带宽和所述目标探测数据量,发送带宽探测包。
30.根据权利要求21至26任一项所述的装置,其特征在于,所述带宽估计模块还用于基于所述探测包发送记录中每个带宽探测包的大小,获得每个带宽探测包对应的探测包大小变化率,基于所述探测包接收记录中每个带宽探测包的到达时间,获得每个带宽探测包对应的探测包到达时间变化值,根据所述探测包大小变化率、所述探测包到达时间变化值和所述带宽计算方式,确定当前探测周期的带宽探测值。
31.根据权利要求30所述的装置,其特征在于,所述带宽估计模块还用于当所述当前网络模态为第一网络模态且使用网络带宽的应用为延迟敏感型应用,获取上一探测周期的探测包按序到达速率,基于所述探测包按序到达速率、所述探测包大小变化率和所述探测包到达时间变化值,确定当前探测周期的带宽探测值。
32.根据权利要求31所述的装置,其特征在于,所述带宽估计模块还用于基于所述探测包大小变化率和所述探测包到达时间变化值,构建线性回归方程,计算所述线性回归方程的斜率和截距,基于所述探测包按序到达速率以及所述线性回归方程的斜率和截距,确定当前探测周期的带宽探测值。
33.根据权利要求30所述的装置,其特征在于,所述带宽估计模块还用于当所述当前网络模态为第二网络模态,根据所述探测包发送记录,确定探测包实际发送速率,基于所述探测包大小变化率和所述探测包到达时间变化值,获得探测包实际接收速率,对所述探测包实际发送速率和所述探测包实际接收速率进行加权求和,确定当前探测周期的带宽探测值。
34.根据权利要求30所述的装置,其特征在于,所述带宽估计模块还用于当所述当前网络模态为第三网络模态,根据所述探测包大小变化率和所述探测包到达时间变化值,获得探测包实际接收速率,将所述探测包实际接收速率作为当前探测周期的带宽探测值。
35.根据权利要求21所述的装置,其特征在于,所述带宽估计模块还用于当所述当前网络模态为第一网络模态且使用网络带宽的应用为吞吐量敏感型应用,基于所述探测包接收记录进行丢包分析,获得丢包分析结果,当所述丢包分析结果为不存在丢包,基于所述探测包发送记录和所述探测包接收记录,计算探测包往返时间,根据所述探测包往返时间和所述历史带宽探测值,确定当前探测周期的带宽探测值。
36.根据权利要求35所述的装置,其特征在于,所述带宽估计模块还用于当所述丢包分析结果为存在丢包,基于所述历史带宽探测值和预设发生丢包时带宽估计系数,确定当前探测周期的带宽探测值。
37.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至20中任一项所述的方法的步骤。
38.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至20中任一项所述的方法的步骤。
CN202211077232.8A 2022-09-05 2022-09-05 网络带宽探测方法、装置、计算机设备和存储介质 Active CN115150283B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211077232.8A CN115150283B (zh) 2022-09-05 2022-09-05 网络带宽探测方法、装置、计算机设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211077232.8A CN115150283B (zh) 2022-09-05 2022-09-05 网络带宽探测方法、装置、计算机设备和存储介质

Publications (2)

Publication Number Publication Date
CN115150283A CN115150283A (zh) 2022-10-04
CN115150283B true CN115150283B (zh) 2022-11-22

Family

ID=83415455

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211077232.8A Active CN115150283B (zh) 2022-09-05 2022-09-05 网络带宽探测方法、装置、计算机设备和存储介质

Country Status (1)

Country Link
CN (1) CN115150283B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106209494A (zh) * 2016-06-23 2016-12-07 乐视控股(北京)有限公司 可用带宽的测量方法、测量装置和测量系统
CN106533826A (zh) * 2016-10-25 2017-03-22 乐视控股(北京)有限公司 网络状态的探测方法及系统
CN107734537A (zh) * 2016-08-10 2018-02-23 腾讯科技(深圳)有限公司 网络性能参数的测量方法、发送端及接收端
CN108011771A (zh) * 2016-11-01 2018-05-08 阿里巴巴集团控股有限公司 网络链路可用带宽的探测方法、装置和设备
CN110401511A (zh) * 2019-07-25 2019-11-01 广州市百果园信息技术有限公司 一种传输速率的确定方法、装置、设备和存储介质
WO2022100732A1 (zh) * 2020-11-13 2022-05-19 华为技术有限公司 一种探测包的发包方法及相关设备
CN114884846A (zh) * 2022-04-26 2022-08-09 清华大学 一种端到端可用带宽监测方法和系统

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7675856B2 (en) * 2005-03-24 2010-03-09 Microsoft Corporation Bandwidth estimation in broadband access networks
EP3073702B1 (en) * 2015-03-27 2017-09-06 Axis AB Method and devices for negotiating bandwidth in a peer-to-peer network
CN110266551B (zh) * 2019-07-29 2021-06-25 腾讯科技(深圳)有限公司 一种带宽预测方法、装置、设备及存储介质
CN111541626B (zh) * 2020-04-21 2023-08-25 广州市百果园信息技术有限公司 网络带宽更新方法、装置、电子设备及存储介质
CN113852497B (zh) * 2021-09-14 2024-06-18 天翼数字生活科技有限公司 一种基于icmp的vpn加速通道网络质量探测系统

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106209494A (zh) * 2016-06-23 2016-12-07 乐视控股(北京)有限公司 可用带宽的测量方法、测量装置和测量系统
CN107734537A (zh) * 2016-08-10 2018-02-23 腾讯科技(深圳)有限公司 网络性能参数的测量方法、发送端及接收端
CN106533826A (zh) * 2016-10-25 2017-03-22 乐视控股(北京)有限公司 网络状态的探测方法及系统
CN108011771A (zh) * 2016-11-01 2018-05-08 阿里巴巴集团控股有限公司 网络链路可用带宽的探测方法、装置和设备
CN110401511A (zh) * 2019-07-25 2019-11-01 广州市百果园信息技术有限公司 一种传输速率的确定方法、装置、设备和存储介质
WO2022100732A1 (zh) * 2020-11-13 2022-05-19 华为技术有限公司 一种探测包的发包方法及相关设备
CN114884846A (zh) * 2022-04-26 2022-08-09 清华大学 一种端到端可用带宽监测方法和系统

Also Published As

Publication number Publication date
CN115150283A (zh) 2022-10-04

Similar Documents

Publication Publication Date Title
CN1543157B (zh) 基于端对端测量对网络上数据流准入的控制
US7583613B2 (en) Method of monitoring the quality of a realtime communication
US8441943B2 (en) Information processing apparatus and method, program, and recording medium
CN113169896B (zh) 网络度量的连续校准
US7733913B1 (en) Striping data over transmission channels
US8094578B2 (en) Method of predicting the transmission error rate in a communication network and server implementing such a method
US7573829B2 (en) Method and apparatus for low overhead network protocol performance assessment
CN102150395A (zh) 用于网络数据路径质量的非协作测量方法
US8621313B2 (en) Method and a device for adapting error protection in a communication network, and a method and device for detecting between two states of a communication network corresponding to different losses of data
WO2013029214A1 (en) Video quality monitor and method for determining a network video quality measure in a communication network
US10419332B2 (en) Feedback management in a multipath communication network
US20080049635A1 (en) Method and system for determining one-way packet travel time using RTCP
CN114401253A (zh) 一种基于WebRTC的模拟网络中视频传输方法
CN115150283B (zh) 网络带宽探测方法、装置、计算机设备和存储介质
US8504899B2 (en) Data transfer method and information processing apparatus
US11677651B2 (en) UDPING—continuous one-way monitoring of multiple network links
CN112637055B (zh) 基于vpn隧道的多链路聚合方法、系统及存储介质
Wang et al. Performance modelling and analysis of unreliable links with retransmissions using network calculus
US20200195560A1 (en) Continuously calibrated network system
CN113439416B (zh) 连续校准的网络系统
CN117041139B (zh) 数据包传输方法、装置、计算机设备和存储介质
CN118282874A (zh) 数据处理方法及装置
Meresa et al. Study the Effect of FEC on Video Streaming over the Networks
CN118265045A (zh) 网络质量的量化方法、装置、计算机设备和存储介质
CN118200242A (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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40074931

Country of ref document: HK