CRC kodo paskirtis ir pritaikymas

CRC kodo paskirtis ir veikimo principas:
CRC (Cyclic Redundancy Check) kodas naudojamas duomenų klaidoms aptikti tiek visame faile tiek ir failo dalyje (pakete) pastarasis atvejis naudojamas dažniausiai nes dauguma tinklų duomenis siunčia paketais, paketus būtina kokiu nors būdu tikrinti nes perduodant duomenis (juos „skaldant“ i paketus) neišvengiama klaidų kurios gali atsirasti dėl įvairiausių priežasčių. Be CRC kontrolės yra sukurta ir kitokių klaidų aptikimo kodų tokių kaip: RS-232, MD5 ir t.t.
Žemiausio lygio aparatinė įranga (hardware) persiunčia bitus laidais, radijo bangomis ar sttiklo pluoštu. Dauguma tinklų tiekia patogesnę sąsają (interface), kuri leidžia kompiuteriui persiųsti duomenų bitus tinklu be jų individualaus valdymo ir be žinojimo, kaip aparatūra koduoja bitus signale.
Dauguma kompiuterių tinklų nesiunčia reikalingo informacijos kiekio ištisai. Tinklų sistema padalina duomenis į mažus blokus, vadinamus paketais (packets) ir juos siunčia individualiai. Kompiuterių tinklai dažnai vadinami paketų tinklais (packets networks) arba paketų perjungimo (komutavimo) tinklais (packet switching networks), kadangi naudoja paketų technologiją.
Pagrindiniai paketų panaudojimo motyvai yra tokie:
• siuntėjas ir gavėjas turi koordinuoti perdavimą. Peerdavimo metu įvykus klaidai, duomenys gali būti prarasti. Duomenų padalinimas į smulkius paketus padeda siuntėjui ir gavėjui nustatyti, kuris blokas atėjo sugadintas ir kuris ne.
• komunikavimo grandinės ir su jomis susijusieji modemai yra brangūs, tai dauguma kompiuterių bendrai naudojasi toliau esančiais ap

paratūra ir perdavimo linijomis. Norint, kad visi kompiuteriai galėtų priimti informaciją, reikia, kad jie naudotų komunikavimo linijas palyginti trumpai ir nekliudytų kitiems kompiuteriams kreiptis į kitus.
Ankstesni kompiuterių tinklai negarantuodavo greitos kreipties. Tokie tinklai leisdavo programai naudoti tinklus ilgai, tiek, kiek jai reikėdavo. Kita programa galėjo naudotis tinklu, tik pirmajai baigus darbą. Šiuolaikiniai tinklai leidžia kreiptis į tinklą greičiau, nes kompiuteris gali užimti tinklą tik vieno paketo siuntimui. Po to paketą siunčia kitas kompiuteris, po to kitas ir taip toliau. Kaip parodyta pav. 1, keturi kompiuteriai dalijasi komunikavimo kanalą. Kol kompiuteris A siųs duomenis kompiuteriui B, kompiuteriai C ir D turės laukti. Persiuntimo laikas priklauso nuo duomenų kiekio ir siuntimo greičio. Pavyzdžiui, jei reikia persiųsti 5 megabitų failą 56000 bps greičiu, tai užtruks apie 12 min. Jeei galima naudotis tinklu išskirtinai, tai kitiems kompiuteriams gali tekti ilgai laukti. Ir priešingai, jei duomenys bus padalinti į paketus po 8000 bitų ir kompiuteris A persiuntęs vieną paketą leis siųsti kompiuteriui C, tai pastarajam tereikės laukti 0.143 s. Tiek užims vieno paketo persiuntimas nagrinėjamu greičiu. Akivaizdu, kad toks kompiuterių tinklo naudojimas yra efektyvesnis.
Vienos priežasties, dėl kurios yra naudojami paketai, iliustracija. Kai viena kompiuterių pora perduoda duomenis, kita turi laukti (pagal D. Comer)
Paketai ir laiko dalijimo sutankinimas
Kompiuterių tinklai, kurie leidžia daugeliui šaltinių paeiliui na
audotis dalijamomis komunikavimo priemonėmis, naudoja laiko dalijimo sutankinimą (multiplexing). Iliustruojama ši idėja.Šaltiniai paeiliui naudoja bendrą komunikavimo kanalą. kompiuteris 1 siunčia paketą (paveikslėlio a dalis), po to kompiuteris 2 (b dalis).

