X25(4)

ИМЯ
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 предоставляют интерфейс для пакетного протокола 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) для записи данных в сокет. Когда это необходимо, ядро следит за сегментированием и реассемблирует длинные сообщения через X.25 M-bit. Не существует жёсткого ограничения на максимальный размер сообщения. Однако, реассемблирование длинного сообщения может закончиться неудачно, если существует временная нехватка системных ресурсов или другие ограничения (такие как память сокета или лимиты на размер буфера). Если возникает такая ситуация, то соединение X.25 будет сброшено.

АДРЕСА СОКЕТОВ
Семейство адреса сокета AF_X25 использует структуру struct sockaddr_x25 для представления сетевого адреса, как описано в рекомендации ITU-T X.121.

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

sx25_addr содержит массив символов x25_addr[] , который будет интерпретироваться как строка, завершающаяся нулём. sx25_addr.x25_addr[] содержит до 15-ти (не считая завершающего нуля) символов ASCII, формирующих адрес X.121. Разшаются только десятичные цифры от `0' до `9'.

ОПЦИИ СОКЕТА
Если параметр level установлен в значение SOL_X25, то при использовании setsockopt(2) могут быть установлены, а при использовании getsockopt(2) могут быть прочитаны следующие специфичные для X.25 опции.

X25_QBITINCL
    Управляет битом X.25 Q-бит (Qualified Data Bit -- Бит Пригодности Данных) который доступен пользователю. Опция использует целое число как аргумент. Если он установлен в 0 (по умолчанию), то Q-бит никогда не устанавливается Если он установлен в 1, то каждое прочитываемое или записываемое в сокет сообщение предваряется дополнительным байтом. Для данных, которые читаются из сокета, нулевой первый байт говорит, что Q-биты в соответствующих входящих пакетах данных не установлены. Если первый байт имеет значение 1, то это говорит, что в соответствующих входящих пакетах данных установлены Q-биты. Если первый байт данных, которые записываются в сокет имеет значение 1, то для соответствующих исходящих пакетов данных будет установлен Q-бит. Если первый байт имеет значение 0, то Q-бит установлен не будет.

БАГИ
Имеются в наличии, так как PLP реализация X.25 является экспериментальной CONFIG_EXPERIMENTAL.

Данная страница руководства является неполной.

Пока не существует заголовочных файлов, предназначенных для программирования приложений; вам необходимо включать заголовочный файл ядра <linux/x25.h>. CONFIG_EXPERIMENTAL также может неявно означать, что будущие версии данного интерфейса не будут бинарно совместимыми.

События X.25 N-Reset пока не передаются пользовательскому процессу. Так что, если случится сброс соединения, данные могут быть потеряны без уведомления.

СМОТРИ ТАКЖЕ
socket(7), socket(2)

Jonathan Simon Naylor: “Новый анализ и реализация X.25.” Адрес в Интернет
    ftp://ftp.pspt.fi/pub/ham/linux/ax25/x25doc.tgz

ВЕРСИИ
Семейство протокола PF_X25 является новой возможностью Linux 2.2.

ПЕРЕВОД
Перевёл с английского Виктор Вислобоков <corochoone@perm.ru> 2005