Chinaunix首页 | 论坛 | 博客
  • 博客访问: 8184501
  • 博文数量: 1227
  • 博客积分: 10026
  • 博客等级: 上将
  • 技术积分: 20273
  • 用 户 组: 普通用户
  • 注册时间: 2008-01-16 12:40
文章分类

全部博文(1227)

文章存档

2010年(1)

2008年(1226)

我的朋友

分类: C/C++

2008-03-13 17:45:00

经过我对网络上IP数据包的跟踪,对我写的《TCP/IP学习笔记》进行补充。通过本文,可以加深对TCP/IP的认识。

●网络环境: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、由于笔者水平有限,上述内容难免有错误和不足之处,欢迎批评指正,先谢了。


作者:肖进
单位:南京中萃食品有限公司 资讯部

阅读(806) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~