Paketų siuntimo sutankinimo iliustravimas
Duomenų padalijimas į mažus paketus užtikrina, kad šaltinis bus greitai aptarnautas, nes yra draudžiama užimti tinklą neapibrėžtai ilgai. Atskiru atveju, jei vienas šaltinis turi pasiųsti keletą paketų, o kitas daug, tai galimybė abiem šaltiniams siųsti paeiliui užtikrina, kad šaltinis su mažesniu paketų skaičiumi persiųs juos greičiau.
Nežiūrint į tai, kad terminas paketas susijęs su bendra mažų duomenų blokų koncepcija, nėra bendro susitarimo apie tikslų paketų formatą. Kiekvienas techninis įrenginys tiksliai apibrėžia paketo, kuris gali būti persiųstas šiuo įrenginiu, detales. Taip pat tiksliai yra nurodoma, kaip persiunčiamas kiekvienas bitas. Geresniam atskyrimui pagrindinės paketų persiuntimo idėjos ir specifinio paketų apibrėžimo duotai techninio aprūpinimo technologijai, yra naudojamas terminas duomenų grupė arba freimas (frame), apibrėžiantis paketą, naudojamą su specifiniu tinklų tipu. Taigi pirmasis terminas (paketas) nurodo maksimalų duomenų kiekį freime , antrasis – kokia tvarka freimo bitai siunčiami tinklu.
Jei reikia persiųsti duomenų bloką iš vieno kompiuterio į kitą naudojantis į simbolius orientuotą perdavimo schemą RS-232, tai standartas nustato kaip koduoti bitus ir persiųsti baitus, tačiau nėra mechanizmo, kuris leistų siuntėjui pranešti apie duomenų bloko pabaigą. Siunčiantis ir priimantis kompiuteriai tu

uri susitarti apie šias detales, tai yra kaip jie žymės kiekvieno freimo pradžią ir pabaigą. Jei siunčiami duomenys neapima visų galimų reikšmių, tinklo sistema gali pasirinkti dvi nenaudojamas reikšmes ir naudoti jas kiekvieno freimo pradžios ir pabaigos žymėjimui. Dėl tos priežasties tinklas gali naudoti du nespausdinamus ASCII simbolius freimo riboms nurodyti. kaip atrodys freimas, jei tinklas naudos ASCII simbolius soh (šešioliktainis 01) ir eot (šešioliktainis 04) freimo ribojimui.

Freimas naudoja simbolius soh ir eot pažymėti pradžiai ir pabaigai
Formatas yra paprastas ir nedviprasmiškas – gavėjas gali pasakyti, kada atėjo freimas net jei yra vėlinimas tarp atskirų simbolių. Tokia freimo sudarymo schema turi trūkumų ir privalumų. Svarbiausias trūkumas yra tai, kad siunčiant du freimus iš eilės, reikia siųsti bereikalingą jo pradžios simbolį. Šiuo atveju pirmojo freimo pabaigoje siunčiamas eot ir po to iš karto soh, nors tokiais atvejais užtektų vieno simbolio duomenų bloko atskyrimui. Jei nesiimti jokių priemonių, yra siunčiamas vienas nereikalingas simbolis. Pagrindinis privalumas – kad yra aiškios freimo ribos esant didesniems vėlinimams tarp blokų arba kompiuterio netikėto darbo pertrūkio atveju. Galima pradėti siųsti freimą iš naujo, nes asinchroninis perdavimas leidžia neapibrėžtai ilgą laiką tarp simbolių perdavimo. Dar daugiau, kompiuteris perdavimo ar priėmimo metu gali sustoti ir operacinė sistema įkelta iš naujo. Naudojant du simbolius ka

