Компютърни мрежи


Управление на грешките на канално ниво



страница11/23
Дата25.07.2016
Размер1.86 Mb.
#6605
1   ...   7   8   9   10   11   12   13   14   ...   23

4.3.Управление на грешките на канално ниво


Функционалността, свързана с контрола и отстраняването на грешките при предаване е една от типичните услуги, която каналните обекти предоставят на по-“високите” нива от еталонната архитектура на взаимодействие.

След като приемащия канален обект получи поредния кадър, този кадър се подлага на процедура за контрол на грешки при предаването.

В каналните протоколи се използват три базови схеми за откриване на грешки при предаване:


  • Битов контрол по четност (parity bit method) – проверяваната последователност от битове се контролира от един бит за проверка, съдържанието на този бит допълва броя на единичните битове до четно или нечетно число единици. Всяко грешно инвертиране при предаването на единичен бит се открива от тази схема. Тази схема не е приложима за откриване на кратни грешки в контролираното съобщение

  • Блокова контролна сума (block error rate) – този тип контрол подобрява ефективността на битовия контрол по четност, като се въвежда матричен контрол на байтово организираното съобщение. Групата байтове се организират в блок, като за всеки байт се осъществява независим битов контрол. Побитово се сумират байтовете в групата, като при наличие на пренос в резултат от сумирането, формиращият се 9-ти разряд на сумата се добавя като най-младши разряд. По този начин се формира контролен символ (BCC – Block Control Character), който се записва в тялото на кадъра и се предава по физическото съединение;

  • Цикличен контрол (cyclic redundancy check) – този метод е относително по-сложен за реализация от изброените вече методи, но има по-добри свойства при борбата с кратните грешки. Този метод се основава на теорията на действия с полиноми, дял от линейната алгебра. Съобщението се представя като полином от n-та степен – Mn(x).Дефинира се генерационен полином - Gm(x) със специфични свойства. Осъществява се операцията деление на полиноми:

Mn(x)/ Gm(x)= Qn-m(x) + Rm-1(x).

В резултат от делението се поучава полинома-частно Qn-m(x) от степен (n-m) и остатък Rm-1(x) от степен (m-1). Остатъка Rm-1(x) се записва в “тялото” на кадъра. След приемане на съобщението операцията деление се повтаря и се сравняват поучения остатък с остатъка, записан в кадъра. При нулев резултат се приема, че съобщението е предадено достоверно. Възлово значение за този метод има вида на генерационния полином. Целта е полинома да има минимален брой реални корени. Възможността да не бъде открита грешка е Mn(x)/ и Gm(x) да имат общи корени. Най-често използваните продукционни полиноми имат вида:

CRC –16 =X16+ X15 +X2+1

CRC – CCITT =X16+ X12 +X5+1

CRC – 32 = X32+ X26 +X23+X16+ X12 +X11+X10+ X8 +X7+X5+ X4 +X2+X+1

Резултатите от проверката за грешки се изпращат на предавателния канален обект под формата на кратко служебно съобщение (кадър), съдържащ потвърждение за приемане, ако грешки не са открити или заявка за повторно предаване на кадъра в случай на открита(и) грешка(и). Този механизъм за управление на грешките се нарича автоматична заявка за повторение (ARQ – Automatic Repeat Request). На канално ниво този механизъм се реализира по два базови подхода:


  • Подход със свободна заявка за повторение – Idle RQ. Idle RQ e ефективен подход за полудуплексна организация на обмена на кадрите на канално ниво. Взаимодействието между каналните обекти се реализира на базата на два типа кадри. Кадри, които пренасят потребителската информация I-кадри и кадри, които имат значение за реализиране на логиката на каналния протокол – S-кадри.

При Idle RQ предавателят излъчва I-кадър и не излъчва следващия I-кадър от поредицата, докато приемника не информира предавателя чрез S-кадър, че текущия I-кадър е приет достоверно. Използват се две версии на Idle RQ за ситуациите на открита грешка – подразбираща се (implicit) и изключителна, изрична (explicit) заявка за повторно предаване.

Характерно за Implicit Idle RQ e, че при успешно приет кадър, приемника изработва S-кадър за потвърждаване (ACK). Достигането на S-ACK до предавателя, води до предаването на пореден I-кадър. При грешка, приемника не излъчва S-кадър. При предаването на текущия I-кадър, предавателя инициализира служебен таймер, с времеконстанта, достатъчна за предаване на кадър, контрол за грешки в приемната страна и връщане на потвърждение към предавателя. Ако след предаване на I-кадър служебният таймер се установи в състояние “time out”, т.е. изтече прогнозният интервал от време за получаване на потвърждението, то предавателя приема, че текущия I-кадър е приет с грешка или излъченото от приемника потвърждение е “изгубено” (повреден или забавен S-кадър).

При Explicit Idle RQ при повреден I-кадър, приемника информира предавателя чрез S-кадър “заявка за повторно предаване” – NAK. Не се прилага “time out” на предавателя , а се използва явна заявка за повторно предаване. До ситуация на “time out” при Explicit Idle RQ се достига, когато S-кадъра, независимо дали е ACK или NAK се повреди или закъснее по “пътя” от приемника до предавателя.

Сравнявайки Implicit Idle RQ и Explicit Idle RQ е важно да се отбележи че при втория подход излъчването на NAK намалява времето за служебно изчакване, в което физическия канал не е натоварен. Чрез Explicit Idle RQ по-ефективно се използва пропускателната способност на физическите съединения. Предимството на Implicit Idle RQ е в по-лесната реализация и оперирането с един тип S-кадър (ACK).



  • Подход с автоматична заявка за повторение (ARQ – Automatic Repeat Request) –прилагането на този подход се свързва със стремежа за по-ефективно използване на пропускателната способност на физическите съединения. Целта е намаляване на “загубите” от пренос на служебна информация за целите на протоколното взаимодействие на канално ниво. Този подход е приложим само за случаите на плен дуплекс канални съединения.

