OSDN Git Service

Update releases for LDP v3.76
[linuxjm/LDP_man-pages.git] / release / man7 / tcp.7
index b0f6a26..401a4e7 100644 (file)
@@ -1,8 +1,14 @@
 .\" This man page is Copyright (C) 1999 Andi Kleen <ak@muc.de>.
+.\" and Copyright (C) 2008 Michael Kerrisk <mtk.manpages@gmail.com>
+.\" Note also that many pieces are drawn from the kernel source file
+.\" Documentation/networking/ip-sysctl.txt.
+.\"
+.\" %%%LICENSE_START(VERBATIM_ONE_PARA)
 .\" Permission is granted to distribute possibly modified copies
 .\" of this page provided the header is included verbatim,
 .\" and in case of nontrivial modification author and date
 .\" of the modification is added to the header.
+.\" %%%LICENSE_END
 .\"
 .\" 2.4 Updates by Nivedita Singhvi 4/20/02 <nivedita@us.ibm.com>.
 .\" Modified, 2004-11-11, Michael Kerrisk and Andries Brouwer
 .\"     be more or less up to date and complete as at Linux 2.6.27
 .\"     (other than the remaining FIXMEs in the page source below).
 .\"
+.\" FIXME The following need to be documented
+.\"    TCP_MD5SIG (2.6.20)
+.\"        commit cfb6eeb4c860592edd123fdea908d23c6ad1c7dc
+.\"        Author was yoshfuji@linux-ipv6.org
+.\"        Needs CONFIG_TCP_MD5SIG
+.\"        From net/inet/Kconfig
+.\"        bool "TCP: MD5 Signature Option support (RFC2385) (EXPERIMENTAL)"
+.\"        RFC2385 specifies a method of giving MD5 protection to TCP sessions.
+.\"        Its main (only?) use is to protect BGP sessions between core routers
+.\"        on the Internet.
+.\"
+.\"        There is a TCP_MD5SIG option documented in FreeBSD's tcp(4),
+.\"        but probably many details are different on Linux
+.\"        http://thread.gmane.org/gmane.linux.network/47490
+.\"        http://www.daemon-systems.org/man/tcp.4.html
+.\"        http://article.gmane.org/gmane.os.netbsd.devel.network/3767/match=tcp_md5sig+freebsd
+.\"    TCP_COOKIE_TRANSACTIONS (2.6.33)
+.\"        commit 519855c508b9a17878c0977a3cdefc09b59b30df
+.\"        Author: William Allen Simpson <william.allen.simpson@gmail.com>
+.\"        commit e56fb50f2b7958b931c8a2fc0966061b3f3c8f3a
+.\"        Author: William Allen Simpson <william.allen.simpson@gmail.com>
+.\"
+.\"        REMOVED in Linux 3.10
+.\"            commit 1a2c6181c4a1922021b4d7df373bba612c3e5f04
+.\"            Author: Christoph Paasch <christoph.paasch@uclouvain.be>
+.\"
+.\"    TCP_THIN_LINEAR_TIMEOUTS (2.6.34)
+.\"        commit 36e31b0af58728071e8023cf8e20c5166b700717
+.\"        Author: Andreas Petlund <apetlund@simula.no>
+.\"    TCP_THIN_DUPACK (2.6.34)
+.\"        commit 7e38017557bc0b87434d184f8804cadb102bb903
+.\"        Author: Andreas Petlund <apetlund@simula.no>
+.\"    TCP_REPAIR (3.5)
+.\"        commit ee9952831cfd0bbe834f4a26489d7dce74582e37
+.\"        Author: Pavel Emelyanov <xemul@parallels.com>
+.\"    TCP_REPAIR_QUEUE (3.5)
+.\"        commit ee9952831cfd0bbe834f4a26489d7dce74582e37
+.\"        Author: Pavel Emelyanov <xemul@parallels.com>
+.\"    TCP_QUEUE_SEQ (3.5)
+.\"        commit ee9952831cfd0bbe834f4a26489d7dce74582e37
+.\"        Author: Pavel Emelyanov <xemul@parallels.com>
+.\"    TCP_REPAIR_OPTIONS (3.5)
+.\"        commit b139ba4e90dccbf4cd4efb112af96a5c9e0b098c
+.\"        Author: Pavel Emelyanov <xemul@parallels.com>
+.\"     TCP_FASTOPEN (3.6)
+.\"         (Fast Open server side implementation completed in 3.7)
+.\"        http://lwn.net/Articles/508865/
+.\"     TCP_TIMESTAMP (3.9)
+.\"        commit 93be6ce0e91b6a94783e012b1857a347a5e6e9f2
+.\"        Author: Andrey Vagin <avagin@openvz.org>
+.\"     TCP_NOTSENT_LOWAT (3.12)
+.\"        commit c9bee3b7fdecb0c1d070c7b54113b3bdfb9a3d36
+.\"        Author: Eric Dumazet <edumazet@google.com>
+.\"
 .\"*******************************************************************
 .\"
 .\" This file was generated with po4a. Translate the source file.
 .\"
 .\"*******************************************************************
