Листая интернет, периодически натыкаешься на вопросы в стиле: «Скорость подключения в свойствах пишет 2402 Мбит/с, а iperf показывает всего 900 Мбит/с. Как так?». И вроде бы миллион раз разобрано, что Data Rate (которая и отображается в свойствах подключения) невозможно получить в реальной жизни. И это абсолютно так. Но часто, даже в авторитетных технических статьях и публикациях, можно встретить оговорку, будто эта скорость достижима между двумя устройствами «в идеальных лабораторных условиях». А вот это уже абсолютная дезинформация. На самом деле, эта самая Data Rate принципиально недостижима ни при каких условиях, даже в стерильной лаборатории, если мы используем стек стандартов IEEE 802.11 aka Wi‑Fi. И сейчас я постараюсь объяснить почему.
Если разбирать указанные выше 2402 Мбит/сек в свойствах подключения, то это означает что между устройствами согласована схема модуляции и кодирования MCS11 для 160 МГц полосы. То есть используется модуляция 1024-QAM, короткий защитный интервал (GI = 0,8 мкс), скорость кодирования 5/6, два пространственных потока (2 SS) и канал шириной 160 МГц.
Откуда же берутся эти самые 2402 Мбит/с? Давайте разбираться.
Для начала вспомним, что данные не передаются в одном широком канале 160 МГц, а используется ортогональное частотное разделение, тот самый OFDM (хотя сейчас уже есть и OFDMA, в котором все немного по‑другому, но это тема отдельной статьи, возможно позже и её разберем). Итак, в OFDM один широкий канал делится на несколько поднесущих (subcarriers), на которых и передаются данные в зависимости от используемой модуляции и скорости кодирования. Для режима HE (Wi‑Fi 6) в 160 МГц канале используется 2048 поднесущих, из которых под передачу полезных данных используется 1960, каждая поднесущая при использовании модуляции 1024-QAM за один OFDM‑символ передает 10 бит данных, скорость кодирования 5/6 указывает на то, что из 6 переданных битов 5 несут полезную нагрузку, а один используется для проверки. Зная все эти данные, мы прекрасно можем рассчитать теоретическую Data Rate.
За один символ в нашем случае передается:
Так как один символ в Wi‑Fi 6 длится 13,6 мкс (это с учетом короткого защитного интервала GI=0,8 мкс), то за одну секунду передается 1/0,0000136≈73529,41 символов.
Перемножаем полученные биты на количество символов в секунду:
Вот мы и получили ту самую Data Rate, но ведь её можно достичь только непрерывно бомбардируя символами эфир в одну сторону между двумя приёмо‑передатчиками, а это в принципе невозможно в Wi‑Fi сетях.
В погоне за идеальным вакуумом
Даже если мы исключим все помехи и эти всякие механизмы доступа к среде CSMA/CA, заставляющие всех постоянно слушать эфир и тратя на это драгоценное эфирное время, убираем всю служебную информацию, которой обмениваются ТД(AP) и клиент(STA), убираем заложенные в стандарт интервалы SIFS и AIFS, а также механизм TXOP, который призван предотвратить занятие эфира одним единственным устройством, убираем преамбулу, которая всегда летит на базовой минимальной модуляции, убираем механизм подтверждения доставки кадров Block ACK и прочее, то во‑первых у нас это будет уже совсем не Wi‑Fi, а неизвестно что, во‑вторых даже в этом случае мы не сможем передать полезную нагрузку на скорости Ethernet из‑за добавления Wi‑Fi‑overhead к Ethernet‑кадрам.
Учитывая все вышесказанное, можно с уверенностью сказать, что канальная скорость (Data Rate) в принципе недостижима для передачи любой полезной нагрузки ни при каких условиях в сетях Wi‑Fi. По большому счету это не скорость передачи данных, а лишь максимально возможная скорость модуляции радиосигнала на стороне передатчика. А реальная скорость всегда будет ниже из‑за архитектуры беспроводных сетей.
Кстати, Wi‑Fi здесь не исключение — точно такие же ограничения есть и в проводных сетях. Например, в обычном гигабитном Ethernet (стандарт IEEE 802.3ab 1000BASE‑T) скорость в 1 Гбит/с также недостижима для передачи чистых файлов. Из‑за обязательного добавления служебных заголовков, преамбул и межкадровых интервалов (IPG), реальная скорость полезных данных в iperf по медному кабелю никогда не поднимется выше ~950-990 Мбит/с, если транспортом будет UDP, и ~930-950 Мбит/с — при использовании TCP. Просто в беспроводной среде из‑за физики радиоэфира объём этой служебной информации в разы больше. Это не говоря про полудуплексную среду в отличие от полнодуплексного Ethernet, иной доступ к среде и гораздо большее разнообразие всяких помех.
Скрытый текст
Кстати, в случае с вопросом в самом начале статьи, был еще один момент, почему iperf показывал 900 Мбит/с при канальной 2402 Мбит/с. Все дело в том, что линк до iperf‑сервера был организован через гигабитный Ethernet. А о таких нюансах многие пользователи не думают или забывают.

