tcp/ip三次握手和四次断开_第1张图片

tcp/ip三次握手和四次断开_第2张图片

关于tcp/ip协议的三次握手和四次断开是面试的重点:

三次握手:

第一次握手:建立连接时,主机A(客户端)发送syn包到主机B(服务器),并进入syn_send状态,等待服务器确认;

第二次握手:主机B(服务器)收到syn包,必须确认客户的syn(ack=j+1),同时自己也发送一个syn包(syn=k),即syn+ack包,此时服务器进入syn_recv状态;

第三次握手:客户端收到服务器的syn+ack包,向服务器发送确认包ack(ack=k+1),此包发送完毕,客户端和服务器进入established状态,完成三次握手。之后,客户端和服务器开始传输数据。

四次断开:

第一次挥手:客户端发送一个FIN,用来关闭客户端到服务器的数据传送,客户端进入FIN_WAIT_1状态;

第二次挥手:服务器收到FIN,发送一个ACK给客户端,确认序号为收到的信号加1(与SYN相同,一个FIN占一个序号),服务器进入CLOSE_WAIT状态。

第三次挥手:服务器发送一个FIN,用来关闭服务器到客户端的数据传送,服务器进入LAST_ACK状态;

第四次挥手:客户端收到FIN,客户端进入TIME_WAIT状态,接着发送一个ACK给服务器,确认序号为收到序号加1,服务器进入CLOSE状态,完成四次挥手。