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 для останнього правильно отриманого пакета.
Зв’язок між розміром вікна та порядковими номерами
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.
Тепер спробуйте з одним додатковим порядковим номером.
Тепер зрозуміло, навіщо нам потрібен додатковий 1 біт у протоколі GBN.
Переваги протоколу GBN
- Простий у реалізації та ефективний для надійного зв’язку.
- Краща продуктивність, ніж протоколи зупинки та очікування, для мереж без помилок або з низьким рівнем помилок.
Недоліки протоколу GBN
- Неефективно, якщо помилки виникають часто, оскільки без потреби може знадобитися повторна передача кількох кадрів.
- Пропускна здатність може бути втрачена через надлишкові повторні передачі.