adro riboms nurodyti, minėtos situacijos yra valdomos gerai. Jei siunčiantysis kompiuteris sustos nebaigęs siųsti pilno freimo , simbolis eot neateis į priimantįjį kompiuterį ir jis žinos, kad freimas yra nepilnas. Kuomet siuntėjas susitvarkys savo operacinę sistemą ir pradės siųsti freimą , jis prasidės simboliu soh ir gavėjas žinos, kad buvo problema. Jei sustos gavėjo kompiuteris ir operacinė sistema bus įkelta iš naujo, jis galės naudoti soh simbolį pasirinkimui dviejų galimybių: sistemos įkėlimas įvyko prieš siuntėjui pradedant siųsti freimą (šiuo atveju soh ateina prieš visus kitus freimo simbolius) arba siuntėjas pradėjo siųsti prieš įkeliant operacinę sistemą (šiuoatveju soh bus prarastas ir kiti simboliai ateis pirmaisiais).
Baitų pakeitimas
Nors simbolių panaudojimas kadro pradžios ir pabaigos žymėjimui turi privalumų, kompiuterių tinklais reikia siųsti ne vien tik simbolinius duomenis, reikia siųsti bet kokius simbolių kodus. Dėl tos priežasties siunčiamuose duomenyse gali pasitaikyti vienas ar keli simboliai soh ir eot, kurie naudojami freimo ribų nurodymui. Paprastas tokių simbolių pasiuntimas su duomenų bloku gali iššaukti įvairias problemas. Pavyzdžiui, gavėjas gali interpretuoti eot simbolį kaip freimo pabaigą. Panašiai simbolis soh sakys, kad prasideda naujas freimas . Jei dar šie simboliai ateis negera tvarka, tai iššauks visišką chaosą.
Toks simbolių naudojimas valdymo informacijai reikalauja, kad siunčiančioji pusė prieš siųsdama informaciją, ją truputį pakeistų, o priimančioji ją priėmusi atstatytų prieš naudojimą. Tokiu atveju, programos, naudojančios tinklą, gali siųsti bet kokią informaciją ir tinklo sistema niekada nesumaišys duomenų su valdančia informacija. Dažnai tinklai įterpia papildomus bitus ar baitus į siunčiamus duomenis ir tai vadinama duomenų įterpimu (data stuffing). Simbolių įterpimas ir baitų įterpimas atitinka duomenų įterpimą į simbolių perdavimą orientuotoje aparatinėje dalyje. Bitų įterpimas atitinka duomenų įterpimui į bitais orientuotą aparatinę dalį. Vienas iš būdų, kaip duomenų įterpimas gali leisti įtraukti į freimą bet kokius duomenis, yra valdančiųjų simbolių freimo viduje pakeitimas kitais. Jei sutarta, kad siuntėjas ir gavėjas naudos simbolius soh ir eot freimo ribų nurodymui, tai reiškia šie du simboliai negali pasitaikyti siunčiamuose duomenyse. Šią problemą gali išspręsti baitų įterpimas, kuris rezervuotų trečią simbolį specialių simbolių pasirodymui duomenyse pažymėti. Tokiu simboliu, pavyzdžiui, gali būti ASCII simbolis esc (šešioliktainis kodas 1B). Kuomet bet kuris iš trijų specialių simbolių sutinkamas duomenyse, siuntėjas įterpia esc ir pakeičia šį simbolį kitu. Lentelėje parodytos galimos pakeitimo reikšmės.
Simbolis duomenyse Siunčiamas simbolis
Soh Esc x
Eot Esc y
Esc Esc z

