发明名称 基于特征码的P2P数据报文检测方法
摘要 基于特征码的P2P数据报文检测方法属于互联网技术领域,其特征在于:通过对大量P2P应用的数据包进行相关性研究和应用层协议分析,根据不同报文特征来提取各种P2P应用的报文特征码样本,确定为相应P2P应用的报文特征码,依据这些特征码对通过网关设备的每一个IP包进行应用层内容过滤,一旦匹配上某类特征码就可以确定该IP包是P2P数据包,然后,将检测结果添加到P2P规则库中供硬件使用。本发明同时适用于IPv4和IPv6网络,可对任意通信协议的数据报文进行全面的分析,能检测并过滤比特湍流、电驴、电骡、PPLive(P2P网络电视)、PPStream(流媒体电视)等多种目前主流的P2P应用,本发明已经在清华大学的“支持IPV6的网络隔离设备”中实现。
申请公布号 CN1913528A 申请公布日期 2007.02.14
申请号 CN200610112595.5 申请日期 2006.08.25
申请人 清华大学 发明人 徐明伟;丁强;徐恪;崔勇
分类号 H04L29/06(2006.01);H04L12/56(2006.01);H04L12/26(2006.01) 主分类号 H04L29/06(2006.01)
代理机构 代理人
主权项 1.基于特征码的P2P数据报文检测方法,其特征在于,依次具有以下步骤:步骤1:在支持IPV6的网络隔离设备的CPU板上设立一个P2P检测模块,该支持IPv6的网络隔离设备一端经路由器连接着一个受保护的IPv4或IPv6网络,另一端经另一个路由器连接着一个IPv4或IPv6网络;步骤2:当步骤1中所述CPU板中的软件收发单元在收到所述支持IPv6网络隔离设备中的包处理板内多路合并部件上来的IP包后,把所述IP包转发给步骤1中所述的P2P检测模块,由该模块依次按以下步骤进行数据报文检测;步骤3:所述P2P检测模块对收到的IP包进行解析,若最初4个比特为0100,则判定为IPv4数据包,把指向IP包头的结构指针skb向后移动ipv4headlen+head_len个字节,该ipv4headlen是IPv4包头长度,head_len是传输层报头长度;若最初4个比特是0110,则判定为IPv6数据包,把结构指针skb向后移动ipv6headlen+head_len个字节,该ipv6headlen是IPv6报头长度;再根据数据包的类型调用不同的函数:P2PDetect_IPv4或P2PDetect_IPv6来检测IPv4或IPv6报文;步骤4:所述P2P检测模块检测比特湍流BitTorrent数据报:若:主机为了进行比特湍流下载需要查询跟踪服务器Tracker,该服务器便通过超级文本传输协议HTTP的GET命令的参数来接收信息,所述P2P检测模块分别按下列情况进行处理:a.检测超级文本传输协议HTTP的净载荷数据的开始部分,如果具有特征码″User-Agent:BitTorrent″,则将此数据报判定为比特湍流数据报,然后,分别通过检测如下四类报文发现所有的比特湍流的数据报;或b.检测对等主机发往跟踪服务器的HTTP请求报文,在这类报文中出现的特征码为″User-Agent:BitTorrent″、″GET/announce info_hash=″和″GET/scrape info_hash″;或c.检测过滤对等主机之间的传输数据,在这类报文中出现的特征码为″BitTorrent protocole″;或d.检测过滤对等主机之间的UDP协商报文,在这类报文中出现的特征码为″d1:ad2:id″或″d1:rd2:id20:″;或e.检测跟踪服务器回应对等主机的HTTP报文,在跟踪服务器向对等主机返回一个B编码后的HTTP 200OK报文中,出现的特征码为″Set-Cookie:bt=″;步骤5:所述P2P检测模块检测电驴EDonkey数据报,属于电驴的应答报文,电驴的TCP数据部分特征码为:″e3 ** 00 00 00 47″;电驴的UDP数据部分的特征码为:″e3 9a″或″e3 96″或″e3 94″;步骤6:所述P2P检测模块检测基于电驴EDonkey协议的电骡EMule数据报,电骡的TCP数据部分的特征码为″e3 ** 00 00 00 4c″和″c5 ** 00 00 00″,这种报文为电骡的应答报文,电骡的UDP数据部分的特征码为″e3 a3 ff f0″和″02 00 00 3c 02 00″;步骤7:所述P2P检测模块检测P2P文件下载软件KaZaA数据报,KaZaA的TCP数据报开头部分有特征码″0d 0a GET/ ″,随后有特征码″X-Kazaa-Username:″或″User-Agent:PeerEnabler/″,还有″0d 0a GIVE ″或″0d 0a GET/.hash ″;KaZaA的UDP数据报中的特征码为″KaZaA″;步骤8:所述P2P检测模块检测P2P网络电视PPLive数据报,这类报文中的特征码为″www.pplive.chinacache.net″,这类报文的TCP数据包中的特征码为″e9 03 44 01″或″e9 0345 01″或″e9 03 46 01″,PPLive的UDP报文中的特征码为″e9 03 42 01 98 ab 01 02″或″70 70 6c 69 76 65″;步骤9:所述P2P检测模块检测流媒体电视PPStream数据报,有如下几种情况:主机在登录PPStream服务器时,要先访问PPStream的网站,在这类数据报中的特征码为″list1.PPStream.com″或″stat.PPStream.com″或″notice.PPStream.com″或″xml1.PPStream.com″;在主机间开始传输媒体数据之前的协商报文中含有特征码″GET/ ppNotice&lang=″和″PSProtocol″;主机向PPStream服务器发出的HTTP请求报文的结尾处都有特征码″PPStream.com″;步骤10:所述P2P检测模块按步骤4~步骤9对所述的各种特征码和接收到的报文中的字符串进行字符串比较,如果相等,就表示匹配成功,并确认所接收报文的类型;步骤11:所述P2P检测模块把检测到的信息组成一条条包含有五元组的P2P过滤规则插入到所述CPU板的P2P规则库中去,以此提供给底层硬件访问,所述五元组是指:源地址、目的地址、源端口、目的端口、协议类型,所述CPU板中的操作和维护模块OAM根据不同的控制策略和需求来过滤或限制相应的P2P流量。
地址 100084北京市100084-82信箱