本发明属于通讯技术领域,涉及一种故障诊断方法,尤其涉及一种HLS直播卡顿故障诊断方法。
背景技术:
随着以PC为主导的固定互联网和以智能手机为主导的移动互联网的快速发展,基于OTT (Over The Top)技术的互联网电视、移动视频和多屏互动业务正以惊人速度发展。OTT视频主要有两种技术实现方式:传统的HTTP渐进下载技术(即边下载视频文件边播放)和近年来兴起的HTTP动态码率自适应技术。
目前,苹果公司提出的HLS (HTTP Live Streaming)是典型的、应用较为广泛的HTTP动态码率自适应技术之一,苹果公司已将HLS技术提交为IETF标准草案。在HLS系统中,媒体流分割器将编码器输出的MPEG2-TS视频流分割为一系列连续的、长度均等的小TS分片文件,并将它们存储在Web内容分发服务器。HLS客户端设备可在可用带宽的基础上,自动向Web服务器请求合适的视频质量(即不同的分辨率和码率)的分片文件,从而给用户最好的视觉体验。为了便于HLS客户端实现不同码率分片之间的快速、实时切换,HLS视频一般采用较短的分片长度(例如10秒)。HLS技术即可以支持VoD点播业务,也可以支持直播业务。由于HLS系统可向不同屏幕大小的终端提供适合分辨率的视频分片文件,并可在不同网络带宽情况下实现流畅的视频播放,因此HLS被业内认为是实现多屏互动视频的理想解决方案。
在OTT视频业务领域,HLS是实现直播业务的主流技术。作为一种数字视频业务,OTT电视业务势必会同传统的有线电视和IPTV竞争,虽然OTT电视的主要优势在于VOD点播,但也不能忽视用户对直播业务的基本需求。由于人们已经习惯了有线电视和IPTV直播业务较好的收视体验,他们自然也会对HLS直播视频质量产生类似的期望值,因此如何保证HLS直播能基本达到有线电视和IPTV直播质量水平,就成为OTT电视成功的关键要素之一了。
由于HLS直播业务需要通过各级内容提供商平台(包括转码、切片、M3U8服务器)、电信网络运营商的IP网络、以及用户家庭网络和终端才能到达最终用户,并且直播业务对实时性的要求很高(无法采用OTT点播业务的大量预缓冲策略),这都给HLS直播业务质量保障带来了许多困难和挑战,尤其体现在:如何对HLS直播卡顿问题进行快速故障诊断和责任定位,是内容运营商、网络运营商、用户家庭网络还是OTT机顶盒的问题?
相对于常见的流媒体直播协议(如RTMP、RTP/RTSP),HLS直播最大的不同在于直播客户端获取到的并不是一个连续的视频流,而是一系列MPEG2-TS格式的小切片文件(简称TS分片)和m3u8播放列表文件(简称m3u8文件)。
在HLS直播系统的服务器端将直播流切割成一系列短切片文件进行分段存储,这些文件一般按时间顺序进行编号命名。与之相对应,为了跟踪HLS直播切片文件的可用性和当前位置,在视频服务器器上还需创建含有指向这些TS分片文件指针的m3u8索引文件。对于HLS直播系统,m3u8索引文件是随着时间不断更新的,用于指明在最近的一段时间内生成的TS切片文件。
在HLS客户端会定期向服务器请求m3u8索引文件,若索引文件中存在未下载的新TS分片内容,则根据索引文件的指向地址下载这些TS分片文件。就这样,HLS客户端不断地下载m3u8和TS分片,并播放这些TS分片的媒体内容;因为服务器端总是会将最新的直播流生成新的TS分片,这样客户端只要不停的按顺序播放从服务器获取到的文件,就实现了直播。
技术实现要素:
本发明所要解决的技术问题是:提供一种HLS直播卡顿故障诊断方法,可提高诊断的效率及精确度。
为解决上述技术问题,本发明采用如下技术方案:
一种HLS直播卡顿故障诊断方法,所述方法包括如下步骤:
步骤S1、通过OTT终端上部署软探针,即检测软件;对终端网口上的HLS直播流进行数据捕获、过滤和深度包解析,并定期检测OTT终端的CPU利用率CPU%和内存利用率RAM%;
步骤S2、对HLS直播流中的m3u8索引列表下载过程进行QoS指标测量,包括:
(1)m3u8响应时延RT-m3u8:此参数可通过计算终端对m3u8文件的HTTP GET请求包和HTTP响应包之间的时间标签差值获得。
(2)m3u8内容更新时间UT-m3u8:此参数通过对每个HLS直播m3u8列表中的内容进行解析和提取,然后计算m3u8列表内容出现更新的时间周期;
步骤S3、对HLS直播流中的TS分片下载过程进行各项QoS指标测量,包括:
(1)TCP连接建立时延Td:此参数可通过计算TS分析下载时TCP SYN包和ACK包之间的时间标签差值获得;
(2)TCP重传率Tr:此参数可通过跟踪TS分析下载过程中TCP数据包头中的32位序列号字段的连续性来计算;
(3)分片响应时延Hd:此参数可通过计算TS分析下载的HTTP GET请求包和HTTP响应包之间的时间标签差值获得;
(4)分片返回码Hc:此参数可通过提取CDN服务器对终端TS分片请求的HTTP响应包中所包含的返回码获得;
(5)分片下载时长DT:此参数计算HLS客户端发起分片下载请求至收到该分片全部字节内容所经历的时间长度;
(6)分片播放时长PT:此参数可通过解析HLS m3u8播放列表内容,并从中提取分片的时长字段获取;
步骤S4、当检测到HLS直播流出现卡顿时,则启动卡顿原因判断流程;若导致卡顿的分片下载时长DT大于分片播放时长PT,则转至步骤S5;若导致卡顿的分片下载时长DT小于等于分片播放时长PT,则转至步骤S6;
步骤S5、若卡顿时刻的CPU%>A1或RAM%>A2,则提示“OTT终端存在性能问题”,其中A1为设定的CPU利用率超标门限值;A2为设定的内存利用率超标门限值;
对导致卡顿的TS分片下载过程的TCP连接建立时延Td进行分析,若Td>Atd,则提示“IP网络延迟过大”,其中Atd为设定的TCP连接建立时延的门限值;
对导致卡顿的TS分片下载过程的TCP重传率Tr进行分析,若Tr>Ar,则提示“IP网络丢包严重”,其中Ar为设定的TCP重传率门限值;
对导致卡顿的TS分片下载过程的分片响应时延Hd和分片返回码Hc进行分析,若Hd>Ahd或Hc=“5xx”(即以5开头的数字串),则提示“CDN服务器存在性能问题”,其中Ahd为设定的分片响应时延的门限值;
若步骤S5中的以上条件都不符合,则提示“IP网络带宽受限”;
步骤S6、对卡顿时刻最近的m3u8响应时延RT-m3u8进行分析,若RT-m3u8>Am1,则提示“m3u8服务器存在性能问题”,其中Am1为设定的m3u8响应时延的门限值;
对卡顿时刻最近的m3u8更新时间UT-m3u8进行分析,若UT-m3u8>Am2,则提示“直播m3u8的内容更新不及时”,其中Am2为设定的m3u8更新时间的门限值;
对导致卡顿的TS分片下载过程的分片响应时延Hd和分片返回码Hc进行分析,若Hd>Ahd或Hc=“5xx”(即以5开头的数字串),则提示“CDN服务器存在性能问题”,其中Ahd为设定的分片响应时延的门限值;
若步骤S6中的以上条件都不符合,则提示“终端HLS分片调度存在问题”。
本发明通过对HLS直播媒体流进行数据包捕获和深度包解析,检测m3u8索引列表下载和更新情况,并关联分析TS分片下载过程的各项QoS指标,从而判断HLS直播卡顿问题是由于m3u8服务器、CDN服务器、IP承载网络还是OTT终端造成的。
一种HLS直播卡顿故障诊断方法,所述方法包括如下步骤:
步骤S1、通过OTT终端上部署软探针,即检测软件;对终端网口上的HLS直播流进行数据捕获、过滤和深度包解析,并定期检测OTT终端的CPU利用率CPU%和内存利用率RAM%;
步骤S2、对HLS直播流中的m3u8索引列表下载过程进行QoS指标测量,包括:m3u8响应时延RT-m3u8、m3u8内容更新时间UT-m3u8;
步骤S3、对HLS直播流中的TS分片下载过程进行各项QoS指标测量,包括:TCP连接建立时延Td、TCP重传率Tr、分片响应时延Hd、分片返回码Hc、分片下载时长DT、分片播放时长PT;
步骤S4、当检测到HLS直播流出现卡顿时,则启动卡顿原因判断流程;若导致卡顿的分片下载时长DT大于分片播放时长PT,则转至步骤S5;若导致卡顿的分片下载时长DT小于等于分片播放时长PT,则转至步骤S6;
步骤S5、若卡顿时刻的CPU%>A1或RAM%>A2,则判断OTT终端存在性能问题,其中A1为设定的CPU利用率超标门限值;A2为设定的内存利用率超标门限值;
对导致卡顿的TS分片下载过程的TCP连接建立时延Td进行分析,若Td>Atd,则判断IP网络延迟过大,其中Atd为设定的TCP连接建立时延的门限值;
对导致卡顿的TS分片下载过程的TCP重传率Tr进行分析,若Tr>Ar,则判断IP网络丢包严重,其中Ar为设定的TCP重传率门限值;
对导致卡顿的TS分片下载过程的分片响应时延Hd和分片返回码Hc进行分析,若Hd>Ahd或Hc=“5xx”(即以5开头的数字串),则判断CDN服务器存在性能问题,其中Ahd为设定的分片响应时延的门限值;
若步骤S5中的以上条件都不符合,则判断IP网络带宽受限;
步骤S6、对卡顿时刻最近的m3u8响应时延RT-m3u8进行分析,若RT-m3u8>Am1,则判断m3u8服务器存在性能问题,其中Am1为设定的m3u8响应时延的门限值;
对卡顿时刻最近的m3u8更新时间UT-m3u8进行分析,若UT-m3u8>Am2,则判断直播m3u8的内容更新不及时,其中Am2为设定的m3u8更新时间的门限值;
对导致卡顿的TS分片下载过程的分片响应时延Hd和分片返回码Hc进行分析,若Hd>Ahd或Hc=“5xx”(即以5开头的数字串),则判断CDN服务器存在性能问题,其中Ahd为设定的分片响应时延的门限值;
若步骤S6中的以上条件都不符合,则提示“终端HLS分片调度存在问题”。
作为本发明的一种优选方案,步骤S2中,m3u8响应时延RT-m3u8通过计算终端对m3u8文件的HTTP GET请求包和HTTP响应包之间的时间标签差值获得;
m3u8内容更新时间UT-m3u8通过对每个HLS直播m3u8列表中的内容进行解析和提取,然后计算m3u8列表内容出现更新的时间周期。
作为本发明的一种优选方案,步骤S3中,(1)TCP连接建立时延Td通过计算TS分析下载时TCP SYN包和ACK包之间的时间标签差值获得;
(2)TCP重传率Tr通过跟踪TS分析下载过程中TCP数据包头中的32位序列号字段的连续性来计算;
(3)分片响应时延Hd通过计算TS分析下载的HTTP GET请求包和HTTP响应包之间的时间标签差值获得;
(4)分片返回码Hc通过提取CDN服务器对终端TS分片请求的HTTP响应包中所包含的返回码获得;
(5)分片下载时长DT:通过计算HLS客户端发起分片下载请求至收到该分片全部字节内容所经历的时间长度;
(6)分片播放时长PT通过解析HLS m3u8播放列表内容,并从中提取分片的时长字段获取。
本发明的有益效果在于:本发明提出的HLS直播卡顿故障诊断方法,可提高诊断的效率及精确度。
本发明在OTT终端上部署软探针,对网口上的HLS直播流数据包进行捕获和深度包解析,然后测量m3u8索引列表下载的各项QoS指标(包括m3u8响应时延和m3u8更新时间),TS分片下载的各项QoS指标(包括TCP连接建立时延、TCP重传率、分片响应时延、分片返回码、分片下载时长、分片播放时长),以及OTT终端的性能指标(包括CPU利用率、内存利用率),并对这些指标进行关联分析,从而判断HLS直播卡顿问题是由于m3u8服务器、CDN服务器、IP承载网络还是OTT终端造成的。
附图说明
图1为本发明HLS直播卡顿故障诊断方法的流程图。
具体实施方式
下面结合附图详细说明本发明的优选实施例。
实施例一
请参阅图1,本发明揭示了一种HLS直播卡顿故障诊断方法,所述方法包括如下步骤:
【步骤一】通过OTT终端上部署软探针(即检测软件),对终端网口上的HLS直播流进行数据捕获、过滤和深度包解析,并定期检测OTT终端的CPU利用率(CPU%)和内存利用率(RAM%)
【步骤二】对HLS直播流中的m3u8索引列表下载过程进行QoS指标测量,包括:
m3u8响应时延(RT-m3u8):此参数可通过计算终端对m3u8文件的HTTP GET请求包和HTTP响应包之间的时间标签差值获得。
m3u8内容更新时间(UT-m3u8):此参数通过对每个HLS直播m3u8列表中的内容进行解析和提取,然后计算m3u8列表内容出现更新的时间周期。
【步骤三】对HLS直播流中的TS分片下载过程进行各项QoS指标测量,包括:
TCP连接建立时延(Td):此参数可通过计算TS分析下载时TCP SYN包和ACK包之间的时间标签差值获得。
TCP重传率(Tr):此参数可通过跟踪TS分析下载过程中TCP数据包头中的32位序列号字段的连续性来计算。
分片响应时延(Hd):此参数可通过计算TS分析下载的HTTP GET请求包和HTTP响应包之间的时间标签差值获得。
分片返回码(Hc):此参数可通过提取CDN服务器对终端TS分片请求的HTTP响应包中所包含的返回码获得。
分片下载时长(DT):此参数计算HLS客户端发起分片下载请求至收到该分片全部字节内容所经历的时间长度。
分片播放时长(PT):此参数可通过解析HLS m3u8播放列表内容,并从中提取分片的时长字段获取。
【步骤四】当检测到HLS直播流出现卡顿时,则启动如下卡顿原因判断流程:
【步骤五】若导致卡顿的分片下载时长(DT)大于分片播放时长(PT),则进行如下判断流程:
若卡顿时刻的CPU%>A1或RAM%>A2,则提示“OTT终端存在性能问题”,其中A1为设定的CPU利用率超标门限值(如90%);A2为设定的内存利用率超标门限值(如90%);
对导致卡顿的TS分片下载过程的TCP连接建立时延(Td)进行分析,若Td>Atd,则提示“IP网络延迟过大”,其中Atd为设定的TCP连接建立时延的门限值(如300ms);
对导致卡顿的TS分片下载过程的TCP重传率(Tr)进行分析,若Tr>Ar,则提示“IP网络丢包严重”,其中Ar为设定的TCP重传率门限值(如20%);
对导致卡顿的TS分片下载过程的分片响应时延(Hd)和分片返回码(Hc)进行分析,若Hd>Ahd或Hc=“5xx”(即以5开头的数字串),则提示“CDN服务器存在性能问题”,其中Ahd为设定的分片响应时延的门限值(如500ms);
若以上条件都不符合,则提示“IP网络带宽受限”。
【步骤六】若导致卡顿的分片下载时长(DT)小于等于分片播放时长(PT),则进行如下判断流程:
对卡顿时刻最近的m3u8响应时延(RT-m3u8)进行分析,若RT-m3u8>Am1,则提示“m3u8服务器存在性能问题”,其中Am1为设定的m3u8响应时延的门限值(如500ms);
对卡顿时刻最近的m3u8更新时间(UT-m3u8)进行分析,若UT-m3u8>Am2,则提示“直播m3u8的内容更新不及时”,其中Am2为设定的m3u8更新时间的门限值(如20s);
对导致卡顿的TS分片下载过程的分片响应时延(Hd)和分片返回码(Hc)进行分析,若Hd>Ahd或Hc=“5xx”(即以5开头的数字串),则提示“CDN服务器存在性能问题”,其中Ahd为设定的分片响应时延的门限值(如500ms);
若以上条件都不符合,则提示“终端HLS分片调度存在问题”。
实施例二
一种HLS直播卡顿故障诊断方法,所述方法包括如下步骤:
【步骤S1】通过OTT终端上部署软探针,即检测软件;对终端网口上的HLS直播流进行数据捕获、过滤和深度包解析,并定期检测OTT终端的CPU利用率CPU%和内存利用率RAM%;
【步骤S2】对HLS直播流中的m3u8索引列表下载过程进行QoS指标测量,包括:
(1)m3u8响应时延RT-m3u8:此参数可通过计算终端对m3u8文件的HTTP GET请求包和HTTP响应包之间的时间标签差值获得。
(2)m3u8内容更新时间UT-m3u8:此参数通过对每个HLS直播m3u8列表中的内容进行解析和提取,然后计算m3u8列表内容出现更新的时间周期;
【步骤S3】对HLS直播流中的TS分片下载过程进行各项QoS指标测量,包括:
(1)TCP连接建立时延Td:此参数可通过计算TS分析下载时TCP SYN包和ACK包之间的时间标签差值获得;
(2)TCP重传率Tr:此参数可通过跟踪TS分析下载过程中TCP数据包头中的32位序列号字段的连续性来计算;
(3)分片响应时延Hd:此参数可通过计算TS分析下载的HTTP GET请求包和HTTP响应包之间的时间标签差值获得;
(4)分片返回码Hc:此参数可通过提取CDN服务器对终端TS分片请求的HTTP响应包中所包含的返回码获得;
(5)分片下载时长DT:此参数计算HLS客户端发起分片下载请求至收到该分片全部字节内容所经历的时间长度;
(6)分片播放时长PT:此参数可通过解析HLS m3u8播放列表内容,并从中提取分片的时长字段获取;
【步骤S4】当检测到HLS直播流出现卡顿时,则启动卡顿原因判断流程;若导致卡顿的分片下载时长DT大于分片播放时长PT,则转至步骤S5;若导致卡顿的分片下载时长DT小于等于分片播放时长PT,则转至步骤S6;
【步骤S5】若卡顿时刻的CPU%>A1或RAM%>A2,则判断OTT终端存在性能问题,其中A1为设定的CPU利用率超标门限值;A2为设定的内存利用率超标门限值;
对导致卡顿的TS分片下载过程的TCP连接建立时延Td进行分析,若Td>Atd,则判断IP网络延迟过大,其中Atd为设定的TCP连接建立时延的门限值;
对导致卡顿的TS分片下载过程的TCP重传率Tr进行分析,若Tr>Ar,则判断IP网络丢包严重,其中Ar为设定的TCP重传率门限值;
对导致卡顿的TS分片下载过程的分片响应时延Hd和分片返回码Hc进行分析,若Hd>Ahd或Hc=“5xx”(即以5开头的数字串),则判断CDN服务器存在性能问题,其中Ahd为设定的分片响应时延的门限值;
若步骤S5中的以上条件都不符合,则判断IP网络带宽受限;
【步骤S6】对卡顿时刻最近的m3u8响应时延RT-m3u8进行分析,若RT-m3u8>Am1,则判断m3u8服务器存在性能问题,其中Am1为设定的m3u8响应时延的门限值;
对卡顿时刻最近的m3u8更新时间UT-m3u8进行分析,若UT-m3u8>Am2,则判断直播m3u8的内容更新不及时,其中Am2为设定的m3u8更新时间的门限值;
对导致卡顿的TS分片下载过程的分片响应时延Hd和分片返回码Hc进行分析,若Hd>Ahd或Hc=“5xx”(即以5开头的数字串),则判断CDN服务器存在性能问题,其中Ahd为设定的分片响应时延的门限值;
若步骤S6中的以上条件都不符合,则判断终端HLS分片调度存在问题。
综上所述,本发明提出的HLS直播卡顿故障诊断方法,可提高诊断的效率及精确度。
本发明在OTT终端上部署软探针,对网口上的HLS直播流数据包进行捕获和深度包解析,然后测量m3u8索引列表下载的各项QoS指标(包括m3u8响应时延和m3u8更新时间),TS分片下载的各项QoS指标(包括TCP连接建立时延、TCP重传率、分片响应时延、分片返回码、分片下载时长、分片播放时长),以及OTT终端的性能指标(包括CPU利用率、内存利用率),并对这些指标进行关联分析,从而判断HLS直播卡顿问题是由于m3u8服务器、CDN服务器、IP承载网络还是OTT终端造成的。
这里本发明的描述和应用是说明性的,并非想将本发明的范围限制在上述实施例中。这里所披露的实施例的变形和改变是可能的,对于那些本领域的普通技术人员来说实施例的替换和等效的各种部件是公知的。本领域技术人员应该清楚的是,在不脱离本发明的精神或本质特征的情况下,本发明可以以其它形式、结构、布置、比例,以及用其它组件、材料和部件来实现。在不脱离本发明范围和精神的情况下,可以对这里所披露的实施例进行其它变形和改变。