Az előző részben megismert adatkapcsolati protokollok gyakorlatban is használt fajtái közül ismerhetünk meg néhányat a mostani részben. Bemutatunk egy régi bitorientált, majd egy szintén régi karakterorientált lejárást, majd részletesen ismertetjük egy nagyon fontos protokoll, a HDLC (High Level Data Link Control) felépítését és működését. Ez az eljárás nagyon sok szabvány alapját képezi, például az ISDN adatforgalmának bonyolításához is köze van.

Adatkapcsolati protokollok gyakorlatban történő megvalósítása

Az előző részben megismerkedhettünk az adatkapcsolati protokoll működésével. A gyakorlatban több adatkapcsolati protokoll alakult ki, ezek közül nézzük meg a legfontosabbakat.
CCITT V.41
A CCITT V.41-es ajánlása nem szabvány, az első nemzetközileg elfogadott eljárás a bitszinkron eljárás. A kommunikáció rögzített hosszúságú blokkok formájában történik. Többféle blokk kerülhet továbbításra, azt, hogy konkrétan melyikről van szó, egy 4 bites előtag jelzi. A hibavédelemről egy 16 bites CRC védelem gondoskodik. A keret hosszúsága az adatblokk hosszától függ, lehet 260, 500 vagy 980 bit. A protokoll keretformátuma a következő:
 
4 bit
240, 480 vagy 960 bit
16 bit
Előtag
Adat
Ciklikus hibavédelem

Az előtag négy különböző kerettípust határozhat meg, a maradék 12 kombináció használata pusztán lehetőség, de nem követelmény. A keretek nyugtázására egy visszirányú nyugtacsatorna van, amelyen az adó folyamatosan figyeli, hogy az elküldött keretre érkezett-e válasz. A nyugtacsatorna magas szintű, amennyiben a vevő érvényes és hibátlan keretet vett, akkor a szintjét alacsony szintre állítja. Hiba esetén újra kell küldeni a hibás keretet, aminek érdekében az adó az éppen küldött keretet elrontja azzal, hogy invertálja a CRC utolsó bitjét, és újra elküldi. A biztonságos átvitelt a három blokktípus folyamatos sorrendben történő küldése biztosítja, valamint a vevő oldalon megakadályozza, hogy az azonos blokkot duplán vehesse.

A protokoll előnyei:

  • Lehetőséget biztosít a kódtól független átvitelre.
  • A hibavédelem ciklikus ellenőrző kóddal történik.
  • Az információs blokkok számozottak.
  • Az átvitel szinkron ütemezésű.
Mint mindennek, ennek a protokollnak is vannak hátrányai:
  • A blokkhosszúság kötött.
  • Nehéz az adó és a vevő párbeszédes üzemmódjának a megvalósítása.
  • Nincs lehetőség terminálcímzésre.
  • A nyugtázáshoz külön csatornára van szükség.
IBM BISYNC (Binary Synchronous Communication, bináris szinkron kommunikáció)
Ez előzővel ellentétben ez az eljárás karakterorientált. Az IBM dolgozta ki, amely az ISO 1745-ös ajánlásán alapszik. Elsősorban félduplex vonalakhoz fejlesztették ki, képes akár az egypontos, akár a többpontos kapcsolat esetén is működni. A protokoll keretformátuma a következő:
 
SYN
DLE
SOH
FEJ
STX
ADAT
DLE
ETB
BCS

A rövidítések jelentése:

SYN- Synchronize (szinkronizálás)
SOH- Start of Header (fejrész kezdet)
STX- Start of Text (szöveg kezdete)
ETB- End of Transmission Block (átviteli blokk kezdete)
ETX- End of Text (szöveg vége)
DLE- Data Link Escape (értelmezés módosító)
BCS- Block Check Sequence (blokkellenőrző összeg)
A keretben nem kötelező a fejrész megadása. Az ETB karakter több, egymást követő blokk szétválasztására és lezárására szolgál. Minden blokkot egy vagy két karakternyi ellenőrző blokk zár le.

Minden blokk átvitele után az irány megfordul és a vevő elküldi a vett keretre vonatkozó nyugtát. Abban az esetben, ha két állomás egyidőben próbálkozik meg adni, ütközés lép fel. Ezt érzékelve mindkét állomás eltérő idő múltán újra próbálkozik az adással.

