一种基于sip协议过程特征识别voip流量的方法

文档序号:7966808阅读:196来源:国知局
专利名称:一种基于sip协议过程特征识别voip流量的方法
技术领域
本发明涉及计算机网络流量监测、流量整形、流量控制和网络服务质量(QoS)及网络性能分析技术领域,尤其涉及一种基于SIP协议过程特征识别VOIP流量的方法。
背景技术
应用层流量识别是分析网络承载各应用层业务的流量构成、分布和变化规律、了解业务性能、定位网络瓶颈、保障关键业务的QoS等的重要前提条件之一。
随着技术的进步和Internet带宽的增加,网络上多媒体应用越来越普遍,人们对网络依赖日益严重,流媒体、VoIP、视频会议等多媒体新业务流量越来越大。
VoIP是这些新出现的网络业务中较为重要的应用。由于SIP协议是一个基于文本的Internet协议,借鉴了HTTP、SMTP等协议的优点,在风格上遵循因特网一贯坚持的简练、开放、兼容和可扩展等原则,实现简单,目前VoIP应用很多是采用了基于SIP协议的实现。
现有的流量识别方法,按照是否对协议载荷进行分析,即分析信息是否涉及到数据包中传输层以上的信息,可分为载荷分析(payload-basedanalysis)和非载荷分析;按照识别所依据信息的不同可分为基于端口的流量识别、基于特征(如关键字、特征字符串系列等)的流量识别和基于协议过程分析的识别方法。
但是,因为VoIP是在近年来才得到了相对广泛的应用,对VoIP流量识别的研究相对较少,并且现有的一些相关的应用层流量识别方法大多是侧重于粗粒度流量分类,偏重于理论分析。由于SIP协议本身所具备的特点,这些理论化的识别/分类方法在对基于SIP协议的VoIP流量的识别的准确度、可扩展性、时效性尤其实用性等方面还存在着不同层次上的问题。
比如,基于SIP的VoIP数据流并不采用固定的端口号,而是在会话请求过程和应答过程中通过协商来确定应用动态的端口号;基于SIP协议的VOIP数据流内容的特征不容易被发现等等。这些使得若针对具体的VoIP业务提供QoS保障现有的粗粒度分类方法不能满足细化的业务区分的要。
另外,由于在Voip会话系统中,SIP数据流并不是从始至终一直存在的,一般来讲是由于SIP控制流在其静载荷中指定产生的,这样传统的的端口识别等方法并不适合于对SIP数据流的持续时间等参数的进一步获取。
综上,有必要设计一种新的、实用的基于SIP协议的VoIP流量的识别方法对日益普遍的VoIP应用进行准确高效的识别以便于实现面向应用层业务的流量监测、分析、控制和QoS保障等。

发明内容
(一)要解决的技术问题针对上述现有技术存在的不足,本发明的主要目的在于提供一种基于SIP协议过程特征识别VOIP流量的方法,以实现针对SIP流量的识别,特别是针对SIP产生的数据流的识别。
(二)技术方案为达到上述目的,本发明的技术方案是这样实现的一种基于SIP协议过程特征识别VOIP流量的方法,该方法包括A、通过关键字匹配和建立对请求报文和应答报文的识别规则识别控制SIP会话中数据包;B、通过对已确定的与控制会话相关的数据包中的关键字特征进行分析,提取出将要产生的动态会话流的判断信息,对语音通信会话过程中与动态会话相关的数据包进行识别,实现对基于SIP的VoIP流量的完整识别。
对于请求报文,步骤A中所述建立对请求报文和应答报文的识别规则为(invite|register|cancel|Options|Register|ACK)sip[\x09-\x0d-~]*sip/
\.

