.\" -*- coding: UTF-8 -*- .\" This man page is Copyright (C) 1998 Alan Cox. .\" .\" %%%LICENSE_START(VERBATIM_ONE_PARA) .\" Permission is granted to distribute possibly modified copies .\" of this page provided the header is included verbatim, .\" and in case of nontrivial modification author and date .\" of the modification is added to the header. .\" %%%LICENSE_END .\" .\" $Id: ddp.7,v 1.3 1999/05/13 11:33:22 freitag Exp $ .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH DDP 7 "15 сентября 2017 г." Linux "Руководство программиста Linux" .SH ИМЯ ddp \- реализация протокола AppleTalk в Linux .SH СИНТАКСИС \fB#include \fP .br \fB#include \fP .PP \fIddp_socket\fP\fB = socket(AF_APPLETALK, SOCK_DGRAM, 0);\fP .br \fIraw_socket\fP\fB = socket(AF_APPLETALK, SOCK_RAW, \fP\fIprotocol\fP\fB);\fP .SH ОПИСАНИЕ В Linux реализованы протоколы AppleTalk, описанные в \fIInside AppleTalk\fP. В ядре есть лишь уровни DDP и AARP. Они проектировались с учётом того, что ими будут пользоваться через библиотеку протоколов \fBnetatalk\fP. В этой странице описан интерфейс для тех, кому требуется использовать уровень DDP напрямую. .PP Связь между AppleTalk и пользовательской программой реализована через интерфейс сокетов, совместимых с BSD. Дополнительную информацию о сокетах можно найти в \fBsocket\fP(7). .PP Сокет AppleTalk создаётся из вызова \fBsocket\fP(2), которому в качестве аргумента семейства указывается значение \fBAF_APPLETALK\fP. Типом сокета может быть \fBSOCK_DGRAM\fP (чтобы открыть сокет \fBddp\fP) или \fBSOCK_RAW\fP (для открытия сокета \fBraw\fP). Значением \fIprotocol\fP устанавливается протокол приема\-передачи AppleTalk. При \fBSOCK_RAW\fP необходимо указать значение \fBATPROTO_DDP\fP. .PP Неструктурированные сокеты могут быть открыты только процессом с идентификатором эффективного пользователя, равным нулю, либо процессом, имеющим мандат \fBCAP_NET_RAW\fP. .SS "Формат адреса" Адрес сокета AppleTalk определяется как комбинация номера сети, номера узла и номера порта. .PP .in +4n .EX struct at_addr { unsigned short s_net; unsigned char s_node; }; struct sockaddr_atalk { sa_family_t sat_family; /* адресное семейство */ unsigned char sat_port; /* порт */ struct at_addr sat_addr; /* сеть/узел */ }; .EE .in .PP .\" FIXME . this doesn't make sense [johnl] Значение \fIsat_family\fP всегда устанавливается в \fBAF_APPLETALK\fP. В \fIsat_port\fP содержится номер порта. Порты с номерами меньше 129 называются \fIзарезервированными портами\fP. Вызов \fBbind\fP(2) для этих сокетов допустим только для процессов, у которых идентификатор эффективного пользователя равен нулю, либо имеется мандат \fBCAP_NET_BIND_SERVICE\fP. В \fIsat_addr\fP указан адрес машины (host). Поле \fInet\fP структуры \fIstruct at_addr\fP содержит адрес сети машины в сетевом порядке расположения байт. Значение \fBAT_ANYNET\fP является шаблоном, включающим в себя и \(lqэту сеть\(rq. Поле \fInode\fP структуры \fIstruct at_addr\fP содержит номер узла машины. Значение \fBAT_ANYNODE\fP является шаблоном, включающим в себя и \(lqэтот узел\(rq. Значение \fBATADDR_BCAST\fP является ссылкой на локальный широковещательный адрес. .SS "Параметры сокета" Специальные параметры сокета для протокола не поддерживаются. .SS "Интерфейс /proc" IP поддерживает набор интерфейсов \fI/proc\fP для настройки некоторых общих параметров Appletalk. Доступ к параметрам можно получить путем чтения или записи файлов в каталоге \fI/proc/sys/net/atalk/\fP. .TP \fIaarp\-expiry\-time\fP Временной интервал (в секундах) до момента устаревания записи в кэше AARP. .TP \fIaarp\-resolve\-time\fP Временной интервал (в секундах) до определения записи в кэше AARP. .TP \fIaarp\-retransmit\-limit\fP Количество повторных передач запроса AARP до того, как запись будет объявлена недействительной. .TP \fIaarp\-tick\-time\fP Скорость таймера управляющего AARP в секундах. .PP Значения по умолчанию соответствуют спецификации и никогда не должны меняться. .SS "Вызовы ioctl" .\" FIXME . Add a section about multicasting Все вызовы ioctl, описанные в \fBsocket\fP(7), применимы к DDP. .SH ОШИБКИ .TP \fBEACCES\fP Пользователь попытался выполнить операцию, не имея на то соответствующих прав. Это относится к передаче информации по широковещательному адресу при сброшенном флаге широковещательной передачи, а также к попытке соединения с зарезервированным портом, когда идентификатор эффективного пользователя отличается от нуля или отсутствует мандат \fBCAP_NET_BIND_SERVICE\fP. .TP \fBEADDRINUSE\fP Попытка связать сокет с уже используемым адресом. .TP \fBEADDRNOTAVAIL\fP Был запрошен несуществующий интерфейс или запрошенный исходящий адрес не является локальным. .TP \fBEAGAIN\fP Действие над неблокирующим сокетом привело бы к его блокировке. .TP \fBEALREADY\fP Операция соединения на неблокирующем сокете уже находится в процессе выполнения. .TP \fBECONNABORTED\fP Соединение закрыто во время \fBaccept\fP(2). .TP \fBEHOSTUNREACH\fP Нет записи в таблице маршрутизации, указывающей на адрес назначения. .TP \fBEINVAL\fP Передан неверный аргумент. .TP \fBEISCONN\fP Вызов \fBconnect\fP(2) запущен для сокета, уже установившего соединение. .TP \fBEMSGSIZE\fP Размер датаграммы больше размера DDP MTU. .TP \fBENODEV\fP Сетевое устройство недоступно или неспособно посылать IP. .TP \fBENOENT\fP Для сокета вызван \fBSIOCGSTAMP\fP, но он ещё не получил ни одного пакета. .TP \fBENOMEM\fP и \fBENOBUFS\fP Недостаточно памяти. .TP \fBENOPKG\fP Не настроена подсистема ядра. .TP \fBENOPROTOOPT\fP и \fBEOPNOTSUPP\fP Передан недопустимый параметр сокета. .TP \fBENOTCONN\fP Операция определена только для сокета, установившего соединение, а этот сокет не соединён. .TP \fBEPERM\fP У пользователя нет достаточных полномочий, чтобы повысить приоритет, изменить настройку или послать сигнал запрашиваемому процессу или группе процессов. .TP \fBEPIPE\fP Соединение неожиданно закрылось или завершено (shut down) другой стороной. .TP \fBESOCKTNOSUPPORT\fP Сокет не настроен или запрошен неизвестный тип сокета. .SH ВЕРСИИ AppleTalk поддерживается в Linux версии 2.0 и более поздних. Интерфейс \fI/proc\fP появился в Linux 2.2. .SH ЗАМЕЧАНИЯ Будьте очень осторожны при работе с параметром \fBSO_BROADCAST\fP: в Linux он не относится к привилегированным. Масштабная рассылка сообщений по широковещательному адресу может легко перегрузить сеть. .SS Совместимость Базовый интерфейс сокетов Appletalk совместим с \fBnetatalk\fP в BSD\-подобных системах. Многие системы BSD не проверяют \fBSO_BROADCAST\fP при посылке широковещательных кадров: это может привести к проблемам совместимости. .PP Режим неструктурированных сокетов поддерживается только в Linux и предназначен для облегчения поддержки альтернатив пакета CAP и утилит мониторинга AppleTalk. .SH ДЕФЕКТЫ Слишком много противоречий в значениях ошибок. .PP Вызовы ioctl для настройки таблиц маршрутизации, устройств, таблиц AARP и других устройств пока что не описаны. .SH "СМ. ТАКЖЕ" \fBrecvmsg\fP(2), \fBsendmsg\fP(2), \fBcapabilities\fP(7), \fBsocket\fP(7) .SH ЗАМЕЧАНИЯ Эта страница является частью проекта Linux \fIman\-pages\fP версии 5.10. Описание проекта, информацию об ошибках и последнюю версию этой страницы можно найти по адресу \%https://www.kernel.org/doc/man\-pages/. .PP .SH ПЕРЕВОД Русский перевод этой страницы руководства был сделан Yuri Kozlov и Иван Павлов . .PP Этот перевод является бесплатной документацией; прочитайте .UR https://www.gnu.org/licenses/gpl-3.0.html Стандартную общественную лицензию GNU версии 3 .UE или более позднюю, чтобы узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ. .PP Если вы обнаружите ошибки в переводе этой страницы руководства, пожалуйста, отправьте электронное письмо на .MT man-pages-ru-talks@lists.sourceforge.net .ME .