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.3-RELEASE-K, 13.0-RELEASE-K から 13.2-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_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 の変数」のセクションの
                       keepinit を参照してくさい。

     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 エントリを見つけることができ
                       ないなら、システムは、あらゆる発信セグメントを送信せ
                       ず、あらゆる着信セグメントを落とします。

                       各落とされたセグメントは、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 のウィンドウのスケーリングとタイム
                        スタンプのオプションを実装します (デフォルトは、真で
                        す)。

     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 リサイクリン
                        グをブレークします。

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

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

     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 ブラックホール検出をオンに切り替えま
                        す。再送信の場合に、OS は、それが MTU 問題かどうかを
                        チェックするために MSS を低下させます。現在の MSS が試
                        みるために設定された値より大きいなら、それは、設定され
                        た値に設定され、そうでなければ、MSS は、デフォルト値
                        (net.inet.tcp.mssdfltnet.inet.tcp.v6mssdflt) に設
                        定されます。

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

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

     pmtud_blackhole_activated
                        ダウンシフトの試みで使用された設定された値の回数。

     pmtud_blackhole_activated_min_mss
                        ダウンシフトの試みで使用されたデフォルトの MSS の回
                        数。

     pmtud_blackhole_failed
                        MSS ダウンシフトの後でさえ継続される再転送のための接続
                        の数。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

関連項目
     getsockopt(2), socket(2), sysctl(3), blackhole(4), inet(4), intro(4),
     ip(4), mod_cc(4), siftr(4), syncache(4), setkey(8)

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

     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 11.2                   February 6, 2017                   FreeBSD 11.2

Table of Contents

FreeBSD マニュアル検索