что такое состояния close\_wait и time\_wait?

<p>когда я делаю <code>netstat -a</code> на моем компьютере с windows, я получаю список портов с одним из четырех состояний:<br></p><pre><code>- listening - close\_wait - time\_wait - established </code></pre><p>что означают/указывают <code>close\_wait</code> и <code>time\_wait</code>?</p>

<p>из-за того, как работает tcp/ip, соединения не могут быть закрыты немедленно. пакеты могут поступить не по порядку или быть повторно переданными после закрытия соединения. close\_wait указывает, что удаленная конечная точка (другая сторона соединения) закрыла соединение. time\_wait указывает, что локальная конечная точка (эта сторона) закрыла соединение. соединение поддерживается так, что любые задержанные пакеты могут быть сопоставлены с соединением и обработаны соответствующим образом. соединения будут удалены по истечении четырех минут. смотрите <a href="http://en.wikipedia.org/wiki/transmission\_control\_protocol">http://en.wikipedia.org/wiki/transmission\_control\_protocol</a> для более подробной информации.</p>

<p>по сути, состояния «подождите» означают, что одна сторона закрыла соединение, но окончательное подтверждение закрытия еще не получено.</p><p>смотрите, например эта схема состояния tcp для деталей:</p><p> <a href="http://www.jxos.org/projects/tcp/tcpstate.html">http://www.jxos.org/projects/tcp/tcpstate.html</a> </p>

<p>time\_wait означает ожидание достаточного времени, чтобы убедиться, что удаленный tcp получил ack своего запроса fin. см. <a href="https://en.wikipedia.org/wiki/transmission\_control\_protocol">en.wikipedia.org/wiki/transmission\_control\_protocol</a> (а также rfc 793)</p>