Hibafelismerés: CRC. Számítógépes Hálózatok Polinóm aritmetika modulo 2. Számolás Z 2 -ben

Hasonló dokumentumok
Számítógépes Hálózatok 2008

Hibafelismerés: CRC. Számítógépes Hálózatok Polinóm aritmetika modulo 2. Számolás Z 2 -ben

Számítógépes Hálózatok 2012

Egyszerű simplex protokoll nyugtákkal

Számítógépes Hálózatok 2008

Számítógépes Hálózatok. 4. gyakorlat

Adatkapcsolati réteg (Data Link Layer) Számítógépes Hálózatok Az adatkapcsolati réteg lehetséges szolgáltatásai

Számítógépes Hálózatok

Számítógépes Hálózatok 2013

Számítógépes Hálózatok ősz Adatkapcsolati réteg Hibafelismerés és javítás, Hamming távolság, blokk kódok

Számítógépes Hálózatok. 7. gyakorlat

Az adatkapcsolati réteg

Számítógépes Hálózatok. 5. gyakorlat

Számítógépes Hálózatok

12. fejezet Hibajelző kódok és Adatkapcsolati protokollok

Hibadetektáló és javító kódolások

7. Adatkapcsolati réteg

Számítógépes Hálózatok 2010

Szállítási réteg (L4)

Nagy Gábor compalg.inf.elte.hu/ nagy

1. A maradékos osztás

Számítógépes Hálózatok

Hibajavítás, -jelzés. Informatikai rendszerek alapjai. Horváth Árpád november 24.

Az Internet működésének alapjai

Frekvencia tartományok. Számítógépes Hálózatok és Internet Eszközök. Frekvencia tartományok rádió kommunikációhoz

Számítógép hálózatok gyakorlat

1. A maradékos osztás

8. Szállítói réteg TCP Tahoe, Reno, AIMD, hatékonyság, fairness. HálózatokII, 2007

Számítógépes Hálózatok 2008

Számítógépes Hálózatok

Tartalom. Az adatkapcsolati réteg, Ethernet, ARP. Fogalma és feladatai. Adatkapcsolati réteg. A hálókártya képe

Számítógépes Hálózatok

Nagy Gábor compalg.inf.elte.hu/ nagy

Diszkrét matematika II. feladatok

Diszkrét matematika 2.

Számítógépes Hálózatok

Algoritmuselmélet gyakorlat (MMN111G)

ADATKAPCSOLATI PROTOKOLLOK

x 3 - x 3 +x x = R(x) x 3 + x x 3 + x ; rendben, nincs maradék.

Számítógépes Hálózatok és Internet Eszközök

A szállítói réteg (transport layer) szolgáltatásai. Számítógépes Hálózatok Szállítói réteg (transport layer) Multiplexálás a szállítói rétegben

MAC alréteg. Számítógépes Hálózatok Protokollok korlátozott versennyel. Adaptív fa bejárás protokoll

Számítógépes Hálózatok

Prezentációk készítése

Sapientia Egyetem, Műszaki és Humántudományok Tanszék.

* Rendelje a PPP protokollt az TCP/IP rétegmodell megfelelő rétegéhez. Kapcsolati réteg

Bánfalvy Zoltán, ABB Kft., MEE Vándorgyűlés, Budapest, Ethernet-hálózatok redundanciája IEC és IEC 62439

FFT. Második nekifutás. Czirbusz Sándor ELTE IK, Komputeralgebra Tanszék október 2.

Dr. Wührl Tibor Ph.D. MsC 05 Ea. Szállítási protokollok - Bevezetés

1. A polinom fogalma. Számolás formális kifejezésekkel. Feladat Oldjuk meg az x2 + x + 1 x + 1. = x egyenletet.

Számítógépes Hálózatok. 5. gyakorlat

Számítógépes Hálózatok 2013

MAC alréteg. Számítógépes Hálózatok persistent CSMA. Vivő-érzékelés (Carrier Sensing)

Intergrált Intenzív Matematika Érettségi

Számítógépes Hálózatok

Nagy Gábor compalg.inf.elte.hu/ nagy ősz

Tartalom. Az adatkapcsolati réteg, Ethernet, ARP. Fogalma és feladatai. Adatkapcsolati réteg. Ethernet

I+K technológiák. Számrendszerek, kódolás

Számítógépes Hálózatok GY 6.hét

Számítógépes Hálózatok GY 7.hét

Nagy Gábor compalg.inf.elte.hu/ nagy ősz

Nagy Gábor compalg.inf.elte.hu/ nagy

VEKTORTEREK I. VEKTORTÉR, ALTÉR, GENERÁTORRENDSZER október 15. Irodalom. További ajánlott feladatok

[SZÁMÍTÓGÉP-HÁLÓZATOK]

1.1. Definíció. Azt mondjuk, hogy a oszója b-nek, vagy más szóval, b osztható a-val, ha létezik olyan x Z, hogy b = ax. Ennek jelölése a b.

Kódolás, hibajavítás. Tervezte és készítette Géczy LászlL. szló 2002

Diszkrét matematika I.

FELADATOK A BEVEZETŽ FEJEZETEK A MATEMATIKÁBA TÁRGY III. FÉLÉVÉHEZ. ÖSSZEÁLLÍTOTTA: LÁNG CSABÁNÉ ELTE IK Budapest

10. fejezet Az adatkapcsolati réteg

1. Interpoláció. Egyértelműség Ha f és g ilyen polinomok, akkor n helyen megegyeznek, így a polinomok azonossági tétele miatt egyenlők.

Számítógépes Hálózatok. 5. gyakorlat

[SZÁMÍTÓGÉP-HÁLÓZATOK]

Zárthelyi feladatok megoldásai tanulságokkal Csikvári Péter 1. a) Számítsuk ki a 2i + 3j + 6k kvaternió inverzét.

V2V - routing. Intelligens közlekedési rendszerek. VITMMA10 Okos város MSc mellékspecializáció. Simon Csaba

Diszkrét matematika alapfogalmak

Alapfogalmak a Diszkrét matematika II. tárgyból

2. Fejezet : Számrendszerek

A szállítói réteg (transport layer) szolgáltatásai. Számítógépes Hálózatok Szállítói réteg (transport layer) Multiplexálás a szállítói rétegben

1. Egész együtthatós polinomok

Számítógép-hálózatok Az adatkapcsolati réteg

Polinomok (el adásvázlat, április 15.) Maróti Miklós

The Architecture of Computer Hardware and Systems Software: An InformationTechnology Approach 3. kiadás, Irv Englander John Wiley and Sons 2003

Kollízió felismerés (collision detection) CSMA/CD. Számítógépes Hálózatok CSMA/CD periódusai. Mi a teendő kollízió esetén? B Idle!

A TCP/IP modell szállítási rétege

Számítógépes Hálózatok és Internet Eszközök

AST_v3\

Diszkrét matematika 2.C szakirány

8. Szállítói réteg TCP Tahoe, Reno, AIMD, hatékonyság, fairness. HálózatokII, 2006

Számítógépes Hálózatok és Internet Eszközök

Kongruenciák. Waldhauser Tamás

Számítógépes hálózatok

Adatkapcsolati réteg 1

Nagy Gábor compalg.inf.elte.hu/ nagy ősz

loop() Referencia:

4. Fejezet : Az egész számok (integer) ábrázolása

Az Ethernet példája. Számítógépes Hálózatok Az Ethernet fizikai rétege. Ethernet Vezetékek

int azt az elõzõ részbõl megtudtuk, a rétegeknek az a feladatuk, hogy valamiféle feladatot végezzenek

OSI-ISO modell. Az OSI rétegek feladatai: Adatkapcsolati réteg (data link layer) Hálózati réteg (network layer)

Nagy Gábor compalg.inf.elte.hu/ nagy ősz

