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
名称 | 書式 | 解説 | 使用例 | 診断 | 関連項目 | 規格
IP6(4)             FreeBSD カーネルインタフェースマニュアル             IP6(4)

名称
     ip6 -- インターネットプロトコルバージョン 6 (IPv6) ネットワークレイヤ
     (層)

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

     int
     socket(AF_INET6, SOCK_RAW, proto);

解説
     IPv6 ネットワーク層 (レイヤ) は、データを転送するために IPv6 プロトコル
     ファミリによって使用されます。IPv6 パケットは、アプリケーションに渡される
     ときペイロード (訳注: ヘッダ部を除いたデータの本体) コンテンツ (内容) の
     一部として提供されない IPv6 ヘッダを含んでいます。IPv6 ヘッダオプション
     は、このプロトコルの振る舞いに影響して、直接低レベルで IPv6 メッセージを
     処理する ``生のソケット'' と同様に (tcp(4)udp(4) プロトコルのような)
     高レベルのプロトコルによって使用され、新しいプロトコルと特殊目的のアプリ
     ケーションの開発に役立ちます。

   ヘッダ
     すべての IPv6 パケットは、IPv6 ヘッダで始まります。カーネルによって受信さ
     れたデータがアプリケーションに渡されるとき、生のソケットが使用されている
     ときでさえ、このヘッダは、バッファに含まれていません。同様に、アプリケー
     ションから転送されるデータがカーネルに送られるとき、バッファは、IPv6 ヘッ
     ダを調べません: カーネルは、常にヘッダを構築します。受信れたパケットから
     IPv6 ヘッダに直接アクセスして、カーネルに渡されたバッファの一部としてそれ
     らを指定するためには、リンクレベルアクセス (例えば、bpf(4)) を代わりに利
     用しなければなりません。

     ヘッダには、次の定義があります:

           struct ip6_hdr {
                union {
                     struct ip6_hdrctl {
                          uint32_t  ip6_un1_flow;  /* フロー ID の 20 ビット */
                          uint16_t  ip6_un1_plen;  /* ペイロード長 */
                          uint8_t   ip6_un1_nxt;   /* 次のヘッダ */
                          uint8_t   ip6_un1_hlim;  /* 中継限界数 (hop limit) */
                     } ip6_un1;
                     uint8_t ip6_un2_vfc;  /* バージョンとクラス */
                } ip6_ctlun;
                struct in6_addr ip6_src;   /* 発信元 (始点) アドレス
                                              (source address) */
                struct in6_addr ip6_dst;   /* 宛先 (終点) アドレス
                                              (destination address) */
           } __packed;

           #define ip6_vfc         ip6_ctlun.ip6_un2_vfc
           #define ip6_flow        ip6_ctlun.ip6_un1.ip6_un1_flow
           #define ip6_plen        ip6_ctlun.ip6_un1.ip6_un1_plen
           #define ip6_nxt         ip6_ctlun.ip6_un1.ip6_un1_nxt
           #define ip6_hlim        ip6_ctlun.ip6_un1.ip6_un1_hlim
           #define ip6_hops        ip6_ctlun.ip6_un1.ip6_un1_hlim

     すべてのフールドは、ネットワークバイト順です。どんなオプション指定 (下記
     の「オプション」参照) もネットワークバイト順で指定しなければなりません。

     ip6_flow は、フロー ID を指定します。ip6_plen は、ペイロードの長さを指定
     します。ip6_nxt は、次のヘッダのタイプを指定します。ip6_hlim は、中継限界
     数 (hop limit) を指定します。

     ip6_vfc の最上位 4 ビットは、クラスを指定し、下位 4 ビットは、バージョン
     を指定します。

     ip6_srcip6_dst は、発信元 (始点) アドレスと宛先 (終点) アドレスを指定
     します。

     IPv6 ヘッダは、次の一般的な定義で始まるいくつもの拡張ヘッダが続きます:

           struct ip6_ext {
                uint8_t ip6e_nxt;
                uint8_t ip6e_len;
           } __packed;

   オプション
     IPv6 は、パケットのヘッダオプションがプロトコルの振る舞いを操作することを
     許します。これらのオプションと他のコントロール要求は、レベル IPPROTO_IPV6
     で recvmsg(2)sendmsg(2) の付属のデータを使用することによって、
     getsockopt(2)setsockopt(2) システムコールでアクセスされます。それら
     は、IPv6 ヘッダと拡張ヘッダ中のフィールドの大部分にアクセスするために使用
     することができます。

     次のソケットオプションがサポートされています:

     IPV6_UNICAST_HOPS int *
             このソケットに送信された発信ユニキャストデータグラムのためのデ
             フォルトの中継限界数 (hop limit) ヘッダフィールドを取得するか、ま
             たは設定します。

     IPV6_MULTICAST_IF u_int *
             マルチキャストパケットが送信されるインタフェースを取得するか、ま
             たは設定します。複数のインタフェースがあるホストに関しては、それ
             ぞれのマルチキャスト送信は、プライマリネットワークインタフェース
             から送信されます。インタフェースは、if_nametoindex(3) によって提
             供されるインデックスとして指定されます。0 の値は、デフォルトのイ
             ンタフェースを指定します。

     IPV6_MULTICAST_HOPS int *
             このソケットに送信された発信マルチキャストデータグラムのためのデ
             フォルトの中継限界数 (hop limit) ヘッダフィールドを取得するか、ま
             たは設定します。このオプションは、マルチキャストデータグラム送信
             のスコープを制御します。

             1 の中継限界数 (hop limit) があるデータグラムは、ローカルネット
             ワークを超えて転送されません。0 の中継限界数 (hop limit) がある
             データグラムは、どんなネットワークにも転送されませんが、送信ホス
             トが宛先 (終点) グループに属していて、マルチキャストループバック
             (下記参照) が送信ソケット上で無効にされないなら、ローカルには配信
             されます。1 以上の中継限界数 (hop limit) があるデータグラムは、
             (mrouted(8) (ports/net/mrouted) のような) マルチキャストルータが
             ローカルネットワークにアタッチされているなら、他のネットワークに
             転送されます。

     IPV6_MULTICAST_LOOP u_int *
             マルチキャストデータグラムが送信ホストが属するグループに送信され
             るとき、ローカルの配信のためにマルチキャストデータグラムがループ
             バックするかどうかに関する状態を取得するか、または設定します。

             このオプションは、それら自身の送信を受信するオーバヘッドを取り除
             くことによって (ルータデーモンのような) 単一のホスト上で 1 つ以下
             のインスタンスがあるアプリケーションの性能を向上させます。一般的
             に、(会議プログラムのような) 単一のホスト上で 1 つ以上のインスタ
             ンスがある、または送信側が (時間問い合わせプログラムのような) 宛
             先 (終点) グループに属さないアプリケーションでそれを使用するべき
             ではありません。

             1 以上の中継限界数 (hop limit) があるデータグラムの送信は、ホスト
             がその他のインタフェースで宛先 (終点) グループに属すなら、それが
             送信されたことによって異なったインタフェースで送信ホストに配信さ
             れます。マルチキャストループバック制御オプションは、そのような配
             信のときに効果がありません。

     IPV6_JOIN_GROUP struct ipv6_mreq *
             マルチキャストグループに加わります。ホストは、グループに送られた
             データグラムを受信する前にマルチキャストグループのメンバにならな
             ければなりません。

             struct ipv6_mreq {
                     struct in6_addr ipv6mr_multiaddr;
                     unsigned int    ipv6mr_interface;
             };

             ipv6mr_interface は、ホストがマルチホームであるるなら、デフォルト
             マルチキャストインタフェースを選ぶために、または、特定のマルチ
             キャスト能力があるインタフェースのインデックスのために 0 に設定さ
             れます。メンバシップは、単一のインタフェースに関連しています。マ
             ルチホームホストで実行しているプログラムは、1 つ以上のインタ
             フェースで同じグループにに加わる必要があります。

             マルチキャストアドレスが不特定 (すなわち、すべて 0) であるなら、
             すべてのマルチキャストアドレスからのメッセージは、このグループに
             よって受け付けられます。この値に設定することは、スーパユーザの特
             権が必要であることに注意してください。

     IPV6_LEAVE_GROUP struct ipv6_mreq *
             関連するマルチキャストグループからメンバシップを脱会します。メン
             バシップは、ソケットがクローズされるときかプロセスが終了すると
             き、自動的に脱会されます。

     IPV6_PORTRANGE int *
             カーネルが自動的にローカルアドレスをこのソケットにバインドすると
             き、短命のポートの割り付けポリシを取得するか、または設定します。
             次の値が利用可能です:

             IPV6_PORTRANGE_DEFAULT  予約されていないポート (異なったものにつ
                                     いては、ip(4) 参照) の正規の範囲を使用し
                                     ます。
             IPV6_PORTRANGE_HIGH     高い範囲を使用します (異なったものについ
                                     ては、ip(4) 参照)。
             IPV6_PORTRANGE_LOW      低く予約された範囲 (600-1023、ip(4) 参照)
                                     を使用します。

     IPV6_PKTINFO int *
             その後の recvmsg(2) 呼び出しでペイロードに伴う付属のデータとして
             提供されるその後のパケットに関する追加情報かどうかを取得するか、
             または設定します。返された付属データで次の構造体に情報は格納され
             ます:

             struct in6_pktinfo {
                     struct in6_addr ipi6_addr;    /* src/dst IPv6 アドレス */
                     unsigned int    ipi6_ifindex; /* send/recv if index */
             };

     IPV6_HOPLIMIT int *
             その後の recvmsg(2) 呼び出しでペイロードに伴う付属のデータとして
             提供されるその後のパケットからの中継限界数 (hop limit) のヘッダ
             フィールドかどうかを取得するか、または設定します。値は、返された
             付属のデータの int として格納されます。

     IPV6_HOPOPTS int *
             その後の recvmsg(2) 呼び出しでペイロードに伴う付属のデータとして
             提供されるその後のパケットからの中継点ごと (hop-by-hop) のオプ
             ションかどうかを取得するか、または設定します。オプションは、返さ
             れた付属のデータで次の構造体に格納されます:

             struct ip6_hbh {
                     uint8_t ip6h_nxt;       /* 次のヘッダ */
                     uint8_t ip6h_len;       /* 8 オクテットのユニットの長さ */
             /* followed by options */
             } __packed;

             inet6_option_space() ルーチンとルーチンのファミリは、このデータを
             操作するために使用されます。

             このオプションは、スーパユーザの特権を必要とします。

     IPV6_DSTOPTS int *
             その後の recvmsg(2) 呼び出しでペイロードに伴う付属のデータとして
             提供されるその後のパケットからの宛先 (終点) のオプションかどうか
             を取得するか、または設定します。オプションは、返された付属のデー
             タで次の構造体に格納されます:

             struct ip6_dest {
                     uint8_t ip6d_nxt;       /* 次のヘッダ */
                     uint8_t ip6d_len;       /* 8 オクテットのユニットの長さ */
             /* followed by options */
             } __packed;

             inet6_option_space() ルーチンとルーチンのファミリは、このデータを
             操作するために使用されます。

             このオプションは、スーパユーザの特権を必要とします。

     IPV6_TCLASS int *
             このソケットで発信データグラムに使用されるトラフィッククラス
             フィールドの値を取得するか、または設定します。値は、-1 と 255 の
             間でなければなりません。-1 の値は、デフォルトに値をリセットしま
             す。

     IPV6_RECVTCLASS int *
             その後の recvmsg(2) 呼び出しでペイロード (パケットの本体) ととも
             に付属のデータとして、トラフィッククラスヘッダフィールドを提供す
             るかどうかの状態を取得するか、または設定します。ヘッダフィールド
             は、タイプ int の単一の値として格納されます。

     IPV6_RTHDR int *
             その後の recvmsg(2) 呼び出しでペイロードに伴う付属のデータとして
             提供されるその後のパケットからの経路制御 (routing) ヘッダかどうか
             を取得するか、または設定します。ヘッダは、返された付属のデータで
             次の構造体に格納されます:

             struct ip6_rthdr {
                     uint8_t ip6r_nxt;       /* 次のヘッダ */
                     uint8_t ip6r_len;       /* 8 オクテットのユニットの長さ */
                     uint8_t ip6r_type;      /* 経路制御タイプ */
                     uint8_t ip6r_segleft;   /* セグメント left */
             /* 経路制御タイプ特有データが続く */
             } __packed;

             inet6_option_space() ルーチンとルーチンのファミリは、このデータを
             操作するために使用されます。

             このオプションは、スーパユーザの特権を必要とします。

     IPV6_PKTOPTIONS struct cmsghdr *
             ソケット上で送信されるか、または受信される最後のパケット上ですべ
             てのヘッダオプションと拡張ヘッダを一度に取得するか、または設定し
             ます。すべてのオプションは、mbuf のサイズに適合しなければなりませ
             ん mbuf(9) 参照)。オプションは、対応する値が続く、ひと続きの
             cmsghdr 構造として指定されます。cmsg_level は、IPPROTO_IPV6 に、
             cmsg_type は、このリスト中の他の値の 1 つに、および後続するデータ
             は、オプション値に設定されます。オプションを設定するとき、
             setsockopt(2) への長さ optlen が 0 であるなら、すべてのヘッダオプ
             ションは、それらのデフォルト値にリセットされます。そうでなけれ
             ば、長さは、消費するひと続きのコントロールメッセージのサイズを指
             定するべきです。

             オプション値を指定するために sendmsg(2) を使用する代わりに、必要
             なヘッダオプションに対応するこれらの呼び出しに使用される付属の
             データは、setsockopt(2) への引数として提供されるコントロールメッ
             セージのシリーズにおけるコントロールメッセージとして直接指定され
             ます。

     IPV6_CHECKSUM int *
             16 ビットのチェックサムがどこに位置付けられているかのパケット中の
             バイトオフセットを取得するか、または設定します。設定されると、こ
             のバイトオフセットは、着信パケットは、どこに格納されたそれらの
             データのチェックサムがあるはずか、そして、発信パケットは、どこに
             カーネルによって計算され格納されたそれらのデータのチェックサムが
             あるかです。-1 の値は、発信パケットでチェックサムがチェックされな
             い、そして着信パケットでチェックサムが計算されず格納されないこと
             を指定します。ICMPv6 ソケットのためのチェックサムのオフセットは、
             移動することもできず、オフにすることもできません。

     IPV6_V6ONLY int *
             IPv6 接続のみこのソケットに作ることができるかどうかを取得するか、
             または設定します。ワイルドカードソケットに関しては、これは、IPv6
             だけに制限して接続できます。

     IPV6_USE_MIN_MTU int *
             最小の IPv6 最大トランスミッションユニット (MTU) サイズがその後の
             発信データグラムのためにフラグメント化が起きないように避けるため
             に使用されるかどうかを取得するか、または設定します。

     IPV6_AUTH_LEVEL int *
             ipsec(4) 認証レベルを取得するか、または設定します。

     IPV6_ESP_TRANS_LEVEL int *
             ESP 転送レベルを取得するか、または設定します。

     IPV6_ESP_NETWORK_LEVEL int *
             ESP カプセル化レベルを取得するか、または設定します。

     IPV6_IPCOMP_LEVEL int *
             ipcomp(4) レベルを取得するか、または設定します。

     IPV6_PKTINFO, IPV6_HOPLIMIT, IPV6_HOPOPTS, IPV6_DSTOPTS と IPV6_RTHDR オ
     プションは、cmsg_level を IPPROTO_IPV6 に設定し、cmsg_type を個別のオプ
     ション名の値 (例えば、IPV6_HOPTLIMIT) に設定してその後の recvmsg(2) 呼び
     出しで、ペイロードの内容に伴う付属のデータを返します。また、これらのオプ
     ションは、呼び出しによって送信されるパケットでオプションを設定するために
     sendmsg(2) 中の付属の cmsg_type 値として直接使用されます。cmsg_level 値
     は、IPPROTO_IPV6 でなければなりません。これらのオプションにおいて、付属の
     データオブジェクト値の形式は、recvmsg(2) で受信されたときごとに説明される
     返り値と同様です。

     特定のパケット上でオプションを指定するために sendmsg(2) を使用すること
     は、UDP と生のソケットだけで動作することに注意してください。TCP ソケット
     上でパケットのためのヘッダオプションを操作するために、ソケットオプション
     だけを使用することができます。

     ある場合には、IPv6 ヘッダフィールドを操作するために定義された複数の API
     があります。良い例は、IPV6_PKTINFO オプションを通して、そして sendto(2)
     システムコールに渡されたソケットアドレスの sin6_scope_id フィールドを通し
     て IPV6_MULTICAST_IF ソケットオプションによって設定できる、マルチキャスト
     データグラムのための発信インタフェースです。

     これらの競合を解決するのは、実装に依存しています。この実装は、次の方法で
     値を決定します: 付属のデータ (すなわち、sendmsg(2)) を使用することによっ
     て指定されたオプションは、最初に検討されます。``sticky'' オプションを設定
     するために IPV6_PKTOPTIONS を使用することによって指定されたオプションは、
     2 番目に検討されます。個別、基本的で直接ソケットオプション (例えば、
     IPV6_UNICAST_HOPS) を使用することによって指定されたオプションは、3 番目に
     検討されます。そして、sendto(2) に供給されたソケットアドレスで指定された
     オプションは、最後に選択されます。

   マルチキャスティング
     IPv6 マルチキャスティングは、タイプ SOCK_DGRAM と SOCK_RAW の AF_INET6 ソ
     ケット上だけ、およびインタフェースドライバがマルチキャスティングをサポー
     トするネットワーク上だけでサポートされます。マルチキャストグループのメン
     バシップを操作するソケットオプション (上記参照) と他のマルチキャストオプ
     ションは、IPV6_MULTICAST_IF, IPV6_MULTICAST_HOPS, IPV6_MULTICAST_LOOP,
     IPV6_LEAVE_GROUP と IPV6_JOIN_GROUP を含みます。

   生のソケット
     生の IPv6 ソケットは、コネクションレスであり、通常、sendto(2)recvfrom(2) 呼び出しで使用され、connect(2) 呼び出しは、send(2) が代わりに
     使用できるように将来の発信パケットのための宛先 (終点) アドレスを固定する
     ために使用され、bind(2) 呼び出しは、カーネルに発信元 (始点) アドレスを選
     択させることの代わりに将来の発信パケットのための発信元 (始点) アドレスを
     固定するために使用されます。

     connect(2) またh bind(2) を使用することによって、生のソケット入力は、
     connect(2) が使用されたなら、それらの発信元 (始点) アドレスがソケットの宛
     先 (終点) アドレスに一致している唯一のパケットに制約され、bind(2) が使用
     されたなら、それらの宛先 (終点) アドレスがソケットの発信元 (始点) アドレ
     スに一致しているパケットに制約されます。

     socket(2) への proto 引数が 0 であるなら、デフォルトプロトコル
     (IPPROTO_RAW) が発信パケットのために使用されます。着信パケットに関して、
     カーネルによって認識されたプロトコルは、いくつかの ICMPv6 メッセージを除
     いて、アプリケーションソケット (例えば、tcp(4)udp(4)) に渡されませ
     ん。生のソケットに渡されなかった ICMPv6 メッセージは、エコー、タイムスタ
     ンプ、およびアドレスマスク要求を含んでいます。proto が 0 でなければ、この
     プロトコルのパケットだけがソケットに渡されます。

     また、それらが再構築されるまで、IPv6 フラグメントは、アプリケーションソ
     ケットに渡されません。すべてのパケットの受信が要求されているなら、(bpf(4)
     のような) リンクレベルアクセスが代わりに使用されなければなりません。

     発信パケットは、自動的に (ソケットが作成された宛先 (終点) アドレスとプロ
     トコル番号に基づいている) それらに IPv6 ヘッダを先頭に追加します。着信パ
     ケットは、IPv6 ヘッダまたは拡張ヘッダなしでアプリケーションに受け取られま
     す。

     発信パケットは、それらが大き過ぎるなら、カーネルによって自動的にフラグメ
     ント化されます。着信パケットは、パケットフラグメントまたはフラグメント
     ヘッダが生のソケット上で決して見られないので、生のソケットに送信する前に
     再構築されます。

使用例
     以下は、次のパケット受信時に中継限界数 (hop limit) を決定します:

     struct iovec iov[2];
     u_char buf[BUFSIZ];
     struct cmsghdr *cm;
     struct msghdr m;
     int optval;
     bool found;
     u_char data[2048];

     /* ソケット作成. */

     (void)memset(&m, 0, sizeof(m));
     (void)memset(&iov, 0, sizeof(iov));

     iov[0].iov_base = data;         /* パケットのペイロードのためのバッファ */
     iov[0].iov_len = sizeof(data);  /* 予期されるパケット長 */

     m.msg_name = &from;             /* ピアの sockaddr_in6 */
                                     /* 訳注: ピアは通信相手 */
     m.msg_namelen = sizeof(from);
     m.msg_iov = iov;
     m.msg_iovlen = 1;
     m.msg_control = (caddr_t)buf;   /* コントロールメッセージのバッファ */
     m.msg_controllen = sizeof(buf);

     /*
      * ペイロードと共に返される受信パケットからの
      * 中継限界数の値を有効にします。
      */
     optval = 1;
     if (setsockopt(s, IPPROTO_IPV6, IPV6_HOPLIMIT, &optval,
         sizeof(optval)) == -1)
             err(1, "setsockopt");

     found = false;
     do {
             if (recvmsg(s, &m, 0) == -1)
                     err(1, "recvmsg");
             for (cm = CMSG_FIRSTHDR(&m); cm != NULL;
                  cm = CMSG_NXTHDR(&m, cm)) {
                     if (cm->cmsg_level == IPPROTO_IPV6 &&
                         cm->cmsg_type == IPV6_HOPLIMIT &&
                         cm->cmsg_len == CMSG_LEN(sizeof(int))) {
                             found = true;
                             (void)printf("hop limit: %d\n",
                                 *(int *)CMSG_DATA(cm));
                             break;
                     }
             }
     } while (!found);

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

     [EISCONN]        既に接続があるソケットに接続を確立しようとしたとき、また
                      は宛先 (終点) アドレスが指定されたデータグラムを送信しよ
                      うとし、ソケットが既に接続されているとき。

     [ENOTCONN]       データグラムを送信しようと試みるが、宛先 (終点) アドレス
                      が指定されていない、そしてソケットが接続されていないと
                      き。

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

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

     [EACCES]         特権のないプロセスによって生の (raw) IPv6 ソケットを作成
                      する試みをするとき。

     ヘッダオプションを設定するか取得するとき、次の IPv6 特有のエラーが発生す
     るかもしれません:

     [EINVAL]         未知のソケットオプション名が与えられました。

     [EINVAL]         付属のデータオブジェクトが不適切に形成されました。

関連項目
     getsockopt(2), recv(2), send(2), setsockopt(2), socket(2), CMSG_DATA(3),
     if_nametoindex(3), bpf(4), icmp6(4), inet6(4), ip(4), netintro(4),
     tcp(4), udp(4)

     W. Stevens and M. Thomas, Advanced Sockets API for IPv6, RFC 2292,
     February 1998.

     S. Deering and R. Hinden, Internet Protocol, Version 6 (IPv6)
     Specification, RFC 2460, December 1998.

     R. Gilligan, S. Thomson, J. Bound, and W. Stevens, Basic Socket Interface
     Extensions for IPv6, RFC 2553, March 1999.

     W. Stevens, B. Fenner, and A. Rudoff, UNIX Network Programming, third
     edition.

規格
     ソケットオプションの大部分は、RFC 2292 または RFC 2553 で定義されていま
     す。IPV6_V6ONLY ソケットオプションは、RFC 3493 セクション 5.3 で定義され
     ています。IPV6_PORTRANGE ソケットオプションと競合解決規則は、RFC で定義さ
     れていないので、実装に依存していると考えらます。

FreeBSD 12.2                    August 19, 2018                   FreeBSD 12.2

Table of Contents

FreeBSD マニュアル検索