CN105721252A - 数据包乱序度的测量方法和*** - Google Patents

数据包乱序度的测量方法和*** Download PDF

Info

Publication number
CN105721252A
CN105721252A CN201610177635.8A CN201610177635A CN105721252A CN 105721252 A CN105721252 A CN 105721252A CN 201610177635 A CN201610177635 A CN 201610177635A CN 105721252 A CN105721252 A CN 105721252A
Authority
CN
China
Prior art keywords
packet
order degree
vector
sequence number
degree
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
Application number
CN201610177635.8A
Other languages
English (en)
Other versions
CN105721252B (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 CN201610177635.8A priority Critical patent/CN105721252B/zh
Publication of CN105721252A publication Critical patent/CN105721252A/zh
Application granted granted Critical
Publication of CN105721252B publication Critical patent/CN105721252B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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)
  • Environmental & Geological Engineering (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明涉及一种数据包乱序度的测量方法和***。所述方法包括以下步骤:获取各数据包的接收次序号及对应的序号;按照所述数据包的接收次序号将所述各数据包的序号组成实际向量;按照所述数据包的接收次序号获取第一个数据包的序号,根据第一个数据包的序号及所述数据包的接收次序号估测其他数据包的序号,再按照所述数据包的接收次序号将估测得到的各数据包的序号组成预期向量;将所述预期向量减去所述实际向量得到结果向量,所述结果向量中元素值小于或等于0所对应的数据包的乱序度为0,元素值大于0所对应的数据包的乱序度为所述元素值。上述数据包乱序度的测量方法和***,实现了数据包乱序度的测量,测量方法简单,计算量小。

Description

数据包乱序度的测量方法和***
技术领域
本发明涉及网络应用领域,特别是涉及一种数据包乱序度的测量方法和***。
背景技术
随着网络技术和计算机技术的发展,越来越多的用户使用网络从事社交活动,在社交活动中用户之间经常需要根据需求传输数据。在基于UDP(UserDatagramProtocol,用户数据报协议)网络通信***中,UDP数据包具有乱序特性,其乱序度会随网络抖动而抖动,在网络好的情况下乱序度浅,网络差的情况下乱序度深。其中,乱序度是指用户数据报协议中传输的数据包的乱序程度。由此,可根据乱序度衡量网络状况,再根据网络状况进行处理。由于乱序的随机性,一般无法衡量数据包的乱序度。
发明内容
基于此,有必要针对传统方法中无法衡量数据包的乱序度的问题,提供一种数据包乱序度的测量方法,实现对数据包的乱序度的衡量。
此外,还有必要提供一种数据包乱序度的测量***,实现对数据包的乱序度的衡量。
一种数据包乱序度的测量方法,包括以下步骤:
获取各数据包的接收次序号及对应的序号;
按照所述数据包的接收次序号将所述各数据包的序号组成实际向量;
按照所述数据包的接收次序号获取第一个数据包的序号,根据第一个数据包的序号及所述数据包的接收次序号估测其他数据包的序号,再按照所述数据包的接收次序号将估测得到的各数据包的序号组成预期向量;
将所述预期向量减去所述实际向量得到结果向量,所述结果向量中元素值小于或等于0所对应的数据包的乱序度为0,元素值大于0所对应的数据包的乱序度为所述元素值。
一种数据包乱序度的测量***,其特征在于,包括:
获取模块,用于获取各数据包的接收次序号及对应的序号;
实际向量形成模块,用于按照所述数据包的接收次序号将所述各数据包的序号组成实际向量;
预期向量形成模块,用于按照所述数据包的接收次序号获取第一个数据包的序号,根据第一个数据包的序号及所述数据包的接收次序号估测其他数据包的序号,再按照所述数据包的接收次序号将估测得到的各数据包的序号组成预期向量;
乱序度求取模块,用于将所述预期向量减去所述实际向量得到结果向量,所述结果向量中元素值小于或等于0所对应的数据包的乱序度为0,元素值大于0所对应的数据包的乱序度为所述元素值。
上述数据包乱序度的测量方法和***,获取到各数据包的接收次序号及对应的序号,将数据包的序号按照接收次序号形成实际向量,以及获取到第一数据包的序号后估测得到其他数据包的序号,根据估测的数据包的序号形成预期向量,将预期向量减去实际向量得到结果向量,结果向量中元素小于或等于0所对应的数据包的乱序度为0,大于0的元素所对应的数据包的乱序度为元素值,从而测量得到数据包的乱序度,测量方法简单,计算量小。
附图说明
图1为一个实施例中数据包乱序度的测量方法的应用环境示意图;
图2为一个实施例中终端的内部结构示意图;
图3为一个实施例中数据包乱序度的测量方法的流程图;
图4为UDP数据包的乱序度的测量算法示意图;
图5为一个实施例中数据表乱序度的测量方法的具体应用场景示意图;
图6为另一个实施例中数据包乱序度的测量***的结构框图;
图7为另一个实施例中数据包乱序度的测量***的结构框图;
图8为另一个实施例中数据包乱序度的测量***的结构框图;
图9为另一个实施例中数据包乱序度的测量***的结构框图;
图10为另一个实施例中数据包乱序度的测量***的结构框图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
图1为一个实施例中数据包乱序度的测量方法的应用环境示意图。如图1所示,该应用环境中包括发送端110和接收端120。发送端110与接收端120通过网络进行数据传输。发送端110和接收端120均为终端。发送端110向接收端120发送数据包。接收端120接收到数据包后,获取数据包的接收次序号及对应的序号,按照数据包的接收次序号将各数据包的序号组成实际向量,以及按照该数据包的接收次序号获取第一个数据包的序号,根据第一个数据包的序号及该数据包的接收次序号估测其他数据包的序号,再按照该数据包的接收次序号将估测得到的各数据包的序号组成预期向量,再将该预期向量减去实际向量得到结果向量,该结果向量中元素值小于或等于0所对应的数据包的乱序度为0,元素值大于0所对应的数据包的乱序度为该元素值。
在其他应用环境中,可包括终端和服务器,服务器向终端发送数据包,终端接收数据包,测量数据包的乱序度。
终端可为固定终端和移动终端。固定终端可为台式计算机等。移动终端可为手机、平板电脑或者个人数字助理等。
图2为一个实施例中终端的内部结构示意图。如图2所示,该终端包括通过***总线连接的处理器、非易失性存储介质、内存和网络接口。其中,终端的非易失性存储介质存储有操作***。该处理器被配置为用于执行数据包乱序度的测量方法。网络接口用于与服务器或其他终端进行网络通信等。该终端可以是手机、平板电脑或者个人数字助理。本领域技术人员可以理解,图2中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的终端的限定,具体的终端可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
图3为一个实施例中数据包乱序度的测量方法的流程图。如图3所示,一种数据包乱序度的测量方法,包括以下步骤:
步骤302,获取各数据包的接收次序号及对应的序号。
本实施例中,数据包的接收次序号是指接收端接收到数据包的顺序编号,如1、2、3等。数据包的序号是指在发送端按照顺序将数据打包后形成数据包,该数据包被分配的序号。
接收的数据包的接收次序号为pack1、pack2、pack3、……、pack(n-2)、pack(n-1)、packn、……,对应的每个数据包pack上的seqno(Sequencenumber,序号)为seqno=x、seqno=y、seqno=z、……、seqno=o、seqno=p、seqno=q、……。
步骤304,按照该数据包的接收次序号将该各数据包的序号组成实际向量。
本实施例中,按照接收次序号将各数据包的序号组成实际向量,实际向量={x,y,z,……,o,p,q,……}。根据UDP(UserDatagramProtocol,用户数据报协议)的乱序特性,该实际向量的每个元素的值是随机的,100%反映出原始的乱序情况。其中,x、y、z、……、o、p、q分别为实际向量中的一个元素。
步骤306,按照该数据包的接收次序号获取第一个数据包的序号,根据第一个数据包的序号及该数据包的接收次序号估测其他数据包的序号,再按照该数据包的接收次序号将估测得到的各数据包的序号组成预期向量。
本实施例中,获取第一个数据包的序号,也就是接收次序号为1的数据包的序号,如第一个数据包的序号为x,在理想的无乱序的情况下,预期的第二个数据包的seqno的值为x+1,第三个数据包的seqno的值为x+2,依次类推,可得到各个数据包的seqno的值。
按照数据包的接收次序号将估测得到的各数据包的序号组成预期向量,则预期向量={x,x+1,x+2,……,x+(n-2),x+(n-1),x+n,……}。其中,x、x+1、x+2、……、x+(n-2)、x+(n-1)、x+n分别为预期向量中的一个元素。
步骤308,将该预期向量减去该实际向量得到结果向量,该结果向量中元素值小于或等于0所对应的数据包的乱序度为0,元素值大于0所对应的数据包的乱序度为该元素值。
本实施例中,将预期向量减去实际向量得到结果向量,则结果向量={x-x,x+1-y,x+2-z,……,x+(n-2)-o,x+(n-1)-p,x+n-q,……}。
其中,x-x、x+1-y、x+2-z、……,x+(n-2)-o、x+(n-1)-p、x+n-q分别为结果向量中的一个元素。结果向量中的每个元素的值会产生3种情况:小于0、等于0和大于0。对于结果向量中元素小于0或等于0的情况,认为其和发送端的时间顺序一致,没有产生乱序,则乱序度为0;对于大于0的情况,认为其产生了乱序,其对应的乱序度为本元素值。
图4为UDP数据包的乱序度的测量算法示意图。如图4所示,UDP数据包的接收次序号为pack1、pack2、pack3、……、pack(n-2)、pack(n-1)、packn、……,对应的每个数据包pack上的seqno为seqno=x、seqno=y、seqno=z、……、seqno=o、seqno=p、seqno=q、……。数据包的预期向量为{x,x+1,x+2,……,x+(n-2),x+(n-1),x+n,……},实际向量为{x,y,z,……,o,p,q,……}。将预期向量减去实际向量得到的结果向量为{x-x,x+1-y,x+2-z,……,x+(n-2)-o,x+(n-1)-p,x+n-q,……}。
上述数据包乱序度的测量方法,获取到各数据包的接收次序号及对应的序号,将数据包的序号按照接收次序号形成实际向量,以及获取到第一数据包的序号后估测得到其他数据包的序号,根据估测的数据包的序号形成预期向量,将预期向量减去实际向量得到结果向量,结果向量中元素小于或等于0所对应的数据包的乱序度为0,大于0的元素所对应的数据包的乱序度为元素值,从而测量得到数据包的乱序度,测量方法简单,计算量小。
在一个实施例中,该数据包乱序度的测量方法还包括:在将该预期向量减去该实际向量得到结果向量,该结果向量中元素值小于或等于0所对应的数据包的乱序度为0,元素值大于0所对应的数据包的乱序度为该元素值的步骤之后,统计预设时间内或预定数量的数据包中各乱序度出现的次数。
本实施例中,预设时间可根据需要设定,如3分钟、5分钟等,不限于此。预定数量的数据包可为10000个或20000个等,不限于此。统计每个乱序度出现的次数,例如统计3分钟内乱序度为0的出现次数为1000次,乱序度为1出现次数为500次,……,乱序度666出现次数为1次等。乱序度越小出现的次数越高,则说明网络状况越好,乱序度越大出现的次数越高,说明网络状态越差。
或者,统计10000个数据包的乱序度中乱序度为0的出现次数为1000次,乱序度为1出现次数为500次,……,乱序度为100出现次数为1次等。
通过统计乱序度出现次数便于后续根据乱序度进行分析网络状况。
在一个实施例中,在统计预设时间内或预定数量的数据包中各乱序度出现的次数之后,该数据包乱序度的测量方法还包括:计算大于或等于第一乱序度阈值的乱序度的出现次数之和,得到第一次数值;判断该第一次数值是否位于第一次数阈值范围内,若第一次数值位于第一次数阈值范围内,则认为网络发生了抖动。
本实施例中,第一乱序度阈值可根据需要设置,例如可为30、40等,不限于此。将乱序度与第一乱序度阈值进行比较,得出大于或等于第一乱序度阈值的乱序度,然后统计这些大于或等于第一乱序度阈值的乱序度的出现次数之和,得到第一次数值,判断第一次数值是否位于第一次数阈值范围内,若第一次数值不在第一次数阈值范围内,则认为网络发生了抖动,若第一次数值在第一次数阈值范围内,则认为网络未发生抖动。
具体地,第一次数阈值范围包括第一次阈值范围的上限值和下限值,其中,上限值大于下限值,例如第一次数阈值的上限值为1000,下限值为500。第一次数值大于第一次数阈值范围的上限值,则认为网络由好转为坏。第一次数值小于第一次数阈值范围的下限值,则认为网络由坏转为好。
预设时间和次数阈值可根据灵敏度设置。灵敏度越高,则预设时间和次数阈值范围越小;灵敏度越低,则预设时间和第一次次数阈值范围越大。
通过统计乱序度出现次数,根据出现次数与次数阈值比较,较准确的判断出网络是否发生抖动。
在一个实施例中,在统计预设时间内或预定数量的数据包中各乱序度出现的次数之后,该数据包乱序度的测量方法还包括:计算小于第二乱序度阈值的乱序度的出现次数之和,得到第二次数值;判断该第二次数值是否位于第二次数阈值范围内,若第二次数值不在第二次数阈值范围内,则认为网络发生了抖动。
本实施例中,第二乱序度阈值可根据需要设置,例如可为0、10等,不限于此。第二乱序度阈值小于第一乱序度阈值。将乱序度与第二乱序度阈值进行比较,得出小于或等于第二乱序度阈值的乱序度,然后统计这些小于或等于第二乱序度阈值的乱序度的出现次数之和,得到第二次数值,判断第二次数值是否位于第二次数阈值范围内,若第二次数值不在第二次数阈值范围内,则认为网络发生了抖动,若第二次数值在第二次数阈值范围内,则认为网络未发生抖动。
具体地,第二次数阈值范围包括第二次阈值范围的上限值和下限值,其中,上限值大于下限值,例如第二次数阈值的上限值为1100,下限值为400。第二次数值大于第二次数阈值范围的上限值,则认为网络由坏转为好。第二次数值小于第二次数阈值范围的下限值,则认为网络由好转为坏。
在一个实施例中,在将该预期向量减去该实际向量得到结果向量,该结果向量中元素值小于或等于0所对应的数据包的乱序度为0,元素值大于0所对应的数据包的乱序度为该元素值的步骤之后,该数据包乱序度的测量方法还包括:获取预设时间内或预定数量的数据包中各乱序度之和;判断该各乱序度之和是否位于阈值范围内,若各乱序度之和不在阈值范围内,则认为网络发生了抖动。
本实施例中,预设时间可根据需要设定,如3分钟、5分钟等,不限于此。预定数量的数据包可为10000个或20000个等,不限于此。阈值范围可根据灵敏度设置。灵敏度越高,则阈值范围越小,灵敏度越低,则阈值范围越大。
阈值范围包括阈值范围的上限值和阈值范围下限值,上限值大于下限值。
各乱序度之和大于阈值范围的上限值,则认为网络由好转为坏,各乱序度之和小于阈值范围的下限值,则认为网络由坏转好。
通过计算预设时间或预定数量的数据包的乱序度之和,判断该乱序度之和是否大于阈值,若大于阈值,则认为网络发生了抖动,计算方式简单。
在一个实施例中,在认为网络发生了抖动之后,该数据包乱序度的测量方法还包括:给用户发送提示信息。该提示信息的方式可采用弹窗形式、toast形式、动态图示等任何可以提示的方式。toast是Android中的简易的消息提示框,其中包含用户点击消息。动态图示是指以动态图展示方式展示提示信息。
在一个实施例中,在认为网络发生了抖动之后,该数据包乱序度的测量方法还包括:动态调整发包速率和/或音视频编解码参数。
本实施例中,在网络发生抖动后,可修改应用策略,该应用策略可包括动态调整发包速率、动态调整音视频编解码参数等。音视频编解码参数可包括音频采样率、音频通道数、视频帧率、视频分辨率、音视频码率等。
网络由好转为坏时,则降低发包速率。网络由坏转为好时,则提高发包速率。网络由好转为坏时,降低音频采样率、音频通道数、视频帧率、视频分辨率、音视频码率等;网络由坏转为好时,提高音频采样率、音频通道数、视频帧率、视频分辨率、音视频码率等。乱序度越大,发包速率调低,乱序度越小,发包速率调高。
下面结合具体的应用场景描述数据包乱序度的测量方法的实现过程。以发送端向接收端基于用户数据报协议传输数据包为例。如图5所示,接收端接收到的数据包的接收次序号为1、2、3、……、1000,对应的序号为1、10、9、……、998、999、30。将数据包的序号形成实际向量,则实际向量为{1、10、9、……、30}。第一个数据包的序号为1,则理想的情况下,第二个数据包的序号为2,依次类推,第1000个数据包的序号为1000,将估算的数据包的序号形成预期向量,则预期向量为{1、2、3、……、998、999、1000},将预期向量减去实际向量得到结果向量为{1-1、10-2、9-3、……、998-990、999-999、1000-30},结果向量中小于0或等于0的元素所对应的乱序度为0,大于0的元素所对应的乱序度为元素值。如结果向量中0对应的乱序度为0,10-2=8对应的乱序度为8。统计乱序度为0出现的次数为400,乱序度为1出现的次数为300,乱序度为2出现的次数为100,乱序度为8出现的次数为50,乱序度为970出现的次数为10等。
此外,上述数据包乱序度的测量方法不限于应用于用户数据报协议的数据包传输,也可应用于其他数据协议的数据包传输中。
图6为一个实施例中数据包乱序度的测量***的结构框图。如图6所示,一种数据包乱序度的测量***,包括获取模块602、实际向量形成模块604、预期向量形成模块606和乱序度求取模块608。其中:
获取模块602用于获取各数据包的接收次序号及对应的序号。
本实施例中,数据包的接收次序号是指接收端接收到数据包的顺序编号,如1、2、3等。数据包的序号是指在发送端按照顺序将数据打包后形成数据包,该数据包被分配的序号。
接收的数据包的接收次序号为pack1、pack2、pack3、……、pack(n-2)、pack(n-1)、packn、……,对应的每个数据包pack上的seqno(Sequencenumber,序号)为seqno=x、seqno=y、seqno=z、……、seqno=o、seqno=p、seqno=q、……。
实际向量形成模块604用于按照该数据包的接收次序号将该各数据包的序号组成实际向量。
本实施例中,获取第一个数据包的序号,也就是接收次序号为1的数据包的序号,如第一个数据包的序号为x,在理想的无乱序的情况下,预期的第二个数据包的seqno的值为x+1,第三个数据包的seqno的值为x+2,依次类推,可得到各个数据包的seqno的值。
预期向量形成模块606用于按照该数据包的接收次序号获取第一个数据包的序号,根据第一个数据包的序号及该数据包的接收次序号估测其他数据包的序号,再按照该数据包的接收次序号将估测得到的各数据包的序号组成预期向量。
本实施例中,获取第一个数据包的序号,也就是接收次序号为1的数据包的序号,如第一个数据包的序号为x,在理想的无乱序的情况下,预期的第二个数据包的seqno的值为x+1,第三个数据包的seqno的值为x+2,依次类推,可得到各个数据包的seqno的值。
按照数据包的接收次序号将估测得到的各数据包的序号组成预期向量,则预期向量={x,x+1,x+2,……,x+(n-2),x+(n-1),x+n,……}。其中,x、x+1、x+2、……、x+(n-2)、x+(n-1)、x+n分别为预期向量中的一个元素。
乱序度求取模块608用于将该预期向量减去该实际向量得到结果向量,该结果向量中元素值小于或等于0所对应的数据包的乱序度为0,元素值大于0所对应的数据包的乱序度为该元素值。
本实施例中,将预期向量减去实际向量得到结果向量,则结果向量={x-x,x+1-y,x+2-z,……,x+(n-2)-o,x+(n-1)-p,x+n-q,……}。
其中,x-x、x+1-y、x+2-z、……,x+(n-2)-o、x+(n-1)-p、x+n-q分别为结果向量中的一个元素。结果向量中的每个元素的值会产生3种情况:小于0、等于0和大于0。对于结果向量中元素小于0或等于0的情况,认为其和发送端的时间顺序一致,没有产生乱序,则乱序度为0;对于大于0的情况,认为其产生了乱序,其对应的乱序度为本元素值。
上述数据包乱序度的测量***,获取到各数据包的接收次序号及对应的序号,将数据包的序号按照接收次序号形成实际向量,以及获取到第一数据包的序号后估测得到其他数据包的序号,根据估测的数据包的序号形成预期向量,将预期向量减去实际向量得到结果向量,结果向量中元素小于或等于0所对应的数据包的乱序度为0,大于0的元素所对应的数据包的乱序度为元素值,从而测量得到数据包的乱序度,测量方法简单,计算量小。
图7为另一个实施例中数据包乱序度的测量***的结构框图。如图7所示,一种数据包乱序度的测量***,除了包括获取模块602、实际向量形成模块604、预期向量形成模块606和乱序度求取模块608,还包括统计模块610。
统计模块610用于在将该预期向量减去该实际向量得到结果向量,该结果向量中元素值小于或等于0所对应的数据包的乱序度为0,元素值大于0所对应的数据包的乱序度为该元素值之后,统计预设时间内或预定数量的数据包中各乱序度出现的次数。
本实施例中,预设时间可根据需要设定,如3分钟、5分钟等,不限于此。预定数量的数据包可为10000个或20000个等,不限于此。统计每个乱序度出现的次数,例如统计3分钟内乱序度为0的出现次数为1000次,乱序度为1出现次数为500次,……,乱序度666出现次数为1次等。乱序度越小出现的次数越高,则说明网络状况越好,乱序度越大出现的次数越高,说明网络状态越差。
或者,统计10000个数据包的乱序度中乱序度为0的出现次数为1000次,乱序度为1出现次数为500次,……,乱序度为100出现次数为1次等。
通过统计乱序度出现次数便于后续根据乱序度进行分析网络状况。
图8为另一个实施例中数据包乱序度的测量***的结构框图。如图8所示,一种数据包乱序度的测量***,除了包括获取模块602、实际向量形成模块604、预期向量形成模块606、乱序度求取模块608、统计模块610,还包括计算模块612和判断模块614。
计算模块612用于在统计预设时间内或预定数量的数据包中各乱序度出现的次数之后,计算大于或等于第一乱序度阈值的乱序度的出现次数之和,得到第一次数值。
判断模块614用于判断所述第一次数值是否位于第一次数阈值范围内,若第一次数值不在第一次数阈值范围内,则认为网络发生了抖动。
本实施例中,第一乱序度阈值可根据需要设置,例如可为30、40等,不限于此。将乱序度与第一乱序度阈值进行比较,得出大于或等于第一乱序度阈值的乱序度,然后统计这些大于或等于第一乱序度阈值的乱序度的出现次数之和,得到第一次数值,判断第一次数值是否位于第一次数阈值范围内,若第一次数值不在第一次数阈值范围内,则认为网络发生了抖动,若第一次数值在第一次数阈值范围内,则认为网络未发生抖动。
具体地,第一次数阈值范围包括第一次阈值范围的上限值和下限值,其中,上限值大于下限值,例如第一次数阈值的上限值为1000,下限值为500。第一次数值大于第一次数阈值范围的上限值,则认为网络由好转为坏。第一次数值小于第一次数阈值范围的下限值,则认为网络由坏转为好。
预设时间和次数阈值可根据灵敏度设置。灵敏度越高,则预设时间和次数阈值范围越小;灵敏度越低,则预设时间和第一次次数阈值范围越大。
通过统计乱序度出现次数,根据出现次数与次数阈值比较,较准确的判断出网络是否发生抖动。
和/或,计算模块612用于计算小于第二乱序度阈值的乱序度的出现次数之和,得到第二次数值;
判断模块614用于判断所述第二次数值是否位于第二次数阈值范围内,若第二次数值不在第二次数阈值范围内,则认为网络发生了抖动。
本实施例中,第二乱序度阈值可根据需要设置,例如可为0、10等,不限于此。第二乱序度阈值小于第一乱序度阈值。将乱序度与第二乱序度阈值进行比较,得出小于或等于第二乱序度阈值的乱序度,然后统计这些小于或等于第二乱序度阈值的乱序度的出现次数之和,得到第二次数值,判断第二次数值是否位于第二次数阈值范围内,若第二次数值不在第二次数阈值范围内,则认为网络发生了抖动,若第二次数值在第二次数阈值范围内,则认为网络未发生抖动。
具体地,第二次数阈值范围包括第二次阈值范围的上限值和下限值,其中,上限值大于下限值,例如第二次数阈值的上限值为1100,下限值为400。第二次数值大于第二次数阈值范围的上限值,则认为网络由坏转为好。第二次数值小于第二次数阈值范围的下限值,则认为网络由好转为坏。
图9为另一个实施例中数据包乱序度的测量***的结构框图。如图9所示,一种数据包乱序度的测量***,除了包括获取模块602、实际向量形成模块604、预期向量形成模块606、乱序度求取模块608、统计模块610,还包括乱序度和求取模块616和比较模块618。
乱序度和求取模块616用于在将该预期向量减去该实际向量得到结果向量,该结果向量中元素值小于或等于0所对应的数据包的乱序度为0,元素值大于0所对应的数据包的乱序度为该元素值的步骤之后,获取预设时间内或预定数量的数据包中各乱序度之和。
比较模块618用于判断所述各乱序度之和是否位于阈值范围内,若各乱序度之和不在阈值范围内,则认为网络发生了抖动。
本实施例中,预设时间可根据需要设定,如3分钟、5分钟等,不限于此。预定数量的数据包可为10000个或20000个等,不限于此。阈值范围可根据灵敏度设置。灵敏度越高,则阈值范围越小,灵敏度越低,则阈值范围越大。
阈值范围包括阈值范围的上限值和阈值范围下限值,上限值大于下限值。
各乱序度之和大于阈值范围的上限值,则认为网络由好转为坏,各乱序度之和小于阈值范围的下限值,则认为网络由坏转好。
通过计算预设时间或预定数量的数据包的乱序度之和,判断该乱序度之和是否大于阈值,若大于阈值,则认为网络发生了抖动,计算方式简单。
图10为另一个实施例中数据包乱序度的测量***的结构框图。如图10所示,一种数据包乱序度的测量***,除了包括获取模块602、实际向量形成模块604、预期向量形成模块606、乱序度求取模块608、统计模块610、乱序度和求取模块616和比较模块618,还包括提示模块620和调整模块622。
提示模块620给用户发送提示信息。该提示信息的方式可采用弹窗形式、toast形式、动态图示等任何可以提示的方式。toast是Android中的简易的消息提示框,其中包含用户点击消息。动态图示是指以动态图展示方式展示提示信息。
调整模块622用于在认为网络发生了抖动之后,动态调整发包速率和/或音视频编解码参数。
本实施例中,在网络发生抖动后,可修改应用策略,该应用策略可包括动态调整发包速率、动态调整音视频编解码参数等。音视频编解码参数可包括音频采样率、音频通道数、视频帧率、视频分辨率、音视频码率等。
网络由好转为坏时,则降低发包速率。网络由坏转为好时,则提高发包速率。网络由好转为坏时,降低音频采样率、音频通道数、视频帧率、视频分辨率、音视频码率等;网络由坏转为好时,提高音频采样率、音频通道数、视频帧率、视频分辨率、音视频码率等。乱序度越大,发包速率调低,乱序度越小,发包速率调高。
在其他实施例中,数据包乱序度的测量***还可包括获取模块602、实际向量形成模块604、预期向量形成模块606、乱序度求取模块608、统计模块610、计算模块612、判断模块614、乱序度和求取模块616和比较模块618、提示模块620和调整模块622中所有可能的组合。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-OnlyMemory,ROM)等。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种数据包乱序度的测量方法,包括以下步骤:
获取各数据包的接收次序号及对应的序号;
按照所述数据包的接收次序号将所述各数据包的序号组成实际向量;
按照所述数据包的接收次序号获取第一个数据包的序号,根据第一个数据包的序号及所述数据包的接收次序号估测其他数据包的序号,再按照所述数据包的接收次序号将估测得到的各数据包的序号组成预期向量;
将所述预期向量减去所述实际向量得到结果向量,所述结果向量中元素值小于或等于0所对应的数据包的乱序度为0,元素值大于0所对应的数据包的乱序度为所述元素值。
2.根据权利要求1所述的方法,其特征在于,在将所述预期向量减去所述实际向量得到结果向量,所述结果向量中元素值小于或等于0所对应的数据包的乱序度为0,元素值大于0所对应的数据包的乱序度为所述元素值的步骤之后,所述方法还包括:
统计预设时间内或预定数量的数据包中各乱序度出现的次数。
3.根据权利要求2所述的方法,其特征在于,在统计预设时间内或预定数量的数据包中各乱序度出现的次数之后,所述方法还包括:
计算大于或等于第一乱序度阈值的乱序度的出现次数之和,得到第一次数值;
判断所述第一次数值是否位于第一次数阈值范围内,若第一次数值不在第一次数阈值范围内,则认为网络发生了抖动;
和/或,计算小于第二乱序度阈值的乱序度的出现次数之和,得到第二次数值;
判断所述第二次数值是否位于第二次数阈值范围内,若第二次数值不在第二次数阈值范围内,则认为网络发生了抖动。
4.根据权利要求1所述的方法,其特征在于,在将所述预期向量减去所述实际向量得到结果向量,所述结果向量中元素值小于或等于0所对应的数据包的乱序度为0,元素值大于0所对应的数据包的乱序度为所述元素值的步骤之后,所述方法还包括:
获取预设时间内或预定数量的数据包中各乱序度之和;
判断所述各乱序度之和是否位于阈值范围内,若各乱序度之和不在阈值范围内,则认为网络发生了抖动。
5.根据权利要求3或4所述的方法,其特征在于,在认为网络发生了抖动之后,所述方法还包括:
动态调整发包速率和/或音视频编解码参数。
6.一种数据包乱序度的测量***,其特征在于,包括:
获取模块,用于获取各数据包的接收次序号及对应的序号;
实际向量形成模块,用于按照所述数据包的接收次序号将所述各数据包的序号组成实际向量;
预期向量形成模块,用于按照所述数据包的接收次序号获取第一个数据包的序号,根据第一个数据包的序号及所述数据包的接收次序号估测其他数据包的序号,再按照所述数据包的接收次序号将估测得到的各数据包的序号组成预期向量;
乱序度求取模块,用于将所述预期向量减去所述实际向量得到结果向量,所述结果向量中元素值小于或等于0所对应的数据包的乱序度为0,元素值大于0所对应的数据包的乱序度为所述元素值。
7.根据权利要求6所述的***,其特征在于,所述***还包括:
统计模块,用于在将所述预期向量减去所述实际向量得到结果向量,所述结果向量中元素值小于或等于0所对应的数据包的乱序度为0,元素值大于0所对应的数据包的乱序度为所述元素值之后,统计预设时间内或预定数量的数据包中各乱序度出现的次数。
8.根据权利要求7所述的***,其特征在于,所述***还包括:
计算模块,用于在统计预设时间内或预定数量的数据包中各乱序度出现的次数之后,计算大于或等于第一乱序度阈值的乱序度的出现次数之和,得到第一次数值;
判断模块,用于判断所述第一次数值是否位于第一次数阈值范围内,若第一次数值不在第一次数阈值范围内,则认为网络发生了抖动;
和/或,计算模块,用于计算小于第二乱序度阈值的乱序度的出现次数之和,得到第二次数值;
判断模块,用于判断所述第二次数值是否位于第二次数阈值范围内,若第二次数值不在第二次数阈值范围内,则认为网络发生了抖动。
9.根据权利要求6所述的***,其特征在于,所述***还包括:
乱序度和求取模块,用于在将所述预期向量减去所述实际向量得到结果向量,所述结果向量中元素值小于或等于0所对应的数据包的乱序度为0,元素值大于0所对应的数据包的乱序度为所述元素值的步骤之后,获取预设时间内或预定数量的数据包中各乱序度之和;
比较模块,用于判断所述各乱序度之和是否位于阈值范围内,若各乱序度之和不在阈值范围内,则认为网络发生了抖动。
10.根据权利要求8或9所述的***,其特征在于,所述***还包括:
调整模块,用于在认为网络发生了抖动之后,动态调整发包速率和/或音视频编解码参数。
CN201610177635.8A 2016-03-24 2016-03-24 数据包乱序度的测量方法和*** Active CN105721252B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610177635.8A CN105721252B (zh) 2016-03-24 2016-03-24 数据包乱序度的测量方法和***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610177635.8A CN105721252B (zh) 2016-03-24 2016-03-24 数据包乱序度的测量方法和***

Publications (2)

Publication Number Publication Date
CN105721252A true CN105721252A (zh) 2016-06-29
CN105721252B CN105721252B (zh) 2020-09-25

Family

ID=56158296

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610177635.8A Active CN105721252B (zh) 2016-03-24 2016-03-24 数据包乱序度的测量方法和***

Country Status (1)

Country Link
CN (1) CN105721252B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114760230A (zh) * 2020-12-29 2022-07-15 ***通信集团福建有限公司 端到端网络性能检测方法及***
CN115002005A (zh) * 2022-05-18 2022-09-02 百果园技术(新加坡)有限公司 一种丢包率计算方法、装置、设备及存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101123580A (zh) * 2007-09-11 2008-02-13 华为技术有限公司 包传输方法及基站设备
CN101162968A (zh) * 2006-12-08 2008-04-16 中兴通讯股份有限公司 前向通用路由封装包的乱序调整方法
CN101188477A (zh) * 2007-12-25 2008-05-28 华为技术有限公司 一种数据包序列接收的方法及设备
US7382733B2 (en) * 2004-02-12 2008-06-03 International Business Machines Corporation Method for handling reordered data packets
CN102014162A (zh) * 2010-11-30 2011-04-13 中国科学院软件研究所 一种分布式***运行时的监视数据传输方法
CN102045222A (zh) * 2011-01-30 2011-05-04 重庆思建科技有限公司 网络***实时整体测试的方法
CN104469538A (zh) * 2014-12-09 2015-03-25 西安理工大学 面向画面画质较小损失的rtp视频流数据包重组方法
WO2015162302A2 (en) * 2014-04-25 2015-10-29 Genethon Treatment of hyperbilirubinemia

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7382733B2 (en) * 2004-02-12 2008-06-03 International Business Machines Corporation Method for handling reordered data packets
CN101162968A (zh) * 2006-12-08 2008-04-16 中兴通讯股份有限公司 前向通用路由封装包的乱序调整方法
CN101123580A (zh) * 2007-09-11 2008-02-13 华为技术有限公司 包传输方法及基站设备
CN101188477A (zh) * 2007-12-25 2008-05-28 华为技术有限公司 一种数据包序列接收的方法及设备
CN102014162A (zh) * 2010-11-30 2011-04-13 中国科学院软件研究所 一种分布式***运行时的监视数据传输方法
CN102045222A (zh) * 2011-01-30 2011-05-04 重庆思建科技有限公司 网络***实时整体测试的方法
WO2015162302A2 (en) * 2014-04-25 2015-10-29 Genethon Treatment of hyperbilirubinemia
CN104469538A (zh) * 2014-12-09 2015-03-25 西安理工大学 面向画面画质较小损失的rtp视频流数据包重组方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114760230A (zh) * 2020-12-29 2022-07-15 ***通信集团福建有限公司 端到端网络性能检测方法及***
CN114760230B (zh) * 2020-12-29 2024-05-07 ***通信集团福建有限公司 端到端网络性能检测方法及***
CN115002005A (zh) * 2022-05-18 2022-09-02 百果园技术(新加坡)有限公司 一种丢包率计算方法、装置、设备及存储介质
CN115002005B (zh) * 2022-05-18 2023-12-12 百果园技术(新加坡)有限公司 一种丢包率计算方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN105721252B (zh) 2020-09-25

