专利名称::基于对等网络的主动识别方法及设备的制作方法
技术领域:
:本发明涉及网络技术,特别涉及一种基于对等网络的主动识别方法及设备。
背景技术:
:识别对等(P2P,PeertoPeer)网络业务流量的方法有4艮多种,一般情况下,使用端口识别、特征码识别、数据包长度流识别、模糊识别等传统的识别技术对P2P网络的业务流量进行识别。其中,所述端口识别,主要是通过固定端口来识别p2p软件的运行,传统的p2p软件在运行时一般绑定了特定的端口,比如变态下载(bt,是一种p2p的实现协议)绑定了6881-6889端口。但对于目前最新的bt、电骡(emule,是一种p2p的实现协议)软件来说,其都是采用了随机端口,而不是特定的端口,将会导致传统的端口识别无效。所述特征码识别,主要是通过分析数据包的内容来识别,传统的p2p软件在建立连接时使用了特定的特征码,比如bt软件是两个客户端的握手包的第2到第20个字节为"洪流协议BittorrentProtocol",而电螺软件是第一个握手包的第一个字节为0xe3等。但是,目前在数据传输过程中都采用加密技术或干扰码技术,从而导致利用特征码识别数据流量的失效。所述数据包长度流识别,主要是利用特定软件在运行时会存在一个特定的包长度流,比如bt在传输文件时存在一个56,14,68长度的数据流,即第n个包长度为56,第n+l个包长度为14,第n+2个包长度为68。这种识别方法虽然可以采用数据流来识别软件,以实现对部分加密的业务流进行识别,但是这种方式的识别率较低,且错误识别较严重。所述模糊识别,主要是通过统计某一个点的连接数和数据流量来识别,但无法分辨出这些连接和流量具体是由bt、emule还是其它软件造成的。通过这种模糊识别的方法来限制流量和控制连接数,容易造成用户的拍:诉,比如,统计内网中各个ip的连接数量和数据流量,如果发现某一个ip的最大连接数量和数据流量大于预设的值,则认为与ip连接的用户在运行p2p软件,开始对该ip的连接数量和数据流量进行限制,即在原有连接不断的情况下,不允许发起新的连接,以及限制用户的流量,但是,实际带宽还是足够用的,从而会受到用户投诉。由此可知,上述识别方法虽然可以识别出传统bt、emule软件的运行,但是,并不能精确识别出最新bt、emule软件,从而不能有效地识别网络中的各种P2P流量,从而达到对其进行有效控制的目的。
发明内容本发明实施例提供一种基于对等网络的主动识别方法及设备,有效识别网络中的各种P2P软件,并对该软件进行有效控制,从而提高系统的工作效率。为解决上述技术问题,本发明是实施例提供一种基于对等网络的主动识别方法,包括构造探测模板数据包,之后还包括获取已建立传输控制协议TCP连接的第一个有效载荷数据包;若判断所述有效载荷数据包中包括协议关键字,则记录所述协议关^l建字后的数据;将所述记录协议关键字后的数据存储在对应的哈希表中;确定需要识别内网中IP地址,将所有与所述IP地址相关的连接分别标记为可疑点;利用所述探测模板数据包对防火墙外的所述可疑点进行识别。优选地,所述判断数据包中包括协议关键字的依据包括判断所述第一个有效载荷数据包中的前24个字节或28个字节中数据是否为协议关键字,若是,则执行记录所述协议关键字后的数据的步骤。优选地,所述记录协议关键字后的数据具体包括若所述协议关键字后的数据是以"%"号开头的数据,则只记录所有"%"号后两个字节的lt据,不记录"%"号;若所述协议关键字后的数据不是以"%"号开头的数据,则记录"%"号后显示的字符所对应的阿斯码值。7优选地,在判断所述数据包中包括协议关键字后,若没有对应的哈希表,所述方法还包括记录该TCP连接的内网IP地址和所述数据包中的协议关键字后的数据,建立所述内网IP地址与对应所述协议关键字后的数据的哈希表。优选地,所述确定需要识别内网中IP地址,将所有与所述IP地址相关的连接分别标记为可疑点具体包括统计内网中每个IP地址发出的连接数和数据流量;若判断统计的所述连接数大于预设的最大连接数,且数据流量大于预设的最大数据流量时,将所有与所述IP地址相关的连接标记为可疑点。优选地,所述与所述IP地址相关的连接为一个五元组,具体包括协议类型、内网ip、内网端口号、外网ip和外网端口号。优选地,对于变态下载bt协议,所述构造探测模板数据包包括协议关键字、保留字、可变信息以及id号。优选地,所述记录协议关键字后的数据的长度等于或小于探测模板数据包中的可变信息的长度。优选地,所述利用所述探测模板数据包对防火墙外的所述可疑点进行识别具体包括根据探测模板数据包及对应的哈希表构造探测包;向防火墙外的所述可疑点发起连接,并在连接成功后,向所述可疑点发送所述〗笨测包;接收所述可疑点发送的回应包;判断所述回应包是否包括协议关键字;若是,则记录所述连接为bt连接,并在所述连接打上bt标记。优选地,所述构造探测包的过程为将所述哈希表中对应的哈希值写入探测模板数据包的可变信息中。优选地,对于电骡协议,所述构造探测模板数据包为标准协议的握手包。优选地,所述利用所述探测模板数据包对防火墙外的所述可疑点进行识別具体包括8向防火墙外的所述可疑点发起连接,并在连接成功后,向所述可疑点发送所述握手包;接收所述可疑点发送的回应包;判断所述回应包是否包括协议关键字;若是,则记录所述连接为电骡连接,并在所述连接打上电骡标记。优选地,还包括根据需要,断开所述识别出来的连接或对连接的带宽进行限制。相应的,本发明还提供一种基于对等网络的主动识别设备,包括获取单元,用于已建立传输控制协议TCP连接的第一个有效载荷数据包;判断单元,用于判断所述有效载荷数据包中是否包括协议关键字,并发送判断结果;记录单元,用于在接收判断单元发送包括协议关键字的判断结果时,记录所述协议关键字后的数据;存储单元,用于将所述记录协议关键字后的数据存储在对应的哈希表中;确定单元,用于确定需要识别内网中IP地址,将所有与所述IP地址相关的连接分别标记为可疑点;识别单元,用于利用预先构造的探测模板数据包对防火墙外的所述可疑点进行识别。优选地,所述记录单元包括第一判断单元,用于判断协议关键字后的数据是否以"%"号开头的数据,若是,则发送判断结果;第一记录单元,用于在接收到关键字判断单元发送以"%,,号开头的判断结果时,只记录所有号后两个字节的数据,不记录"%"号;第二记录单元,用于在接收到关键字判断单元发送不是以"%,,号开头的判断结果时,记录"%"号后显示的字符所对应的阿斯码值。优选地,在判断所述数据包中包括协议关键字后,若没有对应的哈希表,所述设备还包括第三记录单元,用于记录该TCP连接的内网IP地址和所述数据包中的协-汉关4建字后的lt据;建立单元,用于#^居所述第三记录单元中记录的所述内网IP地址与对应所述协议关键字后的数据建立哈希表。优选地,所述确定单元包括统计单元,用于统计内网中每个IP地址发出的连接tt和数据流量;大连接数,若大于,继续判断所述数据流量是否大于预设的最大数据流量,并发送大于的判断结果;标记单元,用于在接收到所述判断单元发送大于的判断结果时,将所有与所述IP地址相关的连接标记为可疑点。优选地,所述识别单元包括探测包构造单元,用于根据预先构造的探测模板数据包及哈希表构造探测包;探测包发送单元,用于向防火墙外的所述可疑点发起连接,并在连接成功后,向所述可疑点发送所述探测包;接收单元,用于接收所述可疑点发送的响应包;第三判断单元,用于判断所述响应包是否包括协议关键字,并发送判断结果;变态下载识别单元,用于在接收所述协议判断单元发送是的判断结果时,判定所述连接为bt连接,并在所述连接打上bt标记。优选地,所述识别单元包括握手包发送单元,用于向防火墙外的所述可疑点发起连接,并在连接成功后,向所述可疑点发送所述握手包;接收单元,用于接收所述可疑点发送的响应包;第四判断单元,用于判断所述响应包中是否包括协议关键字,并发送判断结果;电骡识别单元,用于在接收到所述判断单元发送是的判断结果时,判定所述连接为电骡连接,并在所述连接打上电骡标记。优选地,还包括处理单元,与识别单元相连,用于根据需要,断开所述识别出来的连接或对连接的带宽进行限制。优选地,还包括模板构造单元,与识别单元相连,用于构造探测模板数据包。由上述技术方案可知,本发明先构造探测模板,可以是基于bt软件,也可以基于emule软件来构造,然后获取建立传输控制协议TCP连接的第一个有效载荷数据包,并在判断该数据包中包括协议关键字时,记录所述协议关键字后的数据,并将该记录的数据存储到对应的哈希表中,或者根据记录的数据及其对应的iP地址建立哈希表;之后统计内网中每个iP的连接数和数据流量,然后确定可疑点,最后利用构造的探测模板对可疑点进行探测,根据探测结果可以识别出该连接是bt连接,还是emule连接。也就是说,连接统计和流量统计是探测的触发点,如果某一个ip达到了设计的关键值,才进行触发。从而有效识别网络中的各种P2P软件,并对该软件进行有效控制,以提高系统的工作效率。图1为本发明中基于对等网络的主动识别方法的流程图;图2为本发明中基于对等网络的主动识别设备的结构示意图。具体实施例方式下面我们将结合附图,对本发明的最佳实施方案进行详细描述。请参阅图1,为本发明中基于对等网络的主动识别方法的流程图,所述方法包括步骤101:服务器构造探测模板,所述探测模板中可以包括数据包;步骤102:服务器获取已建立传输控制协议TCP连接的第一个有效载荷数据包;步骤103:服务器判断所述有效载荷数据包中是否包括协议关键字,若是,执行步骤104;否则执行步骤108,即结束该流程;步骤104:服务器记录所述协议关键字后的数据;步骤105:服务器将所述记录协议关键字后的数据存储在对应的哈希表中;步骤106:服务器确定需要识别内网中IP地址,将所有与所述IP地址相关的连接分别标记为可疑点;步骤107:服务器利用探测模板的数据包对防火墙外的所述可疑点进行识别。其中,在步骤101为可选步骤,其构造探测模板的具体过程包括两种一种是对于bt协议,本实施例中构造探测模板的数据包包括协议关键字、保留字、可变信息以及固定id号。下面以16进制数据来表示,但并不限于此,具体为13426974546f7272656e742070726f746f636f6c6578000000000001xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX2d584c303031322d572767fbblb20bcl376803al其中,在所述构造探测模板数据包的结构中13426974546f7272656e742070726f746f636f6c,以上20个字节为bt的协议关键字。6578000000000001,这8个字节是保留字节。XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX所述xx表示可变信息,是用来承载传输文件的哈嗜值,所述哈嗜值是通过shal计算后得到的hash值,一般为20个字节长。在实际传输过程中,由于实际传输文件的值不同,则计算出的哈唏值也不同,由于该20个字节中值的不能固定,由此而定义为可变信息。也可以理解为,xx表示的数据会根据实际情况做相应的替换。2d584c303031322d572767fbblb20bcl12376803al这20个字节是一个id号,可以保持不变,当然,也可以变化。另一种是,对于emule协议,本发明构造的探测模板数据包为标准协议的握手包,下面也以16进制数据来表示,但并不限于此,具体为e3800000000110805b4f7176Oe2fle58db352a38806fele236190087ld080000000201000115005b43484e5d5b5665727943445d796f75726e616d65030100113c000000030100f991ld0000030100falb421034030100feb4010000030100fb00c0000002010055Od0056657279434420303830333133030100eeOce98914cl8addd69210该协议下的探测模板数据包是一个emule标准协议的握手包,运行emule协议的软件均可识别。当然,本发明在构造探测模板数据包中,也可以同时构造这这两种数据包,本实施例不作限制。在步骤102至步骤105中,对于每一条已经建立的TCP连接,抓取TCP连接的第一个有效载荷数据包,判断所述有效载荷凄t据包的前24个字节或28个字节中的数据是否为协议关键字,即前24个字节的数据是否为"GET/announceinfo—hash=";或前28个字节为"GET/announce.phpinfo—hash=",如果是,则对协议关键字后面的数据做记录,一共记录20个字节。其具体记录的过程为判断所述协议关键字后的数据是否以"%"号开头的数据,若是,则记录"%"号后两个字节的数据,直至记录20个字节;否则,记录"%"号后20个字节中显示字符的阿斯码值。也就是说,对于协议关键字后面的数据中,若以"%"号开头的凄t据,不记录"%"号,只记录"%"号后面的2个字节的数据;而对于不以"%"号开头的数据,需要对该字节中显示字符的阿斯码值,即记录的数据以16进制表示,比如l表示为0x31;2表示为0x32;3表示为0x33等。a表示ox61;b表示为0x62;c表示为0x63等。需要说明的是,本实施例中的记录数据的长度等于或者小于探测模板数据包中可变信息的长度,本发明是以20个字节为例,但并不限于此。为了便于本领域技术人员的理解,下面分别举例说明。比如,一个有效载荷数据包的前68个字节内容如下所示"GET/announce.phpinfo—hash=%la%2e%3d%4e%5f%60%71%82%931234567890a",由于协议关键字"GET/announce.phpinfo—hash="后是以"%"开始的,则去掉"%"号后,记录"%"号后真实的两个字节数据,如果"%"号的后续数据中没有"%"号,则记录显示字符的阿斯码值,对于该例子,记录的凄t据为la2e3d4e5f607182933132333435363738393061。2个数记为一组,正好记录20个字节的数据。再比如,一个有效载荷数据包的前92个字节内容如下所示"GET/announce.phpinfo—hash=%la%2e%3d%4e%5f%60%71%82%93%10%ll%12%13%14%15%16%17%18%19%la%lb",则记录的数据为la2e3d4e5f6071829310111213141516171819lb。2个凄史记为一组,正好记录20个字节的数据。再比如,一个有效载荷凄t据包的前48个字节内容如下所示"GET/announce.phpinfo—hash=01234567890123456789",则记录的数据为3031323334353637383930313233343536373839。2个数记为一组,正好记录20个字节的数据。其中,本发明中的协议关键字,比如"GET/announceinfo—hash^,和"GET/announce.phpinfo—hash^,具体是指bt连接其服务器的关键字数据,其协议关键字后面的数据是要传输文件的hash值,也是本发明中要记录的关键数据。在bt协议中,定义了bt客户端连接bt服务器的特定关键字,即该协议标准中,其关键字就是"GET/announceinfo—hash二"和"GET/announce.phpinfo—hash=",因此,如果判断所述有效载荷数据包的前24个字节或28个字节包括协14议关键字,则需要记录这条TCP连接的内网ip地址,记为i—ip,并记录所述协议关键字后的数据,即文件hash值,记为fhash,如果在存在对应的哈希表,记为ip一f一table,则将所记录的文件hash值存储在对应的哈希表中,如果没有对应的哈希表,则记录该TCP连接的内网IP地址和所述数据包中的协议关键字后的数据,并建立所述内网IP地址与对应所述协议关键字后的数据的哈希表。所述哈希表包括内网IP地址和文件hash值,当然还可以包括其他。不过,对于该哈希表的命名,也可以根据自身的爱好来命名,但该哈希表中必须以"一或a-z"之间的英文开头,中间也必须全是英文的一个名称。其哈希表的结构如表1所示表1该记录哈希表中的文件hash值的作用在于为bt探测提供数据依据。当然,对于内网中TCP连接的n个ip地址,该哈希表的数据也可以如表2所示表2iplfhashlip2fhash2,ipnfhashn在步骤106中,服务器确定需要识别内网中IP地址,将所有与所述IP地址相关的连接分别标记为可疑点,具体包括首先,设置防火墙内部网络每一个IP地址允许的最大连接数,表示为MAX—C,单位时间内的最大流量,表示为MAX—FLOW。其次,防火墙对内网每一个IP发出的连接数和数据流量进行统计。比如对ip为ipl的连4妄H为ipl—c,数据流量为ipl—f,ip为ip2的连才妄凄t为ip2—c,数据流量为ip2—f;依次类推,可以得到统计每一个ip的连接数和数据流量,如表3所示15表3<table>tableseeoriginaldocumentpage16</column></row><table>最后,判断统计的所述连接数是否大于预设的最大连接数,若是,则继续判断统计的数据流量是否大于预设的最大数据流量,若大于,将所有与所述IP地址相关的连接标记为可疑点,其中,包括防火墙内网和防火墙外网中与所述IP地址相关的连接。若判断统计的所述连接数小于等于预设的最大连接数,或者判断统计的数据流量小于等于预设的最大数据流量,则结束该流程。也就是i兌,如果ipl—c大于MAX—C并且ipl—f大于MAX一F,则4巴所有与ipl相关的连4^标记为可^:点。对于某一个连4妻来i兌,它是一个五元组,包括协议类型(tcp/udp),内网ip(ijp),内网端口(i_port),夕卜网ip(o—ip),夕卜网端口(ojort)。具体如表4所示表4<table>tableseeoriginaldocumentpage16</column></row><table>在步骤107中,利用所述探测模板数据包对防火墙外的所述可疑点进行识别,具体包括对于bt探测根据探测模板数据包及对应哈希表构造探测包;也就是将所述哈希表中对应的哈希值写入到探测模板的数据包的可变信息中。向防火墙外的可疑连接点发起一个连接,即连接o—ip:o_port;如果连接成功,则向可疑连接点发送构造后的bt协议的探测包,即用这个ip相关的fhash值代替模板包中用xx表示的数据。如果能够收到回应数据,并且回应数据的前20个字节为(以16进制数据表示)13426974546f7272656e742070726f746f636f6c则就认为这个可疑连接点在运行bt服务,由此可以记录该连接为bt连接,并将内网与可疑连接点的所有连接标记为bt连接。对于emule揮:测向防火墙外的可疑连接点发起一个连接,即连接o—ip:o_port。如果连接成功,则向该可疑连接点发送emule协议的探测包。如果能够收到回应数据,并且回应数据的前6个字节(以16进制数据表示)为e38000000001,则就认为对可疑连接点在运行emule服务,可以记录所述连接为电騾连接,对该可疑连接点与内网的所有连接标记为emule连接。优先的,所述方法还包括,对识别后的结果进行处理。具体包括可以将是把识别出来的连接打上相应的标记;也可以根据实际的需要可以断开识别出来的连接或对连接的带宽进行限制。为例便于本领域技术人员的理解,下面举一最佳应用实例来说明本发明的实现过程,本实例以内网ip地址为192.168.1.100为例,具体包4舌1、启动防火墙2、构建探测模板,共有2个,一个是bt探测模板,一个是emule探测模板。模板内的数据的结构具体详见上述,在此不再赘述。3、设置内网中允许每一个IP最大连接数为100,单位时间内的最大流量为300K/秒。4、数据抓取对于一条已经建立的TCP连接,抓取该连接的第一个有效载荷数据包的前28个字节,判断其数据是否为"GET/announce.phpinfo—hash^,或前24个字节是否为"GET/announceinfo—hash="。如果是,则提取所述"GET/announce.phpinfo—hash二"和"GET/announceinfo—hash二"后面的H据,所述提取的数据是用来写入到构造模板数据包的可变信息中,即xx表示的20个字节数据中,其提取数据的方法详见上述,在此不再赘述。然后,将提取的数据保存到ip—f—table表中,如果不存在,不存在ip—f一table表,则需要,记录该TCP连接的内网IP地址和所述数据包中的协议关4建字后的数据,建立所述内网IP地址与对应所述协议关键字后的数据的哈希表。如果数据的前92个字节内容如下所示"GET/announce.phpinfo—hash=%1^0/OoO/"2^0//1Q0/AOO/710/Q,0/020/1AO/110/1,0/120/1/10/1丄3/oZ6/0Jd/o46/o!)I/ot)U/o/丄/o8Z/oVj/o丄U/o丄丄/o丄Z/o丄J/ojL4/o丄8%19%la%lb"则哈希表的内容可能表5所示表5ip地址hash值192.168.1.100la2e3d4e5f6071829310111213141516171819lb5、数据统计。对于与ip地址为192.168.1.100的终端设备建立的所有连接进行统计。即统计内网中每个IP地址发出的连接数和数据流量;也就是说,来一条连接就把连接数加1,断一条连接就把连接数减1。但该终端设备总的连接数可知的。即可以对于每一个与192.168.1.100的连接数和数据流量做统计。比如统计内容如表6所示表6ip地址总连接数流量(K/秒)192.168.1.100100400假定4)中连接的内部端口为3001,外部IP地址为10.11.12.13,端口为8080,则连接表如表7所示表7连接类型内部ip地址内部端口号外部ip地址外部端口号TCP192.168.1.100300110.11.12.1380806、探测或者识别由于ip地址为192.168.1.100的连接数已经达到预先设定的探测条件,同18时流量也达到了设定的探测条件,可以启动纟果测程序。61)bt探测使用探测模板和hash表构造探测包,即用hash表内的hash数据替换模板中的xx数值,形成下面的探测包13426974546f7272656e742070726f746f636f6c6578000000000001la2e3d4e5f6071829310111213141516171819lb2d584c303031322d572767fbblb2Obcl376803al在构造〗笨测包完成后,将防火墙先连4fe到10.11.12.13的8080端口,若连接成功,则向10.11.12.13的8080端口发送构造完成的探测包,然后等待回应包。如果4妻收到回应包,并且回应包的前20个字节为13426974546f7272656e742070726f746f636f6c,则说明内网中的ip地址192.168.1.100、端口为3001与10.11.12.13、端口为8080之间的连4矣为bt连4妄。可以记录该连接为bt连接,并对该条连4矣打上bt标记。62)emule〗笨观寸如果bt探测没有结果,可以使用emule探测,同理,先将防火墙连接到10.11.12.13的8080端口,在连接成功后,发送探测模板内的探测包(即emule协议的标准探测包,比如握手包),然后等待回应包。如果接收到回应包,且回应包的前6个字节为e38000000001,则说明内部ip地址192.168.1.100、端口为3001与10.11.12.13、端口为8080之间的连接为emule连接。可以记录该连4妻为emule连4妄,并对该条连4妄打上emule标记。本实施例中的探测,是防火墙主动向外发包。7、对探测结果进行处理可以根据实际需要,对bt连接进行带宽控制,也可以对emule连接进行控制。也可以根据要求中断连接,比如直接中止连接等。由此可见,上述方法中,本发明先构造探测模板,可以是基于bt,emule软件的基础上来构造,然后对统计内网中每个iP的连接统计和流量统计,然后确定可疑点,最后利用构造的探测模板对可疑点进行探测,根据探测结果可以识别出该连接是bt连接,还是emule连接。也就是说,连接统计和流量统计是探测的触发点,如果某一个ip达到了设计的关键值,才进行触发。从而可以提高系统工作的效率。基于上述方法的实现过程,本发明实施例还提供一种基于对等网络的主动识别设备,其结构示意图如图2所示,包括获取单元21、判断单元22、记录单元23、存储单元24、确定单元25和识别单元26。其中,所述获取单元21,用于已建立传输控制协议TCP连接的第一个有效载荷数据包;所述判断单元22,用于判断所述有效载荷数据包中是否包括协议关键字,并发送判断结果;所述记录单元23,用于在接收判断单元发送包括协议关键字的判断结果时,记录所述协议关键字后的数据;所述存储单元24,用于将所述记录协议关键字后的数据存储在对应的哈希表中;所述确定单元25,用于确定需要识别内网中IP地址,将所有与所述IP地址相关的连接分别标记为可疑点;所述识别单元26,用于利用预先构造的探测模板数据包对防火墙外的所述可疑点进行识别。所述记录单元包括第一判断单元、第一记录单元和第二记录单元。其中,所述第一判断单元,用于判断协议关键字后的数据是否以"%"号开头的数据,若是,则发送判断结果;所述第一记录单元,用于在接收到关键字判断单元发送以"%"号开头的判断结果时,只记录所有"%,,号后两个字节的数据,不记录"%"号;所述第二记录单元,用于在接收到关键字判断单元发送不是以"%"号开头的判断结果时,记录"%"号后的所有字节的数据。优先的,在判断所述数据包中包括协议关键字后,若没有对应的哈希表,所述设备还包括第三记录单元和建立单元,其中,所述第三记录单元,用于记录该TCP连接的内网IP地址和所述数据包中的协议关键字后的数据;所述建立单元,用于根据所述第三记录单元中记录的所述内网IP地址与对应所述协议关键字后的数据建立哈希表。所述确定单元包括统计单元、第二判断单元和标记单元,其中,统计单元,用于统计内网中每个IP地址发出的连接数和数据流量;所述第二判断单元,用于判断统计单元统计的所述连接数是否大于预设的最大连接数,若大于,继续判断所述数据流量是否大于预设的最大数据流量,并发送大于的判断结果;所述标记单元,用于在接收到所述判断单元发送大于的判断结果时,将所有与所述IP地址相关的连接标记为可疑点。所述识别单元包括探测包构造单元,探测包发送单元、接收单元、第三判断单元和变态下载识别单元,其中,所述探测包构造单元,用于根据预先构造的探测模板数据包及哈希表构造探测包;所述探测包发送单元,用于向防火墙外的所述可疑点发起连接,并在连接成功后,向所述可疑点发送所述探测包;所述接收单元,用于接收所述可疑点发送的响应包;所述第三判断单元,用于判断所述响应包是否包括协议关键字,并发送判断结果;所述变态下载识别单元,'用于在接收所述协议判断单元发送是的判断结果时,判定所述连4^为bt连4妻,并在所述连4妻打上bt标记。所述识别单元包括握手包发送单元、接收单元、第四判断单元和电骡识别单元,其中,所述握手包发送单元,用于向防火墙外的所述可疑点发起连接,并在连接成功后,向所述可疑点发送所述握手包;所述接收单元,用于接收所述可疑点发送的响应包;所述第四判断单元,用于判断所述响应包中是否包括协议关键字,并发送判断结果;所述电骡识别单元,用于在接收到所述判断单元发送是的判断结果时,判定所述连接为电骡连接,并在所述连^^打上电骡标记。所述设备还包括处理单元,与识别单元相连,用于根据需要,断开所述识别出来的连接或对连接的带宽进行限制。所述设备还包括还包括模板构造单元,与识别单元相连,用于构造探测模板数据包。所述设备中各个单元的功能和作用的实现过程详见上述方法中对应的实现过程,在此不再赘述。由此可见,本发明的优点非常多,一是不需要对大量的数据包做特征码一一过滤,只是在构建模板时只过滤TCP连接的第一个有效载荷数据包,提高了防火墙的效率;二是彻底抛弃了端口的概念,即使bt,emule等软件使用21了80端口来连接,本发明也一样可以识别,而且对效率影响微乎其微;三是通过构建协议自身的数据包作为探测软件,可以做到100%的准确率,由此可见,本发明即不限制用户的数据流量也限制用户的连接,只是在达到最大连接数和数据流量时,对相应点进行探测,根据探测结果可以标记出识别出来的bt,emule连接,配合相关的工具对相应的连接进行带宽限制或断开连接。本发明可以做到识别快,识别准,又不会引起用户投诉问题。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者,以上所述仅是本发明的优选实施方式,应当指出,对于本
技术领域:
的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。权利要求1、一种基于对等网络的主动识别方法,其特征在于,包括构造探测模板数据包,之后还包括步骤获取已建立传输控制协议TCP连接的第一个有效载荷数据包;若判断所述有效载荷数据包中包括协议关键字,则记录所述协议关键字后的数据;将所述记录协议关键字后的数据存储在对应的哈希表中;确定需要识别内网中IP地址,将所有与所述IP地址相关的连接分别标记为可疑点;利用所述探测模板数据包对防火墙外的所述可疑点进行识别。2、根据权利要求1所述的方法,其特征在于,所述判断数据包中包括协议关键字的依据包括判断所述第一个有效载荷数据包中的前24个字节或28个字节中数据是否为协议关键字,若是,则执行记录所述协议关键字后的数据的步骤。3、根据权利要求1所述的方法,其特征在于,所述记录协议关键字后的数据具体包括若所述协议关键字后的数据是以"%"号开头的数据,则只记录所有"%"号后两个字节的凝:据,不记录"%"号;若所述协议关键字后的数据不是以"%"号开头的数据,则记录"%"号后显示的字符所对应的阿斯码值。4、根据权利要求1至3任一项所述的方法,其特征在于,在判断所述数据包中包括协议关键字后,若没有对应的哈希表,所述方法还包括记录该TCP连接的内网IP地址和所述数据包中的协议关键字后的数据,建立所述内网IP地址与对应所述协议关键字后的数据的哈希表。5、根据权利要求1至3任一项所述的方法,其特征在于,所述确定需要识别内网中IP地址,将所有与所述IP地址相关的连接分别标记为可疑点具体包括统计内网中每个IP地址发出的连4妄数和数据流量;若判断统计的所述连接数大于预设的最大连接数,且数据流量大于预设的最大数据流量时,将所有与所述IP地址相关的连接标记为可疑点。6、根据权利要求5所述的方法,其特征在于,所述与所述IP地址相关的连接为一个五元组,具体包括协议类型、内网ip、内网端口号、外网ip和外网端口号。7、根据权利要求1所述的方法,其特征在于,对于变态下载bt协议,所述构造探测模板数据包包括协议关键字、保留字、可变信息以及id号。8、根据权利要求3或7所述的方法,其特征在于,所述记录协议关键字后的数据的长度等于或小于探测模板数据包中的可变信息的长度。9、根据权利要求7所述的方法,其特征在于,所述利用所述探测模板数据包对防火墙外的所述可疑点进行识别具体包括根据探测模板数据包及对应的哈希表构造探测包;向防火墙外的所述可疑点发起连接,并在连接成功后,向所述可疑点发送所述探测包;4妄收所述可疑点发送的回应包;判断所述回应包是否包括协议关键字;若是,则记录所述连接为bt连接,并在所述连^妻打上bt标记。10、根据权利要求9所述的方法,其特征在于,所述构造探测包的过程为将所述哈希表中对应的哈希值写入探测模板数据包的可变信息中。11、根据权利要求1所述的方法,其特征在于,对于电骡协议,所述构造探测模板数据包为标准协议的握手包。12、根据权利要求11所述的方法,其特征在于,所述利用所述探测模板数据包对防火墙外的所述可疑点进行识别具体包括向防火墙外的所述可疑点发起连接,并在连接成功后,向所述可疑点发送所述握手包;接收所述可疑点发送的回应包;判断所述回应包是否包括协议关键字;若是,则记录所述连接为电骡连接,并在所述连接打上电骡标记。13、根据权利要求1至3、7至12任一项所述的方法,其特征在于,还包括根据需要,断开所述识别出来的连接或对连接的带宽进行限制。14、一种基于对等网络的主动识别设备,其特征在于,包括获取单元,用于已建立传输控制协议TCP连接的第一个有效载荷数据包;判断单元,用于判断所述有效载荷数据包中是否包括协议关键字,并发送判断结果;记录单元,用于在接收判断单元发送包括协议关键字的判断结果时,记录所述协议关键字后的数据;存储单元,用于将所述记录协议关键字后的数据存储在对应的哈希表中;确定单元,用于确定需要识别内网中IP地址,将所有与所述IP地址相关的连接分别标记为可疑点;识别单元,用于利用预先构造的探测模板数据包对防火墙外的所述可疑点进4于识别。15、根据权利要求14所述的设备,其特征在于,所述记录单元包括第一判断单元,用于判断协议关键字后的数据是否以"%"号开头的数据,若是,则发送判断结果;第一记录单元,用于在接收到关键字判断单元发送以"%,,号开头的判断结果时,只记录所有"%"号后两个字节的lt据,不记录"%"号;第二记录单元,用于在接收到关键字判断单元发送不是以"%"号开头的判断结果时,记录"%"号后显示的字符所对应的阿斯码值。16、根据权利要求15所述的设备,其特征在于,在判断所述数据包中包括协议关键字后,若没有对应的哈希表,所述设备还包括第三记录单元,用于记录该TCP连接的内网IP地址和所述数据包中的协议关键字后的数据;建立单元,用于根据所述第三记录单元中记录的所述内网IP地址与对应所述协议关键字后的数据建立哈希表。17、根据权利要求14所述的设备,其特征在于,所述确定单元包括统计单元,用于统计内网中每个IP地址发出的连4矣数和凄t据流量;第二判断单元,用于判断统计单元统计的所述连接数是否大于预设的最大连接数,若大于,继续判断所述数据流量是否大于预设的最大数据流量,并发送大于的判断结果;标记单元,用于在接收到所述判断单元发送大于的判断结果时,将所有与所述IP地址相关的连4^标记为可疑点。18、根据权利要求14所述的设备,其特征在于,所述识别单元包括探测包构造单元,用于根据预先构造的探测模板数据包及哈希表构造探测包;探测包发送单元,用于向防火墙外的所述可疑点发起连接,并在连接成功后,向所述可疑点发送所述探测包;接收单元,用于接收所述可疑点发送的响应包;第三判断单元,用于判断所述响应包是否包括协议关键字,并发送判断结果;变态下载识别单元,用于在接收所述协议判断单元发送是的判断结果时,判定所述连接为bt连接,并在所述连接打上bt标记。19、根据权利要求14所述的设备,其特征在于,所述识别单元包括握手包发送单元,用于向防火墙外的所述可疑点发起连接,并在连接成功后,向所述可疑点发送所述握手包;接收单元,用于接收所述可疑点发送的响应包;第四判断单元,用于判断所述响应包中是否包括协议关键字,并发送判断结果;电骡识别单元,用于在接收到所述判断单元发送是的判断结果时,判定所述连接为电骡连接,并在所述连接打上电骡标记。20、根据权利要求18或19所述的设备,其特征在于,还包括处理单元,与识别单元相连,用于根据需要,断开所述识别出来的连接或对连接的带宽进行限制。21、根据权利要求14至19任一项所述的设备,其特征在于,还包括模板构造单元,与识别单元相连,用于构造探测模板数据包。全文摘要本发明涉及一种基于对等网络的主动识别方法及其设备,所述方法包括构造探测模板数据包,之后还包括获取已建立传输控制协议TCP连接的第一个有效载荷数据包;若判断所述有效载荷数据包中包括协议关键字,则记录所述协议关键字后的数据;将所述记录协议关键字后的数据存储在对应的哈希表中;确定需要识别内网中IP地址,将所有与所述IP地址相关的连接分别标记为可疑点;利用所述探测模板数据包对防火墙外的所述可疑点进行识别。以有效识别网络中的各种P2P软件,并对该软件进行有效控制,从而提高系统的工作效率。文档编号H04L29/08GK101494663SQ20091007787公开日2009年7月29日申请日期2009年1月23日优先权日2009年1月23日发明者张利刚申请人:联想网御科技(北京)有限公司