タイムアウトの制御

2014/01/23

接続確立時のタイムアウトの制御

存在しないアドレスに接続を試みた場合のパケット再送の様子(一部省略)
# snoop -i timeout.pkt -td host 192.168.1.171 1 0.00000 192.168.10.161 -> 192.168.1.171 TCP D=9999 S=46100 Syn Seq=3206195424 2 1.13898 192.168.10.161 -> 192.168.1.171 TCP D=9999 S=46100 Syn Seq=3206195424 3 2.27001 192.168.10.161 -> 192.168.1.171 TCP D=9999 S=46100 Syn Seq=3206195424 4 4.51999 192.168.10.161 -> 192.168.1.171 TCP D=9999 S=46100 Syn Seq=3206195424 5 9.02013 192.168.10.161 -> 192.168.1.171 TCP D=9999 S=46100 Syn Seq=3206195424 6 18.01987 192.168.10.161 -> 192.168.1.171 TCP D=9999 S=46100 Syn Seq=3206195424 7 36.02000 192.168.10.161 -> 192.168.1.171 TCP D=9999 S=46100 Syn Seq=3206195424 8 60.01999 192.168.10.161 -> 192.168.1.171 TCP D=9999 S=46100 Syn Seq=3206195424
経過時間(sec) 間隔(RTO:sec) アクション パラメータ
0 - 送信
1.1 1.1 再送 _rexmit_interval_initial(=1s)
3.4 2.3 再送
7.9 4.5 再送
16.9 9.0 再送
34.9 18.0 再送
70.9 36.0 再送
130.9 60.0 再送 _rexmit_inteval_max(=60s)
180.0 - 中断 _ip_abort_cinterval(=180s)

_ip_abort_cinterval を 6分に変更
# ipadm set-prop -p _ip_abort_cinterval=360000 tcp # ipadm show-prop -p _ip_abort_cinterval tcp PROTO PROPERTY PERM CURRENT PERSISTENT DEFAULT POSSIBLE tcp _ip_abort_cinterval rw 360000 360000 180000 1000-4294967295
存在しないアドレスに接続を試みた場合のパケット再送の様子(一部省略)
# snoop -i timeout.pkt -td host 192.168.1.171 1 0.00000 192.168.10.161 -> 192.168.1.171 TCP D=9999 S=36615 Syn Seq=3948165482 2 1.13559 192.168.10.161 -> 192.168.1.171 TCP D=9999 S=36615 Syn Seq=3948165482 3 2.26998 192.168.10.161 -> 192.168.1.171 TCP D=9999 S=36615 Syn Seq=3948165482 4 4.52002 192.168.10.161 -> 192.168.1.171 TCP D=9999 S=36615 Syn Seq=3948165482 5 9.02007 192.168.10.161 -> 192.168.1.171 TCP D=9999 S=36615 Syn Seq=3948165482 6 18.01993 192.168.10.161 -> 192.168.1.171 TCP D=9999 S=36615 Syn Seq=3948165482 7 36.01997 192.168.10.161 -> 192.168.1.171 TCP D=9999 S=36615 Syn Seq=3948165482 8 60.02000 192.168.10.161 -> 192.168.1.171 TCP D=9999 S=36615 Syn Seq=3948165482 9 60.01999 192.168.10.161 -> 192.168.1.171 TCP D=9999 S=36615 Syn Seq=3948165482 10 60.01999 192.168.10.161 -> 192.168.1.171 TCP D=9999 S=36615 Syn Seq=3948165482 11 60.02005 192.168.10.161 -> 192.168.1.171 TCP D=9999 S=36615 Syn Seq=3948165482
経過時間(sec) 間隔(RTO:sec) アクション パラメータ
0 - 送信
1.1 1.1 再送 _rexmit_interval_initial(=1s)
3.4 2.3 再送
7.9 4.5 再送
16.9 9.0 再送
34.9 18.0 再送
70.9 36.0 再送
130.9 60.0 再送 _rexmit_inteval_max(=60s)
190.0 60.0 再送
250.9 60.0 再送
310.9 60.0 再送
360.0 - 中断 _ip_abort_cinterval(=360s)

