三次握手的主要目的是确认双方的发送和接收能力以及双方的初始序列号,确保双 方都已准备好发送和接收数据,避免因为网络延迟或丢包等原因引起的通信问题
- 三次握手: 第一次握手:客户端向服务器发送连接请求报文(SYN),并设置序列号(Seq)字段 第二次握手:服务器收到客户端的连接请求后,向客户端发送确认报文(ACK),同时也发送连接请求报文(SYN),并设置自己的序列号。 第三次握手:客户端收到服务器的确认报文后,也向服务器发送确认报文(ACK),确认序号字段设置为服务器的初始序列号加 1,表示客户端确认了服务器的连接请求。
四次挥手的主要目的是确保双方都能安全地关闭连接,避免因为数据丢失或延迟导致的连接状态不一致问题。
- 四次挥手: 第一次挥手:客户端向服务器发送连接释放请求报文(FIN),表示客户端已经完成数据传输任务,准备关闭连接。 第二次挥手:服务器收到客户端的连接释放请求后,向客户端发送确认报文(ACK),确认收到了客户端的连接释放请求。 第三次挥手:服务器通知应用层关闭连接,等待数据发送完成后,服务器也向客户端发送连接释放请求报文(FIN),表示服务器已经完成数据传输任务,准备关闭连 接。 第四次挥手:客户端收到服务器的连接释放请求后,向服务器发送确认报文(ACK),确认收到了服务器的连接释放请求。此时客户端进入 TIME_WAIT 状态,等待可能出现的延迟报文,确保服务器收到了确认报文。
注意:本文归作者所有,未经作者允许,不得转载