TCP/IP 协议是传输层的一个面向连接安全可靠的一个传输协议,三次握手的机制是为了保证能建立一个安全可靠的连接,那么第一次握手是由客户端发起,客户端会向服务端发送一个报文,在报文里面:SYN标志位置为1,表示发起新的连接。当服务端收到这个报文之后就知道客户端要和我建立一个新的连接,于是服务端就向客户端发送一个确认消息包,在这个消息包里面:ACK标志位置为1,表示确认客户端发起的第一次连接请求。以上两次握手之后,对于客户端而言:已经明确了我既能给服务端成功发消息,也能成功收到服务端的响应。但是对于服务端而言:两次握手是不够的,因为到目前为止,服务端只知道一件事,客户端发给我的消息我能收到,但是我响应给客户端的消息,客户端能不能收到我是不知道的。所以,还需要进行第三次握手,第三次握手就是当客户端收到服务端发送的确认响应报文之后,还要继续去给服务端进行回应,也是一个ACK标志位置1的确认消息。通过以上三次连接,不管是客户端还是服务端,都知道我既能给对方发送消息,也能收到对方的响应。那么,这个连接就被安全的建了。

第一次是客户端发送给服务端的,请求报文为feign值为1的,也就是告诉服务器说,我要断开了,此时,服务器接受到消息,会立刻返回一个确认报文ACK为1的给客户端,因为此时服务器可能还有一些信息没有处理完成,就说,你等等,然后稍等片刻会给客户端发送一个消息,就说我这边消息已经发完了,你可以断开了,但是此时服务器不知道客户端是否能够收到消息,所以说最后客户端会返回一个确认报文ACK值为1的,只有这样才能保证连接的安全性,少一次都不行,

三次握手

  1. 客户端发起连接请求
  2. 服务端回馈请求,此时客户端收到信息后表示客户端接收没问题,但是服务端不知道客户端能否收到自己(服务端)发出的数据
  3. 客户端再次回应服务端,若服务端收到了,则表示服务端接收没有问题

image.png

四次挥手

  1. 客户端发起断开的请求
  2. 服务端回复客户端表示要断开连接没问题,但是需要我(服务端)准备好,等我(服务端)准备好了,再给你发送断开命令
  3. 若服务端所有的数据都发送完毕,服务端发送断开的报文
  4. 客户端给服务端发送报文,表示已经结束到请求了,可以断开连接了

image.png