-.TH TCP 7 2012\-03\-20 Linux "Linux Programmer's Manual"
+.\"
+.\" Japanese Version Copyright (c) 1999 NAKANO Takeo all rights reserved.
+.\" Translated 1999-12-06, NAKANO Takeo <nakano@apm.seikei.ac.jp>
+.\" Updated 2002-11-15, NAKANO Takeo
+.\" Updated 2005-02-21, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>
+.\" Updated 2005-09-07, Akihiro MOTOKI
+.\" Updated 2005-12-26, Akihiro MOTOKI
+.\" Updated 2006-07-19, Akihiro MOTOKI, LDP v2.36
+.\" Updated 2008-08-07, Akihiro MOTOKI, LDP v3.05
+.\" Updated 2008-12-31, Akihiro MOTOKI, LDP v3.15
+.\" Updated 2009-03-01, Akihiro MOTOKI, LDP v3.19
+.\" Updated 2012-05-01, Akihiro MOTOKI <amotoki@gmail.com>
+.\" Updated 2013-05-01, Akihiro MOTOKI <amotoki@gmail.com>
+.\" Updated 2013-07-22, Akihiro MOTOKI <amotoki@gmail.com>
+.\"
+.TH TCP 7 2014\-03\-31 Linux "Linux Programmer's Manual"
 .SH 名前
 tcp \- TCP プロトコル
 .SH 書式
@@ -96,7 +171,7 @@ ACK が遅延 ACK (delayed acknowledgment) を相殺するための 2 セグメ
 を 2 増やすことができる。
 .RE
 .TP 
-\fItcp_abort_on_overflow\fP (Boolean; default: disabled; Linux 2.4 以降)
+\fItcp_abort_on_overflow\fP (ブール値; デフォルト: 無効; Linux 2.4 以降)
 .\" Since 2.3.41
 接続を待ち受けているサービスが遅すぎて、受信についていけない場合に、 接続をリセットできるようにする。
 これを用いると、バーストによってオーバーフローが起こったときに、 接続を回復できるようになる。このオプションを用いるのは、
@@ -115,17 +190,25 @@ ACK が遅延 ACK (delayed acknowledgment) を相殺するための 2 セグメ
 .TP 
 \fItcp_allowed_congestion_control\fP (String; default: see text; Linux 2.4.20 以降)
 .\" The following is from 2.6.28-rc4: Documentation/networking/ip-sysctl.txt
-.\" FIXME How are the items in this delimited? Null bytes, spaces, commas?
 非特権プロセスで利用できる輻輳制御アルゴリズムの選択肢を表示/設定する (\fBTCP_CONGESTION\fP ソケットオプションの説明を参照のこと)。
-このリストは \fItcp_available_congestion_control\fP で表示されるリストの部分集合となる。
-このリストのデフォルト値は、"reno" と \fItcp_congestion_control\fP のデフォルト設定をあわせたものとなる。
+このリストの要素はホワイトスペースで区切られ、改行文字で終端される。 このリストは
+\fItcp_available_congestion_control\fP で表示されるリストの部分集合となる。 このリストのデフォルト値は、"reno"
+と \fItcp_congestion_control\fP のデフォルト設定をあわせたものとなる。
+.TP 
+\fItcp_autocorking\fP (ブール値; デフォルト: 有効; Linux 3.14 以降)
+.\" commit f54b311142a92ea2e42598e347b84e1655caf8e3
+.\" Text heavily based on Documentation/networking/ip-sysctl.txt
+このオプションを有効にすると、 送信総パケット数を減らすため、 カーネルは小さな write (連続する \fBwrite\fP(2) や
+\fBsendmsg\fP(2) の呼び出し) を可能な限り結合しようとする。 パケットの結合が行われるのは、そのフローの前のパケットが少なくとも一つは
+qdisc キューかデバイスの送信キューで送信待ちの場合である。 このオプションが有効な場合でも \fBTCP_CORK\fP
+オプションを使うことができ、アプリケーションがソケットの「コルク解除」(送信待ち状態の解除)
+をいつどのように行えばよいか分かっている場合には、最適な動作をさせることができる。
 .TP 
 \fItcp_available_congestion_control\fP (String; read\-only; Linux 2.4.20 以降)
 .\" The following is from 2.6.28-rc4: Documentation/networking/ip-sysctl.txt
-.\" FIXME How are the items in this delimited? Null bytes, spaces, commas?
-登録されている輻輳制御アルゴリズムのリストを表示する。 このリストに載っているものだけが、
-\fItcp_allowed_congestion_control\fP に表示される。 他の輻輳制御アルゴリズムがモジュールとして利用可能だが、
-モジュールがロードされていないこともある。
+登録されている輻輳制御アルゴリズムのリストを表示する。 このリストの要素はホワイトスペースで区切られ、改行文字で終端される。
+このリストに載っているものだけが、 \fItcp_allowed_congestion_control\fP に表示される。
+他の輻輳制御アルゴリズムがモジュールとして利用可能だが、 モジュールがロードされていないこともある。
 .TP 
 \fItcp_app_win\fP (integer; default: 31; Linux 2.4 以降)
 .\" Since 2.4.0-test7
@@ -142,7 +225,7 @@ ACK が遅延 ACK (delayed acknowledgment) を相殺するための 2 セグメ
 パケット化レイヤの Path MTU discovery (MTU probing) で、 \fIsearch_low\fP の初期値と使用される値。 MTU
 probing が有効な場合、この値はその接続の MSS の初期値となる。
 .TP 
-\fItcp_bic\fP (Boolean; default: disabled; Linux 2.4.27/2.6.6 から 2.6.13 まで)
+\fItcp_bic\fP (ブール値; デフォルト: 無効; Linux 2.4.27/2.6.6 から 2.6.13 まで)
 .\"
 .\" The following is from 2.6.12: Documentation/networking/ip-sysctl.txt
 BIC TCP 輻輳制御アルゴリズムを有効にする。 BIC\-TCP は送信側のみの変更で、 スケーラビリティと TCP 親和性
