PŘEDNÁŠKA PS 6 Přenos dat v počítačových sítích



Podobné dokumenty
Kódování signálu. Problémy při návrhu linkové úrovně. Úvod do počítačových sítí. Linková úroveň

Kódováni dat. Kódy používané pro strojové operace

PSK2-5. Kanálové kódování. Chyby

Způsoby realizace této funkce:

KOMBINAČNÍ LOGICKÉ OBVODY

Data v počítači. Informační data. Logické hodnoty. Znakové hodnoty

uvedení do problematiky i Bezpečnostní kódy: detekční kódy = kódy zjišťující chyby samoopravné kódy = kódy opravující chyby příklady kódů:

Počítačové sítě Datový spoj

cv3.tex. Vzorec pro úplnou pravděpodobnost


Informace, kódování a redundance

Aritmetické operace a obvody pro jejich realizaci

Matematika IV 10. týden Kódování

[1] samoopravné kódy: terminologie, princip

Teorie informace a kódování (KMI/TIK) Reed-Mullerovy kódy

4. Co je to modulace, základní typy modulací, co je to vícestavová fázová modulace, použití. Znázorněte modulaci, která využívá 4 amplitud a 4 fází.

Struktura a architektura počítačů (BI-SAP) 5

Počítačové sítě Datový spoj

Architektura počítačů Logické obvody

1 Co jsou lineární kódy

Kódy a kódování dat. Binární (dvojkové) kódy. Kód Aikenův

Architektura počítačů Logické obvody

Zpracování multimediálních dat

Kódy pro detekci a opravu chyb. INP 2008 FIT VUT v Brně

Informace v počítači. Výpočetní technika I. Ing. Pavel Haluza ústav informatiky PEF MENDELU v Brně haluza@mendelu.cz

Disková pole (RAID) 1

Číselné vyjádření hodnoty. Kolik váží hrouda zlata?

Mikroprocesorová technika (BMPT)

Úvod do teorie informace

Informatika Kódování. Obsah. Kód. Radim Farana Podklady předmětu Informatika pro akademický rok 2007/2008

Osnova přednášky. Informace v počítači. Interpretace dat. Údaje, data. Úvod do teorie informace. Výpočetní technika I. Ochrana dat

Operace ALU. INP 2008 FIT VUT v Brně

SČÍTAČKA, LOGICKÉ OBVODY ÚVOD TEORIE

[1] samoopravné kódy: terminologie, princip

Čísla v plovoucířádovéčárce. INP 2008 FIT VUT v Brně

Disková pole (RAID) 1

Vrstvy periferních rozhraní

Samoopravné kódy, k čemu to je

Polynomy. Mgr. Veronika Švandová a Mgr. Zdeněk Kříž, Ph. D. 1.1 Teorie Zavedení polynomů Operace s polynomy...

II. Úlohy na vložené cykly a podprogramy

DSY-6. Přenosový kanál kódy pro zabezpečení dat Základy šifrování, autentizace Digitální podpis Základy měření kvality přenosu signálu

Hammingovy kódy. dekódování H.kódů. konstrukce. šifrování. Fanova rovina charakteristický vektor. princip generující a prověrková matice

Číselné soustavy v mikroprocesorové technice Mikroprocesorová technika a embedded systémy

1 z :27

6 Algebra blokových schémat

Kódy pro odstranění redundance, pro zabezpečení proti chybám. Demonstrační cvičení 5 INP

Řízení IO přenosů DMA řadičem

Cyklické redundantní součty a generátory

Datové struktury 2: Rozptylovací tabulky

3. Sekvenční logické obvody

Y36SAP. Osnova. Číselné soustavy a kódy, převody, aritmetické operace Y36SAP Poziční číselné soustavy a převody.

1 Mnohočleny a algebraické rovnice

SEKVENČNÍ LOGICKÉ OBVODY

Základní principy zobrazení čísla Celá čísla s pevnou řádovou čárkou Zobrazení reálných čísel Aritmetika s binárními čísly

Popis programu EnicomD

Hammingův kód. Vladislav Kosejk. České vysoké učení technické v Praze Fakulta jaderná a fyzikálně inženýrská Detašované pracoviště Děčín

VY_32_INOVACE_CTE_2.MA_04_Aritmetické operace v binární soustavě Střední odborná škola a Střední odborné učiliště, Dubno Ing.

Jak v Javě primitivní datové typy a jejich reprezentace. BD6B36PJV 002 Fakulta elektrotechnická České vysoké učení technické

