前言
上一章节介绍了传输层的TCP协议,TCP 是面向连接的,提供端到端可靠性服务的传输层协议。深入浅出TCP协议,为什么需要TCP协议?
本章节通过在ENSP模拟器器上搭建环境模拟客户端访问网站,从而抓包得到TCP建立连接的三次握手过程和关闭连接的四次分手过程。
** 正文**
1 搭建拓扑 在ENSP模拟器上搭建如下拓扑,需要一台交换机、一个HTTP客户端、一个HTTP服务器。
2 配置
客户端A的配置:配置IP地址为192.168.1.1/24。
服务器A的配置:配置IP地址为192.168.1.2/24,启动HTTP服务。
3 模拟客户端访问HTTP服务器上网的过程
客户端A上在输入服务器的地址:http://192.168.1.2:80。模拟客户端访问网站的过程。
4 在模拟器的交换机接口上启动wireshark进行抓包
三次握手
客户端访问HTTP服务器前,由于使用TCP作为传输层协议,因此在传输数据前需要通过三次握手建立连接:
第一次握手: 主机A(通常也称为客户端)发送一个标识了SYN=1的数据段,表示期望与服务器A建立连接,TCP规定SYN=1时不能携带数据,但要消耗一个序号,因此声明自己的序号是 seq=0;
第二次握手: 服务器A回复标识了SYN=1,ACK=1的数据段,此数据段的序列号seq=0,确认序列号为主机A的序列号加1(ack=1),以此作为对主机A的SYN报文的确认。
第三次握手: 主机A发送一个标识了ACK=1的数据段,此数据段的序列号seq=1,确认序列号为服务器A的序列号加1(ack=1),以此作为对服务器A的SYN报文段的确认。
四次分手
TCP连接的建立是一个三次握手的过程,而TCP连接的终止则要经过四次握手。
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报文的确认。
总结
本章节通过在ENSP模拟器器上搭建环境模拟客户端访问网站,从而抓包验证了TCP建立连接的三次握手过程和关闭连接的四次分手过程。
大家有疑问可以后台留言交流呀,帮忙点个在看呀!