ARQ с остановкой и ожиданием

Send and Wait

Основная идея протокола: Каждый пакет должен быть безошибочно принят до начала передачи следующего пакета.

1 пакет передается из А в В в первом кадре . Передающий модуль ожидает . Если кадр правильно принят в точке В , то в точку А посылается подтверждение ack (Acknolegment - подтверждение приема). Если кадр принят с ошибками, то посылается отрицательное подтверждение nack (Negative Acnolegment). ack и nack также защищается CRC .

Если подтверждение ack принято без ошибок, то в новом кадре передается новый пакет.

Во всех остальных случаях в новом кадре повторяется передача старого пакета ( при ошибках в передаче кадра, ack, nack).

Если потеряны кадр, ack или nack, то A делает тайм-аут и передает старый пакет.

Для устранения этой проблемы можно добавить в кадр номер пакета.

Для решения этих проблем вместо ack иnack возвращается номер следующего ожидаемого пакета. Запросы можно также добавлять в заголовок кадров, идущих из B в A.

Алгоритм передачи с остановкой и ожиданием, включающий посылку порядкового номера ПН с каждым пакетом и номера запроса НЗ по обратной связи, работает безошибочно.

Большие числа для ПН и НЗ необязательны, достаточно использовать 0 и 1.
Состояние (A,B) (0,0) - передается пакет 0, ожидается пакет 0.
Если пакет 0 принят, то состояние (0,1), затем (1,1), (1,0), (0,0).
Существует фиксированная последовательность совместных состояний (0,0), (0,1), (1,1), (1,0), (0,0) .

Основной недостаток этого алгоритма - во время ожидания подтверждения нельзя производить никаких действий.

Существуют алгоритмы более высокой эффективности.

ARPANET ARQ (с временными подканалами )

Используется 8 виртуальных каналов с остановкой и ожиданием.

Занятые виртуальные каналы уплотняются в битовом тракте, т.е. кадры различных виртуальных каналов посылаются один за другим по линии.

Если все 8 каналов заняты, то пришедший пакет ждет за пределами модуля УЛПД.

Порядок посылки кадров - по кругу. Если очередь некоторого ВК наступает до принятия подтверждения для него, то пакет посылается снова.После подтверждения ВК может принять новый пакет.

Информация о подтверждении добавляется в кадры, идущие в обратном направлении, и повторяется так часто, что почти исключает повторные передачи из-за ошибок подтверждения.

Обычно для каждого кадра с ошибкой требуется только одна повторная передача.

Этот алгоритм не поддерживает упорядоченность пакетов и используется для очень плохих линий связи.

Пример: Функционирование уплотненного канала при уплотнении двух ВК