Как работает вайфай
Вайфай - это обычная компьютерная сеть, у которой вместо провода общий кусок радиоэфира, поэтому устройства в нём говорят строго по очереди.
Вайфай - это проводная компьютерная сеть, у которой отобрали провод. Данные режутся на те же пакеты, адресуются теми же адресами и обрабатываются той же логикой; заменена только среда, по которой они едут. Но замена среды тянет за собой всё остальное. Провод принадлежит двум устройствам и передаёт в обе стороны сразу, а кусок радиоэфира общий для всех, кто его слышит, и говорить в нём одновременно нельзя. Отсюда растут и главный механизм вайфая - очерёдность, и почти все его особенности, включая скорость, которая никогда не совпадает с обещанной на коробке.
Почему устройства не говорят одновременно
Если два устройства начнут передавать разом, их радиоволны сложатся, и приёмник не разберёт ни одного из сигналов. Оба пакета потеряны. В проводных сетях с этим боролись просто: передатчик слушал линию во время передачи, замечал наложение и обрывался на полуслове.
В радио этот приём не работает. Собственный передатчик рядом с собственным приёмником заглушает всё остальное, и услышать чужой сигнал на фоне своего невозможно. Значит, столкновения нельзя обнаруживать, их можно только предотвращать.
Механизм следующий. Устройство, собравшееся передавать, сначала слушает эфир. Занято - ждёт. Освободилось - оно не бросается передавать немедленно, а отсчитывает случайное число коротких интервалов и только потом начинает. Случайность здесь принципиальна: если бы все ждали освобождения и стартовали одновременно, каждое освобождение канала заканчивалось бы всеобщим столкновением. Разные случайные паузы разводят претендентов, и первый же начавший занимает канал, а остальные видят, что стало занято, и замирают, сохранив свой недосчитанный остаток.
Поскольку столкновение всё же возможно, каждый принятый пакет подтверждается: получатель немедленно отправляет короткую квитанцию. Не пришла квитанция - значит, пакет потерян, и отправитель повторяет его, увеличив диапазон случайного ожидания вдвое. Чем плотнее эфир, тем осторожнее становятся устройства.
Проблема, которую не видно
У очерёдности по прослушиванию есть уязвимое место. Два устройства могут находиться по разные стороны от точки доступа, каждое прекрасно её слышать и при этом не слышать друг друга вовсе. Оба честно проверяют эфир, оба находят его свободным и оба начинают передавать. Столкновение происходит у точки доступа, а виновники о нём не подозревают.
Для таких случаев предусмотрен предварительный сговор. Устройство сначала посылает точке доступа короткий запрос на передачу, точка отвечает разрешением, и это разрешение слышат все, кто её слышит, - в том числе тот, кто не слышит запросившего. В разрешении указано, на сколько канал занят, и остальные молчат ровно столько.
Механизм стоит накладных расходов, поэтому включают его не всегда, а для крупных пакетов или в заведомо тесном эфире. Но принцип показателен: вайфай постоянно объявляет вперёд, сколько времени займёт разговор, чтобы соседи планировали своё молчание.
На каких частотах это живёт
Работает вайфай в диапазонах, которые не требуют персонального разрешения на использование. Их несколько.
Диапазон около 2,4 гигагерца - самый старый и самый проходимый: волна лучше огибает препятствия и проходит сквозь стены. Его беда в тесноте. Полоса узкая, стандартный канал занимает двадцать мегагерц, и полностью неперекрывающихся каналов в ней помещается всего три. В многоквартирном доме, где на площадке десяток точек доступа, все они делят эти три канала. Вдобавок в том же диапазоне работают микроволновые печи и множество бытовых радиоустройств.
Диапазон около 5 гигагерц просторнее в разы: там помещается много неперекрывающихся каналов, и соседей на каждом заметно меньше. Плата - худшее прохождение сквозь стены: чем короче волна, тем сильнее её гасит препятствие. Позже к этому добавился ещё более широкий диапазон около 6 гигагерц, с той же логикой: больше места, меньше дальность.
Каналы можно склеивать. Вместо двадцати мегагерц устройство занимает сорок, восемьдесят, а в верхних диапазонах и сто шестьдесят, получая пропорционально больше скорости. Но склейка съедает свободные каналы соседей, и в плотной застройке широкий канал часто оказывается медленнее узкого: выигрыш в полосе съедается ожиданием очереди.
Как из радиоволны получаются биты
Одну несущую частоту с широкой полосой в помещении использовать плохо: сигнал приходит к приёмнику несколькими путями сразу - напрямую и отражённым от стен, - и отражения, запаздывая, накладываются на прямой сигнал и размазывают символы.
Поэтому широкую полосу нарезают на множество узких поднесущих и передают по ним параллельно, каждую медленно. Символ на узкой поднесущей длинный, и запоздавшее отражение попадает внутрь него, а не в следующий. Плюс между символами оставляют защитный промежуток, специально рассчитанный на задержку отражений. Это и есть основной приём, благодаря которому вайфай работает в комнате с мебелью, а не только в чистом поле.
На каждой поднесущей биты кодируют изменением фазы и амплитуды сигнала. Чем больше различимых состояний, тем больше бит несёт один символ: шестнадцать состояний дают четыре бита, шестьдесят четыре - шесть, тысяча с лишним - десять. Но чем плотнее набор состояний, тем меньше между ними расстояние и тем чище должен быть сигнал, чтобы приёмник не спутал соседние. Отсюда автоматический выбор режима: устройства постоянно меряют качество связи и переключаются на более плотное кодирование при хорошем сигнале и на более грубое, зато надёжное, при плохом. Именно это ощущается как падение скорости при удалении от точки доступа.
Второй множитель скорости - несколько антенн с обеих сторон. Отражения, которые раньше мешали, здесь работают на пользу: сигналы приходят разными путями, и приёмник, сравнивая, что поймала каждая антенна, разделяет несколько независимых потоков, переданных одновременно на одной частоте. Тот же набор антенн умеет складывать волны так, чтобы они усиливали друг друга в направлении конкретного устройства, - точка доступа как бы прицеливается, не поворачиваясь.
Почему реальная скорость вдвое меньше обещанной
Число на коробке - это скорость радиоканала в идеальных условиях, при лучшем кодировании, максимальной ширине канала и всех задействованных антеннах. До полезных данных из него доходит меньше половины, и вот почему.
Эфир односторонний в каждый момент. Пока передаёт одна сторона, вторая молчит, а на каждый пакет данных идёт встречная квитанция, и на её время канал тоже занят. Плюс случайные паузы перед каждой передачей, плюс служебные заголовки, плюс регулярные маячки точки доступа.
И главное: канал общий. Десять устройств в сети не получают по десятой доле скорости каждое - они получают доли того, что осталось после накладных расходов, причём медленное устройство тормозит всех. Пока оно передаёт свой пакет на грубом кодировании, канал занят гораздо дольше, чем занял бы быстрое, и остальные ждут. Один старый аппарат на краю квартиры способен ощутимо просадить всю сеть.
Свежие поколения стандарта борются именно с этим: они умеют раздавать разным устройствам разные поднесущие одновременно, чтобы мелкие пакеты не занимали канал целиком, и планировать, кому когда говорить, вместо чистой лотереи случайных пауз.
Как устройство подключается и что делает пароль
Точка доступа несколько раз в секунду передаёт маячок с именем сети и её параметрами. Устройство слушает эфир, собирает список и либо показывает его человеку, либо само выбирает знакомую сеть.
Скрытие имени сети, которое иногда советуют как меру защиты, ничего не защищает: маячок продолжает передаваться, просто без имени, а имя всё равно уходит в эфир при подключении любого клиента.
Пароль работает не так, как кажется. В эфир он не передаётся ни разу, даже в зашифрованном виде. Из пароля и имени сети обе стороны независимо вычисляют один и тот же длинный ключ, а затем обмениваются случайными числами и подтверждениями, доказывая друг другу, что ключ у них совпал. Из этих же случайных чисел выводится сеансовый ключ, свой у каждого подключения и на каждый сеанс новый, - им и шифруется трафик. Поэтому сосед, знающий пароль, не может просто так расшифровать чужой трафик задним числом: сеансовый ключ у каждого свой.
Первый способ защиты, появившийся вместе со стандартом, был взломан полностью, второй продержался дольше и до сих пор распространён, третий добавил защиту от подбора пароля по перехваченному обмену. Открытая сеть без пароля не шифрует ничего вовсе, и в ней всё, что не защищено на уровне самих приложений, читается любым, кто рядом.
Что глушит сигнал
Ослабление в свободном пространстве неизбежно и растёт с расстоянием, но в помещении решают препятствия. Хуже всего для радиоволны вода и металл: железобетонная стена с арматурой, зеркало, аквариум, холодильник. Обычная межкомнатная перегородка обходится дешевле. Чем выше частота, тем каждое препятствие дороже, поэтому верхний диапазон в дальней комнате часто просто пропадает, а нижний ещё жив, хоть и медленный.
Второй источник бед - соседи. Устройства на одном канале честно делят его по очереди и просто замедляют друг друга. Хуже, когда каналы перекрываются частично: тогда чужой сигнал не распознаётся как занятость канала и работает чистой помехой.
Отдельно стоит вспомнить, что уровень сигнала и скорость - не одно и то же. Полные деления на индикаторе означают лишь, что точку доступа хорошо слышно; если она при этом занята чужим трафиком или её собственный канал в интернет узкий, скорость останется низкой. Именно поэтому в отеле или кафе при отличном приёме страницы могут открываться медленнее, чем через сотовую связь.
Откуда всё это взялось
Технической основой стал стандарт беспроводных локальных сетей, опубликованный в 1997 году. Первые версии давали единицы мегабит в секунду, следующая подняла планку примерно до одиннадцати, затем до пятидесяти с лишним, а дальнейшие поколения довели цифры до сотен и тысяч мегабит - в основном за счёт более широких каналов, плотного кодирования и множества антенн.
Само название к технике отношения не имеет. Стандарт обозначался длинным номером, неудобным в рекламе, и отраслевое объединение производителей заказало короткое звучное имя специалистам по брендингу. Получившееся слово выбрали за созвучие с термином из мира звуковой аппаратуры; расшифровки у него не было и нет, а популярное объяснение через беспроводную точность придумали задним числом, уже после того, как имя прижилось.
Ирония в том, что диапазон, на котором всё это выросло, изначально выделили не под связь. Он предназначался для промышленного, научного и медицинского оборудования, то есть фактически для устройств, которые греют и излучают, а не передают данные. Именно потому, что на нём не требовалось разрешение, туда и пустили беспроводные сети - и по той же причине там до сих пор так тесно.