TCP协议在建立连接的过程中会处于不同的状态,采用(请作答此空)命令显示出TCP连接的状态。下图所示的结果中显示的状态是( )。

- A.netstat
- B.ipconfig
- C.tracert
- D.show state
正确答案及解析
正确答案
A
解析
基本命令。netstat 可以接多种不同的参数,获取网络的相关参数。ipconfig只能查看TCP/IP相关配置信息,不能了解网络通信的状态信息。tracert是跟踪路由,主要获取数据包经过的中间设备的信息。show命令在windows中不存在的,属于交换机命令。本题显示的TCP的状态。
常用的三个状态是:ESTABLISHED 表示正在通信,TIME_WAIT 表示主动关闭,CLOSE_WAIT 表示被动关闭。TCP协议规定,对于已经建立的连接,网络双方要进行四次握手才能成功断开连接,如果缺少了其中某个步骤,将会使连接处于假死状态,连接本身占用的资源不会被释放。对于常用服务器而言,最值得注意的状态有两个:CLOSE_WAIT和TIME_WAIT。TIME_WAIT 是主动关闭链接时形成的,等待2MSL时间,约4分钟。主要是防止最后一个ACK丢失。 由于TIME_WAIT的时间会非常长,因此server端应尽量减少主动关闭连接CLOSE_WAIT是被动关闭连接是形成的。根据TCP状态机,服务器端收到客户端发送的FIN,则按照TCP实现发送ACK,因此进入CLOSE_WAIT状态。但如果服务器端不执行close(),就不能由CLOSE_WAIT迁移到LAST_ACK,则系统中会存在很多CLOSE_WAIT状态的连接。





