CN104717209A - 一种rtp报文识别方法及其装置 - Google Patents
一种rtp报文识别方法及其装置 Download PDFInfo
- Publication number
- CN104717209A CN104717209A CN201510073044.1A CN201510073044A CN104717209A CN 104717209 A CN104717209 A CN 104717209A CN 201510073044 A CN201510073044 A CN 201510073044A CN 104717209 A CN104717209 A CN 104717209A
- Authority
- CN
- China
- Prior art keywords
- message
- udp
- rtp
- header
- judge
- 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.)
- Pending
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种RTP报文识别方法及其装置,该方法包括:接收UDP/IP报文,获取所述UDP/IP报文的UDP报头、UDP负载中的RTP报头;根据UDP负载的长度,以及UDP报头中的源端口号、目的端口号和RTP报头中的RTP版本号中的一种或多种,判断是否能够排除所述UDP/IP报文是RTP报文的可能性;若否,则根据所述RTP报头中的同步源标识符SSRC、序列号SN以及时间戳,对所述UDP/IP报文是否是RTP报文进行判决。用以实现高效和准确地识别RTP报文。
Description
技术领域
本发明涉及通信技术领域,尤其是涉及一种RTP报文识别方法及其装置。
背景技术
随着电话会议和视频监控等实时音视频数据传输的广泛存在,RTP(Real-Time Transport Protocol,实时传输协议)得到了越来越多的应用,其目的是提供时间信息和实现流同步,主要提供负载类型标识、顺序编号、时间定位和传输监控等服务。
RTP的典型应用建立在UDP(User Datagram Protocol,用户数据报协议)上。UDP协议在网络中与其他协议一样用于处理报文是一种无连接的协议,处于通信协议第四层传输层,在IP协议的上一层。对于网络层和传输层的协议(如IP、UDP和TCP等)均可以通过报头的特殊字段(例如IP报头的PROTOCOLC(协议)字段)进行识别,但是对于应用层协议RTP没有字段用于标识上层协议是RTP协议。
ROHC(Robust Header Compression,健壮性压缩)是一种用于压缩Internet网络报文头的标准,其中,每一个头压缩算法对应于一组特定的网络层、传输层和应用层协议组合,比如:RTP头压缩算法可用于压缩RTP报文(包括RTP/UDP/IP三层报头),UDP头压缩算法可用于压缩UDP报文(包括UDP/IP两层报头)或RTP报文,IP(lnternet Protocol,网络之间互连的协议)头压缩算法可用于压缩IP报文或UDP报文或RTP报文。其中,IP头压缩效率要小于UDP头压缩,UDP头压缩效率要小于RTP头压缩;对于一种报文的压缩,当有多个头压缩算法可供选择时,优先选择压缩效率最高的压缩算法,比如一个RTP报文,既可用IP头压缩算法,也可以用UDP头压缩算法,还可以用RTP头压缩算法进行压缩,优先选择压缩效率最高的头压缩算法进行压缩,以达到最大的压缩效率。如果用RTP头压缩算法对非RTP报文进行压缩,将导致头压缩性能的低下,如果接收到的报文中,RTP报文比较少时,用RTP头压缩算法将对头压缩性能造成极大的影响,造成头压缩适应性和压缩效率的低下。
现有技术中,在进行压缩时,首先根据源IP地址、目的IP地址以及端口号等信息将Internet网络数据包分成不同的数据流,再对每个数据流中的报文报头组成进行分析,以确定应用于该数据流的头压缩算法。
因此,如何高效和准确识别RTP报文,是目前需要解决的问题。
发明内容
本发明实施例提供了一种RTP报文识别方法及其装置,用以实现高效和准确地识别RTP报文。
为此,本发明一方面提供一种RTP报文识别方法,包括:
接收UDP/IP报文,获取所述UDP/IP报文的UDP报头、UDP负载中的RTP报头;
根据UDP负载的长度,以及UDP报头中的源端口号、目的端口号和RTP报头中的RTP版本号中的一种或多种,判断是否能够排除所述UDP/IP报文是RTP报文的可能性;
若否,则根据所述RTP报头中的同步源标识符SSRC、序列号SN以及时间戳,对所述UDP/IP报文是否是RTP报文进行判决。
其中,根据UDP负载的长度,以及UDP报头中的源端口号、目的端口号和RTP报头中的RTP版本号中的一种或多种,判断是否能够排除所述UDP/IP报文是RTP报文的可能性,包括:若所述UDP/IP报文满足以下第一判决条件之一,则排除所述UDP/IP报文是RTP报文的可能性,所述第一判决条件包括:所述UDP/IP报文的负载长度小于RTP报头最小字节数;所述UDP/IP报文的UDP报头中的源端口号或目的端口小于通用端口号,或者是会话发起协议所对应的端口号;所述UDP/IP报文的UDP的目的端口号是奇数;所述UDP/IP报文的RTP报头中的RTP版本号不为2。
根据所述RTP报头中的SSRC、SN以及时间戳,对所述UDP/IP报文是否是RTP报文进行判决,包括:若所述UDP/IP报文满足以下第二判决条件之一,则判定所述UDP/IP报文不是RTP报文,所述第二判决条件包括:所述UDP/IP报文的RTP报头中的SSRC不等于上一个连续UDP/IP报文的SSRC;所述UDP/IP报文的RTP头中的SN和时间戳不满足同时大于或者同时小于上一个连续UDP/IP报文的SN和时间戳。
根据所述第二判决条件无法判定所述UDP/IP报文不是RTP报文,则还包括:将计数器的计数值加1;若所述计数器的计数值大于设定阈值,则判定所述UDP/IP报文为RTP报文,其中,所述设定阈值为大于1的整数。
若所述UDP/IP报文满足所述第二判决条件之一,则重置所述计数器。
基于上述所述RTP报文识别方法,本发明提供一种RTP报文识别装置,包括:解析模块,用于接收UDP/IP报文,获取所述UDP/IP报文的UDP报头、UDP负载中的RTP报头;第一判断模块,用于根据UDP负载的长度,以及UDP报头中的源端口号、目的端口号和RTP报头中的RTP版本号中的一种或多种,判断是否能够排除所述UDP/IP报文是RTP报文的可能性;第二判断模块,用于在第一判断单元不能排除所述UDP/IP报文是RTP报文的可能性的情况下,根据所述RTP报头中的同步源标识符SSRC、序列号SN以及时间戳,对所述UDP/IP报文是否是RTP报文进行判决。
其中,第一判断模块,具体用于:若所述UDP/IP报文满足以下第一判决条件之一,则排除所述UDP/IP报文是RTP报文的可能性,所述第一判决条件包括:所述UDP/IP报文的负载长度小于RTP报头最小字节数;所述UDP/IP报文的UDP报头中的源端口号或目的端口小于通用端口号,或者是会话发起协议所对应的端口号;所述UDP/IP报文的UDP的目的端口号是奇数;所述UDP/IP报文的RTP报头中的RTP版本号不为2。
UDP/IP报文的RTP报头中的RTP版本号不为2。
第二判断模块,具体用于:若所述UDP/IP报文满足以下第二判决条件之一,则判定所述UDP/IP报文不是RTP报文,所述第二判决条件包括:所述UDP/IP报文的RTP报头中的SSRC不等于上一个连续UDP/IP报文的SSRC;所述UDP/IP报文的RTP头中的SN和时间戳不满足同时大于或者同时小于上一个连续UDP/IP报文的SN和时间戳。
所述第二判断模块还用于:若根据所述第二判决条件无法判定所述UDP/IP报文不是RTP报文,则将计数器的计数值加1,若所述计数器的计数值大于设定阈值,则判定所述UDP/IP报文为RTP报文,其中,所述设定阈值为大于1的整数。
所述第二判断模块还用于:若所述UDP/IP报文满足所述第二判决条件之一,则重置所述计数器。
本发明的上述实施例中采用两级识别的方法,第一级根据UDP负载的长度,以及UDP报头中的源端口号、目的端口号和RPT报头中的RTP版本号进行识别,第二级结合根据RTP报头中的SSRC、SN以及时间戳进行识别,一方面,由于根据UDP负载的长度,以及UDP报头中的源端口号、目的端口号和RPT报头中的RTP版本号快速排除非RTP报文,提高了检测效率,使得识别过程更加高效;另一方面,由于结合利用RTP报头中的SSRC、SN以及时间戳的数据变化特点,保证了RTP报文识别的准确性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术中的RTP报文结构示意图;
图2为本发明实施例提供的RTP报文识别方法流程示意图;
图3为本发明实施例提供的RTP报文识别装置结构示意图;
图4为本发明实施例提供的增加计数器识别RTP报文方法流程示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
本发明实施例涉及RTP报文的格式,因此首先对RTP报文的格式进行简单说明。
如前所述,RTP报文可以基于UDP协议实现,图1示出了一种RTP报文的格式。其中,RTP报文包括IP报头、UDP报头,UDP的负载部分中包含RTP分组。UDP用户数据报部分包括UDP报头和UDP数据区两部分。UDP报头由四个16位长(2字节)字段组成,分别表明该报文的源端口、目的端口、报文长度以及校验值。
其中,若UDP负载部分包含RTP分组,则RTP占用的UDP源端口号或目的端口号大于1024且UDP目的端口号是偶数。RTP分组包含RTP报头和RTP数据区两部分,RTP报头具有固定报文格式,为12字节。其中,图中RTP报头各字段含义如下:
V:RTP协议的版本号,占2位,当前协议版本号为2。
P:填充标志,占1位,如果P=1,则在该报文的尾部填充一个或多个额外的八位组,它们不是有效载荷的一部分。
X:扩展标志,占1位,如果X=1,则在RTP报头后跟有一个扩展报头。
CC:CSRC计数器,占4位,指示CSRC标识符的个数。
M:标记,占1位,不同的有效载荷有不同的含义,对于视频,标记一帧的结束;对于音频,标记会话的开始。
同步信源标识符(SSRC):占32位,用于标识同步信源。该标识符是随机选择的,参加同一视频会议的两个同步信源不能有相同的SSRC。
特约信源(CSRC)标识符:每个CSRC标识符占32位,可以有0~15个。每个CSRC标识了包含在该RTP报文有效载荷中的所有特约信源。
PT:有效载荷类型,占7位,用于说明RTP报文中有效载荷的类型,如GSM(Global System for Mobile communication,全球移动通信系统)音频。
序列号(SN):占16位,用于标识发送者所发送的RTP报文的序列号,每发送一个报文,序列号增1。接收者通过序列号来检测报文丢失情况,重新排序报文,恢复数据。
时间戳:占32位,时间戳反映了该RTP报文的第一个八位组的采样时刻。接收者使用时戳来计算延迟和延迟抖动,并进行同步控制。
基于上述报文格式,本发明实施例提供了RTP报文识别方法,如图2所示,所述方法包括:
步骤101、接收UDP/IP报文,获取所述UDP/IP报文的UDP报头、UDP负载中的RTP报头。
该步骤中,接收到UDP/IP报文后,可根据UDP/IP协议规定对该报文进行解析,以获取相关协议报头信息。具体地,可通过IP报头长度、总长度以及网络数据交换规则(即Protocol)等域值确定UDP报头的起始位置,由UDP报头长度域确定其负荷的起始位置。然后根据各种协议头的固定格式,对于需要的特定字段域进行定位、读取、字节序转化适配等操作,最终得到UDP数据报头中的源端口、目的端口、长度,RTP报头的版本号、SSRC、SN和时间戳等字段的值。
步骤102、根据UDP负载的长度,以及UDP报头中的源端口号、目的端口号和RTP报头中的RTP版本号中的一种或多种,判断是否能够排除所述UDP/IP报文是RTP报文的可能性,如果不能排除,则转入步骤103,否则确定该UDP/IP报文不是RTP报文。
如前所述,RTP报文的UDP报头中的源端口号、目的端口号、RTP报头的长度以及RTP报头中的版本号等要符合协议要求,因此可根据协议要求,通过UDP报头中的源端口号、目的端口号、RTP报头的长度以及RTP报头中的版本号等对该报文是否是RTP报文进行初步判断。
具体地,可预先设定多个第一判决条件,如果被识别的UDP/IP报文满足任意一个第一判决条件,就判断它不是RTP报文;如果被识别的UDP/IP报文不满足第一判决条件所有约束条件,那么继续对它做其余步骤的判断。
预先设定的第一判决条件具体包括:
UDP/IP报文的负载长度小于RTP报头最小字节数,其中所述RTP报头的最小字节数是12;
UDP/IP报文的UDP报头中的源端口号或目的端口小于通用端口号,或者UDP/IP报文的UDP报头中的源端口号或目的端口是会话初始协议(SessionInitiation Protocol,SIP)使用的端口号,其中,通用端口号是1024以下的端口号,SIP使用的端口号是5060;
UDP/IP报文的UDP的目的端口号是奇数;
UDP/IP报文的RTP报头中的RTP版本号不为2。
通过本步骤,如果被识别的UDP/IP报文,同时满足以下条件:它的负载长度大于或者等于RTP报头最小字节数12,它的源端口号或目的端口号是大于1024但不等于5060的数,并且UDP目的端口号是偶数,它的RTP报头中的RTP版本号等于2,那么该报文很可能是RTP报文,转入步骤103继续判断,否则只要有一个上述条件不满足,则该报文就不是RTP报文。
通过步骤102,根据UDP负载的长度,以及UDP报头中的源端口号、目的端口号和RPT报头中的RTP版本号快速排除非RTP报文,提高了检测效率,使得识别过程更加高效。
步骤103、根据所述RTP报头中的SSRC、SN以及时间戳,对所述UDP/IP报文是否是RTP报文进行判决。
如前所述,RTP报文的RTP报头中的UDP报头中的SSRC、SN以及时间戳要符合一定规律,因此可根据该规律,通过RTP报头中的UDP报头中的SSRC、SN以及时间戳等对该报文是否是RTP报文进行进一步判断。
具体地,可预先设定多个第二判决条件,如果被识别的UDP/IP报文满足任意一个第二判决条件,就判断它不是RTP报文。
这些第二判决条件可具体包括:
UDP/IP报文的RTP报头中的SSRC不等于上一个连续UDP/IP报文的SSRC;
UDP/IP报文的RTP头中的SN和时间戳不满足同时大于或者同时小于上一个连续UDP/IP报文的SN和时间戳。
这样,在UDP/IP报文不能被第一条件排除的情况下,继续进行第二判决条件的判断,如果被识别的UDP/IP报文满足第二条件之一,就判断它不是RTP报文。
考虑到由于网络不稳定等因素,导致报文乱序,单独的使用SN或者时间戳,判断就会造成错检的问题,本实施例中将SN和时间戳两个值结合起来判断,使得判断逻辑更加准确合理,进一步提高的RTP报文识别的准确性。
在本发明的另一个实施例中,为了更加准确的识别出RTP报文,降低误判的概率,提供了一种增加计数器识别RTP报文的方法,即,通过该计数器对无法排除非RTP报文的判断结果进行计数,若当前无法排除非RTP报文且该计数器的数值大于设定阈值的情况下,才判决该报文为RTP报文,即只有连续多个报文都无法排除是非RTP报文,才判断该报文为RTP报文,以降低报文不能被正确识别出RTP报文的概率。
具体地,在前述实施例的基础上,若根据所述第二判决条件无法判定所述UDP/IP报文不是RTP报文,则还包括:将计数器的计数值加1;此时,若所述计数器的计数值大于设定阈值,则判定所述UDP/IP报文为RTP报文,其中,所述设定阈值为大于1的整数。若计数器的值递增超过计数器的最大取值范围时,则将计数器的值置为比阈值大于1的数。相应的,若所述UDP/IP报文满足任意一个第二判决条件,则重置所述计数器。
图3示例性地示出了增加计数器识别RTP报文的方法流程,主要包括以下步骤:
步骤301,接收UDP/IP报文,获取所述UDP/IP报文的UDP报头、UDP负载中的RTP报头,具体实现与上述步骤101方法相同。然后进行步骤302的判断,如果被识别的UDP/IP报文,它的负载长度大于或者等于RTP报头最小字节数12;它的源端口号或目的端口号是大于1024但不等于5060的数,并且UDP目的端口号是偶数;RTP报头中的RTP版本号等于2,那么该报文很可能是RTP报文,转入步骤303继续判断,否则有一个约束条件不满足该报文就不是RTP报文,具体实现与上述步骤102方法相同;步骤303,根据所述RTP报头中的SSRC、SN以及时间戳,对所述UDP/IP报文是否是RTP报文进行判决,如果UDP/IP报文的RTP报头中的SSRC等于上一个连续UDP/IP报文的SSRC并且UDP/IP报文的RTP头中的SN和时间戳满足同时大于或者同时小于上一个连续UDP/IP报文的SN和时间戳,那么将计数器的计数值加1,接着进行步骤304的判断,否则判断为非RTP报文,并重置计数器;步骤304,若所述计数器的计数值大于设定阈值,则判定所述UDP/IP报文为RTP报文,如果否,判断为非RTP报文,其中,所述设定阈值为大于1的整数。
需要说明的是,设定阈值取值越大识别结果就会越精确,但是同样也会带来检测开销,降低检测的效率,因此可根据需要确定该设定阈值。
为了更清楚地理解上述过程,下面通过举例描述如下连续多个报文的识别过程,详细解释增加计数器识别RTP报文的具体方法。
初始时,将计数器的数值置为零,计数值的阈值设为3。
接收到第1个报文后进行判断,若该报文不满足任何一个第一条件、也不满足任何一个第二条件,将计数器的计数值加1,将比较计数器当前的计数值(取值为1)与阈值(取值为3)进行比较,由于计数器当前的计数值小于阈值,因此判断该报文为非RTP报文。
接收到第2个报文后进行判断,若该报文不满足任何一个第一条件、也不满足任何一个第二条件,将计数器的计数值加1,将比较计数器当前的计数值(取值为2)与阈值(取值为3)进行比较,由于计数器当前的计数值小于阈值,因此判断该报文为非RTP报文。
接收到第3个报文后进行判断,若该报文不满足任何一个第一条件、也不满足任何一个第二条件,将计数器的计数值加1,将比较计数器当前的计数值(取值为3)与阈值(取值为3)进行比较,由于计数器当前的计数值不大于阈值,因此判断该报文为非RTP报文。
接收到第4个报文后进行判断,若该报文不满足任何一个第一条件、也不满足任何一个第二条件,将计数器的计数值加1,将比较计数器当前的计数值(取值为4)与阈值(取值为3)进行比较,由于计数器当前的计数值大于阈值,因此判断该报文为RTP报文。
接收到第5个报文后进行判断,若该报文不满足任何一个第一条件、满足第二条件其中一个,将计数器的计数值置零,将比较计数器当前的计数值(取值为0)与阈值(取值为3)进行比较,由于计数器当前的计数值小于阈值,因此判断该报文为非RTP报文。
接收到第6个报文后进行判断,若该报文不满足任何一个第一条件、也不满足任何一个第二条件,将计数器的计数值加1,将比较计数器当前的计数值(取值为1)与阈值(取值为3)进行比较,由于计数器当前的计数值小于阈值,因此判断该报文为非RTP报文。
接收到第7个报文后进行判断,若该报文不满足任何一个第一条件、也不满足任何一个第二条件,将计数器的计数值加1,将比较计数器当前的计数值(取值为2)与阈值(取值为3)进行比较,由于计数器当前的计数值小于阈值,因此判断该报文为非RTP报文。
接收到第8个报文后进行判断,若该报文不满足任何一个第一条件、也不满足任何一个第二条件,将计数器的计数值加1,将比较计数器当前的计数值(取值为3)与阈值(取值为3)进行比较,由于计数器当前的计数值不大于阈值,因此判断该报文为非RTP报文。
接收到第9个报文后进行判断,若该报文不满足任何一个第一条件、也不满足任何一个第二条件,将计数器的计数值加1,将比较计数器当前的计数值(取值为4)与阈值(取值为3)进行比较,由于计数器当前的计数值大于阈值,因此判断该报文为RTP报文。
基于相同的技术构思,本发明实施例还提供了一种RTP报文识别装置,该装置采用了实施例一提供的RTP报文识别方法。
如图4所示,该装置可包括:解析模块21、第一判断模块22、第二判断模块23,其中:
解析模块21,用于接收UDP/IP报文,获取所述UDP/IP报文的UDP报头、UDP负载中的RTP报头;
第一判断模块22,用于根据UDP负载的长度,以及UDP报头中的源端口号、目的端口号和RTP报头中的RTP版本号中的一种或多种,判断是否能够排除所述UDP/IP报文是RTP报文的可能性;
第二判断模块23,用于在第一判断模块22不能排除所述UDP/IP报文是RTP报文的可能性的情况下,根据所述RTP报头中的同步源标识符SSRC、序列号SN以及时间戳,对所述UDP/IP报文是否是RTP报文进行判决。
具体地,解析模块21可通过对UDP数据流中的报文进行预先缓存,然后对缓存的UDP/IP报文进行IP报头、UDP报头和RTP报头的逐层解析。逐层解析方式具体为:通过IP报头长度、总长度以及网络数据交换规则(Protocol)等域值确定UDP报头起始位置,由UDP报头长度域确定其负荷的起始位置。然后根据各种协议头的固定格式,对我们需要的特定字段域进行定位、读取、字节序转化适配等操作,最终得到UDP数据报头中的源端口、目的端口、长度,UDP负荷(RTP头)的版本号、SSRC、SN和时间戳等字段的值。将解析得到的UDP报头中的源端口、目的端口、长度,UDP负荷中RTP报头的版本号、SSRC、SN和时间戳等字段的值保存下来,保存方式可以是使用一些变量和全局数组进行保存,全局数组可以保存最近连续多个报文的信息,或者使用三个数据组分别用来保存SSRC、SN和时间戳等字段的值,其余字段保存可以保存在局部变量中。
具体地,第一判断模块22若判断所述UDP/IP报文满足以下第一判决条件之一,则排除所述UDP/IP报文是RTP报文的可能性,所述第一判决条件包括:
所述UDP/IP报文的负载长度小于RTP报头最小字节数;
所述UDP/IP报文的UDP报头中的源端口号或目的端口小于通用端口号,或者是会话发起协议所对应的端口号;
所述UDP/IP报文的UDP的目的端口号是奇数;
所述UDP/IP报文的RTP报头中的RTP版本号不为2。
具体地,所述UDP/IP报文的负载长度小于RTP报头最小字节数,其中所述RTP报头的最小字节数是12;所述UDP/IP报文的UDP报头中的源端口号或目的端口小于通用端口号,或者是会话发起协议所对应的端口号,其中通用端口号是1024以下的端口号,会话发起协议所对应的端口号是5060;
第一判决条件的每一个条件都是判断UDP/IP报文的必要条件,因此任意一个条件不满足,就可以判断这个UDP/IP报文不是RTP报文,只有所有条件都满足时,才可以继续执行第二判断条件。
通过第一判断模块22,根据UDP负载的长度,以及UDP报头中的源端口号、目的端口号和RPT报头中的RTP版本号快速排除非RTP报文,提高了检测效率,使得识别过程更加高效。
具体地,第二判断模块23可根据所述UDP/IP报文若满足以下第二判决条件之一,则判定所述UDP/IP报文不是RTP报文,所述第二判决条件包括:
所述UDP/IP报文的RTP报头中的SSRC不等于上一个连续UDP/IP报文的SSRC;
所述UDP/IP报文的RTP头中的SN和时间戳不满足同时大于或者同时小于上一个连续UDP/IP报文的SN和时间戳。
如果被识别的UDP/IP报文满足第二约束条件之一,就判断它不是RTP报文;如果被识别的UDP/IP报文不满足所有第二约束条件,就判断它是RTP报文。
本实施例中将SN和时间戳两个值结合起来判断,不再单独的使用SN或者时间戳,使得判断逻辑更加准确合理,进一步提高的RTP报文识别的准确性。
较佳地,为了更加准确的识别出RTP报文,降低误判的概率,所述第二判断模块23还可以用于:若根据所述第二判决条件无法判定所述UDP/IP报文不是RTP报文,则将计数器的计数值加1,若所述计数器的计数值大于设定阈值,则判定所述UDP/IP报文为RTP报文,其中,所述设定阈值为大于1的整数,若所述UDP/IP报文满足所述第二判决条件之一,则重置所述计数器。具体实现与上述步骤304方法相同。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种RTP报文识别方法,其特征在于,该方法包括:
接收UDP/IP报文,获取所述UDP/IP报文的UDP报头、UDP负载中的RTP报头;
根据UDP负载的长度,以及UDP报头中的源端口号、目的端口号和RTP报头中的RTP版本号中的一种或多种,判断是否能够排除所述UDP/IP报文是RTP报文的可能性;
若否,则根据所述RTP报头中的同步源标识符SSRC、序列号SN以及时间戳,对所述UDP/IP报文是否是RTP报文进行判决。
2.如权利要求1所述的方法,其特征在于,根据UDP负载的长度,以及UDP报头中的源端口号、目的端口号和RTP报头中的RTP版本号中的一种或多种,判断是否能够排除所述UDP/IP报文是RTP报文的可能性,包括:
若所述UDP/IP报文满足以下第一判决条件之一,则排除所述UDP/IP报文是RTP报文的可能性,所述第一判决条件包括:
所述UDP/IP报文的负载长度小于RTP报头最小字节数;
所述UDP/IP报文的UDP报头中的源端口号或目的端口小于通用端口号,或者是会话发起协议所对应的端口号;
所述UDP/IP报文的UDP的目的端口号是奇数;
所述UDP/IP报文的RTP报头中的RTP版本号不为2。
3.如权利要求1所述的方法,其特征在于,所述根据所述RTP报头中的SSRC、SN以及时间戳,对所述UDP/IP报文是否是RTP报文进行判决,包括:
若所述UDP/IP报文满足以下第二判决条件之一,则判定所述UDP/IP报文不是RTP报文,所述第二判决条件包括:
所述UDP/IP报文的RTP报头中的SSRC不等于上一个连续UDP/IP报文的SSRC;
所述UDP/IP报文的RTP头中的SN和时间戳不满足同时大于或者同时小于上一个连续UDP/IP报文的SN和时间戳。
4.如权利要求3所述的方法,其特征在于,若根据所述第二判决条件无法判定所述UDP/IP报文不是RTP报文,则还包括:
将计数器的计数值加1;
若所述计数器的计数值大于设定阈值,则判定所述UDP/IP报文为RTP报文,其中,所述设定阈值为大于1的整数。
5.如权利要求4所述的方法,其特征在于,还包括:若所述UDP/IP报文满足所述第二判决条件之一,则重置所述计数器。
6.一种RTP报文识别装置,其特征在于,该装置包括:
解析模块,用于接收UDP/IP报文,获取所述UDP/IP报文的UDP报头、UDP负载中的RTP报头;
第一判断模块,用于根据UDP负载的长度,以及UDP报头中的源端口号、目的端口号和RTP报头中的RTP版本号中的一种或多种,判断是否能够排除所述UDP/IP报文是RTP报文的可能性;
第二判断模块,用于在第一判断单元不能排除所述UDP/IP报文是RTP报文的可能性的情况下,根据所述RTP报头中的同步源标识符SSRC、序列号SN以及时间戳,对所述UDP/IP报文是否是RTP报文进行判决。
7.如权利要求6所述的装置,其特征在于,所述第一判断模块,具体用于:
若所述UDP/IP报文满足以下第一判决条件之一,则排除所述UDP/IP报文是RTP报文的可能性,所述第一判决条件包括:
所述UDP/IP报文的负载长度小于RTP报头最小字节数;
所述UDP/IP报文的UDP报头中的源端口号或目的端口小于通用端口号,或者是会话发起协议所对应的端口号;
所述UDP/IP报文的UDP的目的端口号是奇数;
所述UDP/IP报文的RTP报头中的RTP版本号不为2。
8.如权利要求6所述的装置,其特征在于,所述第二判断模块,具体用于:
若所述UDP/IP报文满足以下第二判决条件之一,则判定所述UDP/IP报文不是RTP报文,所述第二判决条件包括:
所述UDP/IP报文的RTP报头中的SSRC不等于上一个连续UDP/IP报文的SSRC;
所述UDP/IP报文的RTP头中的SN和时间戳不满足同时大于或者同时小于上一个连续UDP/IP报文的SN和时间戳。
9.如权利要求8所述的装置,其特征在于,所述第二判断模块还用于:若根据所述第二判决条件无法判定所述UDP/IP报文不是RTP报文,则将计数器的计数值加1,若所述计数器的计数值大于设定阈值,则判定所述UDP/IP报文为RTP报文,其中,所述设定阈值为大于1的整数。
10.如权利要求9所述的装置,其特征在于,所述第二判断模块还用于:若所述UDP/IP报文满足所述第二判决条件之一,则重置所述计数器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510073044.1A CN104717209A (zh) | 2015-02-10 | 2015-02-10 | 一种rtp报文识别方法及其装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510073044.1A CN104717209A (zh) | 2015-02-10 | 2015-02-10 | 一种rtp报文识别方法及其装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104717209A true CN104717209A (zh) | 2015-06-17 |
Family
ID=53416172
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510073044.1A Pending CN104717209A (zh) | 2015-02-10 | 2015-02-10 | 一种rtp报文识别方法及其装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104717209A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112751833A (zh) * | 2020-12-23 | 2021-05-04 | 北京天融信网络安全技术有限公司 | Rtp报文识别方法、装置、电子设备及可读存储介质 |
CN112995099A (zh) * | 2019-12-16 | 2021-06-18 | 中国电信股份有限公司 | 用于语音通信攻击防护的方法和边界接入控制器 |
CN114679504A (zh) * | 2022-05-27 | 2022-06-28 | 成都数联云算科技有限公司 | Udp报文解析方法、装置及计算机设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1783835A (zh) * | 2004-11-30 | 2006-06-07 | 西门子(中国)有限公司 | 一种在Internet网络中逐跳识别实时业务的方法 |
CN1988543A (zh) * | 2006-12-07 | 2007-06-27 | 华为技术有限公司 | 报文类型识别方法及装置、报文首部压缩方法及系统 |
CN103812846A (zh) * | 2012-11-14 | 2014-05-21 | 重庆重邮信科通信技术有限公司 | 一种头压缩方法及系统 |
-
2015
- 2015-02-10 CN CN201510073044.1A patent/CN104717209A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1783835A (zh) * | 2004-11-30 | 2006-06-07 | 西门子(中国)有限公司 | 一种在Internet网络中逐跳识别实时业务的方法 |
CN1988543A (zh) * | 2006-12-07 | 2007-06-27 | 华为技术有限公司 | 报文类型识别方法及装置、报文首部压缩方法及系统 |
CN103812846A (zh) * | 2012-11-14 | 2014-05-21 | 重庆重邮信科通信技术有限公司 | 一种头压缩方法及系统 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112995099A (zh) * | 2019-12-16 | 2021-06-18 | 中国电信股份有限公司 | 用于语音通信攻击防护的方法和边界接入控制器 |
CN112995099B (zh) * | 2019-12-16 | 2022-07-12 | 中国电信股份有限公司 | 用于语音通信攻击防护的方法和边界接入控制器 |
CN112751833A (zh) * | 2020-12-23 | 2021-05-04 | 北京天融信网络安全技术有限公司 | Rtp报文识别方法、装置、电子设备及可读存储介质 |
CN112751833B (zh) * | 2020-12-23 | 2023-01-10 | 北京天融信网络安全技术有限公司 | Rtp报文识别方法、装置、电子设备及可读存储介质 |
CN114679504A (zh) * | 2022-05-27 | 2022-06-28 | 成都数联云算科技有限公司 | Udp报文解析方法、装置及计算机设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109391560B (zh) | 网络拥塞的通告方法、代理节点及计算机设备 | |
AU2003248437B2 (en) | Packet Transmission System and Packet Reception System | |
JP4866908B2 (ja) | 通信システムにおけるパケットの分割および連結をシグナリングする方法および装置 | |
US8306063B2 (en) | Real-time transport protocol stream detection system and method | |
US9392082B2 (en) | Communication interface and method for robust header compression of data flows | |
CN106612284B (zh) | 一种流数据的传输方法和装置 | |
US10299163B2 (en) | Enhancement on header compression | |
WO2006052117A1 (en) | Apparatus and method for compressing headers in a broadband wireless communication system | |
US8306015B2 (en) | Technique for identifying RTP based traffic in core routing switches | |
CN111385221B (zh) | 一种数据处理方法和通信设备 | |
CN102143078A (zh) | 一种报文处理方法、转发设备及系统 | |
WO2010078795A1 (zh) | 提高数据传输质量的方法、装置和系统 | |
CN112751833B (zh) | Rtp报文识别方法、装置、电子设备及可读存储介质 | |
CN107995130A (zh) | 一种分片报文的快转方法 | |
Abdelfadeel et al. | Lschc: Layered static context header compression for lpwans | |
CN101860904A (zh) | 基于数据包ip头压缩技术实现校验和计算的方法 | |
CN104717209A (zh) | 一种rtp报文识别方法及其装置 | |
CN1988543A (zh) | 报文类型识别方法及装置、报文首部压缩方法及系统 | |
US7583695B2 (en) | Hardware arrangement, terminal, and method for transferring audio signal in packet-switched communications network | |
CN115118663A (zh) | 结合带内网络遥测获取网络拥塞信息的方法 | |
EP2127298A1 (en) | Header supression in a wireless communication network | |
CN111262792B (zh) | 报文转发方法、装置、网络设备及存储介质 | |
CN112688824B (zh) | Rtp丢包检测方法、装置、设备及计算机可读存储介质 | |
CN101588356B (zh) | 网络设备及其侦测语音封包的方法 | |
Farouq et al. | Unidirectional and bidirectional optimistic modes IP header compression for real-time video streaming |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20150617 |