@@ -157,7 +240,7 @@ additive increase (追加的な増加) と binary search increase (二分探索
 BIC TCP が輻輳ウィンドウの調整を開始する閾値ウィンドウ (パケット単位)  を設定する。この閾値を下回る場合、BIC TCP はデフォルトの
 TCP Reno と 同じ動作をする。
 .TP 
-\fItcp_bic_fast_convergence\fP (Boolean; default: enabled; Linux 2.4.27/2.6.6 以降 2.6.13 まで)
+\fItcp_bic_fast_convergence\fP (ブール値; デフォルト: 有効; Linux 2.4.27/2.6.6 以降 2.6.13 まで)
 BIC TCP が輻輳ウィンドウの変化により速く反応するようにする。 同じコネクションを共有する二つのフローが一つにまとまるのを
 より速く行うようにする。
 .TP 
@@ -170,16 +253,16 @@ BIC TCP が輻輳ウィンドウの変化により速く反応するようにす
 システムに DMA コピーエンジンが存在し、カーネルで \fBCONFIG_NET_DMA\fP オプションが有効になっている場合に、 DMA
 コピーエンジンにオフロードされるソケットの読み込みサイズの下限値 (バイト単位)。
 .TP 
-\fItcp_dsack\fP (Boolean; default: enabled; Linux 2.4 以降)
+\fItcp_dsack\fP (ブール値; デフォルト: 有効; Linux 2.4 以降)
 .\" Since 2.4.0-test7
 RFC\ 2883 の TCP Duplicate SACK のサポートを有効にする。
 .TP 
-\fItcp_ecn\fP (Boolean; default: disabled; Linux 2.4 以降)
+\fItcp_ecn\fP (ブール値; デフォルト: 無効; Linux 2.4 以降)
 .\" Since 2.4.0-test7
 RFC\ 2884 の Explicit Congestion Notification を有効にする。
 これを有効にすると、間違った振舞いをする古いルータが 経路の途中にあるような接続先に対して影響が生じ、 場合によっては接続が落ちるかもしれない。
 .TP 
-\fItcp_fack\fP (Boolean; default: enabled; Linux 2.2 以降)
+\fItcp_fack\fP (ブール値; デフォルト: 有効; Linux 2.2 以降)
 .\" Since 2.1.92
 TCP Forward Acknowledgement のサポートを有効にする。
 .TP 
@@ -236,14 +319,14 @@ TCP keep\-alive プローブの最大回数。 この回数だけ試しても接
 \fItcp_keepalive_time\fP (integer; default: 7200; Linux 2.2 以降)
 .\" Since 2.1.43
 接続がアイドル状態になってから、keep\-alive プローブを送信するまでの時間を秒単位で指定する。 \fBSO_KEEPALIVE\fP
\82½ã\82±ã\83\83ã\83\88ã\82ªã\83\97ã\82·ã\83§ã\83³ã\81\8cæ\9c\89å\8a¹ã\81«ã\81ªã\81£ã\81¦ã\81\84ã\81ªã\81\84ã\81¨ keep\-alive ã\81¯é\80\81ã\82\89ã\82\8cã\81ªã\81\84。 デフォルト値は 7200 秒 (2 時間)。 keep\-alive
\82½ã\82±ã\83\83ã\83\88ã\82ªã\83\97ã\82·ã\83§ã\83³ã\81\8cæ\9c\89å\8a¹ã\81«ã\81ªã\81£ã\81¦ã\81\84ã\82\8bå ´å\90\88ã\81®ã\81¿ keep\-alive ã\81¯é\80\81ä¿¡ã\81\95ã\82\8cã\82\8b。 デフォルト値は 7200 秒 (2 時間)。 keep\-alive
 が有効になっている場合、 さらにおよそ 11 分 (75 秒間隔の 9 プローブ分)  経過するとアイドル状態の接続は終了させられる。
 
 .\"
 .\" The following is from 2.6.12: Documentation/networking/ip-sysctl.txt
 下層にある接続追跡機構やアプリケーションでのタイムアウトは、 もっとずっと短いかもしれない。
 .TP 
-\fItcp_low_latency\fP (Boolean; default: disabled; Linux 2.4.21/2.6 以降)
+\fItcp_low_latency\fP (ブール値; デフォルト: 無効; Linux 2.4.21/2.6 以降)
 .\" Since 2.4.21/2.5.60
 有効にすると、TCP スタックはスループットを高くするよりも 遅延を少なくすることを優先して判断を行う。
 このオプションを無効にすると、スループットを高くすることが優先される。 このデフォルト値を変更した方がよいアプリケーションの例としては Beowulf
@@ -271,7 +354,7 @@ TCP_SYNQ_HSIZE*16<=tcp_max_syn_backlog のように修正し、 カーネルを
 攻撃を防ぐために過ぎない。 デフォルト値は NR_FILE*2 で、システムのメモリに応じて調整される。
 この数値を越えると、そのようなソケットはクローズされ、警告が表示される。
 .TP 
-\fItcp_moderate_rcvbuf\fP (Boolean; default: enabled; Linux 2.4.17/2.6.7 以降)
+\fItcp_moderate_rcvbuf\fP (ブール値; デフォルト: 有効; Linux 2.4.17/2.6.7 以降)
 .\" The following is from 2.6.28-rc4: Documentation/networking/ip-sysctl.txt
 有効にすると、TCP は受信バッファの自動調整を行う。 具体的には、 (\fItcp_rmem[2]\fP を超えない範囲で)
 バッファの大きさを自動的に変化させ、 その経路で最大のスループットを達成するのに必要な大きさに合わせようとする。
@@ -306,7 +389,7 @@ TCP がグローバルに割り当てるページ数の最大値。 この値は
 常に有効にする。 MSS の初期値として \fItcp_base_mss\fP が使用される。
 .RE
 .TP 
-\fItcp_no_metrics_save\fP (Boolean; default: disabled; Linux 2.6.6 以降)
+\fItcp_no_metrics_save\fP (ブール値; デフォルト: 無効; Linux 2.6.6 以降)
 .\" The following is from 2.6.28-rc4: Documentation/networking/ip-sysctl.txt
 デフォルトでは、TCP は接続クローズ時に各種の接続パラメータを ルートキャッシュ (route cache) に保存し、近い将来に接続が確立された際に
 これらの情報を初期状態として使用できるようになっている。 通常は、これにより全体として性能が向上するが、 時として性能の劣化を引き起こすこともある。
@@ -323,7 +406,7 @@ TCP パケットストリームでパケット順序の逆転が発生しただ
 これは、接続中のパケットの並び替えによって生じる 不必要な速度低下や再送を最小化するように設計された、 パケット並び替え (packet
 reordering) の検知メトリックなのである。
 .TP 
-\fItcp_retrans_collapse\fP (Boolean; default: enabled; Linux 2.2 以降)
+\fItcp_retrans_collapse\fP (ブール値; デフォルト: 有効; Linux 2.2 以降)
 .\" Since 2.1.96
 再送の際にフルサイズのパケットを送ろうとする。
 .TP 
@@ -338,7 +421,7 @@ reordering) の検知メトリックなのである。
 (再送のタイムアウトに依存するが)  およそ 13〜30 分程度の期間に対応する。 RFC\ 1122 は最小の限界を 100 秒と置いているが、
 これはたいていの場合には短すぎると思われる。
 .TP 
