address_families -
семейства
адресов
сокетов
(домены)
#include <sys/types.h> /* смотрите ЗАМЕЧАНИЯ */
#include <sys/socket.h>
int socket(int domain, int type, int protocol);
Параметр
domain
в
socket(2) задает
домен
соединения:
выбирает
семейство
протоколов,
которое
будет
использоваться
для
соединения.
Семейства
описаны в
<sys/socket.h>. В
настоящее
время
ядром Linux
распознаются
следующие
форматы:
-
AF_UNIX, AF_LOCAL
- Local communication. For further information, see
unix(7).
- AF_INET
- Протоколы
Интернет IPv4,
дополнительная
информация
доступна в
ip(7).
- AF_AX25
- Протокол
любительского
радио AX.25,
дополнительная
информация
доступна в
ax25(4).
- AF_IPX
- Протоколы
Novell IPX.
- AF_APPLETALK
- AppleTalk,
дополнительная
информация
доступна в
ddp(7).
- AF_NETROM
- Протокол
пакетного
уровня AX.25,
дополнительная
информация
доступна в
netrom(4),
The
Packet Radio Protocols and Linux и
AX.25,
NET/ROM
и главах
ROSE network
programming из
Linux
Amateur Radio AX.25 HOWTO
- AF_BRIDGE
- Нельзя
использовать
для
создания
сокетов; в
основном
используется
для связей
типа
«мост» в
протокольных
командах
rtnetlink(7).
- AF_ATMPVC
- Доступ к
неструктурированным
постоянным
виртуальным
каналам ATM (PVC),
дополнительная
информация
доступна
в
ATM
on Linux HOWTO
- AF_X25
- Протокол
ITU-T X.25 / ISO-8208,
дополнительная
информация
доступна в
x25(7).
- AF_INET6
- Протоколы
Интернет IPv6,
дополнительная
информация
доступна в
ipv6(7).
- AF_ROSE
- RATS (Radio Amateur Telecommunications Society). Open
Systems environment (ROSE) AX.25 packet layer protocol. For further
information, see the resources listed for AF_NETROM.
- AF_DECnet
- Протокольные
сокеты DECet,
дополнительная
информация
доступна в
Documentation/networking/decnet.txt из
дерева
исходного
кода Linux.
- AF_NETBEUI
- Зарезервировано
для
«проекта
802.2LLC», никогда
не
использовалось.
- AF_SECURITY
- Недолго
существовавшее
(с Linux 2.1.30 по 2.1.99pre2)
семейство
протоколов
для
вызовов из
межсетевого
экрана.
- AF_KEY
- Прокотол
управления
ключами,
изначально
разрабатывался
для
использования
с IPsec (начиная
с Linux 2.1.38). Никак
не связан с
keyctl(2) и
возможностью
хранения
ключей в
ядре.
Дополнительная
информация
доступна
в
RFC 2367
PF_KEY Key Management API, Version 2
- AF_NETLINK
- Kernel user interface device. For further information, see
netlink(7).
- AF_PACKET
- Низкоуровневый
пакетный
интерфейс,
дополнительная
информация
доступна в
packet(7).
- AF_ECONET
- Протокол
Acorn Econet (удалён в
Linux 3.5);
дополнительная
информация
доступна
в
Econet
documentation
- AF_ATMSVC
- Доступ к
коммутируемым
виртуальным
каналам ATM (SVC);
дополнительная
информация
доступна
в
ATM
on Linux HOWTO
- AF_RDS
- Reliable Datagram Sockets (RDS) protocol (since Linux
2.6.30). RDS over RDMA has no relation to AF_SMC or AF_XDP.
For further information, see rds(7), rds-rdma(7), and
Documentation/networking/rds.txt in the Linux kernel source
tree.
- AF_IRDA
- Socket interface over IrDA (moved to staging in Linux 4.14,
removed in Linux 4.17). For further information, see irda(7).
- AF_PPPOX
- Транспортный
слой PPP
общего
назначения
для
поднятия
туннелей L2 (L2TP
и PPPoE).
Смотрите
файл Documentation/networking/l2tp.txt
в дереве
исходного
кода Linux.
- AF_WANPIPE
- Устаревший
протокол
для
территориально
распределённой
сети (WAN),
использовался
в картах Sangoma WAN
(«WANPIPE»);
удалён в Linux
2.6.21.
- AF_LLC
- Протокол
управления
логической
связью (IEEE 802.2 LLC),
верхних
подуровень
канального
уровня
сетевого
стека
протоколов
ISO/OSI (начиная с
Linux 2.4); никак не
связан с
AF_PACKET.
Смотрите
главу 13.5.3. Logical Link
Control в Understanding Linux Kernel Internals (O'Reilly
Media, 2006) и IEEE Standards for Local Area Networks: Logical
Link Control (The Institute of Electronics and Electronics Engineers,
Inc., New York, New York, 1985). В
исторических
заметках
описана
разработка
протокола.
- AF_IB
- Собственная
адресация
InfiniBand (начиная
с Linux 3.11).
- AF_MPLS
- Многопротокольная
коммутация
по меткам
(начиная с Linux
4.1); по
большей
части
используется
для
настройки
маршрутизации
MPLS через netlink(7),
так как нет
возможности
создавать
сокеты в
пользовательском
пространстве.
- AF_CAN
- Автотранспортный
протокол
шины Controller Area Network
(начиная с Linux
2.6.25).
Дополнительную
информацию
смотрите в
файле
Documentation/networking/can.rst в
дереве
исходного
кода Linux.
- AF_TIPC
- TIPC,
протокол
«кластерных
доменных
сокетов»
(начиная с Linux
2.6.16).
Смотрите
TIPC
Programmer's Guide и
описание
протокола
- AF_BLUETOOTH
- Сокетный
протокол Bluetooth
низкого
уровня
(начиная с Linux
3.11). Описан в
Bluetooth
Management API overview и
An
Introduction to Bluetooth Programming
Альбертом
Хуангом (Albert Huang)
- AF_IUCV
- Протокол
IUCV (средство
межпользовательской
связи) z/VM для
взаимодействия
гипервизор-гость
(начиная с Linux
2.6.21); никак не
связан с AF_VSOCK
и/или AF_SMC.
Дополнительную
информацию
смотрите
в
IUCV
protocol overview
- AF_RXRPC
- Rx,
протокол
процедурных
вызовов Andrew File
System (начиная с
Linux
2.6.22).Дополнительную
информацию
смотрите в
файле
Documentation/networking/rxrpc.txt
дерева
исходного
кода Linux.
- AF_ISDN
- Новый
протокол
взаимодействия
с
драйвером
«модульного
ISDN» (начиная
с Linux 2.6.27).
Смотрите
вики
mISDN
- AF_PHONET
- Интерфейс
IPC/RPC к
сотовому
модему Nokia
(начиная с Linux
2.6.31).
Дополнительную
информацию
смотрите в
файле
Documentation/networking/phonet.txt
дерева
исходного
кода Linux.
- AF_IEEE802154
- Неструктурированный
пакетный
протокол IEEE
802.15.4 WPAN
(персональная
беспроводная
сеть)
(начиная с Linux
2.6.31).
Дополнительную
информацию
смотрите в
файле
Documentation/networking/ieee802154.txt
дерева
исходного
кода Linux.
- AF_CAIF
- Протокол
взаимодействия
Ericsson Communication CPU с Application CPU
(CAIF)(начиная с
Linux 2.6.36).
Дополнительную
информацию
смотрите в
файле
Documentation/networking/caif/Linux-CAIF.txt
дерева
исходного
кода Linux.
- AF_ALG
- Взаимодействие
с ядерным
интерфейсом
шифрования
(начиная с Linux
2.6.38).
Дополнительную
информацию
смотрите в
файле
Documentation/crypto/userspace-if.rst
дерева
исходного
кода Linux.
- AF_VSOCK
- Протокол
VMWare VSockets для
взаимодействия
гипервизор-гость
(начиная с Linux
3.9);никак не
связан с AF_IUCV
и AF_SMC.
Дополнительную
информацию
смотрите в
vsock(7).
- AF_KCM
- KCM (kernel connection multiplexer) interface (since Linux
4.6). See Documentation/networking/kcm.txt in the Linux kernel
source tree for details.
- AF_QIPCRTR
- Протокол
взаимодействия
с
маршрутизатором
Qualcomm IPC (начиная
с Linux 4.7).
- AF_SMC
- Протокол
SMC-R
(подключения
к общей
памяти
через RDMA)
(начиная с Linux
4.11), и
протокол SMC-D
(подключения
к общей
памяти,
прямой
доступ к
памяти) для
межузлового
гостевого
взаимодействия
z/VM (начиная с
Linux 4.19); никак не
связан с AF_RDS,
AF_IUCV или AF_VSOCK. В
RFC 7609
IBM's Shared Memory Communications over RDMA (SMC-R) Protocol
приведена
информация
по SMC-R. В
SMC-D
Reference Information
приведена
информация
по SMC-D.
- AF_XDP
- Интерфейс
XDP (короткий
путь
прохождения
данных)
(начиная с Linux
4.18).
Дополнительную
информацию
смотрите в
файле
Documentation/networking/af_xdp.rst
дерева
исходного
кода Linux.
socket(2),
socket(7)
Русский
перевод
этой
страницы
руководства
был сделан
Dmitry Bolkhovskikh <
[email protected]> и Yuri Kozlov
<
[email protected]>
Этот
перевод
является
бесплатной
документацией;
прочитайте
Стандартную
общественную
лицензию GNU
версии 3
или более
позднюю,
чтобы
узнать об
условиях
авторского
права. Мы не
несем
НИКАКОЙ
ОТВЕТСТВЕННОСТИ.
Если вы
обнаружите
ошибки в
переводе
этой
страницы
руководства,
пожалуйста,
отправьте
электронное
письмо на
[email protected]