TCP使用Wireshark 抓包三次握手与四次挥手

目录

准备

三次握手

四次挥手

参考博客


准备

本科的时候实验课做过抓包实验,但是现在都忘完了,于是对照博客重新学下。

首先选择实验的网站,选择 https://blog.csdn.net/ ,在 http://ip.tool.chinaz.com/ 中可以解析出对应的ip地址。(???阿里云牛逼)

TCP使用Wireshark 抓包三次握手与四次挥手

在Wireshark 中开启抓包,浏览器访问网站后关闭网站,停止抓包,通过 tcp and ip.addr==47.95.47.253 可以筛选出对应的报文。

TCP使用Wireshark 抓包三次握手与四次挥手

可以发现,前3条报文就是TCP的三次握手。

三次握手

首先,客户端提出请求,SYN,seq=x(0),期待的ack=x+1(1)。

TCP使用Wireshark 抓包三次握手与四次挥手

接着,服务端向客户端发送一个数据包,SYN,ACK,同时要确认上一个报文 ack = x+1(1),发送自己的seq y(0)。

TCP使用Wireshark 抓包三次握手与四次挥手

第三次握手,客户端应答ACK,发送自己的seq x+1(1),确认第二条报文 ack = y + 1(1)。

TCP使用Wireshark 抓包三次握手与四次挥手

至此,三次握手结束,到第4条报文就是TLSv1.2(https)了,这里就不分析了(我还不大会)。

四次挥手

四次挥手应该有4条报文,但是我试了几次都只收到3条,百度一下说是因为服务器把第二和第三条报文合并了(因为客户端申请断开连接时,服务端没有啥需要传的了)

TCP使用Wireshark 抓包三次握手与四次挥手

第一次挥手,客户端申请断开连接,发送FIN、ACK(这个其实和嵌入式配置寄存器很像,对应的位上置1),***x=5052,确认***z=9528。

TCP使用Wireshark 抓包三次握手与四次挥手

第二次挥手,服务端发送FIN和ACK,ack=x+1(5053),seq=z(9528)。

TCP使用Wireshark 抓包三次握手与四次挥手

第三次挥手,客户端发送ACK,ack=z+1(9529),seq为收到的ack(5053)。至此,三次挥手结束。

TCP使用Wireshark 抓包三次握手与四次挥手

参考博客

https://blog.csdn.net/wangyiyungw/article/details/82178070