三次握手
所谓的三次握手即TCP连接的建立。这个连接必须是一方主动打开,另一方被动打开的。
1、客户端请求建立新连接
2、服务端接收到来自客户端的TCP报文后,返回一段报文,表示“确认客户端的报文Seq序号有效,服务器能正常接收客户端发送的数据,并同意创建新连接”
3、客户端接收到来自服务器端的确认收到数据的TCP报文之后,明确了从客户端到服务器的数据传输是正常的,并返回最后一段TCP报文,表示“确认收到服务器端同意连接的信号”
为什么需要第三次握手
TCP是一个双向通信协议,通信双方都有能力发送信息, 并接收响应。 因此, 通信双方都需要随机产生一个初始的序列号, 并且把这个起始值告诉对方。
四次挥手
所谓的四次挥手即TCP连接的释放(解除)。连接的释放必须是一方主动释放,另一方被动释放。
1、首先客户端想要释放连接,向服务器端发送一段TCP报文,表示“请求释放连接“
2、服务器端接收到从客户端发出的TCP报文之后,确认了客户端想要释放连接,并返回一段TCP报文,表示“接收到客户端发送的释放连接的请求”
3、服务器端自从发出ACK确认报文之后,做好了释放服务器端到客户端方向上的连接准备,再次向客户端发出一段TCP报文,表示“已经准备好释放连接了”
4、客户端收到从服务器端发出的TCP报文,确认了服务器端已做好释放连接的准备,并向服务器端发送一段报文,表示“接收到服务器准备好释放连接的信号”