Эта статья включает список ссылок , связанных материалов или внешних ссылок , но ее источники остаются неясными, поскольку в ней отсутствуют встроенные цитаты . ( Июль 2022 г. ) |
Stop-and-wait ARQ , также называемый протоколом чередующихся битов , — это метод в телекоммуникациях для передачи информации между двумя подключенными устройствами. Он гарантирует, что информация не будет потеряна из-за потерянных пакетов и что пакеты будут получены в правильном порядке. Это простейший механизм автоматического запроса на повтор (ARQ). Отправитель stop-and-wait ARQ отправляет один кадр за раз; это особый случай общего протокола скользящего окна с размерами окон передачи и приема, равными единице в обоих случаях. После отправки каждого кадра отправитель не отправляет никаких дополнительных кадров, пока не получит сигнал подтверждения (ACK). Получив допустимый кадр, получатель отправляет ACK. Если ACK не достигает отправителя в течение определенного времени, известного как тайм-аут, отправитель снова отправляет тот же кадр. Отсчет тайм-аута сбрасывается после каждой передачи кадра. Вышеуказанное поведение является базовым примером Stop-and-Wait. Однако реальные реализации различаются для решения определенных проблем проектирования.
Обычно передатчик добавляет номер проверки избыточности в конец каждого кадра. Приемник использует номер проверки избыточности для проверки на возможные повреждения. Если приемник видит, что кадр хороший, он отправляет ACK. Если приемник видит, что кадр поврежден, он отбрасывает его и не отправляет ACK, делая вид, что кадр был полностью потерян, а не просто поврежден.
Одна из проблем возникает, когда ACK, отправленный получателем, поврежден или утерян. В этом случае отправитель не получает ACK, истекает время ожидания и снова отправляет кадр. Теперь у получателя есть две копии одного и того же кадра, и он не знает, является ли второй дубликатом кадра или следующим кадром последовательности, несущим идентичные ДАННЫЕ.
Другая проблема возникает, когда среда передачи имеет такую большую задержку , что тайм-аут отправителя истекает до того, как кадр достигнет получателя. В этом случае отправитель повторно отправляет тот же пакет. В конечном итоге получатель получает две копии одного и того же кадра и отправляет ACK для каждой из них. Отправитель, ожидающий одного ACK, получает два ACK, что может вызвать проблемы, если он предполагает, что второй ACK предназначен для следующего кадра в последовательности.
Чтобы избежать этих проблем, наиболее распространенным решением является определение 1-битного порядкового номера в заголовке кадра. Этот порядковый номер чередуется (от 0 до 1) в последующих кадрах. Когда получатель отправляет ACK, он включает порядковый номер следующего пакета, который он ожидает. Таким образом, получатель может обнаружить дублированные кадры, проверив, чередуются ли порядковые номера кадров. Если два последующих кадра имеют одинаковый порядковый номер, они являются дубликатами, и второй кадр отбрасывается. Аналогично, если два последующих ACK ссылаются на один и тот же порядковый номер, они подтверждают один и тот же кадр.
Stop-and-wait ARQ неэффективен по сравнению с другими ARQ, поскольку время между пакетами, если ACK и данные получены успешно, в два раза больше времени передачи (предполагая, что время оборота может быть равно нулю). Пропускная способность канала составляет лишь часть того, что могло бы быть. Чтобы решить эту проблему, можно отправлять более одного пакета за раз с большим порядковым номером и использовать один ACK для набора. Это то, что делается в Go-Back-N ARQ и Selective Repeat ARQ .