LFN (Long Fat Network) - сеть обладающая большой пропускной
способностью и большим временем задержки. Например, спутниковые или
WiMAX каналы.
Чтобы получить адекватные значения пропускной способности каналов такого типа с использованием TCP, нужно иметь ввиду, что настройки TCP по умолчанию скорее всего не позволят это сделать. В windos os TCP Window Size определяется согласно данного алгоритма. Полученное значение не обеспечивает полную загрузку канала на широких линках с большой задержкой.
При тестировании LFN сетей с помощью TCP для достижения максимальной пропускной способности канала необходимо на конечных узлах тестирования менять TCP Window size в соответствии с пропускной способностью и задержкой тестируемого канала.
Расчет размера окна производится по формуле:
Чтобы получить адекватные значения пропускной способности каналов такого типа с использованием 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
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://iperf.comcor.ru/