X25(7) | Руководство программиста Linux | X25(7) |
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 в соответствии с рекомендациями Международного Телекоммуникационного Общества (International Telecommunication Union) по X.25 (режим X.25 DTE-DCE). Сокеты X25 также можно использовать для связи без наличия промежуточной сети X.25 (режим X.25 DTE-DTE) как описано в стандарте ISO-8208.
При работе выполняется сохранение границ сообщения — вызов read(2) вернёт кусок данных той же величины, что записала в сокет в помощью write(2) сторона-партнёр. Когда это необходимо, ядро следит за сегментированием и перебирает (reassembling) длинные сообщения руководствуясь появлением бита M в X.25. Не существует жёсткого ограничения на максимальный размер сообщения. Однако, переборка длинного сообщения может закончиться неудачно, если возникнет временная нехватка системных ресурсов или когда включатся другие ограничения (например, на память сокета или размер буфера). Если возникает такая ситуация, то соединение X.25 разрывается.
Для представления сетевого адреса в семействе адресов сокета AF_X25 используется структура 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[], который интерпретируется как строка, завершающаяся null. Значение sx25_addr.x25_addr[] содержит до 15-ти (не считая завершающего байта null) ASCII, из которых формируется адрес X.121. Разрешаются только десятичные цифры от «0» до «9».
Специальные параметры сокета X.25 могут быть установлены с помощью setsockopt(2) и прочитаны с помощью getsockopt(2), если в аргументе level указать значение SOL_X25:
Семейство протоколов AF_X25 впервые реализовано в Linux 2.2.
Имеются в наличии, так как реализация PLP X.25 помечена как CONFIG_EXPERIMENTAL.
Данная справочная страница не полна.
Пока не существует заголовочных файлов, предназначенных для использования в приложениях; вам необходимо включать заголовочный файл ядра <linux/x25.h>. CONFIG_EXPERIMENTAL также может неявно означать, что будущие версии данного интерфейса не будут двоично совместимы.
События X.25 N-Reset пока не передаются пользовательскому процессу. Поэтому, если случится сброс соединения, данные могут быть потеряны без уведомления.
Jonathan Simon Naylor: «The Re-Analysis and Re-Implementation of X.25». URL: ftp://ftp.pspt.fi/pub/ham/linux/ax25/x25doc.tgz.
2017-09-15 | Linux |