ИМЯ
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
- Локальное
соединение,
дополнительная
информация
доступна в
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)
окружения
открытых
систем (ROSE) AX.25,
дополнительная
информация
доступна в
ресурсах,
перечисленных
для 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
- Устройство
для
пользовательского
взаимодействия
с ядром,
дополнительная
информация
доступна в
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
- Протокол
надёжных
датаграммных
сокетов (RDS)
(начиная с Linux
2.6.30). RDS поверх RDMA
никак не
связан с AF_SMC
или AF_XDP.
Дополнительная
информация
доступна в
rds(7), rds-rdma(7) и
файле
Documentation/networking/rds.txt из
дерева
исходного
кода Linux.
- AF_IRDA
- Сокетный
интерфейс
поверх IrDA
(помещён
для
обкатки в Linux
4.14, удалён Linux 4.17);
дополнительная
информация
доступна в
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
(концентратор
соединений
ядра)
(начиная с Linux
4.6).
Дополнительную
информацию
смотрите в
файле
Documentation/networking/kcm.txt
дерева
исходного
кода Linux.
- 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.