FreeBSD 日本語マニュアル検索 (jman/japropos/jwhatis)


日本語 man コマンド類 (ja-man-1.1j_5) と日本語 man ドキュメント (ja-man-doc-5.4 (5.4-RELEASE 用) など) をインストールすると、以下のような man コマンド閲覧、キーワード検索が コンソールからできるようになります。

4.11-RELEASE-K, 5.4-RELEASE-K, 5.5-RELEASE-K, 6.0-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K, 12.1-RELEASE-K は、 プライベート版 (小金丸が編集してまとめたもの) ですが、 より多くの翻訳したファイルが含まれています。 (5.4-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K から 12.4-RELEASE-K, 13.0-RELEASE-K から 13.3-RELEASE-K, 14.0-RELEASE-K から 14.1-RELEASE-K は、全翻訳済み)

13.3-STABLE-K, 15.0-CURRENT-K は現在、作成中で日々更新されています。



検索コマンド: man apropos whatis
コマンド/キーワード:
日本語マニュアル RELEASE :
セクション:
Table of Contents
名称 | 書式 | 解説 | エラー | 関連項目 | 歴史
TCP(4)             FreeBSD カーネルインタフェースマニュアル             TCP(4)

名称
     tcp -- インターネット送信制御 (トランスミッションコントロール) プロトコル

書式
     #include <sys/types.h>
     #include <sys/socket.h>
     #include <netinet/in.h>
     #include <netinet/tcp.h>

     int
     socket(AF_INET, SOCK_STREAM, 0);

