TCP三次握手和四次挥手过程中,以下状态分别处于服务端和客户端描述正确的是
A.服务端:SYN-SEND,TIME-WAIT 客户端:SYN-RCVD,CLOSE-WAIT
B.服务端:SYN-SEND,CLOSE-WAIT 客户端:SYN-RCVD,TIME-WAIT
C.服务端:SYN-RCVD,CLOSE-WAIT 客户端:SYN-SEND,TIME-WAIT
D.服务端:SYN-RCVD,TIME-WAIT 客户端:SYN-SEND,CLOSE-WAIT
正确答案是 C
四次握手:客户端调用 close() 函数后,向服务器发送 FIN 数据包,进入FIN_WAIT_1 状态。FIN 是 Finish 的缩写,表示完成任务需要断开连接。 服务器收到数据包后,检测到设置了 FIN 标志位,知道要断开连接,于是向客户端发送“确认包”,进入CLOSE_WAIT 状态。注意:服务器收到请求后并不是立即断开连接,而是先向客户端发送“确认包”,告诉它我知道了,我需要准备一下才能断开连接。 客户端收到“确认包”后进入FIN_WAIT_2 状态,等待服务器准备完毕后再次发送数据包。 等待片刻后,服务器准备完毕,可以断开连接,于是再主动向客户端发送 FIN 包,告诉它我准备好了,断开连接吧。然后进入LAST_ACK 状态。 客户端收到服务器的 FIN 包后,再向服务器发送 ACK 包,告诉它你断开连接吧。然后进入TIME_WAIT 状态。 服务器收到客户端的 ACK 包后,就断开连接,关闭套接字,进入CLOSED 状态。
帖子还没人回复快来抢沙发