I+K technológiák. Digitális adatátviteli alapfogalmak Aradi Szilárd

Átírás:

Hibafelismerés: CRC Számítógépes Hálózatok 27 6. Adatkapcsolati réteg CRC, utólagos hibajavítás, csúszó ablakok Hatékony hibafelismerés: Cyclic Redundancy Check (CRC) A gyakorlatban gyakran használt kód Nagy hibafelismerési ráta Hardware megvalósítás egyszerű Polinóm aritmetikán alapul a 2-es maradékosztályok (Z 2 ) testén A jelsorozatotokat polinómnak tekintjük A bitek a polinóm együtthatói 2 Számolás Z 2 -ben Polinóm aritmetika modulo 2 Számolás modulo 2: Szabályok: összeadás mod 2 kivonás mod 2 szorzás mod 2 Tekintsük a polinómokat Z 2 maradékosztály test fölött p(x) = a n x n + + a x + a Az a i együtthatók és az x változók {,} A számítás modulo 2 történik A B A + B A B A - B A B A B Polinómok összeadása, kivonása, szorzása, (maradékos) osztása, mint ahogy ismerjük Példa: + = 3 4

Bit sztringek és Z 2 feletti polinómok Ötlet: Tekintsük az n hosszúságú bit sztringet mint egy polinóm együtthatóit Bit sztring: b n b n- b b Polinóm: b n x n + + b x + b Egy (n+) bitből álló bit sztring megfelel egy n-ed fokú polinómnak Példa A xor B = A(x) + B(x) Ha A-t k pozícióval balra toljuk (shift), ez a következőnek felel meg: C(x) = A(x) x k Ezt az izomorfizmust használva tudunk bit sztringekkel osztani Maradékos osztás bitsztingekkel Példa: : = maradék 5 6 Redundancia polinómok által: CRC Definiáljunk egy G(x) generatorpolinómot, melynek a foka g G(x) a küldő és a fogadó által ismert g redundáns bitet generálunk Adott: Keret (frame, üzenet) M, mint M(x) polinom Kiszámolja az osztás maradékát r(x) = x g M(x) mod G(x) Átvitelre kerül: T(x) = x g M(x) + r(x) Figyeljük meg: x g M(x) + r(x) többszöröse G(x)-nek m(x)-et fogad Kiszámítja a maradékot: m(x) mod G(x) CRC Átvitel Ha nem történt hiba: T(x) fogadása korrekt Bithiba: T(x) tartalmaz megváltoztatott bitet Ez ekvivalens egy E(x) hibapolinóm hozzáadásához A fogadóhoz m(x) = T(x) + E(x) érkezik Kiszámítja m(x) mod G(x) maradékot Ha nincs hiba: m(x) = T(x), Ekkor a maradék Bit hibák: m(x) mod G(x) = (T(x)+ E(x)) mod G(x) = T(x) mod G(x) + E(x) mod G(x) hibaindikátor 7 8

