Wireshark抓包:详解TCP四次挥手报文内容

分手后的思念是犯贱 2024-03-17 13:38 44阅读 0赞

一、详解tcp四次挥手

刚才用图解释了tcp四次挥手的过程。用wireshark抓一个包,进行详细的分析。

1.客户端发的第一个释放连接的请求

这是抓的包,然后过滤出来的,看下最后的阶段,是要开始释放一个链接了。这里是第一个fin,ack包:

f17a9c9f3ec24b64bf4acbf00de35241.png

不是说只有fin吗?为啥这里是fin,ack包?

双击点看看下:

3adbc65af7d04757808d0d985f9d87a3.png

tcp报文是一个可靠的协议,它的每一个数据包都要进行确认,每发一个数据包都有一个ack包。表示每发一个包,都要去确认一下的。

3cb0dfffa6044610a24742049c657718.png

所以第一个fin,ack包,ack被标记了,其实也是对上一个报文数据的确认。

4feed2749054427bb5e76e248c4bb368.png

tcp是一个常规的,每个包都要去确认的这样一个协议。

2.服务器给客户端回应确认消息

a63d0e507b4c455c863acc1ca581155e.png

66ee6d64b55741079085ae708dd26bf8.png

只有ack位被标记了,其它位没有被标记,因为这就是一个确认消息。

ack包的序号是952。是因为客户端发的fin,ack包希望下一个包的序号是952(确认号是952)

c15f5fc4938547839c805b7db8bf9d48.png

3.服务器发给客户端释放连接的请求

543aa6c251984fb4b117338fa4b116c0.png

再次发送一个fin,ack包,表示我也要释放连接。

6107590cf7ec469a940957e4b58830b9.png

fin,ack和ack包的序号、确认号是一样的。

a2c4575736a8451e842bab557181f09e.png

因为还是一个服务器发的,所以确认号和序号是一样的。

178fe2a22d45441d8385ac89345d76c2.png

4.客户端发确认消息

客户端也发了一个ack包。这个包的ack号等于上一个包的序号(seq=5002)加1,也就是5003。

381988a4633645e09de9e9317fa76f8b.png

这个是别人抓的包,意思都一样
这里就是用wireshark抓包给大家详细的看了下四次挥手的过程。fin,ack包—>ack包——>fin,ack包——>ack包。

后面tcp连接就没有了。

二、完整看到全过程

e66f13c17c9d4df99a4878e8b74dc17d.png

这个是别人抓的包,可以看到全过程。这个是重点。
三次握手后,发起https的一个连接,中间发的都是正常的数据包,直到客户端发完数据包了,客户端发起一个fin,ack包开始四次挥手,直到连接结束了。

#

三、提示

以上内容是抓包整理的,2次抓包的内容有些区别,但是图片上写的技术内容准确无误。最后一张完整看到全过程的图片是本文的技术重点。学习时应活学活用,切勿死搬硬套。

发表评论

表情:
评论列表 (有 0 条评论,44人围观)

还没有评论,来说两句吧...

相关阅读

    相关 TCP挥手

    TCP的连接的断开 上次我们介绍了TCP的连接的建立需要经历“三次握手”。今天需要介绍的主题是TCP连接的断开,这个是比较复杂的一个事情,它需要经历我们常说的“四次挥手”