-\fItcp_rfc1337\fP (Boolean; default: disabled; Linux 2.2 以降)
+\fItcp_rfc1337\fP (ブール値; デフォルト: 無効; Linux 2.2 以降)
 .\" Since 2.1.90
 TCP の動作を RFC\ 1337 に準拠させる。 無効にすると、TIME_WAIT 状態のときに RST が受信された場合、 TIME_WAIT
 期間の終了を待たずにそのソケットを直ちにクローズする。
@@ -372,16 +455,16 @@ TCP ソケットの受信バッファのデフォルトサイズ。 この値は
 (Linux 2.4 では、デフォルト値は 87380*2 バイトで、 メモリの少ないシステムでは 87380 まで減らされる。)
 .RE
 .TP 
-\fItcp_sack\fP (Boolean; default: enabled; Linux 2.2 以降)
+\fItcp_sack\fP (ブール値; デフォルト: 有効; Linux 2.2 以降)
 .\" Since 2.1.36
 RFC\ 2018 の TCP Selective Acknowledgements を有効にする。
 .TP 
-\fItcp_slow_start_after_idle\fP (Boolean; default: enabled; Linux 2.6.18 以降)
+\fItcp_slow_start_after_idle\fP (ブール値; デフォルト: 有効; Linux 2.6.18 以降)
 .\" The following is from 2.6.28-rc4: Documentation/networking/ip-sysctl.txt
 有効にすると、RFC 2861 の動作が行われ、 アイドル時間経過後に輻輳ウィンドウをタイムアウトさせる。 アイドル時間は現在の RTO
 (再送タイムアウト) で定義される。 無効にすると、輻輳ウィンドウはアイドル時間経過後もタイムアウトされない。
 .TP 
-\fItcp_stdurg\fP (Boolean; default: disabled; Linux 2.2 以降)
+\fItcp_stdurg\fP (ブール値; デフォルト: 無効; Linux 2.2 以降)
 .\" Since 2.1.44
 .\" RFC 793 was ambiguous in its specification of the meaning of the
 .\" urgent pointer.  RFC 1122 (and RFC 961) fixed on a particular
@@ -409,7 +492,7 @@ TCP syncookies を有効にする。カーネルは \fBCONFIG_SYNCOOKIES\fP を
 \fItcp_max_syn_backlog\fP, \fItcp_synack_retries\fP, \fItcp_abort_on_overflow\fP
 などの使用を考えること。
 .TP 
-\fItcp_timestamps\fP (Boolean; default: enabled; Linux 2.2 以降)
+\fItcp_timestamps\fP (ブール値; デフォルト: 有効; Linux 2.2 以降)
 .\" Since 2.1.36
 RFC\ 1323 の TCP timestamps を有効にする。
 .TP 
@@ -417,21 +500,21 @@ RFC\ 1323 の TCP timestamps を有効にする。
 このパラメータは、一つの TCP Segmentation Offload (TSO) フレームで 消費できる輻輳ウィンドウの割合 (パーセント)
 を制御する。 バースト性と、どれだけ大きな TSO フレームを構築するかのはトレードオフであり、 このパラメータはその度合いを設定する。
 .TP 
-\fItcp_tw_recycle\fP (Boolean; default: disabled; Linux 2.4 以降)
+\fItcp_tw_recycle\fP (ブール値; デフォルト: 無効; Linux 2.4 以降)
 .\" Since 2.3.15
 .\"
 .\" The following is from 2.6.12: Documentation/networking/ip-sysctl.txt
 TIME_WAIT ソケットの素早い再利用を有効にする。 このオプションを有効にすると、 NAT (ネットワークアドレス変換)
 を用いていると問題が生じるので、 あまり推奨しない。
 .TP 
-\fItcp_tw_reuse\fP (Boolean; default: disabled; Linux 2.4.19/2.6 以降)
+\fItcp_tw_reuse\fP (ブール値; デフォルト: 無効; Linux 2.4.19/2.6 以降)
 .\" Since 2.4.19/2.5.43
 .\"
 .\" The following is from 2.6.12: Documentation/networking/ip-sysctl.txt
 プロトコルの面から見て問題ない場合に新規コネクションに TIME_WAIT 状態のソケットを再利用することを許可する。技術的に詳しい人の助言や
 要請なしにこのオプションを変更すべきではない。
 .TP 