1. 5. Minimalizace logické funkce a implementace do cílového programovatelného obvodu CPLD

1 Mnohočleny a algebraické rovnice

Maticí typu (m, n), kde m, n jsou přirozená čísla, se rozumí soubor mn veličin a jk zapsaných do m řádků a n sloupců tvaru:

Generující kořeny cyklických kódů. Generující kořeny. Alena Gollová, TIK Generující kořeny 1/30

Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace


Algoritmizace a programování

Základní principy konstrukce systémové sběrnice - shrnutí. Shrnout základní principy konstrukce a fungování systémových sběrnic.

0.1 Úvod do lineární algebry

Algoritmy I. Číselné soustavy přečíst!!! ALGI 2018/19

PŘEVOD DAT Z PARALELNÍCH NA SÉRIOVÁ. 1. Seznamte se s deskou A/D P/S (paralelně/sériového) převodníku stavebnicového systému OPTEL.

Operace s maticemi. 19. února 2018

Binární data. Číslicový systém. Binární data. Klávesnice Snímače polohy, dotykové displeje, myš Digitalizovaná data odvozená z analogového signálu

5. Sekvenční logické obvody

Křivky a plochy technické praxe

Matematika (CŽV Kadaň) aneb Úvod do lineární algebry Matice a soustavy rovnic

Vektorové podprostory, lineární nezávislost, báze, dimenze a souřadnice

Základní jednotky používané ve výpočetní technice

Disková pole (RAID) 1

Čísla, reprezentace, zjednodušené výpočty

Analyzátor sériového rozhraní RSA1B

Digitální obvody. Doc. Ing. Lukáš Fujcik, Ph.D.

(Cramerovo pravidlo, determinanty, inverzní matice)

Inženýrská statistika pak představuje soubor postupů a aplikací teoretických principů v oblasti inženýrské činnosti.

VEKTORY. Obrázek 1: Jediný vektor. Souřadnice vektoru jsou jeho průměty do souřadných os x a y u dvojrozměrného vektoru, AB = B A

Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

Zobrazení dat Cíl kapitoly:

Čísla, reprezentace, zjednodušené výpočty

Vektory a matice. Obsah. Aplikovaná matematika I. Carl Friedrich Gauss. Základní pojmy a operace

Program "Světla" pro mikropočítač PMI-80

Modulace analogových a číslicových signálů

Vrstvy periferních rozhraní

)(x 2 + 3x + 4),

Typy a použití klopných obvodů

PJC Cvičení #2. Číselné soustavy a binární reprezentace proměnných

Pomocný text. Polynomy

ARITMETICKÉ OPERACE V BINÁRNÍ SOUSTAVĚ

Zabezpečení datových přenosů pomocí CRC

Odpřednesenou látku naleznete v kapitole 3.3 skript Diskrétní matematika.

Úlohy klauzurní části školního kola kategorie A

Bitová přenosová rychlost odpovídá podle obr. 1. době trvání jednoho bitu podle vztahu. 1 bit.s ; s

BCH kódy. Alena Gollová, TIK BCH kódy 1/27

Transkript:

PŘEDNÁŠKA PS 6 Přenos dat v počítačových sítích Část 2 Osnova Metody detekce chybovosti Pravděpodobnost chyby ve zprávě Parita Kontrolní blokový součet (pseudosoučet) Redundantní cyklické kódy Jiný způsob reprezentace cyklického zabezpečení 3.4 Metody detekce chybovosti Při přenosu dat mezi dvěma DTE reálnými přenosovými médii počítačových sítí dochází k chybám vlivem různých rušivých vlivů To znamená, že signálové prvky reprezentující 1 bity budou přijímačem interpretovány jako 0 bity a 0 bity zase opačně jako bity 1. Proto musí mít přijímač možnost zjistit s vysokou pravděpodobností, že došlo k chybám. A nejen to, přijímač musí mít při detekci chyb k dispozici mechanizmus, jak získat věrohodnou kopii správné informace. Pro potlačení vlivu chyb existují dvě metody: (1) Metoda korekce chyb s jednosměrným přenosem dat k přijímači (forvard error control), při které každý vyslaný znak nebo rámec musí obsahovat nadbytečnou informaci umožňující přijímači nejenom detekovat přítomnost chyb, ale také určit jejich umístění v přijaté bitové posloupnosti. Správný informační obsah se pak určí invertováním chybných bitů. 1

