实战 | wireshark抓包解析TCP三次握手和四次分手的过程

上一章节介绍了传输层的TCP协议,TCP 是面向连接的,提供端到端可靠性服务的传输层协议。深入浅出TCP协议,为什么需要TCP协议?


本章节通过在ENSP模拟器器上搭建环境模拟客户端访问网站,从而抓包得到TCP建立连接的三次握手过程和关闭连接的四次分手过程

 

正文

 

 

1

搭建拓扑

在ENSP模拟器上搭建如下拓扑,需要一台交换机、一个HTTP客户端、一个HTTP服务器。

 

实战 | wireshark抓包解析TCP三次握手和四次分手的过程

 

2

配置

 

客户端A的配置:配置IP地址为192.168.1.1/24。

 

实战 | wireshark抓包解析TCP三次握手和四次分手的过程

 

服务器A的配置:配置IP地址为192.168.1.2/24,启动HTTP服务。

 

实战 | wireshark抓包解析TCP三次握手和四次分手的过程

 

3

模拟客户端访问HTTP服务器上网的过程

 

客户端A上在输入服务器的地址:http://192.168.1.2:80。模拟客户端访问网站的过程。

 

实战 | wireshark抓包解析TCP三次握手和四次分手的过程

 

4

在模拟器的交换机接口上启动wireshark进行抓包

 

 

三次握手

 

客户端访问HTTP服务器前,由于使用TCP作为传输层协议,因此在传输数据前需要通过三次握手建立连接:

 

实战 | wireshark抓包解析TCP三次握手和四次分手的过程

 

第一次握手:

主机A(通常也称为客户端)发送一个标识了SYN=1的数据段,表示期望与服务器A建立连接,TCP规定SYN=1时不能携带数据,但要消耗一个序号,因此声明自己的序号是 seq=0;

 

实战 | wireshark抓包解析TCP三次握手和四次分手的过程

 

第二次握手:

服务器A回复标识了SYN=1,ACK=1的数据段,此数据段的***seq=0,确认***为主机A的***加1(ack=1),以此作为对主机A的SYN报文的确认。

 

实战 | wireshark抓包解析TCP三次握手和四次分手的过程

 

第三次握手:

主机A发送一个标识了ACK=1的数据段,此数据段的***seq=1,确认***为服务器A的***加1(ack=1),以此作为对服务器A的SYN报文段的确认。

 

实战 | wireshark抓包解析TCP三次握手和四次分手的过程

 

 

四次分手

 

TCP连接的建立是一个三次握手的过程,而TCP连接的终止则要经过四次握手

 

实战 | wireshark抓包解析TCP三次握手和四次分手的过程

 

1、服务器A想终止连接,于是发送一个标识了FIN=1,ACK=1的数据段,***为seq=308ack=158。FIN=1的作用就是用来释放连接的,表明主机A数据已经发送我完毕,要求释放连接.

 

实战 | wireshark抓包解析TCP三次握手和四次分手的过程

 

2、主机A回应一个标识了ACK=1的数据段,***为seq=158,确认序号为ack=309,作为对服务器A的FIN报文的确认。

 

实战 | wireshark抓包解析TCP三次握手和四次分手的过程

 

3、主机A想终止连接,于是向服务器A发送一个标识了FIN=1,ACK=1的数据段,***为seq=158,确认***为ack=309。表明主机A数据已经发送我完毕,要求释放连接。

 

实战 | wireshark抓包解析TCP三次握手和四次分手的过程

 

4、服务器A回应一个标识了ACK=1的数据段,***为seq=309,确认序号为ack=159,作为对主机A的FIN报文的确认。

 

实战 | wireshark抓包解析TCP三次握手和四次分手的过程

总结

 

 

本章节通过在ENSP模拟器器上搭建环境模拟客户端访问网站,从而抓包验证了TCP建立连接的三次握手过程和关闭连接的四次分手过程