Сегодня всё больше и больше компаний для экономии на МГ/МН вызовах переходят на IP. При переходе на IP телефонию все хотят стабильной, а главное, качественной связи, но в отличии от обычной телефонии, где каждый слог передается напрямую через заранее подготовленный устойчивый канал, VoIP пересылает речевую и сигнальную информацию в пакетах данных через интернет канал.
Для IP-телефонии критичны задержки пакетов в сети, и, чтобы качество разговора было достаточно хорошим, время между передачей и приемом одного пакета данных не должно превышать 150 миллисекунд, а потери по каналу должны быть минимальными.Причины задержек в передаче данных по сети IP в большой степени связаны с особенностями транспорта пакетов, а так же и с недостаточно высокой пропускной способностью сети, джиттером, перегрузкой IP-сети.
В зависимости от количества вызовов и используемых кодеков, канал между пользователями и сервером IP-телефонии, а также между серверами IP-телефонии и оборудованием оператора связи должен отвечать определенным требованиям.Проверить пропускную способность каналов можно с помощью простой утилиты iperf. Iperf - кроссплатформенная консольная клиент-серверная программа, предназначенная для тестирования пропускной способности интернет канала между двумя серверами.Работает она по следующему принципу: на одном хосте запускаем iperf в режиме «сервер», на втором в режиме «клиент» с указанием ip-адреса первого хоста («сервера»). Через заданное время показывается измеренная информация.
Ключи и опции программы.
Опции для сервера:
-s - запуск утилиты в режиме сервера;
-D - запуск утилиты в режиме сервера как процесс;
-U - запуск в одном многопоточном режиме UDP;
Опции клиента:
-b - используемая полоса для UDP (по умолчанию 1Mbit/sec);
-c - запустить как клиент и соединиться с сервером;
-d — тестировать линию в обе стороны;
-n — установить размер передаваемого трафика (нельзя использовать c ключом -t);
-r — не делать двунаправленное тестирование;
-t — указать время тестирования (по умолчанию 10 сек);
-F — не генерировать трафик, а передавать готовый файл;
-I — ввод данных, передаваемых из STDIN (стандартный поток ввода);
-L - порт, на котором клиент будет принимать двунаправленный трафик;
-P - запуск нескольких потоков параллельно;
-T — время жизни пакета для групповой рассылки (по умолчанию 1);
Клиент/Сервер:
-f — в каком формате показывать скорость (Kbits, Mbits, KBytes, Mbytes);
-i — с какими интервалами отображать промежуточные результаты;
-l — размер буфера (по умолчанию 8 KB);
-m — показывать максимальный размер TCP сегмента (MSS);
-o - вывод отчета в указанный файл;
-p — указать порт, по которому будет происходить соединение (по умолчанию 5001);
-u — использовать UDP вместо TCP;
-w — размер окна TCP;
-B — указание для сервера, на каком интерфейсе принимать трафик;
-C — режим совместимости со старыми версиями;
-M — позволяет изменить максимальный размер TCP сегмента (MSS);
-N — меняет некоторые опции TCP (отключение алгоритма Нагла);
-V — использовать IPV6;
Общие опции:
-x - исключить C(connection) D(data) M(multicast) S(settings) V(server) из вывода;
-y – использовать CSV формат;
-v - информация о версии утилиты;
-h — вывод справки;
Примеры использования.
Тестируем пропускную способность.
На сервере запускаем iperf с параметрами :
iperf –s

На клиенте запускаем со следующими параметрами:
iperf –c 109.120.173.20–t 60 –i 10
На протяжении минуты (–t) хосты будут обмениваться трафиком, и каждые 10 секунд (–i )будут выводиться отчеты.

Тестируем TCP соединение между двумя узлами.
На сервере запускаем iperf с параметрами:
iperf -s -p 48999
На клиенте запускаем со следующими параметрами:
iperf -c 109.120.173.20 -p 48999 -t 60 -P 4
На протяжение минуты (–t) iperf будет проверяет 4 параллельных (-P) TCP соединения между двумя узлами по порту 48999 (-p).

Генерация VoIP трафика по G711 кодеку.
У нас есть офис в Москве и Питере, и в каждом из них установлена своя IP PBX. Максимальное количество вызовов между нашими двумя городами не превышает 13 вызовов с использованием кодека G711.
На сервере запускаем iperf с параметрами:
iperf -s -u -P 13 -fk -i 10
На клиенте запускаем со следующими параметрами:
iperf -u -c 109.120.173.20 -b 1M -P 13 -fk -i 10 -t 300
Запускаем 13 двунаправленных (-P 13 ) UDP потока (-u) на IP-адрес iperf-сервер (-c) с полосой 1 Мбит ( -b), а 300 секунд (-t ) с отчетом каждые 10 секунд (-i) в Кбит (-fk).
Если вы в статье нашли ошибки или несоответствия, мы будем благодарны, если вы напишите нам о них в комментариях.