一种rtp报文识别方法及其装置的制造方法

文档序号:8398111阅读:390来源:国知局
一种rtp报文识别方法及其装置的制造方法
【技术领域】
[0001]本发明涉及通信技术领域,尤其是涉及一种RTP报文识别方法及其装置。
【背景技术】
[0002]随着电话会议和视频监控等实时音视频数据传输的广泛存在,RTP(Real-TimeTransport Protocol,实时传输协议)得到了越来越多的应用,其目的是提供时间信息和实现流同步,主要提供负载类型标识、顺序编号、时间定位和传输监控等服务。
[0003]RTP的典型应用建立在UDP(User Datagram Protocol,用户数据报协议)上。UDP协议在网络中与其他协议一样用于处理报文是一种无连接的协议,处于通信协议第四层传输层,在IP协议的上一层。对于网络层和传输层的协议(如IP、UDP和TCP等)均可以通过报头的特殊字段(例如IP报头的PR0T0C0LC(协议)字段)进行识别,但是对于应用层协议RTP没有字段用于标识上层协议是RTP协议。
[0004]ROHC (Robust Header Compress1n,健壮性压缩)是一种用于压缩 Internet 网络报文头的标准,其中,每一个头压缩算法对应于一组特定的网络层、传输层和应用层协议组合,比如:RTP头压缩算法可用于压缩RTP报文(包括RTP/UDP/IP三层报头),UDP头压缩算法可用于压缩UDP报文(包括UDP/IP两层报头)或RTP报文,IP (Internet Protocol,网络之间互连的协议)头压缩算法可用于压缩IP报文或UDP报文或RTP报文。其中,IP头压缩效率要小于UDP头压缩,UDP头压缩效率要小于RTP头压缩;对于一种报文的压缩,当有多个头压缩算法可供选择时,优先选择压缩效率最高的压缩算法,比如一个RTP报文,既可用IP头压缩算法,也可以用UDP头压缩算法,还可以用RTP头压缩算法进行压缩,优先选择压缩效率最高的头压缩算法进行压缩,以达到最大的压缩效率。如果用RTP头压缩算法对非RTP报文进行压缩,将导致头压缩性能的低下,如果接收到的报文中,RTP报文比较少时,用RTP头压缩算法将对头压缩性能造成极大的影响,造成头压缩适应性和压缩效率的低下。
[0005]现有技术中,在进行压缩时,首先根据源IP地址、目的IP地址以及端口号等信息将Internet网络数据包分成不同的数据流,再对每个数据流中的报文报头组成进行分析,以确定应用于该数据流的头压缩算法。
[0006]因此,如何高效和准确识别RTP报文,是目前需要解决的问题。

【发明内容】

[0007]本发明实施例提供了一种RTP报文识别方法及其装置,用以实现高效和准确地识别RTP报文。
[0008]为此,本发明一方面提供一种RTP报文识别方法,包括:
[0009]接收UDP/IP报文,获取所述UDP/IP报文的UDP报头、UDP负载中的RTP报头;
[0010]根据UDP负载的长度,以及UDP报头中的源端口号、目的端口号和RTP报头中的RTP版本号中的一种或多种,判断是否能够排除所述UDP/IP报文是RTP报文的可能性;[0011 ] 若否,则根据所述RTP报头中的同步源标识符SSRC、序列号SN以及时间戳,对所述UDP/IP报文是否是RTP报文进行判决。
[0012]其中,根据UDP负载的长度,以及UDP报头中的源端口号、目的端口号和RTP报头中的RTP版本号中的一种或多种,判断是否能够排除所述UDP/IP报文是RTP报文的可能性,包括:若所述m)P/IP报文满足以下第一判决条件之一,则排除所述UDP/IP报文是RTP报文的可能性,所述第一判决条件包括:所述UDP/IP报文的负载长度小于RTP报头最小字节数;所述UDP/IP报文的UDP报头中的源端口号或目的端口小于通用端口号,或者是会话发起协议所对应的端口号;所述m)P/IP报文的UDP的目的端口号是奇数;所述UDP/IP报文的RTP报头中的RTP版本号不为2。
[0013]根据所述RTP报头中的SSRC、SN以及时间戳,对所述UDP/IP报文是否是RTP报文进行判决,包括:若所述UDP/IP报文满足以下第二判决条件之一,则判定所述UDP/IP报文不是RTP报文,所述第二判决条件包括:所述m)P/IP报文的RTP报头中的SSRC不等于上一个连续UDP/IP报文的SSRC ;所述UDP/IP报文的RTP头中的SN和时间戳不满足同时大于或者同时小于上一个连续Μ)Ρ/ΙΡ报文的SN和时间戳。
[0014]根据所述第二判决条件无法判定所述UDP/IP报文不是RTP报文,则还包括:将计数器的计数值加I ;若所述计数器的计数值大于设定阈值,则判定所述UDP/IP报文为RTP报文,其中,所述设定阈值为大于I的整数。
[0015]若所述UDP/IP报文满足所述第二判决条件之一,则重置所述计数器。
[0016]基于上述所述RTP报文识别方法,本发明提供一种RTP报文识别装置,包括:解析模块,用于接收m)P/IP报文,获取所述UDP/IP报文的UDP报头、UDP负载中的RTP报头;第一判断模块,用于根据UDP负载的长度,以及UDP报头中的源端口号、目的端口号和RTP报头中的RTP版本号中的一种或多种,判断是否能够排除所述UDP/IP报文是RTP报文的可能性;第二判断模块,用于在第一判断单元不能排除所述UDP/IP报文是RTP报文的可能性的情况下,根据所述RTP报头中的同步源标识符SSRC、序列号SN以及时间戳,对所述UDP/IP报文是否是RTP报文进行判决。
[0017]其中,第一判断模块,具体用于:若所述UDP/IP报文满足以下第一判决条件之一,则排除所述UDP/IP报文是RTP报文的可能性,所述第一判决条件包括:所述UDP/IP报文的负载长度小于RTP报头最小字节数;所述UDP/IP报文的UDP报头中的源端口号或目的端口小于通用端口号,或者是会话发起协议所对应的端口号;所述UDP/IP报文的UDP的目的端口号是奇数;所述m)P/IP报文的RTP报头中的RTP版本号不为2。
[0018]UDP/IP报文的RTP报头中的RTP版本号不为2。
[0019]第二判断模块,具体用于:若所述UDP/IP报文满足以下第二判决条件之一,则判定所述UDP/IP报文不是RTP报文,所述第二判决条件包括:所述UDP/IP报文的RTP报头中的SSRC不等于上一个连续UDP/IP报文的SSRC ;所述UDP/IP报文的RTP头中的SN和时间戳不满足同时大于或者同时小于上一个连续UDP/IP报文的SN和时间戳。
[0020]所述第二判断模块还用于:若根据所述第二判决条件无法判定所述UDP/IP报文不是RTP报文,则将计数器的计数值加1,若所述计数器的计数值大于设定阈值,则判定所述UDP/IP报文为RTP报文,其中,所述设定阈值为大于I的整数。
[0021]所述第二判断模块还用于:若所述UDP/IP报文满足所述第二判决条件之一,则重置所述计数器。
[0022]本发明的上述实施例中采用两级识别的方法,第一级根据UDP负载的长度,以及UDP报头中的源端口号、目的端口号和RPT报头中的RTP版本号进行识别,第二级结合根据RTP报头中的SSRC、SN以及时间戳进行识别,一方面,由于根据UDP负载的长度,以及UDP报头中的源端口号、目的端口号和RPT报头中的RTP版本号快速排除非RTP报文,提高了检测效率,使得识别过程更加高效;另一方面,由于结合利用RTP报头中的SSRC、SN以及时间戳的数据变化特点,保证了 RTP报文识别的准确性。
【附图说明】
[0023]为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1