Similar Documents

Publication Publication Date Title
CN106033419B (zh) 一种消息实时推送方法、装置及***
CN105320921B (zh) 双眼定位方法及双眼定位装置
CN113535721B (zh) 一种数据写入方法及装置
CN109062715B (zh) 内存时钟频率的确定方法、装置及终端
CN115696356B (zh) 小区容量调整方法、装置、电子设备及存储介质
CN108600783A (zh) 一种帧率调节方法、装置及终端设备
CN105721252A (zh) 数据包乱序度的测量方法和***
CN109753262B (zh) 帧显示处理方法、装置、终端设备及存储介质
CN105208388A (zh) 视频通讯中动态调整编码帧率的方法和***
CN111475245B (zh) 动态图片显示方法、装置、电子设备及计算机存储介质
CN106354561B (zh) 移动终端运行内存的控制方法及移动终端
CN110809083B (zh) 一种移动终端信息提醒的方法、移动终端及存储介质
CN114611542A (zh) 信号降噪处理方法及通信装置
CN104112056A (zh) 数据处理的故障检测方法和***
CN115834303A (zh) 自适应频域信道估计方法、装置、通信设备和存储介质
CN114339252B (zh) 一种数据压缩方法及装置
KR101876245B1 (ko) 지능형전자장치 성능검증 장치, 지능형전자장치 성능검증 시스템 및 컴퓨터 판독가능 기록 매체
CN111770510B (zh) 网络体验状态确定方法、装置、存储介质及电子设备
WO2020119777A1 (zh) 无线信号的处理方法、装置、终端及存储介质
CN110443746B (zh) 基于生成对抗网络的图片处理方法、装置及电子设备
CN113360179A (zh) 基于Android***的相机API的适配方法、装置、设备及介质
CN115134855A (zh) 网络切片性能测量方法和装置
CN109995539B (zh) 一种ocs的流量授权方法、ocs、服务器及可读存储介质
CN106802856A (zh) 游戏应用程序的性能测试方法、服务器和游戏应用客户端
CN110738476A (zh) 一种样本迁移方法、装置及设备

Legal Events

Date Code Title Description
C06 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