EN JA
UDP(4)
UDP(4) FreeBSD Kernel Interfaces Manual UDP(4)

名称

udpインターネットユーザデータグラムプロトコル

書式

#include < sys/types.h>
#include < sys/socket.h>
#include < netinet/in.h>

int
socket( AF_INET, SOCK_DGRAM, 0);

解説

UDP は、インターネットプロトコルファミリのための SOCK_DGRAM 抽象化をサポートするために使用される単純で信頼できないデータグラムプロトコルです。 UDP ソケットは、コネクションレスで、通常 sendto(2)recvfrom(2) 呼び出しで使用されますが、また connect(2) 呼び出しは、(その場合に、 recv(2) または read(2)send(2) または write(2) システムコールが使用される) 将来のパケットのための宛先を決めるために使用されます。

UDP アドレス形式は、 TCP によって使用されるものと同一です。特に、 UDP は、通常のインターネットアドレス形式に加えてポート識別子を提供しています。 UDP ポート空間は、 TCP ポート空間 (すなわち、 UDP ポートは、 TCP ポートに“接続”されない) と分離されていることに注意してください。さらに、ブロードキャスト (同報通信) パケットは、予約された“ブロードキャストアドレス”を使用することによって (基本的なネットワークが、これをサポートすると仮定して) 送信されます。このアドレスは、ネットワークインタフェース依存です。

IP トランスポート (転送) レベルのオプションは、 UDP と共に使用されます。 ip(4) を参照してください。

MIB の変数

udp プロトコルは、 sysctl(3) MIB の net.inet ブランチにおいて多くの変数を実装しています。
UDPCTL_CHECKSUM
(udp.checksum) udp チェックサムを有効にします (デフォルトで有効)。
UDPCTL_MAXDGRAM
(udp.maxdgram) 最大の発信 UDP データグラムサイズ
UDPCTL_RECVSPACE
(udp.recvspace) 着信 UDP データグラムのための最大領域
udp.log_in_vain
すべての udp データグラムについては、ソケットのリッスンがないポートに、接続試み (デフォルトで無効) のログに入れます。
udp.blackhole
データグラムがソケットのリッスンがないポートで受信するとき、 ICMP ポートの到達不可能メッセージを返しません。 (デフォルトで無効。 blackhole(4) を参照してください。)

エラー

ソケット操作は、返された次のエラーの 1 つで失敗します:
[ EISCONN]
既に接続があるソケットで接続を確立しようとするとき、または指定された宛先アドレスがあるデータグラムを送信しようとして、ソケットが、既に接続されているとき。
[ ENOTCONN]
データグラムを送信しようとしていますがが、宛先アドレスが、指定されず、ソケットが、接続されていないとき。
[ ENOBUFS]
システムが、内部データ構造のためのメモリを使い果たすとき。
[ EADDRINUSE]
既に割り付けられたポートでソケットを作成する試みが行われるとき。
[ EADDRNOTAVAIL]
ネットワークインタフェースが存在しないネットワークアドレスでソケットを作成する試みが行われたとき。

歴史

udp プロトコルは、 4.2BSD で登場しました。
June 5, 1993 FreeBSD