Быстрый ускоренный курс по 802.11:
802.11 по сути является гигантской системой таймеров. Наиболее распространенные реализации стандарта 802.11 используют функцию распределенной координации DCF. DCF позволяет узлам входить и выходить из диапазона радиоканала, используемого для 802.11, и распределенным образом координировать, кто должен отправлять и получать данные (игнорируя проблемы скрытых и открытых узлов для этого обсуждения). Прежде чем какой-либо узел сможет начать отправку данных по каналу, все они должны подождать период DIFS, в течение которого канал будет определен как незанятый, если он простаивает в течение периода DIFS, то первый узел, который захватывает канал, начинает передачу. В стандарте 802.11, т.е. реализациях не-802.11e и не 802.11n, каждый передаваемый пакет данных должен быть подтвержден физическим уровнем PHY, пакетом подтверждения, независимо от используемого протокола верхнего уровня. После того, как пакет данных отправлен, период времени SIFS должен истечь, после того, как истечет SIFS, могут быть отправлены управляющие кадры, предназначенные для узла, который «взял» управление каналом, в этом случае и передается кадр подтверждения. SIFS позволяет узлу, отправившему пакет данных, переключаться из режима передачи в режим приема. Если пакет действительно потерян и ACK не получен после истечения времени ожидания SIFS / ACK, то вызывается экспоненциальное откат. Экспоненциальное откат, конфликтное окно a.k.a (CW), начинается со значения CWmin, в некоторых реализациях linux это 15 интервалов времени, где время интервала варьируется в зависимости от используемого протокола 802.11. Значение CW затем выбирается от 1 до любого верхнего предела, который был рассчитан для CW. Если текущий пакет был потерян, то CW увеличивается с 15 до 30, а затем выбирается случайное значение между 1 и 30. Каждый раз, когда происходит последовательная потеря, CW удваивается до 1023, и в этот момент он достигает предел. Как только пакет принят успешно, CW сбрасывается обратно в CWmin.
В отношении 802.11n / 802.11e:
Каждый пакет данных все еще должен быть подтвержден, но при использовании 802.11e (реализованного в 802.11n) несколько пакетов данных могут быть объединены вместе двумя различными способами A-MSDU или A-MPDU. A-MSDU - это гигантский кадр, имеющий одну контрольную сумму для всего отправляемого агрегированного пакета, в нем множество подкадров, содержащих каждый из кадров данных, которые необходимо было отправить. Если в кадре A-MSDU есть какая-либо ошибка и ее необходимо передать повторно, то каждый субкадр необходимо повторно отправить. Однако при использовании A-MPDU каждый подкадр имеет небольшой заголовок и контрольную сумму, которые позволяют любому подкадру, в котором есть ошибка, быть повторно переданными им самим / в другом агрегированном кадре в следующий раз, когда передающие узлы получают канал , В этих схемах отправки агрегированных пакетов существует понятие блочного подтверждения. Блок-подтверждение содержит битовую карту кадров из начального порядкового номера, которые были только что отправлены в агрегированном пакете и получены правильно или неправильно. Использование отправки агрегированного кадра значительно улучшает пропускную способность, поскольку отправляющим узлом может быть отправлено больше данных на одно обнаружение канала, что также позволяет отправлять неупорядоченные пакеты. Однако отправка пакетов вне очереди значительно усложняет уровень MAC 802.11.