Magas szintű adatkapcsolat vezérlés (High-level Data Link Control, HDLC)
Ezt a protokollt általánosan használják nagyon sok hálózatban. Az eredeti protokollt az IBM adta ki SDLC (Synchronous Data Link Control, szinkron adatkapcsolat vezérlés) néven, majd az ISO kiegészítések után HDLC néven fogadta el. Ugyanezt a protokollt az ANSI ADCCP-re (Advanced Data Communication Control Procedure, fejlett adatkommunikáció-vezérlő eljárás) változtatva fogadta el.

A protokoll előnyei:

  • Lehetőség van a duplex (kétirányú) információcserére.
  • A keret tartalmaz egy ciklikus hibavédelmet.
  • A vezérlő információk is védettek.
  • Az átvitel független a kód és a bitsorozatoktól.
  • Egyszerre több nyugtázatlan keret is lehet a vonalon.
  • Az adatkeret mezőinek bővítésére lehetőség van.
A protokoll bitorientált, a kódfüggetlenség megteremtése érdekében bitbeszúrást alkalmaznak. A keretformátum a következő:
 
8
8
8
>= 0 
16
8
1111110
Címmező
Vezérlésmező
Adat mező
Ellenőrző összeg
1111110

A keret különböző részeinek a szerepe:

A keretet a kerethatároló, amely a 01111110 bitsorozat, vezeti be és zárja le. Kétpontos vonalaknál információszünetekben folyamatosan ezt bájtot továbbítják.

A Címmező többpontú vonalak esetén biztosítja a különböző terminálok azonosítását. Abban az esetben, ha egypontos vonalon használjuk, ez a terület néha a parancsok és a válaszok megkülönböztetésére szolgál. A Vezérlésmező sorszámozásra, nyugtázásra és egyéb más célokra használható. Az Adat mező tartalmazza a tényleges információt, hosszúsága elméletileg bármekkora lehet, de minél hosszabb, a ciklikus hibavédelem hatékonysága annál inkább leromlik, mivel hosszabb keretek esetén a többszörös csoportos bithibák valószínűsége egyre nagyobb. Az Ellenőrző összeg a már megismert ciklikus redundanciakód, a polinomként a CRC-CCITT-t használja, ami lehetővé teszi, hogy észrevegyük az elveszett jelzőbájtokat. A HDLC keretnek mindenképpen tartalmaznia kell három mezőt a kerethatárolón kívül. Három kerettípust különböztethetünk meg, az információs (Information), a felügyelő (Supervisory) és a számozatlan (Unnumbered) keretet. Ezekben a módokban a keretek felépítése a következő:
 

LSB információs keretMSB
0
Sorszám
L/U
Következő
1 bit
3. bit
1 bit
3 bit
LSB felügyelő keret MSB
1
0
Típus
L/U
Következő
1 bit
 
2 bit
1 bit
3 bit
LSB számozatlan keret MSB
1
1
Típus
L/U
Következő
1 bit
 
2 bit
1 bit
3 bit

 

A protokoll 3 bites csúszóablakkal rendelkezik, ami azt jelenti, hogy maximálisan hét keret lehet a vonalon, de bizonyos esetekben lehetőség van az ablak méretét 7 bitre növelni, ami 128 keretet jelent. A Sorszám mező a keret sorszámát tartalmazza, a Következő mező pedig a keretre ráültetett nyugta. A nyugtázáskor az első még nem vett keret sorszámát kell elküldeni. Az L/U bittel jelzi a küldő, hogy a címzett küldjön adatot. Van olyan protokoll is, amelyben az L/U bit arra kényszeríti a vevőt, hogy azonnal küldje vissza a nyugtát és ne várja meg a visszirányú forgalmat.

A felügyelő kereteket a Típus mező alapján lehet megkülönböztetni. A különböző lehetőségeket az alábbi táblázat mutatja.
 

Típus
Megnevezés
Leírás
0
RECEIVE READY - VÉTELRE KÉSZ

nyugtakeret

A keretet akkor használják, ha nincs olyan keret, amelyre a nyugta ráültethető lenne.
1
REJECT - ELUTASÍTÁS

negatív nyugtakeret

