3

Я понимаю, что в сети также используются сокеты, но мне интересно, относятся ли сокеты домена Unix (IPC) к сетевому уровню. Если да, то использует ли это как-то сеть HW? Это работает как петля? Если нет, то почему в Linux перечислены netstat ?

1 ответ1

2

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

Посмотрите, какова стоимость установления соединения с использованием сокетов Unix Domain против сокетов TCP, например:

Сообщения, отправляемые через сокеты TCP, должны проходить через сетевой стек до интерфейса обратной связи (который является виртуальным сетевым интерфейсным устройством, обычно называемым "lo" в системах Unix-стиля), а затем копироваться в принимающий сокет. Код сетевого стека связывается с заголовками TCP и IP, принимает решения о маршрутизации, пересылает пакет себе через "lo", затем выполняет больше маршрутизации и удаляет заголовки обратно. Кроме того, поскольку TCP является сетевым протоколом, его часть для установления соединения имеет все виды дополнительной сложности для обработки потерянных пакетов. Наиболее важным для вас является то, что TCP должен отправить три сообщения только для установления соединения (SYN, SYN-ACK и ACK).

В случае Unix-сокетов ядро может обойти все это и просто передать данные между двумя процессами, чтобы уменьшить издержки.

Погуглив вокруг, вы можете столкнуться с некоторыми критериями.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .