文章目录

  • 正文
  • 1.搭建拓扑
  • 2.配置
  • 3.模拟客户端访问HTTP服务器上网的过程
  • 4.在模拟器的交换机接口上启动wireshark进行抓包
  • 三次握手
  • 第一次握手:
  • 第二次握手:
  • 第三次握手:
  • 四次分手
  • 总结



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

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

正文

1.搭建拓扑

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

如何用wireshark抓取tcp建立的三次握手信号 wireshark抓包分析tcp三次握手过程_TCP

2.配置

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

如何用wireshark抓取tcp建立的三次握手信号 wireshark抓包分析tcp三次握手过程_TCP_02


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

如何用wireshark抓取tcp建立的三次握手信号 wireshark抓包分析tcp三次握手过程_服务器_03

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

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

如何用wireshark抓取tcp建立的三次握手信号 wireshark抓包分析tcp三次握手过程_序列号_04

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

三次握手

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

如何用wireshark抓取tcp建立的三次握手信号 wireshark抓包分析tcp三次握手过程_wireshark_05

第一次握手:

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

如何用wireshark抓取tcp建立的三次握手信号 wireshark抓包分析tcp三次握手过程_tcp/ip_06

第二次握手:

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

如何用wireshark抓取tcp建立的三次握手信号 wireshark抓包分析tcp三次握手过程_tcp/ip_07

第三次握手:

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

如何用wireshark抓取tcp建立的三次握手信号 wireshark抓包分析tcp三次握手过程_TCP_08

四次分手

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

如何用wireshark抓取tcp建立的三次握手信号 wireshark抓包分析tcp三次握手过程_服务器_09

  1. 服务器A想终止连接,于是发送一个标识了FIN=1,ACK=1的数据段,序列号为seq=308,ack=158。FIN=1的作用就是用来释放连接的,表明主机A数据已经发送我完毕,要求释放连接.
  2. 主机A回应一个标识了ACK=1的数据段,序列号为seq=158,确认序号为ack=309,作为对服务器A的FIN报文的确认。
  3. 主机A想终止连接,于是向服务器A发送一个标识了FIN=1,ACK=1的数据段,序列号为seq=158,确认序列号为ack=309。表明主机A数据已经发送我完毕,要求释放连接。
  4. 服务器A回应一个标识了ACK=1的数据段,序列号为seq=309,确认序号为ack=159,作为对主机A的FIN报文的确认。

如何用wireshark抓取tcp建立的三次握手信号 wireshark抓包分析tcp三次握手过程_TCP_10

总结

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