Переводы страниц руководства

Новости   Список переводов по пакетам   Все переводы   Репозиторий Debian   Как нам помочь   Участники проекта   Словарь терминов

Страницы руководства  - IRDA (7)


НАЗВАНИЕ

irda - стек протокола Linux-IrDA

ОБЗОР

#include <linux/irda.h>

stream_s = socket(PF_INET, SOCK_STREAM, 0);
seqpkt_s = socket(PF_INET, SOCK_SEQPACKET, 0);
dgram_s = socket(PF_INET, SOCK_DGRAM, IRDAPROTO_UNITDATA);
ultra_s = socket(PF_INET, SOCK_DGRAM, IRDAPROTO_ULTRA);

ОПИСАНИЕ

Linux-IrDA - это полная реализация различных протоколов IrDA и драйверов IrDA для Linux.

Низкоуровневая настройка стека IrDA (портов IrDA) и различных драйверов IrDA описана в irattach(8).

Использование верхних слоёв стека IrDA (IrCOMM, IrLPT, IrNET, IrLAN, OBEX...) описано в соответствующих страницах руководства.

Ключевыми компонентами стека протокола Linux-IrDA являются протоколы IrLAP, IrLMP, IrTTP и IrIAS и они реализованы в виде модуля ядра. Интерфейс программиста к стеку IrDA основан на сокетах. За более подробной информацией по сокетам обратитесь к socket(7).

Отметим, что высокоуровневые протоколы IrDA могут предоставлять программистам другие интерфейсы. Например, IrCOMM предоставляет интерфейс основанный на TTY и OBEX, доступный через библиотеку, работающую в пространстве пользователя.

ТИПЫ СОКЕТОВ

Интерфейс сокетов Linux-IrDA предоставляет 4 типа сокетов:

Потоковый сокет - SOCK_STREAM, 0
  Потоковые сокеты предоставляют надёжные, ориентированные на потоки, двунаправленные соединения между двумя сокетами поверх IrTTP, похожие на сокеты TCP. IrTTP гарантирует, что данные будут доставляться по порядку и сопровождаться управлением потоком, IrLAP повторно передаёт потерянные пакеты.
Потоковые сокеты не сохраняют границы записей.
Сокет последовательных пакетов - SOCK_SEQPACKET, 0
  Сокеты последовательных пакетов предоставляют надёжные, ориентированные на датаграммы, двунаправленные соединения между двумя сокетами поверх IrTTP. IrTTP гарантирует, что данные будут доставляться по порядку и сопровождаться управлением потоком, IrLAP повторно передаёт потерянные пакеты.
Сокеты последовательных пакетов сохраняют границы записей. Большие датаграммы фрагментируются необходимым образом.
Сокет дейтаграмм - SOCK_DGRAM, IRDAPROTO_UNITDATA
  Сокеты последовательных пакетов предоставляют надёжные, ориентированные на датаграммы, двунаправленные соединения между двумя сокетами поверх IrLMP. Не гарантируется, что данные поступят по порядку, управление потоком не осуществляется, однако IrLAP повторно передаёт потерянные пакеты.
Сокеты последовательных пакетов сохраняют границы записей. Фрагментация не производится, датаграммы больше, чем MTU канала IrDA будут обрезаны либо отброшены.
Ультра-сокет - SOCK_DGRAM, IRDAPROTO_ULTRA
  Ультра-сокеты предоставляют сервис передачи датаграмм без соединений, без обеспечения надёжности доставки пакетов поверх IrLAP-Ultra. Ультра-датаграммы отправляются и принимаются только если нет установленных соединений IrLAP, а иначе - отклоняются. Они всегда передаются со скоростью 9600 бод. Датаграммы могут потеряться, прийти в другом порядке, управление потоком не осуществляется.
Ультра-сокеты сохраняют границы записей. Фрагментация не выполняется, датаграммы больше чем ультра-MTU (382 байт) будут обрезаны или отброшены.

ФОРМАТ АДРЕСА

Адрес сокета IrDA определяется сочетанием адреса интерфейса IrDA и имени службы. Имена служб автоматически решаются в lsap с помощью протокола IrIAP.

struct sockaddr_irda { sa_family_t sir_family; /* AF_IRDA */ __u8 sir_lsap_sel; /* Селектор LSAP */ __u32 sir_addr; /* Адрес устройства */ char sir_name[25]; /* Обычно <служба>:IrDA:TinyTP */ };

sin_family всегда устанавливается в AF_IRDA. sir_lsap_sel обычно не используется. sir_addr - это адрес партнёра и он не обязателен (и в этом случае используется первый обнаруженный партнёр). sir_name - это имя службы сокета.

ОПЦИИ СОКЕТА

Сокеты IrDA поддерживают некоторые специфичные для протокола опции, которые могут быть заданы с помощью setsockopt(2) и прочитаны с помощью getsockopt(2). Уровень опций сокета для IrDA - это SOL_IRLMP.

Опции, которые могут быть заданы:

IRLMP_IAS_SET
  Установить запись в локальную базу данных IAS.
IRLMP_IAS_DEL
  Удалить запись из локальной базы данных IAS.
IRLMP_MAX_SDU_SIZE
  Задать максимальный входящий MTU для сокетов последовательных пакетов.
IRLMP_HINTS_SET
  Задать биты подсказок IrDA для передачи партнёрам.
IRLMP_HINT_MASK_SET
  Задать фильтр битов подсказок IrDA, используемые в процессе обнаружения.
Опции, которые могут быть получены.
IRLMP_ENUMDEVICES
  Произвести обнаружение на уровне канала и вернуть содержимое журнала обнаружения.
IRLMP_MAX_SDU_SIZE
  Получить максимальный входящий MTU.
IRLMP_IAS_GET
  Получить запись из локальной базы данных IAS.
IRLMP_IAS_QUERY
  Запросить с помощью протокола IrLAP запись из базы данных IAS партнёра.
IRLMP_WAITDEVICE
  Заблокирован до обнаружения нового устройства. Экспериментальная возможность, используйте осторожно.

АВТОР

Джин Туррилхес (Jean Tourrilhes) - jt@hpl.hp.com

АВТОР ПЕРЕВОДА

Перевод на русский язык выполнил Владимир Ступин <wheelof@gmail.com>.

СМОТРИ ТАКЖЕ

irattach(8), irdadump(8), irnet(4), irnetd(8).

irda-utils IRDA (7) 2 мая 2003
Перейти в начало страницы |  Раздел 7 |  Главный указатель.
Сгенерировано manServer 1.07 из /home/stupin/man/man7/irda.7.gz с использованием макросов man.