服务器和客户端三次握手和四次挥手

三次握手是建立连接

  1. 为了简历安全连接 带着sck seq 跟服务器进行交流
  2. 第一次是告诉服务器我来了,要建立连接
  3. 第二次是服务器告诉我他收到请求了,可以准备连接了
  4. 第三次是我告诉服务器,进入连接

四次挥手是断开连接

  1. 首先是客户端向服务器发送一个FM包,服务器收到后,向客户端发送有个确认的收拾 进入 close_wait状态,然后客户端收到ACK 包后 进入 fin_wait2 状态,然后服务器端再吧自己剩余没传完的数据发送给客户端。发送完毕后在发一个Fin+ ACK包,进入Last_ack(最后确认)状态,客户端收到Fin+ack包后,再向服务器发送ACK包,在等待两个周期后关闭连接

为什么是三次握手而不是两次握手

因为最后一次确认状态时,需要等待两个周期,如果不等待的话,会出现包丢失,接收不完的情况,所以是三次握手

经验分享 程序员 微信小程序 职场和发展