Network Allocation Vector
Network Allocation Vector (NAV, рус. «вектор распределения сети») — это виртуальный механизм, используемый в беспроводных сетях стандарта IEEE 802.11 (Wi-Fi) для предотвращения коллизий при передаче данных. NAV представляет собой таймер, который хранится в каждой станции (клиенте или точке доступа) и указывает время, в течение которого среда передачи данных считается занятой. В отличие от физического обнаружения несущей (CCA), NAV является логическим индикатором занятости канала, позволяющим станциям воздерживаться от передачи даже при отсутствии физических помех.
Принцип работы
Механизм NAV является частью протокола множественного доступа с контролем несущей и предотвращением коллизий (CSMA/CA), который лежит в основе работы Wi-Fi. Основная задача NAV — снизить вероятность одновременной передачи двумя или более станциями, что приводит к коллизиям и потере данных.
Формирование NAV
Каждый кадр данных, передаваемый в сети Wi-Fi, содержит в своем заголовке поле Duration/ID (длительность/идентификатор). Это поле указывает время, необходимое для завершения текущей передачи, включая время на отправку самого кадра, подтверждения (ACK) и межкадровых интервалов (SIFS). Любая станция, принимающая этот кадр (даже если он адресован не ей), считывает значение Duration/ID и устанавливает свой собственный таймер NAV на это значение.
Таким образом, станции, не участвующие в текущем обмене, «узнают» о том, как долго будет занята среда, и откладывают свои передачи до истечения таймера. Если станция получает несколько кадров с разными значениями Duration, она устанавливает NAV на максимальное из них.
Обновление и сброс NAV
Таймер NAV постоянно уменьшается с течением времени. Когда он достигает нуля, станция считает среду свободной и может начать конкуренцию за доступ к каналу (backoff-процедуру). Если во время работы таймера станция получает новый кадр с Duration/ID, она переустанавливает NAV на новое значение, продлевая период ожидания.
Отличие от физического обнаружения несущей
Физическое обнаружение несущей (Clear Channel Assessment, CCA) оценивает реальный уровень сигнала в эфире. Если мощность сигнала превышает пороговое значение, среда считается занятой. NAV же не зависит от физической активности — он может указывать занятость канала даже в полной тишине, если станция ранее получила кадр с установленным Duration/ID. Это позволяет избежать коллизий, когда две станции находятся вне зоны прямой радиовидимости друг друга (проблема «скрытого узла»).
Роль в решении проблемы «скрытого узла»
Проблема «скрытого узла» возникает, когда две станции (например, A и C) находятся в зоне действия точки доступа (AP), но не слышат друг друга из-за расстояния или препятствий. Если обе станции одновременно начнут передачу, их сигналы столкнутся на стороне AP. NAV решает эту проблему через механизм RTS/CTS (Request to Send / Clear to Send).
Процедура RTS/CTS
- Станция A отправляет короткий кадр RTS (Request to Send), в котором указывает длительность предстоящей передачи.
- Точка доступа отвечает кадром CTS (Clear to Send), также содержащим поле Duration/ID.
- Станция C, которая не слышит RTS от A, но слышит CTS от AP, устанавливает свой NAV на время, указанное в CTS.
- Станция A, получив CTS, начинает передачу данных. Станция C воздерживается от передачи до истечения NAV, даже если физически среда свободна.
Таким образом, NAV предотвращает коллизии, которые могли бы возникнуть из-за скрытых узлов. Однако использование RTS/CTS увеличивает накладные расходы, поэтому оно обычно применяется только для больших кадров данных (более 1500 байт) или в условиях сильных помех.
Влияние на производительность сети
NAV является критически важным механизмом для обеспечения надежности Wi-Fi, но его работа может влиять на пропускную способность:
- Положительное влияние: снижение числа коллизий и повторных передач, что увеличивает общую пропускную способность в загруженных сетях.
- Отрицательное влияние: избыточное резервирование канала. Если станция установила NAV на длительное время, а реальная передача завершилась раньше, канал остается неиспользуемым до истечения таймера. Это явление называется NAV-блокировкой.
- Уязвимость к атакам: злоумышленник может отправлять кадры с завышенным значением Duration/ID, вынуждая легитимные станции устанавливать длинный NAV и блокировать их доступ к среде. Это один из видов атак на отказ в обслуживании (DoS).
Разновидности и модификации
Стандарт IEEE 802.11 определяет несколько режимов работы NAV:
- Virtual Carrier Sensing (VCS): основной механизм, описанный выше. Используется во всех версиях Wi-Fi (a/b/g/n/ac/ax/be).
- Protected NAV: введен в стандарте 802.11n для защиты передачи в агрегированных кадрах (A-MPDU). Позволяет продлевать NAV на время передачи нескольких подкадров, не требуя отдельных RTS/CTS для каждого.
- Multi-User NAV: в стандарте 802.11ax (Wi-Fi 6) NAV может учитывать передачи нескольких пользователей одновременно (OFDMA), что требует более сложного управления временными интервалами.
Практическое значение
NAV является неотъемлемой частью стека протоколов Wi-Fi. Без него сети Wi-Fi были бы подвержены значительно большему числу коллизий, особенно в условиях высокой плотности устройств (офисы, стадионы, конференции). Понимание NAV необходимо для:
- Администрирования сетей: диагностика проблем с производительностью, связанных с избыточным резервированием канала.
- Разработки драйверов и прошивок: корректная реализация таймеров NAV в оборудовании.
- Безопасности: защита от атак, манипулирующих полем Duration/ID.
Источники
- IEEE Std 802.11-2020 — Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications.
- Gast, M. (2005). 802.11 Wireless Networks: The Definitive Guide. O'Reilly Media.
- Geier, J. (2008). Implementing 802.11, 802.16, and 802.20 Wireless Networks. Newnes.
- Стандарт IEEE 802.11ax (Wi-Fi 6) — спецификации MAC-уровня.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →