Show page source of internal22-296-TCPスロータイマ #25461

[[PageNavi(internal22-navi)]]

{{{ comment
h2w-title:TCPスロータイマ
}}}
 

== TCPスロータイマ == #SECTION07892000000000000000

起動間隔の長い以下の処理はTCPスロータイマ機能を用いて一元的に管理されている。TCPスロータイマはTCPプロトコル内に一つだけ存在する。TCPスロータイマハンドラ(tcp_slttimer_handler関数)は、スロータイマテーブル(tcp_slt_array)に登録されている下記項目の関数を呼び出す。

||スロット || 起動関数 || 説明 ||
||TCP_SLT_SYNACK || tcp_syn_recv_timer ||	コネクション確立時のSYN+ACKパケットの再送||
|| TCP_SLT_KEEPALIVE || tcp_keep_alive ||	キープアライブパケットの送出。||
|| TCP_SLT_TWKILL || tcp_twkill ||	TIME_WAITソケットの削除||

  *  tcp_inc_slow_timer関数 
    *  TCPスロータイマの起動要求回数を1増やす
    *  登録されているもののうち最も起動時刻が近いものを選び、	その時刻にtcp_sltimer_handler関数が起動されるように	登録する(mod_timer関数, add_timer関数)。 
  *  tcp_dec_slow_timer関数 
    *  TCPスロータイマの起動要求回数を1減らす 
  *  tcp_sltimer_handler関数 
    *  スロータイマテーブル(tcp_slt_array)に登録されているもののうち、	起動要求時間に達した項目の関数を呼び出す。
    *  登録されているもののうち最も起動時刻が近いものを選び、	その時刻にtcp_sltimer_handler関数が起動されるように	再登録する(mod_timer関数)。 
  *  tcp_keep_alive関数 
    *  接続先から強制的にACKを送り返させるために、一つ前の(古い)	シーケンス番号でサイズが0のパケットを相手先に	送りつける(tcp_write_wakeup関数)。
    *  一定回数tcp_keep_alive関数が起動される間、接続先から	ACKが戻って来なければソケットの状態をTCP_CLOSEにする。 

----

''(NIS)HirokazuTakahashi [[BR]]2000年06月11日 (日) 22時29分57秒 JST''1

[[PageNavi(internal22-navi)]]