一、实验目的:
通过使用wireshark对TCP协议的数据包的抓取分析TCP协议的具体内容
二、预备知识:
1.需要了解TCP协议的三次握手过程
2.需要了解TCP协议的四次挥手的过程
三、网络拓扑

四、实验过程:
part1:3次握手和4次挥手的数据包的获取
1.通过使用TCP测试工具在机器一中创建服务器,并且进行相应的配置,然后打开wireshark进行capure
2.通过使用工具在机器二中创建客户端,并且进行连接,同时打开wireshark进行抓包
3.在客户端点击"连接"时,通过在wireshark中进行"ip.addr == 10.1.1.142 and ip.addr == 10.1.1.33"这种显示过滤得到3次握手的TCP数据包,进行保存,等待之后的分析
4.同样,在客户端发送"xxxx",然后在wireshark进行显示过滤之后,查看到发送数据的包,和4次挥手的包,进行保存,等待之后的分析
part2:分析3次握手和4次挥手的过程:
1.三次握手的分析过程如下:

依次打开这3个TCP数据包进行分析一下:
(1)第一个数据包:

首先,发送的sequence number = 0 ,Ack Number =0,代表这是第一次握手
然后,ack flag =0说明这次不是确认, syn flag = 1,说明这是依次想要连接
(2)第二个数据包:

seq number =0, ack number =1 ,说明这是第二次握手
ack flag =1 确认了第一次握手, syn flag =1 想要进行握手连接
(3)第三个数据包:

seq number =1 , ack number =1 说明这是第三次握手
ack flag =1 确认了第二次握手, syn flag = 0 没有想要连接
(4)突然想到了那个windows size的字段:依次展示3次握手这个字段的内容

这是客户端发给服务器的

这是服务器发给客户端的

这是第三次握手的
算了,不是很理解,先pass
2.分析四次挥手的过程如下:

(1)第一个数据包:

ack flag =1 ,前一个收到了, Fin =1 想要断开连接
(2)第二个数据包:
单纯的确认前一个Fin的请求,并没有发送自己想要Fin的想法
(3)第三个数据包:
确认了前一个数据包,同时,自己发出Fin想要断开连接
(4)第四个数据包:

ok,本人同意了,你断开就断开吧