(2) Metoda detekce chyb s obousměrným přenosem (feedback error kontrol), při které každý vyslaný znak nebo rámec obsahuje jen nezbytné množství nadbytečné informace, která přijímači umožní detekovat přítomnost chyb, ale ne jejich umístění. Zpětný přenos žádosti o opakování původní zprávy potom zjedná nápravu. V praxi počet přídavných bitů nutných k dosažení spolehlivé korekce chyb s jednosměrným přenosem rychle vzrůstá s počtem bitů užitečné informace. Proto bude v popisu datové komunikace a počítačových sítí věnována především pozornost zpětnovazebním metodám detekce chyb. Popis způsobů jednosměrné korekce chyb leží mimo rámec tohoto kurzu. Zpětnovazební metody detekce chyb lze rozdělit na: (1) techniky sloužící pro spolehlivou detekci chyb a (2) na algoritmy realizující vhodný způsob opakování. V tomto výkladu popíšeme nejběžnější techniky detekce chyb používané v současnosti. Výběr způsobu detekce ovlivňují dva faktory: bitová chybovost přenosového média a statistika rozložení chybzda náhodné chyby vnikají jednotlivě (BER bit error rate) nebo ve shlucích (burst errors). Bitová chybovost představuje pravděpodobnost P B vzniku chybných bitů v určitém časovém intervalu. Takže bitová chybovost 10-3 znamená, že v průměru během doby přenosu se vyskytne v 1000 bitech 1 byt chybný. Budou-li při asynchronním přenosu vysílány jednotlivé 8 bitové znaky s jedním spouštěcím (start) bitem a dvěma závěrnými (stop) bity, pak při hodnotě P B = 10-3 bude pravděpodobnost P M narušení znaku 1 (1 P B ) 10 a tedy přibližně 10 2. Jestliže ale půjde o synchronní přenos bloků se 125 osmibitovými znaky, pak pravděpodobnost výskytu chybného bloku (rámce) bude přibližně rovna 1. 2

Takže v průměru bude každý blok chybný a bude nutné jej opakovat. Je jasné, že pro takový typ přenosového média je zvolená délka bloku příliš velká a s ohledem na přijatelnou průchodnost bude třeba ji zkrátit. Pravděpodobnost chyby ve zprávě Předpokládejme, že bitová chybovost přenosu je P B, že celkový počet bitů zprávy je n a pravděpodobnost chybné zprávy P M. Pravděpodobnost bezchybné zprávy bude rovna pravděpodobnosti toho, že všechny bity budou správné: (1 P B ) n Pravděpodobnost chybné zprávy bude tedy rovna hodnotě P M = 1 (1 P B ) n Hodnota n bývá často velká a i když vyčíslení výrazu pro P M počítačem je prakticky okamžité, tak přesto bude užitečné zapamatovat si pro rychlý odhad P M aproximaci, která vychází z binomického rozvoje. Binomický rozvoj platný pro všechna x a y: ( ) n n n n n n n x + y = x + x 1 y+ x 2 y 2 + + xy n + y n n n... 1 1 2 1 Výraz (1 P B ) n proto můžeme zapsat následovně: ( 1 P ) B n = 1 np B ( 1) n n + 2 P 2 B Protože v tomto výrazu je hodnota P B velmi malá, lze členy 3 s mocninou P B a s mocninami P B vyšších řádů zanedbat. Pravděpodobnost chybné zprávy bude potom P M nn npb 2 ( 1) 2 P B... 3

Tato aproximace musí být používána opatrně, protože pro velká n bude čtvrtý a možná i pátý člen binomického rozvoje nezanedbatelný. Volba detekční metody závisí na způsobu rozložení chyb ve zprávě. Počet bitů použitý k detekci je určen délkou shluků. K nejpoužívanějším metodám patří parita, kontrolní blokové součty (pseudosoučty) a redundantní cyklické kódy. Tyto metody samostatně popíšeme. 3.4.1 Parita Nejběžnější metoda používaná u asynchronního a znakově orientovaného synchronního přenosu je parita. U této metody vloží vysílač do přenášeného znaku jeden přídavný paritní bit. Použitý paritní bit je funkcí bitů tvořících znak určený k přenosu. Přijímač aplikuje na každý přenesený znak stejnou funkci a získaný výsledek porovná s přijatou paritou. Při kladném výsledku je přenos v pořádku. V opačném případě je přenos chybný. Při výpočtu paritního bitu se počet jedničkových bitů kódu pro vyjádření znaku sečte ve sčítačce mod 2 a paritní bit se potom vybere tak, aby celkový počet jedniček včetně vlastního paritního bitu byl buď sudý (sudá parita), nebo lichý (lichá parita). Princip metody znázorňuje obr.3.14. Dva příklady z obr.3.14(d) naznačují, že metoda s použitím paritního bitu detekuje pouze jediný (nebo lichý) chybný bit a že dva (nebo sudý počet) chybné bity tato metoda detekovat nebude. Použitý obvod pro výpočet paritního bitu každého znaku obsahuje hradla XOR (vylučovací nebo) která jsou zapojena podle obr.3.14(c). Hradlo XOR má stejnou funkci, jako sčítačka modulo-2, protože její pravdivostní tabulka znázorněná v obr.3.14(b) říká, že zpracování dvou stejných bitů dává stejný výsledek, jako součet dvou binárních míst bez přenosu. 4

