logo

Назад N - протокол ковзного вікна

Go-Back-N (GBN) — це протокол ARQ із ковзним вікном, який дозволяє відправнику передавати кілька кадрів (до певного розміру вікна), не чекаючи індивідуальних підтвердження.

меню налаштувань android
  • Якщо пакет втрачено або пошкоджено, відправник повторно передає цей пакет і всі наступні пакети у вікні.
  • Приклад: якщо пакети 1–5 надіслано, а пакет 3 втрачено, то пакети 3, 4 і 5 передаються повторно.

Цей механізм забезпечує надійність, але може витрачати пропускну здатність, якщо помилки виникають часто.

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



1. Розмір вікна відправника (Ш с )

Це сам N. Якщо ми скажемо, що протокол GB10, то Ws = 10. N завжди має бути більше 1, щоб реалізувати конвеєрне підключення. Для N = 1 воно зводиться до Протокол зупинки та очікування .

Ефективність GBN = N/(1+2a)

де

а = Тсторt
Тстор= Затримка поширення
Тt= Затримка передачі відправника

Якою буде ефективність, якщо затримка обробки, затримка в черзі та затримка передачі підтвердження не дорівнюють нулю?

Ефективність = N * (Корисний час) / (Загальний час)

де корисний час=Tt

Загальний час = Tt+ 2 * Тстор+ Пr+ Pq + Tt(ack)

де

  • Т t = Затримка передачі на стороні відправника
  • Т стор = Затримка поширення
  • Pr = Затримка обробки
  • Pq = Затримка в черзі
  • Т t (ack) = Затримка підтвердження передачі

Якщо B - це пропускна здатність каналу, то

Ефективна смуга пропускання або пропускна здатність
= Ефективність * Пропускна здатність
= (N/(1+2a)) * B

2. Розмір вікна приймача (Ш Р )

  • Завжди 1 у GBN.
  • Одержувач приймає лише наступний очікуваний пакет.
  • Пакети, що не відповідають порядку, відкидаються.

3. Подяки

Підтвердження (ACK) — це сигнали, які надсилає одержувач для підтвердження успішного отримання пакетів даних. Вони забезпечують надійний зв'язок між відправником і одержувачем. Якщо ACK не отримано протягом встановленого часу, відправник вважає, що пакет втрачено, і повторно передає його.

Типи ACK

Сукупний ACK

  • Єдине підтвердження підтверджує отримання всіх пакетів до певного моменту.
  • Перевага: Менше трафіку (менше ACK).
  • Недолік: Менш надійний, якщо один ACK втрачено, кілька пакетів виглядають непідтвердженими.

Незалежний ACK

  • Кожен пакет підтверджується окремо.
  • Перевага: Висока надійність.
  • Недолік: Більший трафік завдяки більшій кількості ACK.

Робота протоколу GB-N

Сторінка надсилання

  • Підтримує вікно розміру N (наприклад, розмір вікна GB4 = 4).
  • Може надсилати до N непідтверджених пакетів.
  • Кожен переданий пакет має таймер.
  • Якщо отримано ACK, вікно ковзає вперед.
  • Якщо настає час очікування (для відсутнього пакета), відправник повторно передає цей пакет і всі наступні у вікні.

Приймальна сторона

  • Зберігає розмір вікна 1 (WR = 1).
  • Приймає лише очікуваний пакет у послідовності.
  • Якщо надходить правильний пакет: надсилає ACK і переходить до наступного очікуваного порядкового номера.
  • Якщо надходить пакет, що не відповідає порядку: відхиляє його та повторно надсилає ACK для останнього правильно отриманого пакета.
Розсувний_SET_2-1' title=

Зв’язок між розміром вікна та порядковими номерами

The розмір вікна і порядкові номери у протоколі ковзного вікна, як-от Go-Back-N або Selective Repeat, тісно пов’язані між собою.

  • The розмір вікна визначає, скільки пакетів відправник може передати без підтвердження. Це як обмеження кількості даних, які можна надіслати, перш ніж відправнику доведеться зупинитися та чекати підтвердження.
  • Порядкові номери використовуються для позначення пакетів, щоб одержувач знав їх порядок і міг виявити будь-які відсутні пакети.

The розмір вікна має бути меншим або дорівнювати діапазону доступних порядкові номери . Якщо розмір вікна завеликий порівняно з діапазоном порядкових номерів, одержувач може заплутатися, оскільки той самий порядковий номер може бути повторно використаний до того, як буде підтверджено перший. Через це буде важко визначити, чи є пакет новим чи дублікатом.

Зв'язок між розміром вікна та порядковим номером визначається формулою:

вузол списку в java

INс+ ВР<= ASN

де Wсце розмір вікна відправника та WР— розмір вікна приймача, а ASN — доступний порядковий номер.

INс+ 1<= ASN because WР= 1 у протоколі GB-N

Отже, мінімальні порядкові номери, необхідні для GBN = N + 1

Необхідні біти в GBN = ⌈ log2(N + 1)⌉

Додатковий 1 потрібен, щоб уникнути проблеми повторюваних пакетів.

Приклад Протокол GB-N

Розглянемо приклад GB4.

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

Це пояснюється за допомогою наведених нижче ілюстрацій. Спроба з порядковими номерами 4.

Розсувний_SET_2-3' loading='lazy' title=

Тепер спробуйте з одним додатковим порядковим номером.

Розсувний_SET_2-4' loading='lazy' title=

Тепер зрозуміло, навіщо нам потрібен додатковий 1 біт у протоколі GBN.

Переваги протоколу GBN

  • Простий у реалізації та ефективний для надійного зв’язку.
  • Краща продуктивність, ніж протоколи зупинки та очікування, для мереж без помилок або з низьким рівнем помилок.

Недоліки протоколу GBN

  • Неефективно, якщо помилки виникають часто, оскільки без потреби може знадобитися повторна передача кількох кадрів.
  • Пропускна здатність може бути втрачена через надлишкові повторні передачі.
Створіть вікторину