Анализ на протоколните взаимодействия при възникване на грешки
Възможни са два типа грешки:
Грешка в блока данни.
Грешка в потвърждението.
При загуба на потвърждение с номер N, данните от блок номер N ще бъдат потвърдени едновременно с блок N+1при получаване на потвърждението N+1 (всяко потвърждение потвърждава предишните).
При загуба на блок данни с номер N, приемникът няма да потвърди нито първия, нито следващите получени блокове данни.
Предавателят ще продължи да предава всички блокове от своя прозорец, след което ще спре и ще чака потвърждение, като започва да измерване на time-out, който е по-голям от времето за предаване. След изтичане на time-out, предавателят ще започне повторно предаване на всички блокове от прозореца. След получаване на блок N, приемникът ще издаде потвърждение за получени правилно всички блокове и ще измести прозореца си надясно. Възможно е предавателят да продължи да предава, докато получи съобщението. След получаване на потвърждение, предавателят ще измести своя прозорец надясно. Това се нарича “go back n” алгоритъм.
Номерата на блоковете вървят циклично и има опасност да влязат в новия прозорец на мястото на друг номер. Затова w трябва да е по-малко от половината на модула на цикъла, с който номерираме блоковете – w < 2x – 1.
Възможно е да се разреши на приемника сам да си изисква неправилно получения блок. Тогава предавателят ще предава само сгрешения блок. Този механизъм се нарича селективно повторение (selective repeat).
Сподели с приятели: |