пятница, 17 августа 2012 г.

Измерение ширины LFN канала

LFN (Long Fat Network) - сеть обладающая большой пропускной способностью и большим временем задержки. Например, спутниковые или WiMAX каналы.

Чтобы получить адекватные значения пропускной способности каналов такого типа с использованием TCP, нужно иметь ввиду, что настройки TCP по умолчанию скорее всего не позволят это сделать. В windos os TCP Window Size определяется согласно данного алгоритма. Полученное значение не обеспечивает полную загрузку канала на широких линках с большой задержкой.

При тестировании LFN сетей с помощью TCP для достижения  максимальной пропускной способности канала необходимо на конечных узлах тестирования менять TCP Window size в соответствии с пропускной способностью и задержкой  тестируемого канала.
 Расчет размера окна производится по формуле:

TCP window size (kBytes)  ≥ Bandwidth (KBytes/sec) *  packet RTT (sec)

Также для удобства расчетов TCP window size можно воспользоваться этим инструментом.

Оптимальным методом тестирования максимальной пропускной способности канала является передача UDP потока со скоростью заведомо превышающей скорость канала.

Алгоритм тестирования LFN:

iperf -c 10.0.0.1 -i 10 -u -b50M -d -f k -t 600

Расчет пропускной способности канала:
http://en.wikipedia.org/wiki/Bandwidth_test

 

16 кб размер окна   100 мс задержка RTR 

16 kbyte*8=128 kbit

128000 bit/0,05c=2 560 000bit/s= 2,56 Mb/c                       100mc/2=50 mc (one way delay)



Почему нельзя полагаться на измерения полосы пропускания, полученные от стандартных программных средств? 
На скорость работы приложений может влиять очень много факторов. Один из основных - для передачи данных многие приложения используют протокол TCP, в котором есть ряд параметров, которые могут существенно влиять на скорость его работы, например размер "окна". Данный параметр определяет, сколько данных может передать отправитель без получения подтверждения об их приеме от получателя. В идеальном случае, "окно" должно расти до тех пор, пока не достигнет максимально возможного для данного канала размера. Но в каждой операционной системе этот алгоритм реализован по-разному. В Windows'XX, например, стек TCP/IP оптимизирован под применение в локальных сетях, со скоростями ~10Mbit/s и задержками ~1-70ms. Если RTT превышает указанный промежуток, размер "окна" не увеличивается, а значит остается значение по умолчанию (например MS - 8KB, Solaris - 24KB и т.д.). Даже если "окно" увеличивается, то в Windows 2000 max TcpWindowsSize равно 17520 байт, что при задержке Москва - Владивосток в ~130ms дает максимально возможную скорость передачи для одной TCP сессии между Window's машинами ~135КБ/c(~1Мбит/c). С помощью настроек в реестре Windows можно несколько улучшить ситуацию, но, к сожалению, незначительно. В UNIX-системах ситуация немного лучше.

Public iperf server:
iperf.eltel.net


Источник: http://ciao-cacao.blogspot.com/search/label/Performance

http://iperf.comcor.ru/