解説
     TCP プロトコルは、信頼性があり、フロー制御された、双方向のデータ送信を提
     供します。それは、SOCK_STREAM 抽象化をサポートするために使用されるバイト
     ストリーム型プロトコルです。TCP は、標準のインターネットアドレス形式を使
     用し、さらに、ホストごとの ``ポートアドレス'' の集まりを提供します。した
     がって、各アドレスは、ピア (相手) エンティティを識別するホストで特定の
     TCP ポートを備えた、ホストとネットワークを指定するインターネットアドレス
     で構成されています。

     TCP プロトコルを利用するソケットは、``アクティブ'' (能動) か ``パッシブ''
     (受動) のいずれかです。アクティブ (能動) のソケットは、パッシブ (受動) の
     ソケットに接続を開始します。デフォルトでは、TCP ソケットは、アクティブで
     作成されます。パッシブのソケットを作成するためには、bind(2) システムコー
     ルでソケットをバインドした後に、listen(2) システムコールを使用しなければ
     なりません。パッシブのソケットだけが着信接続を受け付けるために accept(2)
     呼び出しを使用できます。クティブのソケットだけが接続を開始するために
     connect(2) 呼び出しを使用できます。

     パッシブのソケットは、複数のネットワークからの着信接続要求に合わせるため
     に、それらの位置を ``あいまいに指定'' することができます。この技術は、
     ``ワイルドカードアドレシング'' と呼ばれ、単一のサーバが複数のネットワーク
     でクライアントに対するサービスを提供できます。すべてのネットワークで lis
     ten する (接続を受け付ける) ソケットを作成するためには、インターネットア
     ドレス INADDR_ANY がバインドされていなければなりません。TCP ポートは、こ
     の時点でも指定できます。ポートが指定されていないと、システムがポートを割
     り当てます。接続がいったん確立されると、ソケットのアドレスは、ピア (相手
     側) エンティティの位置によって固定されます。ソケットが割り当てられたアド
     レスは、パケットが送受信されているネットワークインタフェースに関連してい
     るアドレスです。通常、このアドレスは、ピア (相手側) エンティティのネット
     ワークに一致しています。

     TCP は、setsockopt(2) で設定して getsockopt(2) でテストすることができる多
     くのソケットオプションをサポートしています:

     TCP_INFO          ソケットの基本的な TCP セッションに関する情報は、読み込
                       み専用オプション TCP_INFO を getsockopt(2) に渡すことに
                       よって、検索されます。それは、単一の引数を受け付けます:
                       struct tcp_info のインスタンスへのポインタです。

                       この API は、変更される可能性があります。このオプション
                       によって、どのフィールドが現在書き込まれるかを決定する
                       ために、ソースを調べます。FreeBSD 特有の追加は、ウィン
                       ドウサイズの送信、ウィンドウサイズの受信と帯域幅で制御
                       されたウィンドウサイズを含みます。

     TCP_CCALGOOPT     輻輳制御アルゴリズム特有のパラメータを設定するか、また
                       は問い合わせます。詳細については、mod_cc(4) を参照して
                       ください。

     TCP_CONGESTION    TCP が接続するために使用する輻輳制御アルゴリズムを選択
                       するか、または問い合わせます。詳細については、mod_cc(4)
                       を参照してください。

     TCP_FASTOPEN      TCP Fast Open (TFO) を有効または無効にします。このオプ
                       ションを使用するために、カーネルは、TCP_RFC7413 オプ
                       ションを付けて構築されなければなりません。

                       このオプションは、listen(2) が呼び出される前または後
                       に、ソケットで設定することができます。このオプションが
                       設定された後に listen (接続を受け付け) するソケットでこ
                       のオプションをクリアすることは、既存の TFO 接続または進
                       行中の TFO 接続に影響しません。新規の TFO 接続の確立を
                       防止するだけです。

                       受動的に生成されたソケットについて、接続が TFO を使用し
                       て確立されたかどうかを判断するために TCP_FASTOPEN ソ
                       ケットオプションを問い合わせすることができます。TFO の
                       SYN を通して確立されて接続しますが、TFO 以外の SYN|ACK
                       を使用するフォールバックは、TCP_FASTOPEN ソケットオプ
                       ションが設定されることに注意してください。

                       RFC7413 で定義されている機能に加えて、この実装は、TFO
                       サーバは、サーバとの TFO 接続を正常にオープンすることが
                       できますように、クライアントのために共有鍵を所有してい
                       るクライアントを必要とする操作の事前の共有鍵 (PSK) モー
                       ドをサポートしています。これは、例えば、TFO サーバが内
                       部と外部の両方のクライアントに公開されていて、内部クラ
                       イアントからの TFO 接続のみを許可したい環境で役に立ちま
                       す。

                       操作の PSK モードで、サーバは、いつもの通り要求している
                       クライアントに TFO クッキーを生成して送信します。しかし
                       ながら、クライアントからの TFO SYN で受信したクッキーを
                       検証するとき、サーバは、クライアントが供給するクッキー
                       が等しいことを要求します。

                       SipHash24(key=16-byte-psk, msg=cookie-sent-to-client)

                       時間ベースのローリング PSK 無効化ポリシは、システムで実
                       装することができるように、複数の同時に有効な事前の共有
                       鍵は、サポートされています。デフォルトの同時の事前に共
                       有鍵の数は、2 です。

                       これは、TCP_RFC7413_MAX_PSKS カーネルオプションで調整す
                       ることができます。

     TCP_FUNCTION_BLK  この接続のために TCP が使用する関数の組を選択するか、ま
                       たは問い合わせます。これによって、ユーザは、代替の TCP
                       スタックを選択することができます。代替の TCP スタック
                       は、カーネルにすでにロードされていなければなりません。
                       利用可能な TCP スタックをリストするためには、ずっと下の
                       「MIB 変数」セクションの functions_available を参照して
                       ください。デフォルトの TCP スタックをリストするために
                       は、「MIB 変数」セクションの functions_default を参照し
                       てください。

     TCP_KEEPINIT      この setsockopt(2) オプションは、新しく確立されなかった
                       TCP 接続のために、秒単位の u_int のソケットごとのタイム
                       アウト引数を受け付けます。ミリ秒単位のグローバルなデ
                       フォルトについては、さらに後ろの、「MIB の変数」のセク
                       ションの keepinit を参照してくさい。

     TCP_KEEPIDLE      この setsockopt(2) オプションは、(有効にされていれば)
                       keepalive プローブがこのソケットの接続のために送信さら
                       れる前に、接続がアイドルでなければならない、秒単位の、
                       時間の量のための u_int の引数を受け付けます。listen し
                       ている (接続を受け付けている) ソケットで設定されている
                       なら、値は、accept(2) 上の新しく作成されたソケットに
                       よって継承されます。ミリ秒単位のグローバルなデフォルト
                       については、さらに後ろの、「MIB の変数」のセクションの
                       keepidle を参照してくさい。

     TCP_KEEPINTVL     この setsockopt(2) オプションは、ピア (相手側) に送信さ
                       れた keepalive プローブの間で、秒単位のソケットごとの間
                       隔を設定するために u_int の引数を受け付けます。listen
                       している (接続を受け付けている) ソケットで設定されてい
                       るなら、値は、accept(2) 上の新しく作成されたソケットに
                       よって継承されます。ミリ秒単位のグローバルなデフォルト
                       については、さらに後ろの、「MIB の変数」のセクションの
                       keepintvl を参照してくさい。

     TCP_KEEPCNT       この setsockopt(2) オプションは、u_int の引数を受け付
                       け、接続が落される前に、応答なしで、送信されたプローブ
                       の数のソケットごとの調整を許可します。listen している
                       (接続を受け付けている) ソケットで設定されているなら、値
                       は、accept(2) 上の新しく作成されたソケットによって継承
                       されます。グローバルなデフォルトについては、さらに後ろ
                       の、「MIB の変数」のセクションの keepcnt を参照してくさ
                       い。

     TCP_NODELAY       たいていの状況の下で、TCP は、データが存在するとき、そ
                       れを送信します。未解決のデータがまだ肯定応答されていな
                       いとき、肯定応答がいったん受信されると、単一のパケット
                       で送信するために少量の出力データを集めます。応答を受け
                       取らないマウスイベントのストリームを送信するウィンドウ
                       システムのような少数のクライアントに関しては、このパ
                       ケット化は、深刻な遅延を引き起こすかもしれません。ブー
                       ル (論理演算子) オプション TCP_NODELAY は、このアルゴリ
                       ズムを無効にします。

     TCP_MAXSEG        デフォルトでは、送信側-TCP と受信側-TCP は、各接続に使
                       用される最大のセグメントサイズを決定するためにそれら自
                       体の間でネゴシエート (交渉) します。TCP_MAXSEG オプショ
                       ンで、ユーザは、このネゴシエーション (交渉) の結果を決
                       定し、必要ならそれを減少することができます。

     TCP_NOOPT         通常、TCP は、この実装で提供される様々な TCP 拡張に従っ
                       て、各パケットでいくつかのオプションを送信します。ブー
                       ル (論理演算子) オプション TCP_NOOPT は、接続ベースごと
                       に使用される TCP オプションを無効にするために提供されて
                       います。

     TCP_NOPUSH        慣例により、送信側-TCP は、``push'' (プッシュ) ビットを
                       設定して、あらゆるユーザの write(2)writev(2) の呼び
                       出しの終わりで、(許されるなら) 直ちに送信を始めます。こ
                       のオプションが 0 以外の値に設定されるとき、TCP は、ソ
                       ケットがクローズされるか、または内部の送信バッファが満
                       たされるまであらゆるデータの送信を遅らせます。

     TCP_MD5SIG        このオプションは、指定されたソケットへの書き込み時に
                       (別名 TCP-MD5 として知られている) MD5 ダイジェストの使
                       用を可能にします。発信トラフィックが、ダイジェスト (要
                       約) されます。着信トラフィックに関するダイジェスト (要
                       約) は、検証されます。このオプションがソケットで有効に
                       されるとき、すべて着信と発信 TCP セグメントは、MD5 ダイ
                       ジェストで署名されなければなりません。

                       FreeBSD ルータ展開におけるこの一般的の使用は、基本とな
                       るルータをピアとなるポイントで Cisco 機器で相互に作用で
                       きるようにすることです。この機能のサポートは、RFC 2385
                       に適合しています。

                       このオプションを正しく機能するためには、管理者が
                       setkey(8) ユーティリティを使用して tcp-md5 キーエントリ
                       をシステムのセキュリティ関連データベース (SADB) に追加
                       するのことが必要です。現時点でホストベースごとで、この
                       エントリのみを指定することができますだけです。

                       宛先 (終点) のための SADB エントリを見つけることができ
                       ないなら、システムは、あらゆる発信セグメントを送信せ
                       ず、あらゆる着信セグメントを落とします。しかしながら、
                       接続ネゴシエーションの間に、SADB エントリがホスト間に存
                       在しないなら、非署名セグメントが受け付けられます。非署
                       名セグメントが受け付けられたとき、確立された接続は、MD5
                       ダイジェストで保護されません。

     TCP_STATS         stats(3) フレームワークを使用して接続レベル統計の収集を
                       管理します。

                       各落とされたセグメントは、TCP プロトコルの統計で考慮さ
                       れます。

     TCP_TXTLS_ENABLE  このソケットに書き込まれたデータのためのカーネル中のト
                       ランスポート層セキュリティ (Transport Layer Security;
                       TLS) を有効にします。詳細については、ktls(4) を参照して
                       ください。

     TCP_TXTLS_MODE    ソケットの現在の TLS モードを取得するか、または設定する
                       ために整数引数を使用することができます。詳細について
                       は、ktls(4) を参照してください。

     TCP_RXTLS_ENABLE  このソケットから読み込まれたデータのためのカーネル内TLS
                       を有効にします。詳細については、ktls(4) を参照してくだ
                       さい。

     TCP_REUSPORT_LB_NUMA
                       確立された TCP の listen する (接続を受け付ける) ソケッ
                       トのための NUMA 親和性のフィルタリングを変更します。こ
                       のオプションは、この listen する (接続を受け付ける) ソ
                       ケットのためにフィルタリングする NUMA ドメインを指定す
                       る単一の整数引数を取ります。また、引数は次の特別な値を
                       指定することができます:

                       TCP_REUSPORT_LB_NUMA_NODOM
                                                この listen する (接続を受け付
                                                ける) ソケットのための NUMA
                                                フィルタリングを削除します。

                       TCP_REUSPORT_LB_NUMA_CURDOM
                                                呼び出したスレッドが現在実行し
                                                ているドメインに関連するトラ
                                                フィックをフィルタリングしま
                                                す。これは、通常、プロセスまた
                                                はスレッドが親から listen する
                                                (接続を受け付ける) ソケットを
                                                継承し、特定のコアに CPU 親和
                                                性を設定した後に使用されます。

     TCP_REMOTE_UDP_ENCAPS_PORT
                       リモート UDP のカプセル化ポートを設定して取得します。ク
                       ローズした TCP ソケットでのみ設定することができます。

     setsockopt(2) 呼び出しのためのオプションレベルは、getprotobyname(3) また
     は IPPROTO_TCP から利用可能な TCP のためのプロトコル番号です。すべてのオ
     プションは、<netinet/tcp.h> で宣言されています。

     IP 転送レベルのオプションは、TCP で使用されます。ip(4) を参照してくださ
     い。経路制御された発信もとである着信してくる接続要求は、注意され、逆の発
     信元経路は、応答の時に使用されます。

     TCP のためのデフォルト輻輳制御アルゴリズムは、cc_newreno(4) です。他の輻
     輳制御アルゴリズムは、mod_cc(4) フレームワークを使用して利用可能にするこ
     とができます。

   MIB の変数
     TCP プロトコルは、sysctl(3) MIB の net.inet.tcp ブランチでいくつかの変数
     を実装しています。

     TCPCTL_DO_RFC1323  (rfc1323) RFC 1323/RFC 7323 のウィンドウのスケーリング
                        とタイムスタンプのオプションを実装します (デフォルト
                        は、真です)。

     tolerate_missing_ts
                        TCP タイムスタンプのサポートがネゴシエートされている
                        TCP 接続に属している TCP セグメントのためのタイムスタ
                        ンプ (RFC 1323/RFC 7323) の欠落を容認します。2021 年 6
                        月現在で、広く配備している最新のものを含んで、いくつか
                        の TCP スタックは、RFC 7323 に違反していることが知られ
                        ています。そのため、デフォルトは、1 です、すなわち、タ
                        イムスタンプの欠落は、許容されます。

     TCPCTL_MSSDFLT     (mssdflt) MSS ネゴシエーション (交渉) で反対の通知を受
                        信しないとき、デフォルト値は、最大のセグメントサイズ
                        (``MSS'') を使用します。

     TCPCTL_SENDSPACE   (sendspace) 最大の TCP 送信ウィンドウ。

     TCPCTL_RECVSPACE   (recvspace) 最大の TCP 受信ウィンドウ。

     log_in_vain        接続を受け付けるソケットがないポートに試みられるあらゆ
                        る接続のログを登録します。1 の値は、ログの登録を SYN
                        (接続の確立) パケットだけに制限します。2 の値は、ク
                        ローズされたポートへのあらゆる TCP パケットをログに登
                        録します。上記に記載されないどんな値もログの登録を無効
                        にします (デフォルトは、0、すなわち、ログの登録は、無
                        効にされます)。

     msl                パケットのための、ミリ秒単位の、最大セグメント生存期
                        間。

     keepinit           確立されない TCP 接続の、ミリ秒単位の、新しいタイムア
                        ウト。デフォルトは、75000 ミリ秒です。

     keepidle           接続がキープアライブ (生き続ける) プローブが (可能なら
                        ば) 送信される前にアイドルとなるべき時間の合計。デフォ
                        ルトは、7200000 ミリ秒 (2 時間) です。

     keepintvl          keepidle プローブで応答が受信されないとき、キープアラ
                        イブ (生き続ける) プローブがリモートマシンに送信される
                        ミリ秒単位のインターバル。デフォルトは、75000 ミリ秒で
                        す。

     keepcnt            接続が落される前に、応答なしで、送信されたプローブの
                        数。デフォルトは、8 パケットです。

     always_keepalive   SO_KEEPALIVE がすべての TCP 接続で設定され、カーネル
                        は、接続がまだあるか確かめるためにリモートホストへパ
                        ケットを定期的に送信すると仮定します。

     icmp_may_rst       特定の ICMP 到達不能メッセージは、SYN-SENT 状態で接続
                        をアボートできます。

     do_tcpdrain        システムの mbuf が少ないなら、TCP 再構築キューでパケッ
                        トをフラッシュします。

     blackhole          接続を受け付けるソケットがないポートに接続を試みると
                        き、可能であれば、RST の送信を無効にします。
                        blackhole(4) を参照してください。

     delayed_ack        試みるために ACK を遅らせ、データパケットにそれをピ
                        ギーバック (積んで輸送) します。

     delacktime         遅延の ACK が送信される前の、ミリ秒単位の、最大の合計
                        時間。

     path_mtu_discovery
                        パス MTU 発見を有効にします。

     tcbhashsize        TCP 制御ブロックハッシュテーブル (読み込み専用) のサイ
                        ズ。これは、カーネルオプション TCBHASHSIZE を使用する
                        か loader(8)net.inet.tcp.tcbhashsize を設定するこ
                        とによって調整できます。

     pcbcount           アクティブなプロセス制御ブロックの数 (読み込み専用)。

     syncookies         SYN クッキーが外向きの SYN-ACK パケットのために生成さ
                        れるかどうかを決定します。SYN クッキーは、SYN ラッド
                        (大量送り付け) 攻撃の間にとても役に立ち、デフォルトで
                        有効にされます。(syncookies(4) 参照)。

     isn_reseed_interval
                        秘密データが RFC 1948 の初期シーケンス番号計算でどれく
                        らいの頻度で使用したかを指定する間隔 (秒単位) は、再
                        シード (種) されるべきです。デフォルトで、この変数は、
                        再シードが起こらないことを示す 0 に設定されます。再
                        シードは、必要ではなく、数分間 TIME_WAIT リサイクリン
                        グをブレークします。

     reass.cursegments  すべての再アセンブリのキューに存在するセグメントの現在
                        の合計数。

     reass.maxsegments  すべての再アセンブリのキューに渡ってセグメントの合計数
                        の最大の制限。調整変数として制限を調整することができま
                        す。

     reass.maxqueuelen  それぞれの再アセンブリのキューで許可されるセグメントの
                        最大数。デフォルトで、システムは、各 TCP 接続の受信
                        バッファサイズと最大のセグメントサイズ (MSS) に基づい
                        て制限を選択します。セッションの再アセンブリのキューに
                        適用される実際の制限は、システム計算された自動的な制限
                        とユーザに指定された reass.maxqueuelen 制限より低く
                        なっています。

     rexmit_initial, rexmit_min, rexmit_slop
                        TCP のために再送信タイマ計算を調整します。スロップ
                        (slop) は、最小が絶対最小を指定している間、SRTT (ラウ
                        ンドトリップ時間を平滑化 (smoothed round trip time))
                        が適応することができない、時々の変化を考慮に入れるため
                        に生の計算に通常加えられます。多くの TCP RFC が最小の
                        1 秒を提案している一方、これらの RFC は、ストリーミン
                        グの振る舞いに焦点を合わせる傾向があり、それらのケース
                        は、速い再送信コードによってカバーされなかった大変速い
                        が損失の多い接続である、802.11b 無線リンクのように、最
                        小の 1 秒が損失の多いインタラクティブ接続上の深刻で有
                        害な影響があるという事実に対処できません。この理由で、
                        我々は、スロップ (slop) の 200ms と (Linux と同様の)
                        200ms の有効な最小を我々に与える、near-0 最小を使用し
                        ます。初期の値は、RTT 測定が実行される前に、使用されま
                        す。

     initcwnd_segments  セグメントの数の初期の輻輳ウィンドウを指定する能力を有
                        効にします。デフォルト値は、RFC 6928 によって推奨され
                        る 10 です。急いで値を変更することは、ホストキャッシュ
                        から輻輳ウィンドウを使用する接続に影響しません。警告:
                        これは、最初の RTT に送信されることを許可されるパケッ
                        トのバースト (破裂) を調整します。値は、リンクの容量と
                        関連するべきです。低い容量のリンクのための小さい値で開
                        始します。大きいバーストは、ルータに小さなバッファがあ
                        るか、リンクが輻輳を経験しているなら、バッファのオーバ
                        ランとパケットの落下を起こすかもしれません。

     newcwd             RFC 7661 で説明されるように新規輻輳ウィンドウ認証 (New
                        Congestion Window Validation) メカニズムを有効にしま
                        す。これは、TCP が、制限されたアプリケーションであり、
                        ネットワーク帯域幅が、完全に利用されないところで、期間
                        の間に輻輳ウィンドウを徐々に減少します。それは、いった
                        んより高いスピードでデータを送信するアプリケーションを
                        開始すると自ら招いたパケット損失を防止します。

     do_prr             RFC6937 に説明されている Proportional Rate Reduction
                        (PRR) アルゴリズムを使用して、SACK の損失の復旧を実行
                        します。これは、ACK クロックを使い切る機会が減るため、
                        RTO ベースの損失の復旧 (デフォルトは、true) のような、
                        ACK 間引きまたはバーストロスイベントでの環境で特別な再
                        送信の有効性を向上します。

     do_prr_conservative
                        Proportional Rate Reduction を行っている間に、厳密にパ
                        ケット節約モードを残し、ACK を受信するたびに新しいパ
                        ケットを 1 つだけ送信します。トークンバケットのトラ
                        フィックの policer が RTO に先導する高い損失が持続する
                        とき、役に立ちますが、より共通の設定で PRR の有効性が
                        低下します (デフォルトは、false)。

     rfc6675_pipe       RFC 6675 に記述されているアルゴリズムを使用して byte
                        in flight を計算し、Proportional Rate Reduction が有効
                        なときも改善されます。また、RFC6675 にある 2 つの他の
                        メカニズムも有効にします。レスキュ再送信は、送信の後続
                        するセグメントが失われ、追加のデータを送信する準備がで
                        きていないとき、タイムリな損失復旧を手助けします。SACK
                        ブロックなしに部分的な ACK が、SACK 損失回復中に受信さ
                        れた場合に、後続するセグメントは、再送信タイムアウトを
                        待つのではなく、直ちに再送信されます。SACK 損失回復
                        は、また、いったん 2 つのセグメントプラス 1 バイトが
                        SACK されると - たとえ従来の重複した ACK が見られな
                        かったとしても、保証されます。

     rfc3042            RFC 3042 で説明される Limited Transmit アルゴリズムを
                        有効にします。それは、損失の多いリンクで、そして短い転
                        送のときに起こるような輻輳 (混雑) ウィンドウが小さいと
                        き、タイムアウトを避けるのに役立ちます。

     rfc3390            最大のセグメントサイズによって、新しい接続のときに可変
                        サイズの開始輻輳 (混雑) ウィンドウを認める、RFC 3390
                        のサポートを有効にします。これは、一般的にスループット
                        (処理能力) に役立ちますが、特に短い転送と高帯域の大き
                        い伝播遅延接続に影響します。

     sack.enable        受信側がすべての成功して到着したセグメントに関して送付
                        側に通知するのを許し、送付側が欠落したセグメントだけを
                        再送するのを許す、TCP Selective Acknowledgment オプ
                        ションである、RFC 2018 のサポートを有効にします。

     sack.maxholes      接続毎の SACK ホールの最大数。デフォルトは、128 です。

     sack.globalmaxholes
                        すべての接続に渡るシステム毎の SACK ホールの最大数。デ
                        フォルトは、65536 です。

     maxtcptw           TCP 接続が TIME_WAIT 状態に入るとき、わずかなサイズと
                        使用であるので、関連ソケット構造は、解放されます、そし
                        て、新しい構造は、圧縮された TCP TIMEXWAIT 状態と呼ば
                        れる、この状態で接続を持続するために必要な最小量の情報
                        を含むように割り付けられます。この構造がソケット構造よ
                        り小さいので、かなりの量のシステムメモリを節約すること
                        ができます。net.inet.tcp.maxtcptw MIB 変数は、割り付け
                        られたこれらの構造の最大数を制御します。デフォルトで、
                        それは、kern.ipc.maxsockets / 5 に初期化されます。

     nolocaltimewait    両方の終点がローカルである接続のために圧縮された TCP
                        TIMEXWAIT 状態の作成を抑制します。

     fast_finwait2_recycle
                        ソケットが SBS_CANTRCVMORE としてマークされるとき、TCP
                        FIN_WAIT_2 接続を、より速くリサイクルします (ユーザプ
                        ロセスでは、ソケットがオープンされず、ソケットで受信さ
                        れたデータは、読み込むことができません)。ここで使用さ
                        れたタイムアウトは、finwait2_timeout です。

     finwait2_timeout   TCP FIN_WAIT_2 接続の速いリサイクルに使用するタイムア
                        ウト。デフォルトは、60 秒です。

     ecn.enable         TCP Explicit Congestion Notification (明示的な輻輳通
                        知) (ECN) のサポートを有効にします。ECN によって、TCP
                        の送信側は、パケットの落下を回避するために転送速度を減
                        少することができます。
                        0             ECN を無効にします。
                        1             着信接続が、ECN を要求することを許可しま
                                      す。発信接続は、ECN を要求します。
                        2             着信接続が、ECN を要求することを許可しま
                                      す。発信接続は、ECN を要求しません。(デ
                                      フォルト)

     ecn.maxretries     特定の接続のとき、ECN を無効にする前の (SYN または
                        SYN/ACK の再送の) 再試行の数。これは、壊れているファイ
                        アウォールがネットワーク経路にあるとき、接続の確立に役
                        に立つために必要です。

     pmtud_blackhole_detection
                        自動的なパス MTU ブラックホール検出を有効にします。MSS
                        のサイズのセグメントの再送信する場合に、OS は、それが
                        MTU 問題であるかどうかをチェックするために MSS を低下
                        させます。現在の MSS が、試みる
                        (net.inet.tcp.pmtud_blackhole_mssnet.inet.tcp.v6pmtud_blackhole_mss) への設定された値よ
                        り大きいなら、それは、この値に設定され、そうでなけれ
                        ば、MSS は、デフォルト値 (net.inet.tcp.mssdfltnet.inet.tcp.v6mssdflt) に設定されます。設定すること
                        は、次の通りです:
                        0             パス MTU ブラックホール検出を無効にしま
                                      す。
                        1             IPv4 と IPv6 のためのパス MTU ブラック
                                      ホール検出を有効にします。
                        2             IPv4 のためだけパス MTU ブラックホール検
                                      出を有効にします。
                        3             IPv6 のためだけパス MTU ブラックホール検
                                      出を有効にします。

     pmtud_blackhole_mss
                        PMTU ブラックホール検出がオンにされたなら、IPv4 に対し
                        て試みる MSS。

     v6pmtud_blackhole_mss
                        PMTU ブラックホール検出がオンにされたなら、IPv6 に対し
                        て試みる MSS。

     fastopen.acceptany
                        0 以外のとき、すべてのクライアントが供給する TFO クッ
                        キーは、有効であるとみなされます。デフォルトは、0 で
                        す。

     fastopen.autokey   これと net.inet.tcp.fastopen.server_enable が 0 でない
                        とき、新しいキーは、この指定された秒数後に自動的に生成
                        されます。デフォルトは、120 です。

     fastopen.ccache_bucket_limit
                        クライアントのクッキーのキャッシュバケットのエントリの
                        最大数です。TCP_FASTOPEN_CCACHE_BUCKET_LIMIT_DEFAULT
                        カーネルオプションで調整するか、または loader(8)net.inet.tcp.fastopen_ccache_bucket_limit を設定するこ
                        とでデフォルト値を調整することができます。

     fastopen.ccache_buckets
                        クライアントのクッキーのキャッシュバケットの数。読み込
                        み専用です。この値は、
                        TCP_FASTOPEN_CCACHE_BUCKETS_DEFAULT カーネルオプショ
                        ン、または loader(8)fastopen.ccache_buckets を設定
                        することで調整することができます。

     fastopen.ccache_list
                        クライアントのクッキーキャッシュを印刷 (表示) します。
                        読み込み専用です。

     fastopen.client_enable
                        0 であるとき、新しいアクティブな (すなわち、クライアン
                        トの) TFO 接続を作成することができません。有効から無効
                        への移行で、クライアントのクッキーのキャッシュは、クリ
                        アされ、無効になります。有効から無効への移行は、進行中
                        のアクティブな TFO 接続に影響しません。新しい接続が確
                        立されなくなるだけです。デフォルトは、0 です。

     fastopen.keylen    バイト単位の鍵の長さ。読み込み専用です。

     fastopen.maxkeys   サポートされている鍵の最大数。読み込み専用です。

     fastopen.maxpsks   サポートされる事前の共有鍵の最大数。読み込み専用です。

     fastopen.numkeys   現在インストールされている鍵の数。読み込み専用です。

     fastopen.numpsks   現在インストールされている事前の共有鍵の数。読み込み専
                        用です。

     fastopen.path_disable_time
                        新しいアクティブな (すなわち、クライアント) TFO 接続を
                        作成しよう試みる間に失敗が生じるとき、タプル
                        {client_ip, server_ip, server_port} によって決定され
                        る、同じパスで新しいアクティブな接続は、この秒数のため
                        に強制的に非 TFO になります。パスの無効化メカニズム
                        は、クライアントのクッキーのキャッシュエントリに格納さ
                        れる状態に頼っているので、無効化期間が経過する前に、対
                        応するクライアントのクッキーのキャッシュのエントリがリ
                        ソースの圧迫によって再利用されるなら、与えられたパスの
                        無効化時間が短縮される可能性があることに注意してくださ
                        い。デフォルトは、
                        TCP_FASTOPEN_PATH_DISABLE_TIME_DEFAULT です。

     fastopen.psk_enable
                        0 でないとき、事前の共有鍵 (PSK) モードは、すべての
                        TFO サーバのために有効にされます。有効から無効への移行
                        で、すべてのインストールされている事前の共有鍵は、削除
                        されます。デフォルトは、0 です。

     fastopen.server_enable
                        0 のとき、新しいパッシブ (すなわち、サーバ) TFO 接続
                        は、作成することができません。有効から無効への移行で、
                        すべてのインストールされている鍵と事前の共有鍵は、削除
                        されます。無効から有効への移行で、fastopen.autokey が
                        0 でなく、インストールされた鍵がないなら、新しい鍵は、
                        直ちに生成されます。有効から無効への移行は、進行中のあ
                        らゆるパッシブ TFO 接続に影響しません。新しい接続が確
                        立されるのを防止するだけです。デフォルトは、0 です。

     fastopen.setkey    この sysctl に net.inet.tcp.fastopen.keylen バイトを書
                        き込むことによって、新しい鍵をインストールします。

     fastopen.setpsk    この sysctl に net.inet.tcp.fastopen.keylen バイトを書
                        き込むことによって、新しい事前の共有鍵をインストールし
                        ます。

     hostcache.enable   TCP ホストキャッシュは、同じホスト間の接続の将来の性能
                        を向上させるために、接続の詳細とメトリクスをキャッシュ
                        するために使用されます。TCP 接続が完了すると、ホスト
                        は、いくらかの定義された期間のための接続のための情報を
                        キャッシュします。
                        0             ホストのキャッシュを無効にします。
                        1             ホストのキャッシュを有効にします。(デ
                                      フォルト)

     hostcache.purgenow
                        いったんあらゆる値を設定すると、すべてのエントリを直ち
                        に消去します。これを 2 に設定することは、また、ハッ
                        シュのソルトの再 seed します。

     hostcache.purge    ホストキャッシュのエントリの次の切り詰めですべてのエン
                        トリの有効起源が切れます。0 以外の設定は、いったん消去
                        が実行されると、0 にリセットされます。
                        0             ホストキャッシュを切り詰めるとき、すべて
                                      のエントリを消去しません。(デフォルト)
                        1             次の切り詰めを行うとき、すべてのエントリ
                                      を消去します。
                        2             すべてのエントリを削除し、また、ハッシュ
                                      のソルトを再 seed します。

     hostcache.prune    期限切れのホストキャッシュのエントリを切り詰める間の秒
                        単位の時間。デフォルトは、300 (5 分) です。

     hostcache.expire   度のくらい長いエントリが最後にアクセスされてからホスト
                        キャッシュに保存されるかの秒単位の時間。デフォルトは、
                        3600 (1 時間) です。

     hostcache.count    ホストキャッシュの現在のエントリ数。

     hostcache.bucketlimit
                        同じハッシュに対するエントリの最大数です。デフォルト
                        は、30 です。

     hostcache.hashsize
                        TCP hostcache ハッシュテーブルのサイズです。この数値
                        は、2 のべき乗でなければならず、そうでなければ、拒否さ
                        れます。デフォルトは、512 です。

     hostcache.cachelimit
                        hostcache のための全体的なエントリの制限。デフォルト
                        は、hashsize * bucketlimit です。

     hostcache.histo    ホストキャッシュのハッシュ使用率のヒストグラムを提供し
                        ます。

     hostcache.list     ホストキャッシュの現在のすべてのエントリの完全なリスト
                        を提供します。

     functions_available
                        利用可能な TCP 関数ブロックのリスト (TCP スタック)。

     functions_default  デフォルトの TCP 関数ブロック (TCP スタック)。

     functions_inherit_listen_socket_stack
                        listen (接続を受け付け) するソケットの tcp スタックを
                        継承するか、または functions_default によって定義され
                        るように、現在のシステムのデフォルト tcp スタックを使
                        用するかどうかを決定します。デフォルトは、真 (true) で
                        す。

     insecure_rst       RST セグメントを受け付けるための RFC5961 の代わりに
                        RFC793 で定義されている基準 (criterias) を使用します。
                        デフォルトは、false です。

     insecure_syn       SYN セグメントを受け付けるための RFC5961 の代わりに
                        RFC793 で定義されている基準 (criterias) を使用します。
                        デフォルトは、false です。

     ts_offset_per_conn
                        TCP タイムスタンプを初期化するとき、ホストごとのペアオ
                        フセットの代わりに接続されたオフセットごとに使用しま
                        す。デフォルトは、RFC 7323 で推奨されるように接続オフ
                        セットごとに使用することです。

     perconn_stats_enable
                        stats(3) フレームワークを使用してすべての接続のための
                        統計のデフォルトの収集を制御します。0 は、無効にし、1
                        は、有効にし、2 は、同じ設定を受信するグループのすべて
                        の接続でログ id 接続グループに渡ってランダムサンプルを
                        有効にします。

     perconn_stats_sample_rates
                        stats(3) サンプリングが有効にされるとき、テンプレート
                        サンプリングレートごとに制御する template_spec=percent
                        キー値ペアの CSV リスト。

     udp_tunneling_port
                        ローカルの UDP カプセル化ポートです。0 の値は、UDP カ
                        プセル化が無効であることを示します。デフォルトは、0 で
                        す。

     udp_tunneling_overhead
                        UDP カプセル化を使用するとき、考慮されるオーバヘッド。
                        ミドルボックスによる MSS クランプは、ほとんど機能しな
                        いかもしれなしので、(UDP ヘッダのサイズの) 8 より大き
                        い値もサポートされています。サポートされる値は、8 と
                        1024 の間です。デフォルトは、8 です。

エラー
     ソケット操作は、失敗すれば、次のエラーのうちの 1 つを返します:

     [EISCONN]          既に接続があるソケットに接続を確立しようとしたとき。

     [ENOBUFS] または [ENOMEM]
                        システムが内部のデータ構造のためのメモリを使い果たすと
                        き。

     [ETIMEDOUT]        接続が過度の再送信のため切れたとき。

     [ECONNRESET]       リモートピア (相手側) が強制的に接続をクローズさせられ
                        るとき。

     [ECONNREFUSED]     リモートピア (相手側) が積極的に接続の確立を拒絶すると
                        き (通常、どんなプロセスもポートを listen (接続を受け
                        付け) していないので)。

     [EADDRINUSE]       既に割り付けられたポートがあるソケットを作成する試みを
                        するとき。

     [EADDRNOTAVAIL]    ネットワークインタフェースが存在しないネットワークアド
                        レスでソケットを作成する試みをするとき。

     [EAFNOSUPPORT]     ソケットをマルチキャストアドレスにバインドするか、また
                        は接続する試みをするとき。

     [EINVAL]           セッションの無効のポイントで TCP 関数ブロックを変更し
                        ようとするとき。

     [ENOENT]           利用可能ではない TCP 関数ブロックを使用しようとすると
                        き。

関連項目
     getsockopt(2), socket(2), stats(3), sysctl(3), blackhole(4), inet(4),
     intro(4), ip(4), ktls(4), mod_cc(4), siftr(4), syncache(4), tcp_bbr(4),
     tcp_rack(4), setkey(8), tcp_functions(9)

     V. Jacobson, B. Braden, and D. Borman, TCP Extensions for High
     Performance, RFC 1323.

     D. Borman, B. Braden, V. Jacobson, and R. Scheffenegger, TCP Extensions
     for High Performance, RFC 7323.

     A. Heffernan, Protection of BGP Sessions via the TCP MD5 Signature
     Option, RFC 2385.

     K. Ramakrishnan, S. Floyd, and D. Black, The Addition of Explicit
     Congestion Notification (ECN) to IP, RFC 3168.

歴史
     TCP プロトコルは、4.2BSD で登場しました。ウィンドウスケーリングとタイムス
     タンプに関する RFC 1323 拡張は、4.4BSD で追加されました。TCP_INFO オプ
     ションは、Linux 2.6 で導入され、変更される可能性があります。

FreeBSD 13.2                   November 7, 2022                   FreeBSD 13.2

Table of Contents

FreeBSD マニュアル検索