HDLC

Z Multimediaexpo.cz

Protokol HDLC (anglicky High-Level Data Link Control) je nadstavba protokolu SDLC, která detekuje chyby a řídí tok dat. Původně byl určen pro synchronní přenos dat, později byla norma HDLC rozšířena i pro asynchronní přenos.

Protokol HDLC rozeznává tzv. módy:

ABM (Asynchronous balanced mode). Mód sloužící pro propojení dvou stanic full-duplexním spojem.

NRM (Normal response mode). Vychází z protokolu SDLC. Slouží pro propojení více stanic half-duplexním spojem.

ARM (Asynchronous response mode) dnes málo používaný režim.

Obsah

Křídlová značka (Flag)

Každý HDLC rámec začíná a končí křídlovou značkou. Křídlová značka se skládá z osmi bitů: 0111 1110. Šest po sobě jdoucích jedniček určuje křídlovou značku. Jdou-li dvě křídlové značky po sobě, znamená to že se jedná o prázdný rámec, se kterým se dále nepracuje. Pokud vstupní data obsahují více než pět jedniček za sebou, vloží se za každou pátou jedničku automaticky jedna nula. Je-li pak ve výstupních datech za pěti jedničkami nula, pak se tato nula vypustí. Tento proces se nazývá bit-stuffing. Toto se dá využít jen u bitově orientovaného přenosu.

Adresní pole

Adresní pole je dlouhé 8 bitů. Označuje adresu stanice, které je paket určen. Využívá ho mód NRM, kdy mezi sebou komunikuje více stanic. Je však nutné, proto ho obsahuje i protokol HDLC. Jedná se o linkovou adresu.

Kontrolní součet

Z přenášených dat, adresního a řídicího pole se počítá kontrolní součet. Z přijatého rámce se spočte kontrolní součet, který se porovná s kontrolním součtem v přijatém rámci. Jsou-li shodné,pak přenos proběhl správně. Nejsou-li shodné, tak se může přenos u číslovaných rámců zopakovat.

Řídicí pole

Řídicí pole je u U-rámců osmibitové. U I-rámců a S-rámců může být buď osmibitové nebo šestnáctibitové. Řídicí pole rozlišuje 3 typy HDLC-rámců:

Informační rámce 
I-rámce (v nejnižším bitu je 0) jsou určeny pro přenos dat, mohou však přenášet i některé řídicí informace. I-rámec obsahuje pole N(S) a N(R), které slouží k číslování rámců. Čísluje se od nuly do 127, pak se opět pokračuje od nuly. N(S) určuje číslo odesílaného rámce. N(R) slouží pro potvrzení přijatého rámce. Protože je komunikace obousměrná, potvrzují se v protisměru správně přijaté rámce. Jestli-že se data posílají jen jedním směrem, pak se k potvrzení přijatých dat použije S-rámec s příkazem RR. Je-li přijatý rámec detekován jako chybný, pak je pomocí S-rámce příkazem REJ vyžádáno opakování přenosu.
Nečíslované rámce 
U-rámce (v nejnižších dvou bitech je 11) se používají pro přenos dat a pro řídicí funkce (inicializace, řízení linky) a také k přenášení příkazů a odpovědí:
SABM (Set Asynchronous Mode = nastavení módu ABM) s osmibitovým řídicím polem.
SABME (Set Asynchronous Mode = nastavení módu ABM) s šestnáctibitovým řídicím polem.
SNRM (Set Normal Response Mode = nastavení módu NRM) s osmibitovým řídicím polem.
SNRME (Set Normal Response Mode = nastavení módu NRM) s šestnáctibitovým řídicím polem.
UA (Unnumbered Acknowledgment = nečíslované potvrzení) používá se pro potvrzení SABM, SABME, SNRM, SNRME a DISC.
DISC (Diconnect = odpojení).
DM (Disconnect Mod) potvrzení příkazu DISC.
FRMR (Frame Reject = odmítnutí rámce). Indikuje přijetí vadného rámce bez možnosti opravy. Po obdržení FRMR se začíná znovu od nastavení módu linky.
XID (Exchange Station Identification = výměna konfiguračních informací). typ protokolu, délka kontrolního součtu.
UI (Unnumbered Information = nečíslované datové rámce). Umožňují na přenosové lince míchat různé protokoly( IP a IPX), jestli-že na počátku datového pole obsahují specifikaci přenášeného protokolu.
Rámce supervizoru 
S-rámce (v nejnižších dvou bitech je 10) se používají pro řízení toku dat (požadavek na vysílání, potvrzování I-rámců atd.), S-rámce mohou být používány až když je linka inicializována, zpravidla neobsahují datové pole. S-rámec může potvrzovat správně přijatý rámec. Dále v poli příkaz může nést následující příkazy resp. odpovědi:
RR (Receiver Ready = přijímač připraven). Informuje že linka je volná a potvrzuje správnost čísla přijatého rámce.
RNR (Receiver Not Ready = přijímač nepřipraven) potvrzuje dosud přijaté rámce.
REJ (Reject = odmítnutí). Přijetí chybného rámce, tj. používá se jako příkaz nebo jako odpověď pro zopakování vysílání.

P/F bit

V NRM módu řídicí stanice nastaví tento bitu na P (=Pool). To znamená, že podřízená stanice smí vysílat data. Podřízená stanice nechává při vysílání tento bit nastaven. Tím signalizuje, že chce ve vysílání pokračovat. U posledního vysílaného rámce tento bit nastaví na (F=Final).