Остановка и ожидание ARQ - Stop-and-wait ARQ

Остановка и ожидание ARQ, также называемый чередующийся битовый протокол, это метод в телекоммуникации для отправки информации между двумя подключенными устройствами. Это гарантирует, что информация не будет потеряна из-за отброшенных пакетов и что пакеты будут получены в правильном порядке. Это самый простой автоматический повторный запрос (ARQ) механизм. Отправитель ARQ с остановкой и ожиданием отправляет один Рамка вовремя; это частный случай общего протокол скользящего окна с размерами окон передачи и приема, равными единице в обоих случаях. После отправки каждого кадра отправитель не отправляет никаких дополнительных кадров, пока не получит подтверждение (ACK) сигнал. После получения действительного кадра получатель отправляет ACK. Если ACK не достигает отправителя до определенного времени, известного как тайм-аут, отправитель снова отправляет тот же кадр. Обратный отсчет времени ожидания сбрасывается после каждой передачи кадра. Вышеупомянутое поведение является базовым примером функции Stop-and-Wait. Тем не менее, реальные реализации различаются для решения определенных проблем проектирования.

Обычно передатчик добавляет проверка избыточности номер до конца каждого кадра. Приемник использует номер проверки избыточности для проверки возможных повреждений. Если получатель видит, что кадр в порядке, он отправляет ACK. Если получатель видит, что кадр поврежден, получатель отбрасывает его и не отправляет ACK, делая вид, что кадр был полностью потерян, а не просто поврежден.

Одна из проблем - это когда ACK, отправленный получателем, поврежден или утерян. В этом случае отправитель не получает ACK, истекает время ожидания и снова отправляет кадр. Теперь у получателя есть две копии одного и того же кадра, и он не знает, является ли второй повторяющимся кадром или следующим кадром последовательности, несущим идентичные ДАННЫЕ.

Другая проблема - когда среда передачи имеет такую ​​длинную задержка что тайм-аут отправителя истекает до того, как кадр достигнет получателя. В этом случае отправитель повторно отправляет тот же пакет. В конечном итоге получатель получает две копии одного и того же кадра и отправляет ACK для каждой из них. Отправитель, ожидающий одного ACK, получает два ACK, что может вызвать проблемы, если он предполагает, что второй ACK предназначен для следующего кадра в последовательности.

Чтобы избежать этих проблем, наиболее распространенным решением является определение 1-битного порядковый номер в заголовке кадра. Этот порядковый номер меняется (от 0 до 1) в последующих кадрах. Когда получатель отправляет ACK, он включает порядковый номер следующего пакета, который он ожидает. Таким образом, получатель может обнаруживать дублированные кадры, проверяя, чередуются ли порядковые номера кадров. Если два последующих кадра имеют одинаковый порядковый номер, они дублируются, а второй кадр отбрасывается. Аналогичным образом, если два последующих ACK ссылаются на один и тот же порядковый номер, они подтверждают один и тот же кадр.

ARQ с остановкой и ожиданием неэффективен по сравнению с другими ARQ, потому что время между пакетами, если ACK и данные приняты успешно, в два раза больше времени передачи (при условии, что время оборота может быть нулевым). Пропускная способность канала - лишь небольшая часть возможной. Чтобы решить эту проблему, можно отправлять более одного пакета за раз с большим порядковым номером и использовать один ACK для набора. Это то, что делается в Go-Back-N ARQ и Селективный повторный ARQ.

Смотрите также

Рекомендации

  • Таненбаум, Эндрю С., Компьютерная сеть, 4-е изд. ISBN  0-13-066102-3