Рубрики

Протокол раздвижных окон | Комплект 2 (сторона приемника)

Пожалуйста, укажите это как предварительную статью: Протокол скользящего окна (сторона отправителя) | набор 1

Протокол скользящего окна на самом деле является теоретической концепцией, в которой мы говорили только о том, каким должен быть размер окна отправителя (1 + 2a), чтобы повысить эффективность остановки и ожидания arq. Теперь поговорим о практических реализациях, в которых мы позаботимся о том, каким должен быть размер окна получателя. Практически это реализовано в двух протоколах, а именно:

  1. Вернуться назад N (GBN)
  2. Выборочный повтор (SR)

В этой статье мы расскажем вам о первом протоколе, который является GBN с точки зрения трех основных характеристик, а в следующей части мы обсудим SR, а также сравнение обоих этих протоколов.

Вернуться назад N (GBN) протокол

Три основные характерные особенности GBN:

  1. Размер окна отправителя (WS)
    Это само N. Если мы говорим, что протокол GB10, то Ws = 10. N должно быть всегда больше 1, чтобы реализовать конвейеризацию. Для N = 1 он сводится к протоколу Stop и Wait.
    Efficiency Of GBN = N/(1+2a)
    where a = Tp/Tt

    Если B — пропускная способность канала, то

    Effective Bandwidth or Throughput
     = Efficiency * Bandwidth
     = (N/(1+2a)) * B
  2. Размер окна приемника (WR)
    WR is always 1 in GBN.

    Теперь, что именно происходит в GBN, мы объясним с помощью примера. Рассмотрим схему, приведенную ниже. Размер окна отправителя равен 4. Предположим, у нас много порядковых номеров только для пояснения. Теперь отправитель отправил пакеты 0, 1, 2 и 3. После подтверждения пакетов 0 и 1 получатель ожидает пакет 2, и окно отправителя также сдвинулось для дальнейшей передачи пакетов 4 и 5. Теперь предположим, что пакет 2 потерянный в сети, Receiver будет отбрасывать все пакеты, которые отправитель отправил после пакета 2, поскольку он ожидает порядковый номер 2. На стороне отправителя для каждой отправки пакета имеется таймер истечения времени ожидания, который истекает для пакета № 2. Теперь из последнего переданного пакета 5 отправитель вернется к пакету № 2 в текущем окне и передаст все пакеты до пакета № 5. Поэтому он называется «Вернуться назад N. Вернуться назад» означает, что отправитель должен вернуться назад на N мест из последний переданный пакет в неподтвержденном окне, а не из точки, где пакет потерян.

  3. Подтверждения
    Есть 2 вида подтверждений, а именно:
    • Накопительное подтверждение : одно подтверждение используется для многих пакетов. Основное преимущество — меньше трафика. Недостатком является меньшая надежность, так как если один ack — это потеря, это будет означать, что все отправленные пакеты будут потеряны.
    • Независимый Ack : если каждый пакет будет получать подтверждение независимо. Надежность здесь высока, но недостатком является то, что трафик также высок, поскольку для каждого пакета мы получаем независимое подтверждение.

    GBN использует совокупное подтверждение . На стороне получателя он запускает таймер подтверждения всякий раз, когда получатель получает какой-либо фиксированный пакет, и когда он истекает, он собирается отправить совокупный Ack для количества пакетов, полученных в этом интервале таймера. Если получатель получил N пакетов, то номер подтверждения будет N + 1. Важным моментом является то, что таймер подтверждения не запустится после истечения первого таймера, но после того, как получатель получит пакет.
    Таймер таймаута на стороне отправителя должен быть больше таймера подтверждения .

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

Minimum sequence numbers required in GBN = N + 1
Bits Required in GBN = ceil(log2 (N + 1))

The extra 1 is required in order to 
avoid the problem of duplicate packets
as described below.

Пример: рассмотрим пример GB4.

  • Размер окна отправителя равен 4, поэтому для маркировки каждого пакета в окне требуется минимум 4 порядковых номера.
  • Теперь предположим, что получатель получил все пакеты (0, 1, 2 и 3, отправленные отправителем) и, следовательно, теперь снова ожидает пакет номер 0 (здесь мы не можем использовать 4, поскольку у нас есть только 4 порядковых номера, так как N = 4) ,
  • Теперь предположим, что кумулятивное подтверждение для вышеуказанных 4 пакетов потеряно в сети.
  • На стороне отправителя будет установлен тайм-аут для пакета 0, и, следовательно, все 4 пакета будут переданы снова.
  • Проблема теперь в том, что получатель ожидает новый набор пакетов, который должен был начаться с 0, но теперь он получит дубликаты ранее принятых пакетов.
  • Чтобы избежать этого, нам нужен один дополнительный порядковый номер.
  • Теперь получатель мог легко отклонить все дублирующиеся пакеты, которые начинались с 0, потому что теперь он будет ожидать пакет номер 4 (мы добавили дополнительный порядковый номер сейчас).

Это объясняется с помощью иллюстраций ниже.

Попытка с порядковыми номерами 4.

Теперь попробуем с одним дополнительным порядковым номером.

Теперь понятно, зачем нам нужен дополнительный 1 бит в протоколе GBN.

В следующей статье мы объясним выборочное повторение и сравнение между двумя протоколами.

Эта статья предоставлена Пранджул Ахаджа . Если вы как GeeksforGeeks и хотели бы внести свой вклад, вы также можете написать статью с помощью contribute.geeksforgeeks.org или по почте статьи contribute@geeksforgeeks.org. Смотрите свою статью, появляющуюся на главной странице GeeksforGeeks, и помогите другим вундеркиндам.

Пожалуйста, пишите комментарии, если вы обнаружите что-то неправильное или вы хотите поделиться дополнительной информацией по обсуждаемой выше теме.

Рекомендуемые посты:

Протокол раздвижных окон | Комплект 2 (сторона приемника)

0.00 (0%) 0 votes