Vadász Ea5 1 Távadatfeldolgozás 2000/2001. tanév Dr. Vadász Dénes Számítógéphálózatok Az adatkapcsolati réteg
Vadász Ea5 2 Miről lesz szó? Általános megállapítások Keretképzés - felismerés Hibakezelés, ami lehet –közvetlen, ill. közvetett. Adatfolyamvezérlés Elemi adatkapcsolati protokollok
Vadász Ea5 3 Az adatkapcsolati rétegről Ez a második réteg … Foglakozik mind a médiával, mind a "felhasználói kívánalmakkal" … Feladata (általánosan) –Jól meghatározott interfész a hálózati réteg számára –Jó szolgálatok fölfelé … (ezekről lesz szó) –Két, szomszédos "huzalszerűen működő" csatornával összekötött állomás között megbízható, hatékony kommunikáció biztosítása –jó protokollal.
Vadász Ea5 4 Huzalszerű csatorna... A bitek pontosan ugyanolyan sorrendben érkeznek, ahogy feladták őket … 2 állomás között huzalszerű csatornát biztosít –a fizikai réteg, pont-pont kapcsolat esetén; –a fizikai + közeghozzáférési (al)réteg, üzenetszórásos csatorna esetén.
Vadász Ea5 5 Megoldandó problémák A keretképzés és felismerés Az átviteli hibák kiküszöbölése A véges adatátviteli sebességből adódó késleltetés kezelése (ráadásul a sebesség változó is lehet) A gépek véges feldolgozási képességeinek kezelése (ez is változó lehet): kezelni az "elárasztást" (gyors adó eláraszt lassú vevőt, flooding). Ez forgalomszabályozást igényel.
Vadász Ea5 6 A keretképzés "okai" Egyes MAC protokollok véges, esetleg fix kerteket kívánnak (ezt láttuk már!) A fizikai átvitel késleltetése esetleg csökkenthatő, ha kisebb keretekre bontunk (ezt is láttuk) A hibabehatárolás is könnyebb, ha kisebb egységeket, kereteket képezünk … (ennek is láttuk nyomait …)
Vadász Ea5 7 Az átviteli hibák kezelése Milyen hibák? –A MAC réteg az ütközéseket kezeli … az ezek miatti "hibák" tehát nem érdekesek. De! Lehetnek "elveszett" és sérült keretek –Pl. egy másik állomás "leveszi" a csatornáról... –Lehetnek sérült keretek is (zajok a csatornán stb.) Az a kérdés merülhet fel, hogy a hibakezelési procedúrák itt legyenek, vagy egy felsőbb rétegben –Fesőbb rétegben biztos vannak, ha több csatornát használnak a dialógusban, de –esetleg itt is jó, ha van hibakezelés …
Vadász Ea5 8 A hálózati rétegnek nyújtott szolgálatok Emlékeztető: az OSI szabványos szolgálat- primitívjei: kérés (request); bejelentés (indication); válasz (respond); megerősítés (confirm). Ezekkel a következő szolgálat-típusok lehetnek itt –Nyugtázás nélküli összeköttetésmentes szolgálat –Nyugtázott összeköttetésmentes szolgálat –Nyugtázott összeköttetésalapú szolgálat Az adatkapcsolati réteg funkcióinak ilyeneket kell biztosítania...
Vadász Ea5 9 Nyugtázás nélküli összeköttetésmentes szolgálat Összeköttetésmentes –a MAC csatornák ilyenek, ezért ez a szolgálat gyors lehet, a LAN-ok ilyenek … –Az adategységek (keretek) önállóan vannak megcímezve, egymástól függetlenül kerülnek feladásra Visszajelzés nélküli: nem biztos, hogy hibamentes … –Ekkor a hibákat (valamelyik) felsőbb réteg kell kezelje (az veszi észre, az ismétel stb) –Alacsony hibaarány esetén lehet, hogy jó ez … (kisebb lehet a hibakezelés miatti "overhead")
Vadász Ea5 10 Nyugtázott összeköttetésmentes szolgálat Összeköttetésmentes –a MAC csatornák ilyenek, ezért ez a szolgálat gyors lehet, a LAN-ok ilyenek … Hibamentes átvitelt valósít meg –nyugták jelzik a keretek hibátlan megérkezését. Ha több hiba van, jobb a –hibakezelést alacsony szinten intézni: kevesebb ismétlés lesz … –Igaz, több lesz a veszteség (overhead), mintha nem lenne hibaszűrés...
Vadász Ea5 11 Nyugtázott összeköttetésalapú szolgálat A társelemek "párbeszédet" folytathatnak … Az adategységek (keretek) ellenőrzötten és sorrendhelyesen (pontosan csak egyszer) érkeznek meg –Nemcsak a kereteken belül van bit-sorrend helyesség … –Megbízható, a küldési sorrenddel azonos vételi sorrendű keretfolyam Nyilvánvaló fázisok itt: –összekötteés létrehozása; –keretek átvitele: érdemi kommunikáció; –összeköttetés bontása.
Vadász Ea5 12 Nézzük az adatkapcsolati réteget! Logical Link Control (erről van most szó) Medium Access Control (erről már beszéltünk) Hálózati Adat- kapcsolati Fizikai LLC MAC Fizikai
Vadász Ea5 13 Az adatkapcsolati réteg funkciói Keretképzés és behatárolás –A hálózati réteg adataiból keretek kialakítása és –a fizikai bitfolyamból a keretek behatárolása. Hibavédelem –Az adatok "megfelelő" kódolása, hiba felismerés, –nyugták küldése és fogadása. Adatfolyam vezérlés (forgalomszabályozás, flow control) –az adó küldési sebességének a vevő fogadóképességéhez igazítása Kapcsolatmenedzselés –összeköttetés létesítés -bontás, erőforrások lekötése - felszabadítása...
Vadász Ea5 14 A keretképzés - behatárolás Az adatkapcsolati réteg szokásos működése –a fentről kapott bitfolyamot keretekké alakítja, melyeket ellenőrző összeggel lát el; –továbbítja a kereteket: a bitfolyamot jelfolyammá alakítja; –kapott jelfolyamot visszalakítja bitfolyammá és a kereteket behatárolja, az ellenőrző összeget "visszaellenőrzi"; –a bitfolyamot továbbítja a felső rétegnek. Most a keretképzés és behatárolás a kérdés. Hogyan lehet kerethatárokat jelezni és e jelzéseket felismerni? (Transzparensen a fölöttes réteg számára) Keretképzés...
Vadász Ea5 15 Keretképzési lehetőségek Csak négyet veszünk … –A karakterszámlálásos keretezési módszert –A karakterbeszúrásos keretezési módszert –A bitbeszúrásos keretezési módszert –Az érvénytelen kódmintás keretezési módszert Keretképzés...
Vadász Ea5 16 A karakterszámlálásos keretezés A keret-fejrész egy mezőjében megadjuk a keret karaktereinek számát ( a keret hosszát) Feltétel: léteznie kell karakterszinkronnak, fel kell tudni ismerni a karaktereket … Gond: ha hibázik a karakter-szám-mező, kiesik a "szinkronból", félreértelmezi a kereteket … –Látjuk majd, az ellenőrző összeg visszaszámításával erre ugyan rájön, de míg újra megtalálja a kerethatárokat …? nini nknk n i darab karakter i-ik keret k-ik keret Keretképzés...
Vadász Ea5 17 A karakterbeszúrásos keretezés Character stuffing A keretek elejét és végét speciális karakterekkel jelzi (Ez is csak karakterorientált módszer …) Hiba esetén a keretszinkron könnyen visszaállítható (csak a keret eleje-vége szekvenciát kell keresni …) Egy példa (terminál protokolloknál szokásos) –Keret eleje: DLE+STX (ASCII v EBCDIC karakterpárok) –Keret vége: DLE+ETX DLE: Data Link Escape STX: Start of Text ETX: End of Text Keretképzés...
Vadász Ea5 18 Character stuffing Gond lehet, ha az adatok között DLE (esetleg DLE+STX/ETX van) Megoldása: a kerethatárok elhelyezése előtt az adatok közötti valamennyi DLE-t megkettőzik! –Ezzel a DLE+STX/ETX párok kerethatárokat jeleznek, –a DLE+DLE pedig DLE a szövegben … Pl a szöveg: A+B+C+DLE+ETX+D+E; akkor a keret i-ik keretk-ik keret DLEDLE ETXETX DLEDLE STXSTX Adatok DLEDLE STXSTX DLEDLE ETXETX DLEDLE STXSTX A B C DLEDLE DLEDLE ETXETX D E DLEDLE ETXETX Keretképzés...
Vadász Ea5 19 A bitbeszúrásos keretezési Bit stuffing Bit-orientált, azaz nem törődik karakterekkel Minden keret speciális bitmintával (flag) kezdődik és végződik Pl. az IBM SDLC (Synchronous Data Link Control Protocol) az ISO HDLC (High Level DLC, az X.25 is ezt használja) esetén a flag: (6 db 1-es bit) Gond: és ha a bitfolyamban van ilyen minta? –Transzparenssé kell tenni! Keretképzés...
Vadász Ea5 20 Bit stuffing A "transzparenssé" tétel (ha a bitfolyamban volna ilyen minta) –A kerethatárok elhelyezése előtt az adó az adat bitfolyamba minden egymásutáni 5 db 1-es bit után beszúr egy 0-át; –a vevő a kerethatárok felismerése és levétele után minden egymásutáni 5 db 1-es bit után kivesz egy 0- át. –Ezzel 6 bites 1-es sorozat csak a kertet eleje-vége lehet, felismerhető. Pl. az adatok: Ekkor a keret: Itt a veszély flag A beszúrt 0 Keretképzés...
Vadász Ea5 21 Az érvénytelen kódmintás keretezés A keretek elejét és végét az adatbitektől eltérő módon kódolt jelekkel jelzik. Kódolás "sértéssel". Pl. Manchester kódolás esetén a "szokásos" –HL ill. LH helyett –LL ill. HH ; –mert ezeket normálisan nem használja a M kódolás. –(Persze, kérdés, vajon kell-e az órajel miatt minden bit közepén átmenet, vagy sem?) Keretképzés...
Vadász Ea5 22 Kombinált... Sokszor a kerethossz megadásos módszert kombinálják valamilyen más módszerrel. –A kerethossz megadás ui. gyorsíthatja a feldolgozást; –a más módszer pedig gyorsíthatja a keretszinkron helyreállítást... Keretképzés...
Vadász Ea5 23 A hibavédelem Szögezzük le: a MAC alréteg biztosítja az "ütközésmentességet" (a sikerig ismétli az adást), de egyéb hibák is lehetnek (termikus zaj, áthallás, jeltorzulások …) A hibavédelem lehet közvetlen –hibajavító, hibajelző kódolás esetén a vett szóból … és lehet közvetett –nyugtázás utján... Hibakezelés...
Vadász Ea5 24 Közvetlen-közvetett hibakezelés A vevő közvetlenül győződik meg a keret épségéről, hogy –a keret a formai szabályoknak megfelel; –a kódolás és az ellenőrző összeg megfelel. Az adó csakis közvetett módon értesül, hogy küldött kerete épen érkezett-e. –Negatív nyugtát kap; –Pozitív nyugta hiánya jelzi a hibát … Hibakezelés...
Vadász Ea5 25 Közvetlenség - közvetettség Másrészt a vevő –hibajavító kódolás esetén közvetlenül javíthatja is a hibát, –hibajelző kódolás esetén csak érzékeli, de saját maga nem javíthatja, ekkor közvetettség is van a javításban: –az adónak (előbb-utóbb) újra kell adnia a keretet … Hibakezelés...
Vadász Ea5 26 Közvetlen hibakezelés Hibajelzés, hibajavítás Alapvetően a redundanciára építünk: a "hasznos" információknál többet kell átvinnünk … Mindig véges adategységekre vonatkoztatunk … Hibakezelés...
Vadász Ea5 27 A modell Van üzenetfolyam (véges): m db bit Vannak redundáns bitek:r db bit Egy kódszó (codeword):n = m + r bit Kódolás: m + r n (kódszavak képézése) Kód: az érvényes kódszavak készlete Lehetséges üzenetszám: 2 m Lehetséges kódszó szám:2 n (az érvénytelenekkel együtt) Érvényes kódszavak: 2 m darab a 2 n -ből. Hibakezelés...
Vadász Ea5 28 A modell … Az adatátvitel Hibakezelés... A dekódolás eredményeként érvényes vagy nem érvényes kódszavakat kaphatunk –érvényeseknél előállítjuk a üzenetet; –érvénytelenek esetén kiértékelés következik. Ez hibajelzés, vagy hibajavítás. Érvényes kódszavak Üzenet (bitfolyam) Érv. v nem érv. kódszavak Üzenet, v kiértékelés Kódolás Átvitel Dekódolás
Vadász Ea5 29 Hamming távolság Kódszavak H-távolsága: –Két kódszóban az egymástól eltérő bitek száma, vagy –két kódszó kizáró vagy kapcsolatában az 1-esek száma. –Ha két kódszó H távolsága d, akkor d db. 1-es hibával konvertálhatók át egymásba, vagy –érvényes kódszóból d számú 1-es hiba érvényes kódszót adhat. Kód H-távolsága (emlékezz: kód = érv. kódszavak készlete) : –a kódszavak közötti legkisebb H távolság. Hibakezelés...
Vadász Ea5 30 Tételek Tétel 1: Valamely kód alkalmas d darab hiba felismerésére, ha H-távolsága d + 1 –Pongyolán: tetszőleges d darab egyedi hiba csak érvénytelen kódszót eredményezhet. Tétel 2: Egy kód alkalmas d darab hiba javítására, ha annak H-távolsága 2d + 1 –Pongyolán: tetszőleges d hiba esetén is közelebb állunk" az eredeti kódszóhoz, mint bármi más kódszóhoz. Tétel 3: A hibajavító kód egyben hibafelsimerő kód is. A d hibát javítani képes kód 2d hibát képes felismerni. Hibakezelés...
Vadász Ea5 31 Tétel … és megfontolás Tétel 4: Tökéletes (közvetlen) hibavédelem, hibajavító kód valamennyi bitre nem létezik. –Legyen n bites kódszó, valamennyi bitre hibajavító. –Ekkor a kód H-távolsága 2 n + 1 kellene legyen. –Ez lehetelen, hiszen eleve 2n + 1 > n Megfontolás –Belátható, hogy hibajavító kódok alkalmazása nagy redundanciát igényel. Ez csökkenti a "hatékonyságot" (növeli az overhead-et). –Viszonylag alacsony hibaarányú átvitel esetén hatékonyabb kevésbé redundáns hibajelző kódot alkalmazni, és újraadni a hibás kódszavakat (adategységeket)! Hibakezelés...
Vadász Ea5 32 Hibajelző kódok Paritásos (gyakori) Blokkonként paritásos Ciklikus redundancia kód (CRC) (gyakori) Hibakezelés...
Vadász Ea5 33 Paritásos kód Az adatok végére egyetlen paritásbitet (parity bit) illeszt. Ennek értékét úgy választani, hogy –a kódszóban az 1-esek száma páros (even) legyen, Pl. az adatbitek XOR kapcsolata eredményezze a paritásbitet; –a kódszóban az 1-esek száma páratlan (odd) legyen. A paritásos kód a kód H-távolságát 1-ről 2-re növeli, –ezzel 1 egyedi hibát észlelhetünk. Gond: csoportos hibák esetén 0,5 a hibajelzés valószínűsége (csoportos hiba: több egymásmelletti bit sérül, gyakori!).
Vadász Ea5 34 Bit-interleaved Parity Blokkonkénti paritásbites, segít a csoportos hiba felismerésében A gondolat: egymástól távoli biteket vizsgálva, azokhoz képezzünk "paritást"! A technika: –az adatbitekből "mátrixot" alkotunk; –az m paritásbitet oszloponként képezzük; –a kapott paritásbiteket a mátrix k+1 sorának vesszük; –a biteket soronként küldjük el.
Vadász Ea5 35 Bit-interleaved Parity Belátható: egyetlen, max m bites csoporthibát képes észlelni; m+1 hosszú csoporthiba már észrevétlen maradhat; észrevétlen maradhat az i-ik és i+m-edik bit-együttes hibája is k k+1 m Az egyes oszlopokra vonatkozó par.bitek
Vadász Ea5 36 Ciklikus redundancia kód Cyclic Redundancy Check (CRC) Más néven: polinóm-kód (polinomial code) Elgondolás: –tekintsük a bitfüzéreket 0 és 1 együtthatójú polinómoknak, –azaz egy m bites keret m-1 fokú polinom: –M(x)=a m-1 x m-1 + … a 1 x + a 0 Példa: x 4 + x + 1 CRC
Vadász Ea5 37 Ciklikus redundancia kód Elgondolás folyt: –Legyen M(x) a védendő keret –Legyen G(x) az r+1 bites, r-ed fokú generátor polinóm, úgy, hogy m > r+1 (hosszabb a keret, mint a generátor polinóm), és a G(x) generátor polinóm mind az adóban, mind a vevőben egyforma, előre adott. –Legyen R(x) az ellenőrző összeg (checksum) az az r- 1-ed fokú (r bites) polinóm, melyet a védendő keret (M(x)) végéhez fűzve, azzal együtt G(x)-szel maradék nélkül osztható polinómot ad. CRC
Vadász Ea5 38 Az ellenőrző összeg számítása Illesszünk az M(x) védendő keret mögé r db 0- át (hogy ez m+r bites legyen): M(x)*x r Osszuk ezt el (mod-2 algebrában) a G(x) generátor polinómmal Az osztás maradéka lesz az R(x) keresett ellenőrző összeg Képezzük a kódszót T(x) = M(x)*x r +R(x) Állítás: a T(x) maradék nélkül osztható a G(x)- szel. CRC
Vadász Ea5 39 A mod-2 algebra és az állítás igazolása A együtthatók miatt az osztás moduló-2 aritmetikán alapul. Ebben (XOR, nincs átvitel) = = = = = = = = 0 Igazolás CRC Ez mod-2 aritmetikában 0 (A + A = 0)
Vadász Ea5 40 Hiba esetén... T(x) T'(x) = T(x) + E(x) –és ahol E(x)-ben 1 van, ott a T(x) megváltozott! Ugyanis Ebből tétel: Minden E(x)-re hibát jelez, ami nem osztható G(x)-szel –Pl. egyetlen bithiba esetén E(x) = x i ; ahol az i-ik bit hibás Ha G(x) két, vagy többtagú, mindig jelzi az egyes bithibát! Itt nincs maradékEnnek maradéka jelzi a hibát CRC
Vadász Ea5 41 Szabványos generátorpolinómok CRC-12 = x 12 + x 11 + x 3 + x 2 + x + 1 CRC-16 = x 16 + x 15 + x CRC-CCITT = x 16 + x 12 + x Tulajdonságaik (CRC-16; CRC-CCITT) –észlelik az összes 1-es és 2-es hibát; –az összes páratlan hibás bit hibát; –a 16-os, v rövidebb csoportos hibát; –a 17-es csoportos hibák 99,997%-át. A CRC algoritmusok számításához egyszerű, léptető regiszteres áramkör építhető, Ez HW, ezt használják … CRC
Vadász Ea5 42 Elemi adatkapcsolati protokollok Ezek közvetett hibavédelmet és adatfolyam vezérlést (forrás-vevő szinkronizálást) valósítanak meg. Építenek a keretképzésre és a közvetlen hibaészlelésre. Általános előfeltételek –A fizikai, az adatkapcsolati és a hálózati réteg funkciói független folyamatok, átlátszóak. (Gyakori, hogy a fizikai + adatkapcsolati réteg HW lapkában implementált, a hálózat réteg pedig a fő CPU-n fut; de más változatok is lehetnek). –A rétegek az interfészeiken keresztül kommunikálnak.
Vadász Ea5 43 Általános előfeltételek Két állomás vizsgálunk: adatkapcsolati adót és adatkapcsolati vevőt. Az adó a hálózati rétegtől "végtelen hosszú üzeneteket" kap, vagyis –az adónak nem kell várnia a küldendő adatokra, az mindig a rendelkezésére áll. Az adatkapcsolati keretek általános felépítése: FejrészFarok részInformációs részHeaderTrailerData A fejben lehet keret típus (vezérlő keret adatokkal; információs keret); sorszám, nyugta információ A farokban közvetlen hibavédelmi infók vannak Az adat rész a hálózati réteg szempontjából lehet több...
Vadász Ea5 44 A vizsgált protokollok Korlátozás nélküli szimplex (utópia) protokoll Szimplex megáll és vár protokoll Szimplex protokollok zajos csatornára Forgóablakos protokollok
Vadász Ea5 45 Korlátozás nélküli szimplex (utópia) protokoll További feltételezés –végtelenek a bufferek (a vevő sohasem telik be) –hibamentes a csatorna Működés: –Az adó folyamatosan ad … –a vevő folyamatosan vesz … Egyirányú, nincs adó-vevő szinkronizálás.. Adó Vevő
Vadász Ea5 46 Szimplex megáll és vár protokoll Feltételezés: –Véges a vevő buffer (vevő "betelhet", szükséges a forgalomszabályozás); –Hibamentes a csatorna. (És ha zajos??) Működés: –(1) adó ad egy keretet, majd várakozik; –vevő veszi a keretet, majd nyugtát küld; –adó veszi a nyugtát, majd folytatja az (1) ponttól... Adó Vevő Miután az adó megvárja a vevő nyugtáját, ez a visszacsatolás szinkronizálja a vevő sebességéhez! Ez forgalomszabályozás!
Vadász Ea5 47 Szimplex protokoll zajos csatornára PAR: Positive Acknowledgement with Retransmission Feltételezés: –véges bufferek, zajos csatorna. Működés –(A1) adó ad egy keretet, majd (A2) beállít egy időzítőt és várakozik –(A3) adó az időzítő lejárta esetén újraadja a keretet, majd megy (A2)-re –(A4) adó nyugta vétele esetén megy az (A1)-re –(V1) vevő érvényes keret vétele esetén továbbítja azt felettes rétegnek, majd nyugtát küld. –(V2) vevő érvénytelen keret vétele esetén vár A PAR protokoll –forgalomszabályozást végez és hibavédelmet biztosít (hiba esetén újraküldéssel)
Vadász Ea5 48 Szimplex protokoll zajos csatornára Gond: –nyugta sérülés esetén ugyanazt a keretet az adó többször is elküldi … –Ezért az egymás utáni kereteket meg kell különböztetni! –Elég persze 1 bit az adott keretek "megszámozására"! 0 1 A V 0 t sérül t 0 Kettőzött, de mert a sorszám egyezik az előzővel, eldobja 0 1
Vadász Ea5 49 Forgóablakos protokol Sliding window Feltételezések –végesek a bufferek, –zajos a csatorna, –duplex (kétirányú) a csatorna. Ebből ráültetéses (piggybacking) csatorna lehetséges: a vevő a nyugtákat az (különben szokásos) adatkeretekre ültetve küldi el (az adatkeretben néhány bit fenntartva a nyugta számára) Gond: (és) ha nincs (szokásos) ellenirányú forgalom (?) (és) emiatt késik a nyugta? Megoldása: a vevő, ha nyugtát küldene, időzítést állít be magának. Ha ez letelik míg nincs adnivalója (amire ráültehetné a nyugtát), akkor önálló nyugtakeretet küld. Forgóablakos piggyback=(US) pickaback = hátán
Vadász Ea5 50 Forgóablakos protokol Megoldandó még: –Nagy átviteli késleltetés esetén túl hosszú kivárni a "körülfordulási időt" (amíg a nyugta visszaér az újabb keret elküldése előtt). –A megoldási gondolat: tegyük lehetővé több nyugtázatlan keret elküldését, ugyanakkor biztosítsuk a sorrendhelyes keret-továbbítást! Forgóablakos
Vadász Ea5 51 A megoldás technikai részletei Az elküldött kereteket "periodikusan" sorszámozzk –Pl. n bites szorszám esetén 0, 1, …. 2 n -1, 0, 1,... Sorszámokkal Az adó "ablakot" képez, w adó szélességűt (sending window) –Mi az ablak? Az elküldött, de még nyugtázatlan keretek sorszámaiból álló lista! –Az ablak megadható a lista elejével + végével! Pl 1, 2, 3 szorszámú keretek listája, w = 3 -nál. –Létezik az "ablakforgatás" fogalom: az alsó (vagy felső) határt "mozdítjuk". Figyelni kell persze az ablakszélességre, ez fix! Forgóablakos
Vadász Ea5 52 A megoldás technikai részletei Az adó az ablakával egyező méretű puffert is tart fenn, ebben tárolja az elküldött, de még nyugtázatlan kereteket az esetleges újraadásra! A vevő is képez ablakot w vevő szélességűt (receiving window) –A vevő ablak azokat a kereteket tartja nyilván, amiket a vevő hajlandó elfogadni! –Itt is létezik ablakforgatás (más mint az adónál!) –Itt létezik a beleesik az ablakba, vagy nem esik bele fogalom! Forgóablakos
Vadász Ea5 53 A vevőnek is van puffere. Lesz eset, amikor ideiglenes tárolásra ebbe tesz keretet és csak később "adja fel" a hálózati rétegnek... Az adó ablak és a vevő ablak hossza nem feltétlenül egyforma. Az ablakok nincsenek mindig "teli". A megoldás technikai részletei Forgóablakos
Vadász Ea5 54 A forgóablakos protokoll működése (forgatókönyve) (A1) Adó a hálózati rétegtől kap egy keretet, tárolja pufferében, elküldi, ugyanekkor beállít egy ehhez tartozó időzítőt, valamint növeli 1-gyel az adó ablak felső határát, Mindezt ismétli, míg el nem éri a max. ablakszélességet (ha egyáltalán eléri). (A2) Az adó, ha valamely kerethez tartozó időzítő lejárt, azt a keretet a pufferéből újraadja. (A3) Az adó, ha nyugtát vesz, az adó ablak alsó határát a nyugta sorszámát követő értékre állítja. Vevő vesz egy keretet. (V1) Ha a vett keret hibás, nem csinál semmit (nem nyugtáz), Ha a vett keret ép, akkor (V2) Ha kívül van a vevő ablakon: nem csinál semmit (eldobja), Ha beleesik a vevő ablakba, akkor nézi, hogy a vett keret sorszáma azonos-e a vevő ablak alsó határával. (V3) Nem azonos: veszi a keretet és tárolja a pufferében. (V4) Azonos: veszi a keretet (föladja a hálózati rétegnek, és ha van pufferében soron következő, azt is kivéve onnan föladja). Ugyanekkor nyugtázza a folytonos sorrendbeli legnagyobb szorszámú keretet, továbbá az ezt követő sorszámra állítja a vevő ablak alsó határát, továbbá a felső határt is mozdítja ennyivel. Forgóablakos
Vadász Ea5 55 Az esettanulmány Legyen w A = 5; w V = 3; A 3-ik keret hibásan érkezik, ennek időzítése lejár a hetedik küldése után … Hogy egyszerű legyen, –szimplex, nem foglakozunk azzal, hogy a vevő is adhat, –de lehet "ráültetéses (piggybacking) nyugtázás). –Nem foglakozunk a ciklikus szorszámokkal sem … Forgóablakos
Vadász Ea A V afaf afaf E 45 DDDD t A1 A3 A1 A2 A3 A1 V V1V3 V4V2 w A =5 w V =3 Ez a teljes forgatókönyv … Forgóablakos
Vadász Ea A V afaf afaf E 45 DDDD t A1 A3 A1 A2 A3 A1 V V1V3 V4V2 w A =5 w V =3 9 A1 Az adó szemszögéből nézzük... (A1) Adó ad, beállít egy időzítőt, növeli ablak felső határát (időzítő beállítás nem mindig látszik) (A2) Ha időzítő lejárt, keretet a pufferéből újraadja. (A3) Az adó, ha nyugtát vesz, ablak alsó határát a nyugta sorszámát követő értékre Forgóablakos
Vadász Ea A V afaf afaf E45 DDDD t A1 A3 A1 A2 A3 A1 V V1V3 V4V2 w A =5 w V =3 A vevő szemszögéből nézzük … (V4) Keretet föladja, ha van pufferében soron következő, azt is föladja. Nyugtázza a legnagyobb szorszámú keretet, az ezt követőre állítja az ablak alsó határát, a felső határt is mozdítja ennyivel. (V1) Ha a vett keret hibás, nem csinál semmit (nem nyugtáz), (V2) Ha kívül van a vevő ablakon: nem csinál semmit (eldobja), (V3) Nem azonos az alsó határral: veszi a keretet és tárolja a pufferében. Forgóablakos
Vadász Ea5 59 Ez volt a forgóablakos... Hogyan választják meg az ablakméreteket? A választást a –terjedési késleltetés –és a hibaarány határozhatja meg! A speciális ablakméretek különböző (nevű) jellegű protokollokat adnak, eseteket... Forgóablakos
Vadász Ea5 60 A PAR protokoll... Ez w a = 1; w v = 1 ablakméretű protokoll … 0 1 A V 0 t sérül t 2 Eldobja, de a 2 nyugta időzítése lejár Megjegyzés: az "eredeti" PAR-nál a csomagszámozás 0, 1 volt. Itt a számlálómező szélesebb … t
Vadász Ea5 61 PAR piggybacking-gel... A és B állomások, mindkettő adó és vevő … Jelölés: keretsorsz, nyugtasorsz, keret (sorszám 1 bites) –Pl. 0, 0, Ai; vagy 1, 1, Bj (0, 1, A0) A B t sérül wa wv wa wv (0, 0, B0) (1, 0, A1) (1, 1, B1) (0, 1, A2) 0-0 (0, 1, A2) 0-0 (0, 0, B2) sérül t (0, 0, B2) 1-1 (1, 0, A3) (, 1, ) 1-1
Vadász Ea5 62 Cifrázzuk a PAR-t … A és B állomások, mindkettő adó és vevő … Jelölés: keretsorsz, nyugtasorsz, keret (sorszám 1 bites) –Pl. 0, 0, Ai; vagy 1, 1, Bj (0, 1, A0) A B wa wv wa wv (0, 1, B2) (1, 0, A1) (0, 1, B0) (1, 0, B1) (0, 1, A2)
Vadász Ea5 63 Ha rövid az időzítés B-nél... (0, 1, A0) A B wa wv wa wv (0, 1, B2) (1, 0, A1) (0, 1, B0) (1, 0, B1) (0, 1, A2) t (0, 1, B0) D t (1, 0, B1) D t (0, 1, B2) D t (0, 1, A2) t (0, 1, B2) Nem tudom, belátják-e, de "bolondbiztos"...
Vadász Ea5 64 Visszalépés n-nel (goback n) hibakezeléses protokoll Említettük, az ablakméreteket –a terjedési késleltetéstől –és a várható hibaaránytól függően célszerű megválasztani. Legyen –w a = n (nagy adóablak), –w v = 1 (vevő egyesével nyugtáz). A jelenség ekkor: –a vevő az összes rákövetkező keretet eldobja, míg az adó meg nem ismétli a hibás keretet. Mikor? Ha a késleltetési idők nagyok …
Vadász Ea5 65 Goback n protokoll A V E D D DD t És ha a hibák is gyakoriak? Intuitíve beláthatjuk, hogy ha a vevő a jól beérkezett kereteket pufferelné (amíg belefér ablakába), és amikor az adó megismétli a hibásat, a jókat is nyugtázná, akkor kevesebbet kellene újraadni!
Vadász Ea5 66 Szelektív ismétlés forgatókönyv Selective Repeat Legyen w a = n; w v = k (nagyobb, mint 1) Egy hiba esetén k - 1 keretet pufferel a vevő (ezt beláttuk a forgóablakos protokoll vizsgálatánál)
Vadász Ea5 67 És az adóablak méret? Azt jó volna úgy megválasztani, hogy a küldő a "körbejárási idővel" megegyező ideig folyamatosan adhasson, anélkül, hogy ablaka "bezáródna"! (Bezáródva ui. az adónak "blokkolódnia" kell, nem fogadhat keretet "felülről"…) Pongyolán: akkora adóablak kell, hogy éppen a betelte előtt jöjjön nyugta! Emiatt az ablak "forogni" fog! Persze, a körbejárási időbe a várható hibaarányt is figyelembe kell venni …
Vadász Ea5 68 A ciklikus számlálómező mérete Ennek megválasztása is érdekes: hány bites legyen. Ennek összefüggése van az ablakméretekkel! Emlékezz a PAR-ra, ott 1-es ablakméretek és 1 bites számlálómező volt.. n bites ciklikus számlálómezőnél 0 (2 n - 1) sorszámok lehetnek … a) Ekkor az adó max ablakmérete 2 n - 1 lehet! b) Ekkor a vevőablak max mérete 2 n-1 lehet!
Vadász Ea5 69 Tegyük fel, nem tartjuk be az a)-t Legyen n = 3 (0 - 7 sorszámok), w a = 8 Adó elküldi a 0-7 sorszámú kereteket (8 db) Az adó 7-es sorszámú nyugtát kap, ezért újabb 8 keretet küld, (0-7 sorszámokkal most is). Az adó újból 7-es sorszámú nyugtát kap: –nem lehet eldönteni, hogy ez az újabb 8 keret nyugtája, –vagy az előző 8 nyugtájának az ismétlése!
Vadász Ea5 70 Tegyük fel, nem tartjuk be az b)-t Legyen n = 3 (0 - 7 sorszámok), w a = 7, w v = 5 Adó elküldi a 0-6 sorszámú kereteket (7 db) A vevő elfogadja mindet, nyugtázza, ablakát ra állítja, de a nyugták elvésznek! Adó újraadja az első 7-et (0-6 sorszámokkal most is, mert az időzítése lejárt). Ezekből a vevő elfogadja és puffereli a 0-3 számú 4 db- ot, azokat a következő sorozatnak gondolva … A bajt az "átlapolódás" okozza. A vevőnél nem szabad átlapolódnia a szorszámoknak. A vevőnél az ablakméret max = (max sorszám + 1) / 2 lehet! Az i. sorszámú keret az i mod w v pufferbe kerül, nem lehet átlapolódás!
Vadász Ea5 71 Miről volt szó? Általános megállapítások Keretképzés - felismerés Hibakezelés, ami lehet –közvetlen, ill. közvetett. Adatfolyamvezérlés Elemi adatkapcsolati protokollok