web-dev-qa-db-ja.com

`ss-o`の出力で` <expire_time> `と` <retrans> `はどういう意味ですか?

ss -oはTCPタイマーを次の形式で表示します:

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

何をしますか<expire_time>および<retrans>意味?

見つけた<expire_time>はゼロまでカウントダウンしてから、ある数値からカウントを再開します。その開始値は、TCPソケットからTCPソケットまでです。

<retrans>は、すべてのTCPソケットで常にゼロのようです。

2
Tim

expire_timeは、タイマーが切れるまでの残り時間です。 LinuxカーネルのTCPスタックは、いくつかのタイマーをサポートしており、それらにはすべて有効期限があります。

retransは、発生した再送信の数です。 TCP実装 失われたと思われるパケットを再送信する ;これらの再送信をカウントして、いつ諦めるかを判断します。これはあまり頻繁に見られるべきではありません。強制する方法は、すぐに拒否されないポートで接続を開こうとすることですeg(以前の例に基づく)質問):

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

これを実行すると、curlがしばらくそこに座っているのがわかり、ss -oは再送信回数が増えるSYN-SENTエントリを表示します。このような状況では、バックオフが適用されることもわかります。最初の有効期限は、パケットが再送信されるたびに長くなります。

1
Stephen Kitt