Baitų įterpimo iliustracija.
Paveikslėlio dalyje (a) rodomi duomenys, kuriuose yra simboliai soh, eot, esc. Dalyje (b) – freimas po baitų įterpimo. Kiekvieną simbolį, esantį kairėje lentelės pusėje, siuntėjas persiunčia dvejais simboliais, esančiais dešinėje lentelės pusėje. Punktyrinė linija rodo vietas, kur į pradinius duomenis buvo įterpti nauji simboliai.
Baitų įterpimo atlikimui siuntėjas prieš siųsdamas duomenis turi patikrinti, ar juose nėra minėtų valdančių simbolių. Kaip parodyta lentelėje, siuntėjas kiekvieną simbolį soh pakeičia dviem simboliais esc ir x, kiekvieną simbolį eot – esc ir y ir kiekvieną esc – esc ir z. Gavėjas, atsisiuntęs tokius duomenis, turi surasti juose visus simbolius esc ir pakeisti jo kombinaciją su sekančiu simboliu atitinkamu vienu simboliu.
Perdavimo klaidos
Žaibas, įtampos svyravimai ir kiti elektromagnetiniai trikdžiai gali sukelti nepageidaujamą elektros srovę komunikavimo aparatūros elektroniniuose įrenginiuose ar laiduose. Kartais tai gali pilnai sugadinti tinklo aparatūrą, tačiau dažniau šie trikdžiai pakeičia siunčiamą signalą. Mažas pasikeitimas elektriniame signale gali privesti prie to, kad gavėjas blogai interpretuos vieną ar daugiau duomenų bitų. Dar daugiau, trikdžiai signalą gali sugadinti visiškai ir gavėjas neužfiksuos, kad atėjo kokie nors duomenys. Bendrai ši problema yra vadinama perdavimo klaidomis. Yra keletas šios problemos sprendimo būdų, tačiau nė vienas iš jų neišsprendžia problemos pilnai.
Lyginumo bitai ir lyginumo kontrolė
Dauguma komunikavimo sistemų nedažnai patiria tarpusavio sąveiką. Pavyzdžiui lokalioje komunikavimo sistemoje grandinės dažnai dirba metais be rimtų problemų. Svarbiausia, kad trikdžiai didelio atstumo komunikavimo grandinėse gali būti tokie maži, jog modemai gali išspręsti problemą patys. Nežiūrint į mažą klaidų tikimybę, tinklų projektuotojai mano, kad klaidos gali įvykti ir kuria aparatūrinius ir programinius mechanizmus jų aptikimui ir pašalinimui. Prieš tai buvo aprašytas RS-232 aparatūroje naudojamas mechanizmas klaidų aptikimui: kuomet simbolis pradedamas priimti, gavėjas įjungia laiko skaitiklį ir pagal jį tikrina ateinančius bitus. Jei signalas nebūna reikiamos įtampos reikiamą laiko momentą arba stop-bitas neateina reikiamu metu, aparatinė dalis praneša apie įvykusią klaidą. Dauguma RS-232 įrenginių naudoja dar vieną mechanizmą atsiunčiamų simbolių tikrinimui – tai lyginumo kontrolė (parity check). Siuntėjas apskaičiuoja papildomą bitą, vadinamą lyginumo bitu, prideda jį prie siunčiamo simbolio bitų. Gavęs visus simbolio bitus, gavėjas atskiria lyginumo bitą, apskaičiuoja jį pats ir palygina su gautuoju. Lyginumo kontrolė yra pagrįsta tuo, kad jei vienas bitas buvo persiųstas neteisingai, lyginumo bitai nesutaps ir bus aišku, kad įvyko persiuntimo klaida. Yra dvi lyginumo formos – tai lyginė ir nelyginė. Siuntėjas ir gavėjas turi susitarti, kuri iš jų bus naudojama. Jei naudojama kontrolė pagal lyginumą, tai papildomas bitas nustatomas į 0 arba 1, kad bendras 1 skaičius simbolyje būtų lyginis. Pavyzdžiui, lyginumo bitas simboliui 0100101 yra 1, nes simbolis turi nelyginį skaičių vienetų. Simbolio 0101101 lyginumo bitas bus 0, nes simbolis ir taip turi lyginį vienetų skaičių. Jei visi bitai buvo persiųsti teisingai, gavėjo suskaičiuotas lyginumo bitas sutaps su gautuoju. Jei persiuntimo metu vienas bitas bus pakeistas, lyginumo bitai nesutaps ir bus gautas pranešimas apie klaidą. Klaidų nustatymui tinklų sistema dažniausiai su duomenimis siunčia nedidelį kiekį papildomos informacijos. Siuntėjas apskaičiuoja papildomos informacijos reikšmę pagal siunčiamus duomenis, o gavėjas atlieka tuos pačius skaičiavimus su gauta informacija. Pastarojo gauta reikšmė turi sutapti su gauta papildoma informacija.
Lyginumo kontrolės mechanizmas veikia gerai, kai reikia nustatyti vieną klaidą, tačiau negali nustatyti visų galimų klaidų. Galima panagrinėti atveją, kai persiuntimo metu bus neteisingai perduoti du bitai. Čia gali būti trys atvejai: du nuliniai bitai virs į vienetinius, du vienetiniai bitai virs į nulinius arba vienas 0 virs 1 ir vienas 1 virs 0. Bet kuriuo atveju bendras vienetukų skaičius lieka lyginis. Reiškia, kad lyginumo kontrolė negali nustatyti klaidos, jei perdavimo metu buvo neteisingai perduoti du bitai arba bendriau, jei yra neteisingai perduodamas lyginis skaičius bitų. Blogiausiu atveju, jei simbolis turi visus 1 ir jie perduodami kaip visi 0, tai lyginumo kontrolė rodo, kad viskas gerai.
Yra ir kitokių perdavimo klaidų nustatymo mechanizmų. Kiekviename iš jų siuntėjas su duomenimis siunčia papildomą informaciją, o gavėjas naudojasi šia informacija nustatyti, ar duomenys gauti teisingi. Skirtumas tarp klaidų nustatymo mechanizmų yra trijų rūšių: pirma, papildomos informacijos kiekis (tai nustato papildomai siunčiamos informacijos kiekį), antra, apskaičiavimo algoritmo kompleksiškumas (tai apibrėžia skaičiavimų kiekį, reikalingą informacijai sukurti ir patikrinti), trečia, kelių bitų klaida gali būti nustatyta (tai parodo metodo kokybę). Žinoma, jei perdavimo sistema pametinės bitus atsitiktinai, tai joks papildomas bitų kiekis nepadės, nes ir pati papildoma informacija gali būti perduota klaidingai. Taigi visi klaidų nustatymo metodai yra apytiksliai, galima tik kalbėti apie kokią tai tikimybę, kad duomenys bus perduoti teisingai.
Klaidų radimas kontrolinėmis sumomis
Nors buvo sugalvota įvairių klaidų suradimo mechanizmų, tačiau praktikoje naudojami tik keli iš jų. Daug kompiuterių tinklų kartu su kiekvienu paketu siunčia kontrolines sumas (checksum), pagal kurias gavėjas tikisi surasti klaidas. Kontrolinės sumos apskaičiavimui siuntėjas traktuoja duomenis kaip sveikų dvejetainių skaičių seką ir skaičiuoja jų sumą. Tikrumoje duomenys gali būti ne vien sveiki skaičiai, tai gali būti simboliai, slankaus kablelio skaičiai ar vaizdai. Tinklų sistema tik traktuoja duomenis kaip sveikų skaičių seką kontrolinės sumos apskaičiavimui. Pavyzdžiui, pav. 5 parodo 16 bitų kontrolinės sumos paskaičiavimą mažai teksto eilutei. Kontrolinės sumos paskaičiavimui siuntėjas traktuoja kiekvieną simbolių porą kaip 16 bitų sveiką skaičių ir apskaičiuoja jų sumą. Jei suma tampa didesnė nei 16 bitų, pernešimo bitas pridedamas prie galutinės sumos.