CRC Áttekintés A generator meghatározza a CRC tulajdonságait Csatorna Eredeti keret M(x) küld: T(x) = x g M(x) + r(x) Generátor polinóm G(X) hozzáad: E(x) hibapolinómot fogad: m(x) = T(x) + E(x) Kiszámolja (T(x) + E(x)) mod G(x) Ha ez = : No error r(x) = x g M(x) mod G(x) Ha ez : hiba! Ha nem történik hiba: E(x) = A bit-hibákat csak akkor nem ismerjük fel, ha E(x) többszöröse G(x)-nek G(x) választásának trükkjei: -bit-hiba: E(x) = x i hiba az i-edik pozíción Ha G(x) legalább 2 nem nulla együthatót tartalmaz, akkor E(x) nem többszörös 2-bit-hiba: E(x) = x i + x j = x j (x i-j +), ahol i>j G(x) nem szabad, hogy osztója legyen (x h + )-nek semmilyen h-ra, h k, a maximális kerethosszig, Páratlan számú hiba: Ekkor E(x) nem többszöröse (x+)-nek Ötlet: legyen (x+) osztója G(x)-nek ekkor E(x) nem többszöröse G(x)-nek G(x) okos megválasztásával minden r hosszú hibasorozat (burst) felismerhető 9 CRC a gyakorlatban Utólagos hibajavítás Az IEEE 82.3 (Ethernet) standardban felhasznált generátor polinóm (CRC-32): x 32 + x 26 + x 23 + x 22 + x 6 + x 2 + x + x + x 8 + x 7 + x 5 + x 4 + x 2 + x + Figyelem: Hiba még mindig lehetséges Különösen, ha a bithibáknak megfelelő E(x) többszöröse G(x)-nek. A hiba felismerésekor a keretet újra kell küldeni Hogy néz ki a küldő és a fogadó összehangolt munkája? csomagok keretek Hálózati réteg Adatkapcsolati réteg from_upper(p) per(p) Hálózati réteg Adatkapcsolati réteg Implementáció: Egyszerű XOR-operáció HW implementácó: shift-register bitek to_lower(p) Fizikai réteg from_lower(p) to_lower, from_lower tartalamzzák a CRC-t vagy (szükség esetén) utólagos hibajavítást 2

Egyszerű simplex protokoll nyugtákkal Simplex üzemmód: csomagok küldése csak egyirányú A fogadó nyugtázza a küldő csomagjait (ehhez fél-duplex fizikai csatorna elegendő) A küldő vár egy bizonyos ideig a nyugtára (acknowledgment -- ACK) Ha az idő lejárt, újraküldi a csomagot Első megoldási kisérlet: Elemzés Problémák A felső réteg gyorsabban küldi a csomagokat, mint ahogy a nyugták megérkeznek from_upper (p);, to_lower(p) from_lower (p); to_lower (ack) Mi történik, ha nyugták elvesznek wait wait from_lower (ack); to_lower (p), 3 4 2. Kisérlet Elemzés Az első probléma megoldása Egy csomag a másik után A protokoll megvalósít egy elemi folyamfelügyeletet Wait to_lower(p), Process per (busy) Wait from_lower (p); to_lower (ack) Fr_up Fr_up error from_lower(ack); to_lower (p), 5 6

Elemzés 2. probléma: elveszik a nyugta Fr_up Ugyanaz a csomag kétszer továbbítódik a magasabb réteghez A 2. probléma (duplikátumok) A küldő nem tud különbséget tenni elveszett csomag és elveszett nyugta között Újra kell küldeni a csomagot A fogadó nem tud különbséget tenni egy csomag és egy régi csomag redundáns másolata között További információ szükséges Ötlet: Minden csomagot ellátunk egy sorszámmal (sequence number), hogy a fogadónál az azonosítás lehetséges legyen Minden csomag fejléce tartalmaz sorszámot Itt: csak vagy Szükséges a csomagban és a nyugtában A nyugta az utolsó hibátlanul fogadott csomag sorszámát tartalmazza (tisztán konvenció) 7 8 3. kisérlet: nyugta és sorszám error from_lower(ack); to_lower (,p) Ready Process from_lower (ack); - to_higher (busy) to_lower(,p), from_lower (ack); - from_higher(p); to_lower(,p), per (busy) Process to_lower (,p) from_lower(ack); Ready error from_lower (,p); to_lower (ack) Wait from_lower (,p); to_lower (ack) from_lower (,p); to_lower (ack) Wait from_lower (,p); to_lower (ack) 3. kisérlet: alternáló bit protokoll (Alternating Bit Protocol) A 3. kisérlet egy zajos csatorna fölötti megbízható protokoll korrekt implementációja Alternating Bit Protokoll Az Automatic Repeat request (ARQ) protokollok közé tartozik Folyamfelügyelet egy egyszerű formáját is tartalmazza Egy nyugta két feladata nyugtázni, hogy egy csomag megérkezett engedélyezni egy új csomag küldését 9 2

