7. Adatkapcsolati réteg

Hasonló dokumentumok
Az adatkapcsolati réteg

3. Az adatkapcsolati réteg

10. fejezet Az adatkapcsolati réteg

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

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 Adatkapcsolati réteg Hibafelismerés és javítás, Hamming távolság, blokk kódok

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 2013

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

ADATKAPCSOLATI RÉTEG

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

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

ADATKAPCSOLATI PROTOKOLLOK

AST_v3\

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

Adatkapcsolati réteg 1

Programozható vezérlő rendszerek KOMMUNIKÁCIÓS HÁLÓZATOK 2.

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

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

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

4. Hivatkozási modellek

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. 5. gyakorlat

Bevezet. Keretképzés. Adatkapcsolati réteg és protokolljai. Webprogramozó + ISGT

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

Hálózatok II. A hálózati réteg torlódás vezérlése

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

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

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

Hálózatok. Alapismeretek. A hálózatok célja, építőelemei, alapfogalmak

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

A CAN hálózat alapjai

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

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

2.5 Soros adatkommunikációs rendszerek CAN (Ötödik rész)

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

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

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

Egyszerű simplex protokoll nyugtákkal

Hálózatok II. A hálózati réteg funkciói, szervezése

A továbbiakban Y = {0, 1}, azaz minden szóhoz egy bináris sorozatot rendelünk

Hálózati protokoll tervezése

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

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

Mobil kommunikáció /A mobil hálózat/ /elektronikus oktatási segédlet/ v3.0

Véges állapotú gépek (FSM) tervezése

loop() Referencia:

2. fejezet Hálózati szoftver

Megoldás. Feladat 1. Statikus teszt Specifikáció felülvizsgálat

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

Diszkrét matematika 2.C szakirány

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

Hálózati réteg. Feladata: a csomag eljusson a célig Több útválasztó Ez a legalacsonyabb rétek, mely a két végpont

A vezérlő alkalmas 1x16, 2x16, 2x20, 4x20 karakteres kijelzők meghajtására. Az 1. ábrán látható a modul bekötése.

A számítógép-hálózatok tervezését struktúrális módszerrel végzik, azaz a hálózat egyes részeit réteg-ekbe (layer) vagy más néven szint-ekbe (level)

Informatikai alapismeretek

Hibajavító kódolás (előadásvázlat, november 14.) Maróti Miklós

Számítógép-hálózatok zárthelyi feladat. Mik az ISO-OSI hálózati referenciamodell hálózati rétegének főbb feladatai? (1 pont)

Diszkrét matematika 2.C szakirány

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

AST_v3\ Hálózatok összekapcsolása

I. Házi Feladat. internet. Határidő: V. 30.

Járműinformatika Multimédiás buszrendszerek (MOST, D2B és Bluetooth) 4. Óra

BEÁGYAZOTT RENDSZEREK TERVEZÉSE UDP csomag küldése és fogadása beágyazott rendszerrel példa

Kommunikáció. 3. előadás

Véges állapotú gépek (FSM) tervezése

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

Hibajavító kódok május 31. Hibajavító kódok 1. 1

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

Az IEC PRP & HSR protokollok használata IEC61850 kommunikációjú védelmi automatika hálózatokban

Hálózatok I. A tárgy célkitűzése

Járműfedélzeti rendszerek II. 6. előadás Dr. Bécsi Tamás

Számítógép Architektúrák

Számítógép felépítése

13. Egy x és egy y hosszúságú sorozat konvolúciójának hossza a. x-y-1 b. x-y c. x+y d. x+y+1 e. egyik sem

Autóipari beágyazott rendszerek. Local Interconnection Network

Az adatkapcsolati réteg

Két típusú összeköttetés PVC Permanent Virtual Circuits Szolgáltató hozza létre Operátor manuálisan hozza létre a végpontok között (PVI,PCI)

Multiprotocol encapsulation (RFC1483) - IETF Classical IP over ATM (RFC1577) - IETF LAN Emulation (LANE) - ATM Forum Multiprotocol over ATM (MPOA) -

Hálózati alapismeretek

Csoportos üzenetszórás optimalizálása klaszter rendszerekben

