Manpages

名 前

x25 − ITU−T X.25 / ISO−8208 プ ロ ト コ ル イ ン タ ー フ ェ ー ス

書 式

#include <sys/socket.h>
#include <linux/x25.h>

x25_socket = socket(AF_X25, SOCK_SEQPACKET, 0);

説 明

X25 ソ ケ ッ ト は X.25 パ ケ ッ ト 層 プ ロ ト コ ル に 対 す る イ ン タ ー フ ェ ー ス を 提 供 す る 。 こ れ に よ り 、 ア プ リ ケ ー シ ョ ン は パ ブ リ ッ ク な X.25 デ ー タ ネ ッ ト ワ ー ク で 通 信 す る こ と が で き る よ う に な る 。 X.25 は International Telecommunication Union’s recommendation X.25 (X.25 DTE−DCE mode) で 標 準 化 さ れ て い る 。 X25 ソ ケ ッ ト は 、 中 間 層 の な い X.25 ネ ッ ト ワ ー ク (X.25 DTE−DTE mode) で の 通 信 に も 用 い る こ と が で き る 。 DTE−DTE モ ー ド は ISO−8208 に 記 述 さ れ て い る 。 メ ッ セ ー ジ 境 界 は 保 存 さ れ る 。 ソ ケ ッ ト か ら の read(2) は 、 反 対 側 の ソ ケ ッ ト か ら の 対 応 す る write(2) と 同 じ 大 き さ の デ ー タ を 受 け 取 り 、 出 力 す る 。 必 要 が あ る 場 合 は 、 カ ー ネ ル が 長 い メ ッ セ ー ジ の 分 割 (segmenting) と 再 構 成 (reassembling) を 行 う 。 こ れ に は X.25 の M ビ ッ ト が 用 い ら れ る 。 メ ッ セ ー ジ サ イ ズ に は 、 ハ ー ド コ ー デ ィ ン グ さ れ た 上 限 は な い 。 し か し 、 一 時 的 に シ ス テ ム リ ソ ー ス が 足 り な か っ た り 、 他 の 制 約 (ソ ケ ッ ト メ モ リ ー バ ッ フ ァ ー の サ イ ズ 制 限 な ど ) が 効 い て し ま う と 、 長 い メ ッ セ ー ジ の 再 構 成 に は 失 敗 す る か も し れ な い 。 こ の 場 合 、 そ の X.25 接 続 は リ セ ッ ト さ れ る こ と に な る 。 ソ ケ ッ ト ア ド レ ス
AF_X25
ソ ケ ッ ト ア ド レ ス フ ァ ミ リ ー は 、 ネ ッ ト ワ ー ク ア ド レ ス を 表 す た め に struct sockaddr_x25 を 用 い る 。 こ れ は ITU−T recommendation X.121 で 定 義 さ れ て い る 。

struct sockaddr_x25 {
sa_family_t sx25_family; /* must be AF_X25 */
x25_address sx25_addr; /* X.121 Address */ };

sx25_addr に は char 配 列 x25_addr[] を 含 ま れ る 。 こ れ は 0 で 終 端 す る 文 字 列 と し て 解 釈 さ れ る 。 sx25_addr.x25_addr[] は 15 個 ま で の ASCII 文 字 を 含 む こ と が で き (終 端 の ヌ ル バ イ ト は 含 ま な い )、 こ れ が X.121 ア ド レ ス を な す 。 10 進 の 数 文 字 、 '0' か ら '9' ま で だ け が 許 さ れ る 。 ソ ケ ッ ト オ プ シ ョ ン 以 下 の X.25 特 有 の ソ ケ ッ ト オ プ シ ョ ン は 、 setsockopt(2) で 設 定 で き 、 getsockopt(2) で 取 得 で き る 。 こ の と き level 引 き 数 に は SOL_X25 を 指 定 す る 。
X25_QBITINCL

X.25 の Q ビ ッ ト (Qualified デ ー タ ビ ッ ト ) に ユ ー ザ ー が ア ク セ ス で き る か ど う か を コ ン ト ロ ー ル す る 。 整 数 の 引 数 を 取 る 。 0 に セ ッ ト す る と 、 Q ビ ッ ト は 発 信 パ ケ ッ ト に は 決 し て セ ッ ト さ れ ず 、 受 信 パ ケ ッ ト で は 無 視 さ れ る (デ フ ォ ル ト )。 1 に セ ッ ト す る と 、 ソ ケ ッ ト か ら 読 む 、 あ る い は ソ ケ ッ ト に 送 る メ ッ セ ー ジ そ れ ぞ れ に 先 頭 バ イ ト が 前 置 さ れ る 。 ソ ケ ッ ト か ら 読 ん だ デ ー タ で は 、 先 頭 バ イ ト が 0 だ と 、 こ の 到 着 デ ー タ パ ケ ッ ト に 対 応 す る Q ビ ッ ト は セ ッ ト さ れ て い な か っ た こ と に な る 。 先 頭 バ イ ト が 1 だ と 、 到 着 デ ー タ パ ケ ッ ト の Q ビ ッ ト が セ ッ ト さ れ て い た こ と に な る 。 ソ ケ ッ ト に 書 き 込 む デ ー タ の 先 頭 バ イ ト が 1 だ と 、 そ の 発 信 パ ケ ッ ト の Q ビ ッ ト を セ ッ ト す る 。 0 だ と 、 Q ビ ッ ト を セ ッ ト し な い 。

バ ー ジ ョ ン

AF_X25 プ ロ ト コ ル フ ァ ミ リ ー は Linux 2.2 の 新 機 能 で あ る 。

バ グ

X.25 PLP 実 装 は CONFIG_EXPERIMENTAL な の で 、 た く さ ん あ る だ ろ う 。 こ の man ペ ー ジ は 完 成 し て い な い 。 ま だ ア プ リ ケ ー シ ョ ン プ ロ グ ラ マ ー 用 の ヘ ッ ダ ー フ ァ イ ル が な い 。 カ ー ネ ル の ヘ ッ ダ ー フ ァ イ ル <linux/x25.h> を イ ン ク ル ー ド し な け れ ば な ら な い 。 CONFIG_EXPERIMENTAL な の で 、 将 来 の バ ー ジ ョ ン の イ ン タ ー フ ェ ー ス で は バ イ ナ リ 互 換 性 が 失 わ れ る か も し れ な い 。

X.25 N−Reset イ ベ ン ト は 、 ま だ ユ ー ザ ー プ ロ セ ス に 伝 播 し な い 。 し た が っ て リ セ ッ ト が 起 こ る と 、 デ ー タ は 通 知 無 し に 失 わ れ る 。

関 連 項 目

socket(2), socket(7)

Jonathan Simon Naylor: “The Re−Analysis and Re−Implementation of X.25.” The URL is ftp://ftp.pspt.fi/pub/ham/linux/ax25/x25doc.tgz">ftp://ftp.pspt.fi/pub/ham/linux/ax25/x25doc.tgz.

こ の 文 書 に つ い て

こ の man ペ ー ジ は Linux man−pages プ ロ ジ ェ ク ト の リ リ ー ス 3.79 の 一 部 で あ る 。 プ ロ ジ ェ ク ト の 説 明 と バ グ 報 告 に 関 す る 情 報 は http://www.kernel.org/doc/man−pages/ に 書 か れ て い る 。