Подуровень DCF использует простой алгоритм
Рисунок 5.5 - Протокольная архитектура IEEE 802.11
Распределенная координационная функция
Подуровень DCF использует простой алгоритм CSMA. Если станция имеет готовый к передаче кадр MAC, она прослушивает среду. Если среда свободна, станция может передавать; в противном случае стация должна подождать, пока не завершится текущая передача, а лишь затем передавать. DCF не содержит функций обнаружения конфликтов (например, CSMA/CD), поскольку обнаружение конфликтов в беспроводной среде непрактично. Динамический диапазон сигналов в среде очень велик, так что передающая станция не может эффективно отличить поступающий слабый сигнал от шума и результатов собственной передачи.
Для обеспечения бесперебойной и ровной работы описанного алгоритма подуровень DCF включает набор задержек, которые эквивалентны схеме приоритетов. Рассмотрим вначале отдельную задержку, называемую межкадровым промежутком (interframe space — IFS). На самом деле существует три различных значения IFS, но действие алгоритма более понятно, если вначале проигнорировать эти детали. Использование IFS следующим образом меняет правила доступа алгоритма CSMA (Рисунок 5.6).
1. Станция, имеющая готовые к передаче кадры, прослушивает среду. Если среда свободна, станция ожидает, будет ли среда свободна в течение времени IFS. Если да, то станция может передавать немедленно.
2. Если среда занята (либо была занята на начало прослушивания, либо стала занятой за время IFS), станция откладывает передачу и продолжает наблюдать за средой, пока не будет завершена текущая передача.
3. Как только будет завершена текущая передача, станция выдерживает еще один промежуток времени IFS. Если в течение этого времени среда остается свободной, станция освобождает среду и снова прослушивает ее. Если среда по-прежнему остается свободной, станция может начинать передачу. Если в течение времени отсрочки среда занимается, таймер отсрочки останавливается и запускается после освобождения среды.
Для обеспечения устойчивости схемы используется метод двоичной экспоненциальной отсрочки. Станция постоянно пытается начать передачу, каждый раз сталкиваясь с конфликтом, но после каждого конфликта среднее время случайной задержки удваивается. Двоичная экспоненциальная отсрочка позволяет справиться со значительной нагрузкой. Постоянные попытки передачи, заканчивающиеся конфликтами, приводят к увеличению времени ожидания, что, в свою очередь, сглаживает нагрузку. Без подобной отсрочки может произойти следующее: две или более станции одновременно пытаются начать передачу, что приводит к конфликту, станции немедленно пытаются передать данные повторно, возникает новый конфликт и т.д.