Eilutės iš 12 ASCII simbolių 16 bitų kontrolinės sumos skaičiavimo pavyzdys
Kontrolinės sumos turi privalumų ir trūkumų. Pagrindinis privalumas yra jų dydis ir skaičiavimo paprastumas. Dauguma tinklų naudoja 16 arba 32 bitų kontrolines sumas ir apskaičiuoja vieną kontrolinę sumą kiekvienam paketui. Kontrolinės sumos mažas dydis reiškia, kad jos persiuntimas yra žymiai pigesnis, nei visas duomenų persiuntimas. Dar daugiau, kadangi kontrolinių sumų gavimui reikalinga tik sumavimo operacija, tai jų gavimui ir tikrinimui reikalingi maži skaičiavimo resursai. Kontrolinės sumos turi trūkumą, nes suranda ne visas klaidas. Lentelėje parodyta, kad kontrolinė suma nėra pakankama surasti perdavimo klaidas, jei jos gaunamos invertavus bitus kiekviename iš keturių duomenų elementų. Nežiūrint į šiuos pakeitimus, gavėjas nustatys, kad paketas turi gerą kontrolinę sumą.
Duomuo Reikšmė Duomuo Reikšmė
0001 1 0011 3
0010 2 0000 0
0011 3 0001 1
0001 1 0011 3
Iš viso 7 Iš viso 7
Antrojo bito invertavimas kiekviename duomenų elemente sukuria tokią pat kontrolinę sumą.
Klaidų radimas cikline pertekline kontrole
Daugiau klaidų nei su kontroline suma, galima pasinaudojant cikline pertekline kontrole (Cyclic Redundancy Check, CRC). Nors ji gali būti analizuojama matematiškai, CRC mechanizmo paprastumas gali būti pamatytas analizuojant jo realizavimo aparatinę dalį. Aparatinė dalis, kuri naudojama CRC skaičiavimui, naudoja du paprastus komponentus: postūmio registrą (shift register) ir griežtojo ARBA (exclusive OR, XOR) schemą.