Alteráló bit protokoll -- hatékonyság A hatékonyság javítása Hatékonyság η a következő két érték arányaként definiált: az idő, amely a küldéshez szükséges és az idő, amely szükséges, amíg újra lehet küldeni (hibamentes csatornán) η = T packet / (T packet + d + T ack + d) Nagy delay esetén az alternáló bit protokoll nem hatékony T packet d T ack d Idő A csomagok folyamatos küldése növeli a hatékonyságot több outstanding csomag (elküldött, de még nem nyugtázott) növeli a hatékonyságot csomag pipeline Nem csak -bit-sorozatszámmal lehetséges A küldő folyamatosan küld nő a hatékonyság Idő 2 22 Csúszó ablak (sliding window) Példa A sorozatszámok terét megnöveljük n bitre, azaz 2 n sorozatszámra Nem mind használható fel ugyanabban az időben az Alternating Bit Protocol-ban sem lehetséges Csúszó ablakok (sliding windows) a küldőnél és a fogadónál kezelik ezt a problémát : küldő-ablak Sorozatszámok olyan sorozata, amelyek egy adott időben elküldhetők : fogadó-ablak Sorozatszámok olyan sorozata, melyet a fogadó egy adott időpillanatban hajlandó elfogadni Az ablakok mérete lehet fix vagy időben dinamikusan változtatható Az ablakméret folyamfelügyeletet tesz lehetővé Sliding Window példa n=3 és fix ablakméret = esetén A küldő itt mutatja a még nem nyugtázott sorozatszámokat Ha a még nem nyugtázott keretek (frame) száma ismert, akkor ez ekvivalens az előző fólián definiált a küldő-ablakkal a. Kezdetben: mielőtt bármit küldenénk b. Az első frame küldése után sorozatszámmal c. Az első frame fogadása után d. Az első nyugta fogadása után 23 24

Átviteli hiba és a fogadó-ablak Feltételeink: Az adatátkapcsolati rétegnek minden frame-et helyesen és helyes sorrendben kell átvinni A küldő hatékonyság növeléséhez pipeline technikát használva küldi a csomagokat Csomagvesztés esetén: Ha a fogadó-ablakméret =, a következő csomagokat mind eldobja a fogadó Go-back-N Ha a fogadó-ablakméret =, akkor a fogadó nem tudja feldolgozni azokat a frame-eket, melyek egy elveszett (vagy hibás) frame-et követnek Nem tudja azokat nyugtázni, mert csak egy nyugtát küld az utolsó helyesen fogadott csomagról A küldőnél lejár a várakozási idő a nyugtára: Timeout Minden frame-et, amit az utolsó nyugtázott frame után küldött, újra kell küldeni Go-back-N Frames! Kritika Az átviteli médium pazarlása A fogadónál viszont nagyon egyszerű a feldolgozás 25 26 Szelektív ismétlés (Selective Repeat) Duplex-operáció és hátizsák technika (piggybacking) Tegyük fel, hogy a fogadó tudja pufferelni a csomagokat, amelyek a közbenső időben érkeztek azaz a fogadó-ablakméret > Példa A fogadó értesíti a küldőt a hiányzó csomagról negatív nyugtával A küldő elküldi a hiányzó frame-eket szelektíven (selective repeat) Amikor a hiányzó frame megérkezik, minden frame-et (a helyes sorrendben) átad a fogadó a hálózati rétegnek Simplex Információ küldés egy irányba Duplex Információ küldés mindkét irányba Eddig: Simplex interfész a magasabb réteghez (hálózati réteghez) (Fél-)Duplex interfész az alacsonyabb réteghez (fizikai réteghez) Mi kell akkor, ha az interfész a magasabb réteghez duplex Nyugta és adatcsomagok elkülönítve mindkét irányban Vagy: hátizsák technika (általánosan használt) A nyugtát az ellentétes irányba küldött adat-frame fejlécébe tesszük (piggybacking) 27 28