Доменный сокет Unix
Сокет домена Unix ( UDS ) или сокет IPC ( межпроцессное взаимодействие ) — это конечная точка передачи данных для обмена данными между процессами, выполняющимися в одной и той же операционной системе хоста. Он также упоминается по семейству адресов AF_UNIX
.
Розетки
[ редактировать ]Допустимые типы сокетов в домене UNIX: [1]
SOCK_STREAM
(сравните с TCP ) – для потоково-ориентированного сокетаSOCK_DGRAM
(сравните с UDP ) — для дейтаграммно-ориентированного сокета, который сохраняет границы сообщений (как и в большинстве реализаций UNIX, дейтаграммные сокеты домена UNIX всегда надежны и не меняют порядок дейтаграмм)SOCK_SEQPACKET
(сравните с SCTP ) – для сокета последовательных пакетов, ориентированного на соединение, сохраняющего границы сообщений и доставляющего сообщения в том порядке, в котором они были отправлены.
Функция сокетов домена Unix является стандартным компонентом POSIX операционных систем .
API ядра для сокетов домена Unix аналогичен API-интерфейсу интернет-сокета , но вместо использования базового сетевого протокола все взаимодействие происходит полностью внутри операционной системы . Сокеты домена Unix могут использовать файловую систему в качестве пространства имен адресов . (Некоторые операционные системы, такие как Linux , предлагают дополнительные пространства имен.) Процессы ссылаются на сокеты домена Unix как на индексные дескрипторы файловой системы , поэтому два процесса могут взаимодействовать, открывая один и тот же сокет.
Помимо отправки данных, процессы могут отправлять дескрипторы файлов через соединение сокета домена Unix, используя метод sendmsg()
и recvmsg()
системные вызовы. Это позволяет процессам-отправителям предоставлять процессу-получателю доступ к дескриптору файла, к которому в противном случае у процесса-получателя нет доступа. [2] [3] Это можно использовать для реализации элементарной формы безопасности, основанной на возможностях . [4]
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ «Руководство программиста Linux (unix — сокеты для локального межпроцессного взаимодействия)» . 30 апреля 2018 года . Проверено 22 февраля 2019 г.
- ^ «Архив списка рассылки «Дискуссии Postfix»» . 30 сентября 2000 г. Архивировано из оригинала 18 мая 2013 г. Проверено 29 сентября 2014 г.
- ^ «Справочная страница Linux — cmsg(3): доступ к вспомогательным данным» . Проверено 9 октября 2018 г.
- ^ " "Безопасное программирование для Linux и Unix HOWTO", Раздел 3.4 "Сокеты и сетевые подключения" " . dwheeler.com . Дэвид А. Уилер. 22 августа 2004 года . Проверено 29 сентября 2014 г.
Внешние ссылки
[ редактировать ]- Единая спецификация UNIX , версия 4 от Открытой группы. – Справочник по системным интерфейсам,
- Единая спецификация UNIX , версия 4 от Открытой группы. – Справочник по системным интерфейсам,
- Единая спецификация UNIX , версия 4 от Открытой группы. – Справочник по системным интерфейсам,
- Linux программиста Руководство – Библиотечные функции –
- ucspi-unix , инструменты командной строки клиент-сервер сокета UNIX-домена
- Unix-сокеты против интернет-сокетов
- Сокеты Unix — Руководство Beej по Unix IPC