Cisco Teszt. Question 2 Az alábbiak közül melyek vezeték nélküli hitelesítési módok? (3 helyes válasz)

InFo-Tech emelt díjas SMS szolgáltatás. kommunikációs protokollja. Ver.: 2.1

A Component-Base Architechture for Power-Efficient Media Access Control in Wireless Sensor Networks

MACAW. MAC protokoll vezetéknélküli LAN hálózatokhoz. Vaduvur Bharghavan Alan Demers, Scott Shenker, Lixia Zhang

A rendszer célja. Funkciók

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

13. KOMMUNIKÁCIÓS HÁLÓZATOK

Address Resolution Protocol (ARP)

Lokális hálózatok. A lokális hálózat felépítése. Logikai felépítés

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

AF hangú kód adó-vevő. Fő jellemzők:

Hálózati architektúrák laborgyakorlat

Jel, adat, információ

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

Diszkrét matematika 2.

Gyakori Kérdések. VMC 870 adatkártyához

AUTOATTENDANT Rendszer Kézikönyv

I+K technológiák. Buszrendszerek Dr. Aradi Szilárd

Átírás:

7. Adatkapcsolati réteg A fejezet tárgya a megbízható, hatékony kommunikáció megvalósítása két szomszédos gép között. Az alapvető követelmény az, hogy a továbbított bitek helyesen, s a küldés sorrendjében érkezzenek meg. Ez azonban nem olyan egyszerű feladat, mivel a kommunikációs áramkörök időnként hibáznak, külső zavarások léphetnek fel, stb. Az adatkapcsolati réteg protokolljainak tehát ezekkel a tényezőkkel kell megbirkózniuk. Megnézzük a hibák természetét, kialakulásuk okait, hogyan lehet jelezni őket és javítani. A réteg egyik másik fontos feladata az adatforgalom szabályozása, hogy a lassú vevőket ne árasszák el a gyors adók. Az említett célok eléréséhez az adatkapcsolati réteg a hálózati rétegtől kapott csomagokat keretekbe (frame) ágyazza be az átvitel idejére. Minden keret tartalmaz egy keret-fejrészt, egy adatmezőt a csomag számára, valamint egy keret-farokrészt. Ezeket a köv. ábra szemlélteti. 7.1. A hálózati rétegnek nyújtott szolgáltatások Az adatkapcsolati réteget különféle szolgálatok megvalósítására készíthetik fel, ezek hálózatról hálózatra változhatnak. A két leggyakrabban megvalósított lehetőség: nyugtázatlan összeköttetés nélküli szolgálat, nyugtázott összeköttetés nélküli szolgálat. Nyugtázatlan összeköttetés nélküli szolgálat esetén a forrásgép egymástól független kereteket küld a célgép felé, amely nem nyugtázza a keretek megérkezését. Semmiféle kapcsolatot nem építenek fel előzetesen, illetve nem bontanak le az átvitel után. Ha egy keret a vonali zaj miatt elveszik, nem történik kísérlet a helyreállítására az adatkapcsolati rétegben. Ez a szolgálati osztály abban az esetben megfelelő, ha a hibaarány alacsony, így a hibák javítása a felsőbb rétegekre hagyható, valamint valós idejű forgalom esetén (pl. beszédátvitel), amikor a későn érkező adat rosszabb, mint a hibás adat. A legtöbb lokális hálózat nyugtázatlan összeköttetés nélküli szolgálatot alkalmaz az adatkapcsolati rétegben. A következő lépés a megbízhatóság irányába a nyugtázott összeköttetés nélküli szolgálat. Ezen szolgáltatás esetén sincs felépített kapcsolat, de minden egyes elküldött keret megérkezését nyugtázza a célállomás, így a küldő értesül arról, hogy a keret megérkezett-e, vagy sem. Ha egy keret nem érkezik meg meghatározott időn belül, újra lehet küldeni. Ez a szolgálat kevésbé megbízható csatornák (pl. vezeték nélküli rendszerek) esetén hasznos.

