Як відносяться сокети домену Unix до мереж?


3

Я розумію, що мережа використовує також сокети, але мені цікаво, якщо Unix-доменні (IPC) сокети якось пов'язані з мережевим шаром. Якщо так, то чи це використовує мережу HW? Чи працює вона, як петля? Якщо ні, то чому перераховані netstat в Linux?

Відповіді:


2

Гнізда домену Unix поділяють ту саму семантику, що і звичайні сокети, але це приблизно, основний код не має ніякого відношення до мережного рівня. Вони забезпечують ефективний спосіб комунікації для процесів на одному хості (IPC), де бажана мережна семантика (слухати, підключати ...)

Подивитися Яка вартість встановлення з'єднання за допомогою сокетів Unix Domain і TCP sockets наприклад:

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

У випадку з сокетами UNIX ядро ​​може обійти все це і просто передати дані між двома процесами, так що менше витрат.

Google навколо вас можуть зустріти деякі тести .


Справедливо. Таким чином, існує лише семантика, але в іншому випадку не пов'язана з нею network взагалі, чи не так? Так чому вони є частиною netstat вихід?
Arkonix

1
З точки зору мережі, це може здатися дивним, але ви також можете побачити netstat Робота як лістинг активних сокетів, і завзято розповідає про сокеті UNIX. Ви можете повернути його назад netstat --tcp --udp хоча ...
lemonsqueeze
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.