![]() |
Пакеттер концепциясыDate: 2014-02-26; view: 1297. Көптеген компьютерлік желілерде әртүрлі ұзындықтағы биттердің үздіксіз кезектілігі түріндегі мәліметтер тасымалы пайдаланылмайды. Желілік жүйелерде деректер кішігірім блоктарға бөлінеді, бұл блоктарды дестелер деп атайды, олар бір-бірінен жеке түрде тасымалданады. Сондықтан компьютерлік желілерді көбінесе дестелік желілер немесе дестелердің коммутациялық желілері деп атайды. Дестелерді пайдалану негізінде келесі екі принцип қолданылады. Біріншіден, беруші мен қабылдаушы компьютерге өздерінің тасымалдау деректерін қатесіз жіберу үшін іс-әрекеттерін өзара сәйкестендіру қажет. Тасымалдау кезіндегі қателікте деректер жоғалуы мүмкін. Деректердің кішігірім блоктарға бөлінуі жіберуші мен қабылдаушыға қай блок зақымдалған, зақымдалмағанын анықтауға мүмкіндік береді. Екіншіден, байланыс линиялары және модемдердің сәйкес аппараттық құралдары қымбат болғандықтан, олар бірнеше компьютерлердің пайдалануына беріледі. Сондықтан желілік жүйе оларға осы ортаға қатынас жасауға бірдей мүмкіндік беруі қажет. Мұндай тең құқылы жұмысты іске асыру кішігірім дестелерді қолдану арқылы ғана қамтамасыздандырылады. Бұған көзіміз жету үшін бұрынғы компьютерлік желілерде қандай әдістер қолданылғанын қарастырайық. Алғашқы желілер тең құқылы қатынас жасауға кепілдік беретін. Қолданбалы бағдарлама белгілі-бір уақытқа байланыстың бөлінетін қорын иемденетін; қосымшаға басқа қосымша байланыстың осы ресурсын қолдануға кіріспестен бұрын өз жұмысын аяқтауға рұқсат берілетін. Бұны болғызбас үшін қазіргі компьютерлік желілерде дестелерді пайдалану қарастырылған. Желі бір компьютерге бір дестені жіберуге рұқсат береді де компьютерге тосқаул қояды, сосын басқа компьютерге өз пакетін жіберуге мүмкіндік береді де, осы компьютерге де тосқаул қойып, келесі компьютерге өз пакетін жіберуге мүмкіндік береді. Әр компьютер бір дестені жіберуге жетерлік уақытқа ғана бөлінетін қорды иемденеді, сосын келесі дестені жібермес бұрын басқа компьютер желіні қолданып болғанша тұрып күтуі тиіс. Дестелерді қолдану неліктен үздіксіз жабдықтауды қамтамасыз ететінін түсіну үшін, қандай бір қосымшаға желіні оның жұмысын толық аяқтағанға дейін толық қолдануға рұқсат береді. Мысалы, айталық, 5.1-суретте көрсетілген төрт компьютер байланыстың жалпы арнасын бөліп, оны файлдарды жіберуге қолданады.
5.1-сурет. Төрт компьютерлердің деректермен алмасуы
А компьютері Д компьютеріне файл жіберген кезде В және С компьютерлері күтулері тиіс. Файлды жіберу үшін қанша уақыт қажет? Егер файл 5 Мегабайтты құраса және байланыс жүйесі секундына 56000 бит жіберген кезде тасымал 12 минуттай уақытты алады. Бұл мысал келесіні көрсетеді: Бөлінетін ресурстарды қолдануға қосымшаға құқық беретін кез-келген желілік жүйе белгілі бір периодқа басқа компьютерлерді блоктайды. Егер 5.1-суретте көрсетілген жүйеде мәліметтердің 1000 байттық дестелерге компьютерлер бойынша тасымалын ескерілетін ұстап қалуы қарастырылған. Айталық, А компьютері Д компьютеріне мәліметтер жіберуге кірісті делік. Сонымен бірге А компьютерімен мәліметтер жіберуден кейін мәліметтерді В компьютерінен С компьютеріне жіберу қажеттілігі туындады делік. А компьютері арқылы бір дестені жіберу аяқталған соң желі В компьютеріне мәлімет жіберуге рұқсат береді. Десте 8000 бит мәлімет қана құрағандықтан, ал аппараттық құралдар мәліметтерді секундына 5600 бит жылдамдықпен жібергендіктен, барлық десте 0,143 секундта тасымалданады. Бұдан шығатыны, В компьютері 143 мс күтуі тиіс, сосын тасымалды бастайды. Жіберуші мен қабылдаушыға өз әрекеттерін координациялауға және барлық компьютерлердің бөлінетін желілік ресурстарына тең құқылы үзіліссіз енуді қамтамасыз етуге мүмкіндік беру үшін көптеген компьютерлік желілерде мәліметтер дестелер деп аталатын кішігірім блоктарға бөлінеді. Компьютерлер дестелерді кезек бойынша бөлінетін желілік ресурс арқылы жібереді. Дестелер көлемі үлкен емес, сондықтан компьютерге ресурсқа енк үшін көп уақыт күту қажет емес. Дестелер және уақыттық тығыздау арқылы мультиплексирлеу. Дестелер және аппараттық фреймдер
Әдетте байланыстың бөлінетін ресурсына жіберушілердің кезек бойынша қатынас құру желілерінде уақыттық тығыздау арқылы мультиплексирлеу қолданылады. Ол 5.2-суретте көрсетілген.
5.2-сурет. . Дестелерді қолдану арқылы мультиплексирлеу. Жіберушілер бөлінетін байланыс арнасын кезек бойынша пайдалану мүмкіншілігіне ие болады; (а) 1-компьютер ресурсты дестені жіберу үшін қолданады, (б) дестені жіберу кезегі 2- компьютерге көшеді.
Мәліметтердің кішігірім блоктарға бөлінуі барлық жіберушілердің үздіксіз қызмет көрсетуін қамтамасыз етеді, өйткені бір жіберушінің белгісіз бір ұзақ уақытқа қатынас жасау құқығын алу мүмкіндігін болдырмайды. Жеке түрде, егер бір жіберушіге екі-үш десте, ал екіншісіне – мыңдаған десте жіберу керек болса, екі жіберушіге кезек бойынша дестелерді жіберу мүмкіндігін беру мынаған кепілдік береді: мәліметтердің кішігірім көлемін жіберуші өз жұмысын тосқауылсыз орындайды. «Десте» терминімен деректердің кішігірім блогы аталғанымен, десте форматы қатысында жалпы қабылданған ереже жоқ. Әрбір аппараттық технологияда осы аппараттық жабдықтау көмегімен тасымалданатын дестелер қандай болу керектігі анықталады және дестенің жеке биттері қалай жіберілетіні көрсетіледі. Дестелік тасымалдың жалпы принципін және берілген аппараттық технологиядағы дестенің нақты анықтамасын айыру үшін «фрейм» ұғымы пайдаланылады. Ол бір фреймде максималды түрде қанша деректер болатынын немесе фрейм биттері желі бойынша қалай берілетінін анықтауға мүмкіндік береді. Кейбір желілік технологияларда фрейм форматы қалай берілетінін анықтау үшін қарапайым мысал қарастырайық. Айталық, бір компьютерден екіншісіне деректер блогын RS-232 сияқты символдық тасымал схемасын қолдана отырып жіберу қажет делік. RS-232 стандарты биттерді қалай кодтау керектігін және жеке символдарды қалай жіберу керектігін көрсеткенімен, ол жіберушіге символдар блогының соңын бейнелейтін механизмді қарастырмайды, сондықтан осындай детальдар деректерді жіберетін немесе қабылдайтын компьютерлер арасында өзара үйлесуі қажет. Ал бұл – жіберуші мен қабылдаушы өзара әр фреймнің басы мен соңы қалай бейнеленетінін үйлестіру керек екендігін білдіреді. Егер фреймде тасымалданатын деректер символдары барлық мүмкін мәндерден тұрмаса, онда желілік жүйеде екі қолданылмайтын символды таңдап, оларды әр фреймнің басы мен соңын бейнелеу үшін қолдануға болады. Айталық, ASCII кодында берілген мәтіндік құжатты жіберу үшін RS-232 стандарты қолданылады делік. ASCII кодировкасы әдетте мәтіндік құжатта кездеспейтін басылмайтын символдарға арналған кодтардан тұратындықтан, желіде осы екі басылмайтын символдар қолданылуы мүмкін. 5.3-суретте желіде фреймнің басы мен соңын бейнелеу үшін ASCII кодировкасының soh және eot символдары қолданылғаны көрсетілген. Жіберуші soh символын, сосын – мәліметтер символын және соңында – eot символын жібереді.
5.3-сурет. Фреймге мысал, мұнда soh символы фрейм басын, ал eot символы соңын бейнелейді Бұл мысалдағы фреймдерге бөліну схемасының артықшылықтары мен кемшіліктері бар. Негізгі кемшілік болып – шығын саналады. Неліктен олар пайда болатындығын түсіну үшін мынаны елестету қажет: егер жіберуші екі фреймді қатар ұздіксіз жіберсе не болады? Бірінші фрейм соңында жіберуші eot символын, сосын ол екінші фреймді жіберуге дайын болу үшін кідірусіз soh символын жібереді. Мұндай жағдайларда деректердің екі блогына ажырату үшін бір символды пайдалану жеткілікті, сондықтан осы жағдайда фреймге бөлу схемасы деректер блогы арасындағы қосымша, керек емес символды жөнелтуді талап етеді. Егер деректерді жіберуші компьютер толық фреймді жіберуге үлгере алмай, аварияға ұшыраса, eot символы түспейді және қабылдаушы фреймнің толық еместігін білетін болады. Жіберуші қайта қосуды орындап, жаңа фрейм жіберген соң, ол тасымалды soh символынан бастайды, ал бұл туындаған қателікті қабылдаушының байқауына мүмкіндік береді. Егер компьютер-қабылдаушыда авария немесе қайта қосу болса, ол фрейм басын бейнелейтін soh символын қолданады. Байттарды қосу. Әр фреймнің басы мен соңын бейнелеуге арналған символдарды қолданудағы артықшылыққа қарамастан, көптеген компьютерлік желілерде тек желімен ғана қолданылатын қайсыбір символдарды резервтеу тәжірибеленбейді. Қосымшаға әдетте кездейсоқ символдарды жіберу рұқсат етілген. Қосымшада фреймдерге шек қою үшін қолданылатын soh және eot сияқты бір немесе бірнеше символдардан тұратын деректерді жіберу талап етілуі мүмкін. Алайда фрейм деректердегі осындай символдардың тікелей тасымалы проблема туғызады, өйткені қабылдаушы eot символын бүкіл фреймнің соңғы мәні деп қабылдайды. Сондай-ақ, soh символын кездестіргенде, қабылдаушы жаңа фреймнің тасымалы басталғанын тұжырымдайды. Ереже бойынша жіберілетін деректер мен басқарушы ақпарат арасындағы айырмашылықты ажырату үшін желілік жүйелерде келісім қолданылады, оған сәйкес жіберуші тасымал алдында мәліметтерді біраз өзгертеді, кейін қабылдаушы оларды қосымшаға жібермес бұрын деректерді бастапқы қалпына келтіреді. Сондықтан да желіні пайдаланатын қосымшалар еркін деректерді жіберетіндігіне байланысты желілік жүйе әрқашан деректерді басқарушы ақпараттан ажырата алады. Жіберуге дайындалған деректерге өзгерістер енгізу үшін желілік жүйелерде әдетте қосымша биттер мен байттарды қосу қолданылатындықтан, бұл деректерді қосу әдісі деген атқа ие. Деректерді қосу әдісі фреймге деректердің еркін мәнін қосу мүмкіндігін қалай қамтамасыз ететінін түсіну фрейм форматын қарастырайық. Жіберуші мен қабылдаушы фреймге шек қою үшін soh және eot символдарын қолдануға келісім жасасқандықтан, бұл екі символ деректерде болмауы тиіс. Бұл проблеманы деректердегі резервтелген символдарды бейнелеуге арналған үшінші символды қолдану арқылы байттарды қосу әдісі көмегімен іске асырылады. Мысалы, айталық, мұндай символ ретінде ASCII кодировкасындағы esc (1В-тың оналтылық мәні) символы таңдалған. Деректерде осы үш арнайы символ кездескенде жіберуші олардың орнына esc символын қояды. Бұл 1-кестеде көрсетілген. 1-кесте. Байттарды қосу
Байттарды қосу үшін жіберуші қандай да бір деректі жібермес бұрын барлық деректер блогын қарап шығып, сипатталған алмастыруды қолдануы тиіс. Осы кестеде көрсетілгендей, жіберуші soh символын esc және х символдарымен, eot-ты esc және у символдарымен, ал esc-ті esc және z символдар құрамымен ауыстырады. Символдардың түсуі боыйнша жіберуші x, y немесе z символдардың бірі ілесетін esc символын байқаған соң, осындай екісимволдық тізбекті оған сәйкес бір символмен алмастырады. 5.4-суретте байтты қосқаннан кейінгі фрейм және деректер блогына мысал келтірілген.
5.4- сурет. Байттарды қосу принципі (а) – soh типті символынан тұратын деректер, (б) – байттарды қосқаннан кейінгі фрейм. Штрих сызықтарымен символдар алмастырылған немесе қосылған деректер аумағы бейнеленген. Суретте көрсетілгендей, жіберуші байттарды қосқаннан кейін фрейм деректерінде soh және eot символдары болмайды. Сондықтан да қабылдаушы әрқашан soh символы фрейм басын, ал eot – фрейм соңын білдіретініне сенімді болуы тиіс. Тасымалдау кезінде пайда болатын қателер Байланысты ұйымдастыруда қолданылатын электрондық компоненттер немесе кабельдерде айбарлы разрядтар, кернеу импульстері мен басқа да электромагниттік бөгеулер әсерінен керексіз электр токтары туындауы мүмкін. Күшті бөгеулер (әсіресе, егер олар айбарлы разрядтар нәтижесінде туындайтын болса) желі құрылғысын зақымдауы мүмкін. Алайда әдетте бөгеулер деректерді жіберу үшін қолданылатын сигналдарды құрылғыны зақымдамай-ақ, тек бұрмалайды. Электр сигналының едәуір бұрмалануы бір немесе бірнеше деректер биттерін қабылдаушымен дұрыс емес интерпретацияны тудыруы мүмкін. Кейбір жағдайларда бөгеулер сигналды дерлік жойып жібереді, ал бұл жіберуші мәліметті жібергеннен кейін қабылдаушының деректер түсуін байқамай қалуына жол береді деген сөз. Кейбір кезде бөгеулер тұрып қалатын тасымал линиясында мүлдем кері әсер тудыруы мүмкін: жіберуші ештеңе жібермесе де, қабылдаушы түскен бөгеулерді биттер немесе символдардың мүмкін боларлық тізбегі сияқты интерпретациялануы мүмкін. Жоғалу, бұрмалану немесе биттердің еріксіз пайда болуы жалпы атпен тасымалдау қателері деген атпен танымал және компьютерлік желілердің күрделілігінің негізгі себебі болып табылады. Компьютерлік желілер күрделендірудің негізгі себебі тасымалдаудың цифрлік жүйелері кездейсоқ деректердің пайда болуын, жоғалуын немесе тасымалданатын деректердің бұрмалануын тудыратын бөгеулерге қабылдампаз болуына байлынысты. Жұптықты бақылау биттері мен олардың деректерді тасымалдау дұрыстығын тексеру үшін қолданылуы. Бақытқа орай, бөгеулер жиі туындамайды және барлық байланыс жүйелерінде емес. Мысалы, байланыстың жергілікті линиялары кейде күрделі проблемаларсыз-ақ бірнеше жылдар бойы жұмыс істейді. Сонымен бірге алыс қашықтыққа арналған линиялардағы бөгеулердің кішкене ғана болғаны сонша, модемдер оларды автоматты түрде қалпына келтіреді. Алайда тасымалдау барысындағы қателердің туындауының төмен ықтималдылығына қарамастан, желі жобалаушылары олардың қашып құтылмайтындығын мойындайды және осы қателерді табуға және оларды жоюға арналған аппараттық және программалық механизмдерді қарастырады. Алдыңғы тарауда қателерді анықтау үшін RS-232 аппараттық қамтамасыздануында қолданылатын механизмдердің бірі қарастырылған болатын: символ түскен кезде қабылдағыш таймерді іске қосады да, оның көмегімен кіріс символының биттерін тексереді. Егер линиядағы кернеу әр битті жіберудің күтілетін ұзақтығы кезінде тұрақты болып қалмаса немесе стоптық бит анықталған бір уақытта пайда болмаса, аппараттық қамсыздану қате туралы хабарлайды. Сонымен бірге, көптеген RS-232 линиясында екінші механизм қолданылады, ол әр символдың өзгертілмеген түрде түсуін қамтамасыздандыруға мүмкіндік береді. Жұптықты бақылау деген атпен танымал бұл механизм жіберушінің жұптықты бақылау биті деп аталатын қосымша битін есептеуді және оны әр символға жөнелту алдында қосуды талап етеді. Символдың барлық биттері түскен соң, қабылдаушы жұптықты бақылаубитін өшіріп, жіберуші орындайтын есептеулерді орындайды, яғни алынған нәтиже жұптықты бақылау биті мәнімен сәйкес келетінін, келмейтінін тексереді. Жұптықты бақылау кезіндегі есептеу алгоритмі символ биттерінің бірін жіберу кезіндегі бұрмалану жағдайында қабылдаушымен орындалатын есептеулер нәтижелері жұптықты бақылау битімен сәйкес келмесе, қабылдаушы қате туралы хабарлайтындығы көрсетілген. Жұптықты бақылаудың екі формасы бар – жұп және тақ кодты; жіберуші мен қабылдаушы олардың қайсысын пайдаланатынын өзара келісуі қажет. Осы форманың кез-келгенінде белгілі бір символ үшін жұптықты бақылау биттеріне есеп жүргізудің күрделі емес алгоритмі пайдаланылады. Жұп кодты жұптықты бақылауды қолдану үшін жіберуші жұптықты бақылау битін 0 немесе 1-ге теңестіреді, яғни 1 биттерінің жалпы саны жұп болады. Осылайша, жұптықты бақылаудың жұп кодын қолдану кезінде 0100101 символы үшін жұптықты бақылау биті 1-ге тең, өйткені символ 1 биттерінің тақ санын құрайды, ал 0101101 символы үшін жұптықты бақылау биті 0-ге тең, өйткені символ 1 биттерінің жұп санын құрайды. Сондықтан, тақ кодты жұптықты бақылауды қамтамасыз ету үшін жіберуші жұптықты бақылау битін 1 биттерінің жалпы саны тақ болатындай етіп орнатады. Символдар түскен соң қабылдаушы жұптықты бақылауды орындау үшін 1 биттерінің санын анықтайды. Егер символдың барлық биттері бұрмаланусыз алынған болса, қабылдаушымен есептелген жұптықты бақылау биті жіберушімен орнатылған битпен сәйкес келсе, онда деректер қатесіз келді деп есептелінеді, егер тасымалдау процесінде биттердің бірі бұрмаланған болса, онда қабылдаушы есебі жіберуші есебімен сәйкес келмейді де, қабылдаушы жұптықты бақылау қателігі туралы хабарлайды. Жұптықты бақылау әдісі барлық желілік аппараттық және программалық қамтамасыздануда қолданылатын маңызды принцип болып табылады. Қателерді табу үшін желілік жүйелер әдетте деректермен қоса кішігірім қызметтік ақпарат бөлігін жібереді. Жіберуші осы ақпарат құрамын оларға жіберілетін деректер үшін анықтайды, ал қабылдаушы десте тасымалының дұрыстығын тексеру үшін сол есептеулерді орындайды. Қателерді табу.Жұптықты бақылау бір биттегі қателерді сәтті табуға мүмкіндік бергенімен, ол барлық мүмкін қателерді таба алмайды. Егер тасымалдау кезінде екі символ биті бұрмаланғанда не болатынын қарастырайық. Мысалы, жұп кодты жұптықты бақылау жіберушімен берілетін биттер жұптықты бақылау биттерімен қоса 1 биттерінің жұп санын құрауы тиіс дегенді білдіреді. Егер тасымал кезінде екі бит мәні бұрмаланса, онда мынадай жағдайлар орын алуы мүмкін: екі бұрмаланған бит алдымен 0 мәніне, кейін екуі д 1 мәніне не біреуі 0, екіншісі 1 мәніне тең болады. Егер екі 0 биті 1 биттеріне түрленсе, онда 1 биттерінің жалпы саны жұптық өлшемге артады және сондықтан да жұп кодтық жұптықты бақылау ережесі бұзылмайды. Сондай-ақ, егер екі 1 биті 0-ге ауысса, онда жұп кодты жұптықты бақылау ережесі бұрынғыдай сақталады, өйткені 1 биттерінің жалпы саны жұптық өлшемге кемиді. Және бастысы, жұп кодты жұптықты бақылау ережесі, егер 1 биті 0-ге, ал 0 биті 1-ге ауысса сақталады, өйткені 1 биттерінің жалпы саны бұрынғыдай қалады. Көрсетілген мысал мынаны дәлелдейді: жұптықты бақылау символдың екі битінің мәні өзгеретін тасымал қателерін табуға жол бермейді. Шындығында, жұптықты бақылау биттердің жұп саны өзгеретін тасымалдау қателерін табуға жол бермейді. Тым болмаса, барлық сегіз 1 бит 0 битіне айналуы мүмкін, ал символ бәрібір жұптықты бақылаудан өтіп кетуі мүмкін. Тасымалдау барысындағы қателерді табуға тиісті жұптықты бақылау схемасы әр символмен бірге ақпараттың бір артық битін жіберуді қарастырады. Алайда мұндай бақылау қабылдаушыға бір бит мәнінің өзгерген, өзгермегенін анықтауға мүмкіндік берсе де, жұптықты бақылау биттердің жұп саны түрленген тасымалдау қателерін табуға мүмкіндік береді. Мамандар тасымалдау барысындағы қателерді табу проблемаларын талдап, бірнеше альтернативті механизмдерді ойлап тапты. Олардың барлығы да жіберілген тасымалды қызметтік ақпарат деректерімен қоса қарастырады және осы алынған деректер бұрмаланған ба, жоқ па екенін қабылдаушымен тексеруді қолдануды қарастырады. Бұл механизмдер мыналармен ерекшеленеді: қосымша ақпарат көлемімен, алгоритмнің есептеуіш күрделілігімен және қате биттер санымен. Әрине, егер тасымалдау жүйесі барлық биттерді дерлік бұрмаласа, онда тек деректер ғана емес, сонымен бірге қызметтік ақпарат та бұрмалануы мүмкін. Сондықтан қателерді табудың барлық әдістері жуықталған болып келеді: олар қолайлы шығындар есебіне орай бұрмаланған деректерді қабылдау ықтималдығын тек кемітеді. Бақылау сомасы көмегімен қателерді табу.Қателерді табудың көптеген әдістері болғанымен, тәжірибеде олардың аз ғана бөлігі қолданылады. Көптеген компьютерлік желілік жүйелерде әр дестемен бірге қабылдаушы қателерді таба алатын бақылау сомасын жіберу қарастырылған. Бақылау сомасын есептеу кезінде жіберуші барлық деректерді екілік бүтін сан тізбегі ретінде қарастырады. Бұл – деректердің тек бүтін санды мәндерден ғана тұруы керек деген сөз емес: олар символдардан, жылжымалы үтірлі сандардан немесе суреттерден де тұруы мүмкін. Желілік жүйе бақылау сомасын есептеу кезінде осы деректерді бүтін сан тізбегі ретінде қарастырады. 5.5-суретте кішігірім мәтін жолы үшін 16-биттік бақылау сомасы қалай есептелетіні көрсетілген. Бақылау сомасын есептеу кезінде жіберуші әр символдар жұбын 16-биттік бүтін сан ретінде қарастырып, осы сандардың сомасын табады. Егер сома 16 биттен асып кетсе, тасымал биті соңғы сомаман қойылады.
4865+6С6С+6F20+776F+726C+642E+тасымал биттері=71FC. 5.5 - сурет. ASCII символынан тұратын жол үшін 16-биттік бақылау сомасын есептеуге мысал. Символдар 16-биттік өлшемге топталып, 16-биттік арифметиканы қолдана отырып қойылады және тасымал биттері нәтижеге қосылады. Бақылау сомасын қолданудың артықшылықтары да, кемшіліктері бар. Негізгі артықшылық бақылау сомасының кішігірім көлемімен және қарапайым есептеулерді қолданумен байланысты. Бақылау сомасын есептеу әдісі жүзеге асырылатын көптеген желілерде 16-биттік немесе 32-биттік бақылау сомалары қолданылып, бүкіл дестеге бір ғана бақылау сомасы есептелінеді. Бақылау сомасының кішігірім көлемі - оны жіберуге жұмсалатын шығынның деректерді жіберуге жұмсалған шығыннан аз екенін білдіреді. Сонымен қатар, бақылау сомасын есептеген кезде қосу операциясы ғана қолданылатындықтан, бақылау сомасын құру мен тексеру аз ғана есептеулерді қажет етеді. Бақылау сомасын қолданудың кемшілігі болып барлық таралған қателер байқалмайтыны саналады. 2-кестеде бақылау сомасы деректердің әр төрт элементінің биті бұрмаланатын тасымалдау қателерін табуға мүмкіндік бермейтіні көрсетілген. Бұрмалануға қарамастан, қабылдаушы дестенің дұрыс бақылау сомасына ие екендігін анықтайды. 2-кесте. Бақылау сомасының кейбір тасымалдау қателерін табауға мысал. Деректің әр элементінің екінші битінің мәні қарама-қайшы мәнге өзгеруі нәтижесінде сол бақылау сомасы қайта өңделеді.
Қателерді циклдік артық код бойынша бақылау көмегімен табу. Әр дестедегі қызметтік ақпарат көлемін ұлғайтпастан, желілік жүйелерде қалайша көп көлемді қатені табуға болады? Бұл мақсатқа циклдік артық код (CRC – Cyclic Redundancy Check) бойынша бақылау көмегімен жетуге болады, ол бақылау сомасын қолдануға қарағанда көп қателерді табуға мүмкіндік береді. Циклдік артық кодты есептеу үшін қолданылатын аппараттық қамсыздануда екі қарапайым компонент: жылжымалы регистр және «шығушы НЕМЕСЕ» (XOR) логикалық операциясының орындалу схемасы қолданылады. 5.6 - суретте екі кіріс мәнді «шығушы НЕМЕСЕ» операциясын орындау нәтижесіне сәйкес келетін мәнді қайта өңдейтін аппараттық құралдар көрсетілген.
5.6 - сурет. (а) – «шығушы НЕМЕСЕ» мәнін есептеу үшін қолданылатын аппараттық құралдар схемасы, және (б) – кіріс мәндерінің 4 комбинациясының әрқайсысы үшін шығыс мәндері. Мұндай аппараттық блоктар циклдік артық кодты есептеу үшін қолданылады Циклдік артық кодты есептеу үшін қолданылатын екінші аппараттық құрылғы жылжымалы регистр болып табылады. Жылжымалы регистрді туннельмен салыстыруға болады, яғни онда биттер бірінің артынан бірі оңнан солға жылжиды. Жылжымалы регистр биттердің тұрақты санын құрайды (мысалы, ол 16 биттен тұруы мүмкін), сондықтан әр жаңа бит түскен кезде регистрден бір бит шығуы тиіс. Сонымен бірге әр жылжымалы регистр сол жақтағы бит мәнін беретін шығыстан тұратыны тұжырымдалады. Шеткі сол жақтағы бит мәнін өзгерткен кезде шығыс мәні де өзгереді. Жалпы түрде, жылжымалы регистр екі операцияны: инициализация мен жылжуды орындайды.инициализацияны орындаған кезде жылжымалы регистр барлық биттерді 0 мәніне теңестіреді. Нәтижесінде, оның шығысында нөлдік мән теңеседі. Жылжуды орындаған кезде жылжымалы регистр бір мезетте барлық биттерді бір позицияға оңға жылжытып, ағымдағы кіріс мәніне тең ең шеткі оң жақтағы битті теңестіреді және шығыс мәніне ең шеткі сол жақтағы битті теңестіреді. 5.7-суретте биттер жылжу операциясы кезінде қалай жылжитыны және шығыс мәні қалай өзгеретіні көрсетілген.
5.7-сурет. Жылжымалы регистрдің жылжуды орындауға дейінгі (а) және орындаудан кейінгі (б) күйі. Жылжу кезінде әр бит солға қарай бір позицияға жылжиды, ал шығыс мәні ең шеткі сол жақтағы битке тең болады. Құрылымдық блоктардың бірігуі.5.8-суретте 16-биттік циклдік артық кодты есептеу үшін «шығушы НЕМЕСЕ» операциясын орындайтын 3 блок пен 3 жылжымалы регистрдің қалай бірігу керектігі көрсетілген. Бұл аппараттық құралдар қымбат емес және олардың орнатылуы қарапайым.
5.8-сурет. Циклдік артық кодты есептеу үшін қолданылатын аппараттық құралдар схемасы. Бұл құрылғыға хабарлама биттерін енгізгеннен кейін жылжымалы регистрлер хабарламаның 16-биттік циклдік артық кодын құрайды. Бұл суретте көрсетілгендей, аппараттық құралдар «шығушы НЕМЕСЕ» блогы көмегімен байланысқан 3 жылжымалы регистрден тұрады. Ең шеткі сол жақтағы жылжымалы регистрдің шығыс мәні «шығушы НЕМЕСЕ»-нің 3 блогына бір уақытта түседі. Бұл мысалда жылжымалы регистр 5, 7 және 4 биттерді құрайды. Циклдік артық кодты есептеу үшін барлық жылжымалы регистрлер мәндерін алдымен 0-ге теңестіріп, сосын схемаға хабарлама биттері бір бірден беріледі. Ал бұл – хабарламаның бір биті кіріс ретінде бейнеленген нүктедегі «шығушы НЕМЕСЕ» ең шеткі оң жақ блогының кірісіне түседі дегенді білдіреді және барлық 3 дылжымалы регистр бір уақытта жылжуды орындау командасын алады. Аппаратура бұл процедураны хабарламаның әр биті үшін қайталайды. Барлық хабарлама схемаға енгізілген соң жылжымалы регистр осы хабарламаның 16-биттік циклдік артық кодын құрайды. Қабылдаушы аналогтық аппараттық құралдарды кіріс хабарламалардың циклдік артық кодын есептеу үшін және жіберуші жіберген CRC-мен сәйкес келетіндігін тексеру үшін қолданады. Стандартты алгоритмдердегі циклдік артық кодтарды тексеруді жеңілдету үшін жоғарыда сипатталған CRC схемасы біршама модифицирленеді: CRC-ді есептеу кезінде жіберуші хабарламаға қосымша оналтылық нөлдік биттерді тіркейді. Математика тұрғысынан осы қосымша нөлдер нәтижелік циклдік артық кодты инверсиялық, яғни қабылдаушы жұмысын жеңілдететін кері түрге айналдыратынын дәлелдеп беруге болады. Кіріс хабарламаның CRC-ін есептеп, сосын оны түскен CRC-мен салыстырудың орнына, қабылдаушы кіріс хабарламаның CRC-ін ондағы циклдік артық кодпен бірге есептейді. Егер барлық биттер дұрыс алынған болса, есептелінген мән 0-ге тең болады. Бұл әдістің артықшылығы – он алты биттің 0-ге теңдігін тексеру өте қарапайым орындалатындығы болып табылады. Формальды емес талдаудың өзі циклдік артық код бақылау сомасына қарағанда көп қателерді табатыныдығын көрсетеді. Біріншіден, әр кіріс биті барлық 3 регистрден өтетіндіктен, хабарламаның бір бұрмаланған битінің өзі циклдік артық кодтың соңғы мәнін өзгертіп жібереді. Екіншіден, бұл аппараттық құралдарда ең шеткң сол жақтағы жылжымалы регистр шығысы «шығушы НЕМЕСЕ»-нің әр блок кірісіне түсетін кері байланыс қолданылатындықтан, хабарламаның әр жеке биті соңғы мәнді өзгерте отырып, бірнеше рет жылжымалы регистрден өтеді. Циклдік артық код бойынша бақылау әдісін математикалық есептеу кезінде хабарламаны бөлуге арналған көпмүше қолданылады. 8-суретте көрсетілген мысалда пайдаланылатын көпмүше мынадай түрде болады: P(x)=x16+x12+x5+1. Қателер дестесі.Циклдік артық кодкең таралған қателердің келесідей категорияларын табуды оңайлатады. Біріншіден, аппаратураның ақаулығы кейде биттердің белгілі бір топтарын зақымдауды тудырады. Мысалы, ақауға ұшыраған символ бойынша кіріс-шығыс құрылғысы әр символдың екі бірінші мәнін 0 мәніне теңестіріп тастауы мүмкін. Мұндай қателерді кейде тік деп атайды, өйткені олар тік бағанда жол түріндегі символ биттерін ауыстыру кезінде оңай байқалады. Циклдік артық кодтар тік қателерді бақылау сомасына қарағанда жақсы байқайды. Екіншіден, циклдік артық кодтар әсіресе тасымалданатын деректер биттерінің кішігірім жиынтығының бұрмалануымен пайда болған қателерді табу кезінде өте ыңғайлы. Мұндай бұрмаланулар қателер дестесі деп атайды. Қателер дестесін табу өте маңызды, өйткені олар желілік аппараттық жабдықтаумен жойылуы тиісті көптеген проблемалар себебі болып табылады. Мысалы, қателер дестесі көбінесе айбарлы разрядтар сияқты электр бөгеулері әсерінен және сонымен қатар деректер тасымалданатын кабельмен электродвигательді іске қосқанда пайда болатын электромагниттік бөгеулер әсерінен туындайды. Фрейм форматы және қателерді табу механизмі.Әдетте желілерде әр фрейммен бірге қателерді табуға қажетті ақпарат жіберіледі. Жіберуші бақылау сомасын немесе циклдік артық кодты есептеп, оларды фрейм деректерімен бірге жібереді. Қабылдаушы да осындай мәнді есептеп, оны фреймде жіберілген қызметтік ақпаратпен салыстырады. 5.9-суретте 5.3-суреттегі берілген фреймнің қарапайым форматын eot символынан кейін 16-биттік бақылау сомасы өрісін қосып қалай кеңейтуге болатындығы көрсетілген.
5.9-сурет. 5.3 - суретте берілген фрейм форматының 16-биттік циклдік артық кодпен модификациялау. Ескеретін жағдай, фрейм форматындағы soh, eot және esc символдарын алмастыру үшін деректерге байттар қосылады. CRC үшін байттарды қосу қажет пе? Жауап қателерді табу тәсіліне байланысты. Циклдік артық код биттердің еркін жолдарын құрағандықтан, CRC-дегі бір немесе екі сегізбиттік мән арнайы символға (soh, eot және esc) сәйкес болуы мүмкін. Егер символдар жоғалмай, тек зақымданса, қабылдаушы eot символына ілесетін екі символдың фрейм дұрыстығын тексеру үшін қолданылуы тиісті 16-биттік циклдік артық кодты бейнелейтіндігін тұжырымдауға құқылы. Қосымша тексеру ретінде қабылдаушы soh символының келесі фреймнің басы екеніне сендіру мақсатында CRC-ге ілесетін символды қарастыруына болады. Сондықтан егер символдарды жоғалту болмаса, CRC-ге байттарды қосу қажет емес. Алайда егер тасымал кезінде символдардың жоғалуы мүмкін болса, CRC-ге байттарды қосу тасымалдау сенімділігін арттыруға мүмкіндік береді. CRC-дегі екінші символ жоғалып қалған жағдайды қарастырайық. Егер қабылдаушы eot символына ілесетін 2 сегізбиттік символ CRC-ді құрайтынын мөлшерлесе, онда ол келесі фреймнің soh символын CRдің бөлігі ретінде оқиды. әрине, есептелген CRС-ді оқылғанмен салыстырса, қабылдаушы олардың сәйкес келмейтіндігін байқайды да, фреймді ысырып тастайды. өкінішке орай, осыдан соң қабылдаушы келесі фреймді де өткізіп жібереді, өйткені ол soh символын көрмейді. Ос |