ГБН протокол

С Википедије, слободне енциклопедије

Протокол ГБН (енгл. Go-Back-N – Врати-за-Н) представља протокол у области рачунарских мрежа, који дозвољава пошиљаоцу да пошаље више пакета (ако их има) без чекања на потврду, али ограничава највећи дозвољени број Н непотврђених пакета у цевоводу.[1][2]

ГБН протокол[уреди | уреди извор]

Ако дефинишемо басе као редни број најстаријег непотврђеног пакета, а неxтсеqнум као најмањи неупотребљени редни број (тј. редни број следећег пакета који треба послати) можемо уочити четири интервала у распону редних бројева. Редни бројеви у интервалу [0, басе-1] одговарају пакетима који су већ пренети и чији је пријем потврђен. Интервал [басе, неxтсеqнум-1] одговара пакетима који су послати, али чији пријем још није потврђен. Редни бројеви у интервалу [неxтсеqнум, басе+Н-1] користе се за пакете који могу да се пошаљу одмах чим подаци стигну из горњег слоја. Коначно, редни бројеви већи или једнаки од басе+Н не могу се користити све док не стигне потврда пријема за непотврђени пакет који се тренутно налази у цевоводу (тачније, пакет са редним бројем басе).

Величина прозора[уреди | уреди извор]

Распон дозвољених редних бројева за послате, али још непотврђене пакете може се посматрати као прозор величине Н у распону редних бројева. Током рада протокола, овај прозор клизи унапред дуж расположивих редних бројева. Због тога се за Н често каже да је величина прозора, а за сам протокол ГБН се каже да је протокол са клизним прозором.

Рад пошиљаоца и примаоца[уреди | уреди извор]

Пошиљалац[уреди | уреди извор]

ГБН пошиљалац мора да одговори на три врсте догађаја:

  • Позив одозго. Када се одозго позове рдт_сенд(), пошиљалац прво проверава да ли је прозор пун, тј. да ли постоји Н непотврђених пакета. Ако прозор није пун, пакет се прави и шаље, а променљиве се ажурирају на одговарајући начин. Ако је прозор пун, пошиљалац једноставно враћа податке горњем слоју, што посредно значи да је прозор пун. Горњи слој би требао првом приликом касније да поново покуша слање. У стварности, вероватније решење је да пошиљалац сачува те податке у привременој меморији или можда да има механизам синхронизације (нпр. семафоре или ознаке) који горњем слоју дозвољава да позове рдт_сенд() само ако прозор није пун.
  • Пријем АЦК поруке. У нашем ГБН протоколу, потврда пријема за пакет са редним бројем н сматра се кумулативном потврдом пријема, који означава да је прималац правилно примио све пакете са редним бројевима који су мањи и једнаки н.
  • Истек времена тајмера. Назив протокола „врати-за-Н“ потиче од понашања пошиљаоца у случају изгубљених пакета или пакета који превише касне. Као и у протоколу стани и чекај, користи се тајмер за опоравак од губитка пакета са подацима или пакета са потврдом пријема. После истека одређеног времена пошиљалац поново шаље све пакете који су претходно послати, а чији пријем није још увек потврђен. Ако стигне АЦК порука, али још увек има послатих и непотврђених пакета, тајмер се поново покреће. Ако више нема непотврђених пакета, тајмер се зауставља.

Прималац[уреди | уреди извор]

Поступци примаоца у протоколу ГБН такође су једноставни. Ако пакет са редним бројем н прими исправно и по реду (тј. последњи подаци испоручени горњем слоју потичу из пакета са редним бројем н-1), прималац шаље АЦК поруку за пакет са редним бројем н и предаје податке из пакета горњем слоју. У свим осталим случајевима, прималац одбацује пакет и поново шаље АЦК поруку за последњи пакет примљен по реду. Обратите пажњу на то да пошто се пакети испоручују горњем слоју један по један, ако је пакет к примљен и испоручен, то значи и да су сви пакети са редним бројевима мањим од к такође испоручени. Према томе, коришћење кумулативних потврда пријема природно је за ГБН протокол.

У нашем протоколу ГБН, прималац одбацује пакете који не стижу по реду. Мада изгледа глупо и расипно да се одбаци пакет који је правилно примљен (иако није по реду), за тако нешто постоји оправдање. Не заборавите да прималац мора редом да пошаље податке горњем слоју. Претпоставимо сада да се очекује пакет н, а стиже пакет н+1. Пошто подаци морају да се испоруче по реду, прималац би могао да привремено сачува пакет н+1 и испоручи га горњем слоју пошто прими и испоручи пакет н. Међутим, ако се пакет н изгубио, и он и пакет н+1 биће касније поново послати због правила поновног слања у протоколу ГБН на страни пошиљаоца. Према томе, прималац може једноставно да одбаци пакет н+1. Предност оваквог приступа је једноставније привремено чување код примаоца-прималац не мора привремено да чува ни један пакет изван редоследа.

Референце[уреди | уреди извор]

  1. ^ Таненбаум, Андреw С. (2003). Цомпутер Нетwоркс (4тх изд.). ИСБН 0-13-066102-3. 
  2. ^ Куросе, Јамес Ф.; Кеитх W. Росс (2007). Цомпутер Нетwоркинг: А Топ-Доwн Аппроацх. ИСБН 0-321-49770-8. 

Литература[уреди | уреди извор]

  • James F. Kurose, Keith W. Ross, Umrežavanje računara, Cet, Beograd, 2009.

Види још[уреди | уреди извор]

Спољашње везе[уреди | уреди извор]