Átviteli hiba jelzésére használják. Hiba estén a Következő mező annak a keretnek a sorszámát tartalmazza, amelyet nem vettünk megfelelően. Az adónak az összes kint lévő keretet újra kell küldenie ettől a sorszámtól.
2
RECEIVE NOT READY - VÉTELRE NEM KÉSZ
Ez minden keretet nyugtáz a Következő mezőben található sorszámig. A 0. típustól annyiban tér el, hogy jelzi az adónak, hogy ne küldjön több keretet. Fontos, hogy átmeneti problémák jelzésére szolgál, nem helyettesíti a csúszóablakos protokollt.
3
SELECTIVE REJECT - SZELEKTÍV ELUTASÍTÁS
Ez a keret meghatározott keretek újraküldésére szólítja fel az adót. Olyan helyen célszerű ezt a keretet használni, ahol az adó csúszóablakának mérete fel vagy kisebb, mint a sorszámmezőé. Az SDLC és a LAPB nem engedélyezi ezt a keretet.
     

A számozatlan keretek akár vezérlési, akár adatátviteli célokra is használhatók. Ez utóbbit akkor válasszuk, ha nincs szükségünk megbízható, összeköttetés alapú átvitelre. A keretek azonosítására 5 bit szolgál, azonban nem használják ki mind a 32 lehetőséget. A számozatlan keretek típusait a következő táblázat foglalja össze:
 

Keret típusa
Funkció
Normál válasz - üzemmód
parancs
Aszinkron válasz-üzemmód
parancs
Aszinkron szimmetrikus üzemmód
parancs
Szétkapcsolás
parancs
Beindító üzemmód beállítás
parancs
Beindító üzemmód kérés
parancs
Sorszámozatlan lekérdezés
parancs
RESET
parancs
Sorszámozatlan információ
parancs/válasz
Információcsere azonosítás
parancs/válasz
Sorszámozatlan nyugtázás
válasz
Szétkapcsolás üzemmód
válasz
Szétkapcsolás kérés
válasz
Keretelutasítás
parancs/válasz
Parancselutasítás
válasz

A fenti parancsokat nem minden protokoll tartalmazza, de van néhány, amely mindegyikben megtalálható:

Kapcsolatbontás (Disconnect) keret lehetővé teszi, hogy egy hoszt bejelentse, hogy le fog kapcsolódni a vonalról.
Normál válaszmód (Normal Response Mode) üzemmódban egy bekapcsolódó hoszt képes jelezni a jelenlétét. Ez az üzemmód az egyetlen, amit az SDLC definiált és egy aszimmetrikus kapcsolatot valósít, amelyben a domináns egység (master) egység szabja meg, hogy mit csináljanak az alárendelt (slave) egységek. Az alárendelt egységek a főállomástól kapott lekérdezésekre válaszolnak. Aszinkron kiegyensúlyozott üzemmód beállítása (Set Asynchronous Balanced Mode) parancs segítségével az aszinkron vonal esetén visszaállíthatjuk a szimmetrikus elrendezést, amely során a kapcsolódó állomások egyenrangúak. Keretelutasítás (Frame Reject) paranccsal egy megfelelő ellenőrző összegű, de érvénytelen alakú keret érkezését jelezzük. A kapcsolatban résztvevő eszközök három üzemmódban működhetnek. Ezek között a megfelelő parancsokkal válthatunk. A három üzemmódból kettőt már az előzőekben említettünk, a harmadik az Aszinkron válasz üzemmód (Asynchronous Response), aminek előnye a normál válasz üzemmódhoz képest, hogy nem csak akkor küldhetnek az alárendelt állomások, ha a főállomás erre utasítja őket, hanem gyakorlatilag akkor, amikor akarnak. Ez a módszer jól használható a pont-pont és üzenetszórásos topológia alkalmazásakor egyaránt. A HDLC protokollt a gyakorlatban az alábbi protokollokban használják, illetve az alábbi szabályrendszerek alapját képezi: LAP (V.42); LAPB (X.25); LAPD (ISDN); LLC; SDLC (SNA); LAPX (Teletext);V.120.
Ebben a részben a gyakorlatban használt adatkapcsolati protokollokat tekintettük át. A következő részekben tovább folytatjuk az OSI modell rétegeinek az ismertetését, valamint ismertetjük a modell közegelérési alrétegét is.