Го-Бацк-Н (ГБН) је АРК протокол клизног прозора који омогућава пошиљаоцу да пренесе више оквира (до дефинисане величине прозора) без чекања на појединачна потврда.
низ додавање елемената јава
- Ако је пакет изгубљен или оштећен, пошиљалац поново шаље тај пакет и све наредне пакете у прозору.
- Пример: Ако се пошаљу пакети 1–5, а пакет 3 је изгубљен, онда се пакети 3, 4 и 5 поново преносе.
Овај механизам осигурава поузданост, али може изгубити пропусни опсег ако се грешке често јављају.
Три главне карактеристичне карактеристике ГБН-а су:
1. Величина прозора пошиљаоца (В с )
То је сам Н. Ако кажемо да је протокол ГБ10, онда је Вс = 10. Н би увек требало да буде веће од 1 да би се имплементирао цевовод. За Н = 1 своди се на Стоп анд Ваит протокол .
Ефикасност ГБН = Н/(1+2а)
где
а = Тстр/Тт
Тстр= Кашњење ширења
Тт= Кашњење у преносу пошиљаоца
Која ће бити ефикасност ако кашњење чекања у реду обраде и кашњење потврде преноса нису нула?
Ефикасност = Н * (корисно време) / (укупно време)
где је корисно време=Тт
Укупно време = Тт+ 2 * Тстр+ Пр+ Пк + Тт(потврди)
где
- Т т =Кашњење у преносу на страни пошиљаоца
- Т стр = Кашњење ширења
- Пр = Одлагање обраде
- Пк = Кашњење чекања
- Т т (потврди) = Одлагање потврде преноса
Ако је Б пропусни опсег канала онда
Ефективни пропусни опсег или пропусност
= Ефикасност * Пропусни опсег
= (Н/(1+2а)) * Б
2. Величина прозора пријемника (В Р )
- Увек 1 у ГБН.
- Прималац прихвата само следећи очекивани пакет.
- Пакети који су ван реда се одбацују.
3. Признања
Потврде (АЦК) су сигнали које приматељ шаље да потврди успешан пријем пакета података. Они обезбеђују поуздану комуникацију између пошиљаоца и примаоца. Ако АЦК није примљен у одређеном времену, пошиљалац претпоставља да је пакет изгубљен и поново га шаље.
Врсте АЦК-ова
Кумулативни АЦК
- Једна потврда потврђује пријем свих пакета до одређене тачке.
- предност: Мање саобраћаја (мање АЦК-ова).
- недостатак: Мање поуздан ако се изгуби један АЦК, више пакета изгледа непризнато.
Независни АЦК
- Сваки пакет се појединачно признаје.
- предност: Висока поузданост.
- недостатак: Већи саобраћај због више АЦК-ова.
Рад ГБ-Н протокола
Слање странице
- Одржава прозор величине Н (нпр. величина прозора ГБ4 = 4).
- Може да пошаље до Н непотврдених пакета.
- Сваки послати пакет има тајмер.
- Ако се прими АЦК, прозор клизи напред.
- Ако дође до временског ограничења (за пакет који недостаје), пошиљалац поново шаље тај пакет и све наредне у прозору.
Рецеивер Сиде
- Одржава величину прозора 1 (ВР = 1).
- Прихвата само очекивани пакет у низу.
- Ако стигне исправан пакет: шаље АЦК и прелази на следећи очекивани редни број.
- Ако стигне пакет ван реда: одбацује га и поново шаље АЦК за последњи исправно примљени пакет.
Однос између величине прозора и редних бројева
Тхе величина прозора и редни бројеви у протоколу клизног прозора као што је Го-Бацк-Н или Селективно понављање су уско повезани.
- Тхе величина прозора одређује колико пакета пошиљалац може да пренесе без потребе за потврдом. То је као ограничење колико података може бити послато пре него што пошиљалац мора да стане и сачека потврду.
- Редни бројеви се користе за означавање пакета тако да прималац зна њихов редослед и може да открије све пакете који недостају.
Тхе величина прозора треба да буде мањи или једнак опсегу доступних редни бројеви . Ако је величина прозора превелика у поређењу са опсегом бројева секвенце, пријемник би се могао збунити јер би се исти редни број могао поново користити пре него што се први потврди. Ово би отежало сазнање да ли је пакет нов или дупликат.
Однос између величине прозора и редног броја је дат формулом:
ИНс+ ВР<= ASN
где је Всје величина прозора пошиљаоца и ВРје величина прозора пријемника и АСН је доступан редни број.
ИНс+ 1<= ASN because WР= 1 у ГБ-Н протоколу
Дакле, минимални редни бројеви потребни у ГБН = Н + 1
Битови потребни у ГБН = ⌈ лог2(Н + 1)⌉
Додатни 1 је потребан да би се избегао проблем дуплирања пакета.
Пример за ГБ-Н протокол
Размотрите пример ГБ4.
- Величина прозора пошиљаоца је 4, стога су нам потребна најмање 4 редни броја за означавање сваког пакета у прозору.
- Претпоставимо сада да је прималац примио све пакете (0 1 2 и 3 које је послао пошиљалац) и стога сада поново чека на пакет број 0 (Не можемо да користимо 4 овде јер имамо само 4 редни број доступних од Н = 4).
- Сада претпоставимо да је кумулативни ацк за горња 4 пакета изгубљен у мрежи.
- На страни пошиљаоца биће временско ограничење за пакет 0 и стога ће сва 4 пакета бити поново послата.
- Проблем је што пријемник чека нови сет пакета који је требало да почне од 0, али сада ће примити дупликате претходно прихваћених пакета.
- Да бисмо ово избегли, потребан нам је један додатни редни број.
- Сада је пријемник могао лако да одбије све дуплиране пакете који су почињали од 0 јер ће сада чекати пакет број 4 (сада смо додали додатни редни број).
Ово је објашњено уз помоћ илустрација у наставку. Покушај са редним бројевима 4.
Сада покушавам са једним додатним редним бројем.
Сада је јасно зашто нам је потребан додатни 1 бит у ГБН протоколу.
сортирање спајањем
Предности ГБН протокола
- Једноставан за имплементацију и ефикасан за поуздану комуникацију.
- Боље перформансе од протокола за заустављање и чекање за мреже без грешака или са малим бројем грешака.
Недостаци ГБН протокола
- Неефикасно ако су грешке честе јер ће више оквира можда морати да се непотребно поново емитују.
- Пропусни опсег може бити изгубљен због сувишних ретрансмисија.