RTS/CTS
RTS/CTS (Request to Send / Clear to Send — запрос на отправку / разрешение на отправку) — это механизм управления потоком данных, используемый в последовательных интерфейсах передачи данных, в частности в стандарте RS-232 и в беспроводных сетях стандарта IEEE 802.11 (Wi-Fi). Основная функция механизма — предотвращение коллизий и потери данных при одновременной передаче несколькими устройствами, а также согласование скорости передачи между отправителем и получателем.
Принцип работы
Механизм RTS/CTS основан на процедуре «рукопожатия» (handshake), которая предшествует передаче полезных данных. Процесс состоит из двух последовательных шагов:
- Запрос на отправку (RTS): Устройство-отправитель, желающее начать передачу, отправляет короткий кадр RTS адресату. Этот кадр содержит информацию о длине будущего пакета данных и времени, на которое отправитель планирует занять канал.
- Разрешение на отправку (CTS): Устройство-получатель, если оно готово к приёму данных и канал свободен, отвечает коротким кадром CTS. Этот кадр подтверждает готовность и содержит то же значение времени, что и RTS, позволяя другим устройствам в сети узнать о занятости канала на этот период.
После успешного обмена RTS/CTS отправитель начинает передачу данных. Получатель, приняв данные, отправляет кадр подтверждения (ACK). Если отправитель не получает CTS в течение определённого тайм-аута, он повторяет попытку отправки RTS после случайной задержки.
Применение в проводных интерфейсах (RS-232)
В стандарте RS-232, который исторически использовался для подключения модемов и другого периферийного оборудования, сигналы RTS и CTS являются частью аппаратного управления потоком (hardware flow control). Они реализованы в виде отдельных электрических сигналов на контактах разъёма DB-9 или DB-25.
- RTS (контакт 7 на DB-9, контакт 4 на DB-25): Сигнал от терминала (DTE) к модему (DCE). Терминал устанавливает этот сигнал в активное состояние, когда готов отправлять данные.
- CTS (контакт 8 на DB-9, контакт 5 на DB-25): Сигнал от модема (DCE) к терминалу (DTE). Модем устанавливает этот сигнал в активное состояние, когда готов принимать данные от терминала.
В этой конфигурации механизм работает как двустороннее согласование: терминал не начинает передачу, пока модем не установит CTS, а модем может сбросить CTS, если его буфер переполнен. Это предотвращает потерю данных при разнице в скорости обработки между устройствами. В современных компьютерах данный метод используется редко, уступая место USB и другим интерфейсам.
Применение в беспроводных сетях (IEEE 802.11)
В беспроводных локальных сетях (Wi-Fi) механизм RTS/CTS является опциональным методом предотвращения коллизий, решающим проблему «скрытого узла» (hidden node problem) и «открытого узла» (exposed node problem).
Проблема скрытого узла
Эта проблема возникает, когда два устройства (например, ноутбук и смартфон) находятся вне зоны прямой радиовидимости друг друга, но оба находятся в зоне действия одной точки доступа (AP). Если оба устройства попытаются одновременно отправить данные точке доступа, возникнет коллизия, и данные будут потеряны. Механизм RTS/CTS решает эту проблему: отправитель (ноутбук) посылает RTS точке доступа. Точка доступа отвечает CTS, который слышат все устройства в её зоне действия, включая скрытый смартфон. Услышав CTS, смартфон откладывает свою передачу на время, указанное в кадре, предотвращая коллизию.
Проблема открытого узла
Эта проблема возникает, когда два устройства находятся в зоне видимости друг друга, но передают данные разным получателям. В этом случае механизм RTS/CTS может излишне блокировать передачу, снижая пропускную способность сети. Поэтому его применение в таких ситуациях неэффективно.
Порог RTS
В настройках Wi-Fi-оборудования обычно задаётся параметр RTS Threshold (порог RTS). Этот порог определяет минимальный размер пакета данных, для которого будет использоваться механизм RTS/CTS. Для пакетов меньшего размера механизм не применяется, что снижает накладные расходы. Типичные значения порога — от 0 до 2347 байт. Значение 0 означает, что RTS/CTS используется для всех пакетов, а значение 2347 (максимальное) — что механизм отключён. Оптимальное значение зависит от конкретных условий сети, количества устройств и уровня помех.
Преимущества и недостатки
Преимущества
- Решение проблемы скрытого узла: Обеспечивает надёжную передачу данных в сетях с большим количеством устройств, которые могут не слышать друг друга.
- Снижение коллизий: Уменьшает вероятность коллизий, особенно при передаче больших пакетов данных.
- Гарантированная доставка: В проводных интерфейсах предотвращает потерю данных из-за переполнения буфера получателя.
Недостатки
- Увеличение накладных расходов: Обмен кадрами RTS и CTS перед каждой передачей данных создаёт дополнительную нагрузку на канал, что снижает общую пропускную способность сети, особенно при большом количестве мелких пакетов.
- Задержка: Процедура «рукопожатия» увеличивает время до начала передачи данных, что может быть критично для приложений реального времени (например, VoIP или онлайн-игр).
- Сложность настройки: Неправильный выбор порога RTS может привести к ухудшению производительности сети.
- Уязвимость к атакам: В беспроводных сетях злоумышленник может отправлять ложные кадры CTS, блокируя передачу данных легитимными устройствами (атака типа «ложное CTS»).
Альтернативы
- CSMA/CA (Carrier Sense Multiple Access with Collision Avoidance): Основной метод доступа к среде в Wi-Fi, который использует прослушивание канала перед передачей. RTS/CTS является его дополнительным механизмом.
- Аппаратное управление потоком (RTS/CTS) в RS-232: Альтернативой является программное управление потоком (XON/XOFF), которое использует специальные символы для приостановки и возобновления передачи, но менее надёжно.
- DCF (Distributed Coordination Function): Базовый механизм доступа к среде в IEEE 802.11, который не использует RTS/CTS, а полагается только на CSMA/CA и случайные задержки.
Интересные факты
- Механизм RTS/CTS был впервые описан в стандарте IEEE 802.11, принятом в 1997 году.
- В современных высокоскоростных стандартах Wi-Fi (802.11n, 802.11ac, 802.11ax) использование RTS/CTS часто не рекомендуется из-за высоких накладных расходов, однако может быть полезно в плотных сетях с большим количеством клиентов.
- В некоторых реализациях протокола TCP/IP на транспортном уровне используется аналогичный механизм управления потоком, но он работает на уровне программного обеспечения, а не на физическом уровне.
Источники
- IEEE Standard 802.11-2020 (Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications)
- Стандарт EIA/TIA-232-F (Interface Between Data Terminal Equipment and Data Circuit-Terminating Equipment Employing Serial Binary Data Interchange)
- Таненбаум Э., Уэзеролл Д. «Компьютерные сети» (5-е издание)
- Олифер В. Г., Олифер Н. А. «Компьютерные сети. Принципы, технологии, протоколы»
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →