ADDRESS_FAMILIES(7) Руководство программиста Linux ADDRESS_FAMILIES(7)

ИМЯ

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 распознаются следующие форматы:

Локальное соединение, дополнительная информация доступна в unix(7).
Протоколы Интернет IPv4, дополнительная информация доступна в ip(7).
Протокол любительского радио AX.25, дополнительная информация доступна в ax25(4).
Протоколы Novell IPX.
AppleTalk, дополнительная информация доступна в ddp(7).
Протокол пакетного уровня AX.25, дополнительная информация доступна в netrom(4), The Packet Radio Protocols and Linux и AX.25, NET/ROM и главах ROSE network programming из Linux Amateur Radio AX.25 HOWTO.
Нельзя использовать для создания сокетов; в основном используется для связей типа «мост» в протокольных командах rtnetlink(7).
Доступ к неструктурированным постоянным виртуальным каналам ATM (PVC), дополнительная информация доступна в ATM on Linux HOWTO.
Протокол ITU-T X.25 / ISO-8208, дополнительная информация доступна в x25(7).
Протоколы Интернет IPv6, дополнительная информация доступна в ipv6(7).
Протокол пакетного уровня RATS (Radio Amateur Telecommunications Society) окружения открытых систем (ROSE) AX.25, дополнительная информация доступна в ресурсах, перечисленных для AF_NETROM.
Протокольные сокеты DECet, дополнительная информация доступна в Documentation/networking/decnet.txt из дерева исходного кода Linux.
Зарезервировано для «проекта 802.2LLC», никогда не использовалось.
Недолго существовавшее (с Linux 2.1.30 по 2.1.99pre2) семейство протоколов для вызовов из межсетевого экрана.
Прокотол управления ключами, изначально разрабатывался для использования с IPsec (начиная с Linux 2.1.38). Никак не связан с keyctl(2) и возможностью хранения ключей в ядре. Дополнительная информация доступна в RFC 2367 PF_KEY Key Management API, Version 2
Устройство для пользовательского взаимодействия с ядром, дополнительная информация доступна в netlink(7).
Низкоуровневый пакетный интерфейс, дополнительная информация доступна в packet(7).
Протокол Acorn Econet (удалён в Linux 3.5); дополнительная информация доступна в Econet documentation
Доступ к коммутируемым виртуальным каналам ATM (SVC); дополнительная информация доступна в ATM on Linux HOWTO
Протокол надёжных датаграммных сокетов (RDS) (начиная с Linux 2.6.30). RDS поверх RDMA никак не связан с AF_SMC или AF_XDP. Дополнительная информация доступна в rds(7), rds-rdma(7) и файле Documentation/networking/rds.txt из дерева исходного кода Linux.
Сокетный интерфейс поверх IrDA (помещён для обкатки в Linux 4.14, удалён Linux 4.17); дополнительная информация доступна в irda(7).
Транспортный слой PPP общего назначения для поднятия туннелей L2 (L2TP и PPPoE). Смотрите файл Documentation/networking/l2tp.txt в дереве исходного кода Linux.
Устаревший протокол для территориально распределённой сети (WAN), использовался в картах Sangoma WAN («WANPIPE»); удалён в Linux 2.6.21.
Протокол управления логической связью (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). В исторических заметках описана разработка протокола.
Собственная адресация InfiniBand (начиная с Linux 3.11).
Многопротокольная коммутация по меткам (начиная с Linux 4.1); по большей части используется для настройки маршрутизации MPLS через netlink(7), так как нет возможности создавать сокеты в пользовательском пространстве.
Автотранспортный протокол шины Controller Area Network (начиная с Linux 2.6.25). Дополнительную информацию смотрите в файле Documentation/networking/can.rst в дереве исходного кода Linux.
TIPC, протокол «кластерных доменных сокетов» (начиная с Linux 2.6.16). Смотрите TIPC Programmer's Guide и описание протокола
Сокетный протокол Bluetooth низкого уровня (начиная с Linux 3.11). Описан в Bluetooth Management API overview и An Introduction to Bluetooth Programming Альбертом Хуангом (Albert Huang)
Протокол IUCV (средство межпользовательской связи) z/VM для взаимодействия гипервизор-гость (начиная с Linux 2.6.21); никак не связан с AF_VSOCK и/или AF_SMC. Дополнительную информацию смотрите в IUCV protocol overview
Rx, протокол процедурных вызовов Andrew File System (начиная с Linux 2.6.22).Дополнительную информацию смотрите в файле Documentation/networking/rxrpc.txt дерева исходного кода Linux.
Новый протокол взаимодействия с драйвером «модульного ISDN» (начиная с Linux 2.6.27). Смотрите вики mISDN
Интерфейс IPC/RPC к сотовому модему Nokia (начиная с Linux 2.6.31). Дополнительную информацию смотрите в файле Documentation/networking/phonet.txt дерева исходного кода Linux.
Неструктурированный пакетный протокол IEEE 802.15.4 WPAN (персональная беспроводная сеть) (начиная с Linux 2.6.31). Дополнительную информацию смотрите в файле Documentation/networking/ieee802154.txt дерева исходного кода Linux.
Протокол взаимодействия Ericsson Communication CPU с Application CPU (CAIF)(начиная с Linux 2.6.36). Дополнительную информацию смотрите в файле Documentation/networking/caif/Linux-CAIF.txt дерева исходного кода Linux.
Взаимодействие с ядерным интерфейсом шифрования (начиная с Linux 2.6.38). Дополнительную информацию смотрите в файле Documentation/crypto/userspace-if.rst дерева исходного кода Linux.
Протокол VMWare VSockets для взаимодействия гипервизор-гость (начиная с Linux 3.9);никак не связан с AF_IUCV и AF_SMC. Дополнительную информацию смотрите в vsock(7).
Интерфейс KCM (концентратор соединений ядра) (начиная с Linux 4.6). Дополнительную информацию смотрите в файле Documentation/networking/kcm.txt дерева исходного кода Linux.
Протокол взаимодействия с маршрутизатором Qualcomm IPC (начиная с Linux 4.7).
Протокол 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.
Интерфейс XDP (короткий путь прохождения данных) (начиная с Linux 4.18). Дополнительную информацию смотрите в файле Documentation/networking/af_xdp.rst дерева исходного кода Linux.

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

socket(2), socket(7)

2018-10-16 Linux