ИМЯ
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.