Правила за управление на потока кадри при ARQ:

-предавателят изпраща непрекъснато I-кадри без да чака ACK-кадър от приемника;

-до момента на получаване на потвърждение за I-кадър, предавателя съхранява не потвърдените I-кадри в изходен буфер , наречен буфер за повторно предаване;

-приемникът изпраща асинхронно потвърждение за всеки коректно приет кадър;

-всеки I-кадър притежава уникален идентификатор, които се съдържа и в тялото на свързания с него AKC-кадър;

-при получаване на ACK-кадър, предавателя премахва по идентификатора от буфера за повторно предаване потвърдения I-кадър;

-достоверно приетите кадри се записват в приемен буфер;

За буфера за повторно предаване и за приемния буфер се дефинират два указателя, определящи състоянието на запълване на тези буфери. Прието е тези указатели да се наричат променливи на състоянието на при предаване - V(S) и при приемане V(R).

Стойността на V(S) e с 1 увеличен пореден номер (идентификатор) на последно записания (предаден) кадър в буфера за повторно.

Стойността на V(R) e с 1 увеличен пореден номер (идентификатор) на последно записания (достоверно приет) кадър в приемния буфер.

По друг начин интерпретиран смисъла на променливите на състоянието е следния: V(S) дава информация за последователния номер (идентификатор) на кадър, който предстои да бъде предаван, а V(R) –информация за последователния номер (идентификатор) на кадър, който предстои да бъде приет.

При откриване на грешка ARQ-логиката предлага в зависимост от качеството на физическото съединение две техники за отстраняване на грешките : изборно повторно предаване (Selective repeat) и връщане с N-кадъра “назад” (Go-back-N).

Процедурата при отстраняване на грешки с прилагане на техниката Selective Repeat е следната:

-допуска се , че кадър с идентификатор N+1 e повреден;

-приемникът потвърждава последователно достоверно приетите кадри с номера N, N+2, N+3,…;

-при приемането на ACK-кадър с номер N+2, приемникът “разбира”, че кадър с номер N+1 не се потвърждава.

-предавателят преминава в състояние “повторно предаване”;

-предаването на нови кадри се прекратява, до момента на “излизане” на предавателя от състоянието “повторно предаване”;

-стойността на V(S) указва, че в буфера за повторно предаване, трябва да бъде записан кадър с номер N+5, но предавателя е в режим на “повторно предаване” и преди N+5, в буфера за повторно предаване се записва ново копие на кадъра N+1 (повреденият кадър);

-при приемане на потвърждение с номер N+1, т.е. при повторното предаване кадър N+1 е приет достоверно – предавателя ”напуска” режима на “повторно предаване” и логиката за управление на предавателния буфер се възстановява в зависимост от текущата стойност на V(S).

За разлика от Selective Repeat при техника Go-Back-N процедурата за отстраняване на грешки предвижда групово повторно предаване е следната:

-допуска се , че кадър с идентификатор N+1 e повреден;

-приемника изпраща NAK-кадър с номер N+1 – така предавателя се информира за повредения кадър с номер N+1;

-предавателят преминава в режим “повторно предаване”;

-предавателят прекъсва предаването на нови кадри;

-приемникът отхвърля всички кадри, приети след N+1-вия;

-предавателя предава повторно N+1-я кадър;

-когато приемника потвърди кадъра с номер N+1, предавателя “напуска” режима на “повторно предаване” и възстановява състоянието на предавателния буфер при стойност на V(S)=N+2;

-процедурата по предаването продължава по разгледания вече механизъм.

Сравнявайки двете техники за отстраняване на грешки е важно да се отбележи, че при Selective Repeat техниката се налага поддържането на голям по размер приемен буфер, в който се съхраняват “чакащите” кадри, до възстановяване на серийността на кадрите, т.е. до приемането на липсващия в последователността кадър. Поддържането на тази техника изисква повече изчислителен ресурс, тъй като логиката на реализацията и е по-сложна. При Go-Back-N не е необходимо поддържането на буфер за ”чакащи” кадри, но физическият канал се натоварва допълнително с повторното предаване на вече предадени и достоверно приети кадри.

Когато физическия канал е с относително по-лошо качество, то по ефективно е прилагането на Selective Repeat като техника за отстраняване на грешки. При качествени физически канали Go-Back-N дава по-добри резултати с относително по-малък разход на изчислителен ресурс за поддържане на логиката на управление на процеса за отстраняване на грешки.


Каталог: docs -> Bachelor -> IV%20Kurs -> Sem%20VII
Sem%20VII -> Модул tcp/ip компютърни комуникации
Sem%20VII -> Дисциплина: Компютърни мрежи Упражнение 1
Sem%20VII -> Дисциплина: Компютърни мрежи Упражнение 11 Дисциплина: Компютърни комуникации Упражнение 11
Sem%20VII -> Програма по дисциплината : "интернет технологии" включена в учебния план на специалността: " Компютърни системи и технологии"
Sem%20VII -> Модул Frame Relay Компютърни комуникации
Sem%20VII -> Дисциплина: Компютърни мрежи Упражнение 6
Sem%20VII -> Дисциплина: Компютърни мрежи Упражнение 9
Sem%20VII -> Програма по дисциплината : "мрежово програмиране" включена в учебния план на специалността: " Компютърни системи и технологии"


Сподели с приятели:
1   ...   7   8   9   10   11   12   13   14   ...   23




©obuch.info 2024
отнасят до администрацията

    Начална страница