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/ に書かれている。

関連キーワード

範囲   チェックサム   データグラム   プロトコル   ソケット   廃棄   パケット   define   udplite   軽量   socket   Lightweight   User   Datagram   Protocol   実装   拡張   可変   サポート   アドレス   受信   トラフィック   カーネル   proc   snmp

Linux マニュアル 一覧

関連するコマンド・関数

md5sum.1   sha224sum.1   sha256sum.1   sha384sum.1   sha512sum.1   b2sum.1
 

Index

名前
書式
説明
アドレスのフォーマット
ソケットオプション
エラー
ファイル
バージョン
バグ
関連項目
この文書について

This document was created by man2html, using the manual pages.
Time: 04:38:51 GMT, October 11, 2026