|
|||||||||||
|
После нахождения участников соединения и установления самого соединения начинается потоковая передача голосовых пакетов. Для обеспечения естественного звучания разговора без эха и задержек голосовые пакеты должны передаваться по IP-сети в режиме реального времени. Все стандарты VoIP для потоковой передачи голосовых пакетов в реальном времени используют протокол RTP. Стандарт RTP не определяет и не требует использования какого-то определенного UDP-порта. Эта функция возложена на станции, которые и должны "договориться", какой порт будет использован для начала голосового звонка. Такая реализация с неопределенным портом усложняет задачу обхода брандмауэров (firewall) и часто включает в себя использование выделенных STUN-серверов для синхронизации станций. Часто встречающаяся в VoIP проблема со связью возникает при попытке передать или принять пакет через более или менее случайный порт, который заблокирован брандмауэром. Сетевой анализатор позволяет четко видеть RTP-потоки, связанные с определенной сигнальной сессией, а также используемые при VoIP-звонке IP-адрес и порты, что дает возможность быстрее и проще внедрить VoIP-систему.
RTP не использует протокол TCP для передачи голосовых пакетов. Несмотря на то, что TCP гарантирует доставку пакетов, время установления сессии и задержки совершенно неприемлемы для передачи мультимедийных данных в режиме реального времени. Поэтому выбор UDP является в данном случае вполне естественным. Поскольку восстановление недоставленных пакетов в UDP не предусмотрено, определенный процент голосовых пакетов обычно теряется. Хотя в VoIP предусмотрены средства восстановления потерянных пакетов без существенного снижения качества голосового звонка, потеря пакетов сверх определенного предела приводит к существенному ухудшению качества разговора. Рисунок сверху иллюстрирует показания о количестве потерянных пакетов, что позволяет обнаружить проблемы с доставкой потоков по сети. В каждом голосовом пакете RTP содержится дополнительная информация, включая идентификацию полезной нагрузки (payload type) для определения типа передаваемых данных, порядковые номера для обнаружения и идентификации потерянных пакетов и временные отметки для синхронизации и расчета джиттера (флуктуации времени задержки). Эта дополнительная информация бывает очень полезна для анализа RTP-потоков и определения источников возможных проблем, связанных с качеством передачи. |