Какие настройки необходимо выполнить с базовой станцией Wi-Fi, чтобы получить минимальную задержку?
Я разрабатываю специализированное решение для совместного использования экрана. Требования требуют, чтобы это:
- Работа через сеть Wi-Fi LAN.
- обеспечить минимальную задержку и дрожание.
Я сделал все, что я знаю, как делать на стороне программирования, но я вижу, что существует большая разница в дрожании и задержке в разных беспроводных сетях и настройках (разные базовые станции, ad-hoc или Managed и т. Д.)
Методом проб и ошибок я наткнулся на настройки базовой станции, которые влияют на задержку и дрожание, такие как режим энергосбережения, интервал радиомаяка и значения DTIM, но мне было бы очень интересно, если бы я мог как-то установить оптимальные параметры конфигурации базовой станции для минимальной задержки и дрожания,
Я, конечно, понимаю, что такая оптимизация может очень хорошо уменьшить полосу пропускания или вызвать другие нежелательные артефакты, но мне все равно было бы интересно узнать, какие ручки пробовать нажимать и что они делают.
3 ответа
В оценочном порядке важности:
Выберите идеально чистый канал и получите хороший уровень сигнала (от -40 до -60 дБм).
Убедитесь, что ваш трафик не конкурирует за эфирное время с вашим приложением. Особенно многоадресный трафик, который отправляется с низкой скоростью передачи сигналов, пережевывая эфирное время. Не используйте многоадресные или широковещательные рассылки в своем приложении.
Убедитесь, что у вас более чем достаточно пропускной способности для вашего приложения. Сверхобеспечение ваших ссылок примерно на 33%.
Отключить энергосбережение 802.11; Держите всех клиентов в режиме постоянного пробуждения (CAM).
Отключите любые настройки точки доступа или клиента или программное обеспечение, которое может заставить радиостанцию сканировать или иным образом выходить из канала. К ним относятся старые вещи, такие как роуминг и гибкость каналов, и новые вещи, такие как Wi-Fi Direct и Apple AirDrop. Не запускайте сетевой сканер Wi-Fi, например, NetStumbler или inSSIDer, в фоновом режиме. Отключить обнаружение местоположения на основе Wi-Fi. Не упустите виджеты / гаджеты /Gizmos, которые перечисляют сети Wi-Fi; они часто вызывают сканирование.
При использовании 2,4 ГГц отключите Bluetooth.
Отключить NAT на базовой станции.
Используйте очередь WMM (QoS) с низкой задержкой. Или голос (VO) или видео (VI).
Отключить агрегацию кадров: и A-MPDU, и A-MSDU.
Предпочитаю IPv4 по IPv6. На сегодняшний день еще есть много оборудования, которое обрабатывает IPv4 через аппаратный "быстрый путь", но все еще обрабатывает IPv6 через программное обеспечение.
Кстати, настройка интервалов Beacon и DTIM, скорее всего, принесет больше вреда, чем пользы в целом. Большинство клиентов ожидают, что интервалы радиомаяка составят около 100 TU (единицы времени 802.11; 1024 микросекунды; иногда их называют kµsec (килосекунды) или Kiusec (микросекунды Kibi)), а интервалы DTIM между 0-3 маяками. Я видел, как некоторые плохо написанные клиенты Wi-Fi сходят с ума, если вы слишком сильно меняете их (например, делаете их длиннее одной секунды).
Не совсем прямой ответ, но я думаю, что наличие хорошего сигнала Wi-Fi (читай: точка доступа рядом с хост-станцией, не так много сетей Wi-Fi в этом районе, не так много хостов Wi-Fi в сети) даст гораздо большее улучшение производительности, чем любой твик.
Кроме того, насколько я знаю, хотя есть некоторые действительно незначительные изменения, которые вы можете сделать, они чувствительны к паре точка доступа / хост-карта (результаты могут отличаться от других карт) к состоянию сети (перекрывающиеся сети, клиенты в сети, так далее).
В целом, вы, вероятно, добьетесь улучшений на 1-3%, потратив много времени на тщательную настройку этих параметров, с еще меньшим влиянием на пользовательский опыт - я бы сказал, что это, вероятно, лучший способ провести время, и вы могли бы стать лучше результаты где-то еще (например, проверка на наличие других соседних сетей и убедитесь, что каналы не перекрываются, или тому подобное).
Надеюсь это поможет.
Вот несколько общих советов:
- Отключите функции, которые вы не используете ( исследуйте и тестируйте те, которые вы не понимаете)
- Отключить порты, которые вам не нужно открывать
- Увеличьте время ожидания