Устройство сети Jabber

Материал из Мир Jabber
Версия от 21:18, 24 августа 2008; Rain (обсуждение | вклад) (Новая: === Введение === Устройство сети Jabber отличается от других IM сетей ввиду своей децентрализованной струк...)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к навигацииПерейти к поиску

Введение

Устройство сети Jabber отличается от других IM сетей ввиду своей децентрализованной структуры. Сеть состоит из большого количества публичных или изолированных серверов, некоторого числа клиентов, которые к ним подключаются, соединений - межсерверных (s2s) и клиент-сервер (c2s) и опционально - набором транспортов на стороне сервера, обеспечивающих связь с другими IM-сетями либо выполняющих те или иные функции. Наглядно структура сети показана на рисунке ниже:

Графическое отображение структуры Jabber-сети

Рассмотрим процедуру передачи сообщения. В самом начале клиент передает сообщение на свой сервер. Это соединение называется c2s (client to server). На данном этапе происходит обработка (конвертирование текста в формат XML, шифрование и/или сжатие при необходимости) текста и статус-сообщений клиентом и пересылка данных на сервер. Далее сервер производит обратную процедуру (распаковку и расшифрование). Исходя из полученных данных он либо пересылает сообщение другому клиенту (если этот клиент подключён на том же сервере, где и первый), или отправляет данные другому серверу (если клиент подключён к другому серверу). В первом случае соединение называется s2c (server to client) и происходит аналогично c2s. Во втором случае соединение называется s2s (server to server). В этом случае сообщение при необходимости шифруется и передается на другой сервер, а на другом сервере происходит соединение s2c.

Изолированные сервера

Серверы, для которых недоступны s2s-подключения к публичным серверам (либо недоступны вообще) называются изолированными Jabber-серверами. Проявляется это в том, что невозможны любые коммуникации с внешними серверами, отправка сообщений, подключение и использование транспортов, а также просмотр сервисов доступны только локально. Чаще всего такие сервера находятся в тех местах, где нежелательна бесконтрольная передача информации во внешнюю сеть, либо просто недоступно подключение к Интернет; пример - различные организации или локальные сеть провайдеров.

Транспорты

При использовании транспортов возникает еще один этап. На данном этапе сервер передает данные транспорту, а транспорт преобразует данные в формат чужого IM и передает их в чужую сеть. Если транспорт находится на другом сервере, то предварительно происходит этап s2s. Важно заметить, что взаимодействие клиента с другим сервером (не с тем, к которому он подключён) практически никогда не происходит. Все делается через свой сервер (это относится не только к транспортам, а ко всей сети). При использовании транспорта J2J клиентом является сервер, на котором размещен транспорт J2J

Ссылки

Vonderer Blog. "Децентрализация - вот в чем соль."