当一个TCP连接处于( )状态时等待应用程序关闭端口。A.CLOSED B.E

考试题库2022-08-02  37

问题 当一个TCP连接处于( )状态时等待应用程序关闭端口。A.CLOSEDB.ESTABLISHEDC.CLOSE-WAITD.LAST-ACK

选项 A.CLOSED
B.ESTABLISHED
C.CLOSE-WAIT
D.LAST-ACK

答案 C

解析 TCP释放连接可以分为四步,具体过程如下:
双方通信之前均处于ESTABLISHED状态。
第一步:源主机发送一个释放报文(FIN=1,自身序号SEQ =x),源主机进入FIN-WAIT状态。
第二步:目标主机接收报文后发出确认报文(ACK=1,确认序号ACK=x+1,自身序号SEQ =y),目标主机进入CLOSE-WAIT状态。此时,源主机停止发送数据,但是目标主机仍然可以发送数据,此时TCP连接为半关闭状态(HALF-CLOSE)。源主机接收到ACK报文后等待目标主机发出FIN报文,这可能会持续一段时间。
第三步:目标主机确定没有数据,向源主机发送后,发出释放报文(FIN=1,ACK=1,确认序号ACK =x+1,自身序号SEQ =z)。目标主机进入LAST-ACK状态。
注意:这里由于处于半关闭状态(HALF-CLOSE),目标主机还会发送一些数据,其序号不一定为y+1,因此可设为z。而且,目标主机必须重复发送一次确认序号ACK=x+1。
第四步:源主机接收到释放报文后,对此发送确认报文(ACK=1,确认序号ACK=z+1,自身序号SEQ=x+1),在等待一段时间确定确认报文到达后,源主机进入CLOSED状态。目标主机在接收到确认报文后,也进入CLOSED状态。
转载请注明原文地址:https://tihaiku.com/congyezige/2402081.html

最新回复(0)