timer:(<timer_name>,<expire_time>,<retrans>)
何をしますか<expire_time>
および<retrans>
意味?
見つけた<expire_time>
はゼロまでカウントダウンしてから、ある数値からカウントを再開します。その開始値は、TCPソケットからTCPソケットまでです。
<retrans>
は、すべてのTCPソケットで常にゼロのようです。
expire_time
は、タイマーが切れるまでの残り時間です。 LinuxカーネルのTCPスタックは、いくつかのタイマーをサポートしており、それらにはすべて有効期限があります。
retrans
は、発生した再送信の数です。 TCP実装 失われたと思われるパケットを再送信する ;これらの再送信をカウントして、いつ諦めるかを判断します。これはあまり頻繁に見られるべきではありません。強制する方法は、すぐに拒否されないポートで接続を開こうとすることですeg(以前の例に基づく)質問):
curl http://www.google.com:9000
これを実行すると、curl
がしばらくそこに座っているのがわかり、ss -o
は再送信回数が増えるSYN-SENT
エントリを表示します。このような状況では、バックオフが適用されることもわかります。最初の有効期限は、パケットが再送信されるたびに長くなります。