一种RTP丢包检测方法技术

技术编号:19219497 阅读:30 留言:0更新日期:2018-10-20 08:07
本发明专利技术涉及一种RTP丢包检测方法,包括以下步骤:S1:获取IP数据包,依次解析IP包、UDP包和RTP包;S2:读取并记录此时的RTP包,将RTP包的序列号存入数组中,并对RTP包计数count设置为1;S3:判断计数count是否超过设定的时间,若已超过,结束对RTP丢包的检测,否则,将计数count设置为count+1,继续获取下一个IP数据包,重新执行步骤S1;S4:对数组中的序列号从小到大进行排序,获取数组中的最大值和最小值;S5:判断数组中的最大值和最小值的差值与计数count的值是否相等,若相等,返回步骤S3,若不等,对数组中的数字进行判断,并进行下一步丢包检测。与现有技术相比,本发明专利技术可在不稳定的传输过程中实现更加准确有效的丢包检测。

【技术实现步骤摘要】
一种RTP丢包检测方法
本专利技术涉及电子信息
,尤其是涉及一种RTP丢包检测方法。
技术介绍
IPTV作为一种新媒体形态,逐渐兴起且被业界广泛关注着。在IPTV系统中,采用的视频流封装格式是以RTP/UDP/IP为主的,RTP包由一个固定的RTP头文件和有效负载的数据共同组成,头文件主要包含版本号(2bit)、填充位(1bit)、扩展位(1bit)、计数器(4bit)、标记位(1bit)、荷载类型(7bit)、序列号(16bit)、时间戳(32bit)和来源标识(32bit)。每个RTP包的头文件的前12位是均相同的,而序列号的取值范围为0~65535,当每发送一个RTP,序列号加一,由于序列号的值超过65535时会自动归零,重新计数,可能会出现两个相同的序列号的情况。IPTV依靠网络进行传输数据,在传输过程中会发生丢包现象,这会造成用户无法观看节目,然而目前还未有在不稳定的传输过程中实现准确有效的RTP丢包检测方法。
技术实现思路
本专利技术的目的就是为了克服上述现有技术存在的缺陷而提供一种RTP丢包检测方法。本专利技术的目的可以通过以下技术方案来实现:本专利技术提供一种RTP丢包检测方法,该方法包括以下步骤:步骤一、获取IP数据包,依次解析IP包、UDP包和RTP包;步骤二、读取并记录此时的RTP包,将RTP包的序列号存入数组中,并对RTP包计数count设置为1;步骤三、判断计数count是否超过设定的时间,若已超过,结束对RTP丢包的检测,否则,将计数count设置为count+1,继续获取下一个IP数据包,重新执行步骤一;步骤四、对数组中的序列号从小到大进行排序,获取数组中的最大值和最小值;步骤五、判断数组中的最大值和最小值的差值与计数count的值是否相等,若相等,返回步骤三,若不等,判断数组中是否存在两个相同的数字,若存在,则将数组中具有相同两个数字中的一个数字移动到另一个数组中,更新原数组,并对更新后的数组重新排序,获取其最大值和最小值后,重新对最大值与最小值的差值与计数count的值进行判断,若不存在,则表明丢包,结束对RTP的丢包检测。优选地,设定的时间范围为5分钟~2.5小时。优选地,另一个数组与原数组的大小相同。优选地,采用协议包头格式对IP包、UDP包和RTP包进行解析。与现有技术相比,本专利技术将RTP包的序列号存入数组,并对数组中的数据进行排序后进行丢包检测,RTP的序列号可使解码器对顺序混乱的包重新排序,能够在不稳定的传输过程中实现更加准确有效的丢包检测。附图说明图1为本专利技术检测方法的流程图。具体实施方式下面结合附图和具体实施例对本专利技术进行详细说明。实施例如图1所示,本专利技术涉及一种RTP丢包检测方法,包括以下步骤:1、获取IP数据包,并根据协议包头格式依次解析IP、UDP、RTP包;2、读取并记录此时的RTP包,并将其序列号W存入数组P[i]中,并对RTP包计数count设置为1;3、判断计数count是否超过设定的时间:31)若超过,则结束对RTP的丢包检测;32)若没有,则count=count+1,继续获取下一个IP数据包,即回到步骤1;4、对数组中的序列号从小到大进行排序,获取数组P[i]中的最大值Pmax和最小值Pmin;5、判断数组P[i]中的最大值Pmax和最小值Pmin的差值以及计数count的值是否相等:51)若相等,则返回步骤3;52)若不等,则开始判断数组P[i]中是否存在两个相同的数字;6、若数组P[i]中存在有两个相同的数字,则将数组P[i]中具有相同两个数字的中一个移动到与数组P[i]大小相同的另一数组Q[i]中,更新P[i],并对P[i]、Q[i]重新排序,求出其各自的最大值和最小值,返回步骤5;若不存在,则表明丢包,并结束对RTP的丢包检测。依据本专利技术方法的流程,本实施例对实际丢包进行了实验检测,检测的结果如表1所示:表1RTP丢包检测实验数据由表1可知,对于不同的设定时间,检测出的RTP丢包的实际数量与理论数量几乎无差别,准确率极高,证明利用本专利技术方法可以在实际测试中很好地检测出RTP丢包的个数。以上所述,仅为本专利技术的具体实施方式,但本专利技术的保护范围并不局限于此,任何熟悉本
的工作人员在本专利技术揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本专利技术的保护范围之内。因此,本专利技术的保护范围应以权利要求的保护范围为准。本文档来自技高网
...

【技术保护点】
1.一种RTP丢包检测方法,其特征在于,该方法包括以下步骤:S1:获取IP数据包,依次解析IP包、UDP包和RTP包;S2:读取并记录此时的RTP包,将RTP包的序列号存入数组中,并对RTP包计数count设置为1;S3:判断计数count是否超过设定的时间,若已超过,结束对RTP丢包的检测,否则,将计数count设置为count+1,继续获取下一个IP数据包,重新执行步骤S1;S4:对数组中的序列号从小到大进行排序,获取数组中的最大值和最小值;S5:判断数组中的最大值和最小值的差值与计数count的值是否相等,若相等,返回步骤S3,若不等,对数组中的数字进行判断,并进行下一步丢包检测。

【技术特征摘要】
1.一种RTP丢包检测方法,其特征在于,该方法包括以下步骤:S1:获取IP数据包,依次解析IP包、UDP包和RTP包;S2:读取并记录此时的RTP包,将RTP包的序列号存入数组中,并对RTP包计数count设置为1;S3:判断计数count是否超过设定的时间,若已超过,结束对RTP丢包的检测,否则,将计数count设置为count+1,继续获取下一个IP数据包,重新执行步骤S1;S4:对数组中的序列号从小到大进行排序,获取数组中的最大值和最小值;S5:判断数组中的最大值和最小值的差值与计数count的值是否相等,若相等,返回步骤S3,若不等,对数组中的数字进行判断,并进行下一步丢包检测。2.根据权利要求1所述的一种RTP丢包...

【专利技术属性】
技术研发人员:袁三男陈东亚
申请(专利权)人:上海电力学院
类型:发明
国别省市:上海,31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1