接続確立後のタイムアウトの制御

接続確立後、サーバ側の NIC をダウンさせて確認。

クライアント側の再送状況(一部省略)
# snoop -i timeout.pkt host 192.168.10.181 1 0.00000 192.168.10.161 -> 192.168.10.181 TCP D=9999 S=55189 Syn Seq=375712661 2 0.00764 192.168.10.181 -> 192.168.10.161 TCP D=55189 S=9999 Syn Ack=375712662 Seq=238171285 3 0.00170 192.168.10.161 -> 192.168.10.181 TCP D=9999 S=55189 Ack=238171286 Seq=375712662 4 60.00100 192.168.10.161 -> 192.168.10.181 TCP D=9999 S=55189 Push Ack=238171286 Seq=375712662 5 0.29901 192.168.10.161 -> 192.168.10.181 TCP D=9999 S=55189 Push Ack=238171286 Seq=375712662 6 0.57994 192.168.10.161 -> 192.168.10.181 TCP D=9999 S=55189 Push Ack=238171286 Seq=375712662 7 1.15000 192.168.10.161 -> 192.168.10.181 TCP D=9999 S=55189 Push Ack=238171286 Seq=375712662 8 2.28002 192.168.10.161 -> 192.168.10.181 TCP D=9999 S=55189 Push Ack=238171286 Seq=375712662
経過時間(sec) 間隔(RTO:sec) アクション パラメータ
0 - 接続
0 0 接続
0 0 接続 3wayハンドシェイク
送信先のNICをダウン
60.0 60.0 送信 sleep(60)
60.3 0.3 再送
60.9 0.6 再送
62.0 1.1 再送
64.4 2.3 再送

372.6 308.2 中断 _ip_abort_interval(=300s)

_ip_abort_interval を 8分に変更
# ipadm set-prop -p _ip_abort_interval=480000 tcp # ipadm show-prop -p _ip_abort_interval tcp PROTO PROPERTY PERM CURRENT PERSISTENT DEFAULT POSSIBLE tcp _ip_abort_interval rw 480000 480000 300000 500-4294967295 切断までの時間が延びている。

クライアント側の再送状況(一部省略)
# snoop -i timeout.pkt host 192.168.10.181 1 0.00000 192.168.10.161 -> 192.168.10.181 TCP D=9999 S=41853 Syn Seq=1379174424 2 0.00148 192.168.10.181 -> 192.168.10.161 TCP D=41853 S=9999 Syn Ack=1379174425 Seq=1241697769 3 0.00361 192.168.10.161 -> 192.168.10.181 TCP D=9999 S=41853 Ack=1241697770 Seq=1379174425 4 60.00100 192.168.10.161 -> 192.168.10.181 TCP D=9999 S=41853 Push Ack=1241697770 Seq=1379174425 5 0.29898 192.168.10.161 -> 192.168.10.181 TCP D=9999 S=41853 Push Ack=1241697770 Seq=1379174425 6 0.58000 192.168.10.161 -> 192.168.10.181 TCP D=9999 S=41853 Push Ack=1241697770 Seq=1379174425 7 1.15002 192.168.10.161 -> 192.168.10.181 TCP D=9999 S=41853 Push Ack=1241697770 Seq=1379174425 8 2.27999 192.168.10.161 -> 192.168.10.181 TCP D=9999 S=41853 Push Ack=1241697770 Seq=1379174425
経過時間(sec) 間隔(RTO:sec) アクション パラメータ
0 - 接続
0 0 接続
0 0 接続 3wayハンドシェイク
送信先のNICをダウン
60.0 60.0 送信 sleep(60)
60.3 0.3 再送
60.9 0.6 再送
62.1 1.2 再送
64.4 2.3 再送

552.6 488.2 中断 _ip_abort_interval(=480s)

0 件のコメント:

コメントを投稿