Skip to content

3.2 Уровень канала передачи данных. Протокол с остановками и ожиданиями. Протокол с N-возвращениями. Протокол с выборочным повторением. Протокол ВУК. Структура кадра ВУК.

1. Уровень канала передачи данных (Data Link Layer)

Место в модели OSI: Второй уровень (L2).

Основная задача: Обеспечение надежной передачи данных между двумя соседними узлами (узлами в одной физической сети) через физическую среду (которая может быть ненадежной). Уровень канала принимает пакеты от сетевого уровня (L3) и инкапсулирует их в кадры (frames), добавляя управляющую информацию.

Ключевые функции:

  1. Фрейминг (Кадрирование): Разбиение потока бит на логические блоки (кадры) с выделением начала и конца.
  2. Управление доступом к среде (MAC): Если среда общая (например, Ethernet-хаб), регулирует, кто и когда может передавать.
  3. Обнаружение и коррекция ошибок: Добавление контрольных сумм (CRC) для проверки целостности.
  4. Управление потоком (Flow Control): Предотвращение переполнения буфера приемника.
  5. Управление соединением: Установление и разрыв логического соединения (в режимах с подтверждением).

2. Протоколы с исправлением ошибок на основе повторной передачи (ARQ)

Физический канал всегда вносит шум. Для борьбы с этим используются протоколы ARQ (Automatic Repeat reQuest — автоматический запрос повторной передачи). Все они базируются на трех правилах:

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

Рассмотрим три основных типа, различающихся по эффективности (использованию пропускной способности) и сложности.


2.1. Протокол с остановками и ожиданиями (Stop-and-Wait ARQ)

Принцип работы: Это самый простой протокол. Отправитель передает один кадр и останавливается, ожидая подтверждения (ACK) от получателя. Только получив ACK, он отправляет следующий кадр.

Проблема дублей: Чтобы отличить новый кадр от повторного (если ACK задержался или потерялся), используются номера кадров (Sequence Numbers) — достаточно 1 бита (0 и 1), которые чередуются.

Достоинства:

  • Максимальная простота реализации.
  • Минимальный объем буферной памяти (хранить нужно только 1 кадр).

Недостатки:

  • Низкая эффективность при больших задержках (High Latency) и высокой скорости (High Bandwidth). Канал простаивает большую часть времени. Это явление называется проблемой “длинного трубопровода” (Bandwidth-Delay Product).

2.2. Протокол с N-возвращениями (Go-Back-N ARQ)

Принцип работы: Отправитель может передавать N кадров подряд (окно отправки) без ожидания подтверждения на каждый, поддерживая конвейер (pipelining).

  • Размер окна отправления = ( N ).
  • Получатель имеет буфер всего на 1 кадр. Он принимает кадры строго по порядку.

Обработка ошибок:

  1. Если пришел кадр с ошибкой или не тот номер, который ожидался, получатель молчит (не отправляет ACK) или отправляет NAK для последнего корректно принятого кадра.
  2. У отправителя срабатывает таймер. Он останавливается и возвращается назад к последнему неподтвержденному кадру и повторно отправляет все кадры, начиная с этого номера (весь хвост окна), даже если они уже отправлялись ранее.

Пример: Отправлено 0,1,2,3,4. Потерялся кадр №2. Получатель отбрасывает №3 и №4 (так как ждал №2). Отправитель таймаутит и шлет заново 2,3,4.

Достоинства:

  • Лучше использует канал, чем Stop-and-Wait.

Недостатки:

  • Ужасная эффективность при высоком уровне ошибок (BER — Bit Error Rate), так как приходится пересылать много лишних (уже принятых) кадров.
  • Требует буфер у отправителя для хранения N кадров.

2.3. Протокол с выборочным повторением (Selective Repeat ARQ)

Принцип работы: Это модернизация Go-Back-N. Отправитель также передает окно из N кадров. Но главное отличие — приемник имеет буфер на N кадров и может принимать кадры не по порядку.

Обработка ошибок:

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

Важное ограничение: Размер окна ( N ) не может быть больше половины диапазона номеров последовательности (( N \le \frac{2^m}{2} )), иначе возникнет путаница между старыми и новыми кадрами при наложении номеров.

Достоинства:

  • Максимальная эффективность при высоких ошибках.
  • Оптимальное использование пропускной способности.

Недостатки:

  • Сложность реализации (нужна сортировка, управление окнами приема и отправки).
  • Больший расход памяти (буфер приемника).

3. Протокол ВУК (High-Level Data Link Control — HDLC)

HDLC (High-Level Data Link Control) — это базовый стандартный протокол уровня канала, разработанный ISO. Он является “прародителем” многих современных протоколов (в частности, PPP и Ethernet-инкапсуляции). В русскоязычной литературе часто используется аббревиатура ВУК (Высокоуровневый Управляющий Каналом).

