Научная статья на тему 'ИССЛЕДОВАНИЕ ПРОТОКОЛОВ ОБМЕНА СООБЩЕНИЯМИ В РЕЖИМЕ РЕАЛЬНОГО ВРЕМЕНИ'

ИССЛЕДОВАНИЕ ПРОТОКОЛОВ ОБМЕНА СООБЩЕНИЯМИ В РЕЖИМЕ РЕАЛЬНОГО ВРЕМЕНИ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
254
33
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ПРОТОКОЛ ОБМЕНА СООБЩЕНИЯМИ / МЕССЕНДЖЕР / ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ / ЧАТ С ЦЕНТРАЛЬНЫМ СЕРВЕРОМ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Федотов Е.А., Бондаренко Т.В., Федотова В.Н., Поляничка М.И.

Рассмотрены основные протоколы обмена сообщениями в режиме реального времени. Приводятся характеристики различных протоколов обмена мгновенными сообщениями.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «ИССЛЕДОВАНИЕ ПРОТОКОЛОВ ОБМЕНА СООБЩЕНИЯМИ В РЕЖИМЕ РЕАЛЬНОГО ВРЕМЕНИ»

УДК 004

Е.А. Федотов, Т.В. Бондаренко, В.Н. Федотова, М.И. Поляничка

ИССЛЕДОВАНИЕ ПРОТОКОЛОВ ОБМЕНА СООБЩЕНИЯМИ В РЕЖИМЕ РЕАЛЬНОГО ВРЕМЕНИ

Рассмотрены основные протоколы обмена сообщениями в режиме реального времени. Приводятся характеристики различных протоколов обмена мгновенными сообщениями.

Ключевые слова: протокол обмена сообщениями, мессенджер, информационные технологии, чат с центральным сервером.

Программы, осуществляющие мгновенный обмен сообщениями, очень популярны в современном мире. Их используют не только в корпоративных средах для деловой переписки, но и в повседневной жизни для осуществления неформального общения [1]. Системы обмена мгновенными сообщениями отличаются от электронной почты тем, что обмен информацией в них происходит в режиме реального времени [2]. Во многих ситуациях такой обмен сообщениями гораздо более удобен. Он позволяет пользователям не терять время на проверку входящих писем. Когда собеседник пришлёт ответ, программа оповестит об этом с помощью звукового сигнала.

Кроме того, удобство такого обмена данными состоит в том, что пользователи получают информацию о присутствии (или отсутствии) того или иного собеседника в сети. Обычно эта информация доступна в виде статуса, который устанавливается самим пользователем. Статус может содержать такие признаки присутствия (отсутствия) собеседника в сети, как «доступен», «недоступен», «отошёл от компьютера» и так далее [1]. Это так же облегчает ведение переписки и экономит время пользователей.

Ранние версии программ для обмена сообщениями единовременно отправляли всё, что печатается в диалоговом окне, адресату. Поэтому ему был виден весь процесс написания и редактирования сообщения собеседником. В настоящее время пользователь может управлять редактированием сообщения со своего монитора и отправлять его после завершения редактирования, так что собеседник не будет знать о том, как письмо изменялось во время написания.

Для осуществления мгновенной коммуникации необходима клиентская программа - мессенджер. Он выполняет свои функции не автономно, а посредством подключения к центральному компьютеру сети обмена сообщениями - серверу. Это объясняет, почему мессенджеры также называются клиентами [3].

Известно огромное количество сетей обмена сообщениями и мессенджеров для их использования. Среди них наиболее популярны IRC, ICQ, Jabber, Skype, QIP и т.д. Все эти клиенты имеют свои особенности, начиная от команды разработчиков и заканчивая используемыми серверами и протоколами. Обычно различные сети не позволяют установить прямую связь друг с другом, поэтому пользователям приходится регистрироваться в нескольких сетях, чтобы искать собеседников в другой сети. Но существуют также и мультипротокольные клиенты, позволяющие общаться со всеми адресатами независимо от сети [4].

