Skip to main content

Что такое доменное гнездо Unix®?

Доменный сокет Unix® - это особый тип сокета в операционной системе Unix®, который передает данные из одного приложения в другое. В отличие от других сокетов, которые обычно подключаются к другим системам, доменный сокет Unix® является сокетом межпроцессного взаимодействия (IPC), то есть он подключается только к другим программам на компьютере пользователя. Конструктивно сокет домена больше похож на именованный канал, чем на сокет, хотя он имеет несколько особенностей, которые не включает канал. Использование доменных сокетов безопасно, поскольку другие сети не могут шпионить за потоком данных, а сокету даже не нужна сеть для работы.

Сокеты в каждой ОС используются для потоковой передачи байтов из одной программы в другую в двухстороннем потоке, что означает, что, когда данные уходят, поступают другие данные. Обычно это используется в качестве моста для других серверов и компьютеров, но не в случае доменного сокета Unix®. Эти специальные сокеты используются для передачи данных из файловой системы Unix® в другую программу, а не во внешнюю сеть.

Хотя сокет домена Unix® имеет много общих задач и возможностей, связанных с сокетами, он больше похож на именованный канал. Именованный канал - это способ для компьютера передавать данные из одного раздела в другой. Он называется именованным каналом, потому что каналу дано имя, так же как у доменного сокета Unix® есть имя - сама файловая система Unix® функционирует как имя. Основное различие между этими двумя заключается в том, что каналы могут предлагать только последовательности потоков байтов, в которых данные считываются по мере их отправки, тогда как доменные сокеты предлагают поток байтов и дейтаграмму, в которой информация читается как пакет. Поток байтов лучше с точки зрения безопасности, тогда как датаграмма лучше для систем, которые отправляют непрерывные сообщения.

Доменные сокеты Unix® не предназначены для интеграции с внешними сетями, но они предлагают множество удобных функций для локальных сетей, независимо от того, используют ли компьютер один или несколько человек. Используя доменный сокет Unix® вместо сокетов других типов, программы могут получить аутентификацию или разрешение без необходимости вводить его вручную. Сокет домена также принимает правила системы Unix®, что полезно, если разные пользователи получают разные уровни доступа, поскольку эти правила могут быть записаны в систему, и к ним будут обращать внимание.

Доменный сокет Unix® более надежен, чем другие сокеты и каналы. Доменные сокеты не позволят ненадежной сети прослушивать поток данных, а удаленные компьютеры не смогут подключиться к потоку без доступа. Вся информация для аутентификации и входа в систему находится в домене Unix®, поэтому пользователю никогда не потребуется вводить пароль или имя пользователя для входа на сервер. Это означает, что программы, которые слушают нажатия клавиш, не получат эту информацию.