Саме з цієї відповіді:
https://stackoverflow.com/questions/2482411/is-this-pdo-bug-fixed-now/2482424#2482424
Саме з цієї відповіді:
https://stackoverflow.com/questions/2482411/is-this-pdo-bug-fixed-now/2482424#2482424
Відповіді:
Сокет UNIX являє собою механізм взаємодії між процесами , який дозволяє здійснювати обмін даними між двонапрямлених процесів , що працюють на одній і тій же машині.
IP-розетки (особливо TCP / IP-розетки) - це механізм, що дозволяє спілкуватися між процесами по мережі. У деяких випадках ви можете використовувати розетки TCP / IP для розмови з процесами, що працюють на одному комп’ютері (за допомогою інтерфейсу зворотного зв'язку).
Розетки домену UNIX знають, що вони виконуються в одній і тій же системі, тому вони можуть уникнути деяких перевірок і операцій (наприклад, маршрутизації); що робить їх швидшими та легшими, ніж IP-розетки. Тож якщо ви плануєте спілкуватися з процесами на одному хості, це кращий варіант, ніж IP-розетки.
Редагувати: Відповідно до коментаря Нілда Тедмана : Розетки домену UNIX підлягають дозволу файлової системи, тоді як TCP-розетки можна керувати лише на рівні фільтра пакетів.
Ви можете перелічити локальні сокети Unix для власної машини за допомогою наступної команди:
netstat -a -p --unix
Веселіться!
netstat
проте працює на Windows.
Яка різниця між сокетом Unix і сокетом TCP / IP?
TCP / IP-розетка використовується для зв'язку через мережі TCP / IP. Підключений сокет TCP ідентифікується за допомогою комбінації локального IP, локального порту, віддаленого IP та віддаленого порту. Прослуховуючий сокет TCP ідентифікується за допомогою локального порту та, можливо, локального IP. AIUI, щонайменше, у Linux-сокетах TCP / IP завжди призводить до генерації та декодування пакетів TCP / IP, навіть якщо клієнт і сервер знаходяться на одній машині.
Socket домену unix (іноді скорочується до unix socket), з іншого боку, працює на одній машині. Прослуховування сокетів живе в ієрархії файлової системи, а доступ до них можна керувати дозволами файлової системи.
Крім того, процес, що приймає з'єднання в сокет Unix, може визначати ідентифікатор користувача процесу, який підключається. Це дозволяє уникнути необхідності кроку аутентифікації. Замість того, щоб генерувати пароль для вашого сервера баз даних і включати його копію в код вашого веб-сайту, ви можете просто сказати серверу бази даних, що користувач, який працює з веб-сервером, має доступ до відповідного облікового запису користувача в базі даних.
TCP-розетки теж обробляє Unix?
Звичайно
TCP-розетки є частиною специфікації протоколу TCP
Специфікації Інтернет-протоколу стосуються лише того, що відбувається на дроті, специфікація TCP містить визначення Socket, але це визначення не є таким, як термін використовується API "sockets".
"Sockets API", як ми знаємо, він був введений BSD, але згодом був скопійований повсюдно і включений як частина стандарту posix. Основний матеріал для TCP і UDP сокетів, як правило, однаковий на різних платформах, але більш досконалі речі та речі, які взаємодіють з іншими частинами ОС, різняться, наприклад, в unix-подібних системах розетка визначається за допомогою файлової ручки і може Читати / записувати файли API, це не так у Windows.
Деякі розширення API сокетів були задокументовані у форматі rfcs, але ці RFC є лише "інформаційними".
чи будь-який протокол може використовувати IP-розетки?
Коли програма явно створює сокет за допомогою функції "socket" (сокети також створюються функцією accept), він передає три параметри, "домен", "тип" і "протокол". Між ними ці три параметри можна використовувати для вибору багатьох різних типів розетки.