CN101494663B - 基于对等网络的主动识别方法及设备 - Google Patents
基于对等网络的主动识别方法及设备 Download PDFInfo
- Publication number
- CN101494663B CN101494663B CN2009100778750A CN200910077875A CN101494663B CN 101494663 B CN101494663 B CN 101494663B CN 2009100778750 A CN2009100778750 A CN 2009100778750A CN 200910077875 A CN200910077875 A CN 200910077875A CN 101494663 B CN101494663 B CN 101494663B
- Authority
- CN
- China
- Prior art keywords
- connection
- data
- unit
- packet
- protocol
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 51
- 238000001514 detection method Methods 0.000 claims abstract description 76
- 230000005540 biological transmission Effects 0.000 claims abstract description 10
- 230000004044 response Effects 0.000 claims description 30
- 239000000523 sample Substances 0.000 claims description 21
- 241001331845 Equus asinus x caballus Species 0.000 claims description 18
- 230000008569 process Effects 0.000 claims description 11
- 238000010276 construction Methods 0.000 claims description 6
- 230000029052 metamorphosis Effects 0.000 claims description 5
- 241000183024 Populus tremula Species 0.000 claims description 4
- 230000002159 abnormal effect Effects 0.000 claims 1
- 230000002708 enhancing effect Effects 0.000 abstract 1
- 238000005516 engineering process Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000013481 data capture Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及一种基于对等网络的主动识别方法及其设备,所述方法包括:构造探测模板数据包,之后还包括:获取已建立传输控制协议TCP连接的第一个有效载荷数据包;若判断所述有效载荷数据包中包括协议关键字,则记录所述协议关键字后的数据;将所述记录协议关键字后的数据存储在对应的哈希表中;确定需要识别内网中IP地址,将所有与所述IP地址相关的连接分别标记为可疑点;利用所述探测模板数据包对防火墙外的所述可疑点进行识别。以有效识别网络中的各种P2P软件,并对该软件进行有效控制,从而提高系统的工作效率。
Description
技术领域
本发明涉及网络技术,特别涉及一种基于对等网络的主动识别方法及设备。
背景技术
识别对等(P2P,Peer to Peer)网络业务流量的方法有很多种,一般情况下,使用端口识别、特征码识别、数据包长度流识别、模糊识别等传统的识别技术对P2P网络的业务流量进行识别。其中,
所述端口识别,主要是通过固定端口来识别p2p软件的运行,传统的p2p软件在运行时一般绑定了特定的端口,比如变态下载(bt,是一种p2p的实现协议)绑定了6881-6889端口。但对于目前最新的bt、电骡(emule,是一种p2p的实现协议)软件来说,其都是采用了随机端口,而不是特定的端口,将会导致传统的端口识别无效。
所述特征码识别,主要是通过分析数据包的内容来识别,传统的p2p软件在建立连接时使用了特定的特征码,比如bt软件是两个客户端的握手包的第2到第20个字节为“洪流协议Bittorrent Protocol”,而电螺软件是第一个握手包的第一个字节为0xe3等。但是,目前在数据传输过程中都采用加密技术或干扰码技术,从而导致利用特征码识别数据流量的失效。
所述数据包长度流识别,主要是利用特定软件在运行时会存在一个特定的包长度流,比如bt在传输文件时存在一个56,14,68长度的数据流,即第n个包长度为56,第n+1个包长度为14,第n+2个包长度为68。这种识别方法虽然可以采用数据流来识别软件,以实现对部分加密的业务流进行识别,但是这种方式的识别率较低,且错误识别较严重。
所述模糊识别,主要是通过统计某一个点的连接数和数据流量来识别,但无法分辨出这些连接和流量具体是由bt、emule还是其它软件造成的。通过这种模糊识别的方法来限制流量和控制连接数,容易造成用户的投诉,比如,统计内网中各个ip的连接数量和数据流量,如果发现某一个ip的最大连接数量和数据流量大于预设的值,则认为与ip连接的用户在运行p2p软件,开始对该ip的连接数量和数据流量进行限制,即在原有连接不断的情况下,不允许发起新的连接,以及限制用户的流量,但是,实际带宽还是足够用的,从而会受到用户投诉。
由此可知,上述识别方法虽然可以识别出传统bt、emule软件的运行,但是,并不能精确识别出最新bt、emule软件,从而不能有效地识别网络中的各种P2P流量,从而达到对其进行有效控制的目的。
发明内容
本发明实施例提供一种基于对等网络的主动识别方法及设备,有效识别网络中的各种P2P软件,并对该软件进行有效控制,从而提高系统的工作效率。
为解决上述技术问题,本发明是实施例提供一种基于对等网络的主动识别方法,包括:构造探测模板数据包,之后还包括:
获取已建立传输控制协议TCP连接的第一个有效载荷数据包;
若判断所述有效载荷数据包中包括协议关键字,则记录所述协议关键字后的数据;
将所述记录协议关键字后的数据存储在对应的哈希表中;
确定需要识别内网中IP地址,将所有与所述IP地址相关的连接分别标记为可疑点;
利用所述探测模板数据包对防火墙外的所述可疑点进行识别。
优选地,所述判断数据包中包括协议关键字的依据包括:
判断所述第一个有效载荷数据包中的前24个字节或28个字节中数据是否为协议关键字,若是,则执行记录所述协议关键字后的数据的步骤。
优选地,所述记录协议关键字后的数据具体包括:
若所述协议关键字后的数据是以“%”号开头的数据,则只记录所有“%”号后两个字节的数据,不记录“%”号;
若所述协议关键字后的数据不是以“%”号开头的数据,则记录“%”号后显示的字符所对应的阿斯码值。
优选地,在判断所述数据包中包括协议关键字后,若没有对应的哈希表,所述方法还包括:
记录该TCP连接的内网IP地址和所述数据包中的协议关键字后的数据,建立所述内网IP地址与对应所述协议关键字后的数据的哈希表。
优选地,所述确定需要识别内网中IP地址,将所有与所述IP地址相关的连接分别标记为可疑点具体包括:
统计内网中每个IP地址发出的连接数和数据流量;
若判断统计的所述连接数大于预设的最大连接数,且数据流量大于预设的最大数据流量时,将所有与所述IP地址相关的连接标记为可疑点。
优选地,所述与所述IP地址相关的连接为一个五元组,具体包括:协议类型、内网ip、内网端口号、外网ip和外网端口号。
优选地,对于变态下载bt协议,所述构造探测模板数据包包括:协议关键字、保留字、可变信息以及id号。
优选地,所述记录协议关键字后的数据的长度等于或小于探测模板数据包中的可变信息的长度。
优选地,所述利用所述探测模板数据包对防火墙外的所述可疑点进行识别具体包括:
根据探测模板数据包及对应的哈希表构造探测包;
向防火墙外的所述可疑点发起连接,并在连接成功后,向所述可疑点发送所述探测包;
接收所述可疑点发送的回应包;
判断所述回应包是否包括协议关键字;若是,则记录所述连接为bt连接,并在所述连接打上bt标记。
优选地,所述构造探测包的过程为:将所述哈希表中对应的哈希值写入探测模板数据包的可变信息中。
优选地,对于电骡协议,所述构造探测模板数据包为标准协议的握手包。
优选地,所述利用所述探测模板数据包对防火墙外的所述可疑点进行识别具体包括:
向防火墙外的所述可疑点发起连接,并在连接成功后,向所述可疑点发送所述握手包;
接收所述可疑点发送的回应包;
判断所述回应包是否包括协议关键字;若是,则记录所述连接为电骡连接,并在所述连接打上电骡标记。
优选地,还包括:根据需要,断开所述识别出来的连接或对连接的带宽进行限制。
相应的,本发明还提供一种基于对等网络的主动识别设备,包括:
获取单元,用于已建立传输控制协议TCP连接的第一个有效载荷数据包;
判断单元,用于判断所述有效载荷数据包中是否包括协议关键字,并发送判断结果;
记录单元,用于在接收判断单元发送包括协议关键字的判断结果时,记录所述协议关键字后的数据;
存储单元,用于将所述记录协议关键字后的数据存储在对应的哈希表中;
确定单元,用于确定需要识别内网中IP地址,将所有与所述IP地址相关的连接分别标记为可疑点;
识别单元,用于利用预先构造的探测模板数据包对防火墙外的所述可疑点进行识别。
优选地,所述记录单元包括:
第一判断单元,用于判断协议关键字后的数据是否以“%”号开头的数据,若是,则发送判断结果;
第一记录单元,用于在接收到关键字判断单元发送以“%”号开头的判断结果时,只记录所有“%”号后两个字节的数据,不记录“%”号;
第二记录单元,用于在接收到关键字判断单元发送不是以“%”号开头的判断结果时,记录“%”号后显示的字符所对应的阿斯码值。
优选地,在判断所述数据包中包括协议关键字后,若没有对应的哈希表,所述设备还包括:
第三记录单元,用于记录该TCP连接的内网IP地址和所述数据包中的协议关键字后的数据;
建立单元,用于根据所述第三记录单元中记录的所述内网IP地址与对应所述协议关键字后的数据建立哈希表。
优选地,所述确定单元包括:
统计单元,用于统计内网中每个IP地址发出的连接数和数据流量;
第二判断单元,用于判断统计单元统计的所述连接数是否大于预设的最大连接数,若大于,继续判断所述数据流量是否大于预设的最大数据流量,并发送大于的判断结果;
标记单元,用于在接收到所述判断单元发送大于的判断结果时,将所有与所述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进制数据来表示,但并不限于此,具体为:
13 42 69 74 54 6f 72 72 65 6e 74 20 70 72 6f 74
6f 63 6f 6c 65 78 00 00 00 00 00 01 xx xx xx xx
xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx
2d 58 4c 30 30 31 32 2d 57 27 67 fb b1 b2 0b c1
37 68 03 a1
其中,在所述构造探测模板数据包的结构中:
13 42 69 74 54 6f 72 72 65 6e 74 20 70 72 6f 74
6f 63 6f 6c,
以上20个字节为bt的协议关键字。
65 78 00 00 00 00 00 01,这8个字节是保留字节。
xx xx xx xx
xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx
所述xx表示可变信息,是用来承载传输文件的哈唏值,所述哈唏值是通过sha1计算后得到的hash值,一般为20个字节长。在实际传输过程中,由于实际传输文件的值不同,则计算出的哈唏值也不同,由于该20个字节中值的不能固定,由此而定义为可变信息。也可以理解为,xx表示的数据会根据实际情况做相应的替换。
2d 58 4c 30 30 31 32 2d 57 27 67 fb b1 b2 0b c1
37 68 03 a1
这20个字节是一个id号,可以保持不变,当然,也可以变化。
另一种是,对于emule协议,本发明构造的探测模板数据包为标准协议的握手包,下面也以16进制数据来表示,但并不限于此,具体为:
e3 80 00 00 00 01 10 80 5b 4f 71 76 0e 2f 1e 58
db 35 2a 38 80 6f e1 e2 36 19 00 87 1d 08 00 00
00 02 01 00 01 15 00 5b 43 48 4e 5d 5b 56 65 72
79 43 44 5d 79 6f 75 72 6e 61 6d 65 03 01 00 11
3c 00 00 00 03 01 00 f9 91 1d 00 00 03 01 00 fa
1b 42 10 34 03 01 00 fe b4 01 00 00 03 01 00 fb
00 c0 00 00 02 01 00 55 0d 00 56 65 72 79 43 44
20 30 38 30 33 31 33 03 01 00 ee 0c e9 89 14 c1
8a dd d6 92 10
该协议下的探测模板数据包是一个emule标准协议的握手包,运行emule协议的软件均可识别。
当然,本发明在构造探测模板数据包中,也可以同时构造这这两种数据包,本实施例不作限制。
在步骤102至步骤105中,对于每一条已经建立的TCP连接,抓取TCP连接的第一个有效载荷数据包,判断所述有效载荷数据包的前24个字节或28个字节中的数据是否为协议关键字,即:前24个字节的数据是否为″GET/announce?info_hash=″;或前28个字节为″GET/announce.php?info_hash=″,如果是,则对协议关键字后面的数据做记录,一共记录20个字节。其具体记录的过程为:
判断所述协议关键字后的数据是否以“%”号开头的数据,若是,则记录“%”号后两个字节的数据,直至记录20个字节;否则,记录“%”号后20个字节中显示字符的阿斯码值。也就是说,对于协议关键字后面的数据中,若以“%”号开头的数据,不记录“%”号,只记录“%”号后面的2个字节的数据;而对于不以“%”号开头的数据,需要对该字节中显示字符的阿斯码值,即记录的数据以16进制表示,比如1表示为0x31;2表示为0x32;3表示为0x33等。a表示ox61;b表示为0x62;c表示为0x63等。
需要说明的是,本实施例中的记录数据的长度等于或者小于探测模板数据包中可变信息的长度,本发明是以20个字节为例,但并不限于此。
为了便于本领域技术人员的理解,下面分别举例说明。
比如,一个有效载荷数据包的前68个字节内容如下所示:
″GET/announce.php?info_hash=%1a%2e%3d%4e%5f%60%71%82%931234567890a”,由于协议关键字“GET/announce.php?info_hash=”后是以“%”开始的,则去掉“%”号后,记录“%”号后真实的两个字节数据,如果“%”号的后续数据中没有“%”号,则记录显示字符的阿斯码值,对于该例子,记录的数据为1a 2e 3d 4e 5f 60 71 82 93 31 32 33 34 35 36 37 38 39 30 61。2个数记为一组,正好记录20个字节的数据。
再比如,一个有效载荷数据包的前92个字节内容如下所示:
″GET/announce.php?info_hash=%1a%2e%3d%4e%5f%60%71%82%93%10%11%12%13%14%15%16%17%18%19%1a%1b”,则记录的数据为1a 2e 3d4e 5f 60 71 82 93 10 11 12 13 14 15 16 17 18 19 1b。2个数记为一组,正好记录20个字节的数据。
再比如,一个有效载荷数据包的前48个字节内容如下所示:″GET/announce.php?info_hash=01234567890123456789”,则记录的数据为3031 32 33 34 35 36 37 38 39 30 31 32 33 34 35 36 37 38 39。2个数记为一组,正好记录20个字节的数据。
其中,本发明中的协议关键字,比如:
“GET/announce?info_hash=”和“GET/announce.php?info hash=”具体是指bt连接其服务器的关键字数据,其协议关键字后面的数据是要传输文件的hash值,也是本发明中要记录的关键数据。在bt协议中,定义了bt客户端连接bt服务器的特定关键字,即该协议标准中,其关键字就是:
“GET/announce?info_hash=”和“GET/announce.php?info_hash=”,
因此,如果判断所述有效载荷数据包的前24个字节或28个字节包括协议关键字,则需要记录这条TCP连接的内网ip地址,记为i_ip,并记录所述协议关键字后的数据,即文件hash值,记为fhash,如果在存在对应的哈希表,记为ip_f_table,则将所记录的文件hash值存储在对应的哈希表中,如果没有对应的哈希表,则记录该TCP连接的内网IP地址和所述数据包中的协议关键字后的数据,并建立所述内网IP地址与对应所述协议关键字后的数据的哈希表。所述哈希表包括内网IP地址和文件hash值,当然还可以包括其他。不过,对于该哈希表的命名,也可以根据自身的爱好来命名,但该哈希表中必须以“或a-z”之间的英文开头,中间也必须全是英文的一个名称。其哈希表的结构如表1所示:
表1
ip | fhash |
该记录哈希表中的文件hash值的作用在于为bt探测提供数据依据。
当然,对于内网中TCP连接的n个ip地址,该哈希表的数据也可以如表2所示:
表2
ip1 | fhash1 |
ip2 | fhash2 |
... | ... |
ipn | fhashn |
在步骤106中,服务器确定需要识别内网中IP地址,将所有与所述IP地址相关的连接分别标记为可疑点,具体包括:
首先,设置防火墙内部网络每一个IP地址允许的最大连接数,表示为MAX_C,单位时间内的最大流量,表示为MAX_FLOW。
其次,防火墙对内网每一个IP发出的连接数和数据流量进行统计。比如对ip为ip1的连接数为ip1_c,数据流量为ip1_f,ip为ip2的连接数为ip2_c,数据流量为ip2_f;依次类推,可以得到统计每一个ip的连接数和数据流量,如表3所示:
表3
ip1 | ip1_c | ip1_f |
ip2 | ip2_c | ip2_f |
... | ... | ... |
ipn | ipn_c | ipn_f |
最后,判断统计的所述连接数是否大于预设的最大连接数,若是,则继续判断统计的数据流量是否大于预设的最大数据流量,若大于,将所有与所述IP地址相关的连接标记为可疑点,其中,包括防火墙内网和防火墙外网中与所述IP地址相关的连接。若判断统计的所述连接数小于等于预设的最大连接数,或者判断统计的数据流量小于等于预设的最大数据流量,则结束该流程。
也就是说,如果ip1_c大于MAX_C并且ip1_f大于MAX_F,则把所有与ip1相关的连接标记为可疑点。对于某一个连接来说,它是一个五元组,包括:协议类型(tcp/udp),内网ip(i_ip),内网端口(i_port),外网ip(o_ip),外网端口(o_port)。具体如表4所示:
表4
TCP | i_ip | i_port | o_ip | o_port |
在步骤107中,利用所述探测模板数据包对防火墙外的所述可疑点进行识别,具体包括:
对于bt探测
根据探测模板数据包及对应哈希表构造探测包;也就是将所述哈希表中对应的哈希值写入到探测模板的数据包的可变信息中。
向防火墙外的可疑连接点发起一个连接,即连接o_ip:o_port;如果连接成功,则向可疑连接点发送构造后的bt协议的探测包,即用这个ip相关的fhash值代替模板包中用xx表示的数据。如果能够收到回应数据,并且回应数据的前20个字节为(以16进制数据表示):
13 42 69 74 54 6f 72 72 65 6e 74 20 70 72 6f 74
6f 63 6f 6c
则就认为这个可疑连接点在运行bt服务,由此可以记录该连接为bt连接,并将内网与可疑连接点的所有连接标记为bt连接。
对于emule探测
向防火墙外的可疑连接点发起一个连接,即连接o_ip:o_port。如果连接成功,则向该可疑连接点发送emule协议的探测包。如果能够收到回应数据,并且回应数据的前6个字节(以16进制数据表示)为e3 80 00 00 00 01,则就认为对可疑连接点在运行emule服务,可以记录所述连接为电骡连接,对该可疑连接点与内网的所有连接标记为emule连接。
优先的,所述方法还包括,对识别后的结果进行处理。具体包括:
可以将是把识别出来的连接打上相应的标记;也可以根据实际的需要可以断开识别出来的连接或对连接的带宽进行限制。
为例便于本领域技术人员的理解,下面举一最佳应用实例来说明本发明的实现过程,本实例以内网ip地址为:192.168.1.100为例,具体包括:
1、启动防火墙
2、构建探测模板,共有2个,一个是bt探测模板,一个是emule探测模板。模板内的数据的结构具体详见上述,在此不再赘述。
3、设置内网中允许每一个IP最大连接数为100,单位时间内的最大流量为300K/秒。
4、数据抓取
对于一条已经建立的TCP连接,抓取该连接的第一个有效载荷数据包的前28个字节,判断其数据是否为“GET/announce.php?info_hash=”或前24个字节是否为“GET/announce?info_hash=”。如果是,则提取所述
“GET/announce.php?info_hash=”和“GET/announce?info_hash=”后面的数据,所述提取的数据是用来写入到构造模板数据包的可变信息中,即xx表示的20个字节数据中,其提取数据的方法详见上述,在此不再赘述。然后,将提取的数据保存到ip_f_table表中,如果不存在,不存在ip_f_table表,则需要,记录该TCP连接的内网IP地址和所述数据包中的协议关键字后的数据,建立所述内网IP地址与对应所述协议关键字后的数据的哈希表。
如果数据的前92个字节内容如下所示:
“GET/announce.php?info_hash=%
1a%2e%3d%4e%5f%60%71%82%93%10%11%12%13%14%15%16%17%18%19%1a%1b”
则哈希表的内容可能表5所示:
表5
ip地址 | hash值 |
192.168.1.100 | 1a 2e 3d 4e 5f 60 71 82 93 10 1112 13 14 15 16 17 18 19 1b |
5、数据统计。
对于与ip地址为:192.168.1.100的终端设备建立的所有连接进行统计。即统计内网中每个IP地址发出的连接数和数据流量;也就是说,来一条连接就把连接数加1,断一条连接就把连接数减1。但该终端设备总的连接数可知的。即可以对于每一个与192.168.1.100的连接数和数据流量做统计。比如统计内容如表6所示:
表6
ip地址 | 总连接数 | 流量(K/秒) |
192.168.1.100 | 100 | 400 |
假定4)中连接的内部端口为3001,外部IP地址为10.11.12.13,端口为8080,则连接表如表7所示:
表7
连接类型 | 内部ip地址 | 内部端口号 | 外部ip地址 | 外部端口号 |
TCP | 192.168.1.100 | 3001 | 10.11.12.13 | 8080 |
6、探测或者识别
由于ip地址为192.168.1.100的连接数已经达到预先设定的探测条件,同时流量也达到了设定的探测条件,可以启动探测程序。
61)bt探测
使用探测模板和hash表构造探测包,即用hash表内的hash数据替换模板中的xx数值,形成下面的探测包:
13 42 69 74 54 6f 72 72 65 6e 74 20 70 72 6f 74
6f 63 6f 6c 65 78 00 00 00 00 00 01 1a 2e 3d 4e
5f 60 71 82 93 10 11 12 13 14 15 16 17 18 19 1b
2d 58 4c 30 30 31 32 2d 57 27 67 fb b1 b2 0b c1
37 68 03 a1
在构造探测包完成后,将防火墙先连接到10.11.12.13的8080端口,若连接成功,则向10.11.12.13的8080端口发送构造完成的探测包,然后等待回应包。如果接收到回应包,并且回应包的前20个字节为:13 42 69 74 54 6f 72 7265 6e 74 20 70 72 6f 74 6f 63 6f 6c,则说明内网中的ip地址192.168.1.100、端口为3001与10.11.12.13、端口为8080之间的连接为bt连接。可以记录该连接为bt连接,并对该条连接打上bt标记。
62)emule探测
如果bt探测没有结果,可以使用emule探测,同理,先将防火墙连接到10.11.12.13的8080端口,在连接成功后,发送探测模板内的探测包(即emule协议的标准探测包,比如握手包),然后等待回应包。如果接收到回应包,且回应包的前6个字节为:e3 80 00 00 00 01,则说明内部ip地址192.168.1.100、端口为3001与10.11.12.13、端口为8080之间的连接为emule连接。可以记录该连接为emule连接,并对该条连接打上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地址相关的连接标记为可疑点。
所述识别单元包括:探测包构造单元,探测包发送单元、接收单元、第三判断单元和变态下载识别单元,其中,所述探测包构造单元,用于根据预先构造的探测模板数据包及哈希表构造探测包;所述探测包发送单元,用于向防火墙外的所述可疑点发起连接,并在连接成功后,向所述可疑点发送所述探测包;所述接收单元,用于接收所述可疑点发送的响应包;所述第三判断单元,用于判断所述响应包是否包括协议关键字,并发送判断结果;所述变态下载识别单元,用于在接收所述协议判断单元发送是的判断结果时,判定所述连接为bt连接,并在所述连接打上bt标记。
所述识别单元包括:握手包发送单元、接收单元、第四判断单元和电骡识别单元,其中,所述握手包发送单元,用于向防火墙外的所述可疑点发起连接,并在连接成功后,向所述可疑点发送所述握手包;所述接收单元,用于接收所述可疑点发送的响应包;所述第四判断单元,用于判断所述响应包中是否包括协议关键字,并发送判断结果;所述电骡识别单元,用于在接收到所述判断单元发送是的判断结果时,判定所述连接为电骡连接,并在所述连接打上电骡标记。
所述设备还包括:处理单元,与识别单元相连,用于根据需要,断开所述识别出来的连接或对连接的带宽进行限制。
所述设备还包括:还包括:模板构造单元,与识别单元相连,用于构造探测模板数据包。
所述设备中各个单元的功能和作用的实现过程详见上述方法中对应的实现过程,在此不再赘述。
由此可见,本发明的优点非常多,一是不需要对大量的数据包做特征码一一过滤,只是在构建模板时只过滤TCP连接的第一个有效载荷数据包,提高了防火墙的效率;二是彻底抛弃了端口的概念,即使bt,emule等软件使用了80端口来连接,本发明也一样可以识别,而且对效率影响微乎其微;三是通过构建协议自身的数据包作为探测软件,可以做到100%的准确率,由此可见,本发明即不限制用户的数据流量也限制用户的连接,只是在达到最大连接数和数据流量时,对相应点进行探测,根据探测结果可以标记出识别出来的bt,emule连接,配合相关的工具对相应的连接进行带宽限制或断开连接。本发明可以做到识别快,识别准,又不会引起用户投诉问题。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (16)
1.一种基于对等网络的主动识别方法,其特征在于,包括:构造探测模板数据包,之后还包括步骤:
获取已建立传输控制协议TCP连接的第一个有效载荷数据包;
若判断所述有效载荷数据包中包括协议关键字,则记录所述协议关键字后的数据;
将所述记录协议关键字后的数据存储在对应的哈希表中;
确定需要识别内网中IP地址,将所有与所述IP地址相关的连接分别标记为可疑点;
利用所述探测模板数据包对防火墙外的所述可疑点进行识别,具体包括:
根据探测模板数据包及对应的哈希表构造探测包,其中,构造探测包的过程包括将所述哈希表中对应的哈希值写入探测模板数据包的可变信息中;向防火墙外的所述可疑点发起连接,并在连接成功后,向所述可疑点发送所述探测包;接收所述可疑点发送的回应包;判断所述回应包是否包括协议关键字;若是,则记录所述连接为bt连接,并在所述连接打上bt标记;或者
向防火墙外的所述可疑点发起连接,并在连接成功后,向所述可疑点发送握手包;接收所述可疑点发送的回应包;判断所述回应包是否包括协议关键字;若是,则记录所述连接为电骡连接,并在所述连接打上电骡标记。
2.根据权利要求1所述的方法,其特征在于,所述判断数据包中包括协议关键字的依据包括:
判断所述第一个有效载荷数据包中的前24个字节或28个字节中数据是否为协议关键字,若是,则执行记录所述协议关键字后的数据的步骤。
3.根据权利要求1所述的方法,其特征在于,所述记录协议关键字后的数据具体包括:
若所述协议关键字后的数据是以“%”号开头的数据,则只记录所有“%”号后两个字节的数据,不记录“%”号;
若所述协议关键字后的数据不是以“%”号开头的数据,则记录“%”号后显示的字符所对应的阿斯码值。
4.根据权利要求1至3任一项所述的方法,其特征在于,在判断所述数据包中包括协议关键字后,若没有对应的哈希表,所述方法还包括:
记录该TCP连接的内网IP地址和所述数据包中的协议关键字后的数据,建立所述内网IP地址与对应所述协议关键字后的数据的哈希表。
5.根据权利要求1至3任一项所述的方法,其特征在于,所述确定需要识别内网中IP地址,将所有与所述IP地址相关的连接分别标记为可疑点具体包括:
统计内网中每个IP地址发出的连接数和数据流量;
若判断统计的所述连接数大于预设的最大连接数,且数据流量大于预设的最大数据流量时,将所有与所述IP地址相关的连接标记为可疑点。
6.根据权利要求5所述的方法,其特征在于,所述与所述IP地址相关的连接为一个五元组,具体包括:协议类型、内网ip、内网端口号、外网ip和外网端口号。
7.根据权利要求1所述的方法,其特征在于,对于变态下载bt协议,所述构造探测模板数据包包括:协议关键字、保留字、可变信息以及id号。
8.根据权利要求3或7所述的方法,其特征在于,所述记录协议关键字后的数据的长度等于或小于探测模板数据包中的可变信息的长度。
9.根据权利要求1所述的方法,其特征在于,对于电骡协议,所述构造探测模板数据包为标准协议的握手包。
10.根据权利要求1、2、3、7或9所述的方法,其特征在于,还包括:根据需要,断开所述识别出来的连接或对连接的带宽进行限制。
11.一种基于对等网络的主动识别设备,其特征在于,包括:
获取单元,用于获取已建立传输控制协议TCP连接的第一个有效载荷数据包;
判断单元,用于判断所述有效载荷数据包中是否包括协议关键字,并发送判断结果;
记录单元,用于在接收判断单元发送包括协议关键字的判断结果时,记录所述协议关键字后的数据;
存储单元,用于将所述记录协议关键字后的数据存储在对应的哈希表中;
确定单元,用于确定需要识别内网中IP地址,将所有与所述IP地址相关的连接分别标记为可疑点;
识别单元,用于利用预先构造的探测模板数据包对防火墙外的所述可疑点进行识别,其中,所述识别单元包括:探测包构造单元,用于根据预先构造的探测模板数据包及哈希表构造探测包,其中,构造探测包的过程包括将所述哈希表中对应的哈希值写入探测模板数据包的可变信息中;探测包发送单元,用于向防火墙外的所述可疑点发起连接,并在连接成功后,向所述可疑点发送所述探测包;接收单元,用于接收所述可疑点发送的响应包;第三判断单元,用于判断所述响应包是否包括协议关键字,并发送判断结果;变态下载识别单元,用于在接收所述第三判断单元发送是的判断结果时,判定所述连接为bt连接,并在所述连接打上bt标记;或者,
所述识别单元包括:握手包发送单元,用于向防火墙外的所述可疑点发起连接,并在连接成功后,向所述可疑点发送所述握手包;接收单元,用于接收所述可疑点发送的响应包;第四判断单元,用于判断所述响应包中是否包括协议关键字,并发送判断结果;电骡识别单元,用于在接收到所述第四判断单元发送是的判断结果时,判定所述连接为电骡连接,并在所述连接打上电骡标记。
12.根据权利要求11所述的设备,其特征在于,所述记录单元包括:
第一判断单元,用于判断协议关键字后的数据是否以“%”号开头的数据,若是,则发送判断结果;
第一记录单元,用于在接收到第一判断单元发送以“%”号开头的判断结果时,只记录所有“%”号后两个字节的数据,不记录“%”号;
第二记录单元,用于在接收到第一判断单元发送不是以“%”号开头的判断结果时,记录“%”号后显示的字符所对应的阿斯码值。
13.根据权利要求12所述的设备,其特征在于,在判断所述数据包中包括协议关键字后,若没有对应的哈希表,所述设备还包括:
第三记录单元,用于记录该TCP连接的内网IP地址和所述数据包中的协议关键字后的数据;
建立单元,用于根据所述第三记录单元中记录的所述内网IP地址与对应所述协议关键字后的数据建立哈希表。
14.根据权利要求11所述的设备,其特征在于,所述确定单元包括:
统计单元,用于统计内网中每个IP地址发出的连接数和数据流量;
第二判断单元,用于判断统计单元统计的所述连接数是否大于预设的最大连接数,若大于,继续判断所述数据流量是否大于预设的最大数据流量,并发送大于的判断结果;
标记单元,用于在接收到所述第二判断单元发送大于的判断结果时,将所有与所述IP地址相关的连接标记为可疑点。
15.根据权利要求11所述的设备,其特征在于,还包括:
处理单元,与识别单元相连,用于根据需要,断开所述识别出来的连接或对连接的带宽进行限制。
16.根据权利要求11至15任一项所述的设备,其特征在于,还包括:模板构造单元,与识别单元相连,用于构造探测模板数据包。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100778750A CN101494663B (zh) | 2009-01-23 | 2009-01-23 | 基于对等网络的主动识别方法及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100778750A CN101494663B (zh) | 2009-01-23 | 2009-01-23 | 基于对等网络的主动识别方法及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101494663A CN101494663A (zh) | 2009-07-29 |
CN101494663B true CN101494663B (zh) | 2012-05-23 |
Family
ID=40925061
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009100778750A Expired - Fee Related CN101494663B (zh) | 2009-01-23 | 2009-01-23 | 基于对等网络的主动识别方法及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101494663B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102130974A (zh) * | 2011-04-29 | 2011-07-20 | 北京网御星云信息技术有限公司 | 识别p2p数据的方法和装置 |
CN102571946B (zh) * | 2011-12-28 | 2015-07-01 | 南京邮电大学 | 一种基于对等网络的协议识别与控制系统的实现方法 |
CN103731406B (zh) * | 2013-09-22 | 2017-01-25 | 东软集团股份有限公司 | 基于多元判定要素的p2p识别方法及系统 |
CN112887187B (zh) * | 2021-01-19 | 2022-09-06 | 海尔数字科技(青岛)有限公司 | 一种设备间通信建立方法、系统、装置、设备及介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1913528A (zh) * | 2006-08-25 | 2007-02-14 | 清华大学 | 基于特征码的p2p数据报文检测方法 |
CN101184089A (zh) * | 2007-12-14 | 2008-05-21 | 浙江工业大学 | 一种基于端口与内容混杂检测的协议识别方法 |
-
2009
- 2009-01-23 CN CN2009100778750A patent/CN101494663B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1913528A (zh) * | 2006-08-25 | 2007-02-14 | 清华大学 | 基于特征码的p2p数据报文检测方法 |
CN101184089A (zh) * | 2007-12-14 | 2008-05-21 | 浙江工业大学 | 一种基于端口与内容混杂检测的协议识别方法 |
Non-Patent Citations (1)
Title |
---|
王逸欣,王锐,樊爱华,唐川.P2P 流量检测技术初探.《计算机与数字工程》.2006,第34卷(第6期),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN101494663A (zh) | 2009-07-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103873356B (zh) | 基于家庭网关的应用识别方法、系统和家庭网关 | |
JP2006352831A (ja) | ネットワーク制御装置およびその制御方法 | |
US20110149793A1 (en) | Traffic capture apparatus and traffic analysis apparatus, system and method | |
JP5017440B2 (ja) | ネットワーク制御装置およびその制御方法 | |
JP2007184799A (ja) | パケット通信装置 | |
CN106850568B (zh) | 多通道协议的会话老化方法及装置 | |
CN103023670A (zh) | 基于dpi的报文业务类型识别方法及装置 | |
SE525271C2 (sv) | Anordning och förfarande för överföring av privat information inom ett gruppkommunikationssystem | |
CN101494663B (zh) | 基于对等网络的主动识别方法及设备 | |
CN103618726A (zh) | 一种基于https协议实现移动数据业务识别的方法 | |
CN108141387B (zh) | 对于分组报头采样的长度控制 | |
US20100290353A1 (en) | Apparatus and method for classifying network packet data | |
CN111737222A (zh) | 基于一对多请求响应模型消息队列数据包存储检索的方法 | |
CN102035750B (zh) | 点对点流量识别方法及装置 | |
KR101344398B1 (ko) | 애플리케이션 인지와 트래픽 제어를 위한 라우터 장치 및 그 방법 | |
CN110691007A (zh) | 一种精确测量quic连接丢包率的方法 | |
US20110078283A1 (en) | Service providing system, filtering device, filtering method and method of confirming message | |
CN101753456B (zh) | 一种对等网络流量检测方法及其系统 | |
CN106506400B (zh) | 一种数据流识别方法及出口设备 | |
CN102480503B (zh) | P2p流量识别方法和装置 | |
CN102006290A (zh) | Ip源地址追溯的方法 | |
CN111224891A (zh) | 一种基于动态学习三元组的流量应用识别系统及方法 | |
CN115190056B (zh) | 一种可编排的流量协议识别与解析方法、装置及设备 | |
KR20210043498A (ko) | 데이터 스트림의 프로토콜 식별 | |
EP3149913A1 (de) | System und verfahren für eine sichere und anonyme kommunikation in einem netzwerk |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120523 Termination date: 20180123 |