编号:_______________
本资料为word版本,可以直接编辑和打印,感谢您的下载
p2p协议端口
甲  方:___________________
乙  方:___________________
日  期:___________________
说明:本合同资料适用于约定双方经过谈判、协商而共同承认、共同遵守的责任与义务,同时阐述确定的时间内达成约定的承诺结果。文档可直接下载或修改,使用时请详细阅读内容。

p2p协议端口tcpip协议pdf
篇一:p2p协议识别
p2p协议识别技术方案
报告人:时间:
1gnutella0.4 协议
1.1端口特征识别
缺省端 口 : 6346/6347/6348
1.2流虽特征识别
ipp2p 识另U方案:gnutellatcp
检查gnutella get命令
如果tcppayload 的最初9个字节的内容为"get/get/" ,
或最初的13个字节为"get/uri-res/" 即为gnutella
检查gnutella get命令和其他特定字段
如果tcppayload 的最初17个字节的内容为
"gnutellaconnect/" ,或者最初的 9个字节的内容为 "gnutella/" 。即为 gnutella
如果tcppayload 的最初9个字节的内容为"get/get/" , 或最初的13个字节为"get/uri-res/" ippayload 长度大
tcp头部长度+30,此时如果指针自tcppayload 右移8
字节,指针所指的内容中第一个字节为    0x0d,第二个字节为
0x0a,匹配"x-gnutella-" ,或"x-queue:",匹配成功则为 gnutella ,(详情参看代码)
gnutellaudp
如果udppayload的最初3个字节的内容为"gnd”,或者
最初的9个字节的内容为"gnutella/" 。即为gnutella
l7Filter 识别方案:
x0d\x0a|get/uri-res/n2r\urn:sha1:|get/.*user-agent:
(gtk-gnutella|bearshare|mactella|gnucleus|gnotella|
limewire|imesh)|get/.*content-type:application/x-gn
utella-packets|giv[0-9]*:[0-9a-f]*/|queue[0-9a-f]*
[1-9][0-9][0-9]\.[1-9][0-9][0-9]\.[1-9][0-9][0-9]\.
[1-9][0-9][0-9]:[1-9][0-9][0-9][0-9]|gnutella.*cont
ent-type:application/x-gnutella|    l
ime)
我们的识别方案:
连接查询过程:payload的第17个字节是命令id ,
值为:0x00,0x01,0x80,0x81,0x40,( 扩展:
0x02,0x10,0x30,0x31,0x32), 从第 20 23 4 个字节,是
其后的payload长度,即(payload长度-23)。与ip中的报
文长度3-4字节)相比,中间应该相差ip20b)tcp/udp
(8b/20b )、gnutella 23b
下载过程:下载遵守 http协议。下载请求的以
get/get///http    开头,后面匹配 user-agent: 的内容以
gnutella/ 开头。返回文件数据时,以 http/x.x200ok\r\n 开头,后面匹配 server:的内容是gnutella/y.y\r\n.
1.3协议特征提取
连接阶段
如果 clienta supernodeb 发起 gnutella 连接,将进
行以下通讯:1.首先进行tcp三次握手。
2.连接成功后,a通过tcp发送:
gnutellaconnect/x30/x2e/x36/0x0d/0x0a
可以匹配的有用的字段:
listen-ip:162.105.130.97:6346(    这个具体是什么还不清
楚)
以下分为两种响应情况:成功    gnutella 连接:
3.成功响应为,b发送响应消息:
gnutella/0.6200ok/0x0d/0x0a
4.a接到响应消息后,发送响应:
gnutella/0.6200ok/0x0d/0x0a    没有什么对检测有意义的字
段:
不成功gnutella 连接:
5.如果连接失败,b会发送消息:
gnutella/0.6/0x0d/0x0a6 .终止 tcp 连接,b 会发起 Fin