IAX2 (Inter-Asterisk eXchange Protocol)

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 16:59, 8 июня 2016.
IAX2
Уровень (по модели OSI): Прикладной
Семейство: UDP/IP
Порт/ID: 4569/UDP
Назначение протокола: обмен VoIP данными
Спецификация: RFC 5456
Основные реализации (серверы): Asterisk
Вступил в силу с: 2009

IAX2 (англ. Inter-Asterisk eXchange protocol) — протокол обмена VoIP данными между IP-PBX Asterisk. Наиболее приспособлен к трансляции сетевых адресов NAT, в отличие от SIP и H.323 использует только один порт 4569 протокола UDP для сигнализации и медиапотока, тогда как последние используют для этих целей разные порты. Данный протокол позволяет существенно экономить сетевой трафик по сравнению с протоколом SIP, что объясняется передачей сигнальной информации в битовых полях, а не текстом. Так же протокол позволяет совмещать множество голосовых потоков и передавать их внутри единого транка, уменьшая накладные расходы, связанные с передачей заголовков IP-пакетов.

Особенности

  • полностью бинарный протокол (в отличие от SIP) — экономия трафика
  • используется один единственный UDP-порт 4569, что упрощает конфигурацию Firewall и улучшает работу через NAT
  • поддерживается транкинг, при этом в каждом пакете передаются данные сразу нескольких параллельных каналов — экономия трафика
  • экономнее чем SIP в требованиях к полосе пропускания
  • проще конфигурация NAT и Firewall
  • меньше неочевидных проблем (при наличии Firewall невозможна ситуация, когда соединение устанавливается, а голосовые данные пройти не могут, в отличие от SIP)
  • IAX2 эффективнее RTP (SIP) для любого количества одновременных соединений, и при использовании любого кодека. Экономия начиная от 2.4k для единственного вызова, до приблизительно утроения количества одновременных соединений через мегабитовый поток для G.729 при использовании trunk mode.

Недостатки

  • IAX2 уязвим к DoS атакам (данная проблема решается с помошью фаерволов, паролей и основых мер безопасности)
  • Трудность расширения протокола: каждая новая возможность должна быть добавлена в спецификации протокола

Сравнение IAX2 и SIP

Полоса пропускания (bandwidth)

IAX использует меньшую полосу пропускания, т.к. осуществляется передача бинарных данных, в отличии от пересылки текстовых данных, используемых в SIP. Кроме того, IAX сжимает и заголовки сообщений. Преимущество IAX выражается от 2,4к для одного звонка до трёхкратного превышения количества одновременных звонков на 1 мегабит при использовании G.729, в сравнении с SIP.

NAT

В IAX служебные данные и сам разговор передаются вместе, что позволяет избежать проблем с NAT, присущих SIP. Для установки соединения и передачи данных в SIP используются различные протоколы, почему и возникают проблемы с NAT. Аудио поток должен проходить через фаерволы и роутеры. Для Устранения проблем с NAT, SIP протоколу обычно приходится пользоваться STUN сервером.

Стандартизация и использование

SIP - это протокол, который давно стандартизирован IETF, широко используется производителями программного обеспечения и оборудования. IAX же ещё только ожидается стандартизация. Этим обусловлена причина, почему он пока не нашёл широкого распространения.

Используемые порты

IAX использует только один порт (UDP 4569) для установки соединения и передачи данных всех звонков. Для осуществления этого, IAX использует так называемые транки (trunking system). Вся служебная информация, а так же аудиопотоки всех звонков передаются через один User Datagram Protocol (UDP). SIP, наоборот, использует один TCP порт (5060) для соединения и 2 RTP порта для каждого аудио соединения (всего как минимум 3 порта). Например, если у вас есть 100 одновременных звонков, для их осуществления мы должны использовать 200 RTP портов и один порт для соединения (5060). IAX использует только один порт для всего (UDP 4569).

Когда аудио поток использует сервер

В SIP установка соединения осуществляется всегда через сервер, а вот аудиопоток (RTP flow) может идти от пользователя к пользователю, минуя сервер. В IAX соединение и передача данных всегда происходят через IAX сервер. Это увеличивает требования к Internet каналам для IAX серверов во время множества одновременных звонков.

Ссылки

  1. RFC 5456
  2. Inter Asterisk Exchange Protocol
  3. IAX