Ключевая особенность: HDLC — это бит-ориентированный протокол. Это значит, что управление осуществляется не байтами (символами), а отдельными битами. Для указания границ кадра используется специальный флаг.


3.1. Структура кадра ВУК (HDLC Frame)

Кадр HDLC состоит из 6 полей (все поля, кроме данных, имеют фиксированную длину):

ПолеРазмер (бит)Назначение
Флаг (Flag)8 (01111110)Отмечает начало и конец кадра. Служит для синхронизации.
Адрес (Address)8 (или больше)Указывает адрес получателя (вторичной станции). В расширенных режимах может быть широковещательным.
Управление (Control)8 или 16Самый важный байт. Определяет тип кадра (команда/ответ) и механизм управления (нумерация кадров, запросы).
Данные (Information)Переменная (до 512 б)Непосредственно полезная нагрузка (пакеты вышестоящих уровней). Может отсутствовать.
Контрольная сумма (FCS)16 или 32CRC (Cyclic Redundancy Check) для обнаружения ошибок во всех полях, кроме флага.
Флаг (Flag)8 (01111110)Закрывающий флаг.

3.2. Детальный разбор поля “Управление” (Control Field)

Именно по этому полю определяется, какой тип ARQ используется. Битовая структура разделяет кадры на 3 типа:

1. Информационные кадры (I-frames) — Передача данных

  • Бит 0 = 0.
  • Содержат поле N(S) — номер отправляемого кадра (Sequence Number).
  • Содержат поле N(R) — номер ожидаемого кадра от получателя (Piggybacking — совмещение подтверждения с данными).
  • Используются для реализации Выборочного повторения или Go-Back-N (зависит от настройки).

2. Управляющие кадры (S-frames) — Управление потоком и ошибками

  • Биты 0,1 = 1,0.
  • Нет поля данных (только заголовок).
  • Содержат подтип (код) в битах 2 и 3:
    • 00 – RR (Receiver Ready): Подтверждение, приемник готов, передавайте дальше (положительный ACK).
    • 01 – RNR (Receiver Not Ready): Подтверждение, но приемник занят (пауза, остановите передачу).
    • 10 – REJ (Reject): Отрицательное подтверждение (NAK). Требование повторной отправки всех кадров, начиная с N(R) — используется для Go-Back-N.
    • 11 – SREJ (Selective Reject): Выборочный отказ. Требование повторной отправки только одного кадра с номером N(R) — используется для Selective Repeat.

3. Ненумерованные кадры (U-frames) — Управление соединением

  • Биты 0,1 = 1,1.
  • Используются для установления и разрыва логического соединения (режимы SABM, DISC), а также для аварийных остановок (FRMR — Frame Reject). Не содержат номеров последовательности.

3.3. Механизм “Бит-стаффинг” (Bit Stuffing)

Так как флаг — это последовательность 01111110 (шесть единиц подряд), возникает риск, что внутри поля данных встретится такая же комбинация, и приемник ошибется, думая, что кадр закончился.

Решение: Отправитель (передатчик) следит за потоком бит. Если он видит пять единиц подряд (11111) в данных, он автоматически вставляет 0 (ноль) после них. Приемник, наоборот, видя пять единиц, проверяет следующий бит:

  • Если следующий бит = 0, он его удаляет (это служебный бит).
  • Если следующий бит = 1 (т.е. получилось 1111110) — это флаг конца кадра.

3.4. Режимы работы ВУК (HDLC Modes)

Протокол определяет три типа станций и три режима взаимодействия:

  1. NRM (Normal Response Mode): Асимметричный режим. Первичная станция (Master) управляет вторичной (Slave). Вторичная может передавать только по разрешению первичной. (Использовался в мейнфреймах).
  2. ARM (Asynchronous Response Mode): Асимметричный, но вторичная станция может начинать передачу без явного разрешения (но инициатива все равно за первичной).
  3. ABM (Asynchronous Balanced Mode): Самый популярный. Симметричный режим. Обе станции равноправны (комбинированные) и могут инициировать передачу в любой момент. Именно этот режим используется в протоколе PPP и в качестве основы для канального уровня в современных сетях.

Итоговое резюме

  • Stop-and-Wait — работает, где задержки минимальны (или ресурсы критичны), но неэффективен для спутниковой связи и Gigabit-сетей.
  • Go-Back-N — компромисс между простотой и скоростью, но “паникует” при частых ошибках.
  • Selective Repeat — “король” производительности, требует сложной логики и больших буферов.
  • ВУК (HDLC) — реализует все три стратегии через поле Control, решает проблему уникальности данных через бит-стаффинг и лежит в основе многих современных WAN-технологий.