使用 WireShark 分析 TCP/IP 三次握手 和 四次

2020-09-11  本文已影响0人  碎乌拉

Wireshark 抓包注意事项

为了演示一个TCP三次握手建立连接的过程,我们通过 Chrome 访问一个网页。

已知 HTTP 协议就是建立在TCP链接上的

比如访问以下的网址:

豆瓣

通过 Cmd 的 ping 命令获取这个网站对应的IP地址 154.8.131.165

ping地址

确定 这个IP 有一个非常重要的好处,就是我们只需要

电脑 -> 网站 的数据包

网站->电脑 的数据包

所以,可以使用Wireshark的显示过滤规则,只显示我们需要的数据,不然你一定看着满屏幕的数据抓狂的。

过滤规则如下:

ip.addr == 154.8.131.165

截图

过滤地址

分析TCP握手包

概览

三次握手

通过图片,可以看到先进行了 TCP 三次传输 然后才开始传输

第一次,客户端发送 SYN 报文到服务器

标志是SYN,seq=0

第二次 ,服务器接收到 客户端的SYN 报文,回复 SYN + ACK 报文

标志是SYN, ACK,seq=0, Ack = 接收到的Seq + 1 = 1

第三次 ,客户端接收到服务端的 SYN+ACK 报文后,回复 ACK报文

标志是ACK,seq=0,Ack = 接收到的Seq + 1 =1

只有第一个包没有确认位,其他包都有确认位。


TCP 四次挥手

由于TCP连接是全双工的,因此每个方向都必须单独进行关闭。这个原则是当一方完成它的数据发送任务后就能发送一个FIN来终止这个方向的连接。收到一个FIN只意味着这一方向上没有数据流动,一个TCP连接在收到一个FIN后仍能发送数据。首先进行关闭的一方将执行主动关闭,而另一方执行被动关闭。

(1)客户端A发送一个FIN,用来关闭客户A到服务器B的数据传送。

(2)服务器B收到这个FIN,它发回一个ACK。

(3)服务器B关闭与客户端A的连接,发送一个FIN给客户端A,确认序号为收到的序号加1。和SYN一样,一个FIN将占用一个序号。

(4)客户端A发回ACK报文确认,并将确认序号设置为收到序号加1。

抓包截图

四次挥手抓包
上一篇 下一篇

猜你喜欢

热点阅读