X25 7
目录
- NAME x25, PF_X25
- 总览
.B #include
.br .B #include .br x25_socket = socket(PF_X25, SOCK_SEQPACKET, 0); .SH 描述 X25 sockets 为 X.25 数据包层协议(packet layer protocol)提供接口。 这令应用程序可以使用标准的 ITU X.25 建议 (X.25 DTE-DCE 模式)在公共 X.25 数据网中进行通讯。 X25 socket 也可以在没有在 ISO-8208中描述的那样的 X.25 中介(X.25 DTE-DCE 模式)的网络进行通讯. .PP 信息分界的保持 - 对 socket 进行 .BR read(2) 得到的数据块与对端 socket 对应 .BR write(2) 动作输出的数据块是完全一样的. 如果必要,内核负责处理信息片段和重组长信息, 用的是 X.25 M-bit 方法(校注:请懂 x.25 的同志指正)。 对信息大小没有硬编码的上限。 但是重组长信息有时会失败 (比如系统资源暂时匮乏,或是出现其他的诸如此类的限制时)。 如果出现这种情况,X.25 连接将被重置。 .SH 套接口地址 SOCKET ADDRESS AF_X25 socket 地址族用 struct sockaddr_x25 代表 ITU-T X.121 规范中定义的网络地址。 .PP .RS .nf .ta 4n 18n 32n struct sockaddr_x25 { sa_family_t sx25_family; /* 必须是 AF_X25 */ x25_address sx25_addr; /* X.121 地址 */ }; .ta .fi .RE .PP .I sx25_addr 包含一个空零结尾的字符串 .I x25_addr[] 。 .I sx25_addr.x25_addr[] 由最多 15 个 ASCII 字符(不包括结束的 0)构成 X.121 地址。 只能使用数字 `0' 到 `9' 。 .SH 套接字选项 SOCKET OPTIONS 以下 X.25 相关的套接字选项 可以在级别参数设置为 .BR SOL_X25 时用 .BR setsockopt(2) 设定并可用 .BR getsockopt(2) 读取。 .TP .B X25_QBITINCL 控制用户是否能够访问 X.25 Q-bit ((资格数据位)Qualified Data Bit)。 接受整型参数。 如果设为 0 (缺省), 那么传出的数据包不设置 Q-bit 传入的数据包中的 Q-bit 被忽略。 如果设为 1, 就会在通过该套接字传入传出的信息中附加一个前置的首字节。 对于从套接字中数据, 首位字节的 0 表示对应的读入包未设置 Q-bit;而如果是 1 则相反。 如果通过套接字写入(传出)的数据中首位字节为 1 则传出包设置 Q-bit , 如果是 0 则不设置 Q-bit。 .SH 缺憾 有很多, 比如 X.25 PLP 实现 .BR CONFIG_EXPERIMENTAL. (译注:内核编译选项,尚处于试验阶段)。 .PP 本手册页也不完善。 .PP 还没有给程序员用的头文件;您需要包含内核头文件 .BR linux/x25.h .B CONFIG_EXPERIMENTAL 也暗示着未来的接口版本可能在二进制级别不兼容。 .PP X.25 N-重置事件(Reset events)还不会传播给用户进程。 因此,如果重置,可能会发生数据丢失而得不到任何提示。 .SH 另见 .BR socket(7), .BR socket(2). .PP Jonathan Simon Naylor: - 版本 PF_X25 协议族是 Linux 2.2 的新特性. .SH
- [中文版最新更新]
- 《中国linux论坛man手册页翻译计划》:
- 跋
X25
NAMEæ»è§
æè¿°
奿¥å£å°å SOCKET ADDRESS
奿¥åé项 SOCKET OPTIONS
缺æ¾
å¦è§
çæ¬
[䏿çç»´æ¤äºº]
[ä¸æçææ°æ´æ°]
ãä¸å½linux论åmanæå页翻è¯è®¡åã:
è·
NAME
x25, PF_X25 - ITU-T X.25 / ISO-8208 åè®®æ¥å£ã
æ»è§
#include
<sys/socket.h>
#include <linux/x25.h>
x25_socket = socket(PF_X25, SOCK_SEQPACKET, 0);
æè¿°
X25 sockets 为 X.25 æ°æ®åå±åè®®ï¼packet layer protocolï¼æä¾æ¥å£ã è¿ä»¤åºç¨ç¨åºå¯ä»¥ä½¿ç¨æ åç ITU X.25 建议 ï¼X.25 DTE-DCE 模å¼ï¼å¨å¬å± X.25 æ°æ®ç½ä¸è¿è¡é讯ã X25 socket ä¹å¯ä»¥å¨æ²¡æå¨ ISO-8208ä¸æè¿°ç飿 ·ç X.25 ä¸ä»ï¼X.25 DTE-DCE 模å¼ï¼çç½ç»è¿è¡é讯ï¼
ä¿¡æ¯åççä¿æ - 对 socket è¿è¡ read(2) å¾å°çæ°æ®åä¸å¯¹ç«¯ socket å¯¹åº write(2) å¨ä½è¾åºçæ°æ®åæ¯å®å¨ä¸æ ·çï¼ å¦æå¿è¦ï¼åæ ¸è´è´£å¤çä¿¡æ¯ç段åéç»é¿ä¿¡æ¯ï¼ ç¨çæ¯ X.25 M-bit æ¹æ³ï¼æ ¡æ³¨ï¼è¯·æ x.25 çåå¿ææ£ï¼ã 对信æ¯å¤§å°æ²¡æç¡¬ç¼ç çä¸éã 使¯éç»é¿ä¿¡æ¯ææ¶ä¼å¤±è´¥ ï¼æ¯å¦ç³»ç»èµæºææ¶å®ä¹ï¼ææ¯åºç°å¶ä»çè¯¸å¦æ- ¤ç±»çéå¶æ¶ï¼ã 妿åºç°è¿ç§æåµï¼X.25 è¿æ¥å°è¢«éç½®ã
奿¥å£å°å SOCKET ADDRESS
AF_X25 socket å°åæç¨ struct sockaddr_x25 代表 ITU-T X.121 è§èä¸- å®ä¹çç½ç»å°åã
struct
sockaddr_x25 {
sa_family_t sx25_family; /*
å¿é¡»æ¯ AF_X25 */
x25_address sx25_addr; /* X.121 å°å */
};
sx25_addr åå«ä¸ä¸ªç©ºé¶ç»å°¾çå符串 x25_addr[] ã sx25_addr.x25_addr[] ç±æå¤ 15 个 ASCII å符ï¼ä¸åæ¬ç»æç 0ï¼ææ X.121 å°åã åªè½ä½¿ç¨æ°å ‘0’ å° ‘9’ ã
奿¥åé项 SOCKET OPTIONS
以ä¸
X.25
ç¸å³ç奿¥åé项
å¯ä»¥å¨çº§å«åæ°è®¾ç½®ä¸º
SOL_X25 æ¶ç¨
setsockopt(2)
设å®å¹¶å¯ç¨
getsockopt(2) 读åã
X25_QBITINCL
æ§å¶ç¨æ·æ¯å¦è½å¤è®¿é® X.25 Q-bit (ï¼èµæ ¼æ°æ®ä½ï¼Qualified Data Bit)ã æ¥åæ´ååæ°ã å¦æè®¾ä¸º 0 (缺ç), é£ä¹ä¼ åºçæ°æ®åä¸è®¾ç½® Q-bit ä¼ å¥çæ°æ®åä¸ç Q-bit 被忽ç¥ã å¦æè®¾ä¸º 1, å°±ä¼å¨éè¿è¯¥å¥æ¥åä¼ å¥ä¼ åºçä¿¡æ¯ä¸éå ä¸ä¸ªåç½®çé¦åèã 对äºä»å¥æ¥å䏿°æ®ï¼ é¦ä½åèç 0 表示对åºç读å¥åæªè®¾ç½® Q-bitï¼èå¦ææ¯ 1 åç¸åã 妿éè¿å¥æ¥ååå¥ï¼ä¼ åºï¼çæ°æ®ä¸é¦ä½åè为 1 åä¼ åºå设置 Q-bit ï¼ å¦ææ¯ 0 åä¸è®¾ç½® Q-bitã
缺æ¾
æå¾å¤, æ¯å¦ X.25 PLP å®ç° CONFIG_EXPERIMENTAL.ï¼è¯æ³¨ï¼åæ ¸ç¼è¯é项ï¼å°å¤äºè¯éªé¶æ®µï¼ã
æ¬æå页ä¹ä¸å®åã
è¿æ²¡æç»ç¨åºåç¨ç头æä»¶ï¼æ¨éè¦åå«åæ ¸å¤´æä»¶ linux/x25.h CONFIG_EXPERIMENTAL ä¹æç¤ºçæªæ¥çæ¥å£çæ¬å¯è½å¨äºè¿å¶çº§å«ä¸å¼å®¹ã
X.25 N-éç½®äºä»¶ï¼Reset eventsï¼è¿ä¸ä¼ä¼ æç»ç¨æ·è¿ç¨ã å æ- ¤ï¼å¦æéç½®ï¼å¯è½ä¼åçæ°æ®ä¸¢å¤±èå¾ä¸å°ä»»ä½æç¤ºã
å¦è§
socket(7), socket(2).
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
çæ¬
PF_X25 åè®®ææ¯ Linux 2.2 çæ°ç¹æ§.
[䏿çç»´æ¤äºº]
RedCandle <redcandle51@chinaren.com>
[ä¸æçææ°æ´æ°]
2000/10/26
ãä¸å½linux论åmanæå页翻è¯è®¡åã:
http://cmpp.linuxforum.net
è·
æ¬é¡µé¢ä¸æçç±ä¸æ
man
æå页计åæä¾ã
䏿 man
æå页计åï¼https://github.com/man-pages-zh/manpages-zh