1)虚拟机安装tcp/udp通信测试工具,开启TCP监听[9999]端口


2)客户机安装tcp/udp通信测试工具,通过ip+port连接服务端

此时客户端与服务端建立连接进行三次握手
TCP三次握手
第一次握手:客户端发送SYN包至服务器,并进入SYS_SEND状态,等待服务器确认
第二次握手:服务端收到客户端的SYN包,发送一个ACK,同时发送自己的SYN包,此时服务器进入SYN_RECV状态
第三次握手:客户端接收到服务器发送的SYN+ACK后,进入ESTABLISHED状态,并发送服务器SYN包的确认ACK,服务器收到客户端的ACK后,进入ESTABLISHED状态
当客户端和服务器都进入ESTABLISHED状态后,客户端和服务器之间就可以开始双向传递数据。



3)客户端与服务端通信
客户端发送11111111,服务器端回复222222

4)客户端断开连接
断开连接会进行四次挥手。
第一次挥手:主动关闭方发送一个FIN并进入FIN_WAIT1状态
第二次挥手:被动关闭方接收到主动关闭方发送的FIN并发送ACK,此时被动关闭方进入CLASE_WAIT状态;主动关闭方收到被动关闭方的ACK后,进入FIN_WAIT2状态
第三次挥手:被动关闭方发送一个FIN并进入LAST_ACK状态
第四次挥手:主动关闭方收到被动关闭方发送的FIN并发送ACK,此时主动关闭方进入TIME_WAIT状态,经过2MSL时间后关闭连接,被动关闭方收到主动关闭方的ACK后,关闭连接。

本文详细解析了TCP协议中的三次握手过程,包括客户端与服务端如何通过SYN和ACK包建立连接,以及四次挥手过程,即如何安全地断开连接。通过具体步骤和状态变化,帮助读者理解TCP连接的建立与终止机制。
2084

被折叠的 条评论
为什么被折叠?



