2,4 ГГц — это плохо. 5 ГГц — это хорошо. 6 ГГц — это ещё лучше, но послезавтра. Все это знают, кого я тут учу, в самом деле. Всё это хорошо, только делать-то что, когда ты такой, как умный, открываешь какой-нибудь Wi-Fi Explorer, а там сатанизм и этажерки, как на скриншоте?
Шаг первый — поплакать. Шаг второй — нырнуть под кат. Вопрос простой, а ответ — нет.
Для начала — разминочный тест. Ситуация номер раз: занят один канал в 2.4 ГГц, нужно поставить свою точку доступа. На какой канал?
- На любой, кроме того же самого;
- Плюс-минус пять каналов от занятого, то есть, шестой и дальше;
- Лучше, конечно, на шестой или одиннадцатый;
- На тот же самый канал.
Ситуация вторая: диапазон 2,4 ГГц занят двумя точками доступа: одна вещает на первом канале с шириной 40 МГц, вторая — на девятом в такой же ширине. Куда нам встать со своей точкой доступа?
- На любой канал, кроме первого или девятого, очевидно же;
- Желательно на тринадцатый, чтобы как можно дальше от этих двух;
- На первый, пятый, девятый или двенадцатый;
- На первый или девятый.
Ситуация под цифрой три, тут похитрее задачка: в эфире три точки доступа, по 20 МГц на первом, шестом и одиннадцатом канале (“во-первых, это красиво”). Куда поставить свою точку доступа?
- На любой канал, кроме первого, шестого и одиннадцатого;
- На первый, шестой или одиннадцатый — наверное, лучше на первый, потому что мощность пониже;
- На первый, шестой или одиннадцатый — может, есть ещё какая-то характеристика, на которую надо посмотреть?
- Третий-четвёртый или восьмой-девятый, что-то из этого, потому что там пустые места есть.
Ситуация 4: Этажерка Безнадёжности. Куда поставить точку доступа?
- На каналах с девятого и дальше мощность ниже всех остальных, так что надо ставить туда;
- Меньше всего точек доступа на 13 канале, так что на него;
- Всё настолько плохо, что уже без разницы. На любой наугад.
Про 5 ГГц я не говорю по той простой причине, что там всё примерно то же самое, но не совсем, а, как всегда в вайфае, всё зависит от всего. Основные принципы выбора там будут примерно те же самые, только кое-что будет полегче, а другое кое-что — посложнее. Но это, как говорил Каневский, уже совсем другая история.
Если вы быстро и без запинки ответили на этот стартовый тест, то поздравляю: либо вы узнаете много нового из этой статьи, либо не узнаете ничего. Правильные ответы —
Ситуация 2 — вариант 4;
Ситуация 3 — варианты 2 или 3, причём вариант 3 лучше;
Ситуация 4 — вариант 3, он же “против всех”.
Для того, чтобы понять принцип, по которым более правильно так, а не по-другому, нам нужно обсудить на пальцах, как сети Wi-Fi дружат друг с другом — если бы это сосуществование было серьезной проблемой, Wi-Fi не торчал бы в каждой кофеварке. Как мы уже выяснили в предыдущей моей заметке, основная цель протокола 802.11 — не обеспечение максимально возможной пропускной способности на один мегагерц занятого эфира, а бескомпромиссная совместимость и работоспособность протокола даже в самых плохих условиях (типа заглавной картинки, да). Придуман протокол грамотно, реализован, кхм, по-разному, но в целом тоже не глупо, и всё-таки рано или поздно всякий запас прочности познаёт свой предел.
Итак, представим, что в мире остались всего два устройства, которые умеют работать с Wi-Fi, и это точка доступа и клиент. Первое правило вайфай — никому не расска “Пока говорит один — остальные молчат”. И не просто молчат, а внимательно слушают.
Собираясь передать данные, первое, что делает любое устройство Wi-Fi — внимательно слушает, не передаёт ли кто свои данные. Получится очень неловко, если мы начнём говорить одновременно с кем-то ещё, не так ли? В отличие от 802.3, он же Ethernet (слишком обобщённо, но пусть будет), в котором момент одновременного разговора определяют, когда он произошёл (помните лампочку Collision на старых хабах? Я тоже нет, но речь о ней), в 802.11 стараются такого момента избежать и не допустить. Главная причина в том, что разница между передаваемым и принимаемым сигналом в вайфае может достигать МИЛЛИАРДА раз (я не шучу!), и то, что передаёт передатчик, может наглухо забить и сжечь приёмник, если он попробует слушать одновременно с передачей. Весь этот этикет взаимного “После Вас — нет, после Вас!” среди устройств 802.11 называется сложной аббревиатурой CSMA/CA, которая делится на три части:
CS — Carrier Sense, определение несущей;
MA — Multiple Access, множественный доступ;
CA — Collision Avoidance, избежание коллизий.
У меня шевелится паучье чутьё на тему того, что вы всю эту лирику уже не раз читали, но потерпите чуть-чуть, сейчас мы доберёмся до мясца нашей задачи о расстановке козы, волка и капусты. В рамках этой заметки нас интересуют первые две буквы, а именно CS. Что это вообще такое?
Так вот, определение несущей — это, по сути, и есть механизм определения, говорит ли сейчас кто-то ещё или нет. Всё сводится к тому, что практически постоянно проверяется наличие двух возможных причин занятости эфира — Wi-Fi-устройства и все остальные устройства (да, вот так вот ксенофобовато, “наши и все остальные” — двадцать с лишним лет протоколу, а актуальности, как видите, не теряет!). Перед тем, как только подумать о передаче данных, устройству нужно провести оценку занятости эфира (натурально, так и называется — Clear Channel Assesment, или CCA). “Наши” и “не наши”, по мнению каждого устройства, не равны по значимости, и есть два пороговых значения — это SD (Signal Detect), которое означает, что мы услышали что-то на языке 802.11, и ED (Energy Detect), которое означает любую мощность на входе приёмника (любой другой язык).
А теперь внимание: к “нашим” вайфай-устройства в СТО раз более внимательны, чем к “всем остальным”. То есть, эфир считается занятым, если мы услышали какой-то 802.11-фрейм на уровне всего на 4 дБ лучше уровня шума — мы ооооочень вежливы к другим устройствам Wi-Fi! А все остальные (всякие там Bluetooth, к примеру) помешают что-то передать только тогда, когда уровень сигнала от них будет выше шума на 24 дБ!
Спасибо замечательному David Coleman за эту красивую картинку.
Много это или мало? Давайте приведём самые хрестоматийные числа в качестве примера. Итак, для того, чтобы устройства стандарта 802.11n развили максимальные скорости (при ширине канала в 20 МГц и одном приёмопередатчике это 72,2 Мб/с), им нужен сигнал уровнем примерно -64 дБм при соотношении “сигнал/шум” не меньше 25 дБ (если кому интересно, откуда я взял эти числа — то вот отсюда, пользуйтесь, если до сих пор не заглядывали в статью skhomm «Все полезные материалы по Wi-Fi в одном месте»). То есть, передачу данных остановит ЛЮБОЙ кадр на этом же канале с уровнем приёма выше -85 дБм! В каком-нибудь многоквартирном доме это добрые плюс-минус два этажа (я терпеть не могу оценивать мощность длиной, но в этом случае готов согрешить ради наглядности), а в чистом поле — полкилометра расстояния!
А вот если наше готовое к передаче устройство услышит какой-то сигнал, но не сможет его расшифровать, то оно будет его игнорировать вплоть до -65 дБм, то есть, до тех пор, пока уровень этой сторонней помехи почти не сравняется с уровнем сигнала от той самой идеальной точки доступа, на которую оно и хотело передать данные. Вот это да!
“Но позвольте” — совершенно правильно возразит кто-нибудь моими же собственными пальцами, — “мы же все знаем, что блютус мешает вайфаю, как ему мешают микроволновки, камеры там всякие!”. Совершенно верно. При уровне “нечитаемой” помехи в, скажем, -70 дБм (ну, то есть, она ещё не считается достаточно сильной для того, чтобы остановить всю передачу и заставить считать среду занятой) она становится тем самым шумом, от которого мы соотношение “сигнал/шум” и отсчитываем. Мы слышим нашу точку доступа на уровне -65 дБм, мы слышим любой нечитаемый сигнал на уровне -70 дБм, таким образом, наше соотношение “сигнал-шум” вдруг упало до 5 дБ, а при таких параметрах канальную скорость в 72,2 Мб/с уже не развить, а максимум, что можно развить — это несчастные 27 Мб/с. Все в радиусе действия этой помехи резко уронили свои канальные скорости, в итоге за секунду трафика через точку доступа можно прокачать существенно меньше — вот и начались “тормоза в вайфае”, ай-ай-ай, всё плохо, колёсико крутится, ютьюб не грузится. Так-то!
“Какое же отношение” — последует новый логичный вопрос от внимательного идеализированного мной читателя, — “какой-то там блютус имеет к нашему вопросу? Ведь на картинках в тесте нет никакого блютуса, там только вайфай!”. А вот какое: любое 802.11-устройство может декодировать фрейм только тогда, когда он передан ПОЛНОСТЬЮ на канале, который она слушает! Посмотрите на эти две сети:
Точка доступа, работающая на первом канале, в упор не понимает, что говорит вторая точка доступа, потому что слышит только 75% того, что она передаёт (как и точка на втором канале, которая слышит только 75% того, что говорит первая). Именно поэтому она не понимает, что это “наши” — она не считает, что должна уступить среду для передачи! Отсюда соотношение “сигнал/шум” катится вниз, канальная скорость (а с ней и итоговая пропускная способность) катятся вниз, и, заметьте, совсем даже не пропорционально перекрытию каналов, а обратно пропорционально разнице в мощности — чем лучше клиент, который хочет передать данные первой точке, слышит вторую, тем сильнее упадёт его канальная скорость.
Но и это, к сожалению, ещё не все причины разрушительного действия перекрывающихся каналов. Теперь мы обратимся к следующим двум буквам, а именно MA, или Multiple Access. Мы не будем углубляться в детали доступа к среде в протоколах 802.11 — я отмечу только одну особенность, которая важна в контексте обсуждаемого вопроса. Итак, после каждого фрейма, неважно, служебный он или содержит данные, любое Wi-Fi устройство должно выждать некоторое время, прежде чем снова пытаться получить доступ к среде. Более того, неважно, само ли оно отправило этот фрейм или только услышало его — придётся подождать определённое время, называемое InterFrame Space (IFS), и только потом затевать игру “Кто первый застолбит среду”. Этих самых IFS существует несколько, и вот что интересно: если наше устройство после передачи фрейма не услышало подтверждения, что адресат его получил, то оно будет ждать дольше, чем если бы получило. В разы дольше.
Вернёмся к картинке из позапрошлого абзаца. Точка доступа с первого канала принимает фрейм. В это время точка доступа со второго канала тоже принимает фрейм. Оба этих фрейма повреждаются, и обе сети вынуждены простаивать бОльшее время, ещё сильнее теряя в пропускной способности (потому что, как мы помним, время = деньги, а для вайфая время = пропускная способность). Полная засада.
Итак, из всего этого следует простое правило: если не можете избежать пересечения каналов — ставьте точки доступа на один канал! Да, обе сети потеряют в пропускной способности, но, во всяком случае, они рассчитаны на такую работу.
Я напомню ситуацию 4.
В эфире не осталось ни одного канала, на котором не работает две и больше пересекающихся и мешающих друг другу сети, все мешают друг другу, все испытывают проблемы, поэтому ни мощность, ни выбор канала, ни волшебные алгоритмы, ни BSS Coloring, ни крёстная фея в такой ситуации уже не помогут. Можно ставить свою точку доступа куда угодно.
Понятное дело, что в таком беспроводном адке уже ничего не исправить, но что нужно делать, чтобы не оказаться в такой ситуации? В первую очередь, запомнить раз и навсегда, что есть всего три не мешающих друг другу канала в диапазоне 2,4 ГГц — первый, шестой и одиннадцатый. Конечно, можно заметить, что третий, восьмой и тринадцатый тоже друг другу не мешают, но, во-первых, тринадцатый можно не везде (в США всего 11 каналов), а во-вторых, если вы отклонитесь от мантры “1-6-11”, а кто-то другой не отклонится, то весь эффект сойдёт на нет — все каналы снова пересекутся и испортят друг другу жизнь. Это как обжимать витую пару — в принципе, если с двух сторон последовательность одинаковая, то может и заработать, только вот разбираться кому-то потом в распиновке каждой розетки будет ох как несладко. Ещё раз: первый. Шестой. Одиннадцатый.
Хорошо, вот ситуация под номером 3.
Ну хорошо, вот они, первый, шестой или одиннадцатый. Какой из них выбрать? Да, в принципе, любой из этих трёх подходит, но если выбирать до конца оптимально — то нам гораздо важнее, как часто передаются данные на каждом из этих каналов; то есть, идеальный ответ — смотреть на ещё один параметр, а именно утилизацию эфира. Это просто: если к точке доступа на первом канале подключено 100 клиентов, а к точкам на 6 и 11 — ни одного, то гораздо выгоднее встать на 6 или 11. В англоязычной терминологии есть два слова — airtime и utilization, и они означают, строго говоря, не одно и то же, но можно ориентироваться как на одно, так и на другое, показометры эти взаимозависимые.
Теперь — ситуация 2.
Мы уже поняли, что пересекать каналы нельзя, поэтому варианты с 13 и любым каналом отпадают. Почему же нельзя поставить точку доступа на пятый канал?
Причина — в истории. Нет, серьёзно. Каналы шире 20 МГц появились только в стандарте 802.11n, когда впервые предложили слепить воедино два соседних канала и говорить по ним в два раза — эээээээ… толще? В два раза продуктивнее! Но с точки зрения совместимости вся служебная информация, то есть, все фреймы, которые должны быть понятными для остальных сетей, идёт только в первых 20 МГц занятой полосы. Я напомню вот эту классную картинку с анатомией передачи данных по Wi-Fi, она всегда к месту:
Обратите внимание: только синяя часть на диаграмме использует все 40 МГц эфира! Все “шестерёнки” протокола крутятся в первых двадцати мегагерцах! Это, кстати, верно и для 80 МГц, доступных в 802.11ac: всё служебное летит в первой двадцатке, а оставшиеся 60 простаивают бОльшую часть времени. Но рано или поздно к вопросу широких каналов мы вернёмся — оооо, я обещаю, мы их ещё обсудим!
И в итоге получается, что пятый канал, хоть и попадает целиком внутрь одной сети, всё равно видеть её не будет — со всеми описанными вытекающими (кхм, какая двусмысленная фраза). Для нормальной работы нам остаются лишь первый и девятый каналы.
Ну, и первая ситуация теперь вообще не вызывает вопросов, правда?
Тезисно сформулируем всё, что мы смогли обсудить в таком сложном ответе на такой простой вопрос:
- Можно работать на одном канале, но никогда не нужно каналы пересекать;
- Нам нужны первые 20 МГц канала, остальное по-прежнему нельзя пересекать;
- (стройный хор): Первый! Шестой! Одиннадцатый!
Пользуясь случаем, передаю привет МГТС, которые в своё время прославились тем, что ставили все домашние роутеры абонентам на шестой канал. Пожалуй, это не самое тупиковое решение, как могло бы показаться на первый взгляд.
Автор: boolochka