Netcat - 回显和管道时套接字处于 time_wait 状态,但直接调用时则不会

Netcat - 回显和管道时套接字处于 time_wait 状态,但直接调用时则不会

我正在使用 测试应用程序netcat (nc),但网络连接的吞吐量非常低。运行时,netstat -tnpo我看到 中有多个TCP会话TIME_WAIT。我通过 向应用程序发送数据,bash script如下所示:

while true; do
    echo "<required string>" | nc server_ip port
done

如果我改为在以下位置执行此操作terminal

nc server_ip port
<required string>

连接立即终止,并且 TIME_WAIT 中不再有任何 TCP 会话。

为什么会有差异?我需要做些什么来确保每次回显后,没有 TCP 端口处于 TIME_WAIT 状态?

答案1

您可能想像这样使用它。

    while true; do
        echo "<required string>" | nc server_ip port < /dev/null   
    done

抱歉,我没有足够的 repo 来将其作为评论发布。

相关内容