Obr.3.14 Nejméně významný pár bitů je nejprve zpracován hradlem XOR a výstup tohoto hradla je potom zpracován s dalším (méně významným) bitem druhým hradlem XOR, atd. Výstup posledního hradla představuje požadovaný paritní bit, který je před odesláním znaku vložen do posuvného registru PISO. Podobně i v místě příjmu je paritní bit znovu vypočítán a porovnán s přijatým paritním bitem. Při nesouhlasu obou paritních bitů je detekována chyba přenosu. 5

V souladu s teorii kódování se kombinaci jednotkové zprávy (znaku) zahrnující užitečné informační bity a přídavné bity pro detekování chyb říká kódové slovo. Minimální počet bitových pozic, ve kterých se dvě platná kódová slova liší, je Hammíngova vzdálenost daného kódu. Jako příklad uvažujme kód, jehož kódová slova tvoří sedm informačních bitů a jeden bit paritní. Jestliže budeme předpokládat použití sudé parity, pak platná kódová slova budou vypadat takto: 0000000 0 0000001 1 0000010 1 0000011 0 Z uvedeného příkladu se dá usoudit, že Hammingova vzdálenost je 2, protože každé platné kódové slovo se od jiného platného kódového slova liší minimálně ve dvou pozicích. To tedy znamená, že takové schéma nebude schopné detekovat dva chybné bity, protože výsledné (narušené) kódové slovo bude sice odlišné, ale zase platným slovem uvažovaného kódu. I když tento způsob bude detekovat všechna kódová slova s jedním chybným bitem, tak přesto budou vznikat chybná kódová slova. 3.4.2 Kontrolní blokový součet (pseudosoučet) Při přenosu bloků znaků roste pravděpodobnost výskytu chybných bloků. Pravděpodobnost výskytu bloku s chybou je označována jako bloková chybovost. Při přenosu bloků (rámců) znaků můžeme schopnost detekce chyb paritními bity každého znaku zvýšit přidáním množiny paritních bitů vypočtených z celého bloku znaků (bytů) rámce. U této metody je každému znaku (byte) rámce přiřazen stejně jako v předchozím případě paritní bit (příčná nebo sloupcová parita). 6

Kromě toho se další bit vypočte pro každou bitovou pozici celého rámce (podélná nebo sloupcová parita). Výsledné množině paritních bitů všech sloupců se říká kontrolní blokový součet (pseudosoučet či křížová parita), protože každý bit kontrolního blokového součtu je součtem modulo 2 všech bitů odpovídajícího sloupce. V příkladu na obr.3.15 je pro řádky použita lichá parita a pro sloupce sudá parita, přičemž se předpokládá, že rámec obsahuje pouze znaky určené k otisku. Z příkladu můžeme usoudit, že i když dva chybné bity jednoho znaku řádková parita nezachytí, tak takové bity budou detekovány odpovídající sloupcovou paritní kontrolou. To bude ovšem platit pouze tehdy, jestli-že se ve stejné době neobjeví v tomtéž sloupci dva další chybné bity. Je jasné, že pravděpodobnost vzniku takové situace bude mnohem menší, než pravděpodobnost výskytu dvou chybných bitů v jednom znaku. Použití kontrolního blokového součtu (křížové parity) významně zlepší detekční schopnosti této metody. Varianta této metody používá místo blokového součtu modulo-2 jedničkový komplementární součet. Princip této metody je uveden v obr.3.15(b). U této varianty jsou znaky (byty) bloku určené k přenosu chápány jako binární čísla bez znaménka. Tato čísla se nejprve sečtou v 1-kové komplementární aritmetice. Všechny bity výsledného součtu se potom invertují a výsledek použije jako kontrolní znak bloku (BCC). V přijímači se 1-kový doplňkový součet všech znaků bloku včetně kontrolního znaku bloku spočítá a v případě přenosu bez chyb má být výsledek nulový. 7

Poznamenejme, že v jedničkové komplementární aritmetice se používá přenos, takže každý přenos vznikající součtem nejvýznamnějších bitů se přičítá k výsledku. A kromě toho nulu v komplementární 1-kové aritmetice reprezentují buď samé binárními nuly, nebo samé binárními jedničky. Obr.3.15 Z obr. 3.15(b) se dá usoudit, že detekční schopnost této metody je lepší, než metody založené na součtu modulo-2. Protože 1-kový komplementární součet se dá snadno spočítat, tak se tato metoda detekce používá u řady aplikací, které vyžadují pro realizaci pouze SW přístup. 8

3.4.3 Redundantní cyklické kódy Předchozí dvě metody se lépe hodí pro aplikace, ve kterých dochází k ojedinělým chybám. Při výskytu chyb ve shlucích se musí použít dokonalejší metody. Shluk chyb začíná a končí chybou, i když bity uvnitř shluku mohou, ale také nemusí být zatíženy chybami. Takže shluk chyb je vymezen bity ležícími mezi dvěma chybnými bity včetně vymezující dvojice chybných bitů. A dále když se určuje délka shluku, musíme vzít v úvahu skutečnost, zda je poslední chybný bit shluku oddělen od následujících chybného bitu počtem B dobrých bitů, nebo počtem větším, kde B představuje délku shluku. Jako příklad dvou rozdílných délek shluku může sloužit obr.3.16. Poznamenejme, že prvý a třetí chybný bit nemůže být použit pro definici jediného 11-bitového shluku chyb, protože v intervalu dalších 11 bitů se vyskytuje chyba.. Obr 3.16 Parita, nebo z ní odvozený kontrolní blokový součet nepředstavuje bezpečný prostředek pro detekci shluků chyb. V takových případech představují nejbezpečnější alternativu pro detekci chyb polynomické kódy. Polynomické kódy se používají k zabezpečení přenosu rámců (nebo bloků). 9

Z obsahu každého přenášeného rámce se vypočte a vygeneruje jedna skupina kontrolních bitů, která se připojí na konec rámce. Přijímač potom podobným způsobem vypočte pro přijatý rámec kontrolní součet. Jestliže vypočtený kontrolní součet bude souhlasit s kontrolním součtem připojeným ke konci odeslaného rámce, pak se nedetekuje žádná chyba. V opačném případě byl přenesen rámec s chybami. Počet kontrolních bitů pro zabezpečení rámce se volí podle typu předpokládané chybovosti, i když nejběžnější počet zabezpečovacích bitů je 16 nebo 32. Vypočtená kontrolní místa představují kontrolní posloupnost rámce (FCS frame check sequence) nebo také místa cyklické redundantní kontroly (CRC-cyclic redundancy check). Příslušná matematická teorie polynomických kódů vybočuje mimo rámec tohoto výkladu, ale protože tato metoda využívá vlastnosti aritmetiky binárních čísel modulo-2, tak ji stručně popíšeme. Nechť: M(x) je k-bitové číslo (zpráva určená k přenosu) G(x) je (n + 1)-bitové číslo (dělitel nebo generátor) R(x) je n-bitové číslo takové, že k > n (zbytek dělení) Potom za předpokladu platnosti aritmetiky mod-2 platí: M ( x) 2 G( x) n = Q ( x) + R G ( x) ( x),kde Q ( x) je kvocient n ( ) 2 + R( x) G( x) M x = Q( x). 10

