Повышение скорости сканирования Wi-Fi

У меня проблема. Я разрабатываю приложение для Android, которое сканирует беспроводные точки доступа / маршрутизаторы. Я тестировал пару устройств и получаю сканирование со скоростью 2, 1, 0,5, 0,1 и т. Д. Сканирований в секунду.

Моя цель - достичь 10 сканирований в секунду, потому что маршрутизатор может отправлять маяки 10 раз в секунду. И это нам нужно для нашего приложения.

Есть ли способ сделать это возможным? Может быть, взломать ROM и заменить драйверы Wi-Fi? Я искал это, но я не могу найти ничего об этой частоте в драйвере.

Используемый драйвер - BCM4329, я не могу найти никаких таблиц данных BCM4329, так что это довольно сложно понять.

Заранее спасибо. flitjes


person flitjes    schedule 02.03.2012    source источник
comment
Я обнаружил, что это как-то связано с WPA_SUPPLICANT. Я собираюсь попробовать создать собственный WPA_SUPPLICANT, чтобы увеличить скорость сканирования, потому что драйверы внутри WPA_SUPPLICANT содержат параметры скорости сканирования Wi-Fi. Мне все еще нужно это проверить!   -  person flitjes    schedule 08.03.2012
comment
WPA_SUPPLICANT отвечает за безопасность, мне очень трудно поверить, что он может напрямую управлять скоростью сканирования (хотя это может быть побочным эффектом).   -  person SomeWittyUsername    schedule 23.10.2012


Ответы (4)


Я не знаком с разработкой драйверов, но я знаю, что это одна из самых сложных задач в информатике, поэтому, если у вас нет хороших знаний в области разработки ядра Linux, я бы об этом забыл.

Более того, вам все равно нужно просканировать 12 каналов Wi-Fi, чтобы убедиться, что вы обнаруживаете все точки доступа. Точка доступа передает маяк каждые 100 мс * 12 каналов = 1,2 секунды. Потратив меньше времени, вы рискуете пропустить точки доступа.

person chopchop    schedule 30.03.2012
comment
Несколько точек доступа отправляют маяки одновременно, поэтому я почти уверен, что могу это ускорить. Как я уже сказал в другом ответе, я думаю, что единственный способ сделать это быстрее - исключить каналы из сканирования. Возможно с окном 1-4 канала. - person flitjes; 02.04.2012
comment
хорошо, некоторые драйверы позволяют регулировать время сканирования для каждого канала, но тогда вы рискуете пропустить некоторые точки доступа, что снизит вашу точность ... - person chopchop; 03.04.2012
comment
В настоящее время он уже сканирует 500 мс с обновлением, так что похоже, что это возможно. Но я не могу найти никаких настроек, чтобы изменить время сканирования для каждого канала. Выяснил, что есть разница между драйверами и стеком wifi. Так что это означает множество новых возможностей, которые могут содержать ответ. - person flitjes; 04.05.2012

Вам не нужно ничего менять в драйвере устройства, Android делает его доступным для поиска точек доступа. См. документацию.

Хотя запрос такого большого количества сканирований, вероятно, не очень хорошо скажется на времени автономной работы и быстродействии вашего приложения ...

person Matthieu    schedule 30.03.2012
comment
Я знаю, что могу сканировать точки доступа с помощью android, это не проблема ... Неважно, сколько будет времени автономной работы. Просто нужно так быстро просканировать это приложение. Проблема все еще остается: как я могу сделать это возможным. Теперь я пытаюсь просканировать один канал, а не все 11-14. - person flitjes; 02.04.2012

Ваше предположение, что частота радиомаяков составляет 10 в секунду, неверно. Это действительно параметр конфигурации точки доступа, хотя в большинстве случаев по умолчанию используется значение 10 в секунду. Кроме того, точки доступа не отправляют маяки одновременно, если это происходит, это называется коллизией, и для повторной передачи используется алгоритм отката. Кроме того, даже сканирование 10 раз в секунду не гарантирует, что вы захватите все маяки, как было указано в предыдущих ответах.

person SomeWittyUsername    schedule 23.10.2012

Если вы используете драйвер 4339, вы не можете установить скорость сканирования в драйвере или API Android, которая исправлена ​​в прошивке 4339, сканирование касается всех каналов и времени, которое вы проводите на каждом канале, в соответствии со спецификацией 80211, которая является частью mac && физ. в этом случае вам просто нужно получить маяк, поэтому вы должны использовать пассивное сканирование и использовать фиксированный канал && MaxChannelTime, который вы хотите.

Вы должны спросить у Broadcom специальную прошивку, чтобы разобраться в вашей проблеме,

IEEE Std 802.11-2012, стр. 978 10.1.4.2 Пассивное сканирование Если параметр ScanType указывает на пассивное сканирование, STA должна прослушивать каждый просканированный канал не дольше максимальной продолжительности, определенной параметром MaxChannelTime.

person phoenixshen    schedule 13.08.2014