Сколько соединений может быть между двумя сокетами домена Unix?

Per # 4, вы редактируете нужный файл? Файл ~ / .ssh / config , который нужно изменить, находится на клиенте (обычно там, где находится клавиатура).

Что касается №2 (и 3), помните, что ForwardX11Trusted не подразумевает ForwardX11 . ForwardX11Trusted просто означает, что если вы включите пересылку (через файл конфигурации или командную строку), то переадресованное соединение будет доверенным.

HTH.

2
03.03.2019, 23:50
2 ответа

Я не уверен, что мне нравится формулировка Штеффена Ульриха по этой теме. Сокеты, естественно, сложны, потому что они представляют собой обобщенный интерфейс, который можно использовать для ряда очень разных протоколов (. См. примечание 1 ).

Для обобщения различных протоколов интерфейс сокетов идентифицирует общие черты различных протоколов.:

  • Все протоколы должны иметь какой-либо адресный механизм.(См. примечание 1)
  • Все данные отправляются с адреса на адрес.
  • Здесь полезно обсудить два типа протокола :
    • Некоторые протоколы представляют соединение :SOCK _STREAM
    • Некоторые протоколы представляют серию сообщений :SOCK _DGRAM

Протоколы SOCK _STREAM обычно сильно отличаются от протоколов SOCK _DGRAM. Но внутри каждой из этих групп протоколы не так сильно различаются.

НОСОК _ПОТОК

  • Пример :TCP
  • Данные поступают длинным потоком без перерывов.
  • Данные всегда поступают в том порядке, в котором они были отправлены

Протоколы, ориентированные на соединение, всегда (? )пара сокетов с данными, передаваемыми между ними в одиночном соединении.Протоколы подключения обычно также поддерживают некоторую форму «слушающего» сокета, единственной целью которого является ожидание новых запросов на подключение.

Думайте о розетках, ориентированных на соединение, как о двух телефонах с линией между ними.

Вызов connect()и accept()приводит к созданию нового соединения с двумя связанными сокетами (, по одному на каждой стороне соединения ).

СОК _ДГРАММА

  • Пример UDP
  • Данные поступают в тех же блоках (сообщений )они были отправлены, не объединены в непрерывный поток
  • Сообщения могут приходить не по порядку.

Протоколы, ориентированные на дейтаграммы, очень разные. Сокеты можно настроить так, чтобы они действовали как почтовые ящики, получая сообщения откуда угодно. Там нет требования иметь подключение. В случае UDP любой пакет, отправленный с на правильный IP-адрес и порт с , любой IP-адрес и порт будут подхвачены одним и тем же сокетом. Таким образом, вы можете вести разговоры с несколькими разными компьютерами через одну и ту же розетку.

Для сокетов SOCK _DGRAM используется специальное значение для connect().

If the socket sockfd is of type SOCK_DGRAM, then addr is the address to which datagrams are sent by default, and the only address from which datagrams are received.

Это не создает новое уникальное соединение. Он просто ограничивает, какие сообщения будут получены этим сокетом, а НЕ сокетом на другой стороне.

Функция sendto()позволяет программе отправить сообщение и указать адрес для его отправки.

Сокеты домена Unix

Они бывают двух видов (SOCK _STREAM и SOCK _DGRAM )так же, как интернет-сокеты (TCP и UDP ). Итак, для сокетов UNIX SOCK _STREAM, да, у них есть только одно соединение между парой сокетов. Но сокеты UNIX SOCK _DGRAM отличаются (точно так же, как UDP отличается от TCP ).


Примечание 1 :Сокеты Unix выглядят странно, потому что не существует основного протокола как такового,они являются конструкцией ядра. Ядро может использовать собственные индексные дескрипторы сокетов в качестве механизма адресов. Как указывает mosvy, это может привести к странному поведению, когда вы пытаетесь определить адрес сокета unix.

5
27.01.2020, 21:53
  1. Максимум один.
  2. Чтобы провести различие между использованием файлов сокетов и файлов fifo. Открытие именованного fifo для записи не создает уникального соединения со считывателем. (Или наоборот ). Другими словами, это сделано для контраста с разделом 15.5, FIFO.
1
27.01.2020, 21:53

Теги

Похожие вопросы