HDLC

**HDLC** protokoloa, datu loturentzako ISOk definitutako arau internazional bat da. Datu loturan full-duplex komunikazioa modu gardenean gauzatzen du. HDLC helburu orokorreko arau bat denez, sare konfigurazio ezberdinetan erabili ahal izango da.

## Estazio motak 
HDLCk hiru estazio mota bereizten ditu:

* **1. Mailako Estazioak**: Datu transferentziak hasten dituzte. Agindu tramak bidali eta Erantzun tramak jasotzen dituzte.

* **2. Mailako Estazioak**: Loturaren kontrol mugatua besterik ezin dute egin, aginduak jaso eta erantzunak bidaltzen dizkiote 1. Mailako Estazioei. Ezin dira beste 2. Mailako Estazioekin komunikatu.

* **Estazio Konbinatuak**: Loturaren kontrol osoa egin dezakete. 1. eta 2. Mailako Estazioen modura funtzionatzen dute, hau da, aginduak eta erantzunak jaso eta bidal ditzakete.

## Konfigurazio motak 
Lotura mailan eman daitezkeen konfigurazio motak bi taldetan sailkatzen dira:

* **Ez orekatua**: Logikoki ezberdinak diren estazioak lotzen dituzten konfigurazioak dira, loturaren alde batean 1. Mailako Estazio bat eta beste aldean 2. Mailako Estazio bat edo gehiago dituzten konfigurazioak daudelarik. Informazio transferentzia 1. Mailako eta 2. Mailako Estazioen artean emanten da beti, kontrola 1. Mailako Estazioak duelarik. 2.Mailako Estazioen artean ezin daiteke informazio transferentziarik eman.

* **Orekatua**: Konfigurazio hauetako estazioak, logikoki berdinak dira, hau da, alde bakoitzean Estazio Konbinatu bat dago, eta loturaren kontrola bien artean eramaten dute. Puntuz-puntuko konfigurazio bat da.

## Operazio motak 
Konfigurazioaren arabera, hiru Datu Transferentzia Modu edo Operazio Mota bereizten dira:

* **Erantzun Modu Arrunta [NRM]**: Konfigurazio Ez Orekatuak darabiltza, 2. Mailako Estazio batek datu transferentzia egiten du 1. Mailako Estaziotik baimena jasotzean. 2. Mailako Estazioak transferentzia noiz bukatzen duen adierazten du.

* **Erantzun Modu Asinkronoa [ARM]**: Konfigurazio Ez Orekatuak darabiltza, baina 2. Mailako Estazioek ez dute 1. Mailakoaren baimenik behar transmititzeko.

* **Modu Asinkrono Orekatua [ABM]**: Orekatutako konfigurazioetan erabiltzen da. Loturaren bi muturrek kontrolerako gaitasun berdina dute.

## Tramen egitura eta motak 
HDLCn, bitak trametan taldekatzen dira. Trama horiek egitura estandarra dute, ondoko irudian agertzen den modukoa:

* **F** (Flag): Tramaren muga adierazlea.

Bit sekuentzia bakun bat da, zehazki 01111110 edo 7Eh. Bere eginkizuna Hartzailea sinkronizatzea da. Estazio guztiak sekuentzia hori bilatzen ari dira etengabe. Trama baten hasiera adierazten du, amaieran jartzen den sekuentziak, hurrengo tramaren hasiera adierazten duelarik. Elkarren segidan doazen bi tramen artean, flag hauetariko hainbat transmiti daitezke.

Bit sekuentzia hori, tramaren beste eremuetan ere agertu daiteke. Hori ekiditeko, sekuentzia flagetatik kanpo bit sekuentzia hau gertatzen den bakoitzean, modu transparentean bidaltzen da, hau da, igorleak, bost 1eko jarraian bidaltzen dituela konturatzen denean, 0ko bat sartzen du ondoren. Hartzaileak berriz, bost 1eko jarraian jasotzen dituenean, hurrengo bita 0 den egiaztatuko du. Hala bada, igorleak sartu du eta ez du kontuan hartzen. Ez bada, eta hurrengoa 1 bada, flag bat jaso du, trama mugatzen duena. Teknika honi *bit stuffing* deitzen zaio.

* **A** (Address): Helbide eremua.

Eremu honen luzera 8 bitetakoa da normalean, baina byte multiplo ezberdinetara hedatu daiteke. Modu hedatuan, helbidea osatzen duten byte guztietako esangura gutxieneko bita 0 izango da, azkenekoan izan ezik. Azken horretan, 1 izango da bit hori, byte hori helbidearen azken bytea dela adieraziz.

Bit guztiak 1 dituen helbideari *broadcast* deitzen zaio, eta 1. Mailako Estazioak konektaturiko 2. Mailako Estazio guztiei trama bat bidaltzeko erabiltzen du.

Bit guztiak 0 dituen helbidea testak egiteko erabilzen da.

* **C** (Control): Kontrol eremua.

Eremu honek, tramaren funtzio eta helburua adierazten ditu. Hiru trama mota bereizten dira HDLCn:
 
**1._ Trama ez zenbakituak** (U): Loturarako konexioa, NRM, ARM eta ABM modu ezberdinetan ezarri eta askatzeko erabiltzen da.

P bita 1 balioaz bidaltzen bada, Hartzaileak trama hori erantzun trama batekin egiaztatu behar duela adierazten da. "Final" bita 1 balioaz bidaltzean, Polling bita 1 balioaz zuen agindu trama erantzuten da.

M bitek U tramak adierazten duten agindu edo erantzunaren kodea osatzen dute. Kode horiekin Loturaren konexioa zein modutan ezarri nahi den, ezarpen hori onartzen den... adierazten da.

**2._ Informazio tramak** (I): Informazio erreala edo datuak garraiatzen dituzte. I mota honetako tramen fluxu kontrola egiteko informazioa eramaten dute.

N(S) eremuak bidaltzen den I tramaren sekuentzia zenbakia adierazten du.

N(R) eremuak, trama honen helburu den estaziotik jasotzen den hurrengo I tramak, zein sekuentzia zenbaki izatea espero duen adierazten du.

**3._ Gainbegirazte tramak** (S): Fluxu eta errore kontrolerako erabiltzen dira.

Bi S bit daude. Horien arabera 4 S Trama ezberdin bereizten dira:

    RR (00):  Tramak jasotzeko prest dagoela adierazten du.
    RNR (10): Trama gehiago ezin dituela jaso adierazten du.
    REJ (01): N(R) sekuentzia zenbakitik aurreko I tramak berriz bidaltzea eskatzen du.
    SREJ(11): N(R) trama berriz bidaltzeko eskatzen du.

NRM eta ARM moduetan, RR eta RNR erabiltzen dira bakarrik. ABM moduan, guztiak erabil daitezke.

* **INFO** (*Information*): Informazio eremua.

Beste estaziora transmititu beharreko informazioa dago eremu honetan. I Trametan bakarrik erabiltzen da eremu hau. Ez du luzera finkorik.

* **FCS** (*Frame Check Sequence*): Erroreak antzemateko eremua. Normalean CRC - 16 edo 32 erabiltzen da.

Sortzaile Polinomio deiturikoaren arteko hondarra adierazten du. HDLCn erabiltzen den sortzaile polinomioa, CCITTk gomendatutako bat da.

## Kanpo estekak