分类: C/C++
2008-03-13 17:45:00
●网络环境:ADSL宽带
●IP数据包内容:
通过Outlook发送邮件,帐号是xiaojin8039@163.com,给我的其他邮箱xiaoj@njb.swirebev.com发送邮件,系统从而捕获的IP包。
●所有IP包均为TCP协议
1、关于IP包的分片情况:
所有的IP包均不分片,也就是IP包传输过程从不进行分片,均保持原始IP包的大小。这可能跟网络环境较好有关。
2、关于IP首部和TCP首部的大小:
IP首部的大小均为20,未见到包括选项的情况。但TCP首部有时会包括选项,大小为24到44不等,建立连接时的协商都带有选项数据,一般为28。
3、关于TCP连接的步骤:
(1)客户端发送建立报文的TCP报文给服务器端;
(2)服务器端发送同意建立TCP连接的报文给客户端;
(3)客户端再次进行确认;
(4)服务器端发送服务器信息;
(5)客户端发送数据,服务器端发送数据;
(6)客户端发送结束连接的命令;
(7)服务器端发送结束连接的TCP报文给客户端;
(8)客户端发送同意结束连接的TCP报文给服务器端;
4、TCP连接的具体过程,包括P包的唯一标识符ID、TCP报文连接的sequence和ACK数据,这是一个完整的TCP连接建立和结束的过程:
序号 | 数据大小 | 客户端 | 服务器端 | ||||
IPID | sequence | ACK | IPID | sequence | ACK | ||
1 | 0 | 273 | 2098660028 | 0 | |||
2 | 0 | 54707 | 3904671124 | 2098660029 | |||
3 | 0 | 274 | 2098660029 | 3904671125 | |||
4 | 56 | 54708 | 3904671125 | 2098660029 | |||
5 | 14 | 275 | 2098660029 | 3904671181 | |||
6 | 0 | 54709 | 3904671181 | 2098660043 | |||
7 | 113 | 54710 | 3904671181 | 2098660043 | |||
8 | 12 | 276 | 2098660043 | 3904671294 | |||
9 | 18 | 54711 | 3904671294 | 2098660055 | |||
10 | 18 | 277 | 2098660055 | 3904671312 | |||
11 | 18 | 54712 | 3904671312 | 2098660073 | |||
12 | 10 | 278 | 2098660073 | 3904671330 | |||
13 | 31 | 54713 | 3904671330 | 2098660083 | |||
14 | 0 | 279 | 2098660083 | 3904671361 | |||
15 | 34 | 280 | 2098660083 | 3904671361 | |||
16 | 8 | 54714 | 3904671361 | 2098660117 | |||
17 | 35 | 281 | 2098660117 | 3904671369 | |||
18 | 8 | 54715 | 3904671369 | 2098660152 | |||
19 | 6 | 282 | 2098660152 | 3904671377 | |||
20 | 37 | 54716 | 3904671377 | 2098660158 | |||
21 | 1414 | 283 | 2098660158 | 3904671414 | |||
22 | 0 | 54717 | 3904671414 | 2098661572 | |||
23 | 993 | 284 | 2098661572 | 3904671414 | |||
24 | 0 | 54718 | 3904671414 | 2098662570 | |||
25 | 5 | 285 | 2098662565 | 3904671414 | |||
26 | 38 | 54719 | 3904671414 | 2098662570 | |||
27 | 6 | 286 | 2098662570 | 3904671452 | |||
28 | 9 | 54720 | 3904671452 | 2098662576 | |||
29 | 0 | 54721 | 3904671452 | 5098662576 | |||
30 | 0 | 287 | 2098662576 | 3904671462 | |||
31 | 0 | 288 | 2098662576 | 3904671462 |
(1)数据大小不包括IP首部和TCP首部的大小。
(2)除开始协商建立连接外,每一个sequence均等于上一sequence值加数据大小。开始协商的SYN标记要占用一个字节。
(3)1和2行数据设置了SYN标志。
(4)30和31行数据设置了FIN标志。
(5)每个数据都包括发送方数据的起始字节sequence和期待对方发送数据位置的Ack值。
5、程序说明:
(1) 该程序收集通过本机网卡的所有协议为TCP的IP包。
(2) 对于未加密的邮件内容,可以进行识别并获得邮件首部内容。
(3) 对于采集的数据包可以进行保存,文件名为scan.bin,也可以导入符合该格式的文件。数据格式请见源程序。
(4) 源程序中还包括其他功能,有些尚未完成,有兴趣的读者可以帮我完成和修改.
6、由于笔者水平有限,上述内容难免有错误和不足之处,欢迎批评指正,先谢了。
作者:肖进
单位:南京中萃食品有限公司 资讯部