Рассмотрим более подробно наиболее популярные протоколы обмена сообщениями.

Протокол ICQ работает по принципу метода сохранения всех посылаемых пользователями сообщений на сервере до того времени, пока собеседник не появится в сети [6].

Каждый пользователь ICQ имеет универсальный идентификатор - UIN (Universal Internet Number). Для того чтобы сообщение было передано, ICQ-серверу нужно сначала получить фактический IP-адрес пользователя. Непосредственная передача сообщения по протоколу TCP/IP не будет осуществлена без наличия IP-адреса. Преобразование номера пользователя в IP-адрес происходит с помощью специально предназначенных для этого серверов.

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

© Федотов Е.А., Бондаренко Т.В., Федотова В.Н., Поляничка М.И., 2016.

ISSN 2223-4047

Вестник магистратуры. 2016. № 5(56). Т. II

После того, как IP-адрес другой стороны получен, протокол может соединиться с этим клиентом и напрямую передавать информацию. При этом короткие сообщения могут передаваться с помощью UDP. Протокол UDP не пытается установить соединение, а пересылает данные отдельными пакетами. За счёт этого достигается более высокая скорость передачи данных по сравнению с TCP, а также расходуется меньшее количество памяти. Но из-за того, что UDP не обеспечивает должной степени надёжности, при передаче необходимо использовать подтверждение доставки пакета. Таким образом, ICQ пытается отправить сообщение по UDP до шести раз, и если ни одна попытка не подтверждается, то пользователь получает уведомление о невозможности передачи сообщения напрямую. Это сообщение пользователь сможет получить при следующем подключении к сети.

ICQ также пытается установить между собеседниками прямое TCP-соединение, если имеется такая возможность. После этого сообщения можно передавать с помощью TCP достаточно быстро и с должной степенью надёжности по сравнению с аналогичной передачей по UDP.

Каждый пользователь ICQ имеет возможность создать контакт-лист - список других пользователей ICQ. Если пользователь из контакт-листа зарегистрируется в сети, то другие пользователи, в списке контактов которых он есть, получат уведомление об этом. Пользователь ICQ может установить «статус», указывающий на то, хочет ли он принимать сообщения или нет. В списке контактов будут отображаться изменения статусов пользователей, находящихся в нём.

Протокол ICQ используют такие приложения, как ICQ, QIP Infium, Miranda и Pidgin [3].

XMPP - это основанный на XML, открытый, свободный для использования протокол для мгновенного обмена сообщениями и информацией о присутствии в режиме, близком к режиму реального времени. XMPP имеет гибкую архитектуру, что позволило включить в его функции не только передачу текста, но и файлов, а также голоса и видео. Изначально XMPP имел название Jabber [7].

Всем пользователям в сети Jabber присваиваются уникальные адреса - JID (Jabber ID). Эти идентификаторы состоят из двух частей: имени пользователя и доменного имени сервера, на котором он зарегистрирован. Части JID разделяются знаком «@». Пользователю Jabber доступно осуществление нескольких одновременных подключений. Для их идентификации используется вспомогательный JID, который называется ресурсом. Он добавляется через слеш в конец адреса. Сообщения на дополнительный адрес смогут дойти, только если данный ресурс будет подключён. JID также может быть использован для системных сообщений и контроля специальных возможностей на сервере. Но в этом случае имя пользователя не указывается и имя ресурса также может не указываться.

XMPP позволяет подключаться к сетям с другими протоколами, например, IRC. Эта возможность доступна благодаря так называемым «шлюзам». С помощью сервисов-шлюзов, выполняющихся на удалённом компьютере, этот протокол предоставляет доступ на уровне сервера.

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

