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 и Selective Repeat ARQ .
Смотрите также
Рекомендации
- Таненбаум, Эндрю С., Компьютерные сети , 4-е изд. ISBN 0-13-066102-3