atalk - AppleTalk
プロトコルファミリー
#include <sys/types.h>
#include <netatalk/at.h>
AppleTalk
プロトコルファミリーは、
データグラム配送プロトコル
(Datagram Delivery Protocol, DDP) の
上位層のプロトコルの集合で、AppleTalk
アドレスフォーマットを使う。
AppleTalk ファミリーは SOCK_STREAM (ADSP),
SOCK_DGRAM (DDP), SOCK_RDM (ATP), SOCK_SEQPACKET (ASP)
を提供する。
現在のところカーネルには
DDP
のみが実装されている。
ATP と ASP
はユーザーレベルのライブラリで実装されている。
ADSP
の実装も計画されている。
AppleTalk アドレスは 3
バイトの大きさで、
ネットワークバイトオーダーで格納される。
インクルードファイル
<
netatalk/at.h> で AppleTalk
アドレスフォーマットが定義されている。
AppleTalk
プロトコルファミリーのソケットは、以下のアドレス構造体を使う。
struct sockaddr_at {
short sat_family;
u_char sat_port;
struct at_addr sat_addr;
char sat_zero[ 8 ];
};
ソケットのポートは
bind(2)
によって設定できる。
bind
のノードは常に、「そのノード」を表す
ATADDR_ANYNODE
でなければならない。
ネットは
ATADDR_ANYNET または
ATADDR_LATENET である。
ATADDR_ANYNET
はマシンの
(最初に設定される)「プライマリ」アドレスに対応する。
ATADDR_LATENET
になっていると、送信パケットのアドレスは送信時に決定される。
すなわち、後 (late)
で決まる。
ATADDR_LATENET
は、各ネットワークインターフェースに対して
ひとつずつソケットをオープンすることと等価である。
ソケットのポートと、プライマリアドレスまたは
ATADDR_LATENET の一方が
getsockname(2)
によって返される。
bind(2),
getsockname(2),
atalkd(8).