Открыть сервис

Jabber: история и технические основы протокола

Jabber — это историческое название открытого протокола мгновенного обмена сообщениями и присутствия, основанного на архитектуре клиент-сервер и децентрализованной федеративной модели. В техническом сообществе термин «Jabber» чаще всего используется как синоним протокола XMPP (Extensible Messaging and Presence Protocol), который он породил. Jabber обеспечивает передачу текстовых сообщений в режиме реального времени, а также поддерживает передачу файлов, голосовую и видеосвязь через расширения.

История возникновения

Протокол Jabber был создан в 1998—1999 годах американским программистом Джереми Миллером. Первоначальная цель разработчика заключалась в создании альтернативы проприетарным сетям мгновенных сообщений (таким как ICQ и AIM), которые были закрытыми и не позволяли пользователям разных сервисов общаться друг с другом. Миллер предложил архитектуру, основанную на открытых стандартах и XML, что позволяло любому желающему развернуть собственный сервер и подключить его к глобальной федерации.

В январе 1999 года проект был анонсирован на ресурсе Slashdot, что привлекло внимание сообщества разработчиков. В том же году Миллер основал компанию Jabber, Inc., которая занималась коммерческой поддержкой и развитием технологии. Ключевым моментом стало решение не закрывать исходный код, а передать управление развитием протокола независимому сообществу.

В 2000 году была сформирована некоммерческая организация Jabber Software Foundation (позднее переименованная в XMPP Standards Foundation), которая взяла на себя координацию разработки спецификаций. В 2002—2004 годах протокол был стандартизирован IETF (Internet Engineering Task Force) под названием XMPP (RFC 3920 и RFC 3921). Несмотря на формальную смену названия, термин «Jabber» продолжает использоваться в обиходе для обозначения как самого протокола, так и экосистемы серверов и клиентов.

Технические основы

Архитектура и федеративность

В отличие от централизованных сетей, Jabber построен по федеративному принципу, аналогичному электронной почте. Каждый пользователь регистрируется на конкретном сервере, а серверы взаимодействуют друг с другом напрямую. Это позволяет пользователям разных серверов обмениваться сообщениями без необходимости создания единого центрального узла.

Идентификатор пользователя в Jabber называется JID (Jabber ID) и имеет формат, напоминающий адрес электронной почты: имя@домен. Например, user@example.com. JID может включать дополнительный ресурс (например, user@example.com/laptop), который указывает на конкретное устройство или сессию пользователя.

Протокол и формат данных

Базовым форматом данных в Jabber является XML (Extensible Markup Language). Каждое сообщение, запрос или ответ представляет собой XML-элемент, передаваемый по TCP-соединению. Основные элементы включают:

  • <message> — для передачи текстовых сообщений;
  • <presence> — для информирования о статусе пользователя (онлайн, офлайн, занят и т. д.);
  • <iq> (Info/Query) — для управления учётными записями, списками контактов и другими настройками.

Ключевой особенностью протокола является его расширяемость. Для добавления новых функций используются специальные расширения, называемые XEP (XMPP Extension Protocols). На данный момент существует несколько сотен таких расширений, охватывающих передачу файлов, шифрование, голосовые вызовы, публикацию контента и другие возможности.

Серверы и клиенты

Существует множество серверных реализаций Jabber/XMPP. Наиболее известными являются Ejabberd (написан на Erlang, отличается высокой масштабируемостью), Prosody (лёгкий сервер на Lua) и Openfire (на Java). Эти серверы могут использоваться как для публичных сервисов, так и для корпоративных развёртываний.

Клиентские приложения для Jabber существуют для всех основных платформ. Исторически значимыми были клиенты Psi, Pidgin и Miranda NG. Среди современных приложений выделяются Gajim, Conversations (для Android) и Monal (для iOS). Многие клиенты поддерживают не только Jabber, но и другие протоколы, что делает их универсальными мессенджерами.

Распространение и применение

Публичные сервисы

В начале 2000-х годов Jabber был популярной альтернативой ICQ и MSN Messenger. Крупнейшим публичным сервером длительное время являлся jabber.ru, который действует и в настоящее время. Однако с ростом популярности проприетарных мобильных мессенджеров (WhatsApp, Telegram, Viber) массовое использование Jabber сократилось. Тем не менее, протокол сохраняет устойчивую нишу среди технически грамотных пользователей, ценящих открытость, децентрализацию и конфиденциальность.

Корпоративное использование

Jabber/XMPP широко применяется в корпоративной среде для внутренних коммуникаций. Многие компании разворачивают собственные серверы, чтобы обеспечить безопасный обмен сообщениями внутри организации. Протокол поддерживается рядом крупных платформ, включая Cisco Webex, которая использует XMPP для обмена сообщениями в своей системе унифицированных коммуникаций.

Интеграция с другими системами

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

Безопасность и конфиденциальность

Одним из преимуществ Jabber является возможность сквозного шифрования. Для этого используются расширения OMEMO (основан на двойном шифровании, аналогичном Signal Protocol) и OTR (Off-the-Record Messaging). Эти технологии гарантируют, что содержимое переписки недоступно даже администраторам серверов.

Однако по умолчанию шифрование в Jabber не включено, и для его активации требуется настройка клиента. Кроме того, метаданные (информация о том, кто с кем общается) в федеративной сети могут быть доступны серверам, участвующим в передаче. Это ограничение характерно для большинства децентрализованных систем.

Современное состояние

Современное развитие Jabber сосредоточено в рамках стандартов XMPP. Несмотря на снижение массовой популярности, протокол продолжает развиваться: появляются новые расширения, улучшается поддержка мобильных устройств и энергоэффективность. Важным направлением является совместимость с другими децентрализованными сетями, такими как Matrix.

Ряд организаций и сообществ поддерживают публичные серверы, объединённые в глобальную федерацию. Пользователи могут свободно выбирать сервер, регистрироваться на нём и общаться с людьми на любых других серверах. Эта модель обеспечивает устойчивость и независимость сети от отдельных компаний.

Источники

  • RFC 3920: Extensible Messaging and Presence Protocol (XMPP): Core
  • RFC 3921: Extensible Messaging and Presence Protocol (XMPP): Instant Messaging and Presence
  • Официальная документация XMPP Standards Foundation (xmpp.org)
  • Peter Saint-Andre, Kevin Smith, Remko Tronçon. XMPP: The Definitive Guide. O'Reilly Media, 2009.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →