LinuCレベル3 プラットフォームスペシャリスト プラットフォームの最適化 問18
プラットフォームの最適化/カーネルパラメータによるネットワーク最適化カーネルパラメータnet.ipv4.tcp_max_syn_backlogの役割として適切なものはどれか。
当サイトのオリジナル問題(LinuCレベル3 プラットフォームスペシャリストの出題範囲「プラットフォームの最適化」に対応。実際の試験問題ではありません)
- ASYNを受信したが3ウェイハンドシェイクがまだ完了していないhalf-open状態の接続エントリを保持するキューの最大長を設定する
- Blisten()で待機しているソケットのaccept待ちキュー(完了した接続を格納するキュー)の最大長を設定する
- CTIME_WAIT状態の接続を新しい接続に再利用できるようにしてポートの枯渇を緩和するかどうかを設定する
- DTCP送信バッファの最小・デフォルト・最大サイズを3つの値で設定する
正解:A
解説
net.ipv4.tcp_max_syn_backlogはSYNパケットを受信したが、まだSYN-ACKへの応答待ち(half-open状態)の接続エントリを保持するキューの最大長を設定する。SYNフラッドのような状況でこの値を増やすことで接続が落とされにくくなる。
選択肢ごとの解説
- A正しい。tcp_max_syn_backlogはSYNを受信してからSYN-ACK応答待ちのhalf-open接続を保持するキューの最大長を設定する。大量接続やSYNフラッド対策として調整する
- B誤り。listen()後のaccept待ちキュー(接続完了済みの接続を格納するキュー)の最大長を設定するのはnet.core.somaxconnで、tcp_max_syn_backlogとは別。
- C誤り。TIME_WAIT状態の接続を再利用するかどうかを設定するのはnet.ipv4.tcp_tw_reuseで、tcp_max_syn_backlogとは別のパラメータ。
- D誤り。TCP送信バッファのサイズを設定するのはnet.ipv4.tcp_wmemで、tcp_max_syn_backlogとは無関係。