一、三次握手
(1)什么是三次握手?
三次握手其实就是指建立一个TCP连接时,需要客户端和服务器总共发送3个包。进行三次握手的主要作用就是为了确认双方的接收能力和发送能力是否正常、指定自己的初始化序列号为后面的可靠性传送做准备
(2)三次握手过程
1.第一次握手
客户端向服务端发送一个SYN=1的报文,使服务端了解客户端需要建立一个新的连接。
2.第二次握手
服务端向客户端发送一个ACK=1,以及SYN=1的消息确认包,作用是当客户端收到该消息确认包时,使客户端知道自己既能发送数据也能接受数据
3.第三次握手
当第二次握手时客户端知道自己能接受和发送数据,当服务端只清楚自己能接受数据而不知道能否发送数据,所以客户端向服务端发送ACK=1的报文,就能使服务端了解自己能发送数据。至此三次握手结束
二、四次挥手
(1)什么是四次挥手?
四次挥手即终止TCP连接,就是指断开一个TCP连接时,需要客户端和服务端总共发送4个包以确认连接的断开。
(2)四次挥手过程
1.第一次挥手
四次挥手可以由任意一端发起,发起者称为客户端。
客户端向服务端发起一个FIN=1的报文,当服务端接受到报文后了解到客户端想断开连接。
2.第二次挥手
第一次挥手结束时,服务端不一定准备好,可能还有一些未发完的信息还有继续发送,所以服务端只能进行一个消息的确认,告知客户端已知客户端要断开连接,但服务端还有数据没有发送完。
3.第三次挥手
当服务端处理完所以事情,向客户端发送FIN的报文。
4.第四次挥手
当客户端接受到服务端的报文后发送一个确认报文,至此四次挥手结束