60 likes | 159 Views
Vestavné mikropočítačové systémy. 10 . Týden – Datové komunikace IV ( zabezpečení přenosu proti chybám ). Bezpečnostní kódy. V praxi je třeba počítat s tím, že během přenosu dojde k chybě (šum) Bezpečnostní kódy mají zabezpečit informaci před šumem Šum se může projevit dvěma způsoby
E N D
Vestavné mikropočítačové systémy 10. Týden – Datové komunikace IV(zabezpečení přenosu proti chybám)
Bezpečnostní kódy • V praxi je třeba počítat s tím, že během přenosu dojde k chybě (šum) • Bezpečnostní kódy mají zabezpečit informaci před šumem • Šum se může projevit dvěma způsoby • záměnou vyslaného znaku za jiný znak • poruchou synchronizace (vygenerováním falešného znaku nebo naopak pohlcením vyslaného znaku) • Chyby musíme přinejmenším detekovat • chybné rámce se zahazují • vyšší vrstvy zajistí jeho zopakování • Data může opatřit redundancí, která umožní některé chyby opravovat • potom hovoříme o tzv. „dopředné opravě“ chyb (FEC) • používá se zejména tam, kde nemáme možnost opakování – isochronní přenosy audio/video signálů, záznamová média (CD, DVD, NAND flash) • pokud není možné rámec opravit, musí se zahodit
Bezpečnostní kódy • Parita • sudá/lichá, doplní přenášený symbol na sudý/lichý počet jedniček • umožňuje detekci • Dvourozměrná parita • umožňuje detekce až trojnásobných chyb • umí opravit jednoduché chyby • Kontrolní součty • účinnější než parita, ale pořád ne dost • data se prostě sečtou a jako kontrolní informace se použije některá část součtu • Někdy se místo součtu používá operace XOR • Cyklické kódy – CRC (Cyclic Redundance Code) • dobře detekují i shlukové chyby • všechny shluky s lichým počtem bitů • všechny shluky do velikosti n bitů, kde n je stupeň charakteristického polynomu • všechny shluky chyb velikosti > n + 1 s pravděpodobností 99,99999998% (CRC-32) • Samoopravné kódy • Hammingův kód • Reed-Solomonův kód
0x12 + 1x11 + 0x10 + 1x9 + 1x8 + 0x7 + 0x6 + 1x5 0 1 0 1 1 0 0 1 CRC polynom data podíl zbytek * + = Cyklické kódy • Ne(příliš)matematický náhled na princip použití cyklického kódu • posloupnost bitů, ke které chceme vypočítat CRC můžeme interpretovat jako polynom, kde jednotlivé bity jsou jeho koeficienty • tento polynom se vydělí jiným polynomem – charakteristickým polynomem (např. CRC-16: x16 + x15 + x2 + 1) • výsledkem je podíl a zbytek, podíl je k ničemu, k zabezpečení se použije pouze zbytek interpretovaný jako posloupnost bitů
MSB LSB 101100011010111100001 x5 x4 x3 x2 x1 Cyklické kódy • Implementace výpočtu zbytku • jednoduchá a snadno implementovatelná i hardwarově • jde o posuvný registr se zpětnou (XOR) na pozice odpovídající jedničkovým koeficientům v charakteristickém polynomu • Příklad pro charakteristický polynom: x5 + x4 + x2 + 1
k 2t informační symboly (data) kontrolní symboly (redundance) n Samoopravné kódy • Používají se tam, kde není možné nebo žádoucí opakovat přenos rámce – audio/video přenosy, paměťová média • Hammingův • opravuje jednoduché chyby a detekuje až trojnásobné chyby • nejmenší myslitelná redundance • je-li m počet kontrolních znaků (2, 3, 4, …), pak délka kódu je 2m – 1 • informační poměr rychle roste k 1, např. pro kód délky 63 je informační poměr: • Reed-Solomonův • kód s volitelnou redundancí (schopností opakovat) • dokáže detekovat a opravit jen omezené množství chyb v jednom bloku dat • při očekávaném výskytu větších shluků se kombinuje s metodou rozprostírání • používá se u paměťových nosičů – CD, DVD, GSM, DVB, … • platí pro něj: 2t = n – k, kde t je max. počet opravitelných symbolů