Griežtojo ARBA žymėjimas schemose ir jo reikšmių lentelė (teisingumo lentelė).
Toks CRC skaičiavimas naudojamas ne tik kompiuterių tinkluose, bet ir magnetiniuose įrenginiuose. Čia taip pat yra tikrinama, ar duomenys teisingai įrašomi ir skaitomi.
Kitas įrenginys, naudojamas CRC skaičiavimui, yra postūmio registras. Postūmio registre gali būti tik fiksuotas skaičius bitų (pavyzdžiui 16) ir kuomet vienas įrašomas vienas bitas išeina iš registro. Taip pat įsivaizduojama, kad postūmio registras turi išėjimą, kurio reikšmė yra pačio kairiojo bito reikšmė. Kuomet keičiasi bito reikšmė, keičiasi ir išėjimas. Postūmio registras vykdo dvi operacijas: pradinės reikšmės nustatymas ir postūmis. Pradinės reikšmės nustatymas, tai visų bitų nustatymas į nulinę padėtį. Šiuo atveju ir išėjimas yra nulis. Postūmio operacijos metu visų bitų reikšmės yra perstumiamos per vieną poziciją į kairę. Į pačią dešiniąją poziciją įrašoma įėjimo reikšmė, o pačiojo kairiojo bito reikšmė tampa išėjimo reikšme. Pav. 7 rodoma, kaip bitų reikšmės juda postūmio operacijos metu ir kaip keičiasi išėjimo signalas.

Postūmio registras prieš (a) ir po (b) postūmio operacijos.
Postūmio metu kiekvieno bito reikšmė yra perrašoma kairėje esančiam bitui, o pačio kairiojo bito reikšmė tampa išėjimo reikšme. Įėjimo reikšmė yra įrašoma į dešiniąją skiltį tik postūmio operacijos metu. Paveikslėlio dalyje (a) matyti, kad įėjimo reikšmė yra 1, o dešiniosios registro skilties reikšmė 0. Ji pasikeičia tik po postūmio operacijos.
Sujungiant šiuos du įrenginius į vieną, gaunamas CRC skaičiavimo įrenginys, kuris gali būti realizuotas ir programiškai.

Kai visi siunčiami duomenys yra įvedami į įrenginį, postūmio registre bus siunčiamų duomenų 16 bitų CRC. Aparatinė dalis susideda iš trijų postūmio registrų sujungtų XOR schemomis. Kairiosios XOR schemos išėjimas patenka į tris vietas: į dvi kitas XOR schemas ir į dešinįjį postūmio registrą. Šiame pavyzdyje postūmio registrai turi 4, 7 ir 5 skiltis, tačiau paskirstymas gali būti ir kitoks. CRC reikšmės paskaičiavimui pradžioje visi registrai nustatomi į nulinę padėtį ir duomenų bitai perstumiami per vieną. Yra įvairių CRC skaičiavimo algoritmų, besiskiriančių bitų skaičiumi trejuose registruose ir pradine registrų reikšme. Pirmasis duomenų bitas patenka į dešiniąją schemą XOR (įėjimas input), suformuojamas jos išėjimas ir visi trys registrai kartu vykdo postūmio operaciją. Taip daroma su kiekvienu siunčiamos informacijos bitu ir gaunama 16 bitų CRC suma. Gavėjas naudoja tokį pat įrenginį gautos informacijos CRC sumai paskaičiuoti ir palygina suskaičiuotą ir gautą reikšmes. Galima nurodyti dvi priežastis, dėl kurių CRC gali aptikti daugiau klaidų, negu paprasta kontrolinė suma. Pirmiausia tai, kad dešiniosios XOR schemos išėjimas grįžta į visus tris registrus ir vienas duomenų bitas veikia į CRC formavimą žymiai stipriau. Antra, kadangi naudojamas grįžtamas ryšys į tris vietas, tai kiekvienas duomenų bitas pereina registrą daugiau negu vieną kartą. Matematinė analizė patvirtina tai, kad CRC gali aptikti daugiau klaidų, negu kontrolinė suma.
Tinklai dažniausiai susieja klaidų nustatymo informaciją su kiekvienu freimu. Siuntėjas apskaičiuoja kontrolinę sumą arba CRC ir pasiunčia šią papildomą informaciją kartu su feimu. Gavėjas apskaičiuoja tą pačią reikšmę ir palygina ją su atėjusia papildoma informacija. Pav. 9 iliustruoja kaip galėtų atrodyti paprastas feimas, parodytas, kartu su 16 bitų kontrolinės sumos lauku, einančiu po eot simbolio.

Baitų įterpimas reikalingas duomenims, bet nereikalingas CRC, kuri eina po eot simbolio.

Literatūra:
T.Masiulis “pramonine elektronika”
Paskaitų konspektai.
Platusis internretas.

Leave a Comment