Приветствую, Codeby!
Я давно хотел написать цикл статей подробно раскрывающих тему VoIP, SIP, SS7 на практике. И вот, наконец, разобравшись со всеми текущими делами, решил начать год с написания такого цикла.
Структура цикла:
[0] VoIP. Введение. SIP, H.323, T.38
[1] VoIP. Транспорт и кодирование голоса
[2] VoIP. Мониторинг эффективности сети
[3] Voip. Система сигнализации SS7 (ОКС-7)
Итак, что это будет?
Я постараюсь максимально доступно описать работу международной компании предоставляющей услуги VoIP, ее структуру и взаимодействие с биллинг системой, концентраторами и коммутаторами VoIP потоков, SS7 и NGN шлюзами и т.д.
Так же, будут затронуты аспекты взаимодействия по протоколам SS7 и VoIP, с мировыми лидерами рынка сотовой связи.
Я постараюсь, рассмотреть возможные уязвимости в структуре компании, и рассказать о способах их эксплуатации или защиты от таковых.
В общем, если отбросить эти заумные термины, мы с вами заглянем на рабочий стол VoIP NOC Engineer , разберемся в протоколах связи, снимем несколько дампов реального трафика проходящего по сети, декодируем и послушаем звонки, попробуем перехватить и проанализировать входящий и исходящий трафик.
В целом, будет довольно увлекательно, большего я рассказать не могу, так как, еще не знаю, чем цикл будет дополняться, и, конечно же, ваши отзывы и комментарии будут влиять на структуру публикаций.
А теперь немного, необходимой скучной теории, по порядку:
IP-телефония — телефонная связь по протоколу IP. Она включает в себя набор коммуникационных протоколов, технологий и методов, обеспечивающих традиционные для телефонии набор номера, дозвон и двустороннее голосовое общение, а также видео звонки по Интернет или другим IP-сетям. Сигнал по каналу связи передаётся в цифровом виде и, перед передачей преобразовывается (сжимается, про сжатие поговорим позже) для того, чтобы удалить избыточность информации и снизить нагрузку на сеть передачи данных.
Протоколы:
SIP - это протокол прикладного уровня модели OSI, описывающий способы и правила установления интернет - сессий для обмена мультимедийной информацией, такой как: звук, голос, видеоряд, графика и др. Для соединения обычно используется порт 5060 или 5061. В качестве транспортных протоколов SIP поддерживает: UDP, TCP, SCTP, TLS . Протокол SIP широко применяется в IP-телефонии, видео и аудио-конференциях, онлайн играх и др.
Протокол SIP имеет клиент-серверную модель.
Основные функциональные элементы:
Масштабируемости – При расширении сети, можно добавлять новых пользователей.
Простоты реализации соединения – Так как SIP использует текстовый формат сообщений от HTTP, то сведена к минимуму вероятность сбоя соединения при ошибках в анализе возможностей поддерживаемых терминалами.
Мобильности - Благодаря гибкой архитектуре протокола SIP, пропадает необходимость заново регистрировать пользователей, в случае смены ими своего местоположения (Имеется виду сетевой адрес).
Ко всему прочему, протокол SIP может быть использован совместно с другими протоколами IP-телефонии, протоколами ТфОП, и для связи с интеллектуальными сетями, а при появлении новых типов услуг существует возможность дополнять протокол SIP новыми функциями.
Обмен сообщениями в SIP идёт по обыкновенной схеме «запрос-ответ» Существует 6 типов запросов и 6 типов ответов.
Типы запросов:
И пример не успешного вызова, у терминирующей стороны (шлюза), нет емкости для принятия звонка:
Полагаю, этого пока достаточно, по мере необходимости, буду дополнять. А подробности всегда можно найти в сети.
H.323
Еще один протокол, который используется многими VoIP компаниями – это H.323, если сказать точнее, это стек, набор стандартов для передачи мультимедиа-данных по сетям с пакетной передачей.
При том, что он сам включает множество стандартов, H.323 входит в еще более крупную серию коммуникационных стандартов на видеоконференции для сетей разных типов. Известная как H.32x, эта серия включает стандарт H.320 для видеоконференций по сетям ISDN, и аналогичные стандарты H.321 для B-ISDN и ATM, и H.324 для телефонных сетей общего пользования. Таким образом, достигается взаимодействие сетей мультимедиа различных типов.
Рекомендация H.323 разделяет передачу данных на четыре составляющих, каждая из которых описана в соответствующих дополнительных рекомендациях:
Сигнализация — формирует соединение и управляет его статусом, описывает тип передаваемых данных.
Управление потоковым мультимедиа (видео и голос) — передача данных посредством транспортных протоколов реального времени (RTP).
Приложения передачи данных (факсимильные сессии и т. п.) — передача в рамках соответствующих стандартов, таких как T.120 и T.38.
Коммуникационные интерфейсы — взаимодействие устройств на физическом, канальном, сетевом уровнях.
Сигнализация H.323 основывается на рекомендации Q.931, применяемой в ISDN. Наиболее распространённые виды сигнализации - H.225.0 и H.245.
По той причине, что запросов и ответов в Q.931 намного больше, я не буду их расписывать, принцип должен быть уже понятен.
Если сравнивать эти два протокола, то можно начать с того, что H.323 несколько сложнее SIP, в плане технической реализации и взаимодействия с другими протоколами.
Общий объем спецификаций H.323 приближается к 1000 страниц. Объем спецификаций протокола SIP не превышает 200 страниц. В сообщениях протокола Н.323 применяется до 100 информационных полей, а в протоколе SIP их всего несколько десятков. Как было сказано выше, подобно НТТР, в протоколе SIP используется текстовый формат сообщений. Это облегчает синтаксический анализ и генерацию кода, позволяет реализовать протокол на базе любого языка программирования, упрощает его управление в процессе эксплуатации, а также анализ сообщений, дает возможность вручную вводить некоторые поля.
В протоколе Н.323 сообщения представлены в двоичном коде ASN.1, поэтому их обработка производится намного быстрее, однако человек с «невооруженным глазом» их прочесть не сможет. Для их кодирования и декодирования требуется компилятор ASN.1.
Ниже пример звонка H.323 => H.323. Этот звонок обработан, и мы можем видеть сигнализацию, чтобы оперативно реагировать на возникающие проблемы.
Полагаю, разница между SIP и H.323 видна.
Facility - это сообщения настройки, шлюзы обмениваются ими за пару секунд до того как вызывающий абонент услышит КПВ и во время звучания гудков. За это время открываются логические каналы, в общем, шлюзы приветствуют друг друга, и настраиваются передавать данные. Вот содержимое одного из таких сообщений:
В этом случае - Capability Cegotiation - это процесс определения устраивающего обе стороны кодека.
Теперь взглянем на ситуацию, когда шлюз H.323 пытается дозвониться на SIP, и успешно это делает:
Видим различия, в сигнализации, названиях запросов у протоколов SIP и H.323.
К примеру, SETUP - запрос установления соединения, для SIP трансформируется нашим шлюзом в INVITE, который мы передаем вызываемому хосту. И далее по спецификации.
Больше информации по этой теме, можно прочитать у Гольдштейна и подобных ему авторов, труды которых легко найти в сети.
А бонусом держите ссылку на одну из систем мониторинга, там, на примере разных телекомов, (все имена и события вымышлены) вы можете поклацать на всякие кнопочки – это демонстрационный режим, и посмотреть на взаимодействие протоколов изнутри:
Поскольку в моей деятельности он используется нечасто, поэтому и внимания ему будет уделено меньше.
T.38 — это стандарт Международного Союза Электросвязи для передачи факсимильных сообщений в реальном времени по IP-сетям. Для факсов, передаваемых по протоколу T.38, зарезервирован MIME-тип image/t38.
Иногда, приходится иметь с ним дело в связке со шлюзами H.323, приятного от этого мало, поэтому я надеюсь на скорый закат факсимильных сообщений.
Факс при VoIP-соединении отправляется следующим способом:
В основном используется протокол UDP, где потери компенсируются посылкой пакетов с избыточными данными.
Протокол Т.38 не затрагивает сигнализацию, и, таким образом, встраивается в стек других VoIP протоколов: H.323, SIP, MGCP и IAX.
Изображение ниже, точнее всего передает суть прохождения факса в сети:
Итак, целью всего написанного выше, была попытка обрисовать различие основных протоколов, с которыми работает компания. К остальным, SS7 и т.д. мы подойдем чуть позже, т.к. нужно осознать и переварить, хотя бы это.
Что в итоге?
SIP – удобный понятный, поддерживается большинством терминалов. Разрабатывался на основе HTTP и SMTP и многое от них позаимствовал. В общем, хорошо с ним все.
H.323 – Немного сложнее и старее. Преимуществом, на мой взгляд, является обилие всяких функций, с помощью которых в одну сеть можно объединить различное оборудование, многих производителей (SIP имеет такую возможность). Когда начал использоваться в IP-телефонии, принес с собой все проблемы, встречающиеся в сетях PSTN (ТфОП).
Т.38 – Факс предназначен для аналоговых сетей и довольно плохо взаимодействует с сетями VoIP. Это связано с тем, что данные передаются по факсу не так как обычная речь.
В следующей статье, рассмотрим транспортные протоколы и методы (алгоритмы) сжатия данных.
Спасибо за внимание.
Я давно хотел написать цикл статей подробно раскрывающих тему VoIP, SIP, SS7 на практике. И вот, наконец, разобравшись со всеми текущими делами, решил начать год с написания такого цикла.
Структура цикла:
[0] VoIP. Введение. SIP, H.323, T.38
[1] VoIP. Транспорт и кодирование голоса
[2] VoIP. Мониторинг эффективности сети
[3] Voip. Система сигнализации SS7 (ОКС-7)
Итак, что это будет?
Я постараюсь максимально доступно описать работу международной компании предоставляющей услуги VoIP, ее структуру и взаимодействие с биллинг системой, концентраторами и коммутаторами VoIP потоков, SS7 и NGN шлюзами и т.д.
Так же, будут затронуты аспекты взаимодействия по протоколам SS7 и VoIP, с мировыми лидерами рынка сотовой связи.
Я постараюсь, рассмотреть возможные уязвимости в структуре компании, и рассказать о способах их эксплуатации или защиты от таковых.
В общем, если отбросить эти заумные термины, мы с вами заглянем на рабочий стол VoIP NOC Engineer , разберемся в протоколах связи, снимем несколько дампов реального трафика проходящего по сети, декодируем и послушаем звонки, попробуем перехватить и проанализировать входящий и исходящий трафик.
В целом, будет довольно увлекательно, большего я рассказать не могу, так как, еще не знаю, чем цикл будет дополняться, и, конечно же, ваши отзывы и комментарии будут влиять на структуру публикаций.
А теперь немного, необходимой скучной теории, по порядку:
IP-телефония — телефонная связь по протоколу IP. Она включает в себя набор коммуникационных протоколов, технологий и методов, обеспечивающих традиционные для телефонии набор номера, дозвон и двустороннее голосовое общение, а также видео звонки по Интернет или другим IP-сетям. Сигнал по каналу связи передаётся в цифровом виде и, перед передачей преобразовывается (сжимается, про сжатие поговорим позже) для того, чтобы удалить избыточность информации и снизить нагрузку на сеть передачи данных.
Протоколы:
SIP - это протокол прикладного уровня модели OSI, описывающий способы и правила установления интернет - сессий для обмена мультимедийной информацией, такой как: звук, голос, видеоряд, графика и др. Для соединения обычно используется порт 5060 или 5061. В качестве транспортных протоколов SIP поддерживает: UDP, TCP, SCTP, TLS . Протокол SIP широко применяется в IP-телефонии, видео и аудио-конференциях, онлайн играх и др.
Протокол SIP имеет клиент-серверную модель.
Основные функциональные элементы:
- Абонентский терминал - устройство, с помощью которого абонент управляет установлением и завершением звонков. Бываю аппаратные (SIP phone) и программные (Softphone)
- Прокси-сервер - устройство, которое принимает и обрабатывает запросы от терминалов, выполняя соответствующие этим запросам действия. Прокси-сервер состоит из клиентской и серверной частей, поэтому может принимать вызовы, инициировать запросы и возвращать ответы.
- Сервер переадресации - устройство, хранящее записи о текущем местоположении всех имеющихся в сети терминалах и прокси-серверах. Сервер переадресации не управляет вызовами и не генерирует собственные запросы.
- Сервер определения местоположения пользователей - представляет собой базу данных адресной информации. Он необходим для обеспечения персональной мобильности пользователей.
Масштабируемости – При расширении сети, можно добавлять новых пользователей.
Простоты реализации соединения – Так как SIP использует текстовый формат сообщений от HTTP, то сведена к минимуму вероятность сбоя соединения при ошибках в анализе возможностей поддерживаемых терминалами.
Мобильности - Благодаря гибкой архитектуре протокола SIP, пропадает необходимость заново регистрировать пользователей, в случае смены ими своего местоположения (Имеется виду сетевой адрес).
Ко всему прочему, протокол SIP может быть использован совместно с другими протоколами IP-телефонии, протоколами ТфОП, и для связи с интеллектуальными сетями, а при появлении новых типов услуг существует возможность дополнять протокол SIP новыми функциями.
Обмен сообщениями в SIP идёт по обыкновенной схеме «запрос-ответ» Существует 6 типов запросов и 6 типов ответов.
Типы запросов:
- INVITE — Инициирует вызов от одного терминала к другому. Содержит описание поддерживаемых сервисов (которые могут быть использованы инициатором сеанса), а также виды сервисов, которые желает передавать инициатор;
- ACK —Подтверждение установления соединения адресатом. Содержит окончательные параметры сеанса связи, выбранные для установления сеанса связи;
- CANCEL — Отмена ранее переданных неактуальных запросов;
- BYE — Запрос на завершение соединения;
- REGISTER — Идентификация местоположения пользователя;
- OPTIONS — Запрос на информацию о функциональных возможностях терминала, обычно посылается до фактического начала обмена сообщениями INVITE, ACK.
- 1хх — Информационные ответы; Информационные ответы сообщают о ходе выполнения запроса и не являются его завершением. Остальные же классы ответов завершают выполнение запроса.
- 2хх — Успешное окончание запроса;
- 3хх — Информация об изменения местоположения вызываемого абонента;
- 4хх — Информация об ошибке;
- 5хх — Информация об ошибке на сервере;
- 6хх — Информация о невозможности вызова абонента (пользователь с таким адресом не зарегистрирован, или пользователь занят).
И пример не успешного вызова, у терминирующей стороны (шлюза), нет емкости для принятия звонка:
Полагаю, этого пока достаточно, по мере необходимости, буду дополнять. А подробности всегда можно найти в сети.
H.323
Еще один протокол, который используется многими VoIP компаниями – это H.323, если сказать точнее, это стек, набор стандартов для передачи мультимедиа-данных по сетям с пакетной передачей.
При том, что он сам включает множество стандартов, H.323 входит в еще более крупную серию коммуникационных стандартов на видеоконференции для сетей разных типов. Известная как H.32x, эта серия включает стандарт H.320 для видеоконференций по сетям ISDN, и аналогичные стандарты H.321 для B-ISDN и ATM, и H.324 для телефонных сетей общего пользования. Таким образом, достигается взаимодействие сетей мультимедиа различных типов.
Рекомендация H.323 разделяет передачу данных на четыре составляющих, каждая из которых описана в соответствующих дополнительных рекомендациях:
Сигнализация — формирует соединение и управляет его статусом, описывает тип передаваемых данных.
Управление потоковым мультимедиа (видео и голос) — передача данных посредством транспортных протоколов реального времени (RTP).
Приложения передачи данных (факсимильные сессии и т. п.) — передача в рамках соответствующих стандартов, таких как T.120 и T.38.
Коммуникационные интерфейсы — взаимодействие устройств на физическом, канальном, сетевом уровнях.
Сигнализация H.323 основывается на рекомендации Q.931, применяемой в ISDN. Наиболее распространённые виды сигнализации - H.225.0 и H.245.
По той причине, что запросов и ответов в Q.931 намного больше, я не буду их расписывать, принцип должен быть уже понятен.
Если сравнивать эти два протокола, то можно начать с того, что H.323 несколько сложнее SIP, в плане технической реализации и взаимодействия с другими протоколами.
Общий объем спецификаций H.323 приближается к 1000 страниц. Объем спецификаций протокола SIP не превышает 200 страниц. В сообщениях протокола Н.323 применяется до 100 информационных полей, а в протоколе SIP их всего несколько десятков. Как было сказано выше, подобно НТТР, в протоколе SIP используется текстовый формат сообщений. Это облегчает синтаксический анализ и генерацию кода, позволяет реализовать протокол на базе любого языка программирования, упрощает его управление в процессе эксплуатации, а также анализ сообщений, дает возможность вручную вводить некоторые поля.
В протоколе Н.323 сообщения представлены в двоичном коде ASN.1, поэтому их обработка производится намного быстрее, однако человек с «невооруженным глазом» их прочесть не сможет. Для их кодирования и декодирования требуется компилятор ASN.1.
Ниже пример звонка H.323 => H.323. Этот звонок обработан, и мы можем видеть сигнализацию, чтобы оперативно реагировать на возникающие проблемы.
Полагаю, разница между SIP и H.323 видна.
Facility - это сообщения настройки, шлюзы обмениваются ими за пару секунд до того как вызывающий абонент услышит КПВ и во время звучания гудков. За это время открываются логические каналы, в общем, шлюзы приветствуют друг друга, и настраиваются передавать данные. Вот содержимое одного из таких сообщений:
В этом случае - Capability Cegotiation - это процесс определения устраивающего обе стороны кодека.
Теперь взглянем на ситуацию, когда шлюз H.323 пытается дозвониться на SIP, и успешно это делает:
Видим различия, в сигнализации, названиях запросов у протоколов SIP и H.323.
К примеру, SETUP - запрос установления соединения, для SIP трансформируется нашим шлюзом в INVITE, который мы передаем вызываемому хосту. И далее по спецификации.
Больше информации по этой теме, можно прочитать у Гольдштейна и подобных ему авторов, труды которых легко найти в сети.
А бонусом держите ссылку на одну из систем мониторинга, там, на примере разных телекомов, (все имена и события вымышлены) вы можете поклацать на всякие кнопочки – это демонстрационный режим, и посмотреть на взаимодействие протоколов изнутри:
-
Ссылка скрыта от гостей
Поскольку в моей деятельности он используется нечасто, поэтому и внимания ему будет уделено меньше.
T.38 — это стандарт Международного Союза Электросвязи для передачи факсимильных сообщений в реальном времени по IP-сетям. Для факсов, передаваемых по протоколу T.38, зарезервирован MIME-тип image/t38.
Иногда, приходится иметь с ним дело в связке со шлюзами H.323, приятного от этого мало, поэтому я надеюсь на скорый закат факсимильных сообщений.
Факс при VoIP-соединении отправляется следующим способом:
- Во время голосового разговора факсовый аппарат (факс-модем или иное факсовое устройство) инициирует передачу факса путём посыла специальных тонов, которые обнаруживаются и с помощью сигнализации H.245 (в случае протокола H.323) или стандартной сигнализации SIP голосовой логический канал передачи (по протоколам G.729, G.723 и т. п.) закрывается, и открывается логический канал передачи по протоколу T.38.
В основном используется протокол UDP, где потери компенсируются посылкой пакетов с избыточными данными.
Протокол Т.38 не затрагивает сигнализацию, и, таким образом, встраивается в стек других VoIP протоколов: H.323, SIP, MGCP и IAX.
Изображение ниже, точнее всего передает суть прохождения факса в сети:
Итак, целью всего написанного выше, была попытка обрисовать различие основных протоколов, с которыми работает компания. К остальным, SS7 и т.д. мы подойдем чуть позже, т.к. нужно осознать и переварить, хотя бы это.
Что в итоге?
SIP – удобный понятный, поддерживается большинством терминалов. Разрабатывался на основе HTTP и SMTP и многое от них позаимствовал. В общем, хорошо с ним все.
H.323 – Немного сложнее и старее. Преимуществом, на мой взгляд, является обилие всяких функций, с помощью которых в одну сеть можно объединить различное оборудование, многих производителей (SIP имеет такую возможность). Когда начал использоваться в IP-телефонии, принес с собой все проблемы, встречающиеся в сетях PSTN (ТфОП).
Т.38 – Факс предназначен для аналоговых сетей и довольно плохо взаимодействует с сетями VoIP. Это связано с тем, что данные передаются по факсу не так как обычная речь.
В следующей статье, рассмотрим транспортные протоколы и методы (алгоритмы) сжатия данных.
Спасибо за внимание.
Последнее редактирование: