УДК 004.057.4

ПЕРЕДАЧА ГОЛОСОВЫХ СООБЩЕНИЙ В РЕЖИМЕ РЕАЛЬНОГО ВРЕМЕНИ

Николаев Сергей Валерьевич1, Лагунова Александра Андреевна2, Корнилков Алексей Петрович3
1Приамурский государственный университет им. Шолом-Алейхема, студент
2Приамурский государственный университет им. Шолом-Алейхема, студент
3Приамурский государственный университет им. Шолом-Алейхема, старший преподаватель кафедры информатики и вычислительной техники

Аннотация
Цель данной статьи показать разработку собственного протокола прикладного уровня для двусторонней передачи голосовых сообщений по сети, в режиме реального времени. Разработан протокол с помощью программной среды Delphi 7.0.

Ключевые слова: прикладной протокол, сокеты


VOICE MESSAGING IN REAL TIME

Nikolaev Sergey Valer'evich1, Lagunova Alexandra Andreevna2, Kornilkov Alexei Petrovich3
1Sholom-Aleichem Priamursky State University, student
2Sholom-Aleichem Priamursky State University, student
3Sholom-Aleichem Priamursky State University, Senior Lecturer, Department of Computer Science

Abstract
The purpose of this paper to develop their own application-level protocol for two-way voice communications over the network in real time. Developed a protocol using a programming environment Delphi 7.0.

Keywords: Application protocol, Delphi, ISO/OSI, RTCP, RTP, sockets, UDP


Библиографическая ссылка на статью:
Николаев С.В., Лагунова А.А., Корнилков А.П. Передача голосовых сообщений в режиме реального времени // Современная техника и технологии. 2015. № 2 [Электронный ресурс]. URL: http://technology.snauka.ru/2015/02/5715 (дата обращения: 28.05.2017).

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

Прикладной уровень является седьмым, самым верхним уровнем в сетевой модели ISO/OSI и содержит большое количество протоколов прикладных сетевых программ (рис.1).


Рисунок 1- Модель ISO/OSI

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

В процессе изучения информационных сетей был разработан собственный сетевой протокол, организующий двустороннюю передачу звуковых сообщений в режиме реального времени. Прежде чем приступить к разработке, были изученные VoIP-протоколы, организующие передачу голоса по сети с помощью пакетной коммутацией по протоколу IP. Сюда входят такие протоколы как: RTSP, RTCP, RTP, H.323, SIP. За аналог собственного сетевого протокола были взяты протоколы RTP и RTCP работающие в паре. Их организацию описал Н. Дилип, в своей книге «Стандарты и протоколы интернета» [2]. В процессе разработки были изучены некоторые WIN API функции, которые описаны в статье А. Галилова и А.В. Уколова [3, 4]. В статье А.В. Уколова, так же описан алгоритм односторонней передачи звука, в режиме реального времени, на основе транспортного протокола UDP [4]. Так же был изучен принцип работы сокетов, которые описаны в лабораторном практикуме С.Л. Сурменко и других источниках [5, 6]. Проблемами разработки и применения собственных протоколов занимались Р.И.Баженов, А.П.Корнилков и др. [7,8].

Разработанный собственный протокол использует два транспортных протокола. Для передачи звука будет использоваться протокол UDP, так как гарантии доставки пакетов нам не обязательна, а скорость и отсутствие задержки дают несомненные плюсы. Протокол TCP используется исключительно как контроль соединения и единственная информация, которая будет по нему передаваться: статус сервера и текстовые сообщения резервного чата, на случай непредвиденных обстоятельств. Для приема звука организуется циклический буфер, то есть используется несколько ячеек, которые воспроизводят полученные данные по очереди, через равные промежутки времени, с одинаковой задержкой между записью и воспроизведением (рис.2).

Рисунок 2 – Циклический буфер

Для создания приложения использовалось несколько сокетов группы компонентов Indy в программной среде Delphi. В одном приложении используются TIdUDPClient и TIdUDPServer компоненты, настроенные на разные порты. Один из них выступает для приема звука, а другой для отправки. Откуда следует, что серверная и клиентская часть приложения практически дублируют друг друга. Для контроля соединения установлена пара TSocket-ов (рис.3).

Рисунок 3- Интерфейс приложения

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

В итоге был разработан собственный сетевой протокол по аналогии RTP и RTCP, где один отвечает за передачу информации в режиме реального времени, а второй отвечает за контроль соединения и проверку доставки пакетов. В качестве основных инструментов были использованы сокеты, каждому из которых была отведена своя роль.


Библиографический список
  1. VoIP или IP-телефония. IP-коммуникации или технологии в бизнесе. Основы электронного бизнеса. URL: http://www.lessons-tva.info/edu/trainbus/1_1.html.
  2. Дилип Н. Стандарты и протоколы интернета. М.: Изд. Отдел «Русская редакция» ТОО «Channel Trading Ltd.», 1999. 384 с.
  3. Галилов А. Waveform Audio Win32 API. Delphi Word 6. Professional Edition. URL: http://delphiworld.narod.ru/base/waveform_audio_win32_api.html.
  4. Сурменко С.Л. Лабораторный практикум по информационным сетям: учебное пособие. Биробиджан: ДВГСГА, 2005.  62 с.
  5. Карих Н. Сокеты в Delphi . Delphi Word 6. Professional Edition.URL: http://delphiworld.narod.ru/base/sockets_in_delphi.html.
  6. Баженов Р.И., Корнилков А.П., Лопатин Д.К. Проектирование web-ориентированной информационной системы университета на основе клиент-серверных технологий // Актуальные проблемы гуманитарных и естественных наук. 2014. № 4-1. С. 68-71.
  7. Белов И.В., Винокуров А.С., Баженов Р.И. Разработка программы удаленного управления компьютером на основе протокола telnet // Science Time. 2014. № 10 (10). С. 39-43.


Все статьи автора «Николаев Сергей Валерьевич»


© Если вы обнаружили нарушение авторских или смежных прав, пожалуйста, незамедлительно сообщите нам об этом по электронной почте или через форму обратной связи.

Связь с автором (комментарии/рецензии к статье)

Оставить комментарий

Вы должны авторизоваться, чтобы оставить комментарий.

Если Вы еще не зарегистрированы на сайте, то Вам необходимо зарегистрироваться: