В предыдущем курсе вы изучили, как живой человеческий голос превращается в цифровые отсчёты кодеков G.711, AMR или Opus и летит через IP-сеть в пакетах RTP каждые 20 миллисекунд. Но прежде чем первый голосовой пакет RTP покинет телефон, два устройства на разных концах планеты должны найти друг друга, узнать актуальные IP-адреса, проверить, свободен ли вызываемый абонент, договориться об общем аудиокодеке и в конце разговора аккуратно освободить ресурсы. Эту работу выполняет протокол установления сеансов — SIP (Session Initiation Protocol). В этом уроке мы разберём, что такое SIP, почему он победил громоздкие телеком-стандарты прошлого, как разделяются сигнализация и медиапоток и где SIP работает сегодня.
Цель и что нужно знать
После урока вы сможете:
- формулировать назначение протокола
SIPи называть пять его базовых задач по стандартуRFC 3261; - объяснять фундаментальное разделение плоскости сигнализации (
SIP+SDP) и плоскости медиаданных (RTP/RTCP); - прослеживать классическую «трапецию SIP» (почему сигнализация идёт через серверы домена, а голос
RTP— напрямую между телефонами); - сравнивать архитектуру
SIP(IETF RFC 2543/RFC 3261) со старым стекомITU-T H.323и перечислять сферы примененияSIP.
Что нужно знать заранее: уроки От микрофона до IP-пакетов и обратно (цепочка передачи речи в VoIP), Заголовок RTP и поля пакета (передача медиапотока по UDP), а также уроки курса ipnet про модель TCP/IP, порты UDP/TCP, систему доменных имён DNS и безопасность TLS.
Задача из жизни
Компания перевела офис на IP-телефонию: на столах сотрудников стоят IP-телефоны в локальной сети 192.168.10.0/24, а сигнальный сервер корпоративной АТС размещён в защищённом облачном дата-центре по адресу 198.51.100.10. Администратор безопасности открыл на межсетевом экране доступ от всех телефонов только к IP-адресу облачного сервера 198.51.100.10 на стандартный порт UDP 5060. При тестовом звонке между двумя соседними столами оба телефона бодро звонят, на экранах высвечивается имя коллеги, секундомер разговора идёт — но в трубках стоит абсолютная тишина. Чтобы понять, почему вызов успешно устанавливается, а звука нет, инженеру нужно чётко знать границы ответственности протокола SIP: что именно делает сигнализация, а как и куда после этого идут голосовые пакеты RTP.
Что такое SIP и пять его главных задач
SIP (Session Initiation Protocol — протокол установления сеанса) — это прикладной протокол сигнализации (плоскости управления, control plane), предназначенный для создания, изменения и завершения мультимедийных сеансов связи между двумя или несколькими участниками в IP-сетях. Сеансом может быть обычный телефонный разговор, видеозвонок, аудиоконференция или передача мгновенных сообщений.
По бытовой аналогии SIP работает как секретарь-организатор переговоров: он разыскивает нужного собеседника, созванивается с ним, согласовывает язык общения и номер переговорной комнаты, а когда участники начали общаться напрямую — отходит в сторону до конца встречи, чтобы в финале зафиксировать завершение разговора.
Согласно базовому стандарту IETF RFC 3261 (раздел 2), протокол SIP решает ровно пять задач установления и управления сеансом:
- Определение местоположения пользователя (
User Location): выяснение текущего IP-адреса и порта конечного устройства, за которым сейчас находится вызываемый абонент (ведь сотрудник мог включить ноутбук дома, в офисе или в командировке). - Определение доступности пользователя (
User Availability): проверка готовности вызываемого абонента принять участие в разговоре (свободен ли он, занят другой линией или не берёт трубку). - Определение возможностей пользователя (
User Capabilities): согласование типа медиа (только звук или звук с видео) и выбор общего кодека (G.711,G.722,AMR,Opus) и номеров портовUDP. - Установление сеанса (
Session Setup): подача вызывного сигнала («звонка») на аппарат вызываемого абонента и закрепление параметров соединения на обеих сторонах. - Управление сеансом (
Session Management): изменение параметров прямо по ходу разговора (постановка на удержание, включение видео, перевод звонка на другого сотрудника) и штатное завершение вызова (отбой).
Разделение сигнализации и медиа: почему SIP не является «всем VoIP»
Главный архитектурный принцип SIP, заложенный инженерами IETF, — модульность и строгое разделение плоскости управления (control plane) и плоскости пользователя (user / media plane). Протокол SIP никогда не переносит внутри себя оцифрованный голос или видеокадры. Вместо этого он работает в связке с другими специализированными протоколами:
SIP (RFC 3261)— сигнальный конверт и правила ведения переговоров: кто звонит, кому звонит, через какие серверы идёт запрос и принят ли вызов. По умолчанию использует порт5060(дляUDPиTCP) и порт5061(для защищённого соединенияTLS).SDP (Session Description Protocol, RFC 8866)— текстовая «анкета медиапараметров», которая вкладывается внутрь сообщенийSIPкак тело письма. В анкетеSDPустройство пишет свой IP-адрес для голоса, номер портаUDPи список поддерживаемых кодеков (подробно разбирается в разделе 7 курса).RTP / RTCP (RFC 3550)иSRTP (RFC 3711)— транспортные протоколы реального времени, которые после завершения переговоровSIPнесут сами голосовые пакеты напрямую между устройствами по чётным динамическим портамUDP(обычно из диапазона10000–20000или16384–32767).DNS (RFC 3263)— система доменных имён, помогающая телефону или серверу найти сигнальный сервер чужого домена и выбрать протокол транспорта.
Трапеция SIP (SIP Trapezoid)
Благодаря разделению сигнализации и медиа пути их пакетов в сети почти всегда различаются. Эта классическая схема маршрутизации называется трапецией SIP (SIP Trapezoid).
Когда абонент alice@atlanta.com звонит абоненту bob@biloxi.com, телефон Алисы не знает текущего IP-адреса телефона Боба. Поэтому сигнальные сообщения SIP поднимаются по боковой стороне трапеции к серверу домена atlanta.com, пересылаются на сервер biloxi.com и спускаются на телефон Боба (шаги 1 → 2 → 3). Но как только оба телефона обменялись анкетами SDP и узнали реальные IP-адреса друг друга, голосовой поток RTP (шаг 4, нижнее основание трапеции) летит напрямую между телефоном А и телефоном Б, минуя сигнальные серверы! Это разгружает серверы сигнализации от гигабитов аудиопотоков и минимизирует задержку голоса.
Разбор примера: расчёт нагрузки на сигнальный сервер и медиатракт
Посмотрим в числах, почему разделение SIP и RTP позволяет одному компактному сигнальному серверу обслуживать десятки тысяч одновременных разговоров:
=== Сравнение трафика сигнализации SIP и медиапотока RTP (1 вызов, 120 с) ===
1. Плоскость сигнализации (SIP, порт 5060):
Число сообщений за весь вызов: ~6–8 пакетов (установление и отбой)
Средний размер сообщения SIP: ~600 байт
Суммарный объём SIP за 2 минуты: 7 * 600 = 4 200 байт (~4,2 КБ)
Полоса SIP во время разговора: 0 бит/с (в разговорной фазе SIP молчит!)
2. Плоскость медиаданных (RTP, кодек G.711, ptime = 20 ms):
Темп пакетов в одну сторону: 50 пакетов/с (100 пакетов/с дуплекс)
Размер кадра Ethernet с голосом: 218 байт (160 Б звук + 58 Б заголовки)
Число пакетов RTP за 120 секунд: 100 пак/с * 120 с = 12 000 пакетов
Суммарный объём RTP за 2 минуты: 12 000 * 218 = 2 616 000 байт (~2,62 МБ)
Отношение объёма RTP к SIP: 2 616 000 / 4 200 = 622,8x (в 623 раза больше!)Во время активного двухминутного разговора сигнальный сервер обрабатывает всего около 4,2 КБ данных в момент старта и завершения звонка, тогда как напрямую между телефонами пролетает 2,62 МБ голосовых пакетов RTP.
История создания: от H.323 и RFC 2543 к RFC 3261
В середине 1990-х годов первым стандартом IP-телефонии стал пакет спецификаций ITU-T H.323 (1996 год). Он вырос из мира традиционной телефонии ISDN (Q.931): сообщения кодировались сложным бинарным форматом ASN.1 PER, для одного звонка требовалось открывать множество параллельных TCP-соединений (H.225.0, H.245), а сам стандарт насчитывал тысячи страниц и плохо интегрировался с веб-сервисами Интернета.
В том же 1996 году в рабочей группе IETF MMUSIC (Multiparty Multimedia Session Control) Хеннинг Шульцринне (Henning Schulzrinne) и Марк Хэндли (Mark Handley) предложили совершенно иной подход: сделать сигнализацию телефонии такой же простой и текстовой, как веб-протокол HTTP и электронная почта SMTP.
| Характеристика | Стек ITU-T H.323 | Протокол IETF SIP (RFC 3261) |
|---|---|---|
| Организация стандартизации | Сектор стандартизации МСЭ (ITU-T) | Инженерный совет Интернета (IETF) |
| Кодирование сообщений | Сложное бинарное (ASN.1 PER) | Человекочитаемый текст (UTF-8, строки) |
| Архитектурный прообраз | Телефонная сигнализация ISDN Q.931 | Веб-протокол HTTP/1.1 и почта SMTP |
| Стандартные порты сигнализации | TCP 1720 + динамические порты H.245 | Единый порт 5060 (UDP/TCP), 5061 (TLS) |
| Масштабируемость и расширяемость | Жёсткая связь модулей, тяжёлый парсинг | Простые текстовые заголовки, лёгкий проксинг |
Эволюция стандарта SIP прошла два ключевых рубежа:
- Март 1999 года —
RFC 2543: первая официальная спецификацияSIPверсии2.0(SIP/2.0), подготовленная Х. Шульцринне, М. Хэндли, Э. Скулером и Дж. Розенбергом. Протокол мгновенно завоевал популярность у производителей IP-телефонов и операторов. - Июнь 2002 года —
RFC 3261: фундаментально переработанный и уточнённый стандарт (авторы: Дж. Розенберг, Х. Шульцринне, Г. Камарильо, А. Джонсон, Дж. Петерсон, Р. Спаркс, М. Хэндли, Э. Скулер), который полностью заменил (obsoleted)RFC 2543. При этом, чтобы не сломать совместимость с уже выпущенным оборудованием, номер версии протокола в сообщениях оставили прежним —SIP/2.0.
Сегодня SIP применяется повсеместно:
- Корпоративная телефония (IP-АТС / UC): подключение настольных IP-телефонов, программных софтфонов и видеотерминалов к серверу компании (Asterisk, FreeSWITCH, Cisco CUCM).
- Межоператорские и клиентские стыки (
SIP Trunking): подключение офисных АТС к операторам связи и соединение телефонных операторов между собой вместо устаревших потоковE1 ISDN PRIиОКС-7 (SS7). - Мобильные сети 4G и 5G: консорциум
3GPPвыбралSIPв качестве основного протокола сигнализации мультимедийной подсистемыIMS(изучается в отдельном курсе трека), на базе которой работают звонкиVoLTEв сетях 4G,VoWiFiиVoNRв сетях 5G.
Что может сломаться и как это найти
| Симптом | Возможная причина | Что проверить |
|---|---|---|
| Телефон звонит и соединяет, но в трубках полная тишина | Межсетевой экран пропускает SIP (5060), но блокирует прямой поток RTP между телефонами | Правила firewall для диапазона UDP-портов RTP (10000–20000) и IP-адреса в блоке SDP |
| Телефон не может зарегистрироваться и не подаёт гудок | Закрыт порт сигнализации UDP/TCP 5060 (или TLS 5061) до сервера АТС | Доступность IP-адреса сервера и наличие пакетов SIP в захвате Wireshark по фильтру sip |
| Вызов срывается при выборе экзотического кодека | Устройства не нашли ни одного общего аудиокодека при согласовании SDP | Список включённых кодеков (G.711 A-law/u-law, Opus) в настройках обоих телефонов |
⚠️ Никогда не путайте маршрут сигнализации
SIPс маршрутом голосового потокаRTP. То, что телефон видит сервер АТС по порту5060, совершенно не гарантирует, что два телефона в разных подсетях или заNATсмогут обменяться пакетамиRTPнапрямую!
Практика
- Предскажите. В компании установлено 50 IP-телефонов в подсети
10.10.1.0/24и 50 IP-телефонов в филиале10.10.2.0/24. Оба филиала видят центральный SIP-сервер10.10.0.10, но маршрутизация напрямую между подсетями10.10.1.0/24и10.10.2.0/24запрещена списком доступа (ACL). Что произойдёт при звонке из первого филиала во второй (по классической трапеции SIP)? - Проверьте. Посмотрите на распределение протоколов, портов и плоскостей в стандартном телефонном вызове VoIP:
=== Стек протоколов в SIP-вызове ===
Уровень / Задача Протокол и стандарт Транспорт и порты по умолчанию
------------------------ -------------------- ------------------------------
Поиск сервера домена DNS (RFC 3263) UDP / TCP порт 53
Установление сеанса SIP (RFC 3261) UDP / TCP порт 5060, TLS 5061
Описание медиапараметров SDP (RFC 8866) Внутри тела сообщений SIP
Передача голоса и видео RTP / SRTP (RFC 3550) UDP чётные порты (10000-20000)
Контроль качества медиа RTCP (RFC 3550) UDP нечётный порт (RTP + 1)- Объясните. Почему в июне 2002 года авторы нового стандарта
RFC 3261не поменяли строку версии протокола наSIP/3.0, а оставилиSIP/2.0, как вRFC 2543? - Измените. Рассчитайте, сколько байт голосового трафика
RTP(кодекG.711, пакет Ethernet218байт каждые20мс в каждую сторону) пройдёт через сам сигнальный SIP-прокси за 5 минут разговора, если медиапоток идёт по классической трапеции SIP напрямую между телефонами. - Сделайте сами (со звёздочкой ⭐). Оператор связи обслуживает
1 000одновременных разговоров с кодекомG.711(дуплексный потокRTPкаждого звонка —174,4 кбит/сна уровне Ethernet). Посчитайте, какую полосу пропускания сэкономит центральный сигнальный узел оператора за счёт того, что он обрабатывает только сигнализациюSIP, а потокиRTPидут в обход него напрямую между граничными медиашлюзами.
Самопроверка
Вопрос 1. Какие пять базовых задач решает протокол SIP согласно разделу 2 стандарта RFC 3261?
Разбор. Протокол SIP отвечает за: 1) определение местоположения пользователя (User Location — поиск актуального IP-адреса устройства); 2) определение доступности (User Availability — готов ли абонент ответить); 3) определение возможностей (User Capabilities — согласование кодеков через SDP); 4) установление сеанса (Session Setup — звонок и фиксация параметров); 5) управление сеансом (Session Management — изменение параметров, перевод и завершение вызова).
Вопрос 2. Какой протокол переносит сами оцифрованные голосовые отсчёты после того, как SIP установил вызов, и какие порты по умолчанию задействованы для SIP?
Разбор.
Сигнализация (Control Plane):
Протокол: SIP (RFC 3261) с вложенным описанием SDP (RFC 8866)
Порты по умолчанию: 5060 (UDP и TCP), 5061 (TLS)
Медиатракт (User / Media Plane):
Протокол: RTP (RFC 3550) или защищённый SRTP (RFC 3711)
Порты: динамические чётные UDP-порты, согласованные в анкете SDPОтветы к практике:
=== Ответы к практическим заданиям ===
Пункт 1: Сигнализация SIP пройдёт успешно через сервер 10.10.0.10 (оба телефона
зазвонят и установят соединение), но при ответе наступит полная тишина,
так как прямой поток RTP между 10.10.1.0/24 и 10.10.2.0/24 заблокирован ACL.
Пункт 3: Версию SIP/2.0 сохранили для обратной совместимости с миллионами уже
работавших устройств RFC 2543, добавив новые механизмы через расширения.
Пункт 4: 0 байт! В классической трапеции SIP голосовой поток RTP идёт напрямую
между конечными телефонами и вообще не заходит на сигнальный SIP-прокси.
Пункт 5: 1 000 вызовов * 174,4 кбит/с = 174 400 кбит/с = 174,4 Мбит/с непрерывного
медиатрафика не нагружают центральный сигнальный сервер SIP.Повторение и критерий перехода
Переходите к следующему уроку, если без подсказки можете:
- перечислить пять задач протокола
SIPпо стандартуRFC 3261; - чётко разделить роли
SIP,SDPиRTP/RTCPи назвать стандартные порты5060и5061; - нарисовать трапецию
SIPи объяснить, почему при успешном звонке в трубке может не быть звука.
Стандарты и источники
- IETF RFC 3261 (June 2002) — SIP: Session Initiation Protocol (§1–§2, Overview of Operation).
- IETF RFC 2543 (March 1999) — SIP: Session Initiation Protocol (историческая первая редакция
SIP/2.0). - IETF RFC 8866 (January 2021) — SDP: Session Description Protocol.
- IETF RFC 3550 (July 2003) — RTP: A Transport Protocol for Real-Time Applications.