数据包乱序度的测量方法和系统的制作方法_2

文档序号:9931161阅读:来源:国知局
-q,......}。
[0042]其中,x-x、x+l-y、x+2-z、......,x+(n-2)-o、x+(n_l )_p、x+n_q分别为结果向量中的一个元素。结果向量中的每个元素的值会产生3种情况:小于0、等于O和大于O。对于结果向量中元素小于O或等于O的情况,认为其和发送端的时间顺序一致,没有产生乱序,则乱序度为O;对于大于O的情况,认为其产生了乱序,其对应的乱序度为本元素值。
[0043]图4为UDP数据包的乱序度的测量算法示意图。如图4所示,UDP数据包的接收次序号为pack Kpack 2、pack 3、......、pack(n_2)、pack(n_l)、pack n、......,对应的每个数据包pack上的seqno为seqno = x、seqno = y、seqno = z、......、seqno = o、seqno = p、seqno =
q、......。数据包的预期向量为{x,x+l,x+2,......,x+(n-2),x+(n-l),x+n,......},实际向量为
{x,y,z,......,o,p,q,......}。将预期向量减去实际向量得到的结果向量为{x-x,x+l_y,x+2-
z,......,X+ (n~2)—ο,X+ (n—I)—p,x+n_q,......}。
[0044]上述数据包乱序度的测量方法,获取到各数据包的接收次序号及对应的序号,将数据包的序号按照接收次序号形成实际向量,以及获取到第一数据包的序号后估测得到其他数据包的序号,根据估测的数据包的序号形成预期向量,将预期向量减去实际向量得到结果向量,结果向量中元素小于或等于O所对应的数据包的乱序度为0,大于O的元素所对应的数据包的乱序度为元素值,从而测量得到数据包的乱序度,测量方法简单,计算量小。
[0045]在一个实施例中,该数据包乱序度的测量方法还包括:在将该预期向量减去该实际向量得到结果向量,该结果向量中元素值小于或等于O所对应的数据包的乱序度为O,元素值大于O所对应的数据包的乱序度为该元素值的步骤之后,统计预设时间内或预定数量的数据包中各乱序度出现的次数。
[0046]本实施例中,预设时间可根据需要设定,如3分钟、5分钟等,不限于此。预定数量的数据包可为10000个或20000个等,不限于此。统计每个乱序度出现的次数,例如统计3分钟内乱序度为O的出现次数为1000次,乱序度为I出现次数为500次,……,乱序度666出现次数为I次等。乱序度越小出现的次数越高,则说明网络状况越好,乱序度越大出现的次数越高,说明网络状态越差。
[0047]或者,统计10000个数据包的乱序度中乱序度为O的出现次数为1000次,乱序度为I出现次数为500次,......,乱序度为100出现次数为I次等。
[0048]通过统计乱序度出现次数便于后续根据乱序度进行分析网络状况。
[0049]在一个实施例中,在统计预设时间内或预定数量的数据包中各乱序度出现的次数之后,该数据包乱序度的测量方法还包括:计算大于或等于第一乱序度阈值的乱序度的出现次数之和,得到第一次数值;判断该第一次数值是否位于第一次数阈值范围内,若第一次数值位于第一次数阈值范围内,则认为网络发生了抖动。
[0050]本实施例中,第一乱序度阈值可根据需要设置,例如可为30、40等,不限于此。将乱序度与第一乱序度阈值进行比较,得出大于或等于第一乱序度阈值的乱序度,然后统计这些大于或等于第一乱序度阈值的乱序度的出现次数之和,得到第一次数值,判断第一次数值是否位于第一次数阈值范围内,若第一次数值不在第一次数阈值范围内,则认为网络发生了抖动,若第一次数值在第一次数阈值范围内,则认为网络未发生抖动。
[0051]具体地,第一次数阈值范围包括第一次阈值范围的上限值和下限值,其中,上限值大于下限值,例如第一次数阈值的上限值为1000,下限值为500。第一次数值大于第一次数阈值范围的上限值,则认为网络由好转为坏。第一次数值小于第一次数阈值范围的下限值,则认为网络由坏转为好。
[0052]预设时间和次数阈值可根据灵敏度设置。灵敏度越高,则预设时间和次数阈值范围越小;灵敏度越低,则预设时间和第一次次数阈值范围越大。
[0053]通过统计乱序度出现次数,根据出现次数与次数阈值比较,较准确的判断出网络是否发生抖动。
[0054]在一个实施例中,在统计预设时间内或预定数量的数据包中各乱序度出现的次数之后,该数据包乱序度的测量方法还包括:计算小于第二乱序度阈值的乱序度的出现次数之和,得到第二次数值;判断该第二次数值是否位于第二次数阈值范围内,若第二次数值不在第二次数阈值范围内,则认为网络发生了抖动。
[0055]本实施例中,第二乱序度阈值可根据需要设置,例如可为0、10等,不限于此。第二乱序度阈值小于第一乱序度阈值。将乱序度与第二乱序度阈值进行比较,得出小于或等于第二乱序度阈值的乱序度,然后统计这些小于或等于第二乱序度阈值的乱序度的出现次数之和,得到第二次数值,判断第二次数值是否位于第二次数阈值范围内,若第二次数值不在第二次数阈值范围内,则认为网络发生了抖动,若第二次数值在第二次数阈值范围内,则认为网络未发生抖动。
[0056]具体地,第二次数阈值范围包括第二次阈值范围的上限值和下限值,其中,上限值大于下限值,例如第二次数阈值的上限值为1100,下限值为400。第二次数值大于第二次数阈值范围的上限值,则认为网络由坏转为好。第二次数值小于第二次数阈值范围的下限值,则认为网络由好转为坏。
[0057]在一个实施例中,在将该预期向量减去该实际向量得到结果向量,该结果向量中元素值小于或等于O所对应的数据包的乱序度为0,元素值大于O所对应的数据包的乱序度为该元素值的步骤之后,该数据包乱序度的测量方法还包括:获取预设时间内或预定数量的数据包中各乱序度之和;判断该各乱序度之和是否位于阈值范围内,若各乱序度之和不在阈值范围内,则认为网络发生了抖动。
[0058]本实施例中,预设时间可根据需要设定,如3分钟、5分钟等,不限于此。预定数量的数据包可为10000个或20000个等,不限于此。阈值范围可根据灵敏度设置。灵敏度越高,则阈值范围越小,灵敏度越低,则阈值范围越大。
[0059]阈值范围包括阈值范围的上限值和阈值范围下限值,上限值大于下限值。
[0060]各乱序度之和大于阈值范围的上限值,则认为网络由好转为坏,各乱序度之和小于阈值范围的下限值,则认为网络由坏转好。
[0061]通过计算预设时间或预定数量的数据包的乱序度之和,判断该乱序度之和是否大于阈值,若大于阈值,则认为网络发生了抖动,计算方式简单。
[0062]在一个实施例中,在认为网络发生了抖动之后,该数据包乱序度的测量方法还包括:给用户发送提示信息。该提示信息的方式可采用弹窗形式、toast形式、动态图示等任何可以提示的方式。toast是Andro id中的简易的消息提示框,其中包含用户点击消息。动态图示是指以动态图展示方式展示提示信息。
[0063]在一个实施例中,在认为网络发生了抖动之后,该数据包乱序度的测量方法还包括:动态调整发包速率和/或音视频编解码参数。
[0064]本实施例中,在网络发生抖动后,可修改应用策略,该应用策略可包括动态调整发包速率、动态调整音视频编解码参数等。音视频编解码参数可包括音频采样率、音频通道数、视频帧率、视频分辨率、音视频码率等。
[0065]网络由好转为坏时,则降低发包速率。网络由坏转为好时,则提高发包速率。网络由好转为坏时,降低音频采样率、音频通道数、视频帧率、视频分辨率、音视频码率等;网络由坏转为好时,提高音频采样率、音频通道数、视频帧率、视频分辨率、音视频码率等。乱序度越大,发包速率调低,乱序度越小,发包速率调高。
[0066]下面结合具体的应用场景描述数据包乱序度的测量方法的实现过程。以发送端向接收端基于用户数据报协议传输数据包为例。如图5所示,接收端接收到的数据包的接收次序号为1、2、3、……、1000,对应的序号为1、10、9、……、998、999、30。将数据包的序号形成实际向量,则实际向量为{1、10、9、……、30}。第一个数据包的序号为I,则理想的情况下,第二个数据包的序号为2,依次类推,第1000个数据包的序号为1000,将估算的数据包的序号形成预期向量,则预期向量为{1、2、3、……、998、999、1000},将预期向量减去实际向量得到结果向量为{1-1、10-2、9-3、……、998-990、999-999、1000-30},结果向量中小于0或等于0的元素所对应的乱序度为0,大于O的元素所对应的乱序度为元素值。如结果向量中O对应的乱序度为0,10-2 = 8对应的乱序度为8。统计乱序度为O出现的次数为400,乱序度为I出现的次数为30
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1