所述识别规则具体文字表述为SIP数据包中的静载荷第一行以“invite”、“register”、“cancel”、“Options”、“Register”、ACK”关键字开始,紧随其后包含一个空格、“SIP”关键字和其他除空格外的任意字符,随后包含下一个空格,空格之后包含“SIP/”关键字和“数字.数字”。
对于应答报文,步骤A中所述建立对请求报文和应答报文的识别规则为sip/
\.
[1-5]
[a-zA-Z]*。
所述识别规则具体文字表述为SIP数据包中的静载荷第一行以“SIP/”关键字开始,紧随其后包含“数字.数字”、空格、3位数字、空格、空格外的任意字符。
所述步骤B包括B1、定义关键字″200″、″CSeq″、″c=″、″m=″,对已经确定的与控制会话相关的数据包中的关键字特征进行检索定位,对SIP指定的数据流的标志进行提取,提取出将要产生的动态会话流的判断信息;B2、建立一个SIP数据流会话列表,判断是否产生了指定的SIP数据流。
所述步骤B1包括B10、定义关键字″200″、″CSeq″、″c=″、″m=″,对已经确定的与控制会话相关的数据包中的关键字特征进行检索定位,判断数据包的后续内容中是否存在″200″标志,如果存在,则执行步骤B11;否则,处理下一个数据包;B11、判断数据包的后续内容中是否存在″CSeq″标志,如果存在,则执行步骤B12;否则,处理下一个数据包;B12、查找数据包中下一个空格,如果查找到,则执行步骤B13;否则,处理下一个数据包;B13、判断数据包后续内容中6个字符是否是″INVITE″字符串,如果是,则执行步骤B14;否则,处理下一个数据包;B14、查找数据包内容是否包括″c=″字符串,如果是,则执行步骤B15;否则,处理下一个数据包;B15、将上述查找到″c=″字符串的位置后移7个字节,提取IP地址;
B16、查找数据包后续内容是否包括″m=″字符串,如果是,执行步骤B17;否则,处理下一个数据包;B17、查找数据包后续内容中第一个空格,如果查找到,则转向步骤B18;否则,处理下一个数据包;B18、在此数据包提取指定的数据流的端口号和数据流所支持的媒体流格式;B19、根据提取的媒体流格式判断出媒体流所采用的协议类型。
所述步骤B2包括B20、判断SIP会话表中是否存在所述数据包归属的数据流,如果存在,则执行步骤B21;否则,执行步骤B24;B21、根据查找到的SIP会话的invite_ip、invite_port值,步骤B15中确定的数据流IP、数据流格式,步骤B18中确定的数据流port,创建sip数据流;B22、判断数据流格式是否为″RTP/AVP″,如果是,执行步骤B23;否则,执行步骤B25;B23、根据步骤B20中查找到的SIP会话的invite_ip、invite_port+1值,步骤B15中确定的数据流IP、数据流格式,步骤B18中确定的数据流port+1值,创建sip数据流;执行步骤B25;B24、根据所述数据包归属的数据流、步骤B20中查找到的SIP会话的invite_ip、invitePort,步骤B15中确定的inviteProto,创建一个会话并将其插入到会话表中;B25、在SIP会话表中删除步骤B21或步骤B23中所确定的会话,处理下一个数据包。
(三)有益效果从上述技术方案可以看出,本发明具有以下有益效果1、识别率高。因为传统的流量识别方法基于端口,特征字或者时间,并不能较好的识别SIP数据流。
2、本发明采用的方法体现了流之间的依赖关系,对进一步分析SIP通讯会话等功能提供了强有力的保障。