-\fItcp_vegas_cong_avoid\fP (Boolean; default: disabled; Linux 2.2 から 2.6.13 まで)
+\fItcp_vegas_cong_avoid\fP (ブール値; デフォルト: 無効; Linux 2.2 から 2.6.13 まで)
 .\" Since 2.1.8; removed in 2.6.13
 .\"
 .\" The following is from 2.6.12: Documentation/networking/ip-sysctl.txt
@@ -439,14 +522,14 @@ TCP Vegas 輻輳制御アルゴリズムを有効にする。 TCP Vegas は帯
 の送信側のみに変更を加えたものである。 TCP Vegas は輻輳ウィンドウを修正することで、送信レートを調整する。 TCP Vegas は TCP
 Reno と比べてパケットロスは少ないが、 TCP Reno ほど積極的な挙動はしない。
 .TP 
-\fItcp_westwood\fP (Boolean; default: disabled; Linux 2.4.26/2.6.3 から 2.6.13 まで)
+\fItcp_westwood\fP (ブール値; デフォルト: 無効; Linux 2.4.26/2.6.3 から 2.6.13 まで)
 TCP Westwood+ 輻輳制御アルゴリズムを有効にする。 TCP Westwood+ は TCP 輻輳制御の性能を最適化するように TCP
 Reno の プロトコルスタックの送信側のみに修正を加えたものである。 輻輳が起こった後で、輻輳ウィンドウや slow start の閾値を
 通信両端間の帯域の推測に基づいて設定する。 この推測を使って、TCP Westwood+ は輻輳が発生した時に使っていた 帯域を考慮に入れた slow
 start の閾値と輻輳ウィンドウを設定する。 TCP Westwood+ は、有線ネットワークにおける TCP Reno の公平性
 (fairness) と、無線リンクでのスループットを大きく向上する。
 .TP 
-\fItcp_window_scaling\fP (Boolean; default: enabled; Linux 2.2 以降)
+\fItcp_window_scaling\fP (ブール値; デフォルト: 有効; Linux 2.2 以降)
 .\" Since 2.1.36
 RFC\ 1323 の TCP ウィンドウスケーリングを有効にする。 この機能を用いると、接続先が対応していれば、 TCP 接続で大きな (64K
 以上の) ウィンドウが使えるようになる。 通常は TCP ヘッダのウインドウ長フィールドは 16 ビットなので、 ウィンドウサイズは 64K
@@ -483,15 +566,22 @@ TCP ウィンドウを用いるには、 \fI/proc/sys/net/ipv4/tcp_window_scalin
 (Linux 2.4 では、デフォルト値は 128K バイトで、 メモリの少ないシステムでは 64K にまで減らされる。)
 .RE
 .TP 
-\fItcp_workaround_signed_windows\fP (Boolean; default: disabled; Linux 2.6.26 以降)
+\fItcp_workaround_signed_windows\fP (ブール値; デフォルト: 無効; Linux 2.6.26 以降)
 有効にすると、ウィンドウスケーリングオプションを受信しないのは、 接続相手の TCP が壊れていると考え、ウィンドウを符号付きの量とみなす。
 無効にすると、接続相手からウィンドウスケーリングオプションを受信しなかった 場合であっても、接続相手の TCP が壊れているとはみなさない。
 .SS ソケットオプション
 .\" or SOL_TCP on Linux
-.\" FIXME Document TCP_CONGESTION (new in 2.6.13)
 TCP ソケットのオプションは、 オプションレベル引数に \fIIPPROTO_TCP\fP を指定した \fBsetsockopt\fP(2)  で設定でき、
-\fBgetsockopt\fP(2)  で取得できる。 さらに、ほとんどの \fBIPPROTO_IP\fP ソケットオプションも TCP
-ソケットに対して有効である。詳細は \fBip\fP(7)  を見よ。
+\fBgetsockopt\fP(2)  で取得できる。 注釈がない限り、 \fIoptval\fP は \fIint\fP へのポインタである。 さらに、ほとんどの
+\fBIPPROTO_IP\fP ソケットオプションも TCP ソケットに対して有効である。詳細は \fBip\fP(7)  を見よ。
+.TP 
+\fBTCP_CONGESTION\fP (Linux 2.6.13 以降)
+.\"        commit 5f8ef48d240963093451bcf83df89f1a1364f51d
+.\"        Author: Stephen Hemminger <shemminger@osdl.org>
+このオプションの引き数は文字列である。 このオプションを使うと、呼び出し元がソケット単位に使用する TCP 輻輳制御アルゴリズムを設定することができる。
+非特権プロセスが使用できるアルゴリズムは (上述の) \fItcp_allowed_congestion_control\fP
+で設定されたものだけに制限される。 特権プロセス (\fBCAP_NET_ADMIN\fP) は任意の輻輳制御アルゴリズムを選択することができる (上記の
+\fBtcp_available_congestion_control\fP の説明を参照)。
 .TP 
 \fBTCP_CORK\fP (Linux 2.2 以降)
 .\" precisely: since 2.1.127
