Страница 1 из 1

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

Добавлено: 2010-10-21 14:19:30
skeletor
Предположим есть возможность использовать подключение по порту и по сокету. Интересует несколько вопросов:

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

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

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

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

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

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

Добавлено: 2010-10-21 14:30:38
gloom
сокет быстрей но работает только локально

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

Добавлено: 2010-10-26 11:49:08
BlackCat
gloom писал(а):сокет быстрей но работает только локально
Аргументы?

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

Добавлено: 2010-10-26 11:58:08
terminus
BlackCat писал(а):
gloom писал(а):сокет быстрей но работает только локально
Аргументы?
Ну одно дело пустать соединение через TCP/IP и ipfw, а другое через память. Что быстрее должно работать? :unknown:

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

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

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

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