IAX

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

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

Історія

[ред. | ред. код]

IAX2 — (Inter-Asterisk eXchange protocol — друга версія) протокол розроблений компанією Digium, спеціально для Asterisk, як альтернативний протокол. Група розробників у складі: Марк Спенсер, Френк Міллер, Кенні Шумард, Ед Гай і Брайан Капоч подала заявку в IETF і 20 лютого 2009 року протокол був затверджений під RFC 5456. Передумовою було бажання забезпечити передачу голосу високої якості в «слабких» мережах. Оскільки при використанні протоколами SIP і H.323 двох портів для передачі голосу і сигналізації, іноді виникали проблеми, коли під час тривалої розмови одного абонента і мовчання іншого, Firewall, в цілях безпеки, закривав порт сигналізації, оскільки по ньому не йшли пакети. У результаті цього після того, як мовчав абонент починав говорити, сигналізація про це не проходила через порт, і респондент його не чув. Для того що б виключити дану проблему, IAX2 розроблений так, що б використовувати один порт для передачі голосу і сигналізації. У зв'язку з тим, що IAX2 передає сигнальну інформацію в бітових полях, а не текстом, поєднання безлічі голосових потоків і передача їх усередині єдиного транка, дозволяє істотно знижувати мережевий трафік.

Технічні особливості

[ред. | ред. код]
  • Повністю бінарний протокол (на відміну від SIP) — економія трафіку
  • Використовується один єдиний UDP-порт 4569, що спрощує конфігурацію Firewall і покращує роботу через NAT
  • Підтримується транкінг, при цьому в кожному пакеті передаються дані відразу декількох паралельних каналів — економія трафіку
  • Економніше ніж SIP у вимогах до смуги пропускання
  • Простіша конфігурація NAT і Firewall
  • Менше неочевидних проблем (при наявності Firewall неможлива ситуація, коли з'єднання встановлюється, а голосові дані пройти не можуть, на відміну від SIP)
  • IAX2 ефективніше RTP (SIP) для будь-якої кількості одночасних з'єднань, і при використанні будь-якого кодека. Економія починаючи від 2.4k для єдиного виклику, до приблизно потроєння кількості одночасних з'єднань через мегабітовий потік для G.729 при використанні trunk mode.

Недоліки

[ред. | ред. код]
  • Труднощі розширення протоколу: кожна нова можливість повинна бути додана в специфікації протоколу, що робить його менш гнучким, ніж H.323, SIP або MGCP.
  • Уразливість: старі реалізації IAX2 уразливі до DoS-атак, і ця проблема досі не виправлена. Найкращим рішенням є обмеження доступу до UDP-порту тільки з певних IP-адрес, яким можна довіряти. У нових версіях Asterisk цієї проблеми більше немає.

Див. також

[ред. | ред. код]