具体实施方式
参阅图1,本发明实施例提供一种向DPI提供用于识别数据包的信息的方法,其包括:
101、利用应用协议的爬虫程序,建立所述应用协议和使用所述应用协议的网络实体信息的对应关系。
其中,该实施例的执行主体可以是爬虫引擎,该爬虫引擎可以位于DPI设备上,也可以位于与DPI设备独立存在的设备上,不影响本发明的实现。
其中,所述网络实体的信息包括:所述网络实体的地址和所述网络实体所使用的传输层协议标识。所述网络实体的地址包括:网络实体的IP地址和端口号;或者,所述网络实体的地址包括:所述网络实体的域名。其中,所述应用协议和使用所述应用协议的网络实体信息的对应关系具体可以是:应用协议的标识和使用所述应用协议的网络实体信息的对应关系。其中,应用协议的标识可以是应用协议的ID或者应用协议的名称。
具体的,网络中的各网络实体可以采用不同的应用协议,也可以多个网络实体采用相同的应用协议,每一个应用协议对应一个爬虫程序,不同的应用协议对应不同的爬虫程序,具体的应用协议的爬虫程序可以有:BT程序、eDonkey程序、QQ程序等。
该步骤可以通过如下两种方式实现:
第一种方式:爬虫引擎顺序调用爬虫程序集合中的应用协议的爬虫程序向网络中的网络实体发送探测请求消息,直到接收到所述网络实体返回的表示探测成功的响应消息为止,建立对应响应消息的探测请求消息所使用的应用协议与所述网络实体的信息的对应关系。
其中,爬虫程序集合中有多种应用协议的爬虫程序,比如BT程序、eDonkey程序、QQ程序等,爬虫引擎顺序调用各应用协议的爬虫程序向网络中的网络实体进行探测,以探测该网络实体是否使用该应用协议。如果该网络实体使用某个应用协议,网络实体接收到爬虫引擎利用该应用协议的爬虫程序发送的探测请求消息之后,会向爬虫引擎反馈表示探测成功的响应消息。
优选的,采用这种实现方式的情况下,在该步骤之前,还可以包括:爬虫引擎接收DPI设备发送的需要识别应用协议的网络实体的信息;其中,所述需要识别应用协议的网络实体是DPI设备未能识别出所用应用协议的网络实体。则该步骤中,爬虫引擎顺序调用爬虫程序集合中应用协议的爬虫程序向该需要识别应用协议的网络实体发送探测请求消息,直到接收到该需要识别应用协议的网络实体返回的表示探测成功的响应消息为止。
第二种方式包括如下步骤:
A、确定作为查询源的网络实体;其中,该作为查询源的网络实体使用所述应用协议。
B、利用应用协议的爬虫程序从该查询源获取与该查询源关联的网络实体的信息;其中,与该查询源关联的网络实体为使用该应用协议、且与该查询源拥有相同资源的网络实体。
其中,与该查询源拥有相同资源的网络实体可以是与该查询源分享相同文件的网络实体。比如,与该查询源下载同一文件的网络实体,或者,该查询源在上传一个文件,下载该查询源上传的该文件的网络实体。
C、将与查询源关联的网络实体中没有做过查询源的网络实体作为更新的查询源,当没有达到查询结束条件时,返回执行步骤B,此时所述步骤B中的查询源为所述更新的查询源;当达到查询结束条件时,建立所述应用协议和使用所述应用协议的网络实体的信息的对应关系。其中,使用所述应用协议的网络实体包括:步骤A中的作为查询源的网络实体,以及步骤B中获取到的网络实体。
其中,查询结束条件可以是获取到的网络实体个数达到了预定的个数,或者定时器超时,即执行查询操作的时间(即执行上述步骤A、B和C的时间)超过了预定的时间。
其中,步骤A中作为查询源的网络实体可以是预定的使用该应用协议的网络实体;也可以是从特定资源的种子文件中提取出的、且使用该应用协议的网络实体,或者,从特定资源的种子文件提取出的***Tracker所追踪到的、且使用该应用协议的网络实体;也可以是爬虫引擎顺序调用爬虫程序集合中的应用协议的爬虫程序尝试向网络中的某个网络实体发送探测请求消息,直到接收到该网络实体返回的表示探测成功的响应消息为止,确定对应该响应消息的探测请求消息所使用的应用协议是该网络实体所使用的应用协议后,将该网络实体作为查询源;也可以是DPI设备通知爬虫引擎的,具体的,DPI设备接收到某个数据包之后,会利用深度包检测技术确定该数据包所属的应用协议,建立该数据包的源端和/或目的端与该应用协议标识的映射关系并发送给爬虫引擎;爬虫引擎根据DPI设备发送的映射关系,确定所述映射关系中应用协议标识所对应的网络实体是作为查询源的网络实体。其中,DPI设备利用深度包检测技术确定该数据包所属的应用协议具体可以为:DPI设备利用特征识别方式、行为识别方式、启发式识别方式或者关联识别方式识别该数据包所属的应用协议。其中,采用特征识别方式、行为识别方式、启发式识别方式或者关联识别方式识别数据包业务类型的具体实现方式可以参考现有的方案,在此不再赘述。
其中,适用这种方式的应用协议爬虫程序是适用于点到点的应用协议爬虫程序,比如:BT程序、eDonkey程序等。
102、向DPI设备发送包括所述对应关系的识别信息,使所述DPI设备利用所述对应关系识别数据包所属的应用协议。
其中,所述识别信息还包括:所述对应关系的老化建议时间,使该DPI设备在该对应关系的老化建议时间到达后,控制该对应关系无效,比如,直接将该对应关系删除等,使在该对应关系的老化建议时间到达后,DPI设备不能再根据该对应关系确定数据包所属的应用协议了。
其中,本发明实施例中的网络实体可以是对等网络实体(Peer),也可以是其他的网络实体,不影响本发明的实现。
本发明实施例中利用应用协议的爬虫程序来建立该应用协议的标识和使用该应用协议的网络实体的信息的对应关系,并发送给DPI设备,使DPI设备利用该对应关系识别数据包所属的应用协议,这样,DPI设备就不需要解密数据包,降低了性能开销,DPI设备也不用离线分析该应用协议的码流的具体字符特征,降低了码流识别的时间。
为了使本发明上述技术方案更加清楚明白,如下实施例以网络实体为peer(对等网络实体)为例,对本发明提供的向DPI提供用于识别数据包的信息的方法进行详细描述,其具体包括:
201A、DPI设备中的爬虫引擎确定作为查询源的对等网络实体为Peer1,利用应用协议的爬虫程序向Peer1发送查询请求消息。
该实施例中爬虫引擎保存有为不用应用协议所开发的爬虫程序,在需要访问Peer时,根据预定信息确定作为查询源的对等网络实体,调用应用协议的爬虫程序,向该查询源发送查询请求。其中,预定信息可以是预定的对应具体应用协议的查询源的信息,比如,可以预定对应Bittorent_DHT这个协议的查询源是Peer1,则预定信息可以为该Peer1的地址信息和该Peer1所应用的传输层协议。
可选的,DPI设备中的爬虫引擎也可以根据DPI设备的识别引擎上报的信息确定作为查询源的对等网络实体。具体的,DPI设备中的识别引擎接收到某个数据包之后,利用深度包检测技术确定该数据包所属的应用协议,建立该数据包的源端和/或目的端与该应用协议标识的映射关系并发送给爬虫引擎,爬虫引擎将该映射关系中该应用协议标识所对应的源端和/或目的端作为查询源。
202A、Peer1向爬虫引擎发送查询响应消息,其包括:与Peer1关联的Peer的信息。
其中,与Peer1关联的Peer的信息包括:与Peer1关联的Peer的地址信息和与Peer1关联的Peer所使用的传输层协议,其中,该Peer的地址信息可以包括IP地址和端口号,或者包括域名等。
其中,与Peer1关联的Peer为使用该应用协议、且与该Peer1拥有相同资源的Peer,比如拥有相同的媒体资源,具体如,与该Peer1在下载同一个电影的Peer。该实施例中假定与Peer1关联的Peer为Peer2和Peer3。
203A、DPI设备中的爬虫引擎将Peer2作为查询源,利用该应用协议的爬虫程序向Peer2发送查询请求消息。
204A、Peer2向爬虫引擎发送查询响应消息,其包括:与Peer2关联的Peer的信息,其中,与Peer2关联的Peer为使用该应用协议、且与该Peer2拥有相同资源的Peer。
205A、爬虫引擎将Peer3作为查询源,利用该应用协议的爬虫程序向Peer3发送查询请求消息。
206A、Peer3向爬虫引擎发送查询响应消息,其包括:与Peer3关联的Peer的信息,其中,与Peer3关联的Peer为使用该应用协议、且与该Peer3拥有相同资源的Peer。
需要说明的是,步骤203A和步骤204A是顺序执行的,步骤205A和步骤206A是顺序执行的,但是步骤203A-步骤204A与步骤205A-步骤206A之间没有执行上的先后顺序,也可以并列执行,不影响本发明的实现。
207A、DPI设备中的爬虫引擎判断是否达到查询结束条件,如果否,执行步骤208A,如果是,执行步骤210A。
其中,判断是否达到查询结束条件可以是判断查询到的使用该应用协议的Peer的个数是否满足预定的个数,或者判断定时器是否超时,即查询操作时间是否达到了预定的时间。
在该步骤之前,爬虫引擎当根据各查询源返回的查询响应消息,确定各查询源反馈的使用该应用协议的Peer中有重复的节点时,去掉各查询源反馈的使用该应用协议的Peer中重复的Peer,则上述所判断的“查询到的使用该应用协议的Peer”不包括该重复的Peer。
其中,该步骤是从与Peer2关联的各Peer和与Peer3关联的各Peer中去掉重复的Peer。其中,该步骤也可以将各查询源反馈的使用该应用协议的Peer中无效的Peer去掉,其中无效的Peer可以是当前处于故障状态的节点。
208A、DPI设备中的爬虫引擎在去掉各查询源反馈的使用该应用协议的Peer中重复的Peer后,将剩下的Peer作为更新的查询源,利用该应用协议的爬虫程序向更新的查询源发送查询请求消息。
该实施例假定与Peer2关联的Peer为Peer4、Peer5和Peer6,与Peer3关联的Peer为Peer5、Peer6,则步骤208中的查询源为Peer4、Peer5和Peer6。
209A、DPI设备中的爬虫引擎会接收到针对该查询请求消息的查询响应消息,其包括与上述更新的查询源关联的Peer的信息,返回执行步骤207A。
其中,与上述更新的查询源关联的Peer的信息为:使用该应用协议、且与上述更新的查询源拥有相同资源的Peer的地址和该Peer所使用的传输层协议。
210A、DPI设备中的爬虫引擎向DPI设备中的识别引擎上报识别信息,该识别信息包括:使用该应用协议的Peer的信息和应用协议标识的对应关系。
其中,使用该应用协议的Peer的信息包括:使用该应用协议的Peer的地址和使用该应用协议的Peer所使用的传输层协议。
其中,DPI设备中的爬虫引擎上还可以保存各应用协议所对应的老化建议时间,所以,在该步骤中,爬虫引擎向识别引擎上报的该识别信息还可以包括:老化建议时间,老化建议时间表示该对应关系什么时候老化。在该化建议时间到达之后,该使用该应用协议的Peer的信息与该应用协议标识的对应关系不再有效。
211A、DPI设备中的识别引擎接收并保存爬虫引擎发送的识别信息。
图2B示出了上述图2A所示实施例所对应的爬虫引擎获取Peer信息的示意图,其中,假定Peer1为预定的查询源,图2B中的“1”表示第一阶段查询操作,即查询Peer1,查询Peer1所得到的与Peer1关联的Peer为Peer2和Peer3;“2”表示第二阶段查询操作,即查询Peer2和Peer3,其中,查询Peer2所得到的与Peer2关联的Peer为Peer4、Peer5和Peer6,查询Peer3所得到的与Peer3关联的Peer为Peer4和Peer5;“3”表示第三阶段查询操作,即查询Peer4、Peer5和Peer6。
可选的,爬虫引擎是模拟真实的Peer的,在从查询响应中获取到某个Peer的信息后,该爬虫引擎就可以模拟该Peer,主动将该Peer的信息提供给其他Peer,也可以在接收到其他Peer的相关请求后,将该Peer的信息提供给其他Peer。
本发明实施例中利用应用协议的爬虫程序,从作为查询源的网络实体获取到与该查询源相关联的Peer信息,进而将获取到的作为更新的查询源再获取与更新的查询源相关联的Peer信息,通过这种方式,获取到网络中使用该应用协议的Peer信息,将该应用协议的标识和使用该应用协议的Peer信息的对应关系发送给DPI设备中的识别引擎,使DPI设备中的识别引擎利用该对应关系识别数据包所属的应用协议,这样,DPI设备就不需要解密数据包,降低性能开销,DPI设备也不用离线分析该应用协议的码流的具体字符特征,降低了码流识别的时间。
参阅图3,如下实施例是本发明实施例提供的另一种向DPI提供用于识别数据包的信息的方法,该方法具体包括:
301、DPI设备中的识别引擎接收到数据包后,查询本地保存的应用协议标识和网络实体信息的对应关系,如果根据所保存的对应关系,不能确定该数据包对应的网络实体所对应的应用协议标识,则向DPI设备中的爬虫引擎发送该数据包对应的网络实体信息,其中,该数据包所对应的网络实体是需要识别应用协议的网络实体。
其中,该数据包所对应的网络实体可以是该数据包的源端和/或目的端。
可选的,DPI设备中的识别引擎也可以在根据所保存的对应关系,不能确定该数据包对应的网络实体所对应的应用协议标识后,可以采用深度包检测技术识别该数据包所属的应用协议,即根据该数据包中的特征字符或者特征行为等进行识别,如果在预定时间内不能成功识别该数据包所属的应用协议,则向DPI设备中的爬虫引擎发送该数据包对应的网络实体信息。
302、DPI设备中的爬虫引擎顺序调用爬虫程序集合中应用协议的爬虫程序向需要识别应用协议的网络实体发送探测请求消息,直到接收到该网络实体返回的表示探测成功的响应消息为止。
比如,DPI设备中的爬虫引擎可以调用爬虫程序集合中的BT程序向需要识别应用协议的网络实体发送探测请求消息,如果接收到该需要识别应用协议的网络实体发送的表示探测成功的响应消息,则执行后续303;如果没有接收到该需要识别应用协议的网络实体发送的表示探测成功的响应消息,则继续调用QQ程序向需要识别应用协议的网络实体发送探测请求消息,直到接收到该需要识别应用协议的网络实体发送的表示探测成功的响应消息为止。
303、DPI设备中的爬虫引擎建立对应响应消息的探测请求消息所使用的应用协议的标识与需要识别应用协议的网络实体的信息的对应关系。
续上述实例,如果调用QQ程序向需要识别应用协议的网络实体发送探测请求消息时,接收到需要识别应用协议的网络实体发送的表示探测成功的响应消息,则建立QQ程序标识与需要识别应用协议的网络实体的信息的对应关系,即建立QQ程序标识与需要识别应用协议的网络实体的地址和其所使用的传输层协议标识的对应关系。
304、DPI设备中的爬虫引擎向DPI设备中的识别引擎发送识别信息,该识别信息中包括该对应关系,可选的,该识别信息中还可以包括该对应关系的老化建议时间。
本发明实施例中顺序调用爬虫程序集合中应用协议的爬虫程序向需要识别应用协议的网络实体发送探测请求消息,直到接收到该网络实体返回的表示探测成功的响应消息为止,建立该网络实体信息与对应响应消息的探测请求消息所使用的应用协议标识的对应关系并发送给DPI设备,使DPI设备中的识别引擎利用该对应关系识别数据包所属的应用协议,这样,DPI设备就不需要解密数据包,降低了性能开销,DPI设备也不用离线分析该应用协议的码流的具体字符特征,降低了码流识别的时间。
图4示出了本发明实施例提供的一种DPI设备识别数据包所属应用协议的方法,其中,该实施例中的网络实体可以是Peer(对等网络实体)其包括:
401、DPI设备中的识别引擎接收到数据包,该数据包中携带五元组。
该五元组包括:源网络实体的IP地址、目的网络实体的IP地址、源网络实体的端口号、目的网络实体的端口号和传输层协议标识。
其中,源网络实体是发出该数据包的网络实体,目的网络实体是接收该数据包的网络实体。
402、DPI设备中的识别引擎根据已保存的对应关系,确定该数据包所使用的应用协议。
其中,已保存的对应关系包括:应用协议的标识和使用该应用协议的网络实体的信息的对应关系,其中,使用该应用协议的网络实体的信息包括:使用该应用协议的网络实体的地址,和该网络实体所使用的传输层协议标识,网络实体的地址包括该网络实体的IP地址和端口号。
具体的,该步骤将五元组和网络实体的信息进行比较,如果网络实体的信息中的传输层协议标识与五元组中的传输层协议标识所表示的传输层协议相同,且,如果网络实体的地址与五元组中的源网络实体的IP地址和端口号相同,或者与目的网络实体的IP地址和端口号相同,则确定该数据包使用的应用协议为该对应关系中该网络实体所对应的应用协议。
需要说明的是,如果网络实体的信息中的传输层协议标识与五元组中的传输层协议标识所表示的传输层协议不相同,或者,如果网络实体的地址与五元组中的源网络实体和目的网络实体的IP地址和端口号都不相同,则可以根据数据包中的特征字符或者特征行为识别出该数据包所适用的应用协议,具体的如何根据数据包中的特征字符或者特征行为进行识别是本领域公知常识,在此不再赘述。
为了使上述技术方案更加清楚,如下举实例进行说明:假定识别引擎已建立的对应关系为:
TCP 192.168.0.1:5566<-->Bittorent_DATA 1800;
UDP 192.168.0.1:5566<-->Bittorent_DHT_Control 1801;
UDP 192.168.0.16:5566<-->Bittorent_DHT_Control 1801;
TCP 192.168.0.16:5566<-->Bittorent_DATA 1800;
其中,TCP和UDP为传输层协议的名称;Bittorent_DATA、DHT_Control分别为应用协议的名称,1800、1801分别为应用协议的ID。
假定接收到的数据包中携带的网络实体所使用的传输层协议为TCP协议,源网络实体IP地址为192.168.0.16,端口号为5566;则识别引擎根据已建立的对应关系,查找到该网络实体对应的应用协议名称为Bittorent_DATA、应用协议的ID为1800。
需要说明的是,上述识别引擎和爬虫引擎可以部署在同一个设备上,即DPI设备上,也可以部署在不同的设备上,即识别引擎部署在DPI设备上,爬虫引擎部署在不同的设备上。当识别引擎和爬虫引擎部署在不同的设备上时,两者可以位于同一网络中,也可以部署在不同的网络中。可以根据一些特殊性需求来部署识别引擎和爬虫引擎,比如,因为识别引擎会部署在DPI设备上,而DPI设备对加密数据包也具有解密的功能,如果DPI部署在运营商的机房,可能会收集到一些运营商的敏感信息,因此有些运营商不允许DPI设备私自访问运营商的外部网络,防止DPI设备向外泄露敏感信息,在这种情况下,如果DPI设备想收集爬虫引擎的信息,就需要部署在运营商的外部网络中。
需要说明的是,Bittorent等协议可以细分为多个子协议,比如Bittorent非DHT(Distributed Hash Table,分布式哈希表)协议和Bittorent DHT协议。如下两个实施例分别以应用协议为Bittorent非DHT(Distributed Hash Table,分布式哈希表)协议,和Bittorent DHT协议为例,分别描述爬虫引擎获取Peer信息及向识别引擎上报识别信息的过程。
参阅图6,该实施例以应用协议为Bittorent非DHT协议、网络实体为Peer(对应网络实体)为例描述爬虫引擎获取Peer信息及向识别引擎上报识别信息的过程,该实施例中基于特定资源搜索Peer信息,特定资源可以是预定配置的,也可以是从其他设备上获取的,其中,获取Peer信息及向识别引擎上报识别信息的过程具体包括:
601、爬虫引擎利用应用协议的爬虫程序,创建搜索请求,利用该搜索请求搜索特定资源,搜索到该特定资源的种子文件。
其中,特定资源可以是视频资源,比如电影建国大业,也可以是音频资源,不影响本发明的实现。
602、爬虫引擎通过解析种子文件提取到Tracker信息和Peer信息,将Peer信息写入Peer列表。
其中,该步骤中提取到的Peer信息为使用该应用协议的Peer的信息。具体的,Peer信息包括:Peer的地址和该Peer所使用的传输层协议标识。
603、爬虫引擎利用应用协议的爬虫程序创建查询请求,根据提取到的Tracker信息,向相应的Tracker发送查询请求,Tracker向爬虫引擎返回查询响应,其包括:使用该应用协议且被该Tracker追踪到的Peer的地址和该Peer所使用的传输层协议标识。
可选的,该步骤中,爬虫引擎还可以判断接收到的查询响应的有效性,当查询响应有效时,执行步骤605,否则结束本流程。其中,爬虫引擎判断接收到的查询响应的有效性的具体方式可以是:通过所接收的查询响应的消息格式判断该查询响应是否有效;也可以是通过所接收到的查询响应中的内容判断该查询响应是否有效;也可以是根据查询请求和查询响应的交互流程判断该查询响应是否有效,还可以通过其他方式判断该查询响应是否有效,不影响本发明的实现。
604、爬虫引擎将步骤602中提取到的Peer作为查询源,利用应用协议的爬虫程序创建查询请求,向作为查询源的Peer发送查询请求,该Peer向爬虫引擎返回查询响应,其包括:与该Peer关联的Peer的地址及其所使用的传输层协议。
其中,与该Peer关联的Peer为使用该应用协议、且与该Peer拥有相同资源的Peer。
可选的,该步骤中,爬虫引擎还可以判断接收到的查询响应的有效性,当查询响应有效时,后续再将与该Peer关联的Peer的地址和所使用的传输层协议写入Peer列表。其中,爬虫引擎判断接收到的查询响应的有效性的具体方式与步骤603中的相同,在此不再赘述。
605、爬虫引擎去掉步骤603、步骤604中重复的Peer的信息和无效的Peer的信息,将剩下的Peer信息写入Peer列表。
606、爬虫引擎判断Peer列表中所写入的Peer的数量是否达到了阈值,如果是,执行608,如果否,执行607;
607、爬虫引擎将上述剩下的Peer(即有效的Peer)作为更新的查询源,返回执行步骤604,利用应用协议的爬虫程序创建查询请求,向更新的查询源发送查询请求。
608、爬虫引擎向识别引擎发送识别信息,识别信息中包括:Peer列表中的Peer信息、应用协议的标识和老化建议时间。
其中,Peer列表中的Peer信息包括:Peer的地址和该Peer所使用的传输层协议标识。
其中,该步骤与前面的步骤可以在同一线程中实现,也可以在不同线程或者进程中实现,不影响本发明的实现。
参阅图7,该实施例以应用协议为Bittorent DHT协议、网络实体为Peer(对应网络实体)为例描述爬虫引擎获取Peer信息及向识别引擎上报识别信息的过程包括:
701、爬虫引擎利用应用协议的爬虫程序创建查询请求,向已知的Peer发送查询请求,该Peer向爬虫引擎返回查询响应,其包括:与该Peer关联的Peer的信息。
其中,与该Peer关联的Peer为:使用该应用协议、且与该Peer拥有相同资源的Peer;与该Peer关联的Peer的信息包括:与该Peer关联的Peer的地址和与该Peer关联的Peer所使用的传输层协议标识。
其中,该步骤中已知的Peer为预定的Peer,或者接收到的查询响应消息中携带的有效的、且没有做过查询源的Peer。其中,预定的Peer是预定的作为该Bittorent DHT协议的查询源的Peer。
可选的,爬虫引擎接收到查询响应之后,可以判断查询响应的有效性,当该查询响应有效时,其中,判断查询响应的有效性的方式与上述实施例相应描述相同,在此不再赘述。当该查询响应有效时,再执行后续步骤。
702、爬虫引擎去掉步骤701中无效的Peer的信息,将剩下的有效的Peer地址信息写入Peer列表。
703、爬虫引擎判断Peer列表中所写入的Peer的数量是否达到了阈值,如果是,执行705,如果否,执行704。
704、爬虫引擎将查询响应反馈的Peer中有效的、且没有做过查询源的Peer作为更新的查询源,返回执行步骤701利用应用协议的爬虫程序创建查询请求,向更新的查询源发送查询请求。
705、爬虫引擎向识别引擎发送识别信息,识别信息中包括:Peer列表中的Peer信息、应用协议的标识和老化建议时间。
其中,该步骤与前面的步骤可以在同一线程中实现,也可以在不同线程或者进程中实现,不影响本发明的实现。
可选的,识别引擎获取到识别信息之后,可以将其共享给其他识别引擎使用,其中,识别信息包括:应用协议的标识与使用该应用协议的网络实体的信息的对应关系,该识别信息还可以包括:该对应关系的老化建议时间。具体的,可以有如下两种共享方式:
1、各DPI设备中的识别引擎将识别信息上报给信息共享控制中心,以供其他DPI设备中的识别引擎从该信息共享控制中心获取该识别信息,如图8所示。
2、各DPI设备中的识别引擎彼此通告识别信息,如图9所示。
其中,DPI设备中的识别引擎可以通过如下方式获取识别信息:第一种方式:爬虫引擎向识别引擎发送的识别信息,如上述各实施例中所述;第二种方式:DPI设备中的识别引擎根据数据包中的特征字符或者特征行为识别出该数据包所适用的应用协议,记录识别信息,其包括:该应用协议的标识与发送和/或接收该数据包的网络实体的信息的对应关系。可选的,该识别信息还可以包括:老化建议时间。
参阅图10,本发明实施例提供一种网络爬虫,其包括:
建立单元50,用于利用应用协议的爬虫程序,建立所述应用协议和使用所述应用协议的网络实体信息的对应关系;
发送单元60,用于向DPI设备发送包括所述对应关系的识别信息,使所述DPI设备利用所述对应关系识别数据包所属的应用协议;其中,使用所述应用协议的网络实体信息包括:使用所述应用协议的网络实体的地址和使用所述应用协议的网络实体所使用的传输层协议标识。
其中,对于网络实体的信息等的描述参见方法实施例步骤101下的相关描述,在此不再赘述。
本发明实施例中利用应用协议的爬虫程序来建立该应用协议和使用该应用协议的网络实体的信息的对应关系,并发送给DPI设备,使DPI设备利用该对应关系识别数据包所属的应用协议,这样,DPI设备就不需要解密数据包,降低性能开销,DPI设备也不用离线分析该应用协议的码流的具体字符特征,降低了码流识别的时间。
参阅图11,在一种实施方式中,建立单元50具体包括:查询源确定单元51,用于确定作为查询源的网络实体;其中,所述作为查询源的网络实体使用所述应用协议;查询单元52,用于利用应用协议的爬虫程序从所述查询源获取与所述查询源关联的网络实体的信息;其中,与所述查询源关联的网络实体为使用所述应用协议、且与所述查询源拥有相同资源的网络实体;和查询源更新单元53,用于当没有达到查询结束条件时,将与所述查询源关联的网络实体中没有做过查询源的网络实体作为更新的查询源,将所述更新的查询源发送给所述查询单元,触发所述查询单元利用应用协议的爬虫程序从作为更新的查询源的网络实体获取与所述更新的查询源关联的网络实体的信息;对应关系建立单元54,用于当达到查询结束条件时,建立所述应用协议和所述查询单元获取到的网络实体的信息和所述查询源确定单元确定的作为查询源的网络实体的信息的对应关系。具体的,查询源确定单元51,用于根据DPI设备发送的网络实体信息与应用协议标识的映射关系,确定所述映射关系中应用协议标识所对应的网络实体是作为查询源的网络实体,其中,所述DPI设备是利用深度包检测技术确定的网络实体信息与应用协议标识的映射关系。或者,查询源确定单元51确定从特定资源的种子文件中提取出的、且使用该应用协议的网络实体是作为查询源的网络实体;或者,查询源确定单元51确定从特定资源的种子文件提取出的***Tracker所追踪到的、且使用该应用协议的网络实体是作为查询源的网络实体。
这种实施方式通过顺序利用应用协议的爬虫程序,从查询源获取到与该查询源相关联的Peer信息,进而将获取到的作为更新的查询源再,再获取与更新的查询源相关联的Peer信息,通过这种方式,获取到网络中使用该应用协议的Peer信息,将该应用协议和使用该应用协议的Peer信息的对应关系发送给DPI设备中的识别引擎,使DPI设备中的识别引擎利用该对应关系识别数据包所属的应用协议。
参阅图12,在另一种实施方式中,建立单元50具体包括:调用单元56,用于顺序调用爬虫程序集合中应用协议的爬虫程序向网络中的网络实体发送探测请求消息,直到接收到所述网络实体返回的表示探测成功的响应消息为止;对应关系建立单元57,用于建立对应响应消息的探测请求消息所使用的应用协议与所述网络实体的信息的对应关系。在这种方式中,该网络爬虫还包括:接收单元61,用于接收DPI设备发送的需要识别应用协议的网络实体的信息;调用单元56,用于顺序调用爬虫程序集合中应用协议的爬虫程序向所述需要识别应用协议的网络实体发送探测请求消息,直到接收到所述需要识别应用协议的网络实体返回的表示探测成功的响应消息为止。这种实施方式通过顺序调用爬虫程序集合中应用协议的爬虫程序向需要识别应用协议的网络实体发送探测请求消息,直到接收到该网络实体返回的表示探测成功的响应消息为止,建立该网络实体信息与对应响应消息的探测请求消息所使用的应用协议的对应关系并发送给DPI设备,使DPI设备中的识别引擎利用该对应关系识别数据包所属的应用协议。
在这种实施方式中,通过顺序调用爬虫程序集合中应用协议的爬虫程序向需要识别应用协议的网络实体发送探测请求消息,直到接收到该网络实体返回的表示探测成功的响应消息为止,建立该网络实体信息与对应响应消息的探测请求消息所使用的应用协议的对应关系并发送给DPI设备,使DPI设备中的识别引擎利用该对应关系识别数据包所属的应用协议。
参阅图13,本发明实施例提供一种网络***,其特征在于,包括:网络爬虫70和DPI设备,其中,
网络爬虫70,用于利用应用协议的爬虫程序,建立所述应用协议和使用所述应用协议的网络实体信息的对应关系;其中,对于网络实体的信息等的描述参见方法实施例步骤101下的相关描述,在此不再赘述。
DPI设备80,用于接收所述爬虫引擎发送的所述识别信息,利用所述对应关系识别数据包所属的应用协议。
其中,网络爬虫70可以集成在DPI设备80上。网络爬虫70的结构与上述图10、图11和图12所示实施例相似,在此不再赘述。
为了实现上述识别信息的共享,在一种实施方式中,该网络***还包括:信息共享控制中心90,其中,
DPI设备70,还用于将所述网络爬虫发送的所述识别信息发送给信息共享控制中心90。信息共享控制中心90,用于接收DPI设备70发送的识别信息,供网络中除了所述DPI设备70以外的其他DPI设备从所述信息共享控制中心90获取所述识别信息。可选的,DPI设备70还可以将通过深度包检测技术得到的识别信息发送给信息共享控制中心,其中,通过深度包检测技术得到的识别信息包括:数据包的源端和/或目的端的地址和所使用的传输层协议与该数据包所属应用协议的对应关系,可选的,其还可以包括:该对应关系的老化建议时间。
在另一种实施方式中,所述DPI设备70还用于将所述网络爬虫发送的所述识别信息发送给网络中除所述DPI设备以外的其他DPI设备。
本发明实施例中利用应用协议的爬虫程序来建立该应用协议和使用该应用协议的网络实体的信息的对应关系,并发送给DPI设备,使DPI设备利用该对应关系识别数据包所属的应用协议,这样,DPI设备就不需要解密数据包,降低性能开销,DPI设备也不用离线分析该应用协议的码流的具体字符特征,降低了码流识别的时间。
其中,上述DPI设备,可以用于图14所示的网络***中,其中,DPI设备可以与GGSN(Gateway GPRS Support Node,网关GPRS支持节点)独立存在,也可以与GGSN集成在一个设备上,不影响本发明的实现。图中,GGSN通过SGSN(Serving GPRS Support Node,服务GPRS支持节点)与GPRS(GeneralPacket Radio Service,通用分组无线服务技术)/UMTS(Universal MobileTelecommunications System,通用移动通信***)连接,DPI设备通过防火墙与Internet连接,Peer位于GPRS/UMTS或者Internet中。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,例如只读存储器,磁盘或光盘等。
以上对本发明实施例所提供的向DPI提供用于识别数据包的信息的方法、网络爬虫及网络***进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。