一种实时识别多种p2p-tv应用视频流的方法

文档序号:7946116阅读:245来源:国知局

专利名称::一种实时识别多种p2p-tv应用视频流的方法
技术领域
:本发明属于网络数据通信领域,特别是一种从网络流量中实时准确地识别出PPLive、PPStream、SopCast和UUSee等P2P-TV应用系统视频流的方法,具体地说是一种实时识别多种P2P-TV应用视频流的启发式方法。
背景技术
:当前经过IP协议向桌面用户分发电视流式内容是因特网的一种主流应用,并且由于P2P技术具有的资源聚合的经济性、较好的扩展性和可靠性、自组织的动态性等优点,使这些系统大都利用P2P覆盖网络对播(peercast)流式内容。对播是指经过P2P网络以多播、广播或单播传输数据流的方式,常用的是P2P多播和P2P广播。目前我们见到的最为流行的对播应用包括P2P应用无线电、P2P流式音乐和基于P2P的因特网电视(亦称P2P-TV)。而P2P-TV又可以分为流式直播和点播两种方式。与P2P文件共享不同,上述应用中的对等方不需要下载整个文件到本地就能够收看或收听流式(streaming)内容,这就大大改善了用户体验。由于电视媒体对人类文化和生活方式的重要影响力,以及它在网络中产生的巨大流量,理解、管理和引导P2P-TV应用的行为是当前各研究机构、因特网服务提供商关注和研究的主题,而这一切的前提首先要能够识别P2P-TV流。所谓P2P-TV流是指以P2P方式传输的电视信号报文集合,它们符合五元组{源IP地址,源端口号,目的IP地址,目的端口号,运输层协议类型}流规范和64秒超时定义的双向流[l],可以采用如文献[4]类似的思路来解决流形成和按流分析等问题。本专利给出的实时识别P2P-TV应用视频流的技术,主要是指识别当前流行的PPLive、PPStream、SopCast和UUSee应用系统的视频流。由于当前大多数P2P应用都采用了随机端口技术,因而无法利用周知端口号对P2P应用进行识别。当前识别P2P-TV应用视频流的方法可分为3类:基于应用协议特征字的识别方法、基于行为特征的识别方法和基于机器学习的分类方法。基于应用协议特征字的识别方法通过分析P2P协议的应用层负~载,提取出能够唯一标识出协议类型的特征字符串,以识别出P2P应用。这种识别方法也称为深度分组检测(DeepPacketInspection,DPI),它具有识别准确率高,但缺点是无法识别加密数据。基于行为特征的识别方法综合利用了流的属性、统计特性以及流的行为特征,根据启发式规则对流进行分析,达到识别P2P应用的目的。这种方法识别时间较长,且识别准确率不够高。基于机器学习的分类方法通过提取各类应用的流、分组等信息对分类器进行训练,然后利用训练好的分类器对数据进行分类。这种方法识别时间长,且准确性有待提高。文献[2]根据不同的P2P-TV系统在起始阶段所发送的分组数目是不同的,将系统启动后固定大小的时间段按照等比数列划分为若干个时间片,并计算出各个时间片内所发送的分组数占总分组数的比例,构成一个向量,并利用支持向量机识别网络中的P2P-TV流量。文献[3]通过分析PPLive报文结构,通过构造节点列表请求报文获取网络中的PPLive节点信息,从而提出了一种主动检测PPLive流的方法。目前的这些识别P2P-TV视频流的方法仍存在着识别率不够高、识别滞后且节点信息残存时间较长的缺陷,需要研制更好的识别方法。
发明内容本发明的目的是针对目前识别P2P-TV视频流的方法存在的识别率不够高、识别滞后且节点信息残存时间较长的缺陷,提出一种从网络流量中实时准确地识别出多种P2P-TV应用系统视频流的方法。本发明的技术方案是1.一种实时识别多种P2P-TV应用视频流的方法(简称基于启发式的视频流识别(Heuristic-basedIdentifyingVideoFlows,HIVF)方法),其特征在于,包括下列步骤A.初始化步骤由被识别的P2P-TV系统的服务器域名信息(参见表l)获取相应服务器的IP地址并存入服务器地址集ServIPAddr中;由被识别的P2P-TV系统UDP报文应用层的前n个字节(nG25)作为特征字(参见表2)放入应用层特征字表StringBase中;构造一个节点信息表NodeSet,以存储当前已识别的正在运行P2P-TV的主机IP地址,每个地址表项都有一个时间TTL与之关联,NodeSet初始为空,继续;B.初步识别步骤对每个到达的网络链路的新报文,若流类型未知,由四元组(源IP地址,目的IP地址,源端口号,目的端口号}信息经散列函数判断其是否属于已有流;若该流记录类型已知则返回至步骤B;否则,当报文是TCP分组则转C,当报文是UDP分组转D;.C.识别与服务器通信的步骤将报文目的IP地址和源IP地址与服务器地址集ServIPAddr中的服务器IP地址进行比对,若服务器地址集中有一个IP地址与一个报文的目的IP地址匹配,则将该分组的源IP地址及相关服务器所属的P2P-TV类型放入NodeSet中,并设相应TTL为IO,返回至步骤B;否则直接返回至步骤B;D.匹配应用层特征字的步骤:将报文源IP地址和目的IP地址与NodeSet中的报文源地址进行比对,若报文源IP地址和目的IP地址均不在NodeSet中,返回至步骤B;否则将报文应用层第1~5个字节与StringBase中相应的P2P-TV应用层特征字比对,若不匹配继续;否则该流标识为对应类型的P2P-TV视频流,并设相应TTL为IO,返回至步骤B;E.更新NodeSet表步骤每经过16秒就检查NodeSet所有非空表项,将其TTL值减1,若为零则删除该表项,返回至步骤B;否则返回至步骤B。表1各种P2P-TV系统主要的服务器域名P2P-TV系统P2P-TV服务器域名PPLivepassport.pplive.com,vodchannel.pplive.com,iptable.pplive.com,pp.pplive.com,update.pplive.com,list.pplive.comPPStreamfds.ppstream.com,tvguide.pps.tv,vodguide.pps.tv,msg.ppstream.com,download.ppstream.com,5<table>tableseeoriginaldocumentpage6</column></row><table>注表l中的信息基本稳定,但以后也可能会有变化表2几种P2P-TV系统应用层特征字及其位置信息(Ox表示16进制)<table>tableseeoriginaldocumentpage6</column></row><table>注表2信息适用于近期P2P-TV应用系统的版本号PPLive为2.2.26.0002,PPStream为2.3.550.1950,SopCast为3.0.3,UUSee为5.9.710.2。利用每个节点都具有不变的UDP监听端口的特点,构造一个监听端口表ListenPort,通过统计得到各个节点的监听端口号并记录在ListenPort中,这时可采用效率更高的端口识别方法来识别视频流。本发明相对于现有技术具有以下优点1、识别率高。较之现有的识别方法,本发明有较高的识别率、较低的识别差错率。这主要得益于HIVF方法采用了两阶段识别过程与服务器通信的过程,是根据P2P-TV节点必须访问服务器地址集的行为;应用层特征字匹配过程,流的前几个分组包括应用层特征字。2、效率较高,实时强。通过首先排除已经识别类型的流,使方法处理对象大为减少;识别方法有较低的计算复杂性,能够实时在线及时处理完(不会积压)网络链路上所有分组,要求解决方案。图1为本发明实施例运行的环境。图2为本发明实施例对应HIVF方法流程图。具体实施例方式下边结合附图和具体实施方式对本发明作进一步地说明。首先需要给出本发明提供的识别方法所需要的环境,如图1所示在Intel-Linux架构的PC机上安装并运行具有的本发明的HIVF识别方法的软件,将该PC机的100/1000Mb/s以太网卡连接到接入网络主干的局域网交换机上,并使之能够接收到链路上的所有流量。如果要在高速网络环境下应用本发明的识别方法,应当考虑用硬件实现相关识别方法。运行本发明提供的识别P2P-TV视频流的系统配置如下在Intel-Linux架构的PC机上安装并运行基于本发明HIVF的软件,PC机的100/1000Mb/s以太网卡与网络交换机相连。这些PC机硬件的主频3.0GHz及以上的Pentium双核CPU的PC机,内存^2GB,硬盘80GB,运行Fedora10操作系统。图2给出了本发明基本HIVF方法的工作流程图,该流程开始于步骤SiOl,由被识别的P2P-TV系统的域名信息获取相应服务器的IP地址并存入服务器地址集ServIPAddr中;由被识别的P2P-TV系统UDP报文应用层的前几个字节作为特征字放入应用层特征字表StringBase中;构造一个节点信息表NodeSet,以存储当前已识别的正在运行P2P-TV的主机IP地址,NodeSet初始为空,每个地址表项都有一个时间TTL与之关联,NodeSet初始为空,继续转S102。在步骤S102中,对每个到达的新报文,若流类型未知,由四元组(源IP地址,目的IP地址,源端口号,目的端口号}信息经散列函数判断其是否属于已有流;若该流记录类型已知转S102;否则,当报文是TCP分组则转S103,当报文是UDP分组转S104。在步骤S103中,将报文目的IP地址和源IP地址与服务器地址集ServIPAddr中的服务器IP地址进行比对,若服务器地址集中有一个IP地址与一个报文的目的IP地址匹配,则转S105将该分组的源IP地址及相关服务器所属的P2P-TV类型放入NodeSet中,并设相应TTL为TO,转1ST02;否则转S102。在步骤S104,若报文源和目的地址均不在NodeSet中,转S102;否则转~S106。在步骤S106中,将报文应用层第1~5个字节与StringBase中相应的P2P-TV应用层特征字比对,若不匹配转S108;否则转S107,将该流标识为对应类型的P2P-TV视频流,并设相应TTL为IO,转S102。在步骤S108中,每经过16秒就检査NodeSet所有非空表项,将其TTL值减l,若为零则删除该表项,转S102;否则转S102。本方法可以通过中断方式M出。实施例本实施例给出了某ISP在PC上运行基于本发明识别算法的软件对某企业网接入因特网的P2P-TV视频流进行识别,以掌握该企业网中P2P-TV视频流的应用情况并为制定控制管理P2P-TV视频流方案提供科学依据。假定该企业网经100/1000Mb/s速率的以太网链路与某因特网服务提供商的网络相连。在PC上运行基于本发明识别方法的软件,将该PC的100/1000Mb/s以太网卡连接到与因特网服务提供商网络连接的局域网交换机上,并将该交换机配置为能够监听与主干网相连的所有网络流量。例如,当该企业网与因特网直接相连,所有机器都具有唯一的因特网IP地址,这时网络用户使用PPLive、PPStream、SopCast和UUSee应用系统观看网络电视。识别系统将调用HIVF方法,识别出基于UDP的这些应用的视频流。通过收集上述识别出来的P2P-TV视频流信息,ISP就能统计出用户使用P2P-TV网络电视的数量、时间长度、用户分布等情况等。据此,ISP就能够制定相应的策略管理和控制P2P-TV网络电视了。本发明未涉及部分均与现有技术相同或可采用现有技术加以实现。参考文献K.claffy.Internettrafficcharacterization.SanDiego:UniversityofCalifornia:1994.S.Valenti,D.Rossi,M.Meo,M.Mellia,P,Bermolen.Accurate,fine-grainedclassificationofP2P-TVapplicationsbysimplycountingpackets.InInternationalInTrafficMeasurementandAnalysis(TMA)WorkshopatIFIPNetworking'09Aachen,Germany,May2009.胡超,陈鸣,许博,李兵.一种基于爬虫的分布式PPLive流实时检测系统.解放军理工大学学报,2008,9(5):512-516N.Brownlee,C.Mills,andG.Ruth.,TrafficFlowMeasurement:Architecture.RFC2722,1999.权利要求1.一种实时识别多种P2P-TV应用视频流的方法,其特征在于,包括下列步骤A.初始化步骤由被识别的P2P-TV系统的服务器域名信息获取相应服务器的IP地址并存入服务器地址集ServIPAddr中;由被识别的P2P-TV系统UDP报文应用层的前n个字节作为特征字放入应用层特征字表StringBase中;构造一个节点信息表NodeSet,以存储当前已识别的正在运行P2P-TV的主机IP地址,每个地址表项都有一个时间TTL与之关联,NodeSet初始为空,继续;B.初步识别步骤对每个到达的网络链路的新报文,若流类型未知,由四元组{源IP地址,目的IP地址,源端口号,目的端口号}信息经散列函数判断其是否属于已有流;若该流记录类型已知则返回至步骤B;否则,当报文是TCP分组则转C,当报文是UDP分组转D;C.识别与服务器通信的步骤将报文目的IP地址和源IP地址与服务器地址集ServIPAddr中的服务器IP地址进行比对,若服务器地址集中有一个IP地址与一个报文的目的IP地址匹配,则将该分组的源IP地址及相关服务器所属的P2P-TV类型放入NodeSet中,并设相应TTL为10,返回至步骤B;否则直接返回至步骤B;D.匹配应用层特征字的步骤将报文源IP地址和目的IP地址与NodeSet中的IP地址进行比对,若报文源IP地址和目的IP地址均不在NodeSet中,返回至步骤B;否则将报文应用层第1~5个字节与StringBase中相应的P2P-TV应用层特征字比对,若不匹配继续;否则该流标识为对应类型的P2P-TV视频流,并设相应TTL为10,返回至步骤B;E.更新NodeSet表步骤每经过16秒就检查NodeSet所有非空表项,将其TTL值减1,若为零则删除该表项,返回至步骤B;否则直接返回至步骤B。2、根据权利要求1的实时识别多种P2P-TV应用视频流的方法,其特征是在步骤A中,利用每个节点都具有不变的UDP监听端口的特点,构造一个监听端口表ListenPort,通过统计得到各个节点的监听端口号并记录在ListenPort中,这时可采用效率更高的端口识别方法来识别视频流。全文摘要本发明提出了一种实时识别多种P2P-TV应用视频流的方法,从网络流量中实时准确地识别出PPLive、PPStream、SopCast和UUSee等P2P-TV应用系统视频流。该方法的基本思想是先针对P2P-TV节点必须访问服务器地址集的行为,得到那些与服务器地址集内服务器通信的IP地址,并剔除非P2P-TV应用流分组;再对余下的流比对是否具有应用层特征字的特征,如果相匹配则将该流识别为特定的P2P-TV视频流。本发明具有识别率高、识别差错率低和实时性强的优点。文档编号H04L29/08GK101668035SQ200910035459公开日2010年3月10日申请日期2009年9月28日优先权日2009年9月28日发明者兵李,超胡,鸣陈申请人:中国人民解放军理工大学指挥自动化学院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1