O platnosti druhé rovnice se snadno přesvědčíme tak, že k oběma stranám prvé rovnice přičteme výraz R ( x) /G( x), a tím dostaneme následující výsledek: n ( ) 2 + R( x) G( x) ( ) ( ) ( ) ( ) M x R x R x = Q( x) + + G x G x Pravá strana takto upravené rovnice se vlastně rovná pouze kvocientu Q ( x), protože v aritmetice modulo -2 je součet stejných čísel vždycky roven nule, takže zbytek je nulový. Z prvé rovnice plyne, že celý obsah rámce M(x) rozšířený násobkem 2 n o počet nul v délce generované kontrolní posloupnosti FCS je dělen v modulo -2 druhým binárním číslem - generačním polynomem G(x), který je o jeden bit delší, než FCS. Operace dělení je ekvivalentní s operací XOR, která se realizuje bit po bitu paralelně při zpracování jednotlivých bitů rámce. Zbytek dělení R(x) se potom stává kontrolní posloupností FCS, která se odešle jako závěr za posloupností informačních bitů. Na přijímací straně se posloupnost přijatých bitů spolu s FCS bity znovu vydělí stejným generačním polynomem tedy (M(x) 2 n + R(x))/G(x) a bude-li zbytek nulový, pak přijatá zpráva bude bez chyb. Nicméně nenulový zbytek prokáže přítomnost chyby. Příklad 3.3 Posloupnost 8-bitových bloků (rámců) se má přenést datovým spojem s CRC zabezpečením pro detekci chyb. Jako generační polynom je použita posloupnost 11001. Jako příklad pro ilustraci se má realizovat proces pro (a) generování FCS (b) kontrolu FCS 11

Generování FCS pro zprávu 11100110 uvádí obr.3.17. Obr.3.17 Nejprve se ke zprávě připojí čtyři nuly vyjadřující násobení hodnotou 2 4, protože FCS bude obsahovat 4 bity. Výsledný produkt se potom vydělí (modulo 2) generačním polynomem (binárním číslem). Operace modulo-2 je ekvivalentní s operací vylučovací-nebo, realizovaná paralelně bit po bitu při zpracování každého bitu podílu. 12

V aritmetice modulo-2 můžeme také realizovat dělení v každém dílčím zbytku ovšem za předpokladu, že obě čísla budou mít stejnou délku, tedy že oba nejvýznamnější bity budou mít hodnotu 1. Přitom neuvažujeme relativní velikost obou čísel. Výsledný 4-bitový zbytek (0110) je potom FCS, který se v závěru připojí jako zakončení originálu zprávy při jejím vysílání. Kvocient se nepoužije. V přijímači se kompletní přijatá bitová posloupnost vydělí stejným generačním polynomem, jaký byl použit ve vysílači. Dva příklady uvádí obr.3.17(b). V prvém se předpokládá přenos bez chyb, takže zbytek je nulovýkvocient se zase nepoužívá. Ale ve druhém se vyskytl shluk chyb o čtyřech bitech v připojeném zakončení přenesené předpokládané bitové posloupnosti. Z toho tedy plyne, že zbytek dělení různý od nuly indikuje chybu v přenosu. Výběr generačního polynomu je důležitý proto, že určuje typ chyb, který lze detekovat. Uvažujeme přenášený rámec T(x) 110101100110 a chybovou posloupnost E(x) 000000001001 ve které bit 1 udává polohu zjištěné chyby. Takže v aritmetice modulo-2 bude: Přijatý rámec = T(x) + E(x) Tedy: T ( x ) + E x T( x) E( x) = + G( x) G( x) G( x) ale ( x) G( x) detekuje pouze tehdy, když ( x) G( x) T / nezanechává žádný zbytek. Takže chyba se E / vytvoří zbytek. 13

Například všechny generační polynomy budou obsahovat alespoň tři prvky s bitem 1 a E ( x) / G( x) bude vytvářet zbytek pro detekci všech jednotlivých chyb a všech dvojnásobných chyb s aritmetikou modulo-2. Naopak shluk chyb o stejné délce jako G(x) může být násobkem G(x) a tudíž nezanechá žádný zbytek, takže chyby detekovány nebudou. Souhrnně řečeno, generační polynom o R bitech bude detekovat Všechny jednotlivé chyby Všechny dvojnásobné chyby Lichý počet chyb Všechny shluky chyb < R Většinu shluků chyb R Běžný způsob zobrazování generačních polynomů nespočívá v binárním vyjádření, ale v takovém zápisu, ve kterém poloha jedničky na k-tém místě binárního zápisu se vyjádří jako X k. Takže zápisy generačních polynomů CRC používané v běžné praxi budou vypadat takto: CRC 16 = X 16 + X 15 + X 2 + 1 CRC CCITT = X 16 + X 12 + X 5 + 1 CRC 3 = X 32 + X 26 + X 23 + X 16 + X 12 + X 11 + X 10 + + X 8 + X 7 + X 5 + X 4 + X 2 + X + 1 Binárním vyjádřením polynomu CRC-16 bude tedy: 1 1000 0000 0000 0101 Před vygenerováním FCS pomocí tohoto generačního polynomu bude třeba připojit k obsahu rámce 16 nul. FCS bude tedy reprezentován 16-ti bitovým zbytkem. CSC-16 bude detekovat všechny shluky chyb kratší než 16 bitů a většinu shluků chyb delších nebo stejných. CRC-16 a CRC-CCITT jsou extenzivně využívány u WAN, zatím co CRC-32 u většiny LAN. 14

