Соединение по сокету и порту: в чём разница?

Настройка сетевых служб, маршрутизации, фаерволлов. Проблемы с сетевым оборудованием.
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
skeletor
майор
Сообщения: 2548
Зарегистрирован: 2007-11-16 18:22:04

Соединение по сокету и порту: в чём разница?

Непрочитанное сообщение skeletor » 2010-10-21 14:19:30

Предположим есть возможность использовать подключение по порту и по сокету. Интересует несколько вопросов:

1) В какие случаях лучше использовать сокет? порт?
2) Какой тип соединения работает быстрее? меньше всего нагружает ОС?

Интересует вопрос как в общем, так и конкретно для такого ПО: mysql, postgresql, clamav, spamassassin.

Предпочтительная ОС FreeBSD (но интересны так же варианты и для linux)

Если есть толковая литература об этом - киньте ссылку.

Заранее спасибо.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
gloom
лейтенант
Сообщения: 738
Зарегистрирован: 2008-03-13 16:29:12
Откуда: UA

Re: Соединение по сокету и порту: в чём разница?

Непрочитанное сообщение gloom » 2010-10-21 14:30:38

сокет быстрей но работает только локально

Аватара пользователя
BlackCat
прапорщик
Сообщения: 469
Зарегистрирован: 2007-10-16 22:40:42

Re: Соединение по сокету и порту: в чём разница?

Непрочитанное сообщение BlackCat » 2010-10-26 11:49:08

gloom писал(а):сокет быстрей но работает только локально
Аргументы?

Аватара пользователя
terminus
майор
Сообщения: 2305
Зарегистрирован: 2007-10-29 11:27:35
Откуда: Рига

Re: Соединение по сокету и порту: в чём разница?

Непрочитанное сообщение terminus » 2010-10-26 11:58:08

BlackCat писал(а):
gloom писал(а):сокет быстрей но работает только локально
Аргументы?
Ну одно дело пустать соединение через TCP/IP и ipfw, а другое через память. Что быстрее должно работать? :unknown:
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.

Аватара пользователя
BlackCat
прапорщик
Сообщения: 469
Зарегистрирован: 2007-10-16 22:40:42

Re: Соединение по сокету и порту: в чём разница?

Непрочитанное сообщение BlackCat » 2010-10-27 9:08:08

terminus писал(а):Ну одно дело пустать соединение через TCP/IP и ipfw, а другое через память. Что быстрее должно работать? :unknown:
Так и хочется с иронией спросить: TCP/IP-стек находится не в памяти? Что сетевые (PF_INET) соединения, что соединения через UNIX-сокеты (PF_LOCAL) обслуживаются одним и тем-же API (см. socket(2)). На верхнем уровне вся работа ведётся одним и тем-же кодом. Далее одни запросы уйдут в TCP/IP-стек, а вот запросы для UNIX-сокетов будут обработаны отдельно. Здесь интересно будут ли они обслуживаться проходя через какие-то дополнительные подсистемы или нет. Надо почитать, что по-этому поводу пишут "отцы" UNIX.
=====
UNIX-сокеты считаются более безопасными, т.к. к ним невозможно получить доступ из-вне. Что бывает удобно, например, когда СУБД и её клиент расположены на одном узле и нет необходимости во взаимодействии через сеть.

Аватара пользователя
BlackCat
прапорщик
Сообщения: 469
Зарегистрирован: 2007-10-16 22:40:42

Re: Соединение по сокету и порту: в чём разница?

Непрочитанное сообщение BlackCat » 2010-11-12 3:11:02

Пролистал труды "отцов" и вот что нашёл. Тему вообще обходят стороной, то-ли в силу очевидности, то-ли в силу противоречивости. Развёрнутое описание вопроса дано в книге "UNIX. Профессиональное программирование" товарищами Стивенсом и Раго:
Отцы писал(а):Сокеты домена UNIX используются для организации взаимодействия процессов, работающих на одной и той же машине. Сокеты домена Интернет также могут служить для этих целей, но сокеты домена UNIX выполняют эту работу более эффективно. Сокеты домена UNIX просто копируют данные - они никак не обрабатывают сетевые протоколы, не удаляют и не добавляют никаких заголовков пакетов, не вычисляют контрольные суммы, не генерируют последовательные номера и не высылают подтверждения о приёме.