实时识别Skype两类语音流的方法

文档序号:7946115阅读:277来源:国知局

专利名称::实时识别Skype两类语音流的方法
技术领域
:本发明属于网络数据通信领域,具体地讲是从网络流量中实时识别出Skype的基于UDP语音流和基于TCP语音流的方法。
背景技术
:Skype是一种基于P2P(peer-to-peer)技术的经IP传送的语音(Voice-over-IP,VoIP)应用。它是一种网络即时讯息语音通信系统,同时具备视频、多人语音会议、多人聊天、文件传送和短信收发等功能。它的高质量、宽覆盖面的语音远优于其他VoIP系统,可支持PC到PC免费通信,并支持PC到国内国际固话和移动电话通信。其一经推出就迅速成长为世界上最大的网络电话系统和多媒体通信系统。在曰益方便了人们日常生活的同时,P2P应用也带来了许多的问题,如色情、暴力、反动软件/内容的分发扩散,盗版媒体的加速传播增加了知识产权保护难度等。Skype的流行也严重地影响了传统电信服务商的业务原有的国际和国内长途电话业务被蚕食,赢利空间被极大压縮;传统因特网非对称流量模型被打破,以此理论为基础的包月收费方式不再合理;大量网络带宽和磁盘空间被消耗,严重时使网络系统性能降低甚至瘫痪,损害了因特网服务提供商(ISP)和其他网络用户的利益。ISP迫切需要搞清Skype语音流使用和分布现状,进而对它们实施有效管理措施,而这些工作的基础是建立在能够识别Skype语音流的基础上。作为一种P2P应用,Skype采用了动态选取端口、伪装成其他流量、加密数据和匿名通信等策略来逃避常规流量识别机制的检测。此外,Skype使用了专用通信协议,并用高强度密码加密了通信内容和部分协议,至今为止没有公布过任何有关协议或其他技术专题的文档,使其蒙上了神秘的面纱。人们只能通过逆向工程的方法来剖析了解Skype的协议和机理,这使得识别Skype语音流成为世界性的难题,至今为止仍缺乏实时高效识别Skype语音流的方法。所谓Skype语音流是指用于传输Skype语音的报文集合,它们符合五元组(源IP地址,源端口号,目的IP地址,目的端口号,运输层协议类型}流规范和64秒超时定义的双向流[1]。分析表明,在Skype支持的PC到PC、PC到电话的两种通信方式中,具有基于UDP的Skype语音流和基于TCP的Skype语音流这两种语音流。基于UDP的Skype语音流为默认的语音流,而基于TCP的Skype语音流是当前者遇防火墙/网络地址转换器(NAT)无法通过而采用的语音流。在识别Skype这两种语音流方面,已经有了一些研究。例如,文献[2]提出了一种称为^统计检测Skype流量的技术CSC,以检测出Skype流量具有的加密特性;结合使用贝叶斯分类器的确定过程NBC,基于VoIP流量的统计特性,以此实时识别Skype两种语音流,但这些方法的准确性通常不高。
发明内容本发明的目的是针对现有的识别方法中存在的准确性不高、效率低的问题,提出一种从网络流量中实时准确识别出Skype基于UDP语音流和基于TCP语音流的方法。本发明的技术方案是1、一种识别基于UDP的Skype流的方法IUSVF,其特征在于,包括下列步骤A.对每个到达网络链路的新分组,若是TCP分组或周知端口的UDP分组则丢弃,否则继续。B.对于其他UDP分组,由四元组{源IP地址,目的IP地址,源端口号,目的端口号M言息经散列函数判断其是否属于已有流;若该流记录不存在,则建立之,并初始化后返回;若该流记录己经存在,并没有确定类型,则继续;否则返回。C.根据SkypeUDP特征进行流序列判别。只对每流的前n(通常n《10)个报文进行;若某未知UDP流不符合SkypeUDP特征,则将该流标记为非5Skype流并返回;否则继续。D.根据SkypeVoIP特征继续判断每流的报文长度和报文间隔时间,对不同编码方式具有不同的识别参数(参见表1和表2);通常取每流前ml(通常n^l00)个报文进行。E.若某流符合SkypeVoIP特征,进一步则判定其为PC到PC或者PC到电话的Skype电话;否则,根据是否具有PC到PC的特征,判定其为Skype流视频或文件共享或者为非Skype流。2、一种识别基于TCP的Skype流的方法ITSVF,其特征在于,包括下列A.对每个到达网络链路的新分组,若是UDP分组或周知端口的TCP分组则丢弃,否则继续。B.对于其他TCP分组,由四元组(源IP地址,目的IP地址,源端口号,目的端口号}信息经散列函数判断其是否属于已有流;若该流记录不存在,则建立之,并初始化后存储该报文返回;若该流记录已经存在,并且已经确定了类型,则返回;否则继续。C.当报文长度小于50字节则丢弃,否则存储报文并提取其报文长度和间隔参数。若报文数量小于窗口值m2(通常m2=100),继续该流的下一个报文;若报文数量等于窗口值m2,则继续。D.计算报文序列的^统计值,若?统计值不符合要求,则判定该流为非Skype流;否则继续。E.计算报文序列的报文长度和间隔统计量,若与SkypeVoIP特征不吻合,则判定该流为非Skype流;否则判定该流为Skype流。表1采用不同编码方式时流统计量(PC到PC通信方式)<table>tableseeoriginaldocumentpage6</column></row><table>PCMU4341713818表2采用不同编码方式时流统计量(PC到电话通信方式)编码方式最大报文长度最小报文长度最大时间间隔最小时间间隔G72986532216PCMA1901802216PC而388卯2216其中,Skype语音流从网络链路中的分组集合中过滤聚合得到,即通过语音流的分组序列中的多个相继分组之间的一系列独特特征和/或这些分组具有的统计特征来识别。为此,可以采用如文献[3]类似的思路来解决流形成和按流分析等问题,并作为处理IUSVF和ITSVF方法共同的基础。将对前面符合特征序列的流保留下来,并对新到达的分组进行分析处理,直至完成识别方法为止。SkypeUDP特征是指SkypeUDP语音报文结构具有的如下特征报文结构可分为UDP首部信息、序列号字段、功能字段和加密内容。其中,序列号字段长度为两字节,位于UDP的负载前端,用来表示UDP报文的顺序,尽管有一定规律可循,但未呈明显的递增顺序;功能字段长度为5比特,它与3个随机比特一起放在负载的第三字节中,用来表示该报文的功能;加密内容,即话音等数据经过加密后放在报文的后面。更重要的是,采用协议分析仪对各种Skype流进行分析,对于PC到PC的UDP流,报文的第三个字节后半段首先会出现若干个连续的0x2,然后出现连续的0xd;对于PC到电话的UDP流,前两个报文的前4个字节均相同,而剩余报文的前4个字节也相同;对于不同的流,则前4个字节都不相同。SkypeVoIP特征是指Skype作为一种VoIP实例,具有下列分组话音的统计特征报文长度相对固定且较短、连接速率较低、报文间隔相对固定,同时会话持续时间相对较长。统计是指优秀的加密技术将使被加密的内容具有随机性的特征,而采用^统计能够揭示这种随机性。基于TCP的Skype语音流正是采用了高强度加密技术来隐藏报文特征,通过计算报文内容的Z统计值可验证TCP报文内容是否被加密。本发明相对于现有技术具有以下优点1、效率较高,实时强。为了使识别方法能够实时在线及时处理完(不会积压)网络链路上所有分组,要求解决方案有较低的计算复杂性。本发明利用逆向工程分析出的SkypeUDP特征设计了高效的识别方法,仅用前几个(约10个)就可以完成。本发明还用共同的流形成和按流分析机制,来支持同时识别Skype两类语音流,大大降低了识别开销。2、识别率高。较之现有的识别方法,本发明有较高的识别率、较低的误报性率和漏报率。对于IUSVF方法而言,在高效识别SkypeUDP特征的基础上,辅以SkypeVoIP特征;对ITSVF方法而言,将^统计与SkypeVoIP特征相结合,这些措施都有效地提高了Skype语音流识别率。图1为本发明实施例对应IUSVF方法流程图。图2为本发明实施例对应ITSVF方法流程图。图3为本发明实施例运行的环境。具体实施例方式下边结合附图和具体实施方式对本发明作进一步地说明。首先需要给出本发明提供的识别方法所需要的环境,如图1所示在Intel-Linux架构的PC机上安装并运行具有的本发明的识别方法IUSW和ITSVF的软件,将该PC机的100/1000Mb/s以太网卡连接到接入网络主干的局域网交换机上,并使之能够接收到链路上的所有流量。如果要在高速网络环境下应用本发明的识别方法,应当考虑用硬件实现相关识别方法。运行本发明提供的分离P2P流的系统配置如下在Intel-Linux架构的PC机上安装并运行基于本发明IUSVF和ITSVF的软件,PC机的100/1000Mb/s以太网卡与网络交换机相连。这些PC机硬件的主频3.0GHz及以上的Pentium双核CPU的PC机,内存22GB,硬盘80GB,运行Fedora10操作系统。图2给出了本发明IUSVF方法的工作流程图,该流程开始于步骤SlOl,8然后在步骤S102中,对每个到达的新分组,若是TCP分组或周知端口的UDP分组则丢弃,否则转S103。在步骤S103中对于其他UDP分组,由四元组(源IP地址,目的IP地址,源端口号,目的端口号}信息经散列函数判断其是否属于已有流;若该流记录不存在,则在步骤S104中建立之,并初始化后返回S101;否则转S105。在步骤S105中,如流已经被识别,则返回S101;否则转S106。在S106中,根据SkypeUDP特征进行流序列判别。只对每流的前n(如IO)个报文进行;若某未知UDP流不符合SkypeUDP特征,则转S107将该流标记为非Skype流并返回S101;否则转S108。在S108中,根据SkypeVoIP特征继续判断每流的报文长度和报文间隔时间,对不同编码方式具有不同的识别参数;通常取每流前m(如m^OO)个报文进行。若某流符合SkypeVoIP特征,则转S109进一步则在S110判定其为PC到PC或者在Slll判断为PC到电话的Skype电话;否则转SllO,根据是否具有PC到PC的特征在S113中判定其为非Skype流,或者S114中判定为Skype流视频或文件共享。本方法可以通过中断方式退出。图3给出了本发明ITSVF方法的工作流程图,该流程开始于步骤S201,在S202中对每个到达的新分组,若是UDP分组或周知端口的TCP分组则丢弃,否则转S203;在步骤S203中对于其他UDP分组,由四元组(源IP地址,目的IP地址,源端口号,目的端口号}信息经散列函数判断其是否属于已有流;若该流记录不存在,则在步骤S204中建立之,并初始化后返回S201;否则转S205;在S205如流已经被识别,返回S201;否则转S206。在S206中,当报文长度小于50字节则转S207丢弃,在转S201;否则存储报文,转S208计算卡方、报文长度和间隔值,转S209。在S209,若报文数量小于窗口值(如100个),则转S201继续接收该流的下一个报文;若报文数量大于窗口值,则转S210;在S210,若?统计值不符合要求,则判定该流为非Skype流,转S201;否则转S211;9在S211中,若SkypeVoIP特征不符合要求,则判定该流为非Skype流,转S201;否则转S213判定该流为Skype流,转S201。本方法可以通过中断方式退出。实施例本实施例给出了某ISP在PC上运行基于本发明识别方法的软件对某企业网接入因特网的Skype语音流进行识别,以掌握该企业网中Skype电话的应用情况,并为制定控制管理Skype语音流方案奠定基础。假定该企业网经100/1000Mb/s速率的以太网链路与某因特网服务提供商的网络相连。在PC上运行基于本发明识别方法的软件,将该PC的100/1000Mb/s以太网卡连接到与因特网服务提供商网络连接的局域网交换机上,并将该交换机配置为能够监听与主干网相连的所有网络流量。例如,当该企业网与因特网直接相连,所有机器都具有唯一的因特网IP地址,这时Skype将使用UDP协议传输语音流。因此,系统将调用IUSVF方法,识别出基于UDP的所有语音流。当该企业网与因特网经防火墙/NAT相连,所有机器都通过某个因特网IP地址与因特网相连,这时Skype将使用TCP协议传输语音流。因此,系统将调用ITSW方法,识别出基于TCP的所有语音流。通过收集上述识别出来的Skype语音流信息,ISP就能统计出用户使用Skype电话的数量、时间长度、用户分布等情况等。据此,ISP就能够制定相应的策略管理和控制Skype电话了。参考文献1.K.claffy.Internettrafficcharacterization.SanDiego:UniversityofCalifornia,1994.2.D.Bonfiglio,etal.,RevealingSkypeTraffic:WhenRandomnessPlayswithYou,presentedatSIGCOMM'07,Kyoto,Japan"2007.3.N.Brownlee,C.Mills,andG.Ruth.,TrafficFlowMeasurement:Architecture.RFC2722,1999.权利要求1、一种识别基于UDP的Skype流的方法IUSVF,其特征在于,包括下列步骤A.对每个到达网络链路的新分组,若是TCP分组或周知端口的UDP分组则丢弃,否则属于其他UDP分组,继续;B.对于该分组,由四元组{源IP地址,目的IP地址,源端口号,目的端口号}信息经散列函数判断其是否属于已有流;若该四元组与已有记录的流的四元组不一致,则该流记录的信息不存在,建立该流的信息散列函数,并初始化然后返回至步骤A;若该流记录的信息已经存在,并且没有确定类型,则继续;否则返回至步骤A;C.根据SkypeUDP特征对该已存在记录的流序列的前n个报文进行识别;若该未知类型的UDP流不符合SkypeUDP特征,则将该流标记为非Skype流并返回至步骤A;否则继续;D.根据SkypeVoIP特征继续判断该已存在记录的流序列的报文长度和报文间隔时间,对不同编码方式具有不同的识别参数;取该流前m1个报文进行识别;E.若该未知类型的UDP流符合SkypeVoIP特征,进一步判定该流是否符合PC到PC的特征,如果符合,则判定为PC到PC的Skype流,如果不符合,则判定为PC到电话的Skype流;若该未知类型的UDP流不符合SkypeVoIP特征,进一步判定该流是否符合PC到PC的特征,如果符合,则判定为Skype流视频或文件共享,如果不符合,则判定为非Skype流。2、一种识别基于TCP的Skype流的方法ITSW,其特征在于,包括下列步骤A.对每个到达网络链路的新分组,若是UDP分组或周知端口的TCP分组则丢弃,否则属于其他TCP分组,继续;B.对于该分组,由四元组(源IP地址,目的IP地址,源端口号,目的端口号}信息经散列函数判断其是否属于已有流;若该四元组与已有记录的流的四元组不一致,则该流记录的信息不存在,建立该流的信息散列函数,并初始化然后返回至步骤A;若该流记录的信息已经存在,并且己经确定了类型,则返回至步骤A;否则继续;C.当该未知类型的已存在记录的流序列的报文长度小于50字节时,丢弃返回至步骤A,否则存储报文并提取其报文长度和间隔参数;若报文数量小于窗口值m2,则返回至步骤A继续接收该流的下一个报文,若报文数量等于窗口值m2,则继续;D.计算该流报文序列的^统计值,若Z统计值不符合Skype流特征,则判定该流为非Skype流;否则继续;E.计算该流报文序列的报文长度和间隔统计量,若与SkypeVoIP流特征不吻合,则判定该流为非Skype流返回至步骤A;否则判定该流为Skype流返回至步骤A。全文摘要本发明的实时识别Skype两类语音流的方法,提出了从网络流量中实时准确识别出Skype基于UDP的语音流方法IUSVF和实时准确识别出Skype基于TCP的语音流方法ITSVF。这两种方法都要按流序列逐报文进行处理,而IUSVF的识别过程则要经过识别SkypeUDP特征和SkypeVoIP特征两个阶段,ITSVF的识别过程则通过计算判别流序列报文的χ<sup>2</sup>值和识别SkypeVoIP特征两个阶段。本发明具有实时识别效率较高,准确性好和降低识别开销的优点。文档编号H04L29/08GK101668034SQ200910035458公开日2010年3月10日申请日期2009年9月28日优先权日2009年9月28日发明者孙瑞锦,博许,鸣陈申请人:中国人民解放军理工大学指挥自动化学院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1