I když požadavek na realizaci opakovaného dělení modulo-2 se zdá velmi komplikovaný, tak v praxi jej lze obejít jednoduchým HW nebo SW. Pro ilustraci je v obr.3.18(a) uveden HW pro implementaci situace z obr.3.17. Obr.3.18 15

Z příkladu vyplývá, že pro generování čtyř míst FCS bude nutný jen 4-bitový registr pro reprezentaci x 3, x 2, x 1 a x 0 bitu v generačním polynomu. Tato čtveřice představuje aktivní bity generačního polynomu. U tohoto generačního polynomu jsou místa x 3 a x 0 obsazena binární jedničkou (1), zatím co místa x 2 a x 1 binární nulou (0). Nové stavy prvků x 1 a x 2 posuvného registru přímo závisí pouze na stavech x 0 a x 1 ; nové stavy prvků x 0 a x 3 jsou determinovány stavem zpětné vazby s hradlem XOR a předchozím bitem. Obvod pracuje následovně. Posuvný registr FCS je vyprázdněn a prvých 8-bitů rámce je paralelně zavedeno do PISO vysílacího posuvného registru. Obsah tohoto registru je potom vyslán do vedení rychlostí vysílacích hodin T C, přičemž nejvýznamnější bit se vyšle jako první. Synchronně s tímto procesem je stejná bitová posloupnost XORována s x 3 a předána prostřednictvím zpětné vazby na vybrané vstupy FCS posuvného registru. S každým dalším 8-bitovým bytem zavedeným do vysílacího posuvného registru a jeho sériovým přenosem do vedení se procedura opakuje. Po odeslání posledního bytu rámce se nakonec posuvný registr zaplní nulami a zpětnovazební řídicí signál se změní z jedničky (1) na nulu (0), takže stávající obsah FCS posuvného registruvypočtený zbytek- bude odeslán do vedení za obsahem rámce. V obr.3.18(a) odpovídají obsahy vysílacího a FCS posuvného registru zpracovávání rámce s jedním bytem (N = 1), takže je to v souladu s dříve uvedeným příkladem obr.3.17. Obr.3.18(a) zachycuje obsah vysílacího a FCS registru po každém taktovacím impulzu vysílacích hodin. Vysílanou posloupnost bitů zobrazují čárkovaná políčka. 16

HW přijímače se podobá HW vysílače (obr.3.18(b)). Obr.3.18(b) Přijímaná data (R D) jsou vzorkována (a posouvána) v přijímacím posuvném registru SIPO uprostřed (nebo se zpožděním při kódování Manchester) bitového intervalu. Bitová posloupnost je v synchronizmu XORována s x 3 a zaváděna do posuvného registru FCS stejně jako v předchozím případě. Každý přijatý byte je přečten tímto HW. Obsahy přijímacího a FCS registru odpovídají jedinému datovému bytu rámce jako u vysílacího CRC. 17

HW uvedený v obr.3.18 bývá při bitově orientovaném přenosu běžně součástí vysílacího detekčního zařízení. Ale v některých systémech se znakově orientovaným přenosem slouží CRC především pro kontrolu blokových součtů. V takových případech musí být CRC generován SW kontrolního zařízení a ne HW. Z obr.3.19 je zřejmé, že SW řešení pseudokódem je jednodušší. Kód předpokládá 8-bitový generační polynom (dělitel) a že přeformátovaný rámec -STX,ETX, atd- je ukládán do prostoru bytové vyrovnávací paměti. Stejný kód může sloužit pro generování CRC a kontrolu chybovosti; pro generování má vyrovnávací paměť obsahovat byte/znak tvořený samými nulami. Obr.3.19 18

