Высокоскоростной WiFi

  • Сначала скорость WiFi 1-2 Мб/с

  • потом 802.11a и b до 11 и 54 мб/с

  • OFDMA

  • и тд до 30 Гб/с

Пути увеличения скорости

  • Увелечение ширины полосы
  • MIMO
    • две антенны на передатчике и 2 на приемнике
    • 4 пути
    • Сумма двух сигналов X1(tδt1)+X2(tδt2)h1X1(t)+h2X2(t)X_1(t-\delta t_1) + X_2(t - \delta t_2) \to h_1X_1(t) + h_2X_2(t)
    • имеем систему из двух уравнений
    • знаем затухание (коэффициенты)
    • решаем систему, получаем искомое
    • минус в том, что знаем все это с какой-то точностью (hh меняются)
    • пути не всегда независимы
  • Single User MIMO (802.11 ac, ax)
    • Пути (стримы) принадлежат одному устройству (на каждом устройстве больше одной антенны, в Multi User мб одна)
    • Например, 8 антенн => 4 устройства по 2 стрима
  • Новые СКК
    • QAM 16, QAM 64, QAM 256, QAM 1024
    • QAM 4096 (думают делать или нет)
    • Номер соответствует количеству значений одного символа (на одной несущей)
      • 64 => 6 бит (можно закодировать)
      • 1024 => 10 бит
    • Упирается в формулу Шеннона (?)
    • Каждый раз нужен в 2 раза меньший SNR

Номинальная скорость передачи данных — скорость передачи payload для пакетов

Пакет еще содержит преамбулу (передается на некоторой фиксированной СКК), состоит из:

  • training fields ~ 16мкс (чтобы обозначить факт передачу)
  • OFDM символ ~ 4мкс (задает параметры: длительность пакета и алгоритм СКК для payload)

При увелечении номинальной скорости, сильно играют роль накладные расходы на преамбулу и ACK-и.

Пути решения:

  • аггрегирование
  • блочное подтверждение

Агрегирование

Объяснение отходит от стандарта

TXOP и OFDMA

TXOP

Неясно при чем здесь TXOP

Избавляемся от слотов отсрочки.

К этому можно добавить блочное подтверждение.

A-MPDU и A-MSDU

По сути и есть агрегирование, появилось в 802.11n

A-MPDU — protocol

A-MSDU — service

A-MSDU

есть пакеты с равными src и dst mac, их можно склеить.

Вместо data в payload помещается AMSDU, состоящий из сабфреймов, каждый состоит из:

  • 2 адреса (могут быть уникальными для каждого пакета (слачаи 3-х и 4-ч адресов))
  • Длина
  • MSDU (оригнальная data)
  • Padding

Общая контрольная сумма на все сабфреймы

Минусы:

  • одна контрольная сумма
A-MPDU

Все похоже, но еще есть delimeter'ы

Состав сабфрейма:

  • delimeter
    • резерв
    • длина
    • контрольная сумма (для поля length)
    • подпись (ascii код буквы “N” (78))
      • Нужно, чтобы восстановиться при нарушении контрольной суммы length
  • MPDU (кадр канального уровня со всеми заголовками)
  • Padding (чтобы выравнять длины фреймов для железок)

MPDU длиннее чем MSDU

Зато есть контрольная сумма для каждого кадра.

Btw, использование A-MPDU, предполагает наличие block ack.

ampdu_and_amsdu

OFDMA

Посылаем одну преамбулу физического уровня

Дальнейшая передача продолжается независимо в каждом из resource юнитов (поднесущие). Таким образом преамбула передается один раз для всех уровней. Таким образом увеличиваем SNR, идеально для uplink-а.

Передающая станция сообщает получателю ресурс юнит, который нужно слушать.

Блочное подтверждение

Устройства договариваются, что подтверждать будут пачками

Появилось в 802.11e. (будет в тесте)

Вопрос: В каком стандарте появился BlockAck

Ответ: Тогда, когда появился txop (видимо в 802.11e)

Посылаем много пакетов.

Потом block-ack request, указывая стартовый номер пакета

В ответ получаем битовую маску.

Нужно договориться (AddBARequest, AddBAResponse, DelBA — Management кадры, подтверждаются аком):

  • Размер окна (в штуках пакетов), ограничивает память на сохранение пакетов
  • Таймаут (если не использовали block-ack в течение этого времени, то забываем о соглашениях)
  • Начальный seqNumber

Пакеты нумеруются по mod 4096.

Реальное окно не более чем 64 пакета. (зафиксировано в стандарте).

Останавливаем передачу не по retry limit, а по packet lifetime, иначе сложно отслеживать.

Неясно, что за packet lifetime

Размер окна также отслеживается.

  • Если получили старый SN, то пакет отбрасывается
  • если в пределах окна, то принимаем
  • если слишком новый, то сдвигаем окно, а те пакеты, которые выпали мы передаем наверх (тк все равно все остальные мы отбросим).
  • Иначе, пакеты не передаются наверх, пока не будут закрыты все дырки.
  • Когда приходит Block ACK Request, также сдвигаем окно до указанного в запросе номера.

Есть два режима отправки блочных подтверждений (Immediate, Delayed).

Immediate

Сейчас все стараются использовать его.

Block Ack Response следует за Block Ack Request через SIFS

Delayed

BlockAckRequestAckChannelAccessBlockAckResponseBlock Ack Request \to Ack \to \dots ChannelAccess \dots \to Block Ack Response

Кроме Immediate и delayed существует:

  • Постоянное отслеживание состояний
  • Временное (храним не всю битовую маску, отвечаем наугад, хз зачем)

BTW

Sequence control состоит из:

  • Sequence number
  • Fragment number (для фрагментации)

results matching ""

    No results matching ""