XMPP интересен тем, что он является расширяемым, открытым и децентрализованным. Это позволяет каждому желающему не только открывать свой собственный сервер для осуществления мгновенного обмена сообщениями, но и вести коммуникацию с другими серверами XMPP. Этот протокол послужил основой для многих известных проектов, среди которых Facebook, QIP, LiveJournal, Google Talk [4].

IRC - это протокол прикладного уровня, осуществляющий обмен сообщениями в режиме реального времени [5]. Работает на основе серверов, объединённых в общую сеть.

Такая сеть состоит из большого количества каналов, каждый из которых имеет название вида #<имя канал>. Канал является обособленным пространством, где происходит общение между пользователями по той проблеме, которая указывается в заголовке. Любой пользователь данной сети может стать модератором канала, если создаст свой собственный. Для этого нужно произвести подключение к ещё не созданному каналу, после чего он автоматически сформируется, а подключившийся пользователь станет его модератором [6, 8].

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

ходит путём отправки сообщений по кратчайшему пути. Передаваемые данные видимы только для отправителя, получателя и входящим в кратчайший путь серверам.

Более того, протокол позволяет производить отправку широковещательных сообщений. Это необходимо для рассылки данных о режиме канала или статусах пользователей серверам, входящим в сеть, а также для рассылки им сообщений, исходящих от других серверов [6].

Среди приложений, использующих IRC - MirandaIM, Pidgin, WeeChat, IRC radio и многие другие

[5, 8].

Библиографический список:

1. Федотов Е.А. Администрирование программных и информационных систем. Белгород: Изд-во БГТУ, 2012.

133 с.

2. Федотов Е.А., Гарибов А.И. Сети электронно--вычислительных машин и телекоммуникации: методические указания к выполнению лабораторных работ. Белгород: Изд-во БГТУ, 2014. - 76 с.

3. Федотов Е.А., Федотова В.Н., Поляничка М.И. Анализ методов виртуализации применяемых в инфраструктуре предприятия / Вестник магистратуры. - 2015. №10. С. 57-59.

4. Федотов Е.А. Федотова В.Н., Поляничка М.И. Некоторые аспекты модернизации ИТ-инфрастуктуры предприятия / VII Международный молодежный форум "Образование. Наука. Производство". Белгород, 2015.

5. Федотов Е.А. Анализ состояния исследований в области проектирования корпоративных сетей / VII Международный молодежный форум "Образование. Наука. Производство". Белгород, 2015.

6. Протокол ICQ [Электронный ресурс]. - Режим доступа: http://uiny.ru/artides/icqprotocol (дата обращения 05.04.2016).

7. Протокол XMPP [Электронный ресурс]. - Режим доступа: http://ru.wikipedia.org/wiki/XMPP (дата обращения 05.04.2016).

8. Протокол IRC [Электронный ресурс]. - Режим доступа: http://ru.wikipedia.org/wiki/IRC (дата обращения 05.04.2016).

ФЕДОТОВ ЕВГЕНИЙ АЛЕКСАНДРОВИЧ - старший преподаватель кафедры программного обеспечения вычислительной техники и автоматизированных систем, Белгородский государственный технологический университет им. В.Г. Шухова, Россия.

БОНДАРЕНКО ТАТЬЯНА ВЛАДИМИРОВНА - старший преподаватель кафедры программного обеспечения вычислительной техники и автоматизированных систем, Белгородский государственный технологический университет им. В.Г. Шухова, Россия.

ФЕДОТОВА ВИКТОРИЯ НИКОЛАЕВНА - магистрант кафедры программного обеспечения вычислительной техники и автоматизированных систем, Белгородский государственный технологический университет им. В.Г. Шухова, Россия.

ПОЛЯНИЧКА МАКСИМ ИГОРЕВИЧ - магистрант кафедры программного обеспечения вычислительной техники и автоматизированных систем, Белгородский государственный технологический университет им. В.Г. Шухова, Россия.

i Надоели баннеры? Вы всегда можете отключить рекламу.