UDPLITE
Section: Linux Programmer's Manual (7)
Updated: 2008-12-03
Index
JM Home Page
roff 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 自体は新たなエラーは追加していない。
バグ
glibc によるサポートがない場合は、以下の定義を行う必要がある。
#define IPPROTO_UDPLITE 136
#define UDPLITE_SEND_CSCOV 10
#define UDPLITE_RECV_CSCOV 11
ファイル
/proc/net/snmp
- UDP-Litev4 の基本的な統計情報カウンター。
/proc/net/snmp6
- UDP-Litev6 の基本的な統計情報カウンター。
バージョン
UDP-Litev4/v6 は Linux 2.6.20 で初めて登場した。
関連項目
udp(7),
ip(7),
ipv6(7),
socket(7)
RFC 3828 for the Lightweight User Datagram Protocol (UDP-Lite)
Documentation/networking/udplite.txt
Index
- 名前
-
- 書式
-
- 説明
-
- アドレスのフォーマット
-
- ソケットオプション
-
- エラー
-
- バグ
-
- ファイル
-
- バージョン
-
- 関連項目
-
This document was created by
man2html,
using the manual pages.
Time: 03:26:59 GMT, April 25, 2010