Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, maxim_pv, Вы писали:
_>>Доброго всем утра!
_>>Народ, у меня вопрос, который уже задавался на форуме, но вразумительного ответа на него не последовало, а очень хочется разобраться.
_>>А вопрос такой: если взять 2 пакета, один размером 1500 байт, а другой 65535 байт, то пропускная способность сети возрастает и довольно ощутимо при использовании пакетов 65535 байт, по сравнению с пакетами по 1500 байт. Почему так? и какие могут быть задержки в железяке и драйвере?
А>Я не очень понимаю методику измерения. Вы хотите сказать, что вы измеряете пропускную способность сети, замеряя время отправки пакета t1, время прихода ответного пакете t2 и получаете пропускную способность сети как 2*S/(t2-t1), где S — размер пакета, а двойка за счет туда и обратно?
А>Тогда такой метод измерения в корне неправилен.
А>На самом деле время между посылкой пакета и приемом эха состоит из следующих времен:
А>t2-t1 = dt1 + T + dt2, где dt1 и dt2 — время прохождения пакета по сети в ту и другую сторону, а T — время обработки пакета на удаленном хосте. Используя ваши же данные измерения его можно оценить.
А>dt1 и dt2 считаем равными, пропускная способность сети 100 Мbs.
А>R = 2*S /(2*dt + T), где R — измеренная вами "пропускная способность".
А>Отсюда
А>T = (2*S — 2*R*dt)/R
А>dt получаем как dt = S/100Mbs
А>В первом случае S=15000 бит, dt = 0.15 мкс
А>Во втотром случае S=655350 бит, dt= 6.55 мкс.
А>T в первом случае равно (2*15000 — 2* 4200000*0.00015)/4200000 = 6.8 мкс
А>T во втором случае равно (2*655350 — 2 * 11000000*0.00655)/11000000 = 106 мкс
А>Учитывая, что размер пакетов отличается в 43 раза, увеличение времени обработки на удаленном хосте в 15 раз не кажется мне удивительным.
А>На самом деле этим тестом вы измеряете мощность удаленного хоста, а не пропускную способность сети.
Да, все правильно, но я бы не сказал, что эта методика в корне неправильна. Вот правильно то, что я не учитываю задержку на обработку пакетов удаленным хостом — это и есть моя самая большая погрешность. Тем не менее, при достаточно большом проведении экспериментов и с учетом простой реализации эта методика вполне годится для измерения пропускной способности, поскольку мне не известны другие, более точные. Ваша формула dt = S/100Mbs тоже не верна, т.к. мне нужна пропускная способность сети, в которой не только мой тест, а она при работе других приложений не будет 100Mbs, а будет например 20Mbs, тогда получается интересное время Т(т.е. как бы мощьность хоста будет определяться пропускной способностью канала

). Стоит сказать, что эта методика не нова, например ее использует извесная юниксовая утилита BING —
Утилита bing (bandwigth ping) основана на исходном коде ping (1), и определяет реальную (соответствующую доступной на момент измерения либо средней) пропускную способность канала. Это осуществляется путём измерения времён между отправкой и получением запросов ICMP echo различного объёма.
Еще в журнале "ЖУРНАЛ РАДИОЭЛЕКТРОНИКИ" N 3, 2003 была статья "Методы активного зондирования сетей", где было сказано, что
Пропускная способность C — равна: C = S /dt , где S – размер пакета,dt – время, затраченное на передачу пакета из источника в канал, либо из промежуточного маршрутизатора в канал. При этом S может быть, как величиной полезной информации, так и полной передаваемой информацией, включая служебную информацию. Под , можно подразумевать чистое время передачи пакета, либо время передачи вместе с техническими паузами.
и приведены методы определения номинальной пропускной способности канала — "Метод пакетной пары" и "Модель пакетной цепочки"