ОБЗОР
#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/IEC 8208 protocol. For further information, see
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
- Logical link control (IEEE 802.2 LLC) protocol, upper part of data link
layer of ISO/OSI networking protocol stack (since Linux 2.4); has no
relation to AF_PACKET. See chapter 13.5.3. Logical Link
Control in Understanding Linux Kernel Internals (O'Reilly
Media, 2006) and IEEE Standards for Local Area Networks: Logical Link
Control (The Institute of Electronics and Electronics Engineers, Inc.,
New York, New York, 1985) for details. See also
some
historical notes regarding its development.
- 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 (inter-user communication vehicle) z/VM protocol for hypervisor-guest
interaction (since Linux 2.6.21); has no relation to AF_VSOCK
and/or AF_SMC See
IUCV
protocol overview for details.
- 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.
- AF_MCTP
- MCTP (Management Component Transport Protocol) interface (since Linux
5.15), as defined by the DMTF specification DSP0236. For further
information, see mctp(7).
СМОТРИТЕ
ТАКЖЕ
ПЕРЕВОД
Русский
перевод
этой
страницы
руководства
разработал(и)
Dmitry Bolkhovskikh <d20052005@yandex.ru> и Yuri Kozlov
<yuray@komyakino.ru>
Этот
перевод
является
свободной
программной
документацией;
он
распространяется
на
условиях
общедоступной
лицензии GNU (GNU
General Public License - GPL,
https://www.gnu.org/licenses/gpl-3.0.html
версии 3 или
более
поздней) в
отношении
авторского
права, но
БЕЗ
КАКИХ-ЛИБО
ГАРАНТИЙ.
Если вы
обнаружите
какие-либо
ошибки в
переводе
этой
страницы
руководства,
пожалуйста,
сообщите
об этом
разработчику(ам)
по его(их)
адресу(ам)
электронной
почты или
по адресу
списка
рассылки
русских
переводчиков.