做什么`` 和 `` 在 `ss -o` 的输出中意味着什么?

做什么`` 和 `` 在 `ss -o` 的输出中意味着什么?

ss -o按以下格式显示 TCP 计时器:

timer:(<timer_name>,<expire_time>,<retrans>)

<expire_time>和是什么<retrans>意思?

我发现<expire_time>倒数为零,然后再次从某个数字重新开始计数。它的起始值因 TCP 套接字而异。

<retrans>对于所有 TCP 套接字来说似乎始终为零。

答案1

expire_time是计时器到期之前剩余的时间。 Linux内核中的TCP堆栈支持许多定时器,并且它们都有一个到期时间。

retrans是已经发生的重传次数。 TCP 实现 重传他们认为已丢失的数据包;他们对这些重传进行计数,以便知道何时放弃。你不应该经常看到这种情况;强制它的一种方法是尝试在不会立即拒绝的端口上打开连接,例如(基于您之前的问题之一中的示例):

curl http://www.google.com:9000

如果你运行它,你会看到curl在那里停留一段时间,并且ss -o会显示一个SYN-SENT重传计数不断增加的条目。您还会看到在这种情况下应用了退避:每次重新传输数据包时,初始过期时间都会增加。

相关内容