Устройство сети Jabber: различия между версиями
Rain (обсуждение | вклад) м (→Ссылки) |
Rain (обсуждение | вклад) м (Воткну сюда, хотя не сильно в тему) |
||
Строка 23: | Строка 23: | ||
* [http://vonderer.blogspot.com/2007/07/xmpp-3.html Vonderer Blog. "Децентрализация - вот в чем соль."] | * [http://vonderer.blogspot.com/2007/07/xmpp-3.html Vonderer Blog. "Децентрализация - вот в чем соль."] | ||
* [http://www.portal-on.ru/jabber/?q=node/75 Безопасная аська] | * [http://www.portal-on.ru/jabber/?q=node/75 Безопасная аська] | ||
* [http://seriyps.ru/blog/2009/02/15/protokoly-prikladnogo-urovnya-jabberxmpp-chast1/ Протоколы прикладного уровня: Jabber/XMPP] | |||
[[Category:Сеть]][[Category:Тонкости работы]] | [[Category:Сеть]][[Category:Тонкости работы]] |
Текущая версия на 12:17, 19 сентября 2022
Введение[править]
Устройство сети Jabber отличается от других IM сетей ввиду своей децентрализованной структуры. Сеть состоит из большого количества публичных или изолированных серверов, некоторого числа клиентов, которые к ним подключаются, соединений - межсерверных (s2s) и клиент-сервер (c2s) и опционально - набором транспортов на стороне сервера, обеспечивающих связь с другими IM-сетями либо выполняющих те или иные функции. Наглядно структура сети показана на рисунке ниже:
Рассмотрим процедуру передачи сообщения. В самом начале клиент передает сообщение на свой сервер. Это соединение называется c2s (client to server). На данном этапе происходит обработка (конвертирование текста в формат XML, шифрование и/или сжатие при необходимости) текста и статус-сообщений клиентом и пересылка данных на сервер. Далее сервер производит обратную процедуру (распаковку и расшифровку). Исходя из полученных данных он либо пересылает сообщение другому клиенту (если этот клиент подключён на том же сервере, где и первый), или отправляет данные другому серверу (если клиент подключён к другому серверу). В первом случае соединение называется s2c (server to client) и происходит аналогично c2s. Во втором случае соединение называется s2s (server to server). В этом случае сообщение при необходимости шифруется и передается на другой сервер, а на другом сервере происходит соединение s2c.
Изолированные сервера[править]
Серверы, для которых недоступны s2s-подключения к публичным серверам (либо недоступны вообще) называются изолированными Jabber-серверами. Проявляется это в том, что невозможны любые коммуникации с другими серверами, такие как отправка сообщений, подключение и использование транспортов. Чаще всего такие сервера находятся в тех местах, где нежелательна бесконтрольная передача информации во внешнюю сеть, либо просто недоступно подключение к Интернет; пример - различные организации или локальные сети провайдеров.
Транспорты[править]
При использовании транспортов возникает еще один этап. На данном этапе сервер передает данные транспорту, а транспорт преобразует данные в формат чужого IM и передает их в чужую сеть. Если транспорт находится на другом сервере, то предварительно происходит этап s2s. Важно заметить, что взаимодействие клиента с другим сервером (не с тем, к которому он подключён) практически никогда не происходит. Все делается через свой сервер (это относится не только к транспортам, а ко всей сети). При использовании транспорта J2J клиентом является сервер, на котором размещен транспорт J2J.