CN109889398B - 一种检测媒体流业务质量的方法及装置、设备、存储介质 - Google Patents
一种检测媒体流业务质量的方法及装置、设备、存储介质 Download PDFInfo
- Publication number
- CN109889398B CN109889398B CN201711275356.6A CN201711275356A CN109889398B CN 109889398 B CN109889398 B CN 109889398B CN 201711275356 A CN201711275356 A CN 201711275356A CN 109889398 B CN109889398 B CN 109889398B
- Authority
- CN
- China
- Prior art keywords
- sequence
- packet
- jitter
- data packet
- time
- 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
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例公开了一种检测媒体流业务质量的方法,其中:所述方法包括:接收一段时间的数据包序列,确定所述数据包序列中的正抖动序列;将所述正抖动序列中每一数据包的抖动值进行累加,得到最大相对时延;如果所述最大相对时延大于预设的相对时延阈值Th,则确定所述正抖动序列确定为一次异常事件,并输出所述正抖动序列。本发明同时还公开了一种检测媒体流业务质量的装置、设备、存储介质。
Description
技术领域
本发明涉及话音业务(Voice over LTE,VoLTE)技术,尤其涉及一种检测媒体流业务质量的方法及装置、设备、存储介质。
背景技术
长期演进(Long Term Evolution,LTE)网络下流媒体数据传输多采用实时传输协议(Real-time Transport Protocol,RTP)、语音通信采用话音业务技术,VoLTE媒体面数据亦采用RTP协议传输。根据RTP协议传输的每一个RTP报文的信息,可测量得到传输过程的质量指标,从而发现媒体流业务质量问题。一般的测量主体由RTP报文的发送端和接收端完成,并通过实时传输控制协议(Real-time Control Protocol,RTCP)协议反馈到对端,用于根据链路质量调整发送速率。常用于检测链路问题的测量指标有:丢包、时延、抖动。同理,链路所经历的网元设备或第三方深度报文检测(Deep Packet Inspection,DPI)检测系统也可通过RTP信息,检测并评估VoLTE业务、流媒体业务质量是否存在问题。
现有技术的时延、抖动计算方法不能准确、灵敏地检测出每一次媒体流业务质量的问题事件,例如,现有技术很难准确发现因时延和抖动问题(无丢包情况)导致的质差事件。
发明内容
有鉴于此,本发明实施例为解决现有技术中存在的至少一个问题而提供一种检测媒体流业务质量的方法及装置、设备、存储介质,能够发现因时延和抖动问题(无丢包情况)导致的质差事件。
本发明实施例的技术方案是这样实现的:
本发明实施例提供一种检测媒体流业务质量的方法,所述方法包括:
接收一段时间的数据包序列,确定所述数据包序列中的正抖动序列;
将所述正抖动序列中每一数据包的抖动值进行累加,得到最大相对时延;
如果所述最大相对时延大于预设的相对时延阈值Th,则确定所述正抖动序列确定为一次异常事件,并输出所述正抖动序列。
本发明实施例提供一种检测媒体流业务质量的装置,所述装置包括:
接收单元,用于接收一段时间的数据包序列,确定所述数据包序列中的正抖动序列;
累加单元,用于将所述正抖动序列中每一数据包的抖动值进行累加,得到最大相对时延;
第一确定单元,用于如果所述最大相对时延大于预设的相对时延阈值Th,则确定所述正抖动序列确定为一次异常事件;
第一输出单元,用于输出所述正抖动序列。
本发明实施例提供一种检测媒体流业务质量的设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述检测媒体流业务质量的方法中的步骤。
本发明实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述的检测媒体流业务质量的方法中的步骤。
本发明实施例中,通过对RTP包间抖动的正、负方向的考虑,并对连续、正向抖动的序列进行事件聚合,并通过抖动累积检测事件内报文间相对时延的方法,发现时延上升阶段对用户感知业务质量的异常事件,解决现有技术中抖动、时延检测技术的弊端和问题,并能准确、灵敏地检测出媒体业务中的每一次短时异常事件和劣化时长,与用户的真实体验匹配度更高。
附图说明
图1为随机抖动与业务质量之间的关系示意图;
图2为正向抖动与业务质量之间的关系示意图;
图3为本发明实施例检测媒体流业务质量的方法的实现流程示意图;
图4为本发明又一实施例检测媒体流业务质量的方法的实现流程示意图;
图5A为一次时延导致的异常事件和劣化时长之间的关系示意图;
图5B为延异常劣化事件检测与真实业务质量的效果对比结果示意图;
图5C是对又一实施例的检测方法的实施例和结果示意图;
图5D为图5C对应实施的真实业务质量示意图;
图6为本发明实施例检测媒体流业务质量的装置的组成结构示意图;
图7为本发明实施例中检测设备的一种硬件实体示意图。
具体实施方式
常用于检测链路问题的测量指标有:丢包、时延、抖动。同理,链路所经历的网元设备或第三方深度报文检测(Deep Packet Inspection,DPI)检测系统也可通过RTP信息,检测并评估VoLTE业务、流媒体业务质量是否存在问题。除丢包外,现有技术中用于评估RTP业务质量异常的方法有两个维度:
时延:由于检测设备或接收端只能记录收到RTP报文的时刻,无法获得发送时间,所以仅从RTP报文中无法获得端到端时延信息,现有技术中端到端时延需通过对端发送的RTCP报文中携带的LSR、DLSR等测量信息,才能测量媒体流业务的端到端时延。当时延大于一定门限值,则认为业务质量存在问题。
抖动:用于评估RTP相邻两个包之间不规律到达的程度,当抖动大于一定门限值,则认为业务质量存在问题。常用的抖动计算方法有两种:
第一种方法:计算包到达间隔,进一步计算出包间隔的差值,得到多个包的抖动样本或均值,或与包间隔均值的差值等;此法仅以包达到检测点的时间为依据,无需考虑包间是否发生丢包或包发送间隔。
第二种方法:计算包到达时间与其预期到达时间的差值,进一步计算包间抖动。此法除考虑包到达时间,还考虑了其与上一RTP包的发送时间间隔,比前一方法更准确。具体为:
D(i-1,i)=(R(i)–S(i))–(R(i-1)–S(i-1))=(R(i)-R(i-1))–(S(i)-S(i-1));
Jitter(i)=I(J)+(|D(i-1,i)|-I(J))/16;
其中D(i-1,i)表示第i个RTP包与其预期到达时间的差值。R(i)表示第i个包到达检测设备的本地时间,R(i-1)表示第(i-1)个包到达检测设备的本地时间,S(i)表示第i个包中携带的时间戳(timestamp)字段值,S(i-1)表示第(i-1)个包中携带的时间戳字段值,通过相邻两个包的时间戳之间差值和时间戳的采样频率,S(i)-S(i-1)等同于相邻两个包的发送时间间隔。Jitter(i)表示第i个包的抖动值,根据网络工程任务组(InternetEngineering Task Force,IETF)请求注解(Request For Comments,RFC)3550标准定义的抖动计算方法,取当前时间差的绝对值与上一抖动差值的1/16,作为新的抖动叠加到前一个包抖动值中,到达平滑抖动值的效果。
基于RTCP测量的端到端时延周期较长,一般为5秒(s),而业务质量异常持续时间可能只有1~2s,不足以检测出5s可能发生的异常事件。另外测试数据表明,端到端时延的增加会造成RTP报文的整体延迟,除声音或图片的整体滞后产生的延迟感,若报文间相对到达时间不变(即相对时延约为0),不会造成业务质量的明显问题,如断续、卡顿等感知问题。
现有抖动检测方法采用滑动机制,只取当前时间差的绝对值与上一抖动差值的1/16,对前一抖动进行累加。此方法是为了得到相对平滑稳定的抖动值,既反映当前时刻的最新抖动,又体现历史抖动结果,避免瞬时抖动增加产生测量结果的较大波动,用于终端通过RTCP反馈到对端进行流量控制,因而反映的是长时抖动值。此检测方法的弊端是:
1)现有技术不能发现两次RTCP报文之间因为短时较大抖动产生的业务质量问题。现网数据表明,即使瞬时抖动变大持续时间只有1~2s,也会导致业务感知的明显劣化,但现有技术中的平滑后的抖动值无法灵敏地检测出瞬时抖动导致的感知异常事件。
2)现有技术的抖动算法对当前抖动样本取绝对值再进行计算,没有考虑正向抖动(样本间时延变大)、负向抖动(样本间时延变小)之间的差异。如样本间均为正向抖动,或样本间正负向随机抖动,只要绝对数值一致,计算的结果将完全一致。但后者因终端解码缓冲区机制,不会造成业务质量问题;而前者将导致包间时延不断累加,最终超出缓冲区范围,产生感知劣化,体现为声音的断续或图片的卡顿等效果。现有技术无法将这两种情况进行准确区分。
下面通过图1和图2来说明随机抖动、正向抖动对业务质量的影响。图1为随机抖动与业务质量之间的关系示意图,图1中的横坐标为RTP包到达时间,单位为毫秒(ms),纵坐标为时延,单位为毫秒。图2为正向抖动与业务质量之间的关系示意图,图2中的横坐标为RTP包到达时间,单位为毫秒(ms),纵坐标为时延,单位为毫秒。图1中的时段11对应于图2中的时段21,二者的持续时间相同,抖动值也相同;图1中的时段12对应于图2中的时段22,二者的持续时间相同,抖动值也相同。从图1可以看出,随机抖动导致语音包时延呈现不规律增加或减小趋势,但是随机抖动对业务质量无影响。从图2可以看出,正向抖动导致时延逐渐增加的趋势,从而影响业务质量。按照RFC 3550标准的算法,图1和图2两者具有相同的抖动值6.7,但图1的业务质量无任何劣化,MOS值为4.1,而图2的业务质量明显劣化,MOS值为2.4,感知差异很大,抖动值却无法区分。
3)只考虑绝对时延的业务质量异常,与实际体验有差异。
但与实际业务的对比发现,影响用户体验的并非绝对时延,而是包间相对时延,尤其相对时延上升速度较快的阶段,业务质量将发生明显感知异常,而在绝对时延较大但包间相对时延在下降的阶段,终端解码器的消抖机制依然可以根据RTP包间的时间戳差值进行包间时序的准确还原,只发生整体时延,对用户感知无明显影响。因此简单通过传输时延大于门限的测量方法得到的异常阶段会与实际的用户体验存在差异,不能实现准确的业务质量异常检测。
因此,现有技术的时延、抖动计算方法不能准确、灵敏地检测出每一次媒体流业务质量的问题事件,以及具体的起止时间。所以,现有技术检测媒体业务质量多通过丢包数,很难准确发现因时延和抖动问题(无丢包情况)导致的质差事件。
本实施例提出一种RTP媒体流业务质量检测机制,通过对RTP包间抖动的正、负方向的考虑,并对连续、正向抖动的序列进行事件聚合,并通过抖动累积检测事件内报文间相对时延的方法,发现时延上升阶段对用户感知业务质量的异常事件,解决现有技术中抖动、时延检测技术的弊端和问题,并能准确、灵敏地检测出媒体业务中的每一次短时异常事件和劣化时长,与用户的真实体验匹配度更高。
下面结合附图和实施例对本发明的技术方案进一步详细阐述。
本实施例提出一种检测媒体流业务质量的方法,该方法应用于检测设备,该方法所实现的功能可以通过检测设备中的处理器调用程序代码来实现,当然程序代码可以保存在计算机存储介质中,可见,该检测设备至少包括处理器和存储介质。
图3为本发明实施例检测媒体流业务质量的方法的实现流程示意图,如图3所示,该方法包括:
步骤S301,接收一段时间的数据包序列,确定所述数据包序列中的正抖动序列;
这里,一段时间可以是预设的一段时长T,也可以是随机的一段时长。在实现的过程中,该方法还包括:记录所述数据包序列中每一数据包到达本地的时间,并对每一所述数据包的包头进行解析,得到对应数据包的标识和对应数据包的时间戳;然后,计算每一所述数据包相对于与其相邻的前一个数据包的抖动值。
这里,在所述数据包序列中,与所述正抖动序列中第一个数据包相邻的前一个数据包的抖动值小于0,与所述正抖动序列中最后一个数据包相邻的后一个数据包的抖动值也小于0。假设所述正抖动序列表示为A(x,x+1,…,x+M),其中x表示所述数据包序列中第x个数据包,所述数据包序列中第x个数据包为所述正抖动序列中的第一个数据包,所述正抖动序列中一共包括(1+M)个数据包。在一种实施例中,所述正抖动序列中的每一个数据包的抖动值都大于0,用公式表示为D′(x,x+1,…,x+M)>0,其中D’()表示某个数据包的抖动值,D′(x,x+1,…,x+M)>0表示正抖动序列中的第一个数据包x至第(M+1)个数据包(x+M)的抖动值都大于0,用公式表示为D′(x-1,x+M+1)<0。换句话说,正抖动序列中连续(M+1)个数据包的抖动值都大于0。在其他的实施例中,也可以为近似连续(M+1)个数据包,例如所述正抖动序列中的抖动值小于0的数据包的数目(假设为第一个数)满足预设的第一阈值条件,或者,所述正抖动序列中的抖动值小于0的连续数据包的数目(假设为第二个数)满足预设的第二阈值条件;所述第一阈值条件或第二阈值条件包括个数阈值或比例阈值。即,第一个数为正抖动序列中的抖动值小于0的数据包的个数,第二个数为正抖动序列中的抖动值小于0的连续数据包的个数,其中计算第一个数与正抖动序列中数据包的总数的第一比值,以及计算第二个数与正抖动序列中数据包的总数的第二比值,所述第一比值小于预设的比例阈值,第二比值小于预设的比例阈值,第一个数小于预设的个数阈值,第二个数小于预设的个数阈值。
步骤S302,将所述正抖动序列中每一数据包的抖动值进行累加,得到最大相对时延R_delay_max;
步骤S303,如果所述最大相对时延大于预设的相对时延阈值Th,则确定所述正抖动序列确定为一次异常事件,并输出所述正抖动序列。
一般来说,所述相对时延阈值根据终端解码器播放缓冲区的时长进行确定,所述相对时延阈值的取值范围在100毫秒至150毫秒之间。在其他的实施例中,在步骤S303之前,所述方法还包括:根据终端解码器播放缓冲区的时长确定所述相对时延阈值。例如,将终端解码器播放缓冲区的时长确定为所述相对时延阈值,或者,将终端解码器播放缓冲区的时长与预设时长t之和确定为所述相对时延阈值。从以上可以看出,相对时延阈值的选定参考终端解码器播放缓冲区的时长,即可将此范围内的抖动导致的时延消除的门限值。
本发明实施例中,先接收一段时间的数据包序列,确定所述数据包序列中的正抖动序列;然后将所述正抖动序列中每一数据包的抖动值进行累加,得到最大相对时延;如果所述最大相对时延大于预设的相对时延阈值Th,则确定所述正抖动序列确定为一次异常事件,并输出所述正抖动序列;如此,能够发现因时延和抖动问题(无丢包情况)导致的质差事件。
下面将介绍正抖动序列,正抖动序列的确定方法有很多,主要根据抖动值来确定,如果抖动值为正数,则可以将连续或近似连续的多个数据包确定为正抖动数据。下面介绍一种确定方法,所述确定所述数据包序列中的正抖动序列,包括:
步骤S41,记录所述数据包序列中第(i-1)个数据包到达本地的时间R(i-1),并对第(i-1)个数据包的包头进行解析,得到第(i-1)个数据包的标识SN(i-1)和时间戳S(i-1);i为大于等于2的整数;
步骤S42,根据第i个数据包到达本地的时间R(i)、第(i-1)个数据包到达本地的时间R(i-1)、第i个数据包的时间戳S(i)和第(i-1)个数据包的时间戳S(i-1),计算第i个数据包的接收时间与预期接收时间的偏差作为第i个数据包的抖动值D(i);
步骤S43,对与第i个数据包前后相邻的n个数据包的偏差取滑动平均值,得到平滑滤波后的抖动值D’(i);
步骤S44,根据所述平滑滤波后的抖动值D’(i)确定所述数据包序列中的正抖动序列。
这里,将抖动值大于0的数据包确定为正抖动序列中的数据包。在实施的过程中,正抖动序列中抖动值大于0的数据包的个数要满足一定的条件,例如,可以为连续的多个,例如(M+1)个,或者,近似连续的多个,即这多个数据包中的其中几个数据包的抖动值可以小于等于0。
在其他的实施例中,所述根据第i个数据包到达本地的时间R(i)、第(i-1)个数据包到达本地的时间R(i-1)、第i个数据包的时间戳S(i)和第(i-1)个数据包的时间戳S(i-1)计算第i个数据包的接收时间与预期接收时间的偏差D(i),包括:计算第i个数据包的接收时间与预期接收时间的偏差D(i)=(R(i)-R(i-1))–(S(i)-S(i-1)),i>=2;其中,R(i)-R(i-1)表示第i个个数据包到达本地的时间R(i)和第(i-1)个数据包到达本地的时间R(i-1)之间的差值,S(i)-S(i-1)表示第i个数据包中携带的时间戳S(i)与第(i-1)个数据包中携带的时间戳S(i-1)之间的差值;对应地,所述对与第i个数据包前后相邻的n个数据包的偏差取滑动平均值,得到平滑滤波后的抖动值D’(i),包括:根据公式D’(i)=avg(D(i-n),…,D(i),…,D(i+n))对与第i个包相邻的包抖动值进行滑动平均,得到平滑滤波后的抖动值D’(i),i>=2+n;其中,n为小于二分之一倍的所述数据包序列中数据包的数目的整数,avg表示进行算数平均运算。。
在其他的实施例中,所述将所述正抖动序列中每一数据包的抖动值进行累加,得到最大相对时延,包括:
将所述一个正抖动序列表示为A(x,x+1,…,x+M),其中x表示所述数据包序列中第x个数据包,所述数据包序列中第x个数据包为所述正抖动序列中的第一个数据包,所述正抖动序列中一共包括(1+M)个数据包,M大于等于1的整数;
在其他的实施例中,所述方法还包括:
步骤S1,如果所述数据包序列中相邻两个正抖动序列满足预设条件,将所述数据包序列中相邻两个正抖动序列聚合或合并为一个正抖动序列。
在其他的实施例中,所述预设条件可以为相邻两个正抖动序列之间的时间间隔小于预设的持续时间阈值,和/或,两个正抖动序列的最大相对延迟大于相邻两个正抖动序列之间的负抖动序列的负抖动值的负累加值。
所述预设条件包括所述相邻两个正抖动序列之间的负抖动序列的持续时间间隔小于预设的持续时间阈值,并且所述负抖动序的负抖动值的负累加值小于所述相邻两个正抖动序列中任一正抖动序列的最大相对时延;对应地,所述如果所述数据包序列中相邻两个正抖动序列满足预设条件,将所述数据包序列中相邻两个正抖动序列聚合为一个正抖动序列,包括:
步骤S11,确定所述相邻两个正抖动序列之间的负抖动序列的持续时间间隔;
这里,将相邻两个正抖动序列之间的序列确定为负抖动序列,确定所述负抖动序列的持续时间间隔,即相邻两个正抖动序列之间的时间间隔。
步骤S12,如果所述负抖动序列的持续时间间隔小于预设的持续时间阈值,将在所述负抖动序中每一数据包的抖动值进行累加,得到负累加值;
这里,持续时间阈值一般很小,可以设置几个数据包,例如1至2个数据包,需要说明的是,持续时间阈值的大小与正抖动序列中数据包的总个数有关,如果总个数为几百,那么持续时间阈值可以为十分之一至五分之一的数据包,即,几十个数据包;如果总个数为几十或者十几个,那么持续时间阈值为1至2个数据包。
这里,负抖动序列中每一个数据包也有一个抖动值,其中负抖动序列中全部或部分抖动值为负值,将负抖动序列中所有数据包的抖动值进行累加,得到负累加值。
步骤S13,如果所述负抖动序的负抖动值的负累加值小于所述相邻两个正抖动序列中任一正抖动序列的最大相对时延,将所述数据包序列中相邻两个正抖动序列聚合为一个正抖动序列。
从以上的步骤可以看出,取滤波后的抖动序列D’中大于0的序列,标志为正抖动序列。将接收的连续(或近似连续)的M个正抖动序列聚合为一次时延事件A,并将事件内的抖动值累加,得到一次时延事件的最大相对时延。若最大相对时延大于阈值,则检测为一次时延导致的异常事件,若相对时延小于阈值,则该事件对用户感知无影响,将对应的序列号从异常序列中去除。其中,相对时延阈值的选定参考终端解码器播放缓冲区的时长,即可将此范围内的抖动导致的时延消除的门限值,一般可选100ms-150ms。近似连续表示两次聚合事件间的序列间隔很小,如1~2个包,且间隔期产生的负抖动累积效果不足以抵消前一事件的正抖动累积效果,则可将相邻的两次时延事件聚合为一次事件。
在其他的实施例中,所述方法还包括:
步骤S21,将所述一个正抖动序列表示为A(x,x+1,…,x+M),其中x表示所述数据包序列中第x个数据包,所述数据包序列中第x个数据包为所述正抖动序列中的第一个数据包,所述正抖动序列中一共包括(1+M)个数据包,M为大于等于1的整数;
步骤S22,根据所述正抖动序列中第一个数据包至第i个数据包的抖动值,计算所述正抖动序列中第i个数据包相对于所述正抖动序列中第一个数据包的相对时延,其中i为大于2且小于等于(1+M)的整数;
步骤S23,将相对时延大于预设的相对时延阈值Th的数据包组成时延异常序列集合;
步骤S24,输出所述时延异常序列集合。
在其他的实施例中,所述根据所述正抖动序列中第一个数据包至第i个数据包的抖动值,计算所述正抖动序列中第i个数据包相对于所述正抖动序列中第一个数据包的相对时延,包括:将所述正抖动序列A(x,x+1,…,x+M)中第i个数据包至第一个数据包前的抖动值累加,得到第i个数据包相对于正抖动序列中第一个数据包的相对时延R_delay(i),确定方法为其中D′(j)为所述数据序列第j个包平滑滤波后的抖动值,i为大于2且小于等于1+M的整数。
从以上可以看出,事件A的时延异常序列为以每一次正抖动序列聚合事件A的第一个x包为基准,相对x的时延大于门限值Th的序列集合,用公式表示为:
时延异常序列={(x+m)|第x+m个包相对于第x个包的时延>Th},;
m为1至M的正整数,其中x、…、x+m、…x+M属于所述正抖动序列
本时段内的时延异常序列为所有聚合事件的时延异常序列的集合。
在其他的实施例中,活跃期也是媒体流数据包的一个重要参数,若识别出语音等媒体流中的静默期和活跃期,可更准确地发现与业务体验更贴近异常事件。此时,异常样本包序列为RTP包为活跃期且>Th的包序列。所述将相对时延大于预设的相对时延阈值Th的数据包组成时延异常序列集合,包括:
步骤S221,确定所述正抖动序列中每一个数据包属于静默期的数据包还是活跃期的数据包;
步骤S222,将所述正抖动序列中属于活跃期的数据包,且相对时延大于预设的相对时延阈值Th的数据包组成时延异常序列集合。
在其他的实施例中,所述确定所述正抖动序列中每一个数据包属于静默期还是活跃期,包括:确定所述正抖动序列中第i个数据包和第(i-1)个数据包的发送时间S(i)和S(i-1),i为大于等于2的整数;根据公式(S(i)-S(i-1))/(SN(i)-SN(i-1))计算第i个数据包的发送间隔,如果所述第i个数据包的发送间隔大于等于预设的静默期阈值,则所述第i个数据包属于静默期的数据包;反之,所述第i个数据包属于活跃期的数据包;其中,所述S(i-1)为所述正抖动序列中第(i-1)个数据包的发送时间,所述S(i)为第i个数据包的发送时间、SN(i-1)为第(i-1)个数据包的标识和SN(i)为第i个数据包的标识。
从以上可以看出,RTP包静默期和活跃期的检测方法为:计算每个包与前一包携带的发送时间差S(i)-S(i-1),若两个包的SN序列不连续,提示有丢包,则发送时间差还需除上发送包间隔:(S(i)-S(i-1))/(SN(i)-SN(i-1))。若该值较大,如VoLTE语音中为160ms,则第i个包标记为静默包,若该值为20ms,则标记为活跃语音包。
在其他的实施例中,所述正抖动序列表示为A(x,x+1,…,x+M),其中x表示所述数据包序列中第x个数据包,所述数据包序列中第x个数据包为所述正抖动序列中的第一个数据包,所述正抖动序列中一共包括(1+M)个数据包;所述时延异常序列集合标识为A’(x+m,x+m+1,…,x+M),其中x+m表示所述数据包序列中第(x+m)个数据包,且为所述正抖动序列中的第(m+1)个数据包,其中m的取值大于等于1且小于等于M,所述时延异常序列集合共包括(1+M-m)个数据包;所述方法还包括:记录所述时延异常序列集合的属性,所述时延异常序列集合的属性包括:时延异常事件的开始时间、结束时间、劣化时长、受影响时长和质差程度,其中:
开始时间为所述时延异常序列集合中第一个数据包的前一包接收时间:R(x+m-1);
结束时间为所述正抖动序列最后一个包的接收时间:R(x+M);
劣化时长为接收起止时间间隔:R(x+M)-R(x+m-1)。
受影响时长:S(x+M)-S(x+m-1);
质差程度为连续序列中最大相对时延大于门限值的程度R_delay_max-Th;
其中,R(j)为所述数据包序列中第j个数据包的接收时间,S(j)为所述数据包序列中第j个数据包的是发送时间。
在其他的实施例中,所述方法还包括:
步骤S31,将所述正抖动序列中属于活跃期的数据包确定为中间序列;
步骤S32,将所述数据包序列中连续丢包数大于预设的丢包阈值的序列确定为丢包异常序列B(b1,b2,…),将所述丢包异常序列中每一个样本确定为一次连续丢包事件;
一般来说,连续丢包阈值选择终端解码器可进行前向纠错的允许丢包数,与编码方式有关,如目前常见的编码方式对不大于2个的丢包可进行纠错,可选择阈值为3。
步骤S33,记录所述异常包序列的属性,所述异常包序列的属性包括:连续丢包事件的劣化时长、受影响时长和质差程度,其中:
开始时间为该样本b的前一接收数据包的接收时间R(b-1);
结束时间为该样本b的接收时间R(b);
劣化时长为该样本b与前一接收数据包之间的接收时间差R(b)-R(b-1);
受影响时长S(b-1)-S(b);
质差程度为样本b相对前一数据包的连续丢包数。
步骤S34,将所述正抖动序列中属于活跃期的时延异常序列确定为中间序列;
步骤S35,将所述数据包序列中连续丢包数大于预设的丢包阈值的序列确定为丢包异常序列B(b1,b2,…),将所述丢包异常序列中每一个样本确定为一次连续丢包事件;
步骤S36,将所述时延异常序列集合标识为A’(x+m,x+m+1,…,x+M)和所述丢包异常序列B(b1,b2,…)取并集,得到异常事件序列。
本发明实施例一种基于RTP协议的检测媒体流业务质量的方法,用于准确、灵敏地检测出媒体业务中的每一次异常事件和劣化时长,发现用户体验的异常问题。图4为本发明又一实施例检测媒体流业务质量的方法的实现流程示意图,如图4所示,该方法包括:
步骤S401,检测设备收入一定时段RTP数据包,进行内容解析;
这里,检测设备收入一段时间的RTP包,记录每一个包到达本地的时间,并对RTP包头进行解析,提取其中的序列号SN和时间戳。
步骤S402,计算每一包的抖动值,进行平滑滤波;
这里,计算每一个包相对于前一个包的抖动值,并对抖动序列进行滑动滤波。滑动滤波是为了消除瞬时的抖动毛刺,得到相对稳定的抖动序列。
D(i)=(R(i)-R(i-1))–(S(i)-S(i-1)),i>=2;
D’(i)=avg(D(i-n),…,D(i),…,D(i+n)),i>=2+n;
其中,R(i)-R(i-1)表示第i个和第(i-1)个RTP包到达检测设备的本地时间差,S(i)-S(i-1)表示第i个RTP包中携带的时间戳与第(i-1)个RTP包中携带的时间戳之间的差值,根据发送端采样频率折算为时间单位后的值,等同于两个包之间的发送时间差。D(i)表示第i个包实际接收时间与预期接收时间的偏差。D’(i)表示滑动滤波后第i个包的抖动值,实施时建议取滤波窗口为3~5个RTP包,即n=1或2。
步骤S403,检测时延异常事件和异常包序列;
取滤波后的抖动序列D’中大于0的序列,标志为正抖动序列。将接收的连续(或近似连续)的M个正抖动序列聚合为一次时延事件A,并将事件内的抖动值累加,得到一次时延事件的最大相对时延。若最大相对时延大于阈值,则检测为一次时延导致的异常事件,若相对时延小于阈值,则该事件对用户感知无影响,将对应的序列号从异常序列中去除。其中,相对时延阈值的选定参考终端解码器播放缓冲区的时长,即可将此范围内的抖动导致的时延消除的门限值,一般可选100ms-150ms。
近似连续表示两次聚合事件间的序列间隔很小,如1~2个包,且间隔期产生的负抖动累积效果不足以抵消前一事件的正抖动累积效果,则可将相邻的两次时延事件聚合为一次事件。
1)根据下面的公式(1)计算事件内每一个包的相对时延:
公式(1)中R_delay(x,x+m)表示一次连续或近似连续的正抖动序列事件A(x,x+1,…,x+M)中第m+1个包相对第一个包的时延,即事件第m+1个包x+m相对事件第1个包x的传输时延;R_delay(x,x+M)表示该事件的最大相对时延R_delay_max,即事件最后一个包x+M相对事件第一个包x的传输时延。
2)获取时延异常序列集合
事件A的时延异常序列为以每一次正抖动序列聚合事件A的第一个x包为基准,相对x的时延大于门限值Th的序列集合,用公式(2)表示为:
时延异常序列={(x+m)|R_delay(x,x+m)>Th},(2);
m为1至M的正整数,其中x、…、x+m、…x+M属于所述正抖动序列
本时段内的时延异常序列为所有聚合事件的时延异常序列的集合。
3)获取激活态下的时延异常序列集合
进一步地,若识别出语音等媒体流中的静默期和活跃期,可更准确地发现与业务体验更贴近异常事件。此时,异常样本包序列为RTP包为活跃期且R_delay(x,x+M)>Th的包序列。
其中,RTP包静默期和活跃期的检测方法为:计算每个包与前一包携带的发送时间差S(i)-S(i-1),若两个包的SN序列不连续,提示有丢包,则发送时间差还需除上发送包间隔:(S(i)-S(i-1))/(SN(i)-SN(i-1))。若该值较大,如VoLTE语音中为160ms,则第i个包标记为静默包,若该值为20ms,则标记为活跃语音包。
基于以上3个流程,对时延异常序列中的每个包,记录如下信息:
(序列号SN,发送时间S(i),接收时间R(i),前一包接收时间R(i-1),在本次事件内的相对时延R_delay(x,x+m),活跃包标识)
步骤S404,检测时延异常事件的劣化程度;
这里,即检测时延异常事件导致的劣化时长;对时延异常包序列的每一次连续事件A(x,x+1,…,x+M),假设从第(m+1)个包开始,满足R_delay(x,x+m)>Th,则检测其事件受影响时长和劣化程度如下:
事件的开始时间为连续序列第1个包的前一包接收时间R(x+m-1);
事件的结束时间为连续序列最后一个包的接收时间R(x+M);
事件的劣化时长为接收起止时间间隔R(x+M)-R(x+m-1);
事件的受影响时长S(x+M)-S(x+m-1);
事件的质差程度为连续序列中最大相对时延大于门限值的程度R_delay_max-Th;
其中,R(j)为所述数据包序列中第j个数据包的接收时间,S(j)为所述数据包序列中第j个数据包的是发送时间。
图5A为一次时延导致的异常事件和劣化时长之间的关系示意图,图5A中自上而下包括三幅图,第一幅图为一段时间内的数据包序列的抖动示意图,该段数据包从0毫秒到8000毫秒。第二幅图为抖动平滑滤波与事件聚合,即,第二附图为该段数据包序列中的正抖动序列,并将正抖动序列进行聚合后示意图,从第二幅图可以看出,聚合后一共包括五个正抖动序列511至515,正抖动序列511、513和515中包括抖动值为负数的数据包,即511、513和515为近似连续正抖动值序列,正抖动序列512中的数据包的抖动值均为正数,即512和514为连续正抖动值序列。第三幅图示出了相对时延与时延异常事件检测,从第三幅图可以看出,计算正抖动序列511至515的最大相对时延,即分别第二幅图中每一个正抖动序列进行积分(参见最大相对时延的计算公式),即得到第三幅图,特别地,对序列515进行积分得到最大相对时延516。从第三幅图可以看出,正抖动序列511至515中,序列511至514的最大相对时延均小于阈值Th,只有序列515的最大相对时延是大于Th。图5B为延异常劣化事件检测与真实业务质量的效果对比结果示意图,自上而下,图5B中的上图为原始语音,下图为劣化后的语音,上图中的框521和下图中的框522对应于同一段数据包,相比较可以看出,框518处呈现断续的问题,与检测的劣化时长匹配度高。图5B中,真实业务质量需要采用特定的测试工具,获得业务发送前和经传输信道劣化后接收到的具体业务内容,进行业务解码对比。对比结果表明,本提案的检测方法可以准确地发现连续正抖动导致的时延上升阶段的业务质量异常事件、事件开始时间和劣化时长。
步骤S405,检测连续丢包导致的异常事件和劣化程度;
若发生丢包,则包间SN序号不连续。计算接收包与前一包的SN差值-1,作为丢包序列。获得RTP包为活跃期的且丢包数大于一定阈值的序列,作为丢包导致异常包序列B(b1,b2,…)。对序列中的每个包,记录如下信息:
(序列号SN,发送时间S(i),接收时间R(i),前一包接收时间R(i-1),相对前一包的丢包数,活跃包标识);
连续丢包阈值选择终端解码器可进行前向纠错的允许丢包数,与编码方式有关,如目前常见的编码方式对不大于2个的丢包可进行纠错,可选择阈值为3。
丢包异常序列的每一个样本b定义为一次连续丢包事件。
事件的开始时间为该样本b的前一接收RTP包的接收时间R(b-1);
事件的开始时间为该样本b的接收时间R(b);
事件的劣化时长为该样本与前一接收RTP包之间的接收时间差R(b)-R(b-1);
事件的受影响时长S(b-1)-S(b);
事件的质差程度为相对前一包的连续丢包数。
步骤S406,时延和连续丢包事件的联合去重检测;
这里,对丢包导致的劣化与时延导致的劣化进行去重检测;
考虑到丢包导致的劣化与时延导致的劣化会出现时间重叠,需要进行检测去重。把步骤S403获得的正抖动序列A(x,x+m+1,…,x+M),或时延异常序列A’(x+m,x+m+1,…,x+M),与步骤S405获得的丢包异常序列B(b1,b2,…)取集合并集,得到时延与丢包联合序列;或者,对S404获得的时延导致的劣化事件和劣化时长,与步骤S405获得的丢包导致的劣化事件和劣化时长取时间并集,得到丢包与时延事件联合检测结果。去重检测的目的是,若某劣化时长内同时发生时延问题和连续丢包问题,则只统计一次劣化时长,事件类型为时延+丢包事件。
至此,完成一段时间内媒体流业务异常事件检测,得到该时段内的总劣化时长,时延和丢包事件数量,以及每次事件的开始时间、劣化时长。本发明的检测主体可以是RTP流经历的网络处理设备、第三方监测设备,也可以是终端,可实现在仅获得RTP包头信息,没有具体业务数据的情况进行准确的质量检测。其中,一般来说,终端设备在实施的过程中可以为各种类型的具有信息处理能力的电子设备,例如所述电子设备可以包括手机、平板电脑、台式机、个人数字助理、导航仪、数字电话、视频电话、电视机、传感设备等。
图5C是对又一实施例的检测方法的实施例和结果示意图,图5C中,自上而下,包括五幅图,其中第一幅图至第三幅图分别与图5A的第一幅图至第三幅图类似,第一幅图为一段时间内的数据包序列的抖动示意图,该段数据包从0毫秒到8000毫秒。第二附图为该段数据包序列中的正抖动序列531至534。第三幅图示出了相对时延与时延异常事件检测,从第三幅图可以看出,计算正抖动序列531至534的最大相对时延,序列531至533的最大相对时延均小于阈值Th,只有序列5534的最大相对时延535是大于Th。第四幅图为丢包事件中丢包数检测,第五幅图为联合检测。
图5D为图5C对应实施的真实业务质量示意图,可以看到本提案的检测结果与业务质量对比效果的匹配度很高。图5D中的上图为原始语音,图5D中的下图为劣化后的语音,上图中的框541和下图中的框542对应于同一时段的数据包,图中的框543和下图中的框544对应于同一时段的数据包,相比较可以看出,框541和框542相比,框542出现一段丢包;框543和框544相比,框542出现一段丢包,因此框542和544处会出现听不清和吞字的问题,与图5C检测的丢包+时延事件劣化时长匹配度高。
在本实施例中,检测的是VoLTE语音业务质量的RTP流。具体的,时延导致的劣化事件一般对应于语音通话中的断续、听不清的效果,连续丢包导致的劣化事件一般对应于语音通话中的吞字、单通效果,若同时发生时延和连续丢包,则用户体验到的业务质量更差。
本实施例中,1)、对包间抖动进行平滑滤波,通过对连续的、正向抖动序列的时延累加算法,检测VoIP业务时延异常事件的方法,可准确检测出时延导致的质差事件、起止时间、劣化程度。2)、在时延异常检测的基础上,对连续丢包导致的异常进行检测和联合去重检测,发现丢包和时延导致的质差事件的方法。
与现有技术相比,本实施例具有以下技术优点:1)、考虑抖动的正向和负向效应的差别,对正向抖动的连续性、时延累加效果进行检测,可灵敏地发现时延导致的业务异常,提高了检测精度,并可精准检测到事件的起止时间、劣化程度,更有效地还原用户体验问题。解决现有技术仅能发现5秒以上抖动异常,并且无法区分随机抖动和正向抖动对用户体验的差异的弊端。尤其能发现无丢包情况下的质差事件。2)、时延与连续丢包的联合检测,更准确地发现丢包和时延两大事件导致的质量问题和发生时间,进一步提高用户感知的业务质量的检测精度。
基于前述的实施例,本发明实施例提供一种检测媒体流业务质量的装置,该装置包括所包括的各单元、各单元所包括的各模块,以及各模块所包括的各子模块,都可以通过检测设备中的处理器来实现;当然也可通过逻辑电路实现;在实施的过程中,处理器可以为中央处理器(CPU)、微处理器(MPU)、数字信号处理器(DSP)或现场可编程门阵列(FPGA)等。
图6为本发明实施例检测媒体流业务质量的装置的组成结构示意图,如图6所示,所述装置600包括接收单元601、累加单元602、第一确定单元603和第一输出单元604,其中:
接收单元601,用于接收一段时间的数据包序列,确定所述数据包序列中的正抖动序列;
累加单元602,用于将所述正抖动序列中每一数据包的抖动值进行累加,得到最大相对时延;
第一确定单元603,用于如果所述最大相对时延大于预设的相对时延阈值Th,则确定所述正抖动序列确定为一次异常事件;
第一输出单元604,用于输出所述正抖动序列。
在其他的实施例中,与所述正抖动序列中第一个数据包相邻的前一个数据包的抖动值小于0,与所述正抖动序列中最后一个数据包相邻的后一个数据包的抖动值也小于0;所述正抖动序列中的每一个数据包的抖动值都大于0,或者,所述正抖动序列中的抖动值小于0的数据包的数目满足预设的第一阈值条件,或者,所述正抖动序列中的抖动值小于0的连续数据包的数目满足预设的第二阈值条件;所述第一阈值条件或第二阈值条件包括个数阈值或比例阈值。
在其他的实施例中,所述装置还包括:聚合单元,用于如果所述数据包序列中相邻两个正抖动序列满足预设条件,将所述数据包序列中相邻两个正抖动序列聚合为一个正抖动序列。
在其他的实施例中,所述聚合单元,包括:第一确定模块,用于确定所述相邻两个正抖动序列之间的负抖动序列的持续时间间隔;累加模块,用于如果所述负抖动序列的持续时间间隔小于预设的持续时间阈值,将在所述负抖动序中每一数据包的抖动值进行累加,得到负累加值;聚合模块,用于如果所述负抖动序的负抖动值的负累加值小于所述相邻两个正抖动序列中任一正抖动序列的最大相对时延,将所述数据包序列中相邻两个正抖动序列聚合为一个正抖动序列。
在其他的实施例中,所述装置还包括:
表示单元,用于将所述一个正抖动序列表示为A(x,x+1,…,x+M),其中x表示所述数据包序列中第x个数据包,所述数据包序列中第x个数据包为所述正抖动序列中的第一个数据包,所述正抖动序列中一共包括(1+M)个数据包,M为大于等于1的整数;
计算单元,用于根据所述正抖动序列中第一个数据包至第i个数据包的抖动值,计算所述正抖动序列中第i个数据包相对于所述正抖动序列中第一个数据包的相对时延,其中i为大于2且小于等于(1+M)的整数;
组成单元,用于将相对时延大于预设的相对时延阈值Th的数据包组成时延异常序列集合;
第二输出单元,用于输出所述时延异常序列集合。
在其他的实施例中,所述组成单元包括:
第二确定模块,用于确定所述正抖动序列中每一个数据包属于静默期的数据包还是活跃期的数据包;
组成模块,用于将所述正抖动序列中属于活跃期的数据包,且相对时延大于预设的相对时延阈值Th的数据包组成时延异常序列集合。
在其他的实施例中,所述第二确定模块包括:
第一确定子模块,用于确定所述正抖动序列中第i个数据包和第(i-1)个数据包的发送时间S(i)和S(i-1),i为大于等于2的整数;
第二确定子模块,用于根据(S(i)-S(i-1))/(SN(i)-SN(i-1))计算第i个数据包的发送间隔,如果所述第i个数据包的发送间隔大于等于预设的静默期阈值,则确定所述第i个数据包属于静默期的数据包;反之,确定所述第i个数据包属于活跃期的数据包;其中,所述S(i-1)为所述正抖动序列中第(i-1)个数据包的发送时间,所述S(i)为第i个数据包的发送时间、SN(i-1)为第(i-1)个数据包的标识和SN(i)为第i个数据包的标识。
在其他的实施例中,所述正抖动序列表示为A(x,x+1,…,x+M),其中x表示所述数据包序列中第x个数据包,所述数据包序列中第x个数据包为所述正抖动序列中的第一个数据包,所述正抖动序列中一共包括(1+M)个数据包;时延异常序列集合标识为A’(x+m,x+m+1,…,x+M),其中x+m表示所述数据包序列中第(x+m)个数据包,且为所述正抖动序列中的第(m+1)个数据包,其中m的取值大于等于1且小于等于M,所述时延异常序列集合共包括(1+M-m)个数据包;
所述装置还包括:第一记录单元,用于记录所述时延异常序列集合的属性,所述时延异常序列集合的属性包括:时延异常事件的开始时间、结束时间、劣化时长、受影响时长和质差程度,其中:
记录所述时延异常序列集合的属性,所述时延异常序列集合的属性包括:时延异常事件的开始时间、结束时间、劣化时长、受影响时长和质差程度,其中:
开始时间为所述时延异常序列集合中第一个数据包的前一包接收时间:R(x+m-1);
结束时间为所述正抖动序列最后一个包的接收时间:R(x+M);
劣化时长为接收起止时间间隔:R(x+M)-R(x+m-1)。
受影响时长:S(x+M)-S(x+m-1);
质差程度为连续序列中最大相对时延大于门限值的程度R_delay_max-Th;
其中,R(j)为所述数据包序列中第j个数据包的接收时间,S(j)为所述数据包序列中第j个数据包的是发送时间。
在其他的实施例中,所述装置还包括:
第二确定单元,用于将所述正抖动序列中属于活跃期的时延异常序列确定为中间序列;
第三确定单元,用于将所述数据包序列中连续丢包数大于预设的丢包阈值的序列确定为丢包异常序列B(b1,b2,…),将所述丢包异常序列中每一个样本确定为一次连续丢包事件;
第二记录单元,用于记录所述异常包序列的属性,所述异常包序列的属性包括:连续丢包事件的劣化时长、受影响时长和质差程度,其中:
开始时间为该样本b的前一接收RTP包的接收时间R(b-1);
结束时间为该样本b的接收时间R(b);
劣化时长为该样本b与前一接收RTP包之间的接收时间差R(b)-R(b-1);
受影响时长S(b-1)-S(b);
质差程度为样本b相对前一数据包的连续丢包数。
在其他的实施例中,所述第一确定单元,包括:
记录模块,用于记录所述数据包序列中第(i-1)个数据包到达本地的时间R(i-1),并对第(i-1)个数据包的包头进行解析,得到第(i-1)个数据包的标识SN(i-1)和时间戳S(i-1);i为大于等于2的整数;
计算模块,用于根据第i个数据包到达本地的时间R(i)、第(i-1)个数据包到达本地的时间R(i-1)、第i个数据包的时间戳S(i)和第(i-1)个数据包的时间戳S(i-1),计算第i个数据包的接收时间与预期接收时间的偏差作为第i个数据包的抖动值D(i);;
第三确定模块,用于对与第i个数据包前后相邻的n个数据包的偏差取滑动平均值,得到平滑滤波后的抖动值D’(i);根据所述平滑滤波后的抖动值D’(i)确定所述数据包序列中的正抖动序列。
在其他的实施例中,所述根据第i个数据包到达本地的时间R(i)、第(i-1)个数据包到达本地的时间R(i-1)、第i个数据包的时间戳S(i)和第(i-1)个数据包的时间戳S(i-1)计算第i个数据包的接收时间与预期接收时间的偏差D(i),包括:计算第i个数据包的接收时间与预期接收时间的偏差D(i)=(R(i)-R(i-1))–(S(i)-S(i-1)),i>=2;其中,R(i)-R(i-1)表示第i个个数据包到达本地的时间R(i)和第(i-1)个数据包到达本地的时间R(i-1)之间的差值,S(i)-S(i-1)表示第i个数据包中携带的时间戳S(i)与第(i-1)个数据包中携带的时间戳S(i-1)之间的差值;对应地,所述对与第i个数据包前后相邻的n个数据包的偏差取滑动平均值,得到平滑滤波后的抖动值D’(i),包括:根据公式D’(i)=avg(D(i-n),…,D(i),…,D(i+n))对与第i个包相邻的包抖动值进行滑动平均,得到平滑滤波后的抖动值D’(i),i>=2+n;其中,n为小于二分之一倍的所述数据包序列中数据包的数目的整数,avg表示进行算数平均运算。
以上装置实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本发明装置实施例中未披露的技术细节,请参照本发明方法实施例的描述而理解。
需要说明的是,本发明实施例中,如果以软件功能模块的形式实现上述的检测媒体流业务质量的方法,并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台检测设备执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本发明实施例不限制于任何特定的硬件和软件结合。
对应地,本发明实施例提供一种检测媒体流业务质量的设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述检测媒体流业务质量的方法中的步骤。
对应地,本发明实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述的检测媒体流业务质量的方法中的步骤。
这里需要指出的是:以上存储介质和设备实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本发明装置实施例中未披露的技术细节,请参照本发明存储介质和设备实施例的描述而理解。
需要说明的是,图7为本发明实施例中检测设备的一种硬件实体示意图,如图7所示,该检测设备700的硬件实体包括:处理器701、通信接口702和存储器703,其中
处理器701通常控制检测设备700的总体操作。
通信接口702可以使检测设备通过网络与其他终端或服务器通信。
存储器703配置为存储由处理器701可执行的指令和应用,还可以缓存待处理器701以及检测设备700中各模块待处理或已经处理的数据(例如,图像数据、音频数据、语音通信数据和视频通信数据),可以通过闪存(FLASH)或随机访问存储器(Random AccessMemory,RAM)实现。
应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本发明的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本发明的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本发明各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(Read Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台检测设备执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (17)
1.一种检测媒体流业务质量的方法,其特征在于,所述方法包括:
接收一段时间的数据包序列,确定所述数据包序列中的正抖动序列;所述正抖动序列中,抖动值大于0的数据包的数量大于抖动值小于0的数据包的数量;
将所述正抖动序列中每一数据包的抖动值进行累加,得到最大相对时延;
如果所述最大相对时延大于预设的相对时延阈值Th,则确定所述正抖动序列确定为一次异常事件,并输出所述正抖动序列。
2.根据权利要求1所述的方法,其特征在于,所述确定所述数据包序列中的正抖动序列,包括:
记录所述数据包序列中第(i-1)个数据包到达本地的时间R(i-1),并对第(i-1)个数据包的包头进行解析,得到第(i-1)个数据包的标识SN(i-1)和时间戳S(i-1);i为大于等于2的整数;
根据第i个数据包到达本地的时间R(i)、第(i-1)个数据包到达本地的时间R(i-1)、第i个数据包的时间戳S(i)和第(i-1)个数据包的时间戳S(i-1),计算第i个数据包的接收时间与预期接收时间的偏差作为第i个数据包的抖动值D(i);
对与第i个数据包前后相邻的n个数据包的偏差取滑动平均值,得到平滑滤波后的抖动值D’(i);
根据所述平滑滤波后的抖动值D’(i)确定所述数据包序列中的正抖动序列。
3.根据权利要求2所述的方法,其特征在于,所述根据第i个数据包到达本地的时间R(i)、第(i-1)个数据包到达本地的时间R(i-1)、第i个数据包的时间戳S(i)和第(i-1)个数据包的时间戳S(i-1)计算第i个数据包的接收时间与预期接收时间的偏差D(i),包括:计算第i个数据包的接收时间与预期接收时间的偏差D(i)=(R(i)-R(i-1))–(S(i)-S(i-1)),i>=2;其中,R(i)-R(i-1)表示第i个数据包到达本地的时间R(i)和第(i-1)个数据包到达本地的时间R(i-1)之间的差值,S(i)-S(i-1)表示第i个数据包中携带的时间戳S(i)与第(i-1)个数据包中携带的时间戳S(i-1)之间的差值;
所述对与第i个数据包前后相邻的n个数据包的偏差取滑动平均值,得到平滑滤波后的抖动值D’(i),包括:根据公式D’(i)=avg(D(i-n),…,D(i),…,D(i+n))对与第i个包相邻的包抖动值进行滑动平均,得到平滑滤波后的抖动值D’(i),i>=2+n;其中,n为小于二分之一倍的所述数据包序列中数据包的数目的整数,avg表示进行算数平均运算。
4.根据权利要求1所述的方法,其特征在于,与所述正抖动序列中第一个数据包相邻的前一个数据包的抖动值小于0,与所述正抖动序列中最后一个数据包相邻的后一个数据包的抖动值也小于0;
所述正抖动序列中的每一个数据包的抖动值都大于0,或者,所述正抖动序列中的抖动值小于0的数据包的数目满足预设的第一阈值条件,或者,所述正抖动序列中的抖动值小于0的连续数据包的数目满足预设的第二阈值条件;所述第一阈值条件或第二阈值条件包括个数阈值或比例阈值。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
如果所述数据包序列中相邻两个正抖动序列满足预设条件,将所述数据包序列中相邻两个正抖动序列聚合为一个正抖动序列。
6.根据权利要求5所述的方法,其特征在于,所述如果所述数据包序列中相邻两个正抖动序列满足预设条件,将所述数据包序列中相邻两个正抖动序列聚合为一个正抖动序列,包括:
确定所述相邻两个正抖动序列之间的负抖动序列的持续时间间隔;
如果所述负抖动序列的持续时间间隔小于预设的持续时间阈值,将在所述负抖动序中每一数据包的抖动值进行累加,得到负累加值;
如果所述负抖动序的负抖动值的负累加值小于所述相邻两个正抖动序列中任一正抖动序列的最大相对时延,将所述数据包序列中相邻两个正抖动序列聚合为一个正抖动序列。
8.根据权利要求6所述的方法,其特征在于,所述方法还包括:
将所述一个正抖动序列表示为A(x,x+1,…,x+M),其中x表示所述数据包序列中第x个数据包,所述数据包序列中第x个数据包为所述正抖动序列中的第一个数据包,所述正抖动序列中一共包括(1+M)个数据包,M为大于等于1的整数;
根据所述正抖动序列中第一个数据包至第i个数据包的抖动值,计算所述正抖动序列中第i个数据包相对于所述正抖动序列中第一个数据包的相对时延,其中i为大于2且小于等于(1+M)的整数;
将相对时延大于预设的相对时延阈值Th的数据包组成时延异常序列集合;
输出所述时延异常序列集合。
10.根据权利要求8所述的方法,其特征在于,所述将相对时延大于预设的相对时延阈值Th的数据包组成时延异常序列集合,包括:
确定所述正抖动序列中每一个数据包属于静默期的数据包还是活跃期的数据包;
将所述正抖动序列中属于活跃期的数据包,且相对时延大于预设的相对时延阈值Th的数据包组成时延异常序列集合。
11.根据权利要求10所述的方法,其特征在于,所述确定所述正抖动序列中每一个数据包属于静默期还是活跃期,包括:
确定所述正抖动序列中第i个数据包和第(i-1)个数据包的发送时间S(i)和S(i-1),i为大于等于2的整数;
根据(S(i)-S(i-1))/(SN(i)-SN(i-1))计算第i个数据包的发送间隔,如果所述第i个数据包的发送间隔大于等于预设的静默期阈值,则所述第i个数据包属于静默期的数据包;反之,所述第i个数据包属于活跃期的数据包;其中,所述S(i-1)为所述正抖动序列中第(i-1)个数据包的发送时间,所述S(i)为第i个数据包的发送时间、SN(i-1)为第(i-1)个数据包的标识和SN(i)为第i个数据包的标识。
12.根据权利要求8所述的方法,其特征在于,所述时延异常序列集合标识为A’(x+m,x+m+1,…,x+M),其中x+m表示所述数据包序列中第(x+m)个数据包,且为所述正抖动序列中的第(m+1) 个数据包,其中m的取值大于等于1且小于等于M,所述时延异常序列集合共包括(1+M-m)个数据包;
所述方法还包括:记录所述时延异常序列集合的属性,所述时延异常序列集合的属性包括:时延异常事件的开始时间、结束时间、劣化时长、受影响时长和质差程度,其中:
开始时间为所述时延异常序列集合中第一个数据包的前一包接收时间:R(x+m-1);
结束时间为所述正抖动序列最后一个包的接收时间:R(x+M);
劣化时长为接收起止时间间隔:R(x+M)-R(x+m-1);
受影响时长:S(x+M)-S(x+m-1);
质差程度为连续序列中最大相对时延大于门限值的程度R_delay_max-Th;
其中,R(j)为所述数据包序列中第j个数据包的接收时间,S(j)为所述数据包序列中第j个数据包的发送时间。
13.根据权利要求1至6任一项所述的方法,其特征在于,所述方法还包括:
将所述正抖动序列中属于活跃期的时延异常序列确定为中间序列;
将所述数据包序列中连续丢包数大于预设的丢包阈值的序列确定为丢包异常序列B(b1,b2,…),将所述丢包异常序列中每一个样本确定为一次连续丢包事件;
记录所述丢包异常序列的属性,所述丢包异常序列的属性包括:连续丢包事件的劣化时长、受影响时长和质差程度,其中:
开始时间为该样本b的前一接收数据包的接收时间R(b-1);
结束时间为该样本b的接收时间R(b);
劣化时长为该样本b与前一接收数据包之间的接收时间差R(b)-R(b-1);
受影响时长S(b-1)-S(b);
质差程度为样本b相对前一数据包的连续丢包数。
14.根据权利要求12所述的方法,其特征在于,所述方法还包括:
将所述正抖动序列中属于活跃期的时延异常序列确定为中间序列;
将所述数据包序列中连续丢包数大于预设的丢包阈值的序列确定为丢包异常序列B(b1,b2,…),将所述丢包异常序列中每一个样本确定为一次连续丢包事件;
将所述时延异常序列集合标识为A’(x+m,x+m+1,…,x+M)和所述丢包异常序列B(b1,b2,…)取并集,得到异常事件序列。
15.一种检测媒体流业务质量的装置,其特征在于,所述装置包括:
接收单元,用于接收一段时间的数据包序列,确定所述数据包序列中的正抖动序列;所述正抖动序列中,抖动值大于0的数据包的数量大于抖动值小于0的数据包的数量;
累加单元,用于将所述正抖动序列中每一数据包的抖动值进行累加,得到最大相对时延;
第一确定单元,用于如果所述最大相对时延大于预设的相对时延阈值Th,则确定所述正抖动序列确定为一次异常事件;
第一输出单元,用于输出所述正抖动序列。
16.一种检测媒体流业务质量的设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至14任一项所述检测媒体流业务质量的方法中的步骤。
17.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至14任一项所述检测媒体流业务质量的方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711275356.6A CN109889398B (zh) | 2017-12-06 | 2017-12-06 | 一种检测媒体流业务质量的方法及装置、设备、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711275356.6A CN109889398B (zh) | 2017-12-06 | 2017-12-06 | 一种检测媒体流业务质量的方法及装置、设备、存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109889398A CN109889398A (zh) | 2019-06-14 |
CN109889398B true CN109889398B (zh) | 2020-12-04 |
Family
ID=66923651
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711275356.6A Active CN109889398B (zh) | 2017-12-06 | 2017-12-06 | 一种检测媒体流业务质量的方法及装置、设备、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109889398B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230198880A1 (en) * | 2020-04-30 | 2023-06-22 | New H3C Technologies Co., Ltd. | Analysis of data stream |
CN112702230B (zh) * | 2020-12-21 | 2022-07-08 | 厦门亿联网络技术股份有限公司 | 网络拥塞的探测方法、系统、终端设备及可读存储介质 |
WO2024073877A1 (en) * | 2022-10-07 | 2024-04-11 | Shenzhen Tcl New Technology Co., Ltd. | Wireless communication method and device |
CN116781975B (zh) * | 2023-08-17 | 2024-02-06 | 中仪英斯泰克科技有限公司 | 一种媒体流检测方法、装置、终端设备和存储介质 |
CN117081960B (zh) * | 2023-10-16 | 2023-12-22 | 深圳华云信息系统科技股份有限公司 | 数据传输性能的测试方法、装置、电子设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101729303A (zh) * | 2008-10-25 | 2010-06-09 | 华为技术有限公司 | 测量网络性能参数的方法和装置 |
US7894354B2 (en) * | 2002-10-04 | 2011-02-22 | Jds Uniphase Corporation | System and method to monitor RTP streams using RTCP SR/RR packet information |
CN104243242A (zh) * | 2014-09-26 | 2014-12-24 | 厦门亿联网络技术股份有限公司 | 一种基于网络抖动算法反应网络拥塞的方法 |
CN105763942A (zh) * | 2016-04-22 | 2016-07-13 | 烽火通信科技股份有限公司 | 一种iptv机顶盒vmos值的计算方法 |
-
2017
- 2017-12-06 CN CN201711275356.6A patent/CN109889398B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7894354B2 (en) * | 2002-10-04 | 2011-02-22 | Jds Uniphase Corporation | System and method to monitor RTP streams using RTCP SR/RR packet information |
CN101729303A (zh) * | 2008-10-25 | 2010-06-09 | 华为技术有限公司 | 测量网络性能参数的方法和装置 |
CN104243242A (zh) * | 2014-09-26 | 2014-12-24 | 厦门亿联网络技术股份有限公司 | 一种基于网络抖动算法反应网络拥塞的方法 |
CN105763942A (zh) * | 2016-04-22 | 2016-07-13 | 烽火通信科技股份有限公司 | 一种iptv机顶盒vmos值的计算方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109889398A (zh) | 2019-06-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109889398B (zh) | 一种检测媒体流业务质量的方法及装置、设备、存储介质 | |
US7864695B2 (en) | Traffic load density measuring system, traffic load density measuring method, transmitter, receiver, and recording medium | |
US9602376B2 (en) | Detection of periodic impairments in media streams | |
US20070053303A1 (en) | Transmission Quality Monitoring For Multimedia Streams | |
US9210419B2 (en) | System and method for diagnostic modeling of audio and video quality of service | |
EP2757754B1 (en) | Method and device for evaluating media transmission quality | |
US20140337871A1 (en) | Method to measure quality of experience of a video service | |
WO2014029291A1 (zh) | 一种语音质量评估方法、网元及系统 | |
CN110401622B (zh) | 一种语音质量评估方法、装置、电子设备和存储介质 | |
EP3491784B1 (en) | Estimation of losses in a video stream | |
EP2741439A1 (en) | Network failure detecting method, node, and monitoring center | |
JP2004297803A (ja) | ネットワーク内の音質を評価する方法 | |
US11343301B2 (en) | Managing jitter buffer length for improved audio quality | |
US11122329B2 (en) | Predicting multimedia session MOS | |
JP5335867B2 (ja) | 基本GoP長を用いた映像品質推定装置及び方法及びプログラム | |
JP2007135040A (ja) | ユーザ体感品質推定装置、方法、およびプログラム | |
EP2127278B1 (en) | Method and system for estimating modem fax performance over packet networks | |
JP2011009919A (ja) | ユーザ体感品質推定システムおよび方法 | |
JP2007329776A (ja) | ネットワーク品質分析装置、品質クラス決定装置、ネットワーク品質分析方法、品質クラス決定方法、およびプログラム | |
Sun et al. | Voip quality of experience (QoE) | |
Nihei et al. | A QoE indicator and a transmission control method for VoIP on mobile networks considering delay spikes | |
Orosz et al. | VoicePerf: A Quality Estimation Approach for No-reference IP Voice Traffic | |
US20140122933A1 (en) | Method, Node, and Monitoring Center Detecting Network Fault | |
JP4460549B2 (ja) | ユーザ体感品質推定装置、方法、およびプログラム | |
JP5491150B2 (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 |