图1为本发明提供的基于SIP协议过程特征识别VOIP流量总体技术方案的实现流程图;图2为本发明实施例中提供的基于SIP协议过程特征识别VOIP流量的方法流程图。
具体实施例方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。
如图1所示,图1为本发明提供的基于SIP协议过程特征识别VOIP流量总体技术方案的实现流程图,该方法包括以下步骤步骤101通过关键字匹配和建立对请求报文和应答报文的识别规则识别控制SIP会话中数据包;步骤102通过对已确定的与控制会话相关的数据包中的关键字特征进行分析,提取出将要产生的动态会话流的判断信息,对语音通信会话过程中与动态会话相关的数据包进行识别,实现对基于SIP的VoIP流量的完整识别。
上述步骤101中,提出并应用了如下对SIP请求报文和应答报文的识别规则,即对于请求报文,其报文格式为#Request-Line=Method SP Request-URI SP SIP-Version CRLF即请求方法请求URI SIP协议版本号回车换行符基于此,本发明对于请求报文有如下识别规则(invite|register|cancel|Options|Register|ACK)sip[\x09-\x0d-~]*sip/
\.
上述识别规则的具体文字表述为SIP数据包中的静载荷第一行必须以“invite”、“register”、“cancel”、“Options”、“Register”、ACK”关键字开始,紧随其后包含一个空格、“SIP”关键字和其他除空格外的任意字符,随后包含下一个空格,空格之后包含“SIP/”关键字和“数字.数字”;对于应答报文,其报文格式为
#Status-Line=SIP-Version SP Status-Code SP Reason-Phrase CRLF即SIP协议版本号 应答码 应答码原因说明 回车换行符基于此,本发明对于应答报文有如下识别规则sip/
\.
[1-5]
[a-zA-Z]*上述识别应答报文规则的具体文字表述为SIP数据包中的静载荷第一行必须以“SIP/”关键字开始,紧随其后包含“数字.数字”、空格、3位数字、空格、空格外的任意字符。
上述步骤102进一步包括步骤1021定义关键字″200″、″CSeq″、″c=″、″m=″,对已经确定的与控制会话相关的数据包中的关键字特征进行检索定位,对SIP指定的数据流的标志进行提取,提取出将要产生的动态会话流的判断信息;步骤1022建立一个SIP数据流会话列表,判断是否产生了指定的SIP数据流。
基于图1所述的基于SIP协议过程特征识别VOIP流量总体技术方案的实现流程图,以下结合具体的实施例对本发明提供的基于SIP协议过程特征识别VOIP流量的方法进一步详细说明。
如图2所示,图2为本发明实施例中提供的基于SIP协议过程特征识别VOIP流量的方法流程图,该方法包括以下步骤步骤201判断数据包是否为SIP数据包,如果是,则执行步骤202;否则,执行步骤222;步骤202判断数据包是否已经属于某条SIP控制流,如果是转向204,否则执行步骤203;步骤203根据数据包的五元组标志来创建SIP控制流;执行步骤204;步骤204判断数据包的净载荷前7个字符是否为″INVITE″关键字,如果是,执行步骤210;否则,执行步骤205;步骤205判断数据包的净载荷是否以″SIP/″关键字开始,如果是,则执行步骤206,否则执行步骤222;步骤206定义关键字″200″、″CSeq″、″c=″、″m=″,对已经确定的与控制会话相关的数据包中的关键字特征进行检索定位,判断数据包的后续内容中是否存在″200″标志,如果存在,则执行步骤207;否则,执行步骤222;步骤207判断数据包的后续内容中是否存在″CSeq″标志,如果存在,则进行步骤208;否则,执行步骤222;步骤208查找数据包中下一个空格,如果查找到,则执行步骤209;否则,执行步骤222;步骤209判断数据包后续内容中6个字符是否是″INVITE″字符串,如果是,则执行步骤210,否则执行步骤222;步骤210查找数据包内容是否包括″c=″字符串,如果是,则执行步骤211;否则,执行步骤222;步骤211将上述查找到″c=″字符串的位置后移7个字节,提取IP地址,执行步骤212;步骤212查找数据包后续内容是否包括″m=″字符串,如果是,则执行步骤213;否则,执行步骤222;步骤213查找数据包后续内容中第一个空格,如果查找到,则执行步骤214;否则,执行步骤222;步骤214在此数据包提取指定的数据流的端口号和数据流所支持的媒体流格式;执行步骤215;步骤215根据步骤214中所得到的媒体流格式判断出媒体流所采用的协议类型;步骤216判断由步骤202或步骤203中确定的数据流是否存在于SIP会话表中,如果存在,则执行步骤217;否则,执行步骤220;步骤217根据步骤216中查找到的SIP会话的invite_ip、invite_port值、步骤211中确定的数据流IP、数据流格式、步骤214中确定的数据流port来创建sip数据流;步骤218判断数据流格式是否为″RTP/AVP″,如果是,执行步骤219;否则,执行步骤221;步骤219根据步骤216中查找到的SIP会话的invite_ip、invite_port+1值、步骤211中确定的数据流IP、数据流格式、步骤214中确定的数据流port+1值来创建sip数据流;执行步骤221;
步骤220根据由步骤202或步骤203中确定的数据流、步骤216中查找到的SIP会话的invite_ip、invitePort、步骤211中确定的inviteProto来创建一个会话并将其插入到会话表中;执行步骤221;步骤221在SIP会话表中删除步骤217或步骤219中所确定的会话;执行步骤222;步骤222返回步骤201,处理下一个数据包。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种基于SIP协议过程特征识别VOIP流量的方法,其特征在于,该方法包括A、通过关键字匹配和建立对请求报文和应答报文的识别规则识别控制SIP会话中数据包;B、通过对已确定的与控制会话相关的数据包中的关键字特征进行分析,提取出将要产生的动态会话流的判断信息,对语音通信会话过程中与动态会话相关的数据包进行识别,实现对基于SIP的VoIP流量的完整识别。
2.根据权利要求1所述的基于SIP协议过程特征识别VOIP流量的方法,其特征在于,对于请求报文,步骤A中所述建立对请求报文和应答报文的识别规则为(invite|register|cancel|Options|Register|ACK)sip[\x09-\x0d-~]*sip/
\.

