The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Интерактивная система просмотра системных руководств (man-ов)

 ТемаНаборКатегория 
 
 [Cписок руководств | Печать]

ddp (7)
  • ddp (4) ( Linux man: Специальные файлы /dev/* )
  • >> ddp (7) ( Русские man: Макропакеты и соглашения )
  • ddp (7) ( Linux man: Макропакеты и соглашения )
  •  

    НАЗВАНИЕ

    ddp - реализация протокола AppleTalk в Linux  

    СИНТАКСИС

    #include <sys/socket.h>
    #include <netatalk/at.h>

    ddp_socket = socket(PF_APPLETALK, SOCK_DGRAM, 0);
    raw_socket = socket(PF_APPLETALK, SOCK_RAW, protocol);  

    ОПИСАНИЕ

    В Linux реализован протокол Appletalk, описанный в Inside Appletalk. В ядре есть лишь уровни DDP и AARP. Они рассчитаны на использование библиотеками протоколов netatalk. Эта страница описывает интерфейс желающим использовать уровень DDP непосредственно.

    Связь между Appletalk и программой пользователя реализована через интерфейс сокетов, совместимых с BSD. Дополнительную информацию о сокетах можно найти в socket(7).

    Сокет Appletalk создается путем вызова функции socket(2), которой в качестве аргумента семьи (family) сокета указано значение PF_APPLETALK. Тип сокета может быть SOCK_DGRAM (чтобы открыть сокет ddp) или SOCK_RAW для сокета raw. protocol устанавливает протокол приема-передачи Appletalk. SOCK_RAW необходимо указать значение ATPROTO_DDP.

    Сокеты Raw могут быть открыты только процессом с идентификатором эффективного пользователя, равным нулю, либо процессом, имеющим возможность CAP_NET_RAW.  

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

    Адрес сокета Appletalk определяется как комбинация номера сети, номера узла (node) и номера порта.

    
    struct at_addr {
        u_short         s_net;
        u_char          s_node;
    };
    struct sockaddr_atalk {
        sa_family_t     sat_family; /* address family */
        u_char          sat_port;   /* port */
        struct at_addr  sat_addr;   /* net/node */
    };
    
    

    Установленное значение sat_family всегда равно AF_APPLETALK. sat_port содержит номер порта. Порты с номерами меньше 129-и известны как зарезервированные порты. Вызывать этим сокетам функцию bind(2) может только процесс, имеющий либо идентификатор эффективного пользователя, равный нулю, либо возможность CAP_NET_BIND_SERVICE. sat_addr является адресом машины. Поле net структуры struct at_addr содержит адрес сети машины (в сетевом порядке расположения байт). Значение AT_ANYNET является шаблоном, включающим в себя и lqэту сетьrq. Поле node структуры struct at_addr содержит номер узла машины. Значение AT_ANYNODE является шаблоном, включающим в себя и lqэтот узелrq. Значение ATADDR_BCAST является ссылкой на локальный широковещательный адрес.  

    ОПЦИИ СОКЕТОВ

    Опции сокета, специфичные для протокола, не поддерживаются.  

    СИСТЕМНЫЕ ВЫЗОВЫ

    IP поддерживает интерфейс sysctl для настройки некоторых общих параметров Appletalk. Доступ к sysctl можно получить путем чтения или записи файлов /proc/sys/net/atalk/* или с помощью интерфейса sysctl(2).
    aarp-expiry-time
    Временной интервал (в секундах) до момента устаревания записи в кэше AARP.
    aarp-resolve-time
    Временной интервал (в секундах) до определения записи в кэше AARP.
    aarp-retransmit-limit
    Количество повторных передач запроса AARP, до того, как запись будет объявлена недействительной.
    aarp-tick-time
    Скорость таймера, управляющего AARP, в секундах.

    Значения по умолчанию соответствуют описанию и никогда не должны меняться.  

    СИСТЕМНЫЕ ВЫЗОВЫ

    Все вызовы ioctl, описанные в socket(7), относятся и к ddp.  

    ЗАМЕЧАНИЯ

    Будьте очень осторожны при работе с опцией SO_BROADCAST: она не относится к привилегированным в Linux. При невнимательной рассылке сообщений по широковещательному адресу легко перегрузить сеть.  

    ВЕРСИИ

    Appletalk поддерживается Linux версии 2.0 и более поздних. Интерфейс sysctl появился в Linux 2.2.  

    НАЙДЕННЫЕ ОШИБКИ

    ENOTCONN
    Операция предназначена только для соединенного сокета, а сокет не был соединен.
    EINVAL
    Передан неправильный аргумент.
    EMSGSIZE
    Размер датаграммы больше размера DDP MTU.
    EACCES
    Пользователь попытался выполнить операцию, не имея на то соответствующих прав. Это относится к передаче информации по широковещательному адресу при сброшенном флаге широковещательной передачи, а также к попытке соединения с зарезервированным портом, когда идентификатор эффективного пользователя отличается от нуля или отсутствует возможность CAP_NET_BIND_SERVICE.
    EADDRINUSE
    Попытка соединения с уже используемым адресом.
    ENOMEM and ENOBUFS
    Hедостаточно памяти в системе для выполнения данной операции.
    ENOPROTOOPT and EOPNOTSUPP
    Передана неправильная опция сокета.
    EPERM
    Пользователь не имеет прав на установку высокого приоритета, изменение конфигурации или посылку сигналов определенному процессу или группе.
    EADDRNOTAVAIL
    Был запрошен несуществующий интерфейс, или запрошенный адрес источника не являлся локальным.
    EAGAIN
    Операция на неблокируемом сокете блокируется.
    ESOCKTNOSUPPORT
    Сокет не был настроен, или был запрошен неизвестный тип сокета.
    EISCONN
    Был произведен вызов connect(2) в уже соединенном сокете.
    EALREADY
    Операция соединения в неблокируемом сокете уже производится.
    ECONNABORTED
    Соединение было закрыто во время accept(2).
    EPIPE
    Соединение было неожиданно закрыто другой стороной.
    ENOENT
    Был произведен вызов SIOCGSTAMP при отсутствии прибывшего в сокет пакета.
    EHOSTUNREACH
    Hет записи таблицы маршрутизации, указывающей на адрес назначения.
    ENODEV
    Сетевое устройство недоступно или не имеет возможности посылать IP.
    ENOPKG
    Подсистема ядра не была настроена.
     

    СОВМЕСТИМОСТЬ

    Базовый интерфейс сокетов Appletalk совместим с netatalk в BSD-подобных системах. Многие системы BSD не проверяют SO_BROADCAST при посылке широковещательных кадров: это может привести к проблемам совместимости.

    Режим сокетов raw поддерживается только в Linux и предназначен для облегчения поддержки альтернативных пакетов CAP и утилит мониторинга AppleTalk.  

    НАЙДЕННЫЕ ОШИБКИ

    Слишком много противоречивых ошибок.

    Вызовы ioctl для настройки таблиц маршрутизации, устройств, таблиц AARP и других устройств пока что не описаны.  

    СМ. ТАКЖЕ

    sendmsg(2), recvmsg(2), socket(7)


     

    Index

    НАЗВАНИЕ
    СИНТАКСИС
    ОПИСАНИЕ
    ФОРМАТЫ АДРЕСОВ
    ОПЦИИ СОКЕТОВ
    СИСТЕМНЫЕ ВЫЗОВЫ
    СИСТЕМНЫЕ ВЫЗОВЫ
    ЗАМЕЧАНИЯ
    ВЕРСИИ
    НАЙДЕННЫЕ ОШИБКИ
    СОВМЕСТИМОСТЬ
    НАЙДЕННЫЕ ОШИБКИ
    СМ. ТАКЖЕ


    Поиск по тексту MAN-ов: 




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру