kustov Posted January 11, 2008 Posted January 11, 2008 (edited) Есть вот такая задача: Необходимо произвести измерения задержки, джиттера, процент потерь пакетов для VoIP-потока. Чем можно собственно померять значения? Передача голоса осуществляется по протоколу RTP. Решение предполагается программное. Какие существуют программы измерения или диагностики для реализации данной задачи? Желательно свободное решение. В общем, близкое решение нашел - консольная утилита iperf http://dast.nlanr.net/projects/iperf/ (есть практически во всех дистрибутивах Линукса), но эта утилита не понимает rtp и выдает только джиттер и процент потерь пакетов, а саму задержку не показывает. iperf также может генерировать поток. Жду ответов, может кто использовал подобные программы или знает решение задачи. Edited February 15, 2008 by Shiva Вставить ник Quote
ram_scan Posted January 11, 2008 Posted January 11, 2008 (edited) Задержку можно c приемлимой точностью померить с помощью ping. Вообще в RTP задержка не самая критичная вещь. Даже за зарержке в 1000мс можно достаточно комфортно разговаривать. А вот джиттер более 30 мс - уже гарантированые фреймдропы и катастрофическое падение качества. Edited January 11, 2008 by ram_scan Вставить ник Quote
facility Posted January 12, 2008 Posted January 12, 2008 Как вариант, можно встать sniffer'ом в разрыв между VoIP-устройствами и ловить пакеты RTCP (SR, RR), в которых VoIP-устройства в течениче сеанса связи посылают друг другу отчеты с кол-вом потерянных пакетов и средним jitter'ом за интервал измерения. К сожалению, кол-во потерянных пакетов не включает в себя опоздавшие пакеты, отброшенные буфером. Увы, из продуктов open-source сам ничего подобного не нашел. Пришлось открыть RFC 3550 и написать самому на perl + Net::Pcap + NetPacket. Измерять RTT можно при помощи ICMP Echo-Request, т.е. с помощью утилиты ping или mtr. Это даст близкий результат. Разумеется, если в сети включена приоритезация VoIP-трафика с помощью DiffServ, то лучше посылаемые ICMP-пакеты маркировать таким же значением TOS-байта (параметр ping -Q). Например, иммитировать поток, аналогичный потоку из 1000 RTP-пакетов G.711/30мс, маркированных TOS-байтом 0xB8, можно так: ping -s 252 -i 0.03 -Q 0xb8 -c 1000 <ip-адрес> * параметры -i < 0.2 и -Q можно устанавливать только из под root; * не все устройства отвечают на такое кол-во ICMP Echo-Request аналогичным кол-во ответов; в некоторых предусмотрено игонорирование некоторого кол-ва пакетов, чтобы не перегружать CPU; Вставить ник Quote
kustov Posted January 14, 2008 Author Posted January 14, 2008 facility Спасибо за подробный ответ. А как насчет ICMP-ответов, ведь они не будут маркированы ToS байтом и соответственно тяжело сопоставить действительную задержку реального потока и задержку вот такого сгенерированного ping`ом потока? Хотя, можно основываться на том, что если у сгенерированного потока будут приемлемые результаты, то у реального они должны быть лучше (т.к. бит приоритета выставлен в обе стороны). Вставить ник Quote
puh Posted January 14, 2008 Posted January 14, 2008 ethereal / wireshark. Словить реальный voip поток, Statistics -> RTP -> Show all streams Вставить ник Quote
facility Posted January 14, 2008 Posted January 14, 2008 facilityСпасибо за подробный ответ. Да не за что. Перед самим такие же задачи стоят, поэтому рассказал, что знаю. Может совместными усилиями родится что-нибудь полезное. А как насчет ICMP-ответов, ведь они не будут маркированы ToS байтом и соответственно тяжело сопоставить действительную задержку реального потока и задержку вот такого сгенерированного ping`ом потока?Боюсь, что никак :) Измерение ping'ом - не точное. Хотя, можно основываться на том, что если у сгенерированного потока будут приемлемые результаты, то у реального они должны быть лучше (т.к. бит приоритета выставлен в обе стороны).Да, я примерно так и рассуждаю. Опять же повторюсь: ICMP - не может быть точным инструментом измерения пригодности канала для RTP. Он дает лишь приближенный к реальному результат, а иногда, когда устройства запрограммированы на игнорирования части ICMP, вообще не годится для измерений. ethereal / wireshark. Словить реальный voip поток, Statistics -> RTP -> Show all streams Тогда надо одновременно ловить с обоих "концов" канала связи, а потом сопоставлять результаты. Вставить ник Quote
ugluck Posted January 15, 2008 Posted January 15, 2008 есть такая софтина, ixchariot. софтина платная, но есть в ослах работающие версии. меряет все параметры для VoIP, даже MOS вычисляет. строит графики и т.п. рекомендую. Вставить ник Quote
facility Posted January 16, 2008 Posted January 16, 2008 есть такая софтина, ixchariot. софтина платная, но есть в ослах работающие версии. меряет все параметры для VoIP, даже MOS вычисляет. строит графики и т.п. рекомендую. Какова методика измерения? Вставить ник Quote
dima-u Posted January 16, 2008 Posted January 16, 2008 есть такая софтина, ixchariot. софтина платная, но есть в ослах работающие версии. меряет все параметры для VoIP, даже MOS вычисляет. строит графики и т.п. рекомендую.Какова методика измерения? А можно линк на софтину, если конечно нашли? Вставить ник Quote
ugluck Posted January 17, 2008 Posted January 17, 2008 методика такая: на 2-х писюках ставятся ендпоинты (официально бесплатные софтинки) и на одном сама управляющая софтинка чариот. в "интуитивно-понятном" граф. интерфейсе задаются "пары" - трафик направляестя от 1 эндпоинта к 2. пары можно копировать и разворачивать. для каждой пары настраиваецца иммитируемый кодек. после того, как все сконфигурено, запускаецца сам тест. гоняецца не реальный голос, а какая-то синтетика (ловили сниффером), но результаты удивительным образом совпадают с результатами измерений железкою RAD VoIP Performer (если кто в курсе). Вставить ник Quote
ram_scan Posted January 17, 2008 Posted January 17, 2008 Разницы что гонять, голос или синтетику с точки зрения сети нет никакой. Синтетика нужна только чтобы проверить правильность работы кодека. Вставить ник Quote
facility Posted January 18, 2008 Posted January 18, 2008 (edited) Разницы что гонять, голос или синтетику с точки зрения сети нет никакой. Синтетика нужна только чтобы проверить правильность работы кодека. С точки зрения сети действительно никакой разницы. Другое дело - анализ работы стека RTP конкретных устройств. Я вот, например, до сих пор не могу понять при каких условиях Avaya TN2302AP начинает отбрасывать пакеты. Главное - не понятно как сосчитать кол-во отброшенных. RTCP (SR и RR), согласно прочитанному в RFC 3550, не позволяет это сделать. Подобная информация присутствует в RFC 3611 (RTCP XR discard rate), но, как я понял, мало устройств умеет этот отчет формировать. Есть какие-нибудь соображения на этот счет? Edited January 18, 2008 by facility Вставить ник Quote
kustov Posted February 7, 2008 Author Posted February 7, 2008 То бишь, как я понимаю, нет свободного решения, реализующего полноценное тестирование сети: 1. генерация различного типа трафиков 2. получение характеристик сети (задержка, джиттер, потери пакетов) 3. представление в виде графиков (это конечно не очень важно, так как их можно и самому построить) Конечно предполагается, что не обязательно должно быть решение "все в одном". Достаточно нескольких разных программ для решения конкретных (пусть и маленьких) задач. Предлагаю пополнять список программ 1. iperf - для генерации udp и tcp трафика, измерение джиттера, потери пакетов, поддержка multicast 2. ping - генерация icmp сообщений, задание приоритетов, измерение задержки 3. advisor ( http://dast.nlanr.net/projects/advisor/ ) использует для тестирования iperf, traceroute, pathload и др. 4. multicast beacon - если честно еще не тестировал эту систему. Вставить ник Quote
ugluck Posted February 7, 2008 Posted February 7, 2008 ethereal/wireshark packit (linux) packeth (linux, GUI) Вставить ник Quote
kustov Posted February 7, 2008 Author Posted February 7, 2008 (edited) ethereal/wiresharkpackit (linux) packeth (linux, GUI) желательно конечно хоть маленькое описание для чего - ведь я думаю не мне одному может пригодится.ethereal/wireshark - GUI снифер packeth - генератор tcp, udp пакетов Packit - сетевая утилита, предоставляющая полный контроль над трафиком IPv4. Бывает очень полезной для тестирования firewall'ов и общего TCP/IP аудитинга. Поддерживает TCP, UDP, ICMP, IP и Ethernet, требует библиотеки libnet 1.1 или выше и libpcap. ( http://www.securitylab.ru ) А вот про генерацию типичных сетевых всмысле трафиковых профилей кто-нибудь слышал ? Edited February 8, 2008 by kustov Вставить ник Quote
ugluck Posted February 12, 2008 Posted February 12, 2008 А вот про генерацию типичных сетевых всмысле трафиковых профилей около года - двух тому назад разбирался с этой темой. померить типичный воип (много одновременных разговоров) проще всего оказалось между 2-мя астериськами, и проанализировать езереалом. сымитировать tcp-нагрузку до уровней 5-7 свободным софтом не удалось, не нашлось внятного подходящего софта. как вариант могу посоветовать одолжить у кого-нить приличный тестер типа иксии/спирента/аджелента, либо у знакомых, кто использует, либо у продавцов, прикинувшись потенциальным покупателем Вставить ник Quote
kustov Posted March 3, 2008 Author Posted March 3, 2008 (edited) А я вот нашел!!!! Мега ссылка на кучу систем мониторинга, анализаторов, генераторов и прочих сетевых утилит. Нашел и генераторы VoIP и прочие. Все разбито на несколько групп так что искать что-либо очень удобно даже не зная названия утилит. http://www.slac.stanford.edu/xorg/nmtf/nmtf-tools.html Список постоянно обновляется. Вот конкретный пример генератора http://www.grid.unina.it/software/ITG/ Умеет типичные трафиковые профили: Telnet (without any other option) DNS (without any other option) Quake3 (without any other option) CSa (Counterstrike active) CSi (Counterstrike inactive) VoIP Codec: G.711.<1 or 2> (samples per pkt) G.729.<2 or 3> (samples per pkt) G.723.1 (Default: G.711.1) -h <protocol_type> (Default: RTP) -VAD Voice_Activity_Detection> Возможностей НАМНОГО больше чем у iperf. Анализатор логов, построение графиков. Есть даже GUI (только кроме графиков незнаю зачем он нужен :-) ). В общем, кому пригодилось (пригодится) может благодарить. :-) Так что похоже, на вопрос в первом сообщении сам я и ответил. Edited March 3, 2008 by kustov Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.