Érdemes megjegyezni, hogy a nyugtázás megvalósítása az adatkapcsolati rétegben sohasem elvárás, csak optimalizáció. A szállítási rétegben mindig meg lehet várni az elküldött üzenet nyugtázását. Ha a nyugta az időzítő lejárta előtt nem érkezik meg, a küldő újraküldheti az üzenetet. A probléma ezzel a stratégiával az, hogy ha az átlagos üzenet mondjuk 10 keretből áll, és általában a keretek 20%-a elveszik, nagyon sokáig tarthat, míg az üzenet hibátlanul megérkezik. Ha viszont minden keretet egyenként nyugtázunk, és szükség esetén újraküldjük, sokkal gyorsabban jut át az egész üzenet. 7.2. Keretezés Ahhoz, hogy az adatkapcsolati réteg szolgálatot nyújthasson a hálózati rétegnek, a fizikai réteg szolgálatát kell igénybe vennie. A fizikai réteg nem tesz mást, mint a kapott bitsorozatot megpróbálja továbbítani a célhoz. Az érkező bitsorozat hibamentességét a fizikai réteg nem garantálja. A bitek száma lehet kevesebb, esetleg értékük is különbözhet az eredetitől. Az adatkapcsolati réteg feladata, hogy jelezze, illetve ha szükséges, kijavítsa a hibákat. A szokásos megoldás az, hogy az adatkapcsolati réteg különálló keretekre tördeli a bitfolyamot, és minden kerethez kiszámítja az ellenőrző összeget. Amikor a keret megérkezik a célhoz, az ellenőrző összeget újra kiszámolja az adatkapcsolati réteg. Ha ez különbözik attól, amit a keret tartalmaz, a réteg tudja, hogy hiba történt, és lépéseket tesz ennek kezelésére (pl. eldobja a rossz keretet, és hibajelzést küld vissza). A keretek kezdetének és végének jelülésére a következő módszereket alkalmazzák: karakterszámlálás, kezdő- és végkarakterek karakterbeszúrással, kezdő- és végjelek bitbeszúrással. Az első keretezési módszer a keretben lévő karakterek számának megadására egy a keret fejlécében levő mezőt használ. Amikor a célállomás adatkapcsolati rétege megkapja a keretben levő karakterek számát, tudni fogja, hogy mennyi karakternek kell érkeznie, és így azt is, hogy hol van a keret vége. Ennek a technikának az alkalmazása a köv. ábrán látható négy keretre, melyek mérete 5, 5, 8 és 8 karakter. Ezzel az algoritmussal az a baj, hogy egy átviteli hiba elronthatja a karakterszámmezőt. Például, ha egy 5-ös karakterszám az ábra második keretében 7-té válik, a célállomás kiesik a szinkronból, és képtelen lesz megtalálni a következő keret elejét.

A második keretezési eljárás úgy kerüli meg a hibák utáni újraszinkronizálás problémáját, hogy minden keret elejét és végét egy-egy különleges bájttal jelzi. Régebben a keretek elejét és végét különböző bájtok jelezték, de az elmúlt években a legtöbb protokoll már ugyanazt a bájtot használja fel erre a célra. Ezt jelző bájtnak (flag byte) nevezték el, és FLAG-ként tüntetjük fel. Ha a vevő bármikor kiesik a szinkronból, akkor csak a jelzőbájtot kell megkeresnie ahhoz, hogy megtalálja az éppen futó keret végét. Két egymást követő jelzőbájt közül az egyik a keret végét, a másik a következő keret elejét jelzi. Ennél a módszernél komoly gond jelentkezik, amikor bináris adatokat kell átvinnünk. Könnyen előfordulhat ugyanis, hogy a jelzőbájt bitmintája megjelenik az adatok között is, es pedig általában belezavar a keretezésbe. A gond orvoslásának egyik módja az, hogy a küldő fél adatkapcsolati rétege egy különleges kivétel bájtot (escape byte - ESC) helyez minden olyan jelzőbájt elé, amely az adatokkal került az adatmezőbe. A vevő oldal adatkapcsolati rétege eltávolítja ezt a kivétel bájtot, mielőtt a csomagot a hálózati rétegnek továbbítaná. Ezt a módszert bájtbeszúrásnak (byte stuffing) vagy karakterbeszúrásnak (character stuffing) nevezik. A kivétel bájt jelenlétének ellenőrzésével a keretező jelzőbájtokat így meg lehet különböztetni az adatok között előforduló hasonmásaiktól. A következő módszer tetszőleges karakterhosszúságot engedélyez, tehát tetszőleges számú bit lehet a keretben, és az alkalmazott karakterkódok is tetszőleges bitet tartalmazhatnak. A módszer az alábbiak szerint működik: minden keret egy speciális, jelző (flag) bájtnak nevezett bitmintával kezdődik. Ez a 01111110. Amikor az adó adatkapcsolati rétege öt egymást követő 1-es bitet talál az adatok között, automatikusan beszúr egy 0-t a kimenő bitfolyamba. Ez a bitbeszúrás (bit stuffing) módszere.

