Открыть сервис

RTS/CTS

RTS/CTS (Request to Send / Clear to Send — запрос на отправку / разрешение на отправку) — это механизм управления потоком данных, используемый в последовательных интерфейсах передачи данных, в частности в стандарте RS-232 и в беспроводных сетях стандарта IEEE 802.11 (Wi-Fi). Основная функция механизма — предотвращение коллизий и потери данных при одновременной передаче несколькими устройствами, а также согласование скорости передачи между отправителем и получателем.

Принцип работы

Механизм RTS/CTS основан на процедуре «рукопожатия» (handshake), которая предшествует передаче полезных данных. Процесс состоит из двух последовательных шагов:

  1. Запрос на отправку (RTS): Устройство-отправитель, желающее начать передачу, отправляет короткий кадр RTS адресату. Этот кадр содержит информацию о длине будущего пакета данных и времени, на которое отправитель планирует занять канал.
  2. Разрешение на отправку (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 →