Привет.
Если верить теории простоты Эйнштейна, главный показатель понимания предмета — это способность максимально просто его объяснить, то и в этом посте я постараюсь максимально просто и подробно объяснить действие всего одной детали нового стандарта, которую почему-то даже Wi-Fi Alliance считает не достойной упоминания в инфографике о новых возможностях Wi-Fi 6, хотя она, как мы скоро убедимся вместе, очень важна и примечательна. Здесь не всё достаточно глубоко и уж точно не всеобъемлюще (потому что такого слона сложно есть даже по частям), но я надеюсь, что мы все почерпнём из моих словесных экзерсисов что-то новое и интересное для себя.
Тот самый 802.11ax, который мы ждём со дня на день вот уже минимум второй год, несёт в себе массу нового и удивительного. Перед каждым, кто хочет о нём что-то рассказать, всегда стоит выбор: либо устроить обзорные скачки по головам, упоминая ведро аббревиатур и сокращений, стараясь не увязнуть в сложных механизмах под капотом каждого из них, либо завернуть часовой доклад про что-то одно, наиболее приятное автору. Я рискну пойти ещё дальше: бОльшая часть моей заметки будет посвящена даже не новому!
Итак, вот уже двадцать с лишним лет часть беспроводных сетей передачи данных строится по вороху стандартов семейства 802.11, и, как любой уважающий себя докладчик, я должен был бы немного восстановить таймлайн всей событийной цепочки, которая подарила миру миллиарды совместимых друг с другом устройств — но, как уважающий читателя автор, я рискну этого всё же не делать. Впрочем, кое-что следовало бы друг другу напомнить.
Все итерации Wi-Fi ставили во главу угла надёжность, но не максимизацию пропускных способностей. Это следует из механизма доступа к среде (CSMA/CA), не самого оптимального с точки зрения выжимания последних килобит в секунду из среды передачи (подробнее о несовершенстве мира в целом и вайфая в частности при желании можно почитать в статье моего бывшего коллеги skhomm вот туточки), но невероятно живучего в практически любых условиях. В самом деле, можно нарушить практически все основы проектирования сетей Wi-Fi — и в такой сети всё равно будет проходить обмен данными! На обеспечение того, что в английском языке называется словом с труднопереводимым флёром технократии, robustness, нацелен весь механизм, по которому клиенты сети Wi-Fi получают возможность передать и/или принять свои порции данных. Весь слой намазанных поверх повышений модуляций, агрегации фреймов с данными (не совсем так, но пусть будет!) продолжает работать уже после двух основных принципов 802.11, которые обеспечивают эту непревзойдённую надёжность:
Второй пункт наносит пропускной способности сети гораздо больший ущерб, чем может показаться на первый взгляд. Вот классная картинка, иллюстрирующая один отправленный кусочек данных в сети Wi-Fi:
Давайте разберёмся, что она означает для обычных людей, не знающих, сколько страниц в стандарте 802.11-2016. Та скорость передачи данных, которую в свойствах беспроводной сети пишет система и которую на коробках точек доступа рисуют маркетологи любого производителя (ну вы же наверняка видели — 1,7 Гб/с! 2,4 Гб/с! 9000 Гб/с!), не только является пиковой и максимальной при 100% занятого передачей времени, но ещё и является скоростью, на которой будет отправляться только синенькая часть на этом красивом графике. Всё остальное будет пересылаться на скорости, которая по-английски называется management rate (и по-русски тоже, потому что переводить такие выражения грозит дальнейшим непониманием между инженерами), и которая ниже не просто в разы, а в СОТНИ раз. Например, без всяких дополнительных настроек сеть на 802.11ac, которая может работать с клиентами на канальной скорости 1300 Мб/с, передаёт всю служебную информацию (всё, что не синее на нашем всё более и более страшном графике) на management rate 6 Мб/с. В двести с лишним раз медленнее!
Логичный вопрос — какого, извините, числа какого месяца такая вредительская идея могла вообще попасть в стандарт, по которому работают миллиарды устройств по всему миру? Логичный ответ — совместимость, совместимость, совместимость! Сеть на новейшей точке доступа должна обеспечить возможность работы для десяти- и даже пятнадцатилетних устройств, и именно во всех этих “не-синих” кусочках и летит информация, которую медленные пожилые девайсы услышат, правильно поймут и не будут пытаться во время сверхскоростных кусочков данных передавать свои. Robustness требует жертв!
Теперь я готов дать каждому интересующемуся незаменимый инструмент для того, чтобы ужаснуться бесцельно теряющимся в современном Wi-Fi потенциальным переданным мегабитам — это ставший уже обязательным к изучению в причастных инженерных кругах The WiFi AirTime Calculator за авторством норвежского энтузиаста от 802.11 Gjermund Raaen. Он доступен по этой ссылке — результат его работы выглядит примерно вот так:
Строка 1 — время, затраченное на передачу пакета данных длиной 1512 байт устройством 802.11n в ширине канала 20 МГц.
Строка 2 — время, затраченное на передачу такого же пакета устройством с такой же антенной формулой, но работающим уже по стандарту 802.11ac в канале шириной 80 МГц.
Как же так — “испорчено” в четыре раза больше эфира, максимальная модуляция усложнилась от 64QAM до 256QAM, канальная скорость больше в ШЕСТЬ раз (433 Мб/с вместо 72 Мб/с), а выиграно от силы 25% времени занятости эфира?
Совместимость и два принципа 802.11, помните?
Хорошо, как можно исправить такую несправедливость и расточительность — спросим мы себя, как, наверное, спрашивала себя каждая рабочая группа IEEE, приступавшая к созданию стандарта? На ум приходит несколько логичных путей:
Как здорово, наконец-то я в своём рассказе о Wi-Fi 6 добрался до собственно Wi-Fi 6! Если вы до сих пор читаете это, то вы либо обязаны это делать по какой-то причине, либо вам действительно интересно. Так вот, хоть 802.11ax и наследует огромную часть предыдущих наработок всего семейства 802.11 (и не только, кстати — некоторые классные штуки появились вообще в 802.16, он же WiMAX), кое-что в нём всё же свежо и оригинально. Обычно на этих словах лепится вот такая картинка, доступная на сайте Wi-Fi Alliance:
Как я с самого начала оговорился, достаточно хорошо мы в пределах одной удобочитаемой статьи сможем рассмотреть лишь один из этих ключевых пунктов, а точнее, ни один из приведённых на картинке (вот так неожиданность!). Я уверен, что вы уже читали миллион беглых описаний каждого из этих восьми ключевых элементов, я же продолжу свой утомительно долгий рассказ о том, что следует из OFDMA — о множественном доступе к среде (MU-access control), который, как мы видим, на инфографику вовсе не попал. А совершенно зря!
Множественный доступ — это то, без чего деление канала на поднесущие вообще лишено смысла. Зачем пытаться разглядывать разные кусочки спектра, если не будет механизма, способного заставить клиентов новой сети Wi-Fi 6 нарушить одно из незыблемых до этого момента правил и начать говорить одновременно? И, конечно, такой механизм просто обязан был появиться — и снизить влияние проблемы “долгой” по сравнению с данными служебной информации. Как? Да очень просто: пусть “медленная”, служебная часть рассылается так же, как и раньше, а вот “быструю” часть, в которой ходят непосредственно данные, мы кинем одновременно с нескольких (или на несколько) устройств по команде! Выглядит это примерно так:
Выглядит сложно, но по своей сути достаточно легко объясняется: точка доступа с помощью специального фрейма, понятного всем (даже не Wi-Fi 6!) устройствам, сообщает, что она готова передать данные одновременно STA1 и STA2. Поскольку “заголовок” этого фрейма полностью понятен даже совсем-совсем старым клиентам, они делают правильный вывод, что эфир будет занят в течение определённого времени передачей информации другим клиентам сети, и начинают отсчитывать время до окончания этого периода (собственно, как и всегда в Wi-Fi). А вот устройства STA1 и STA2 понимают, что сейчас им будут переданы данные уже по-новому, одновременно, каждому на своём кусочке канала, и отвечают точке доступа тоже одновременно, а потом так же синхронно потверждают приём кадра (каждый со своей порцией данных!), и среда снова освобождается. “Снизу вверх” это работает примерно таким же образом:
Главная и бросающаяся в глаза разница — точка доступа и в этой ситуации сообщает станциям, умеющих говорить одновременно, когда начать передачу, с помощью специального кадра, который так и называется — Trigger. Это, по сути, новый “спусковой крючок” всего механизма множественного одновременного доступа к среде, который и является, на мой скромный взгляд, одной из самых важных инноваций “под капотом” нового стандарта. Именно в нём клиенты получают “расписание”, как им поделить между собой один частотный канал; именно в нём клиенты одновременно сообщают точке доступа, что получили свои порции данных и смогли их разобрать. В нём точка доступа оповещает всех, кто может “говорить” одновременно, о начале передачи данных — в нём же точка доступа и запускает отправку ей требуемых данных. Новый механизм Trigger frame, по сути, и позволяет уменьшить нерациональное использование занятости эфира — причём настолько эффективно, насколько много клиентов могут им пользоваться и корректно воспринимать!
А теперь сформулируем основные тезисы, которые следуют из всего этого долгого рассказа и претендуют на TL;DR:
Если верить теории простоты Эйнштейна, главный показатель понимания предмета — это способность максимально просто его объяснить, то и в этом посте я постараюсь максимально просто и подробно объяснить действие всего одной детали нового стандарта, которую почему-то даже Wi-Fi Alliance считает не достойной упоминания в инфографике о новых возможностях Wi-Fi 6, хотя она, как мы скоро убедимся вместе, очень важна и примечательна. Здесь не всё достаточно глубоко и уж точно не всеобъемлюще (потому что такого слона сложно есть даже по частям), но я надеюсь, что мы все почерпнём из моих словесных экзерсисов что-то новое и интересное для себя.
Тот самый 802.11ax, который мы ждём со дня на день вот уже минимум второй год, несёт в себе массу нового и удивительного. Перед каждым, кто хочет о нём что-то рассказать, всегда стоит выбор: либо устроить обзорные скачки по головам, упоминая ведро аббревиатур и сокращений, стараясь не увязнуть в сложных механизмах под капотом каждого из них, либо завернуть часовой доклад про что-то одно, наиболее приятное автору. Я рискну пойти ещё дальше: бОльшая часть моей заметки будет посвящена даже не новому!
Итак, вот уже двадцать с лишним лет часть беспроводных сетей передачи данных строится по вороху стандартов семейства 802.11, и, как любой уважающий себя докладчик, я должен был бы немного восстановить таймлайн всей событийной цепочки, которая подарила миру миллиарды совместимых друг с другом устройств — но, как уважающий читателя автор, я рискну этого всё же не делать. Впрочем, кое-что следовало бы друг другу напомнить.
Все итерации Wi-Fi ставили во главу угла надёжность, но не максимизацию пропускных способностей. Это следует из механизма доступа к среде (CSMA/CA), не самого оптимального с точки зрения выжимания последних килобит в секунду из среды передачи (подробнее о несовершенстве мира в целом и вайфая в частности при желании можно почитать в статье моего бывшего коллеги skhomm вот туточки), но невероятно живучего в практически любых условиях. В самом деле, можно нарушить практически все основы проектирования сетей Wi-Fi — и в такой сети всё равно будет проходить обмен данными! На обеспечение того, что в английском языке называется словом с труднопереводимым флёром технократии, robustness, нацелен весь механизм, по которому клиенты сети Wi-Fi получают возможность передать и/или принять свои порции данных. Весь слой намазанных поверх повышений модуляций, агрегации фреймов с данными (не совсем так, но пусть будет!) продолжает работать уже после двух основных принципов 802.11, которые обеспечивают эту непревзойдённую надёжность:
- “Пока говорит один — остальные молчат”;
- “Всё, кроме данных, говорится медленно и внятно”.
Второй пункт наносит пропускной способности сети гораздо больший ущерб, чем может показаться на первый взгляд. Вот классная картинка, иллюстрирующая один отправленный кусочек данных в сети Wi-Fi:
Давайте разберёмся, что она означает для обычных людей, не знающих, сколько страниц в стандарте 802.11-2016. Та скорость передачи данных, которую в свойствах беспроводной сети пишет система и которую на коробках точек доступа рисуют маркетологи любого производителя (ну вы же наверняка видели — 1,7 Гб/с! 2,4 Гб/с! 9000 Гб/с!), не только является пиковой и максимальной при 100% занятого передачей времени, но ещё и является скоростью, на которой будет отправляться только синенькая часть на этом красивом графике. Всё остальное будет пересылаться на скорости, которая по-английски называется management rate (и по-русски тоже, потому что переводить такие выражения грозит дальнейшим непониманием между инженерами), и которая ниже не просто в разы, а в СОТНИ раз. Например, без всяких дополнительных настроек сеть на 802.11ac, которая может работать с клиентами на канальной скорости 1300 Мб/с, передаёт всю служебную информацию (всё, что не синее на нашем всё более и более страшном графике) на management rate 6 Мб/с. В двести с лишним раз медленнее!
Логичный вопрос — какого, извините, числа какого месяца такая вредительская идея могла вообще попасть в стандарт, по которому работают миллиарды устройств по всему миру? Логичный ответ — совместимость, совместимость, совместимость! Сеть на новейшей точке доступа должна обеспечить возможность работы для десяти- и даже пятнадцатилетних устройств, и именно во всех этих “не-синих” кусочках и летит информация, которую медленные пожилые девайсы услышат, правильно поймут и не будут пытаться во время сверхскоростных кусочков данных передавать свои. Robustness требует жертв!
Теперь я готов дать каждому интересующемуся незаменимый инструмент для того, чтобы ужаснуться бесцельно теряющимся в современном Wi-Fi потенциальным переданным мегабитам — это ставший уже обязательным к изучению в причастных инженерных кругах The WiFi AirTime Calculator за авторством норвежского энтузиаста от 802.11 Gjermund Raaen. Он доступен по этой ссылке — результат его работы выглядит примерно вот так:
Строка 1 — время, затраченное на передачу пакета данных длиной 1512 байт устройством 802.11n в ширине канала 20 МГц.
Строка 2 — время, затраченное на передачу такого же пакета устройством с такой же антенной формулой, но работающим уже по стандарту 802.11ac в канале шириной 80 МГц.
Как же так — “испорчено” в четыре раза больше эфира, максимальная модуляция усложнилась от 64QAM до 256QAM, канальная скорость больше в ШЕСТЬ раз (433 Мб/с вместо 72 Мб/с), а выиграно от силы 25% времени занятости эфира?
Совместимость и два принципа 802.11, помните?
Хорошо, как можно исправить такую несправедливость и расточительность — спросим мы себя, как, наверное, спрашивала себя каждая рабочая группа IEEE, приступавшая к созданию стандарта? На ум приходит несколько логичных путей:
- Ускорять передачу данных в “зелёном” кусочке графика. Делается это при выходе каждого стандарта, потому что большие числа красиво смотрятся на коробках. На практике, как мы только что заметили, даёт конечный прирост — даже если мы ускорим канальную скорость до ста тысяч миллионов гигабит в наносекунду, все остальные части графика никуда не денутся. Именно поэтому я рекомендую во всех рассказах про все новые стандарты 802.11 пропускать абзацы, где упоминаются мегабиты в секунду.
- Ускорять все остальные части графика. Действительно, если мы хотя бы удвоим скорость, на которой передаётся всё “не-зелёное” (ну, или “не-синее”, если вы всё ещё смотрите на предыдущую картинку), то мы получим чуть меньше 50% прироста реальной пропускной способности — правда, путём потери совместимости с устройствами и ещё рядом нюансов, о которых вы узнаете, когда пойдёте готовиться к экзамену на гордое звание CWNA :) Спойлер: делать это получится не всегда, сильно подумав и понимая, к чему это приведёт. Фактически, это нарушение одного из двух принципов 802.11, так что с ним нужно быть очень осторожным!
- Слепить воедино несколько таких вот фреймов зелёными частями вместе. Чем длиннее зелёная часть, тем эффективнее работает увеличение канальной скорости. Да, это вполне рабочая стратегия, появившаяся ещё в 802.11n и являющаяся одним из нескольких краеугольных камней его революционности. Проблема только в том, что, во-первых, ряд приложений плевать хотел на такую агрегацию (например, тот самый кровожадный Voice over Wi-Fi), во-вторых, ряд устройств также плевать на неё хотел (как-то я решил отловить хотя бы несколько таких агрегированных фреймов на реальной сети компании, в которой я работаю, но за >500к “запикапленных” кадров агрегированных из них было ровно ноль. Скорее всего, проблема в моей методологии сбора данных, но я готов обсудить её с любым желающим где-нибудь в личной беседе!).
- Нарушить и первый из двух принципов 802.11, начав говорить, когда говорит кто-то ещё. И вот тут, собственно, и приходит на помощь 802.11ax.
Как здорово, наконец-то я в своём рассказе о Wi-Fi 6 добрался до собственно Wi-Fi 6! Если вы до сих пор читаете это, то вы либо обязаны это делать по какой-то причине, либо вам действительно интересно. Так вот, хоть 802.11ax и наследует огромную часть предыдущих наработок всего семейства 802.11 (и не только, кстати — некоторые классные штуки появились вообще в 802.16, он же WiMAX), кое-что в нём всё же свежо и оригинально. Обычно на этих словах лепится вот такая картинка, доступная на сайте Wi-Fi Alliance:
Как я с самого начала оговорился, достаточно хорошо мы в пределах одной удобочитаемой статьи сможем рассмотреть лишь один из этих ключевых пунктов, а точнее, ни один из приведённых на картинке (вот так неожиданность!). Я уверен, что вы уже читали миллион беглых описаний каждого из этих восьми ключевых элементов, я же продолжу свой утомительно долгий рассказ о том, что следует из OFDMA — о множественном доступе к среде (MU-access control), который, как мы видим, на инфографику вовсе не попал. А совершенно зря!
Множественный доступ — это то, без чего деление канала на поднесущие вообще лишено смысла. Зачем пытаться разглядывать разные кусочки спектра, если не будет механизма, способного заставить клиентов новой сети Wi-Fi 6 нарушить одно из незыблемых до этого момента правил и начать говорить одновременно? И, конечно, такой механизм просто обязан был появиться — и снизить влияние проблемы “долгой” по сравнению с данными служебной информации. Как? Да очень просто: пусть “медленная”, служебная часть рассылается так же, как и раньше, а вот “быструю” часть, в которой ходят непосредственно данные, мы кинем одновременно с нескольких (или на несколько) устройств по команде! Выглядит это примерно так:
Выглядит сложно, но по своей сути достаточно легко объясняется: точка доступа с помощью специального фрейма, понятного всем (даже не Wi-Fi 6!) устройствам, сообщает, что она готова передать данные одновременно STA1 и STA2. Поскольку “заголовок” этого фрейма полностью понятен даже совсем-совсем старым клиентам, они делают правильный вывод, что эфир будет занят в течение определённого времени передачей информации другим клиентам сети, и начинают отсчитывать время до окончания этого периода (собственно, как и всегда в Wi-Fi). А вот устройства STA1 и STA2 понимают, что сейчас им будут переданы данные уже по-новому, одновременно, каждому на своём кусочке канала, и отвечают точке доступа тоже одновременно, а потом так же синхронно потверждают приём кадра (каждый со своей порцией данных!), и среда снова освобождается. “Снизу вверх” это работает примерно таким же образом:
Главная и бросающаяся в глаза разница — точка доступа и в этой ситуации сообщает станциям, умеющих говорить одновременно, когда начать передачу, с помощью специального кадра, который так и называется — Trigger. Это, по сути, новый “спусковой крючок” всего механизма множественного одновременного доступа к среде, который и является, на мой скромный взгляд, одной из самых важных инноваций “под капотом” нового стандарта. Именно в нём клиенты получают “расписание”, как им поделить между собой один частотный канал; именно в нём клиенты одновременно сообщают точке доступа, что получили свои порции данных и смогли их разобрать. В нём точка доступа оповещает всех, кто может “говорить” одновременно, о начале передачи данных — в нём же точка доступа и запускает отправку ей требуемых данных. Новый механизм Trigger frame, по сути, и позволяет уменьшить нерациональное использование занятости эфира — причём настолько эффективно, насколько много клиентов могут им пользоваться и корректно воспринимать!
А теперь сформулируем основные тезисы, которые следуют из всего этого долгого рассказа и претендуют на TL;DR:
- Точки доступа нового стандарта 802.11ax, даже опираясь всего на одно из множества новшеств, начнут повышать суммарную пропускную способность всей сети уже со второго совместимого клиентского устройства! Как только появится хотя бы два клиента, которые смогут говорить одновременно, то при прочих равных (у меня нет ни одной причины предполагать, что драйверы для клиентских радиомодулей будут писать лучше, чем раньше, а значит, что и агрегация “полезных” частей кадров, и многие другие клиентозависимые функции по-прежнему “в среднем по зоопарку” будут работать не ахти) они УЖЕ повысят среднюю пропускную способность. Так что если вы задумались о новой сети Wi-Fi — есть смысл сразу рассмотреть самые новые и лучшие точки доступа, потому что даже если клиентов сейчас для них ещё мало — ситуация такой долго не останется.
- Все трюки и ухищрения, которые сегодня есть в арсенале хорошего беспроводного инженера, ещё долго останутся актуальными — механизм доступа к среде хоть и обновился, нарушив продержавшиеся более 20 лет краеугольные принципы, но всё ещё держит во главе угла совместимость. По-прежнему нужно отсекать “медленные” management rates (и по-прежнему нужно понимать, зачем и когда), по-прежнему нужно правильно планировать физический уровень, потому что никакой механизм на канальном уровне не сработает, если будут проблемы на физическом. Просто появилась возможность делать ещё более лучшЕе.
- Почти все решения в Wi-Fi 6 принимает точка доступа. Как мы видим, она управляет доступом клиентов к среде, объединяя вместе устройства в “периоды” одновременной работы. Отходя чуть дальше в сторону — работа TWT тоже полностью на плечах точки доступа. Теперь ТД должна не только “вещать сеть” и хранить трафик в очередях, но ещё и вести учёт всех клиентов, планируя, как их выгоднее объединить друг с другом на основании их пропускных способностей и потребностей в трафике, их батарей и много-много чего ещё — я называю этот процесс “оркестрацией”. Алгоритмы, по которым точка доступа будет принимать все эти решения, не регламентированы, а значит, что настоящее качество и структурный подход производителей проявится именно в разработке алгоритмов оркестрации. Чем точнее точки будут прогнозировать потребности клиентов, тем лучше и равномернее они смогут объединять их в группы множественного доступа — следовательно, тем рациональнее будут использоваться ресурсы эфира и тем выше будет итоговая пропускная способность такой точки доступа. Алгоритм — последний фронтир!
- Переход от Wi-Fi 5 к Wi-Fi 6 по своей сути и важности так же революционен, как переход от 802.11g к 802.11n. Тогда мы получили многопотоковость и агрегацию “полезной нагрузки” — теперь мы получаем одновременный доступ к среде и наконец-то работающие MU-MIMO и Beamforming (во-первых, как мы знаем, это почти одно и то же; во-вторых, дискуссия “почему MU-MIMO в 802.11ac придумали, но не смогли заставить работать” — это тема отдельной большой статьи :) ). И 802.11n, и Wi-Fi 6 работают в обоих диапазонах (2,4 ГГц и 5 ГГц), в отличие от “промежуточных” предшественников — воистину, “шесть — это новое четыре”!
Немного об истоках этой статьи
Написана статья была для конкурса, который проводила компания Huawei (первоначально была опубликована вот тут). Во многом я опирался при её написании на собственный доклад на конференции «Безпроводов», которая проходила в 2019 году в Санкт-Петербурге (запись выступления можно посмотреть на ютьюбе, только имейте в виду — звук там, прямо скажем, не фонтан, несмотря на питерское происхождение видео!).