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

Механизм повторных передач

Механизм повторных передач — это метод обеспечения надёжности передачи данных в сетях и системах связи, основанный на повторной отправке пакетов или кадров информации в случае обнаружения ошибок или потерь. Данный механизм является ключевым компонентом протоколов, реализующих автоматический запрос на повторную передачу (ARQ, Automatic Repeat reQuest), и используется для компенсации искажений, возникающих из-за помех, коллизий, перегрузок или нестабильности каналов связи. Основная цель механизма — гарантировать доставку данных без потерь и в правильном порядке, что критически важно для приложений, требующих высокой целостности информации (например, передача файлов, электронная почта, веб-серфинг).

История

Идея повторной передачи данных возникла в середине XX века с развитием первых цифровых систем связи. В 1940-х годах Клод Шеннон и другие исследователи заложили теоретические основы помехоустойчивого кодирования, однако практическая реализация механизмов повторной передачи стала возможной только с появлением достаточно мощных вычислительных устройств.

Первые коммерческие системы, использующие ARQ, появились в 1960-х годах в рамках спутниковой и телефонной связи. Одним из ранних примеров является протокол BISYNC (Binary Synchronous Communication), разработанный компанией IBM в 1967 году. В нём применялся механизм остановки и ожидания (Stop-and-Wait ARQ), при котором отправитель ждал подтверждения от получателя перед отправкой следующего пакета.

С развитием компьютерных сетей в 1970-1980-х годах были разработаны более эффективные протоколы, такие как X.25 и TCP/IP. В протоколе TCP (Transmission Control Protocol), стандартизированном в 1981 году, механизм повторных передач стал одним из центральных элементов, обеспечивающих надёжную доставку данных в сети Интернет. Впоследствии алгоритмы были усовершенствованы: появились методы скользящего окна, выборочного повтора и адаптивного тайм-аута.

Классификация

Механизмы повторных передач классифицируются по нескольким признакам:

По типу протокола ARQ

  1. Остановка и ожидание (Stop-and-Wait ARQ). Отправитель передаёт один пакет и ждёт подтверждения (ACK) от получателя. Если подтверждение не получено в течение тайм-аута, пакет отправляется заново. Самый простой, но неэффективный метод — канал простаивает во время ожидания.
  2. Возврат на N (Go-Back-N ARQ). Отправитель может передавать несколько пакетов подряд (окно размером N) без ожидания подтверждения на каждый. При обнаружении ошибки получатель отбрасывает все последующие пакеты, а отправитель повторно передаёт весь поток, начиная с потерянного. Требует меньшего объёма буферов на стороне получателя.
  3. Выборочный повтор (Selective Repeat ARQ). Отправитель передаёт пакеты непрерывно, а получатель подтверждает каждый принятый пакет. При потере или ошибке повторно передаётся только конкретный пакет, а не вся последовательность. Наиболее эффективен, но требует сложной буферизации и управления на обеих сторонах.

По способу обнаружения ошибок

  • С использованием контрольных сумм (CRC — Cyclic Redundancy Check, контрольная сумма). Получатель проверяет целостность пакета по вычисленной контрольной сумме; при несовпадении отправляется запрос на повторную передачу.
  • С использованием кодов коррекции ошибок (FEC — Forward Error Correction). В некоторых гибридных схемах FEC исправляет часть ошибок, а ARQ используется для оставшихся неисправленных.

По типу подтверждения

  • Положительное подтверждение (ACK) — получатель уведомляет отправителя об успешном приёме.
  • Отрицательное подтверждение (NAK) — получатель явно указывает, какой пакет был повреждён или потерян.
  • Тайм-аут — если подтверждение не пришло в заданное время, отправитель считает пакет потерянным и повторяет передачу.

Устройство и принцип работы

Механизм повторных передач реализуется на уровне протоколов передачи данных (обычно транспортный или канальный уровень модели OSI). Основные компоненты:

  • Буфер отправки — хранит копии отправленных пакетов до получения подтверждения.
  • Таймеры — отсчитывают время ожидания подтверждения. При истечении тайм-аута запускается повторная передача.
  • Счётчики повторов — ограничивают количество попыток, чтобы избежать бесконечного цикла при неисправности канала.
  • Алгоритм управления окном — регулирует количество неподтверждённых пакетов в канале (размер окна).

Процесс работы в общем виде:

  1. Отправитель разбивает данные на пакеты фиксированного или переменного размера, добавляя заголовок с порядковым номером и контрольной суммой.
  2. Пакет передаётся по каналу связи.
  3. Получатель проверяет контрольную сумму. Если ошибок нет, он отправляет ACK с номером успешно принятого пакета. Если ошибка обнаружена, может быть отправлен NAK.
  4. Отправитель после получения ACK удаляет пакет из буфера. Если получен NAK или истёк тайм-аут, пакет повторно передаётся.
  5. При многократных сбоях (например, превышение лимита повторов) протокол может разорвать соединение или переключиться на альтернативный маршрут.

Применение

Механизмы повторных передач широко используются в различных технологиях и протоколах:

  • Протокол TCP — основа надёжной передачи данных в Интернете. Использует адаптивный тайм-аут (RTO — Retransmission Timeout) и алгоритмы быстрой повторной передачи (fast retransmit) при получении трёх дублированных ACK.
  • Протоколы канального уровняEthernet (в случае коллизий в полудуплексном режиме), Wi-Fi (IEEE 802.11) — повторная передача при ошибках CRC.
  • Спутниковая связь — из-за больших задержек применяются протоколы с выборочным повтором и большими окнами.
  • Сотовая связь (3G, 4G LTE, 5G) — на физическом и канальном уровнях используются гибридные схемы ARQ с коррекцией ошибок.
  • Файловые протоколыFTP, HTTP (при загрузке файлов), BitTorrent — используют TCP или собственные механизмы ARQ.

Ограничения и критика

Несмотря на эффективность, механизмы повторных передач имеют недостатки:

  • Задержка — каждая повторная передача увеличивает время доставки данных. Для приложений реального времени (голосовая связь, видеоконференции, онлайн-игры) это критично, поэтому часто используются протоколы без гарантий доставки (UDP) или с минимальными повторами.
  • Избыточность трафика — повторные передачи загружают канал связи, что может усугубить перегрузку в сети.
  • Сложность реализации — особенно для протоколов с выборочным повтором и большими окнами, требующих значительных вычислительных ресурсов и памяти.
  • Эффективность при высоких потерях — при уровне потерь более 10-20% пропускная способность резко падает, что делает ARQ непригодным для сильно зашумлённых каналов без дополнительных методов коррекции.

Интересные факты

  • В протоколе TCP алгоритм быстрой повторной передачи был предложен в 1988 году Ваном Джейкобсоном и является одним из ключевых элементов предотвращения перегрузки сети.
  • В системах спутниковой связи задержка распространения сигнала может достигать 250-600 мс, поэтому там применяются протоколы с окнами размером до нескольких тысяч пакетов.
  • В современных сетях 5G используется гибридная схема, где ARQ сочетается с помехоустойчивым кодированием на физическом уровне, что позволяет снизить количество повторных передач на 30-50%.

Источники

  • Таненбаум Э., Уэзеролл Д. Компьютерные сети. 5-е изд. — СПб.: Питер, 2012.
  • Олифер В.Г., Олифер Н.А. Компьютерные сети. Принципы, технологии, протоколы. 4-е изд. — СПб.: Питер, 2010.
  • RFC 793 — Transmission Control Protocol (TCP).
  • Шеннон К. Работы по теории информации и кибернетике. — М.: ИЛ, 1963.
  • IEEE 802.11-2020 — Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →