Введение

RTS/CTS (request to send / clear to send) — это необязательный механизм, используемый беспроводным сетевым протоколом 802.11 для снижения вероятности коллизий кадров, возникающих из-за проблемы скрытых узлов. Изначально протокол также решал проблему с открытыми узлами, но современный RTS/CTS включает подтверждения (ACK) и не устраняет проблему с открытыми узлами.

Формат рамы

Заголовки RTS, CTS и ACK содержат поле управления кадром (два байта флагов метаданных), поле длительности, поле для MAC-адреса получателя и контрольную последовательность кадров. Кроме того, RTS-кадр содержит MAC-адрес передатчика. Этот протокол был разработан, исходя из предположения, что все узлы имеют одинаковый радиус действия, и не решает проблему скрытого терминала. RTS/CTS-кадры могут вызывать новую проблему, называемую проблемой "открытого терминала", при которой беспроводной узел, находящийся поблизости, но подключенный к другой точке доступа, перехватывает обмен данными и получает сигнал об отказе и прекращении передачи на время, указанное в RTS. RTS/CTS – это дополнительный метод реализации виртуального контроля занятости среды в протоколе множественного доступа с предотвращением коллизий (CSMA/CA). По умолчанию 802.11 полагается только на физический контроль занятости среды, который, как известно, подвержен проблеме скрытого узла. Пороговое значение размера пакета для RTS/CTS составляет от 0 до 2347 октетов. Обычно отправка RTS/CTS-кадров не происходит, если размер пакета не превышает этот порог. Если размер пакета, который узел хочет передать, больше порога, запускается обмен RTS/CTS. В противном случае кадр данных отправляется немедленно. Механизм IEEE 802.11 RTS/CTS может помочь решить проблему "открытого узла", но только если узлы синхронизированы, а размеры пакетов и скорости передачи данных одинаковы для обоих передающих узлов. Когда узел слышит RTS от соседнего узла, но не соответствующий CTS, он может сделать вывод, что является "открытым узлом" и ему разрешено передавать другим соседним узлам. Если узлы не синхронизированы (или если размеры пакетов различны или скорости передачи данных отличаются), может возникнуть проблема, когда "открытый узел" не услышит CTS или ACK во время передачи данных его соседом.