Я создал реализацию RFC2544 с открытым исходным кодом для тестирования сетевых устройств IPv4. Одним из первых протестированных мною устройств является беспроводной маршрутизатор D-Link 2640B. Для измерения производительности я использую ноутбук с интерфейсом Ethernet 10/100 Мб и встроенным адаптером беспроводной сети. Поток трафика создается портативным компьютером, перенаправляется обратно маршрутизатором и принимается портативным компьютером (который может определять показатели производительности):
D-Link 2640B Router
Wired Wireless
\ /
| |
`Laptop´
running
D-ITG
Сейчас запускаю набор тестов. Я не могу объяснить одну интересную вещь: если поток трафика, начиная с тестера, проходит через кабель Ethernet, затем маршрутизатор направляет его по беспроводной связи и принимает ноутбук, я получаю следующие результаты:
Frame size: 64
Throughput: 1.47657 Mb/s
Number of frames lost in the last round: 3
Frame size: 128
Throughput: 3.32227 Mb/s
Frame size: 256
Throughput: 6.43361 Mb/s
Frame size: 512
Throughput: 11.5488 Mb/s
Frame size: 1024
Throughput: 21.5157 Mb/s
Number of frames lost in the last round: 631
Frame size: 1280
Throughput: 25.8398 Mb/s
Frame size: 1518
Throughput: 28.793 Mb/s
Если поток трафика отправляется портативным компьютером через беспроводное соединение, а затем маршрутизатор направляет его по каналу Ethernet обратно на портативный компьютер, я получаю следующие результаты:
Frame size: 64
Throughput: 54 Mb/s
Frame size: 128
Throughput: 54 Mb/s
Frame size: 256
Throughput: 54 Mb/s
Frame size: 512
Throughput: 54 Mb/s
Frame size: 1024
Throughput: 25.207 Mb/s
Frame size: 1280
Throughput: 26.9472 Mb/s
Frame size: 1518
Throughput: 42.1347 Mb/s
Это нормально? Что происходит, что делает результаты такими разными?
Если я тестирую устройства, использующие только каналы Ethernet (как для передачи, так и для приема трафика), я получаю ожидаемые результаты.
Спасибо
Дополнительная информация: для отправки тестового трафика я использую D-ITG генератор трафика. Трафик состоит из пакетов UDP Echo Request, отправляемых маршрутизатору.
Алгоритм, используемый для определения пропускной способности, определен в RFC 2544: вы начинаете отправлять трафик с определенной скоростью передачи, затем с помощью двоичного поиска вы повышаете или понижаете эту скорость, пока не найдете максимальную скорость, при которой нет потери пакетов.
Маршрутизатор настроен с включенными WPA2, SNMP и RIP v1. Нет активных фильтров, период маяка - 100, порог RTS - 2347, порог фрагментации - 2346, интервал DTIM - 1.
Операционная система ноутбука - Xubuntu 13.10 без какой-либо оптимизации или настройки.
Это нормально?
Значительное снижение пропускной способности при малых размерах кадра является нормальным из-за огромных накладных расходов беспроводного протокола. Результаты вашего первого теста выглядят вполне разумными для соединения 802.11g со скоростью 54 Мбит / с.
Различия в полосе пропускания в зависимости от направления трафика действительно могут возникать - интерфейсы беспроводной сети могут динамически согласовывать более низкую скорость передачи для экономии энергии в соответствии с настроенным планом управления питанием. Но глядя на ваши результаты в этом случае, я бы сказал, что цифры лживые - 54 Мбит / с для первых четырех наборов датчиков во втором прогоне неразумны.