3.根据权利要求2所述的基于SIP协议过程特征识别VOIP流量的方法,其特征在于,所述识别规则具体文字表述为SIP数据包中的静载荷第一行以“invite”、“register”、“cancel”、“Options”、“Register”、ACK”关键字开始,紧随其后包含一个空格、“SIP”关键字和其他除空格外的任意字符,随后包含下一个空格,空格之后包含“SIP/”关键字和“数字.数字”。
4.根据权利要求1所述的基于SIP协议过程特征识别VOIP流量的方法,其特征在于,对于应答报文,步骤A中所述建立对请求报文和应答报文的识别规则为sip/
\.
[1-5]
[a-zA-Z]*。
5.根据权利要求4所述的基于SIP协议过程特征识别VOIP流量的方法,其特征在于,所述识别规则具体文字表述为SIP数据包中的静载荷第一行以“SIP/”关键字开始,紧随其后包含“数字.数字”、空格、3位数字、空格、空格外的任意字符。
6.根据权利要求1所述的基于SIP协议过程特征识别VOIP流量的方法,其特征在于,所述步骤B包括B1、定义关键字″200″、″CSeq:″、″c=″、″m=″,对已经确定的与控制会话相关的数据包中的关键字特征进行检索定位,对SIP指定的数据流的标志进行提取,提取出将要产生的动态会话流的判断信息;B2、建立一个SIP数据流会话列表,判断是否产生了指定的SIP数据流。
7.根据权利要求6所述的基于SIP协议过程特征识别VOIP流量的方法,其特征在于,所述步骤B1包括B10、定义关键字″200″、″CSeq:″、″c=″、″m=″,对已经确定的与控制会话相关的数据包中的关键字特征进行检索定位,判断数据包的后续内容中是否存在″200″标志,如果存在,则执行步骤B11;否则,处理下一个数据包;B11、判断数据包的后续内容中是否存在″CSeq:″标志,如果存在,则执行步骤B12;否则,处理下一个数据包;B12、查找数据包中下一个空格,如果查找到,则执行步骤B13;否则,处理下一个数据包;B13、判断数据包后续内容中6个字符是否是″INVITE″字符串,如果是,则执行步骤B14;否则,处理下一个数据包;B14、查找数据包内容是否包括″c=″字符串,如果是,则执行步骤B15;否则,处理下一个数据包;B15、将上述查找到″c=″字符串的位置后移7个字节,提取IP地址;B16、查找数据包后续内容是否包括″m=″字符串,如果是,执行步骤B17;否则,处理下一个数据包;B17、查找数据包后续内容中第一个空格,如果查找到,则转向步骤B18;否则,处理下一个数据包;B18、在此数据包提取指定的数据流的端口号和数据流所支持的媒体流格式;B19、根据提取的媒体流格式判断出媒体流所采用的协议类型。
8.根据权利要求7所述的基于SIP协议过程特征识别VOIP流量的方法,其特征在于,所述步骤B2包括B20、判断SIP会话表中是否存在所述数据包归属的数据流,如果存在,则执行步骤B21;否则,执行步骤B24;B21、根据查找到的SIP会话的invite_ip、invite_port值,步骤B15中确定的数据流IP、数据流格式,步骤B18中确定的数据流port,创建sip数据流;B22、判断数据流格式是否为″RTP/AVP″,如果是,执行步骤B23;否则,执行步骤B25;B23、根据步骤B20中查找到的SIP会话的invite_ip、invite_port+1值,步骤B15中确定的数据流IP、数据流格式,步骤B18中确定的数据流port+1值,创建sip数据流;执行步骤B25;B24、根据所述数据包归属的数据流、步骤B20中查找到的SIP会话的invite_ip、invitePort,步骤B15中确定的inviteProto,创建一个会话并将其插入到会话表中;B25、在SIP会话表中删除步骤B21或步骤B23中所确定的会话,处理下一个数据包。
全文摘要
本发明公开了一种基于SIP协议过程特征识别VOIP流量的方法,该方法包括A、通过关键字匹配和建立对请求报文和应答报文的识别规则识别SIP控制会话中数据包;B、通过对已确定的与控制会话相关的数据包中的关键字特征进行分析,提取出将要产生的动态会话流的判断信息,对语音通信会话过程中与动态会话相关的数据包进行识别,实现对基于SIP的VOIP流量的完整识别。利用本发明,对VOIP流量的识别率高,采用的方法体现了流之间的依赖关系,对进一步分析SIP通讯会话等功能提供了强有力的保障。
文档编号H04L29/06GK1913456SQ200610112699
公开日2007年2月14日 申请日期2006年8月30日 优先权日2006年8月30日
发明者陈敏, 张广兴, 李士达, 杨建华, 谢高岗 申请人:中国科学院计算技术研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1