CN114615164A - 丢包率探测方法及装置、存储介质、电子设备 - Google Patents
丢包率探测方法及装置、存储介质、电子设备 Download PDFInfo
- Publication number
- CN114615164A CN114615164A CN202210226649.XA CN202210226649A CN114615164A CN 114615164 A CN114615164 A CN 114615164A CN 202210226649 A CN202210226649 A CN 202210226649A CN 114615164 A CN114615164 A CN 114615164A
- Authority
- CN
- China
- Prior art keywords
- packet loss
- loss rate
- term
- packet
- packets
- 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.)
- Granted
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 133
- 230000007774 longterm Effects 0.000 claims abstract description 131
- 238000004364 calculation method Methods 0.000 claims abstract description 102
- 230000005540 biological transmission Effects 0.000 claims abstract description 96
- 238000000034 method Methods 0.000 claims abstract description 69
- 238000009499 grossing Methods 0.000 claims abstract description 52
- 238000012545 processing Methods 0.000 claims abstract description 43
- 238000001914 filtration Methods 0.000 claims description 50
- 238000004590 computer program Methods 0.000 claims description 4
- 239000000523 sample Substances 0.000 description 16
- 238000010586 diagram Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 238000005259 measurement Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- KJDGFQJCHFJTRH-YONAWACDSA-N 16-Ketoestradiol Chemical compound OC1=CC=C2[C@H]3CC[C@](C)([C@H](C(=O)C4)O)[C@@H]4[C@@H]3CCC2=C1 KJDGFQJCHFJTRH-YONAWACDSA-N 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000012512 characterization method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000008092 positive effect Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0823—Errors, e.g. transmission errors
- H04L43/0829—Packet loss
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
Abstract
本公开属于计算机网络技术领域,涉及一种丢包率探测方法及装置、存储介质、电子设备。该方法包括:获取数据包在目标协议层与传输层之间的往返传输时长,并根据往返传输时长确定探测时长;对数据包进行包体拆分处理得到多个数据子包,并根据多个数据子包在探测时长中计算短期丢包率;对数据包和多个数据子包进行丢包平滑处理得到长期丢包率,并根据短期丢包率和长期丢包率确定目标丢包率。本公开制定目标协议层对传输层的丢包率进行探测,并且根据丢包统计计算得到的短期丢包率和丢包平滑处理得到的长期丢包率确定目标丢包率,依据数据包传输的特点制定不同的丢包探测方式,贴合数据包的传输特性,保证了基于传输层协议的丢包率探测的准确性。
Description
技术领域
本公开涉及计算机网络技术领域,尤其涉及一种丢包率探测方法与丢包率探测装置、计算机可读存储介质及电子设备。
背景技术
在现有技术中,对网络状况的描述通常需要给出三个参数,分别是带宽、延时和丢包率。其中,带宽是单位时间内通过的有效信息量,延时是消息传输到对端所需要的时间,丢包率是消息传输到对端会丢失的概率。要想准确地在网络游戏等任意场景下描述玩家网络的好坏,通常只需要延时和丢包率,因为网络流量占用的带宽普遍不大,在进行分析和统计的过程中可以忽略。
而网络游戏通常都会使用一个ARQ(Automatic Repeat-reQuest,自动重传请求)协议,该协议可能是TCP(Transmission Control Protocol,传输控制协议)或KCP协议。这些协议都能够相对准确的测量出网络延时,但是无法准确的测量出网络丢包率。只统计一段时间内在信道里(发送的数据数量-对方收到的数据数量)/对方收到的数据数量可以代表发送丢包率。而在所有的ARQ协议中,每个包是不知道被重传了多少次的,所以可以确定所有基于ARQ协议测量的丢包率都是不准确的。
鉴于此,本领域亟需开发一种新的丢包率探测方法及装置。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开的目的在于提供一种丢包率探测方法、丢包率探测装置、计算机可读存储介质及电子设备,进而至少在一定程度上克服由于相关技术的限制而导致的丢包率探测不准确的技术问题。
本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
根据本发明实施例的第一个方面,提供一种丢包率探测方法,应用于目标协议层,所述方法包括:
获取数据包在所述目标协议层与传输层之间的往返传输时长,并根据所述往返传输时长确定探测时长;
对所述数据包进行包体拆分处理得到多个数据子包,并在所述探测时长中对所述多个数据子包进行丢包统计计算得到短期丢包率;
在所述探测时长中对所述数据包和所述多个数据子包进行丢包平滑处理得到长期丢包率,并根据所述短期丢包率和所述长期丢包率确定目标丢包率。
在本发明的一种示例性实施例中,所述根据所述往返传输时长确定探测时长,包括:
获取当前时间以及与所述短期丢包率对应的短期参数,并获取与所述长期丢包率对应的长期参数;
对所述往返传输时长和所述短期参数进行终止时间计算得到终止时间点,并对所述往返传输时长和所述长期参数进行抵达时间计算得到抵达时间点;
根据所述终止时间点和所述抵达时间点确定探测时长。
在本发明的一种示例性实施例中,所述方法还包括:
根据所述终止时间点和所述当前时间确定非探测时长。
在本发明的一种示例性实施例中,所述在所述探测时长中对所述多个数据子包进行丢包统计计算得到短期丢包率,包括:
在所述探测时长中根据所述多个数据子包确定所述数据包中的丢失包和未丢包,并获取所述未丢包中的传输子包个数;
对所述传输子包个数进行包体取整计算得到丢包数,并对所述丢包数进行丢包探测计算得到所述探测时长中的短期丢包率。
在本发明的一种示例性实施例中,所述对所述传输子包个数进行包体取整计算得到丢包数,并对所述丢包数进行丢包探测计算得到所述探测时长中的短期丢包率,包括:
对所述传输子包个数进行包体取整计算得到所述丢失包的丢包子包个数,并对所述丢包子包个数进行丢包预估计算得到丢包数;
获取所述未丢包中的未丢子包个数,并对所述丢包数和所述未丢子包个数进行包体求和计算得到发送包体数量;
对所述发送包体数量和所述丢包数进行丢包探测计算得到短期丢包率。
在本发明的一种示例性实施例中,所述在所述探测时长中对所述数据包和所述多个数据子包进行丢包平滑处理得到长期丢包率,包括:
在所述探测时长中,利用卡尔曼滤波器对所述数据包和所述多个数据子包进行丢包平滑处理得到长期丢包率。
在本发明的一种示例性实施例中,所述利用卡尔曼滤波器对所述数据包和所述多个数据子包进行丢包平滑处理得到长期丢包率,包括:
基于所述数据包,根据所述探测时长确定所述数据子包中的过期子包,并获取所述过期子包的过期个数和所述数据子包中除所述过期子包的其他子包个数;
对所述过期个数和所述其他子包个数进行包体过期计算得到过期丢包率,并利用卡尔曼滤波器对所述过期丢包率进行丢包平滑处理得到长期丢包率。
在本发明的一种示例性实施例中,所述利用卡尔曼滤波器对所述过期丢包率进行丢包平滑处理得到长期丢包率,包括:
利用卡尔曼滤波器对所述过期丢包率进行平滑处理得到滤波丢包率,并获取与所述卡尔曼滤波器对应的滤波参数以及与所述过期丢包率对应的更新参数;
对所述滤波参数、所述滤波丢包率、所述更新参数和所述过期丢包率进行丢包平滑计算得到长期丢包率。
在本发明的一种示例性实施例中,所述根据所述短期丢包率和所述长期丢包率确定目标丢包率,包括:
对所述短期丢包率和所述长期丢包率进行比较,并根据比较结果确定所述短期丢包率或所述长期丢包率为目标丢包率。
在本发明的一种示例性实施例中,所述根据所述短期丢包率和所述长期丢包率确定目标丢包率,包括:
获取所述短期丢包率的短期权重,并获取所述长期丢包率的长期权重;
对所述短期丢包率、所述短期权重、所述长期丢包率和所述长期权重进行丢包确定计算得到目标丢包率。
根据本发明实施例的第二个方面,提供一种丢包率探测装置,应用于目标协议层,包括:
时长划分模块,被配置为获取数据包在所述目标协议层与传输层之间的往返传输时长,并根据所述往返传输时长确定探测时长;
包体拆分模块,被配置为对所述数据包进行包体拆分处理得到多个数据子包,并在所述探测时长中对所述多个数据子包进行丢包统计计算得到短期丢包率;
丢包探测模块,被配置为在所述探测时长中对所述数据包和所述多个数据子包进行丢包平滑处理得到长期丢包率,并根据所述短期丢包率和所述长期丢包率确定目标丢包率。
根据本发明实施例的第三个方面,提供一种电子设备,包括:处理器和存储器;其中,存储器上存储有计算机可读指令,所述计算机可读指令被所述处理器执行时实现上述任意示例性实施例中的丢包率探测方法。
根据本发明实施例的第四个方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意示例性实施例中的丢包率探测方法。
由上述技术方案可知,本公开示例性实施例中的丢包率探测方法、丢包率探测装置、计算机存储介质及电子设备至少具备以下优点和积极效果:
在本公开的示例性实施例提供的方法及装置中,通过往返传输时长确定探测时长,为短期丢包率和长期丢包率的探测提供了时间依据和数据基础。进一步的,制定目标协议层对传输层的丢包率进行探测,并且根据丢包统计计算得到的短期丢包率和丢包平滑处理得到的长期丢包率确定目标丢包率,依据数据包传输的特点制定不同的丢包探测方式,与数据包的传输特性更加贴合,保证了基于传输层协议的丢包率探测的准确性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示意性示出本公开示例性实施例中一种丢包率探测方法的流程示意图;
图2示意性示出了本公开示例性实施例中根据往返传输时长确定探测时长的方法的流程示意图;
图3示意性示出本公开示例性实施例中丢包统计计算的方法的流程示意图;
图4示意性示出了本公开示例性实施例中计算出短期丢包率的方法的流程示意图;
图5示意性示出本公开示例性实施例中丢包平滑处理的方法的流程示意图;
图6示意性示出本公开示例性实施例中进一步进行丢包平滑处理的方法的流程示意图;
图7示意性示出本公开示例性实施例中确定目标丢包率的方法的流程示意图;
图8示意性示出本公开示例性实施例中应用场景制定探测时长和非探测时长的界面示意图;
图9示意性示出本公开示例性实施例中应用场景下数据包和数据子包的丢失情况的示意图;
图10示意性示出本公开示例性实施例中一种丢包率探测装置的结构示意图;
图11示意性示出本公开示例性实施例中一种用于实现丢包率探测方法的电子设备;
图12示意性示出本公开示例性实施例中一种用于实现丢包率探测方法的计算机可读存储介质。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本公开的各方面变得模糊。
本说明书中使用用语“一个”、“一”、“该”和“所述”用以表示存在一个或多个要素/组成部分/等;用语“包括”和“具有”用以表示开放式的包括在内的意思并且是指除了列出的要素/组成部分/等之外还可存在另外的要素/组成部分/等;用语“第一”和“第二”等仅作为标记使用,不是对其对象的数量限制。
此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。
在现有技术中,对网络状况的描述通常需要给出三个参数,分别是带宽、延时和丢包率。其中,带宽是单位时间内通过的有效信息量,延时是消息传输到对端所需要的时间,丢包率是消息传输到对端会丢失的概率。要想准确地在网络游戏等任意场景下描述玩家网络的好坏,通常只需要延时和丢包率,因为网络流量占用的带宽普遍不大,在进行分析和统计的过程中可以忽略。
而网络游戏通常都会使用一个ARQ协议,该协议可能是TCP或KCP协议。这些协议都能够相对准确的测量出网络延时,但是无法准确的测量出网络丢包率。由于发送消息的频率和数据包长度有关,但是如果考虑数据包长度会导致丢包率的探测过于复杂,因此可以忽略该音素,只统计一段时间内在信道里(发送的数据数量-对方收到的数据数量)/对方收到的数据数量可以代表发送丢包率。而在所有的ARQ协议中,每个包是不知道被重传了多少次的,所以可以确定所有基于ARQ协议测量的丢包率都是不准确的。
针对相关技术中存在的问题,本公开提出了一种丢包率探测方法,应用于目标协议层。图1示出了丢包率探测方法的流程图,如图1所示,丢包率探测方法至少包括以下步骤:
步骤S110.获取数据包在目标协议层与传输层之间的往返传输时长,并根据往返传输时长确定探测时长。
步骤S120.对数据包进行包体拆分处理得到多个数据子包,并在探测时长中对多个数据子包进行丢包统计计算得到短期丢包率。
步骤S130.在探测时长中对数据包和多个数据子包进行丢包平滑处理得到长期丢包率,并根据短期丢包率和长期丢包率确定目标丢包率。
在本公开的示例性实施例中,通过往返传输时长确定探测时长,为短期丢包率和长期丢包率的探测提供了时间依据和数据基础。进一步的,制定目标协议层对传输层的丢包率进行探测,并且根据丢包统计计算得到的短期丢包率和丢包平滑处理得到的长期丢包率确定目标丢包率,依据数据包传输的特点制定不同的丢包探测方式,与数据包的传输特性更加贴合,保证了基于传输层协议的丢包率探测的准确性。
下面对丢包率探测方法的各个步骤进行详细说明。
在步骤S110中,获取数据包在目标协议层与传输层之间的往返传输时长,并根据往返传输时长确定探测时长。
在本公开的示例性实施例中,传输层是国际标准化组织提出的开放系统互连(OSI)参考模型中的第四层。该层协议为网络端点主机上的进程之间提供了可靠、有效的报文传送服务。其功能紧密地依赖于网络层的虚拟电路或数据报服务。
传输层定义了主机应用程序之间端到端的连通性。传输层也称为运输层,传输层只存在于端开放系统中,是介于低3层通信子网系统和高3层之间的一层,但是很重要的一层,因为它是源端到目的端对数据传送进行控制从低到高的最后一层。
传输层是整个网络体系结构中的关键层次之一,主要负责向两个主机中进程之间的通信提供服务。由于一个主机同时运行多个进程,因此运输层具有复用和分用功能。
传输层在终端用户之间提供透明的数据传输,向上层提供可靠的数据传输服务。传输层在给定的链路上通过流量控制、分段/重组和差错控制来保证数据传输的可靠性。传输层的一些协议是面向链接的,这就意味着传输层能保持对分段的跟踪,并且重传那些失败的分段。
因此,在传输层中具备自动重传能力是非常重要的。
在传输层中具备自动重传能力的协议可以成为ARQ协议。其中,ARQ协议中可以包括TCP协议,或者是KCP协议等,本示例性实施例对此不做特殊限定。
在ARQ协议中,每个数据包是不知道被重传了多少次的,因此可以得出所有基于ARQ协议测量的丢包率都是不准确的结论。
进一步的,可以在传输层和网络层之间设置一目标协议层。该目标协议层可以是FEC(Forward Error Correction,前向纠错,或前向纠错码)层。
FEC是增加数据通讯可信度的方法。在单向通讯信道中,一旦错误被发现,其接收器将无权再请求传输。FEC是利用数据进行传输冗余信息的方法,当传输中出现错误,将允许接收器再建数据。
FEC层可以被放置在ARQ协议的底层,亦即传输层和网络层之间。
进一步的,可以获取到一个数据包在目标协议层与传输层之间的往返传输时长。该往返传输时长可以用rtt进行表征。
在可选的实施例中,图2示出了根据往返传输时长确定探测时长的方法的流程示意图,如图2所示,该方法至少包括以下步骤:在步骤S210中,获取当前时间以及与短期丢包率对应的短期参数,并获取与长期丢包率对应的长期参数。
举例而言,该短期参数可以是1.3,也可以设置为其他数值,本示例性实施例对此不做特殊限定。
该长期参数可以是240,也可以设置为其他数值,本示例性实施例对此不做特殊限定。
在步骤S220中,对往返传输时长和短期参数进行终止时间计算得到终止时间点,并对往返传输时长和长期参数进行抵达时间计算得到抵达时间点。
具体的,对往返传输时长和短期参数进行终止时间计算可以是对往返传输时长和短期参数进行乘法计算得到1.3rtt作为终止时间点。并且,该终止时间点可以用t2表示。
对往返传输时长和长期参数进行抵达时间计算可以是对往返传输时长和长期参数进行乘法计算得到240rtt作为抵达时间点。并且,该抵达时间点可以用t1表示。该抵达时间点t1时刻为不再更新新的数据包抵达的时刻。
除此之外,终止时间计算和抵达时间计算也可以有其他计算方式,本示例性实施例对此不做特殊限定。
在步骤S230中,根据终止时间点和抵达时间点确定探测时长。
该探测时长可以包括两部分。
具体的,终止时间点和抵达时间点之间可以确定为实时统计丢包率的时长。亦即,该统计时长为抵达时间点t1和终止时间点t2之间的时长,可以用s2表示。
在时间段s2内,一部分数据包能够相对稳定的抵达,但是可能还有一部分乱序的数据包未抵达,并且,接收乱序的数据包和较慢的数据包抵达是会降低丢包率的,因此,也需要对s2时间段内的短期丢包率进行计算,以反映出短期内丢包率的波动。
另一部分探测时长可以通过一个泛指的统计起始时间和抵达时间点构成。该泛指的统计起始时间是没有具体的时间点的,并且,该泛指的统计起始时间可以用t0表示。因此,这部分探测时长是由泛指的统计起始时间t0和抵达时间点t1之间的时长,可以用s1表示。
在时间段s1内,可以计算出相对稳定的长期丢包率部分。
在本示例性实施例中,通过往返传输时长能够确定出计算两个时间段内的丢包率的探测时长,为丢包率的计算提供了理论支持和数据基础。
除此之外,还可以根据往返传输时长确定非探测时长。
在可选的实施例中,根据终止时间点和当前时间确定非探测时长。
具体的,对往返传输时长和短期参数进行终止时间计算可以是对往返传输时长和短期参数进行乘法计算得到1.3rtt作为终止时间点。并且,该终止时间点可以用t2表示。
由于对丢包率的统计终止时间定在t2时刻,因此,可以分割出s3这一时间段作为非探测时长。那么,在t2时刻之前的统计是相对稳定的。
在时间段s3内,因为数据包还没有全部抵达,所以这一段时间可以称为统计不稳定期,不适用于统计丢包率,亦即为丢包率的非探测时长。
在步骤S120中,对数据包进行包体拆分处理得到多个数据子包,并在探测时长中对多个数据子包进行丢包统计计算得到短期丢包率。
在本公开的示例性实施例中,每个通过FEC层发出的数据包都有一个唯一的sn作为ID(Identity Document,身份标识号)。
进一步的,可以将每一个数据包都拆分成Nsn份得到Nsn个数据子包。其中,针对不同的sn标识的数据包拆分的数目Nsn可能是不同的,也可能是相同的,本示例性实施对此不做特殊限定。
并且,sn作为数据包的ID是递增的,可以从0递增至65535。而当每一个数据包拆分成Nsn个数据子包时,每个数据子包的编号也可以从0到Nsn-1呈现递增规律。因此,这0到Nsn-1个数据包共用一个递增的数据包ID。
更进一步的,可以根据探测时长对多个数据子包进行丢包统计计算得到对应的短期丢包率。
在可选的实施例中,图3示出了丢包统计计算的方法的流程示意图,如图3所示,该方法至少包括以下步骤:在步骤S310中,在探测时长中根据多个数据子包确定数据包中的丢失包和未丢包,并获取未丢包中的传输子包个数。
由于sn作为数据包的ID是递增的,因此,通过对递增的sn进行查询可以确定出数据包中丢失的数据包。并且,由于每个数据子包的编号也可以从0到Nsn-1呈现递增规律,而且对每个数据包拆分出的数据子包个数是已知的,因此,对数据子包的编号进行查询可以确定出数据子包中丢失的数据子包。
进一步的,数据包中丢失的数据包可以构成丢失包,数据包中除丢失的数据包的其他数据包可以构成未丢包。其中,丢失包为丢失的数据子包数量为与拆分的数据子包数量相同的数据包,未丢包为所有拆分的数据子包均未丢失,或者是丢失的数据子包的数量小于拆分的数据子包数量的数据包。
更进一步的,可以对未丢包中的所有数据子包进行统计得到传输子包个数。
在步骤S320中,对传输子包个数进行包体取整计算得到丢包数,并对丢包数进行丢包探测计算得到探测时长中的短期丢包率。
在可选的实施例中,图4示出了计算出短期丢包率的方法的流程示意图,如图4所示,该方法至少包括以下步骤:在步骤S410中,对传输子包个数进行包体取整计算得到丢失包的丢包子包个数,并对丢包子包个数进行丢包预估计算得到丢包数。
利用ceil函数对传输子包个数进行向上取整计算,并对向上取整计算的结果进行平均计算,以预测出丢失包中包括的丢包子包个数。
并且,对丢失子包个数和丢失包中丢失的数据包的个数进行乘法计算得到计算结果。进一步的,还可以获取到未丢包中丢失的数据子包的个数。然后,对计算结果和丢失的数据子包的个数进行求和计算得到丢包数。
在步骤S420中,获取未丢包中的未丢子包个数,并对丢包数和未丢子包个数进行包体求和计算得到发送包体数量。
在得到丢包数之后,还可以进一步获取未丢包中的未丢子包个数。该未丢子包个数为传输子包个数中除丢失的数据子包之外的其他数据子包的个数。
进一步的,可以对丢包数和未丢子包个数进行求和计算得到ARQ协议在传输层发送的发送包体数量。
在步骤S430中,对发送包体数量和丢包数进行丢包探测计算得到短期丢包率。
按照(应该发出的包-总共收到的包)/应该发出的包的公式对发送包体数量和丢包数进行丢包探测计算得到短期丢包率。
在本示例性实施例中,通过包体取整计算和丢包探测计算能够得到短期丢包率,计算方式逻辑缜密且严谨,保证了短期丢包率的计算准确性。
在步骤S130中,在探测时长中对数据包和多个数据子包进行丢包平滑处理得到长期丢包率,并根据短期丢包率和长期丢包率确定目标丢包率。
在本公开的示例性实施例中,由于时间段s1内还存在相对稳定的长期丢包率部分,因此可以在时间段s1内对数据包和多个数据子包进行丢包平滑计算,以得到长期丢包率。
在可选的实施例中,在探测时长中,利用卡尔曼滤波器对数据包和多个数据子包进行丢包平滑处理得到长期丢包率。
其中,此时的探测时长指的就是时间段s1。
在可选的实施例中,图5示出了丢包平滑处理的方法的流程示意图,如图5所示,该方法至少包括以下步骤:在步骤S510中,基于数据包,根据探测时长确定数据子包中的过期子包,并获取过期子包的过期个数和数据子包中除过期子包的其他子包个数。
在对s2时间段内的短期丢包率进行计算时,有一个显著的特征就是需要统计时间范围内的全部到的数据包来确定丢包率。当随着时间的流逝没有收到数据包时,统计到的数据包会变少。这个特性会导致当流量低而信道丢包率高的时候,探测到的短期丢包率是极低的,这是不合理的。
因此,为了对抗这个情况,可以将已到s2时间段的终止时间点t2,但是没有收到的数据子包确定为过期子包。进一步的,可以对数据子包中的过期子包的个数和除过期子包的其他子包的个数进行统计得到过期个数和其他子包个数。
值得说明的是,过期个数和其他子包个数的统计是针对同一sn确定的。亦即,过期个数和其他子包个数的统计是以每一个数据包为单位进行统计的。
在步骤S520中,对过期个数和其他子包个数进行包体过期计算得到过期丢包率,并利用卡尔曼滤波器对过期丢包率进行平滑处理得到长期丢包率。
在得到过期个数和其他子包个数之后,可以对过期个数和其他子包个数进行包体过期计算得到过期丢包率。
具体的,对过期个数和其他子包个数进行包体过期计算可以是按照过期个数/(过期个数+其他子包个数)的方式进行的,也可以按照其他方式进行计算,本示例性实施例对此不做特殊限定。
进一步的,利用卡尔曼滤波器对过期丢包率进行平滑处理得到长期丢包率。
在可选的实施例中,图6示出了进一步进行丢包平滑处理的方法的流程示意图,如图6所示,该方法至少包括以下步骤:在步骤S610中,利用卡尔曼滤波器对过期丢包率进行平滑处理得到滤波丢包率,并获取与卡尔曼滤波器对应的滤波参数以及与过期丢包率对应的更新参数。
卡尔曼滤波(Kalman filtering)是一种利用线性系统状态方程,通过系统输入输出观测数据,对系统状态进行最优估计的算法。由于观测数据中包括系统中的噪声和干扰的影响,所以最优估计也可看作是滤波过程。
数据滤波是去除噪声还原真实数据的一种数据处理技术,Kalman滤波在测量方差已知的情况下能够从一系列存在测量噪声的数据中,估计动态系统的状态。由于它便于计算机编程实现,并能够对现场采集的数据进行实时的更新和处理,Kalman滤波是目前应用最为广泛的滤波方法,在通信,导航,制导与控制等多领域得到了较好的应用。
因此,将过期丢包率输入至卡尔曼滤波器之后,可以使卡尔曼滤波器减少过期丢包率的抖动得到滤波丢包率。该滤波丢包率可以用ke表示。
进一步的,可以获取与该卡尔曼滤波器对应的滤波参数。该滤波参数可以表征滤波丢包率在长期丢包率所占的比重。通常,该滤波参数可以设置为0.04,也可以设置为其他数值,本示例性实施例对此不做特殊限定。
除此之外,还可以获取到过期丢包率对应的更新参数。该更新参数可以设置为过期丢包率在长期丢包率中所占的比重。通常,该更新参数可以设置为0.96,也可以设置为其他数值,本示例性实施例对此不做特殊限定。
在步骤S620中,对滤波参数、滤波丢包率、更新参数和过期丢包率进行丢包平滑计算得到长期丢包率。
在得到滤波参数、滤波丢包率和更新参数之后,可以对滤波参数、滤波丢包率、更新参数和过期丢包率进行丢包平滑计算得到长期丢包率。
具体的,对滤波参数、滤波丢包率、更新参数和过期丢包率进行丢包平滑计算可以是按照e=096e+0.04ke进行的。
其中,公式左边的e为平滑后的长期丢包率,公式右边的e为过期丢包率,ke为滤波丢包率。
在本示例性实施例中,通过卡尔曼滤波器对过期丢包率进行丢包平滑处理,并进行丢包平滑计算之后能够得到长期丢包率,该长期丢包率为解决流量低而丢包率高的情况下的丢包率探测不准确的问题提供了支持,也保证了丢包率探测的准确度。
因此,在得到短期丢包率和长期丢包率之后,可以根据短期丢包率和长期丢包率确定出探测出的最终的目标丢包率。
在可选的实施例中,对短期丢包率和长期丢包率进行比较,并根据比较结果确定短期丢包率或长期丢包率为目标丢包率。
一种确定目标丢包率的方式是将计算出的短期丢包率和长期丢包率进行比较。更进一步的,根据比较结果选择更大的丢包率作为目标丢包率。
其中,该更大的丢包率可能为短期丢包率,也可能为长期丢包率。
在可选的实施例中,图7示出了确定目标丢包率的方法的流程示意图,如图7所示,该方法至少包括以下步骤:在步骤S710中,获取短期丢包率的短期权重,并获取长期丢包率的长期权重。
举例而言,该短期权重可以设置为0.4,长期权重可以设置为0.6,也可以将短期权重和长期权重设置为其他数值,本示例性实施例对此不做特殊限定。
在步骤S720中,对短期丢包率、短期权重、长期丢包率和长期权重进行丢包确定计算得到目标丢包率。
在获取到短期权重和长期权重之后,可以对短期丢包率和短期权重进行乘法计算得到一种计算结果,并对长期丢包率和长期权重进行乘法计算得到另一种计算结果。
更进一步的,将两种计算结果进行求和计算得到目标丢包率。
在本示例性实施例中,通过对短期丢包率和对应的短期权重,以及长期丢包率和长期权重进行加权求和计算能够得到目标丢包率,丰富了目标丢包率的计算方式,也能够支持不同场景下使用不同目标丢包率的确定方式,保证了不同场景下确定出的目标丢包率的准确性。
下面结合一应用场景对本公开实施例中的丢包率探测方法做出详细说明。
由于在ARQ协议中每个数据包是不知道被重传了多少次的,因此可以得出所有基于ARQ协议测量的丢包率都是不准确的结论。进一步的,可以在传输层和网络层之间设置一FEC层。
该FEC层被放置在ARQ协议的底层,亦即传输层和网络层之间。
基于FEC层进行开发,将每个通过FEC层发出的数据包都确定一个唯一的sn作为ID。
进一步的,可以将每一个数据包都拆分成Nsn份得到Nsn个数据子包。其中,针对不同的sn标识的数据包拆分的数目Nsn可能是不同的,也可能是相同的,本示例性实施对此不做特殊限定。
并且,sn作为数据包的ID是递增的,可以从0递增至65535。而当每一个数据包拆分成Nsn个数据子包时,每个数据子包的编号也可以从0到Nsn-1呈现递增规律。因此,这0到Nsn-1个数据包共用一个递增的数据包ID。
基于丢包率是(发送的数据数量-对方收到的数据数量)/对方收到的数据数量,以及sn和Nsn两个参数,可以确定一个相对准确且稳定的信道的丢包率探测方法。
图8示出了应用场景制定探测时长和非探测时长的界面示意图,如图8所示,通过一个泛指的统计起始时间t0、不接受包更新的时间t1和统计终止时间t2分为三个部分,分别是时间段s1、时间段s2和时间段s3,这三个时间段的间隔时间是固定的。
具体的,对丢包率的统计的终止时间,亦即终止时间点定在t2时刻,分割出时间段s3,t2前的时刻统计相对是稳定的。在时间段s3内,因为数据包还未全部抵达,因此这一段可以称为统计不稳定期,不适用于统计丢包率,因此时间段s3也是非探测时长。
将t1时刻定位不再更新新的数据包抵达的时刻,分割出时间段s2。在时间段s2内,数据包可能还有一些乱序的数据包未抵达,在时间段s2内数据包能够相对稳定的抵达,因此统计短期丢包率只统计t1时刻以后的丢包率。
为了避免当一段时间内数据包的数量为0的时候,丢包率会降低的情况,还可以对时间段s1内的统计用作滤波器来统计。
因此,丢包率的探测被分为三个时间段。其中,时间段s1为统计期,是相对稳定的长期丢包率部分;时间段s2的部分是实时统计(应该发出的包数-总共收到的包数)/应该发出的包数来计算丢包率,用以反映短期内丢包率的波动。
时间段s2内时,在FEC层,每发出一个上层的数据包,都会被拆分成Nsn份得到Nsn个数据子包。其中,针对不同的sn标识的数据包拆分的数目Nsn可能是不同的,也可能是相同的,本示例性实施对此不做特殊限定。
并且,sn作为数据包的ID是递增的,可以从0递增至65535。而当每一个数据包拆分成Nsn个数据子包时,每个数据子包的编号也可以从0到Nsn-1呈现递增规律。因此,这0到Nsn-1个数据包共用一个递增的数据包ID。
因此,在时间段s2和时间段s3内,可以使用纵横的链表来表示数据包的情况。
图9示出了应用场景下数据包和数据子包的丢失情况的示意图,如图9所示,每个方形表示的是一个FEC层子包,每个子包有三个信息,分别是数据包ID、数据子包编号和数据包分组数量。为简略说明短期丢包率的计算方式,这里可以忽略数据子包的编号信息。
图9的纵横的链表中,横向为数据包ID,纵向展示按照数据子包编号排列的数据包分组数量。举例而言,ID为1数据包中包括5个数据子包,并且丢失了一个数据子包。
除此之外,数据包ID为4、6和7的数据包也是丢失情况。
为计算短期丢包率的情况,可以先确定数据包和数据子包中的丢失包和未丢包,并获取未丢包中的未丢子包个数。
由于sn作为数据包的ID是递增的,因此,通过对递增的sn进行查询可以确定出数据包中丢失的数据包,分别是4、6和7。并且,由于每个数据子包的编号也可以从0到Nsn-1呈现递增规律,而且对每个数据包拆分出的数据子包个数是已知的,因此,对数据子包的编号进行查询可以确定出数据子包中丢失的数据子包,可以是数据包ID为1的第五个数据子包。
进一步的,数据包中丢失的数据包可以构成丢失包,数据包中除丢失的数据包的其他数据包可以构成未丢包。其中,丢失包为丢失的数据子包数量为与拆分的数据子包数量相同的数据包,未丢包为所有拆分的数据子包均未丢失,或者是丢失的数据子包的数量小于拆分的数据子包数量的数据包。
更进一步的,可以对未丢包中的数据子包进行统计得到传输子包个数。
具体的,未丢包分别是数据包ID为1、2、3、5和8五个数据包。这五个数据包中的未丢子包个数分别为5、3、1、1和2。
对传输子包个数进行包体取整计算得到丢失包的丢包子包个数,并对丢包子包个数进行丢包预估计算得到丢包数。
具体的,利用ceil函数对传输子包个数进行向上取整计算,并对向上取整计算的结果进行平均计算,以预测出丢失包中包括的丢包子包个数。因此,丢包子包个数为ceil((5+3+1+1+2)/5)=ceil(12/5)=3。
并且,对丢失子包个数和丢失包中丢失的数据包的个数进行乘法计算得到计算结果。进一步的,还可以获取到未丢包中丢失的数据子包的个数。然后,对计算结果和丢失的数据子包的个数进行求和计算得到丢包数。
具体的,丢失包中丢失的数据包为4、6和7,因此,丢失包中丢失的数据包的个数为3。由于丢失的数据子包仅为数据包ID为1中的第五个数据子包,因此丢失的数据子包个数为1。
进一步的,由于丢失子包个数为3,因此对丢失子包个数和丢失包中丢失的数据包的个数进行乘法计算为3×3=9,再对该计算结果和丢失的数据子包个数进行求和计算为9+1=10。因此,丢包数为10。
获取未丢包中的未丢子包个数,并对丢包数和未丢子包个数进行包体求和计算得到发送包体数量。
在得到丢包数之后,还可以进一步获取未丢包中的未丢子包个数。该未丢子包个数为传输子包个数中除丢失的数据子包之外的其他数据子包的个数。
进一步的,可以对丢包数和未丢子包个数进行求和计算得到ARQ协议在传输层发送的发送包体数量。
对发送包体数量和丢包数进行丢包探测计算得到短期丢包率。
按照(应该发出的包-总共收到的包)/应该发出的包的公式对发送包体数量和丢包数进行丢包探测计算得到短期丢包率。
在得到丢包数之后,可以对丢包数和未丢子包个数进行求和计算得到ARQ协议在传输层发送的发送包体数量。
具体的,未丢包中未丢的其他数据子包为数据包ID为1中的前四个数据子包,数据包ID为2中的三个数据子包,数据包ID为3中的一个数据子包,数据包ID为5中的一个数据子包,数据包ID为8中的两个数据子包,因此未丢子包个数为4+3+1+1+2=11个。
进一步的,对丢包数和未丢子包个数进行求和计算得到10+11=21个发送包体数量。
按照(应该发出的包-总共收到的包)/应该发出的包的公式对发送包体数量和丢包数进行丢包探测计算得到短期丢包率。因此,短期丢包率为(21-11)/21=47.6%。
在对s2时间段内的短期丢包率进行计算时,有一个显著的特征就是需要统计时间范围内的全部到的数据包来确定丢包率。当随着时间的流逝没有收到数据包时,统计到的数据包会变少。这个特性会导致当流量低而信道丢包率高的时候,探测到的短期丢包率是极低的,这是不合理的。
因此,为了对抗这个情况,可以将已到s2时间段的终止时间点t2,但是没有收到的数据子包确定为过期子包。进一步的,可以对数据子包中的过期子包的个数和除过期子包的其他子包的个数进行统计得到过期个数和其他子包个数。
值得说明的是,过期个数和其他子包个数的统计是针对同一sn确定的。亦即,过期个数和其他子包个数的统计是以每一个数据包为单位进行统计的。
对过期个数和其他子包个数进行包体过期计算得到过期丢包率,并利用卡尔曼滤波器对过期丢包率进行平滑处理得到长期丢包率。
在得到过期个数和其他子包个数之后,可以对过期个数和其他子包个数进行包体过期计算得到过期丢包率。
具体的,对过期个数和其他子包个数进行包体过期计算可以是按照过期个数/(过期个数+其他子包个数)的方式进行的,也可以按照其他方式进行计算,本示例性实施例对此不做特殊限定。
进一步的,利用卡尔曼滤波器对过期丢包率进行平滑处理得到长期丢包率。
将过期丢包率输入至卡尔曼滤波器之后,可以使卡尔曼滤波器减少过期丢包率的抖动得到滤波丢包率。该滤波丢包率可以用ke表示。
进一步的,可以获取与该卡尔曼滤波器对应的滤波参数。该滤波参数可以表征滤波丢包率在长期丢包率所占的比重。通常,该滤波参数可以设置为0.04,也可以设置为其他数值,本示例性实施例对此不做特殊限定。
除此之外,还可以获取到过期丢包率对应的更新参数。该更新参数可以设置为过期丢包率在长期丢包率中所占的比重。通常,该更新参数可以设置为0.96,也可以设置为其他数值,本示例性实施例对此不做特殊限定。
对滤波参数、滤波丢包率、更新参数和过期丢包率进行丢包平滑计算得到长期丢包率。
在得到滤波参数、滤波丢包率和更新参数之后,可以对滤波参数、滤波丢包率、更新参数和过期丢包率进行丢包平滑计算得到长期丢包率。
具体的,对滤波参数、滤波丢包率、更新参数和过期丢包率进行丢包平滑计算可以是按照e=096e+0.04ke进行的。
其中,公式左边的e为平滑后的长期丢包率,公式右边的e为过期丢包率,ke为滤波丢包率。
因此,在得到短期丢包率和长期丢包率之后,可以根据短期丢包率和长期丢包率确定出探测出的最终的目标丢包率。
一种确定目标丢包率的方式是将计算出的短期丢包率和长期丢包率进行比较。更进一步的,根据比较结果选择更大的丢包率作为目标丢包率。
其中,该更大的丢包率可能为短期丢包率,也可能为长期丢包率。
另一种是先获取短期丢包率的短期权重,并获取长期丢包率的长期权重。
举例而言,该短期权重可以设置为0.4,长期权重可以设置为0.6,也可以将短期权重和长期权重设置为其他数值,本示例性实施例对此不做特殊限定。
然后,对短期丢包率、短期权重、长期丢包率和长期权重进行丢包确定计算得到目标丢包率。
在获取到短期权重和长期权重之后,可以对短期丢包率和短期权重进行乘法计算得到一种计算结果,并对长期丢包率和长期权重进行乘法计算得到另一种计算结果。
更进一步的,将两种计算结果进行求和计算得到目标丢包率。
通过两种确定目标丢包率的方式可以在不同的场景下使用不同的丢包率探测方法。
并且,该目标丢包率的测量能够应用在网络游戏的各个玩家网络分级的场景中,将丢包率×延时这两个变量以不同的阈值把玩家划分为(低延时、中延时、高延时)×(低丢包、中丢包、高丢包)的9个区间内,为不同区间内的玩家制定不同的客户端先行程度,保证玩家的游戏体验。而不是传统意义上只通过延时进行区分,对丢包率的测量和应用具有极高的意义和价值。
在本公开的示例性实施例中的丢包率探测方法,通过往返传输时长确定探测时长,为短期丢包率和长期丢包率的探测提供了时间依据和数据基础。进一步的,制定目标协议层对传输层的丢包率进行探测,并且根据丢包统计计算得到的短期丢包率和丢包平滑处理得到的长期丢包率确定目标丢包率,依据数据包传输的特点制定不同的丢包探测方式,与数据包的传输特性更加贴合,保证了基于传输层协议的丢包率探测的准确性。
此外,在本公开的示例性实施例中,还提供一种丢包率探测装置,应用于目标协议层。图10示出了丢包率探测装置的结构示意图,如图10所示,丢包率探测装置1000可以包括:时长划分模块1010、包体拆分模块1020和丢包探测模块1030。其中:
时长划分模块1010,被配置为获取数据包在所述目标协议层与传输层之间的往返传输时长,并根据所述往返传输时长确定探测时长;
包体拆分模块1020,被配置为对所述数据包进行包体拆分处理得到多个数据子包,并在所述探测时长中对所述多个数据子包进行丢包统计计算得到短期丢包率;
丢包探测模块1030,被配置为在所述探测时长中对所述数据包和所述多个数据子包进行丢包平滑处理得到长期丢包率,并根据所述短期丢包率和所述长期丢包率确定目标丢包率。
在本发明的一种示例性实施例中,所述根据所述往返传输时长确定探测时长,包括:
获取当前时间以及与所述短期丢包率对应的短期参数,并获取与所述长期丢包率对应的长期参数;
对所述往返传输时长和所述短期参数进行终止时间计算得到终止时间点,并对所述往返传输时长和所述长期参数进行抵达时间计算得到抵达时间点;
根据所述终止时间点和所述抵达时间点确定探测时长。
在本发明的一种示例性实施例中,所述方法还包括:
根据所述终止时间点和所述当前时间确定非探测时长。
在本发明的一种示例性实施例中,所述在所述探测时长中对所述多个数据子包进行丢包统计计算得到短期丢包率,包括:
在所述探测时长中根据所述多个数据子包确定所述数据包中的丢失包和未丢包,并获取所述未丢包中的传输子包个数;
对所述传输子包个数进行包体取整计算得到丢包数,并对所述丢包数进行丢包探测计算得到所述探测时长中的短期丢包率。
在本发明的一种示例性实施例中,所述对所述未丢子包个数进行包体取整计算得到丢包数,并对所述丢包数进行丢包探测计算得到所述探测时长中的短期丢包率,包括:
所述对所述传输子包个数进行包体取整计算得到丢包数,并对所述丢包数进行丢包探测计算得到所述探测时长中的短期丢包率,包括:
对所述传输子包个数进行包体取整计算得到所述丢失包的丢包子包个数,并对所述丢包子包个数进行丢包预估计算得到丢包数;
获取所述未丢包中的未丢子包个数,并对所述丢包数和所述未丢子包个数进行包体求和计算得到发送包体数量;
对所述发送包体数量和所述丢包数进行丢包探测计算得到短期丢包率。
在本发明的一种示例性实施例中,所述在所述探测时长中对所述数据包和所述多个数据子包进行丢包平滑处理得到长期丢包率,包括:
在所述探测时长中,利用卡尔曼滤波器对所述数据包和所述多个数据子包进行丢包平滑处理得到长期丢包率。
在本发明的一种示例性实施例中,所述利用卡尔曼滤波器对所述数据包和所述多个数据子包进行丢包平滑处理得到长期丢包率,包括:
根据所述探测时长确定所述数据子包中的过期子包,并获取所述过期子包的过期个数和所述数据子包中除所述过期子包的其他子包个数;
对所述过期个数和所述其他子包个数进行包体过期计算得到过期丢包率,并利用卡尔曼滤波器对所述过期丢包率进行丢包平滑处理得到长期丢包率。
在本发明的一种示例性实施例中,所述利用卡尔曼滤波器对所述过期丢包率进行丢包平滑处理得到长期丢包率,包括:
利用卡尔曼滤波器对所述过期丢包率进行平滑处理得到滤波丢包率,并获取与所述卡尔曼滤波器对应的滤波参数以及与所述过期丢包率对应的更新参数;
对所述滤波参数、所述滤波丢包率、所述更新参数和所述过期丢包率进行丢包平滑计算得到长期丢包率。
在本发明的一种示例性实施例中,所述根据所述短期丢包率和所述长期丢包率确定目标丢包率,包括:
对所述短期丢包率和所述长期丢包率进行比较,并根据比较结果确定所述短期丢包率或所述长期丢包率为目标丢包率。
在本发明的一种示例性实施例中,所述根据所述短期丢包率和所述长期丢包率确定目标丢包率,包括:
获取所述短期丢包率的短期权重,并获取所述长期丢包率的长期权重;
对所述短期丢包率、所述短期权重、所述长期丢包率和所述长期权重进行丢包确定计算得到目标丢包率。
上述丢包率探测装置1000的具体细节已经在对应的丢包率探测方法中进行了详细的描述,因此此处不再赘述。
应当注意,尽管在上文详细描述中提及了丢包率探测装置1000的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
此外,在本公开的示例性实施例中,还提供了一种能够实现上述方法的电子设备。
下面参照图11来描述根据本发明的这种实施例的电子设备1100。图11显示的电子设备1100仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图11所示,电子设备1100以通用计算设备的形式表现。电子设备1100的组件可以包括但不限于:上述至少一个处理单元1110、上述至少一个存储单元1120、连接不同系统组件(包括存储单元1120和处理单元1110)的总线1130、显示单元1140。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元1110执行,使得所述处理单元1110执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施例的步骤。
存储单元1120可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)1121和/或高速缓存存储单元1122,还可以进一步包括只读存储单元(ROM)1123。
存储单元1120还可以包括具有一组(至少一个)程序模块1125的程序/实用工具1124,这样的程序模块1125包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线1130可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备1100也可以与一个或多个外部设备1300(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备1100交互的设备通信,和/或与使得该电子设备1100能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口1150进行。并且,电子设备1100还可以通过网络适配器1160与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器1160通过总线1130与电子设备1100的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备1100使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施例的描述,本领域的技术人员易于理解,这里描述的示例实施例可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施例的方法。
在本公开的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施例中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施例的步骤。
参考图12所示,描述了根据本发明的实施例的用于实现上述方法的程序产品1200,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其他实施例。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求指出。
Claims (13)
1.一种丢包率探测方法,其特征在于,应用于目标协议层,所述方法包括:
获取数据包在所述目标协议层与传输层之间的往返传输时长,并根据所述往返传输时长确定探测时长;
对所述数据包进行包体拆分处理得到多个数据子包,并在所述探测时长中对所述多个数据子包进行丢包统计计算得到短期丢包率;
在所述探测时长中对所述数据包和所述多个数据子包进行丢包平滑处理得到长期丢包率,并根据所述短期丢包率和所述长期丢包率确定目标丢包率。
2.根据权利要求1所述的丢包率探测方法,其特征在于,所述根据所述往返传输时长确定探测时长,包括:
获取当前时间以及与所述短期丢包率对应的短期参数,并获取与所述长期丢包率对应的长期参数;
对所述往返传输时长和所述短期参数进行终止时间计算得到终止时间点,并对所述往返传输时长和所述长期参数进行抵达时间计算得到抵达时间点;
根据所述终止时间点和所述抵达时间点确定探测时长。
3.根据权利要求2所述的丢包率探测方法,其特征在于,所述方法还包括:
根据所述终止时间点和所述当前时间确定非探测时长。
4.根据权利要求1所述的丢包率探测方法,其特征在于,所述在所述探测时长中对所述多个数据子包进行丢包统计计算得到短期丢包率,包括:
在所述探测时长中根据所述多个数据子包确定所述数据包中的丢失包和未丢包,并获取所述未丢包中的传输子包个数;
对所述传输子包个数进行包体取整计算得到丢包数,并对所述丢包数进行丢包探测计算得到所述探测时长中的短期丢包率。
5.根据权利要求4所述的丢包率探测方法,其特征在于,所述对所述传输子包个数进行包体取整计算得到丢包数,并对所述丢包数进行丢包探测计算得到所述探测时长中的短期丢包率,包括:
对所述传输子包个数进行包体取整计算得到所述丢失包的丢包子包个数,并对所述丢包子包个数进行丢包预估计算得到丢包数;
获取所述未丢包中的未丢子包个数,并对所述丢包数和所述未丢子包个数进行包体求和计算得到发送包体数量;
对所述发送包体数量和所述丢包数进行丢包探测计算得到短期丢包率。
6.根据权利要求1所述的丢包率探测方法,其特征在于,所述在所述探测时长中对所述数据包和所述多个数据子包进行丢包平滑处理得到长期丢包率,包括:
在所述探测时长中,利用卡尔曼滤波器对所述数据包和所述多个数据子包进行丢包平滑处理得到长期丢包率。
7.根据权利要求6所述的丢包率探测方法,其特征在于,所述利用卡尔曼滤波器对所述数据包和所述多个数据子包进行丢包平滑处理得到长期丢包率,包括:
基于所述数据包,根据所述探测时长确定所述数据子包中的过期子包,并获取所述过期子包的过期个数和所述数据子包中除所述过期子包的其他子包个数;
对所述过期个数和所述其他子包个数进行包体过期计算得到过期丢包率,并利用卡尔曼滤波器对所述过期丢包率进行丢包平滑处理得到长期丢包率。
8.根据权利要求7所述的丢包率探测方法,其特征在于,所述利用卡尔曼滤波器对所述过期丢包率进行丢包平滑处理得到长期丢包率,包括:
利用卡尔曼滤波器对所述过期丢包率进行平滑处理得到滤波丢包率,并获取与所述卡尔曼滤波器对应的滤波参数以及与所述过期丢包率对应的更新参数;
对所述滤波参数、所述滤波丢包率、所述更新参数和所述过期丢包率进行丢包平滑计算得到长期丢包率。
9.根据权利要求1所述的丢包率探测方法,其特征在于,所述根据所述短期丢包率和所述长期丢包率确定目标丢包率,包括:
对所述短期丢包率和所述长期丢包率进行比较,并根据比较结果确定所述短期丢包率或所述长期丢包率为目标丢包率。
10.根据权利要求1所述的丢包率探测方法,其特征在于,所述根据所述短期丢包率和所述长期丢包率确定目标丢包率,包括:
获取所述短期丢包率的短期权重,并获取所述长期丢包率的长期权重;
对所述短期丢包率、所述短期权重、所述长期丢包率和所述长期权重进行丢包确定计算得到目标丢包率。
11.一种丢包率探测装置,其特征在于,应用于目标协议层,包括:
时长划分模块,被配置为获取数据包在所述目标协议层与传输层之间的往返传输时长,并根据所述往返传输时长确定探测时长;
包体拆分模块,被配置为对所述数据包进行包体拆分处理得到多个数据子包,并在所述探测时长中对所述多个数据子包进行丢包统计计算得到短期丢包率;
丢包探测模块,被配置为在所述探测时长中对所述数据包和所述多个数据子包进行丢包平滑处理得到长期丢包率,并根据所述短期丢包率和所述长期丢包率确定目标丢包率。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-10中任意一项所述的丢包率探测方法。
13.一种电子设备,其特征在于,包括:
处理器;
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器被配置为经由执行所述可执行指令来执行权利要求1-10中任意一项所述的丢包率探测方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210226649.XA CN114615164B (zh) | 2022-03-09 | 2022-03-09 | 丢包率探测方法及装置、存储介质、电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210226649.XA CN114615164B (zh) | 2022-03-09 | 2022-03-09 | 丢包率探测方法及装置、存储介质、电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114615164A true CN114615164A (zh) | 2022-06-10 |
CN114615164B CN114615164B (zh) | 2023-12-29 |
Family
ID=81861557
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210226649.XA Active CN114615164B (zh) | 2022-03-09 | 2022-03-09 | 丢包率探测方法及装置、存储介质、电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114615164B (zh) |
Citations (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080181125A1 (en) * | 2007-01-31 | 2008-07-31 | Fujitsu Limited | Bandwidth measuring method and device |
CN101686100A (zh) * | 2008-09-25 | 2010-03-31 | 华为技术有限公司 | 处理丢包的方法、传输质量控制方法、装置及系统 |
US7821937B1 (en) * | 2007-06-29 | 2010-10-26 | Symantec Corporation | Network protocol with damage loss resilient congestion control algorithm |
CN102739527A (zh) * | 2012-06-14 | 2012-10-17 | 北京邮电大学 | 网络丢包率探测方法 |
WO2016115916A1 (zh) * | 2015-01-23 | 2016-07-28 | 中兴通讯股份有限公司 | 数据包的重传方法及装置 |
US20170163509A1 (en) * | 2015-12-07 | 2017-06-08 | Le Holdings (Beijing) Co., Ltd. | Inter-node distance metric method and system |
CN107241166A (zh) * | 2017-06-12 | 2017-10-10 | 京信通信系统(中国)有限公司 | 一种长期演进上的语音Volte数据保障方法和设备 |
WO2017181586A1 (zh) * | 2016-04-19 | 2017-10-26 | 乐视控股(北京)有限公司 | 节点间距离的度量方法及电子设备 |
CN107493192A (zh) * | 2017-08-08 | 2017-12-19 | 深圳市网心科技有限公司 | 用于视频cdn业务传输的基础网络质量评估方法和装置 |
CN107566222A (zh) * | 2017-10-18 | 2018-01-09 | 中国联合网络通信集团有限公司 | 一种计算丢包率的方法及装置 |
CN109412753A (zh) * | 2018-10-25 | 2019-03-01 | 网易(杭州)网络有限公司 | 数据传输方法及装置、电子设备以及存储介质 |
CN109525458A (zh) * | 2018-11-20 | 2019-03-26 | 网易(杭州)网络有限公司 | 数据传输方法、装置、介质及电子设备 |
CN109561356A (zh) * | 2018-11-08 | 2019-04-02 | 北京达佳互联信息技术有限公司 | 数据发送方法、数据发送装置、电子设备和计算机可读存储介质 |
WO2019080656A1 (zh) * | 2017-10-27 | 2019-05-02 | 维沃移动通信有限公司 | 丢包率计算方法、网络设备及终端 |
CN110505123A (zh) * | 2019-09-04 | 2019-11-26 | 深圳前海达闼云端智能科技有限公司 | 丢包率的计算方法、服务器及计算机可读存储介质 |
CN110677200A (zh) * | 2019-09-17 | 2020-01-10 | 深圳市智慧海洋科技有限公司 | 数据传输方法和装置 |
CN110677355A (zh) * | 2019-10-08 | 2020-01-10 | 香港乐蜜有限公司 | 一种丢包应对方法、装置、电子设备及存储介质 |
CN111385060A (zh) * | 2018-12-28 | 2020-07-07 | 广州市百果园信息技术有限公司 | 一种数据传输方法、装置、设备和存储介质 |
CN111934951A (zh) * | 2020-07-30 | 2020-11-13 | 杭州迪普科技股份有限公司 | 网络丢包检测方法及装置 |
CN112821992A (zh) * | 2021-01-08 | 2021-05-18 | 百果园技术(新加坡)有限公司 | 数据传输方法、装置、电子设备和存储介质 |
CN113206768A (zh) * | 2021-03-31 | 2021-08-03 | 新华三信息安全技术有限公司 | 一种网络性能测试方法及装置 |
CN113763974A (zh) * | 2021-08-31 | 2021-12-07 | 易兆微电子(杭州)股份有限公司 | 一种丢包补偿方法、装置、电子设备及存储介质 |
EP3925167A1 (en) * | 2019-02-13 | 2021-12-22 | Telefonaktiebolaget Lm Ericsson (Publ) | Systems and methods to reduce consecutive packet loss for delay critical traffic |
CN114095398A (zh) * | 2021-10-22 | 2022-02-25 | 深信服科技股份有限公司 | 探测时延的确定方法、装置、电子设备及存储介质 |
-
2022
- 2022-03-09 CN CN202210226649.XA patent/CN114615164B/zh active Active
Patent Citations (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080181125A1 (en) * | 2007-01-31 | 2008-07-31 | Fujitsu Limited | Bandwidth measuring method and device |
US7821937B1 (en) * | 2007-06-29 | 2010-10-26 | Symantec Corporation | Network protocol with damage loss resilient congestion control algorithm |
CN101686100A (zh) * | 2008-09-25 | 2010-03-31 | 华为技术有限公司 | 处理丢包的方法、传输质量控制方法、装置及系统 |
CN102739527A (zh) * | 2012-06-14 | 2012-10-17 | 北京邮电大学 | 网络丢包率探测方法 |
WO2016115916A1 (zh) * | 2015-01-23 | 2016-07-28 | 中兴通讯股份有限公司 | 数据包的重传方法及装置 |
US20170163509A1 (en) * | 2015-12-07 | 2017-06-08 | Le Holdings (Beijing) Co., Ltd. | Inter-node distance metric method and system |
WO2017181586A1 (zh) * | 2016-04-19 | 2017-10-26 | 乐视控股(北京)有限公司 | 节点间距离的度量方法及电子设备 |
CN107241166A (zh) * | 2017-06-12 | 2017-10-10 | 京信通信系统(中国)有限公司 | 一种长期演进上的语音Volte数据保障方法和设备 |
CN107493192A (zh) * | 2017-08-08 | 2017-12-19 | 深圳市网心科技有限公司 | 用于视频cdn业务传输的基础网络质量评估方法和装置 |
CN107566222A (zh) * | 2017-10-18 | 2018-01-09 | 中国联合网络通信集团有限公司 | 一种计算丢包率的方法及装置 |
WO2019080656A1 (zh) * | 2017-10-27 | 2019-05-02 | 维沃移动通信有限公司 | 丢包率计算方法、网络设备及终端 |
CN109412753A (zh) * | 2018-10-25 | 2019-03-01 | 网易(杭州)网络有限公司 | 数据传输方法及装置、电子设备以及存储介质 |
CN109561356A (zh) * | 2018-11-08 | 2019-04-02 | 北京达佳互联信息技术有限公司 | 数据发送方法、数据发送装置、电子设备和计算机可读存储介质 |
CN109525458A (zh) * | 2018-11-20 | 2019-03-26 | 网易(杭州)网络有限公司 | 数据传输方法、装置、介质及电子设备 |
CN111385060A (zh) * | 2018-12-28 | 2020-07-07 | 广州市百果园信息技术有限公司 | 一种数据传输方法、装置、设备和存储介质 |
EP3925167A1 (en) * | 2019-02-13 | 2021-12-22 | Telefonaktiebolaget Lm Ericsson (Publ) | Systems and methods to reduce consecutive packet loss for delay critical traffic |
CN110505123A (zh) * | 2019-09-04 | 2019-11-26 | 深圳前海达闼云端智能科技有限公司 | 丢包率的计算方法、服务器及计算机可读存储介质 |
CN110677200A (zh) * | 2019-09-17 | 2020-01-10 | 深圳市智慧海洋科技有限公司 | 数据传输方法和装置 |
CN110677355A (zh) * | 2019-10-08 | 2020-01-10 | 香港乐蜜有限公司 | 一种丢包应对方法、装置、电子设备及存储介质 |
CN111934951A (zh) * | 2020-07-30 | 2020-11-13 | 杭州迪普科技股份有限公司 | 网络丢包检测方法及装置 |
CN112821992A (zh) * | 2021-01-08 | 2021-05-18 | 百果园技术(新加坡)有限公司 | 数据传输方法、装置、电子设备和存储介质 |
CN113206768A (zh) * | 2021-03-31 | 2021-08-03 | 新华三信息安全技术有限公司 | 一种网络性能测试方法及装置 |
CN113763974A (zh) * | 2021-08-31 | 2021-12-07 | 易兆微电子(杭州)股份有限公司 | 一种丢包补偿方法、装置、电子设备及存储介质 |
CN114095398A (zh) * | 2021-10-22 | 2022-02-25 | 深信服科技股份有限公司 | 探测时延的确定方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114615164B (zh) | 2023-12-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20190089613A1 (en) | Method and apparatus for continuous access network monitoring and packet loss estimation | |
EP3468132A1 (en) | Method and device for transmitting speech data | |
US7747729B2 (en) | Determining client latencies over a network | |
US8817632B2 (en) | Method of measuring packet loss rate, packet loss rate measuring device and storage medium | |
CN102668619A (zh) | 动态移动应用服务质量监控和报告 | |
US20090031022A1 (en) | Multi-Hierarchy Latency Measurement in Data Centers | |
CN111327471B (zh) | 网络质量分析方法、装置、计算机设备及存储介质 | |
US7386613B2 (en) | System and method for measuring middleware response time | |
Alkenani et al. | Enhance work for java based network analyzer tool used to analyze network simulator files | |
CN114615164A (zh) | 丢包率探测方法及装置、存储介质、电子设备 | |
JP5152110B2 (ja) | パケット解析方法、プログラム及び装置 | |
EP1330889A2 (en) | Server and network performance monitoring | |
CN109582901A (zh) | 一种控制方法、终端、服务器及存储介质 | |
JP5958355B2 (ja) | 分析装置、分析方法及び分析プログラム | |
Bujlow et al. | A method for assessing quality of service in broadband networks | |
CN108696450A (zh) | 一种网络tcp流量处理方法及其装置 | |
Cleary et al. | High precision traffic measurement | |
CN111130923B (zh) | 网络带宽确定方法、装置、电子设备及存储介质 | |
CN109121073B (zh) | 移动通信业务质量监控方法、装置和设备 | |
Kawasaki et al. | Failure Prediction in Cloud Native 5G Core With eBPF-based Observability | |
US20150012792A1 (en) | Method and apparatus for providing a transmission control protocol minimum retransmission timer | |
US20060023673A1 (en) | System and method for dynamically determining retransmit buffer time | |
Gong et al. | Inspector Gadget: A Framework for Inferring TCP Congestion Control Algorithms and Protocol Configurations. | |
Huang et al. | A generalizable methodology for quantifying user satisfaction | |
JP6459645B2 (ja) | スループット計測プログラム、スループット計測方法及びスループット計測装置 |
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 |