Amikor a vevő öt egymást követő 1-es bitet talál, melyet egy 0-s követ, automatikusan törli a 0-és bitet. Ha a felhasználói adat tartalmazza a jelző bájt bitmintáját (01111110), ez 011111010-ként továbbítódik, de a vevő memóriájában már 01111110-ként jelenik meg. A bitbeszúrásos módszer segítségével egyértelműen felismerhetők a kerethatárok: ha a vevő szem elől téveszti a határokat, semmi mást nem kell tennie, mint a bemeneti bitfolyamban a jelző mintát keresnie, hiszen a minta csak kerethatárokon fordulhat elő, az adatok között sohasem. Érdemes megjegyezni, hogy sok adatkapcsolati protokoll a nagyobb biztonság érdekében a karakterszámlálás és valamelyik másik módszer kombinációját alkalmazza. Amikor egy keret megérkezik, a protokoll a karakterszám-mező alapján keresi meg a keret végét. Csak akkor fogadja el a keretet érvényesnek, ha a megfelelő határoló jel a helyén van, és az ellenőrző összeg is helyes. Ellenkező esetben, a bemeneti adatfolyamban megkeresi a következő határoló jelet. 7.3. Hibakezelés Miután megoldottuk a keretek kezdetének és végének jelzését, szembekerülünk a következő problémával: hogyan bizonyosodjunk meg arról, hogy minden keret ténylegesen megérkezik-e a célállomás hálózati rétegéhez, és hogy helyes sorrendben érkezik-e meg. A biztonságos átvitel megvalósításának általános módja az, hogy az adónak valamilyen visszacsatolást biztosítunk arról, hogy mi történik a vonal másik végén. Tipikusan az adó megköveteli a vevőtől, hogy speciális vezérlő kereteket küldjön vissza, melyek pozitív vagy negatív nyugtát hordoznak a bejövő keretekről. Ha a küldő pozitív nyugtát kap egy keretről, tudja, hogy a keret rendben megérkezett. A negatív nyugta ellenben azt jelzi, hogy valami nincs rendben, és a keretet újra kell adni. Ezt a lehetőséget az adatkapcsolati rétegben időzítők bevezetésével küszöbölik ki. Amikor az adó továbbít egy keretet, általában egy időzítőt is elindít. Az időzítő úgy van beállítva, hogy lejártáig legyen elég idő arra, hogy a keret elérje a célt, ott feldolgozásra kerüljön, és a nyugta visszatérjen az adóhoz. Normális esetben a keret helyesen megérkezik, és a nyugta visszaér, mielőtt az időzítő lejárna. Ekkor az időzítő törlődik. Ha viszont a keret vagy a nyugta elveszik, az időzítő lejár, és jelzi az adónak, hogy valószínűleg hiba történt. A nyilvánvaló megoldás: egyszerűen újra elküldeni a keretet. Ha a azonban a keretet többször továbbítjuk, fennáll a veszélye annak, hogy a vevő többször veszi ugyanazt a keretet, és többször adja át a hálózati rétegnek. Hogy ezt megakadályozzuk, általában a kimenő kereteknek sorszámot adunk, hogy a vevő meg tudja különböztetni az újraadott kereteket az eredetitől. 7.4. Forgalomszabályozás Egy másik fontos kérdés, mely megjelenik az adatkapcsolati rétegben az, hogy mit tegyünk azzal az állomással, amelyik rendszeresen gyorsabban akarja adni a kereteket, mint a vevő azokat fogadni tudná. Ez a szituáció könnyen előállhat akkor, ha az adó egy gyors számítógép, a vevő pedig egy lassú. Az adó folyamatosan pumpálja kifelé a kereteket egészen addig, míg a vevőt teljesen el nem árasztja, sőt még tovább. Még ha az átvitel hibamentes is, a vevő egy bizonyos ponttól kezdve nem lesz képes kezelni a folyton érkező kereteket, és néhányat el fog veszíteni. Valamit tenni kell ennek a kialakulása ellen.

