Досега са разгледани потвърдени услуги са от типа “изпрати и чакай”. Те се характеризират с предаване на данните, и докато не се получи потвърждение, нови данни не се изпращат. Нова услуга може да започне, само ако предходната е приключила.
Е дновременен двупосочен обмен – има възможност за оптимизация – първият ACK и вторите данни да се съединят. За да може да се работи така, във всеки блок от данните за изпращане трябва да се предвиди допълнително поле, чрез което да могат да бъдат потвърдени досега приетите данни. След успешното получаване на данните, приемната страна проверява има ли данни за предаване към същия предавател. Ако има такива данни, потвърждението се изпраща записано в съответното поле в тях. Ако няма, изпраща се отделно потвърждение. Възможно е, ако липсват данни, да се изчака известно време да се появят. Такава техника се нарича piggybacking.
В ремето за разпространение на сигналите между двете системи е много по-голямо от времето за предаване на данните – повишаването на ефективността се получава като се използват протоколи с плъзгащи се прозорци. При тези протоколи предавателят има право да изпраща нови данни без да е получил потвърждение за предишните. Основни характеристики:
работи се с номерирани блокове данни и с номерирани потвърждения.
няколко блока данни могат последователно да се изпратят без да се чака потвърждение от отсрещната страна. Тяхното максимално количество се нарича прозорец. Прозореца представлява списък с последователни номера на блокове и общият брой блокове определя дължината на прозореца – бележи се с “w”.
Правила, определящи работата на предавателя.
Прозореца на предаването дефинира списък на блоковете данни, разрешени за предаване в даден момент. В даден момент този прозорец съдържа номерата на предадените, но непотвърдени блокове и номерата на блоковете,
които не са изпратени, но могат да се предадат, ако такива потвърждения се появят. Когато се получи потвърждение с даден номер за даден блок, този блок, и всички блокове преди него се потвърждават (ACK се изпращат последователно – ако блок с
даден номер не е получен, ACK с по-голям номер не може да се изпрати, дори блокът с по-големия номер да е получен). В този случай потвърдените блокове се
изваждат от прозореца, като той се придвижва напред и същевременно в него влизат нови номера на блокове разрешени за предаване. Когато предавателят изпрати всички блокове данни и прозореца се запълни, той спира и започва да чака. След
изтичане на определен time-out, предавателят започва да предава наново от прозореца.
Правила, определящи работата на приемника
Приемният прозорец дефинира списък на блокове данни, разрешени за предаване. Получените блокове данни с номера извън приемащия прозорец се отхвърлят. Потвърждение за приет блок се изпраща само тогава, когато всички блокове от него до лявата (предната) граница на прозореца са приети успешно. Потвърдените блокове се изваждат от прозореца, той се придвижва напред, като същевременно дава възможност в него да влязат нови номера на блокове, разрешени за приемане.
Сподели с приятели: