IAX
Ця стаття не містить посилань на джерела. Ви можете допомогти поліпшити цю статтю, додавши посилання на надійні (авторитетні) джерела. Матеріал без джерел може бути піддано сумніву та вилучено. (лютий 2021) |
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 цієї проблеми більше немає.
Див. також
- Session Initiation Protocol
![]() | Ця стаття є заготовкою. Ви можете допомогти проєкту, доробивши її. Це повідомлення варто замінити точнішим. |