@@ -503,6 +593,9 @@ TCP ソケットのオプションは、 オプションレベル引数に \fIIP
 .TP 
 \fBTCP_DEFER_ACCEPT\fP (Linux 2.4 以降)
 .\" Precisely: since 2.3.38
+.\" Useful references:
+.\" http://www.techrepublic.com/article/take-advantage-of-tcp-ip-options-to-optimize-data-transmission/
+.\" http://unix.stackexchange.com/questions/94104/real-world-use-of-tcp-defer-accept
 これを用いると、リスナはデータがソケットに到着した時のみ目覚めるようになる。 整数値 (秒) をとり、 TCP
 が接続を完了しようと試みる回数を制限できる。 移植性の必要なプログラムではこのオプションを用いるべきではない。
 .TP 
@@ -532,23 +625,10 @@ orphan された FIN_WAIT2 状態のソケットの寿命。 このオプショ
 .TP 
 \fBTCP_MAXSEG\fP
 .\" Present in Linux 1.0
-.\" FIXME
-.\" Document TCP_MD5SIG, added in Linux 2.6.20,
-.\" Needs CONFIG_TCP_MD5SIG
-.\" From net/inet/Kconfig
-.\" bool "TCP: MD5 Signature Option support (RFC2385) (EXPERIMENTAL)"
-.\" RFC2385 specifies a method of giving MD5 protection to TCP sessions.
-.\" Its main (only?) use is to protect BGP sessions between core routers
-.\" on the Internet.
-.\"
-.\" There is a TCP_MD5SIG option documented in FreeBSD's tcp(4),
-.\" but probably many details are different on Linux
-.\" Authors were yoshfuji@linux-ipv6.org and Dave Muller
-.\" http://thread.gmane.org/gmane.linux.network/47490
-.\" http://www.daemon-systems.org/man/tcp.4.html
-.\" http://article.gmane.org/gmane.os.netbsd.devel.network/3767/match=tcp_md5sig+freebsd
-送出 TCP パケットの最大セグメントサイズ。 このオプションを接続確立の前に設定すると、 初期パケットで他端にアナウンスする MSS の値も変化する。
-インターフェースの MTU よりも大きな (あるいは大きくなってしまった)  値は効果を持たない。 また TCP
+送出 TCP パケットの最大セグメントサイズ。 Linux 2.2 以前と Linux
+2.6.28 以降では、このオプションを接続確立の前に設定すると、初期パケット
+で他端にアナウンスする MSS の値も変化する。インターフェースの MTU より
+も大きな (あるいは大きくなってしまった) 値は効果を持たない。 また TCP
 は、この値よりも最小・最大の制限の方を優先する。
 .TP 
 \fBTCP_NODELAY\fP
@@ -559,8 +639,6 @@ orphan された FIN_WAIT2 状態のソケットの寿命。 このオプショ
 送信待ちの出力を明示的に掃き出す (flush) ことになる。
 .TP 
 \fBTCP_QUICKACK\fP (Linux 2.4.4 以降)
-.\" FIXME Document TCP_USER_TIMEOUT (new in 2.6.37)
-.\" See commit dca43c75e7e545694a9dd6288553f55c53e2a3a3
 設定されていると quickack モードを有効にし、クリアされると無効にする。 通常の TCP 動作では ack は必要に応じて遅延されるのに対し、
 quickack モードでは ack はすぐに送信される。 このフラグは永続的なものではなく、 quickack
 モードから/モードへ切り替えるためのものである。 これ以降の TCP プロトコルの動作によっては、 内部のプロトコル処理や、遅延 ack
@@ -572,6 +650,31 @@ quickack モードでは ack はすぐに送信される。 このフラグは
 接続の試行を中止させる前に TCP が送る SYN 再送数を設定する。 これは 255 より大きくはできない。
 移植性の必要なプログラムではこのオプションを用いるべきではない。
 .TP 
+\fBTCP_USER_TIMEOUT\fP (Linux 2.6.37 以降)
+.\"        commit dca43c75e7e545694a9dd6288553f55c53e2a3a3
+.\"        Author: Jerry Chu <hkchu@google.com>
+.\" The following text taken nearly verbatim from Jerry Chu's (excellent)
+.\" commit message.
+.\"
+このオプションは \fIunsigned int\fP 型の引き数を取る。 値が 0 より大きい場合、その値は、 どのくらいの時間、送信されたデータが ACK
+を受信しないままの状態が続くと、 TCP がその接続を強制的にクローズし、アプリケーションに \fBETIMEDOUT\fP を返すかを、
+ミリ秒単位で指定する。 オプションの値が 0 の場合、TCP はシステムのデフォルト値を使用する。
+
+ユーザータイムアウトを長くすると、 通信の両端での接続性がない場合でも長い時間 TCP 接続が維持されるようになる。 ユーザータイムアウトを短くすると、
+アプリケーションは必要であれば「早く失敗」できるようになる。 設定しなかった場合は、 通常の WAN 環境では現在のシステムのデフォルトの 20
+分で失敗することになる。
+
+このオプションは TCP 接続がどの状態の場合でも設定することができるが、 接続が同期状態 (ESTABLISHED, FIN\-WAIT\-1,
+FIN\-WAIT\-2, CLOSE\-WAIT, CLOSING, LAST\-ACK) の場合のみ効果がある。 また、 TCP keepalive
+(\fBSO_KEEPALIVE\fP) オプションとともに使用された場合、 \fBTCP_USER_TIMEOUT\fP は keepalive
+失敗による接続クローズを判定するための keepalive 値を上書きする。
+
+このオプションは TCP がパケットを再送する際や keepalive プローブを送信する際には影響を及ぼさない。
+
+他の多くのオプション同様、リッスン中のソケットでこのオプションがセットされていれば \fBaccept\fP(2) が返すソケットにオプションが継承される。
+
+ユーザータイムアウト機能の詳細は RFC\ 793 と  RFC\ 5482 ("TCP User Timeout Option") に書かれている。
+.TP 
 \fBTCP_WINDOW_CLAMP\fP (Linux 2.4 以降)
 .\" Precisely: since 2.3.41
 広報するウィンドウのサイズをこの値に固定する。 カーネルによって最小サイズは SOCK_MIN_RCVBUF/2 に制限されている。
@@ -589,7 +692,7 @@ Linux は、デフォルトでは urgent ポインタフィールドの解釈に
 
 Linux 2.4 以降では、 \fBrecv\fP(2)  (や \fBrecvmsg\fP(2))  の \fIflags\fP 引き数に \fBMSG_TRUNC\fP
 を使うことができる。 このフラグを指定すると、受信データは、呼び出し元から渡されたバッファ にコピーされて返されるのではなく、廃棄されるようになる。
-Linux 2.4.4 以降では、 \fBMSG_PEEK\fP を、帯域外データを受信するための \fBMSG_OOB\fP
+Linux 2.4.4 以降では、 \fBMSG_TRUNC\fP を、帯域外データを受信するための \fBMSG_OOB\fP
 と組み合わせて使った場合にも、これと同じ効果を持つようになっている。
 .SS ioctl
 以下の \fBioctl\fP(2) 呼び出しは \fIvalue\fP に情報を入れて返す。
@@ -627,7 +730,7 @@ LISTEN 状態にあってはならず、さもないとエラー (\fBEINVAL\fP)
 が偽を返さなくなるまで繰り返し行うことで、緊急マークの位置まで 読み進めることができる。
 .TP 
 \fBSIOCOUTQ\fP
-.\" FIXME http://sources.redhat.com/bugzilla/show_bug.cgi?id=12002,
+.\" FIXME http://sources.redhat.com/bugzilla/show_bug.cgi?id=12002,
 .\" filed 2010-09-10, may cause SIOCOUTQ to be defined in glibc headers
 ソケットの送信キューに残っている未送信データの量を返す。ソケットは LISTEN 状
 態にあってはならない。 LISTEN 状態の場合にはエラー (\fBEINVAL\fP) となる。
@@ -687,3 +790,7 @@ RFC\ 3168: Explicit Congestion Notification に関する説明。
 RFC\ 2581: TCP 輻輳制御アルゴリズム。
 .br
 RFC\ 2018 と RFC\ 2883: SACK とその拡張。
+.SH この文書について
+この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.76 の一部
+である。プロジェクトの説明とバグ報告に関する情報は
+http://www.kernel.org/doc/man\-pages/ に書かれている。