Provided by: manpages-ru_4.27.0-1_all bug

НАИМЕНОВАНИЕ

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

ОБЗОР

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

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

ОПИСАНИЕ

       В  Linux  реализованы  протоколы  AppleTalk,  описанные в Inside AppleTalk. В ядре есть лишь уровни DDP и
       AARP. Они проектировались с учётом того, что ими будут пользоваться через библиотеку протоколов netatalk.
       В этой странице описан интерфейс для тех, кому требуется использовать уровень DDP напрямую.

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

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

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

   Формат адреса
       Адрес сокета AppleTalk определяется как комбинация номера сети, номера узла и номера порта.

           struct at_addr {
               unsigned short s_net;
               unsigned char  s_node;
           };

           struct sockaddr_atalk {
               sa_family_t    sat_family;    /* address family */
               unsigned char  sat_port;      /* port */
               struct at_addr sat_addr;      /* net/node */
           };

       sat_family is always set to AF_APPLETALK.  sat_port contains the port.  The port numbers  below  129  are
       known  as  reserved  ports.   Only  processes  with  the  effective user ID 0 or the CAP_NET_BIND_SERVICE
       capability may bind(2)  to these sockets.  sat_addr is the  host  address.   The  net  member  of  struct
       at_addr  contains  the host network in network byte order.  The value of AT_ANYNET is a wildcard and also
       implies “this network.” The node member of struct at_addr contains the host node number.   The  value  of
       AT_ANYNODE  is  a  wildcard  and  also  implies  “this  node.”  The value of ATADDR_BCAST is a link local
       broadcast address.

   Параметры сокета
       Специальные параметры сокета для протокола не поддерживаются.

   Интерфейс /proc
       IP поддерживает набор интерфейсов /proc для настройки некоторых  общих  параметров  Appletalk.  Доступ  к
       параметрам можно получить путем чтения или записи файлов в каталоге /proc/sys/net/atalk/.

       aarp-expiry-time
              Временной интервал (в секундах) до момента устаревания записи в кэше AARP.

       aarp-resolve-time
              Временной интервал (в секундах) до определения записи в кэше AARP.

       aarp-retransmit-limit
              Количество повторных передач запроса AARP до того, как запись будет объявлена недействительной.

       aarp-tick-time
              Скорость таймера управляющего AARP в секундах.

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

   Вызовы ioctl
       Все вызовы ioctl, описанные в socket(7), применимы к DDP.

ОШИБКИ

       EACCES Пользователь  попытался  выполнить  операцию,  не имея на то соответствующих прав. Это относится к
              передаче информации по широковещательному адресу при сброшенном флаге широковещательной  передачи,
              а  также  к  попытке  соединения  с  зарезервированным  портом,  когда  идентификатор эффективного
              пользователя отличается от нуля или отсутствует мандат CAP_NET_BIND_SERVICE.

       EADDRINUSE
              Попытка связать сокет с уже используемым адресом.

       EADDRNOTAVAIL
              Был запрошен несуществующий интерфейс или запрошенный исходящий адрес не является локальным.

       EAGAIN Действие над неблокирующим сокетом привело бы к его блокировке.

       EALREADY
              Операция соединения на неблокирующем сокете уже находится в процессе выполнения.

       ECONNABORTED
              Соединение закрыто во время accept(2).

       EHOSTUNREACH
              Нет записи в таблице маршрутизации, указывающей на адрес назначения.

       EINVAL Передан неверный аргумент.

       EISCONN
              Вызов connect(2) запущен для сокета, уже установившего соединение.

       EMSGSIZE
              Размер датаграммы больше размера DDP MTU.

       ENODEV Сетевое устройство недоступно или неспособно посылать IP.

       ENOENT Для сокета вызван SIOCGSTAMP, но он ещё не получил ни одного пакета.

       ENOMEM и ENOBUFS
              Недостаточно памяти.

       ENOPKG Не настроена подсистема ядра.

       ENOPROTOOPT и EOPNOTSUPP
              Передан недопустимый параметр сокета.

       ENOTCONN
              Операция определена только для сокета, установившего соединение, а этот сокет не соединён.

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

       EPIPE  Соединение неожиданно закрылось или завершено (shut down) другой стороной.

       ESOCKTNOSUPPORT
              Сокет не настроен или запрошен неизвестный тип сокета.

ВЕРСИИ

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

ПРИМЕЧАНИЯ

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

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

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

ОШИБКИ

       Слишком много противоречий в значениях ошибок.

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

СМОТРИТЕ ТАКЖЕ

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

ПЕРЕВОД

       Русский  перевод  этой  страницы  руководства разработал(и) Yuri Kozlov <yuray@komyakino.ru>, Иван Павлов
       <pavia00@gmail.com> и Kirill Rekhov <krekhov.dev@gmail.com>

       Этот перевод является свободной программной документацией; он распространяется на условиях  общедоступной
       лицензии  GNU  (GNU  General Public License - GPL, https://www.gnu.org/licenses/gpl-3.0.html версии 3 или
       более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ.

       Если вы обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите  об  этом
       разработчику(ам)   по   его(их)  адресу(ам)  электронной  почты  или  по  адресу  списка рассылки русских
       переводчиков.

Справочные страницы Linux 6.9.1                   2 мая 2024 г.                                           ddp(7)