Jiný způsob reprezentace cyklického zabezpečení Uvažujme posloupnost dat 1010001101, kterou reprezentuje polynom x 9 + x 7 + x 3 + x 2 + 1. Bit který odpovídá členu nejvyššího stupně je vysílán jako první. Zacházení s těmito mnohočleny podlého zákonům normální algebry s výjimkou sčítání, které má charakter sčítání modulo-2. Sčítání v aritmetice mod 2 probíhá bez přenosu následovně: x 7 + x 6 + x 5 + x 2 + 1 1 1 1 0 0 1 0 1 + x 7 + x 5 + x 4 + x 3 + x 2 1 0 1 1 1 1 0 0 = -------------------------------------- ------------------- x 6 + x 4 + x 3 + 1 0 1 0 1 1 0 0 1 Násobení v aritmetice mod 2 se provádí tímto způsobem: (x 7 + x 6 + x 5 + x 2 + 1) (x + 1) = 1 1 1 0 0 1 0 1 1 = x 8 + x 7 + x 6 + x 3 + x 1 1 1 0 0 1 0 1 0 + x 7 + x 6 + x 5 + x 2 + 1 = 0 1 1 1 0 0 1 0 1 = -------------------------------------------- -------------------- x 8 + x 5 + x 3 + x 2 + x + 1 1 0 0 1 0 1 1 1 1 K přenosu uvažované posloupnosti dat (zprávy) M(x) = x 9 + x 7 + x 3 + x 2 + 1 použijeme generační mnohočlen G(x) = x 5 + x 4 + x 2 + 1 Kroky nutné pro přenos jsou: Krok 1: Zpráva M(x) se vynásobí x r, čímž vznikne na místech nižšího řádu r nul. Krok 2: Výsledek se vydělí mnohočlenem G(x). Tím vznikne podíl Q(x) a zbytek (syndrom) R(x) x r M(x)/G(x) = Q(x) R(x)/G(x) 19

Krok 3: Zbytek (syndrom) se přičte ke zprávě, čímž se na r místech nejnižšího řádu objeví r členů. Teprve tato zpráva T(x) = x r M(x) R(x) se vyšle. Příklad: Mějme G(x)=x 5 +x 4 +x 2 +1, pro který platí r=5. Zpráva M(x) k odeslání dvojkový tvar 1 0 1 0 0 0 1 1 0 1. Krok 1: x r M(x) = x 5 (x 9 +x 7 +x 3 +x 2 +1) = x 14 + x 12 + x 8 + x 7 + x 5 což je ekvivalentní 1 0 1 0 0 0 1 1 0 1 0 0 0 0 0. Krok 2: Tento mnohočlen se vydělí mnohočlenem G(x) = x 5 +x 4 +x 2 +1, vznikne podíl x 9 +x 8 +x 6 +x 4 +x 2 +x a zbytek x 3 +x 2 +x je ekvivalentní s 01110. Data určená k vyslání: 1 0 1 0 0 0 1 1 0 1 Generační mnohočlen: 1 1 0 1 0 1 Dělení mnohočlenem: 1 1 0 1 0 1 0 1 1 0 podíl ------------------------------ G(x) 1 1 0 1 0 1 1 0 1 0 0 0 1 1 0 1 0 0 0 0 0 1 1 0 1 0 1 ------------- 1 1 1 0 1 1 1 1 0 1 0 1 ------------- 1 1 1 0 1 0 1 1 0 1 0 1 ------------- 1 1 1 1 1 0 1 1 0 1 0 1 ------------- 1 0 1 1 0 0 1 1 0 1 0 1 ------------- 1 1 0 0 1 0 1 1 0 1 0 1 ------------- 1 1 1 0 zbytek 20

Bitový sled který se vysílá: původní bity 101000110101110 zabezpečovací bity Původní sled bitů je tedy vysílán s pěti dalšími bity, které slouží k detekci chyb. Tyto bity se vysílají zleva doprava, pět zabezpečovacích bitů nakonec. Pro dělení platí rovnice x r M(x)/G(x) = Q(x) R(x)/G(x) Proto x r M(x) = Q(x) G(x) R(x) Odečítání v aritmetice mod 2 je stejné jako sečítání (žádné přenosy), proto x r M(x) R(x) = Q(x) G(x) Pro vysílanou zprávu bude tedy platit T(x) = x r M(x) R(x) = Q(x) G(x) Vysílaná zpráva je proto beze zbytku dělitelná generačním mnohočlenem G(x). Právě této vlastnosti se využívá ke zjištění případné chyby. Přijímač ve skutečnosti dělí mnohočlen přijaté zprávy mnohočlenem G(x). Při zbytku různém od nuly muselo dojít k chybě. Při nulovém zbytku chyba buď nevznikla, nebo je nedetekovatelná. 21