TCP的三次握手和四次挥手简述
三次握手: 客户端向服务器发送SYN报文段,服务器接受到,此时服务器可以确认自己的接收能力是否正常;
服务器向客户端发送SYN报文段和ACK报文段,客户端接收到,此时客户端可以确认自己的发送能力和接受能力是否正常,但是此时服务器端只能确认自己的接收能力,并不能确认自己的发送能力是否正常;
客户端向服务器端发送ACK报文段,服务器接受后即可确认自己的发送能力是否正常,此时,三次握手完毕,客户端和服务器可以开始进行传输数据.
四次挥手: 客户端向服务器发送FIN报文段,发起断开连接请求,但不会立马中断连接;
服务器接收到,自动发送ACK报文段,但是不会立即发送FIN报文段,因为服务器端可能会有一些数据还未处理完毕;
在服务器处理完毕数据并向客户端发送处理结果之后,向客户端发送FIN报文段,但不会立即中断连接;
客户端接收到服务器发送的FIN报文段之后,做出应答,向服务器发送ACK报文段,之后会等待2个MSL(最长报文段寿命)时间才会主动断开连接进入CLOSED状态,以确保服务器能接收到最后这个ACK报文段,而服务器收到这个ACK报文段之后则会关闭连接,进入CLOSED状态.
SYN:同步序列号,用来发起一个连接。SYN=1的报文不能携带数据,但是消耗掉一个序号。当SYN=1而ACK=0时表明这是一个请求报文段;若对方同意连接,则响应报文中SYN=1,ACK=1。
ACK:确认标识,当ACK=1时确认字段才有效。当ACK=0时确认字段无效,并且TCP规定,在连接建立后所有的传送报文段都必须要把ACK置为1。
【TCP的三次握手和四次挥手简述】FIN :用来释放一个连接,当FIN=1表示此报文段的发送方已经发送完毕,并要求释放链接。