Provided by:
manpages-ja_0.5.0.0.20060115-1_all 
SYSCTL
これらの変数にアクセスするには、 proc/sys/net/ipv4/* ファイルを読み書-
する方法と、インターフェースに対して sysctl(2) を用いる方法がある。
加えて、ほとんどの IP sysctl は TCP にも適用でい襦 ip(7)
を参照のこと。 Boolean は整数値で、 0 以外の値 ("true")
は対応するオプションが邑、 0 値 ("false")
は無効、であることを意味する。
tcp_abort_on_overflow (Boolean; default: disabled)
接続を待ち受けているサービスが遅すぎて、受信についていけない場合に、
接続をリセットでい襪茲Δ砲垢襦
これを用いると、バーストによってオーバーフローが起こったとい法
接続を回復でい襪茲Δ砲覆襦このオプションを用いるのは、
受信デーモンを高速化でい覆ぞ豺腓法峺堕蠅垢襦廚海函
このオプションを用いると、そのサーバに接続しているクライアント
にとっては害になることがある。
tcp_adv_win_scale (integer; default: 2)
バッファリングのオーバーヘッドの計算方法を、 tcp_adv_win_scale
が正の場合は bytes/2^tcp_adv_win_scale に、 tcp_adv_win_scale
が負か 0 の場合は bytes-bytes/2^(-tcp_adv_win_scale) とする。
ソケットの受信バッファ空間はアプリケーションとカーネルで共-
される。 TCP はバッファの一部を TCP ウィンドウとして管理し、
これを受信ウィンドウとして接続の他端に通知する。
空間の残りは「アプリケーション」バッファとして用いられ、
スケジューリングやアプリケーションの遅延からネットワークを隔離する。
tcp_adv_win_scale のデフォルト値は 2 であり、
この場合アプリケーションバッファは全体の 1/4 になる。
tcp_app_win (integer; default: 31)
この変数は、TCP ウィンドウの何バイト分を
バッファリングのオーバーヘッド用に予約するかを指定する。
そのウィンドウの window/2^tcp_app_win と mss の大いい曚
(バイト単位) がアプリケーションバッファとして予約される。 0
を指定すると一切予約領域を取らない。
tcp_bic (Boolean; default: disabled)
BIC TCP 輻輳制御アルゴリズムを邑にする。 BIC-TCP
は送信側のみの変更で、 スケーラビリティと TCP 親和
(friendliness) の両方を提供しつつ、 大-
なウィンドウの下での線形な RTT 公平世鯤歉擇垢襪發里任△襦
このプロトコルでは additive increase (追加的な増加) と binary
search increase (二分探索増加) といわれる二つの仕組みを
組み合わせている。輻輳ウィンドウが大いい箸は、増分の大い
additive increase により、スケーラビリティを確保しながら 線形な
RTT 公平世鯤歉擇垢襦 輻輳ウィンドウが小さいとい砲 binary
search increase により TCP 親和世鮹成している。
tcp_bic_low_window (integer; default: 14)
BIC TCP が輻輳ウィンドウの調整を開始する閾値ウィンドウ
(パケット単位) を設定する。この閾値を下回る場合、BIC TCP
はデフォルトの TCP Reno と 同じ動作をする。
tcp_bic_fast_convergence (Boolean; default: enabled)
BIC TCP が輻輳ウィンドウの変化により速く反応するようにする。
同じコネクションを共佑垢詁鵑弔離侫蹇爾一つにまとまるのを
より速く行うようにする。
tcp_dsack (Boolean; default: enabled)
RFC 2883 の TCP Duplicate SACK のサポートを邑にする。
tcp_ecn (Boolean; default: disabled)
RFC 2884 の Explicit Congestion Notification を邑にする。
これを邑にすると、間違った振舞いをする古いルータが
経路の途中にあるような接続先に対して影響が生じ、
場合によっては接続が落ちるかもしれない。
tcp_fack (Boolean; default: enabled)
TCP Forward Acknowledgement のサポートを邑にする。
tcp_fin_timeout (integer; default: 60)
ソケットを強制的にクローズする前に、 最後の FIN
パケットを待つ時間を秒単位で指定する。 これは厳密には TCP
の仕様を満たしていないが、 DoS 攻撃 (denial of service attack)
から身を守るために必要である。 Linux 2.2 ではデフォルト値は 180
であった。
tcp_frto (Boolean; default: disabled)
TCP 再送タイムアウトからの復旧-
能を向上させたアルゴリズムである、 F-RIO を-
効にする。この機能は無線環兇覇辰妨果を発揮する。 無線環-
では、通常は、中間ルータの輻輳ではなくランダムな無線の干渉
によりパケットロスが発生する。
tcp_keepalive_intvl (integer; default: 75)
TCP keep-alive のプローブを送る間隔 (秒単位)。
tcp_keepalive_probes (integer; default: 9)
TCP keep-alive プローブの最大回数。
この回数だけ試しても接続先から反応が得られない場合は、 あ-
らめて接続を切断する。
tcp_keepalive_time (integer; default: 7200)
接続がアイドル状態になってから、keep-alive
プローブを送信するまでの時間を秒単位で指定する。 SO_KEEPALIVE
ソケットオプションが邑になっていないと keep-alive
は送られない。 デフォルト値は 7200 秒 (2 時間)。 keep-alive が-
効になっている場合、 さらにおよそ 11 分 (75 秒間隔の 9
プローブ分) 経過するとアイドル状態の接続は終了させられる。
下層にある接続追跡機構やアプリケーションでのタイムアウトは、
もっとずっと短いかもしれない。
tcp_low_latency (Boolean; default: disabled)
邑にすると、TCP スタックはスループットを高くするよりも
遅延を少なくすることを優先して判断を行う。
このオプションを無効にすると、スループットを高くすることが優先される。
このデフォルト値を変更した方がよいアプリケーションの例としては
Beowulf コンピュータクラスタが挙げられるだろう。
tcp_max_orphans (integer; default: 下)
システムが許容する、 orphan な
(どのユーザファイルハンドルにもアタッチされていない) TCP
ソケットの最大数。 この数を越えると、orphan
な接続はリセットされ、警告が表示される。
この制限が存在するのは、単純な使用不能 (denial-of-service)
攻撃を 防ぐために過ぎない。この値を小さくすることは推奨しない。
ネットワークの条件によっては、この数値を大-
くしないといけないかもしれないが、 orphan なソケットひとつあたり
64K 程度のスワップ不可能なメモリを消費することも注意せよ。
デフォルトの初期値はカーネルパラメータの NR_FILE と等しい。
この初期デフォルト値はシステムのメモリに応じて調整される。
tcp_max_syn_backlog (integer; default: 下)
接続してい討い襯ライアントから ack
を受信していない状態の接続リクエストをゥ紂爾肪屬韻觝蚤膺堯
この数値を越えると、カーネルはリクエストを捨て始める。
デフォルトの値は 256 で、 システムに充分なメモリがある (128Mb
以上) 場合は 1024 になり、 メモリが非常に少ない場合 (32 Mb 以下)
は 128 になる。 この数値を 1024 以上に増やしたい場合は、
include/net/tcp.h の TCP_SYNQ_HSIZE を
TCP_SYNQ_HSIZE*16<=tcp_max_syn_backlog のように修正し、
カーネルを再コンパイルすることを奨める。
tcp_max_tw_buckets (integer; default: 下)
システムが許容する TIME_WAIT 状態にあるソケットの最大数。
この制限が存在するのは、 単純な使用不能 (denial-of-service)
攻撃を防ぐために過ぎない。 デフォルト値は NR_FILE*2
で、システムのメモリに応じて調整される。
この数値を越えると、そのようなソケットはクローズされ、警告が表示される。
tcp_mem
これは 3 つの整数 [low, pressure, high]
からなるベクトル値である。 これらは TCP
がメモリ使用量を追跡するために用いられる。
デフォルトはブート時に利用でい襯瓮皀蠅領未ら計算される。
low - TCP
は、グローバルにアロケートしたページがこの数値以下の場合は、
メモリアロケーションを調整しない。
pressure - TCP
がアロケートしたメモリがこの数値分のページ数を越えると、 TCP
はメモリ消費を抑えるようになる。 アロケートしたページ数が low
以下になると、このメモリ圧迫状態から脱する。
high - TCP がグローバルに割り当てるページ数の最大値。
この値はカーネルによって課されるあらゆる制限よりも優先される。
tcp_orphan_retries (integer; default: 8)
こちらからクローズした接続について、
先方をプローブする最大試行数。
tcp_reordering (integer; default: 3)
TCP パケットストリームでパケット順序の逆転が発生しただけであり、
パケットロスが起こったとはみなさない、パケット数の最大値。
この値を超えてパケットの順序逆転が起こると、パケットロスが生じたと
みなし、slow start に入る。 この数値は変更しないほうが良い。
これは、接続中のパケットの並び替えによって生じる
不必要な速度低下や再送を最小化するように設計された、
パケット並び替え (packet reordering)
の検知メトリックなのである。
tcp_retrans_collapse (Boolean; default: enabled)
再送の際にフルサイズのパケットを送ろうとする。
tcp_retries1 (integer; default: 3)
普通に確立されている接続上に、 TCP がネットワーク層を巻-
込まずに再送を試みる回数。
再送がこの回数を越えると、まず最初に、
新しい再送を送る前に可能ならネットワーク層に経路を更新させる。
デフォルトは RFC が指定している最少数である 3。
tcp_retries2 (integer; default: 15)
確立状態の接続に、この回数 TCP パケットの再送信を
行なってもだめな場合はあい蕕瓩襦 デフォルト値は 15 で、これは
(再送のタイムアウトに依存するが) およそ 13〜30
分程度の期間に対応する。 RFC 1122 は最小の限界を 100
秒と置いているが、 これはたいていの場合には短すぎると思われる。
tcp_rfc1337 (Boolean; default: disabled)
TCP の動作を RFC 1337 に準拠させる。 無効にすると、TIME_WAIT
状態のとい RST が受信された場合、 TIME_WAIT
期間の終了を待たずにそのソケットを直ちにクローズする。
tcp_rmem
これは 3 つの整数 [min, default, max] からなるベクトル値である。
これらは TCP が受信バッファサイズを調整するために用いられる。
TCP は、システムで利用でい襯瓮皀蠅鳳じて、
受信バッファのサイズをこれらの sysctl 変数の範囲で
以下に示すデフォルトから動的に調整する。
min - 各 TCP ソケットが用いる受信バッファの最小サイズ。
デフォルト値は 4K バイトで、メモリの少ないシステムでは PAGE_SIZE
バイトに減らされる。 この値は、メモリ圧迫モードにおいても、
このサイズの割り当てが成功することを保証するために用いられる。
これは、 SO_RCVBUF
を用いてソケットの最低受信バッファサイズを宣言する際には用いられない。
default - TCP ソケットの受信バッファのデフォルトサイズ。
この値は、すべてのプロトコルに対して定義されている、
ジェネリックなグローバルのデフォルトバッファサイズ
net.core.rmem_default より優先される。 デフォルト値は 87380
バイトで、メモリの少ないシステムでは 43689 にまで減らされる。
大い兵信バッファサイズが必要な場合は、 この値を増やすべい任△
(すべてのソケットに影響する)。 大い TCP
ウィンドウを用いるには、 net.ipv4.tcp_window_scaling を-
効にしておかなければならない (デフォルトは邑)。
max - 各 TCP ソケットで用いる受信バッファの最大サイズ。
この値よりもグローバルの net.core.rmem_max が優先される。
これは、 SO_RCVBUF
を用いてソケットの受信バッファサイズ制限を宣言する際には用いられない。
デフォルト値は 87380*2 バイトで、メモリの少ないシステムでは
87380 にまで減らされる。
tcp_sack (Boolean; default: enabled)
RFC 2018 の TCP Selective Acknowledgements を邑にする。
tcp_stdurg (Boolean; default: disabled)
このオプションを邑にすると、 TCP 緊急ポインタ (urgent-pointer)
フィールドを RFC 1122 に従った解釈を行う。
この解釈に従うと、緊急ポインタは緊急データの最後のバイトを指す。
このオプションを無効にすると、緊急ポインタの解釈が BSD
互換の方法で 行われる:
緊急ポインタは緊急データの後の最初のバイトを指す。
このオプションを邑にすると、相互運用-
に問題が生じるかもしれない。
tcp_synack_retries (integer; default: 5)
passive な TCP 接続の SYN/ACK セグメントで再送を試みる最大数。
この数値は 255 よりも大いすべい任呂覆ぁ
tcp_syncookies (Boolean)
CONFIG_SYNCOOKIES をつけてコンパイルしておかなければならない。
ソケットのバックログゥ紂爾オーバーフローすると、 syncookies
が送信される。 syncookies 機能は、SYN flood
攻撃からソケットを守ろうとする。
これはいずれにしても、最終手段として用いるべい任△襦 これは TCP
プロトコルに違反しており、 TCP 拡張のような、TCP
の他の部分と衝突してしまう。
クライアントやリレーで問題が起こることもある。
過負荷や設定間違いによって負荷の大-
な状態にあるサーバを調整して救うための 機構とみなすべい任呂覆ぁ
そのような用途には、代わりに tcp_max_syn_backlog,
tcp_synack_retries, tcp_abort_on_overflow
などの使用を考えること。
tcp_syn_retries (integer; default: 5)
アクティブな TCP 接続に初期 SYN の再送を試みる最大回数。
この数値は 255 よりも大いすべい任呂覆ぁ デフォルトの値は 5
で、およそ 180 秒に対応する。
tcp_timestamps (Boolean; default: enabled)
RFC 1323 の TCP timestamps を邑にする。
tcp_tw_recycle (Boolean; default: disabled)
TIME-WAIT ソケットの素早い再利用を邑にする。 このオプションを-
効にすると、 NAT (ネットワークアドレス変換)
を用いていると問題が生じるので、 あまり推奨しない。
tcp_tw_reuse (Boolean; default: disabled)
プロトコルの面から見て問題ない場合に新規コネクションに TIME-WAIT
状態のソケットを再利用することを許可する。技術的に詳しい人の助言や
要請なしにこのオプションを変更すべい任呂覆ぁ
tcp_window_scaling (Boolean; default: disabled)
RFC 1323 の TCP ウィンドウスケーリングを邑にする。
この機能を用いると、接続先が対応していれば、 TCP 接続で大い
(64K 以上の) ウィンドウが使えるようになる。 通常は TCP
ヘッダのウインドウ長フィールドは 16 ビットなので、
ウィンドウサイズは 64K バイト以下に限られる。 もっと大-
なウィンドウを使いたい場合は、
アプリケーションはソケットバッファのサイズを増やして、
ウィンドウスケーリングのオプションを利用すればよい。
tcp_window_scaling を無効にしていると、 TCP
は他端との接続設定の際に、
ウィンドウスケーリングのネゴシエーションを行なわない。
tcp_vegas_cong_avoid (Boolean; default: disabled)
TCP Vegas 輻輳制御アルゴリズムを邑にする。 TCP Vegas
は帯域を推測することで輻輳の起こり始めを予想するように TCP
の送信側のみに変更を加えたものである。 TCP Vegas
は輻輳ウィンドウを修正することで、送信レートを調整する。 TCP
Vegas は TCP Reno と比べてパケットロスは少ないが、 TCP Reno
ほど積極的な挙動はしない。
tcp_westwood (Boolean; default: disabled)
TCP Westwood+ 輻輳制御アルゴリズムを邑にする。 TCP Westwood+ は
TCP 輻輳制御の税修鮑播化するように TCP Reno の
プロトコルスタックの送信側のみに修正を加えたものである。
輻輳が起こった後で、輻輳ウィンドウや slow start の閾値を
通信両端間の帯域の推測に基づいて設定する。 この推測を使って、TCP
Westwood+ は輻輳が発生した時に使っていた 帯域を考慮に入れた slow
start の閾値と輻輳ウィンドウを設定する。 TCP Westwood+ は、-
線ネットワークにおける TCP Reno の公平 (fairness)
と、無線リンクでのスループットを大い向上する。
tcp_wmem
これは 3 つの整数 [min, default, max] からなるベクトル値である。
これらは TCP が送信バッファサイズを調整するために用いられる。
TCP は、システムで利用でい襯瓮皀蠅鳳じて、
送信バッファのサイズをこれらの sysctl 変数の範囲で
以下に示すデフォルトから動的に調整する。
min - 各 TCP ソケットが用いる送信バッファの最小サイズ。
デフォルト値は 4K である。
この値は、メモリ圧迫モードにおいても、
このサイズ以下の割り当てが成功することを保証するために用いられる。
これは、 SO_SNDBUF
を用いてソケットの最低送信バッファサイズを宣言する際には用いられない。
default - TCP ソケットの送信バッファのデフォルトサイズ。
この値は、すべてのプロトコルに対して定義されている、
ジェネリックなグローバルのデフォルトバッファサイズ
net.core.rmem_default より優先される。 デフォルト値は 16K
バイトである。 大い柄信バッファサイズが必要な場合は、
この値を増やすべい任△ (すべてのソケットに影響する)。 大い TCP
ウィンドウを用いるには、 net.ipv4.tcp_window_scaling を-
効にしておかなければならない (デフォルトは邑)。
max - 各 TCP ソケットで用いる送信バッファの最大サイズ。
この値よりもグローバルの net.core.wmem_max が優先される。 これは
SO_SNDBUF
を用いてソケットの送信バッファサイズ制限を宣言する際には用いられない。
デフォルト値は 128K バイトで、システムのメモリサイズに応じて 64K
にまで減らされる。
ン
TCP ソケットのオプションは、 オプションレベル引数に IPPROTO_TCP
を指定した setsockopt(2) で設定でぁ getsockopt(2) で取得でい襦
さらに、ほとんどの IPPROTO_IP ソケットオプションも TCP
ソケットに対して邑である。詳細は ip(7) を見よ。
TCP_CORK
セットされると、 partial フレームを送信しない。
このオプションが解除されると、 ゥ紂璽ぅ鵐阿気譴 partial
フレームが送られる。これは sendfile(2)
を呼ぶ前にヘッダを前置したり、
スループットを最適化したい場合に便利である。 現在の実装では、
TCP_CORK で出力を抑えることがでい觧間の上限は 200
ミリ秒である。 この上限に達すると、-
ューイングされたデータは自動的に送信される。 Linux 2.5.71
以降においてのみ、このオプションを TCP_NODELAY
と同時に用いることがでい襦 移植-
の必要なプログラムではこのオプションを用いるべい任呂覆ぁ
TCP_DEFER_ACCEPT
これを用いると、リスナはデータがソケットに到着した時のみ目覚めるようになる。
整数値 (秒) をとり、 TCP
が接続を完了しようと試みる回数を制限でい襦 移植-
の必要なプログラムではこのオプションを用いるべい任呂覆ぁ
TCP_INFO
このソケットの情報を収集するのに用いる。 カーネルは
/usr/include/linux/tcp.h ファイルで定義されている struct
tcp_info を返す。 移植-
の必要なプログラムではこのオプションを用いるべい任呂覆ぁ
TCP_KEEPCNT
接続を落とす前に TCP が試みる keepalive プローブの最大回数。
移植世良要なプログラムではこのオプションを用いるべい任呂覆ぁ
TCP_KEEPIDLE
この時間 (秒単位) を越えて接続がアイドル状態に留まっていると、
このソケットに SO_KEEPALIVE
ソケットオプションが設定されている場合、 TCP は keepalive
プローブを送りはじめる。 移植-
の必要なプログラムではこのオプションを用いるべい任呂覆ぁ
TCP_KEEPINTVL
各 keepalive プローブの間隔 (秒単位)。 移植-
の必要なプログラムではこのオプションを用いるべい任呂覆ぁ
TCP_LINGER2
orphan された FIN_WAIT2 状態のソケットの寿命。
このオプションを用いると、システムワイドな sysctl
tcp_fin_timeout の値を、このソケットに対してのみ変更でい襦
socket(7) レベルのオプション SO_LINGER と混同しないこと。 移植-
の必要なプログラムではこのオプションを用いるべい任呂覆ぁ
TCP_MAXSEG
送出 TCP パケットの最大セグメントサイズ。
このオプションを接続確立の前に設定すると、
初期パケットで他端にアナウンスする MSS の値も変化する。
インターフェースの MTU よりも大い (あるいは大いなってしまった)
値は効果を持たない。 また TCP
は、この値よりも最小・最大の制限の方を優先する。
TCP_NODELAY
設定すると Nagle アルゴリズムを無効にする。
すなわち、データ量が少ない場合でも
各セグメントは可能な限り早く送信される。 設定されていないと、
送信する分だけ溜まるまでデータはバッファされ、
小さなパケットを頻繁に送らずにすみ、 ネットワークを邑に利用で-
る。 このオプションは TCP_CORK により上書い気譴襦しかしながら、
TCP_CORK
が設定されている場合であっても、このオプションを設定すると、
送信待ちの出力を明示的に掃そ个 (flush) ことになる。
TCP_QUICKACK
設定されていると quickack モードを-
効にし、クリアされると無効にする。 通常の TCP 動作では ack
は必要に応じて遅延されるのに対し、 quickack モードでは ack
はすぐに送信される。 このフラグは永続的なものではなく、 quickack
モードから/モードへ切り替えるためのものである。 これ以降の TCP
プロトコルの動作によっては、 内部のプロトコル処理や、遅延 ack
タイムアウトの発生、 データ転送などの要因によって、 再び
quickack から出たり入ったりする。 移植-
の必要なプログラムではこのオプションを用いるべい任呂覆ぁ
TCP_SYNCNT
接続の試行を中止させる前に TCP が送る SYN 再送数を設定する。
これは 255 より大いはでい覆ぁ 移植-
の必要なプログラムではこのオプションを用いるべい任呂覆ぁ
TCP_WINDOW_CLAMP
絞鵑垢襯Εンドウのサイズをこの値に固定する。
カーネルによって最小サイズは SOCK_MIN_RCVBUF/2
に制限されている。 このオプションは移植-
の必要なコードでは用いるべい任覆ぁ
IOCTL
以下の ioctl(2) 呼び出しは value に情報を入れて返す。
正しい書式は以下の通り。
int value;
error = ioctl(tcp_socket, ioctl_type, &value);
ioctl_type は以下のいずれか一つである:
SIOCINQ
受信バッファのゥ紂爾砲△襦△泙斉匹鵑任い覆ぅ如璽燭領未鯤屬后
ソケットは LISTEN 状態にあってはならず、 さもないとエラー
(EINVAL) が返る。
SIOCATMARK
受信データストリームが緊急マークの位置であれば、真を返す (つまり
value が 0 以外)。
SO_OOBINLINE ソケットオプションが設定されていて、 SIOCATMARK
が真を返した場合、次のソケットからの読み込みでは緊急データが
返される。 SO_OOBINLINE ソケットオプションが設定されておらず、
SIOCATMARK
が真を返した場合、次のソケットからの読み込みでは緊急データに
続くデータが返される (実際に緊急データを読み込むには
recv(MSG_OOB) とフラグをつける必要がある)。
データの一回の読み込みでは緊急マークを跨がっての読み込みは行われない。
アプリケーションが緊急データの存在を (exceptfds 引た瑤鮖箸辰)
select(2) 経由または SIGURG
シグナルの配送を通じて知らされた場合、 SIOCATMARK
のチェックと読み込み (何バイト読み込み要求をしてもよい) を
SIOCATMARK
が偽を返さなくなるまで繰り返し行うことで、緊急マークの位置まで
読み進めることがでい襦
SIOCOUTQ
ソケットの送信ゥ紂爾忙弔辰討い詭ち信データの量を返す。
ソケットは LISTEN 状態にあってはならない。 LISTEN
状態の場合にはエラー (EINVA) となる。
理
ネットワークエラーが起こると、 TCP はパケットの再送を試みる。
何回かやっても成功しなければ、この接続に対して ETIMEOUT
エラーか最後に受信したエラーが返される。
アプリケーションによっては、もっと早くエラーを知らせてほしい場合がある。
これには IPPROTO_IP レベルの IP_RECVERR
ソケットオプションを用いると良い。このオプションが邑になっていると、
到着したエラーはすべてただちにユーザープログラムに渡される。
このオプションは慎重に用いること -- ルーティングの変更など、
通常ありうるネットワーク状態に対して TCP をより脆弱にしてしまう。
意
TCP には本当の意味での帯域外データ (out-of-band data) はない。 TCP
が持つのは緊急データである。つまり Linux においては、 接続先が
(新しいやり方の) 帯域外データを送ってい疹豺隋 (古いやり方の)
緊急データは通常のデータとしてストリームに挿入されることになる (これは
SO_OOBINLINE がセットされている場合でも同様である)。 これは BSD
ベースのスタックとは異なる。
Linux は、デフォルトでは urgent ポインタフィールドの解釈に BSD
互換の方法を用いる。これは RFC 1122 に反しているが、
他のスタックと同時に動作させるにはやむを得ない。これは tcp_stdurg
sysctl によって変更でい襦
ー
EPIPE 接続先が予期しなかったかたちでソケットをクローズした。
またはシャットダウンされたソケットに読み込みが実行された。
ETIMEDOUT
接続先が、何回かデータを再送しても反応しない。
EAFNOTSUPPORT
sin_family に渡されたソケットアドレスのタイプが AF_INET
ではなかった。
ip(7)
で定義されているエラーや、ジェネリックなソケット層におけるエラーも TCP
に返されることがある。
グ
まだ説明されていないエラーがある。
IPv6 に関する欺劼ない。
ン
Explicit Congestion Notification、zero-copy 送信ファイル、
並び替えのサポート、SACK 拡張 (DSACK) などのサポートは 2.4
で導入された。 フォワード確認 (FACK)、TIME_WAIT リサイクル、 接続ごとの
keepalive などに対するソケットオプションや sysctl は 2.3 で導入された。
本文中で与えた sysctl 変数のデフォルト値と解説は、 2.4
カーネル向けのものである。
者
この man ページは最初 Andi Kleen によって書かれた。 Alexey Kuznetsov
の文書 Documentation/networking/ip-sysctls.txt の情報を元に、Nivedita
Singhvi が 2.4 向けに更新した。
目
accept(2), bind(2), connect(2), getsockopt(2), listen(2), recvmsg(2),
sendfile(2), sendmsg(2), socket(2), sysctl(2), ip(7), socket(7)
RFC 793: TCP の仕様。
RFC 1122: TCP の要求事項と Nagle アルゴリズムの欺辧
RFC 1323: TCP のタイムスタンプ・ウィンドウスケーリング各オプション。
RFC 1644: TIME_WAIT assassination hazard に関する欺辧
RFC 2481: Explicit Congestion Notification に関する欺辧
RFC 2581: TCP 輻輳制御アルゴリズム。
RFC 2018 と RFC 2883: SACK とその拡張。