UDPLITE
Section: Linux Programmer's Manual (7)
Updated: 2017-09-15
Index JM Home Page
名前
udplite - 軽量なユーザーデータグラムプロトコル
書式
#include <sys/socket.h>
sockfd = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDPLITE);
説明
これは RFC 3828 に書かれている軽量なユーザーデータグラムプロトコル (Lightweight User Datagram Protocol; UDP-Lite) の実装である。
UDP-Lite は UDP (RFC 768) の拡張で、可変長のチェックサムをサポートしている。 このプロトコルが効果を発揮するのは、少しだけ壊れたデータグラムがあった場合に、 そのデータグラムを下位レイヤーのプロトコルに廃棄させるのではなく、 それを利用することができるような、ある種のマルチメディア転送においてである。
可変長のチェックサムの対象範囲は setsockopt(2) オプション経由で設定される。 このオプションが設定されていない場合、UDP と異なるのは 違う IP プロトコル識別子 (IANA 番号 136) を使用する点だけである。
UDP-Lite の実装は udp(7) の完全な拡張、すなわち API と API の動作は同じである。 これに加えて、2 つのソケットオプションがチェックサムの対象範囲を 制御するために提供されている。
アドレスのフォーマット
UDP-Litev4 は ip(7) で説明されている sockaddr_in アドレスを使用する。 UDP-Litev6 は ipv6(7) で説明されている sockaddr_in6 アドレスを使用する。
ソケットオプション
UDP-Lite のソケットオプションを設定/取得するには、 オプションレベル引数に IPPROTO_UDPLITE を指定して、取得時には getsockopt(2) を、設定時には setsockopt(2) を呼び出す。さらに、全ての IPPROTO_UDP のソケットオプションが UDP-Lite ソケットでも使用できる。 詳細は udp(7) を参照のこと。
以下の 2 つが UDP-Lite に固有のオプションである。
- UDPLITE_SEND_CSCOV
- このオプションは送信側のチェックサムの対象範囲を設定する。 int 型を引数として取り、設定可能な値の範囲は 0 から 2^16-1 までである。
- 値 0 はデータグラム全体が常にチェックサムの対象となることを意味する。 値 1〜7 は不正であり (RFC 3828 の 3.1 章)、範囲の設定として最小値である 8 に切り上げられる。
- IPv6 の jumbograms (巨大なデータグラム; RFC 2675) の場合には、 UDP-Litev6 のチェックサムの対象範囲は、RFC 3828 の 3.5 章にあるように、 先頭から 2^16-1 オクテットまでに限定される。 そのため、それより大きな値は 2^16-1 に黙って切り詰められる。 現在の対象範囲の値を知りたければ、いつでも getsockopt(2) を使って値を問い合わせることができる。
- UDPLITE_RECV_CSCOV
- これは受信側のチェックサムの対象範囲を設定するもので、 使用される引数形式と値の範囲は UDPLITE_SEND_CSCOV と同じである。 このオプションは、部分的なチェックサム対象範囲を持つトラフィックを 有効にするのに必要なわけではなく、トラフィックフィルターとして機能する。 このオプションが有効にすると、カーネルは指定されたチェックサム対象範囲 よりも「短かい」対象範囲を持つパケットを全て廃棄するようになる。
- UDPLITE_RECV_CSCOV の値が実際のパケットのチェックサム対象範囲よりも大きい場合、 受信したパケットは黙って廃棄される。 ただし、システムログに対して警告メッセージが生成されるかもしれない。
エラー
udp(7) について書かれている全てのエラーは返る可能性がある。 UDP-Lite 自体は新たなエラーは追加していない。
ファイル
- /proc/net/snmp
- UDP-Litev4 の基本的な統計情報カウンター。
- /proc/net/snmp6
- UDP-Litev6 の基本的な統計情報カウンター。
バージョン
UDP-Litev4/v6 は Linux 2.6.20 で初めて登場した。
バグ
glibc によるサポートがない場合は、以下の定義を行う必要がある。
#define IPPROTO_UDPLITE 136 #define UDPLITE_SEND_CSCOV 10 #define UDPLITE_RECV_CSCOV 11
関連項目
ip(7), ipv6(7), socket(7), udp(7)
RFC 3828 for the Lightweight User Datagram Protocol (UDP-Lite).
Linux カーネルソース内の Documentation/networking/udplite.txt
この文書について
この man ページは Linux man-pages プロジェクトのリリース 5.10 の一部である。プロジェクトの説明とバグ報告に関する情報は https://www.kernel.org/doc/man-pages/ に書かれている。
関連キーワード
UDPLITE,
範囲,
対象,
設定,
ソケット,
CSCOV,
IPPROTO,
エラー,
アドレス,
define
Linux マニュアル 一覧
[man1]
[man2]
[man3]
[man4]
[man5]
[man6]
[man7]
[man8]
[a]
[b]
[c]
[d]
[e]
[f]
[g]
[h]
[i]
[j]
[k]
[l]
[m]
[n]
[o]
[p]
[q]
[r]
[s]
[t]
[u]
[v]
[w]
[x]
[y]
[z]
Index
- 名前
- 書式
- 説明
-
- アドレスのフォーマット
- ソケットオプション
- エラー
- ファイル
- バージョン
- バグ
- 関連項目
- この文書について
This document was created by man2html, using the manual pages.
Time: 12:08:34 GMT, June 11, 2022