A gyakorlatban két megközelítés terjedt el. Az első a visszacsatolás alapú forgalomirányítás (feedback-based flow control). Ebben a megoldásban a vevő információt küld vissza a feladónak, amelyben engedélyt ad neki további adatok küldésére, vagy legalábbis tájékoztatja saját pillanatnyi állapotáról. A második a sebesség alapú forgalomszabályozás (rate-based flow control). Itt a protokollba be van építve egy sebességkorlát, amelyet minden küldőnek minden adattovábbítás során tiszteletben kell tartania. Ez a fogadó részéről semmilyen visszacsatolást nem igényel. 7.5. Hibajelzés- és javítás Néhány átviteli közegre (pl. rádió) jellemző, hogy a hibák az őket előidéző fizikai folyamatok természete miatt jóval gyakrabban fordulnak elő csoportosan, mint egyesével. A csoportosan előforduló hibáknak megvan az előnyük és a hátrányuk is a különálló, csupán egy bitet érintő hibákkal szemben. 7.5.1 Hibajavító kódok A hálózatok tervezői két alapvető stratégiát dolgoztak ki a hibák kezelésére. Az egyik módszer az, hogy minden elküldött adatblokkhoz annyi redundáns információt mellékelünk, amennyiből a vevő ki tudja következtetni, hogy mik voltak az eredetileg elküldött adatok. A másik módszerben csak annyi redundanciát iktatunk az adatok közé, amennyi a vevőnek lehetővé teszi, hogy a hiba tényét kikövetkeztesse. A vevő ebben az esetben nem tudja, milyen hiba történt, ezért újraküldést kér. Az előbbi stratégia hibajavító kódokat (errorcorrecting codes) használ, míg a másik hibajelző kódokat (error-detecting code). A hibajavító kódok használatát gyakran megelőző hibajavításnak (forward error correction) is nevezik. Mindkét módszernek megvan a saját alkalmazási területe. A fényvezető szálakon és más, nagymértékben megbízható csatornákon olcsóbb, ha hibajelző kódot használunk, és egyszerűen újraküldjük a ritkán előforduló hibás blokkokat. Ezzel szemben a vezeték nélküli összeköttetéseken, melyek sokat hibáznak, jobb, ha minden blokkba annyi redundanciát építünk, amennyiből a vevő már ki tudja találni, hogy mi volt az eredeti blokk. Az újraküldés ebben az esetben nem jó megoldás, mert az maga is hibás lehet. Egyszerű példaként vegyünk egy kódot, melyben egy paritásbitet (parity bit) fűzünk az adatok végéhez. A paritásbitet úgy választjuk meg, hogy a bináris kódszóban levő 1-ek száma páros vagy páratlan legyen. Például, ha az 10110101-et egy bit hozzáfűzésével, páros paritással továbbítjuk, a kódja 101101011 lesz, míg az 10110001-ből 101100010 lesz páros paritással. Az ilyen kód egy bitnyi hiba jelzésére alkalmas. Egyszerre megjelenő több bitnyi hiba jelzésére szolgál a polinom-kód (polynomial code), más néven ciklikus redundancia kód (cyclic redundancy code - CRC). Amikor ezt a polinom-kódok alkalmazzuk, az adónak és a vevőnek előre meg kell egyeznie egy generátor polinomban, mely kigenerálja azt a redundáns részt, melyet hozzáfűzünk az eredeti kódszóhoz.