Přeskočit na obsah

High-Level Data Link Control

Z Wikipedie, otevřené encyklopedie

HDLC, anglicky High-Level Data Link Control, česky doslova vysokoúrovňové řízení datového spoje je komunikační protokol linkové vrstvy vzniklý rozšířením protokolu SDLC a vyvíjený od roku 1979 Mezinárodní organizací pro normalizaci (ISO) ve spolupráci s Mezinárodní elektrotechnickou komisí (IEC).

Z HDLC je odvozena celá řadu protokolů jako LAPB, LAPD, LAPF, LAPM a IrLAP, které jsou používány pro rozličné formy komunikace (v sítích X.25, v digitálních telefonních sítích, v lokálních sítích, pro modemovou komunikaci, pro komunikaci pomocí infračerveného světla), a další protokoly jako PPP, MTP-2 byly protokolem HDLC inspirovány. Některé jeho vlastnosti přebírá i IEEE 802.2 LLC, což řadí HDLC k nejvlivnějším linkovým protokolům.

Standard HDLC byl původně tvořen několika samostatnými dokumenty, které definují formáty rámců a postupy při komunikaci na sériovém spoji, a které byly později sloučeny do ISO/IEC 13239.

HDLC pokrývá široký rozsah sériové komunikace:

Historie

Po zkušenostech se znakově orientovanými protokoly vyvinula firma IBM v první polovině 70. let 20. století bitově orientovaný přenosový protokol SDLC[1], který v roce 1975 použila pro svou sadu síťových protokolů SNA[2]. Protokol byl dále rozvinut Mezinárodní organizací pro normalizaci (ISO) a American National Standards Institute (ANSI), které jej v roce 1979 publikovaly HDLC (ISO: High-Level Data Link Control)[1] a ADCCP (ANSI: Advanced Data Communications Control Procedures). HDLC a ADCCP rozšiřují SDLC o některé nové vlastnosti, jako je například asynchronní vyvážený režim, a ruší omezení velikosti rámce na násobky osmi bitů; na druhou stranu některé procedury a zprávy (např. zprávu TEST) nepřevzaly[3].

Protokol HDLC je poměrně komplikovaný a díky jeho postupnému vývoji jej popisovalo několik ISO standardů:

  • ISO 3309 – Struktura rámce
  • ISO 4335 – Prvky protokolu
  • ISO 6159 – Nevyvážené třídy protokolu
  • ISO 6256 – Vyvážené třídy protokolu
  • ISO 7776 – KZD procedury linkové vrstvy kompatibilní s X.25 LAPB
  • ISO 7809 – Specifikace pro konsolidaci tříd procedur
  • ISO 8471 – Nastavování adres datového spoje
  • ISO 8885 – Obsah a formát informačního pole víceúčelového rámce XID

Které byly později spojeny do ISO/IEC 13239.

Existuje množství protokolů odvozených z HDLC; část funkcionality HDLC byla převzata:

  • do protokolového zásobníku X.25 jako LAPB,
  • do modemového protokolu V.42 bylo HDLC implementováno jako LAPM,
  • do protokolového zásobníku Frame Relay jako LAPF,
  • do protokolového zásobníku ISDN jako LAPD,
  • do standardu IrDA jako IrLAP.

HDLC inspiroval protokol LLC v IEEE 802.2 a je základem pro mechanismus vytváření rámců používaný protokolem PPP na synchronních linkách, který používá mnoho serverů pro připojení k WAN, nejčastěji k Internetu.

Mírně odlišná verze se používají pro řídicí kanál na E-carrier (E1) a vícekanálových telefonních linkách SONET. Někteří výrobci vytvořili protokoly (například Cisco HDLC), které používají nízkoúrovňové techniky HDLC pro vytváření rámců, ale ke standardní HDLC hlavičce přidávají další protokolová pole. Důležitější je, že HDLC je implicitním zapouzdření pro sériové rozhraní na Cisco routerech.

Vytváření rámců

HDLC rámce lze přenášet přes synchronní i asynchronní spoje, které přenášejí data jako nečleněný proud bitů nebo bytů. Jedním z úkolů HDLC je proto poskytnout metodu pro identifikaci začátku a konce rámce. HDLC k tomu používá křídlové značky (anglicky flag) také nazývané oddělovač rámců nebo příznak, která je tvořena posloupností bitů '01111110' nebo v šestnáctkovém zápisu 0x7E, kterou každý rámec začíná i končí. Křídlová značka na konci rámce může zároveň označovat začátek dalšího rámce.

Pokud simplexní nebo plně duplexní synchronní HDLC spoj nepřenáší žádné rámce, vysílají se nepřetržitě křídlové značky. Při použití linkového kódu NRZI-S (bit 0 = změna úrovně, bit 1 = bez změny úrovně) vzniká jeden z níže uvedených průběhů signálu podle počátečního stavu:

Tento průběh používají modemy pro trénink a synchronizaci hodin pomocí fázového závěsu. Některá zařízení dovolují, aby nulový bit na konci křídlové značky byl sdílen s křídlovou značkou na začátku dalšího rámce, tj. '011111101111110'.

Při poloduplexní komunikaci nebo při komunikaci point-to-multipoint, kdy linku sdílí několik stanic, není v mezirámcových mezerách aktivní žádný vysílač, což přijímače interpretují jako dlouhou řadu jedničkových bitů.

Jedním z požadavků při vytváření protokolu SDLC a HDLC byla možnost přenášet uvnitř rámce libovolná data (tzv. datová transparence). Protože se v uživatelských datech může vyskytnout bitový vzorek nebo byte shodný s křídlovou značkou, musí vysílač taková data upravit, aby jej přijímač chybně nedetekoval jako ukončení rámce. Způsob úpravy závisí na tom, zda se používá bitově orientovaný nebo znakově orientovaný přenos.

Vytváření rámců na synchronních spojích

Synchronní spoje používají bitově orientovaný přenos, který umožňuje používat metodu vkládání bitů (anglicky bit stuffing): kdykoli se v datech objeví 5 po sobě jdoucích jedničkových bitů, vloží se za ně jeden nulový bit. To zaručuje, že se uvnitř rámce nikdy (pokud neuvažujeme chyby přenosu) neobjeví více než 5 za sebou jdoucích jedničkových bitů. Právě 6 jedničkových bitů obklopených nulami signalizuje křídlovou značku; 7-15 jedničkových bitů za sebou se používá pro násilné ukončení přenosu rámce (abort). Více než 15 jedničkových bitů za sebou je interpretováno jako klidový stav linky. Přijímač při přijetí pěti jedničkových bitů následovaných nulovým bitem, tento nulový bit odstraní; pokud přijímač zaznamená posloupnosti šesti jedničkových bitů, jedná se buď o křídlovou značku (pokud sedmý bit je nulový) nebo o násilné ukončení přenosu rámce (pokud je sedmý bit jedničkový).

Chování přijímače při přijetí posloupnosti několika po sobě jdoucích jedničkových bitů popisuje následující tabulka:

Počet bitů Význam Činnost přijímače
1-4 Data rámce přijmout beze změn
5 Data rámce vypustit následující nulový bit
6 Křídlová značka po stavu klidu: synchronizovat přijímač; po datech: zkontrolovat přijatá data a předat vyšší vrstvě
7-15 Násilné ukončení rámce rámec zahodit
>15 Stav klidu čekat na křídlovou značku

Při použití kódování NRZI-S, které kóduje nulový bit změnou úrovně signálu a jedničkový bit signálem bez změny úrovně, dochází při přenosu rámců ke změně úrovně signálu nejvýše po 7 jednotkových intervalech, což umožňuje udržovat synchronizaci vysílače a přijímače bez nutnosti přenosu hodinového signálu zvláštním vodičem.

Nové protokoly mohou používat výhodnější kódování jako například kódování 8b/10b.

Asynchronní vytváření rámců

Pokud se pro HDLC používá linka s arytmickou komunikací jako je například standardní sériový port podle standardu RS-232 nebo V.24/V.28, bity jsou sdružovány do slabik po 5-8 a mechanismus vkládání bitů nelze použít. Pro dosažení transparence přenášených dat se používá metoda únikového znaku (anglicky escape character). Jako únikový znak se používá znak s kódem 0x7D. Pro zakódování libovolného znaku, který se nesmí přímo objevit v přenášených datech, se používá dvoubytová posloupnost únikový znak, n, kde n je původní znak s invertovaným bitem 5 (s váhou 32, tj. 0x20). Znaky s kódy 0x7E a 0x7D se kódují podle následující tabulky:

Znak v datech Význam Zakódování
0x7D Únikový znak 0x7D 0x5D
0x7E Hranice rámce 0x7D 0x5E

HDLC umožňuje dojednat, aby se stejným způsobem přenášely i jiné rezervované hodnoty oktetů (jako například XON anebo XOFF), pokud to přenosová linka vyžaduje.

Struktura rámců

V základním režimu používá HDLC následující formát rámce:

Křídlová značka Adresní pole Řídicí pole Informační pole FCS Křídlová značka
8 bitů 8 bitů 8 16 bitů proměnná délka, 0 nebo více bitů 16 bitů 8 bitů

Po dohodě o režimu činnosti nebo o rozšířeních lze používat další formáty rámce, které ukazuje následující tabulka:

Křídlová značka Adresní pole Řídicí pole Informační pole FCS Křídlová značka
8 bitů 8, 16, 24, ... bitů 8, 16, 32 nebo 64 bitů proměnná délka, 0 nebo více bitů 8, 16 nebo 32 bitů 8 bitů

Křídlová značka

Křídlová značka na konci jednoho rámce může být (ale nemusí) zároveň křídlovou značkou na začátku dalšího rámce.

Data se obvykle posílají v násobcích 8 bitů, ale pouze některé varianty HDLC to vyžadují; ostatní teoreticky dovolují zarovnání dat na jiné než 8-bitové hranici.

Při vysílání dat se nejméně významný bit přenáší jako první (nezaměňovat s little-endian pořadím, které se vztahuje na řazení bytů ve vícebytových polích).

Adresní pole

HDLC standardně používá jednu adresu osmibitovou adresu, která slouží při provozu v režimu point-to-multipoint k rozlišení podřízených stanic; to znamená, že rámec vždy obsahuje adresu podřízené stanice.

Stanice mohou po vzájemné dohodě používat adresu delší.

Některé HDLC varianty rozšiřují adresní pole o druhou adresu, takže vždy obsahuje zdrojovou i cílovou adresu nebo bit pro explicitní rozlišení příkazu a odezvy.

Řídicí pole

Řídicí pole slouží k rozlišení typu rámce, k přenosu informace o čísle přenášeného rámce a pro potvrzování přenesených rámců. Jeho formát je popsán dále.

Kontrolní součet

Kontrolní posloupnost rámce (FCS) je cyklický redundantní součet vypočítaný z adresního, řídicího a informačního pole. Standardně se používá 16-bitový CRC, komunikující stanice mohou dojednat použití 32-bitového nebo 8-bitového. Jestliže hodnota FCS vypočtená v přijímači nesouhlasí s hodnotou, kterou vypočítal odesilatel a přidal do rámce, znamená to, že rámec byl přijat chybně. Přijímač rámce se špatným CRC zahazuje. Vysílač po vypršení prodlevy pro potvrzení odešle nepotvrzený rámec znovu. Pokud se obě strany dohodnou na posílání záporných potvrzení a odesilatel posílá více rámců za sebou, příjemce může poslat záporné potvrzení, pokud se v posloupnosti čísel rámců objeví díra.

Použité algoritmy pro výpočet FCS jsou schopny odhalit ztracené bity, bity se změněnou hodnotou a bity navíc. Tím se výrazně zvyšuje (zejména pro větší délku FCS) pravděpodobnost odhalení chyby. Pravděpodobnost neodhalené přenosové chyby se však zvyšuje s délkou zabezpečovaných dat, proto FCS může implicitně omezovat praktickou délku rámce.

FCS bylo implementováno protože mnoho starších komunikačních spojů mělo relativně vysokou bitovou chybovostí a FCS lze počítat jednoduchým rychlým obvodem nebo softwarově. Nové protokoly mohou používat efektivnější samoopravné kódy.

Možnosti komunikace

Konfigurace linky

HDLC rozlišuje 2 konfigurace datového spoje (linky):

  • Nevyvážená (nesymetrická), kdy komunikuje jedna primární stanice s jednou nebo více podřízenými stanicemi.
  • Vyvážená (symetrická), kdy spolu komunikují dva rovnocenné terminály.

Režimy komunikace

Protokol SDLC byl navržen pro propojení jednoho počítače s mnoha periferními zařízeními. Původní „režim normální odezvy“ je režimem nadřízený-podřízený, kde počítač (neboli primární terminál) dává každé periferii (sekundárnímu terminálu) oprávnění vysílat. Protože zdrojem nebo cílem veškeré komunikace je primární terminál, rámce obsahují pouze adresu sekundárního terminálu; primárnímu terminálu není žádná adresa přiřazena. Mezi příkazy posílanými primární stanicí na sekundární a odezvami posílanými sekundární stanicí na primární je výrazný rozdíl. Příkazy a odezvy jsou vlastně nerozlišitelné; jediný rozdíl je ve směru, kterým jsou vysílané.

HDLC definuje 3 režimy provozu:

  • Režim normální odezvy (NRM) je nesymetrická konfigurace, ve které může zahájit přenos dat pouze primární terminál. Sekundární terminál vysílá data pouze v odezvě na příkazy z primárního terminálu. Primární terminál se dotazuje sekundárních terminálů, aby zjistil, zda mají data na odeslání a pak vybere jeden, který bude vysílat.
  • Režim asynchronní odezvy (ARM) je nesymetrická konfigurace, ve který sekundární terminály mohou vysílat bez oprávnění od primárního terminál. Nicméně primární terminál si stále zachovává odpovědnost za inicializaci linky, zotavení z chyb a logické rozpojení.
  • Asynchronní vyvážený režim (ABM) je symetrická konfigurace mezi dvěma stanicemi, při které komunikaci může zahájit libovolná stanice.

Dalším režimem je Rozpojený režim. V tomto režimu je sekundární stanice až do okamžiku, kdy je inicializována primární stanicí, nebo po přijetí příkazu DISC (odpojení). V tomto režimu odpovídá sekundární stanice na téměř každý jiný rámec než příkaz nastavení režimu odezvou „Disconnected mode“. Účel tohoto režim je umožnit primární stanici spolehlivě odhalit, zda sekundární stanice je funkční. V tomto režimu může také probíhat výměna uživatelských dat v rámcích UI, která je však nespolehlivá (není záruka doručení dat).

Režim normální odezvy

Režim normální odezvy umožňuje komunikaci přes poloduplexní komunikační spoje, pokud si je primární stanice vědoma, že nemůže vysílat, když předala oprávnění na sekundární.

Režim asynchronní odezvy

Režim asynchronní odezvy je HDLC rozšíření[4] pro použití přes duplexní spoje. Sice rozlišuje primární/sekundární stanici, ale umožňuje sekundární stanici vysílat kdykoli.

Asynchronní vyvážený režim

Asynchronní vyvážený režim přidal koncept kombinovaného terminálu, který může fungovat jak jako primární tak jako sekundární stanice. Existuje některé detaily asi toto způsob fungování; zatímco mnoho vlastností protokolu nedělá rozdíl, zda jsou v příkazovém nebo odezva rámec, některé do a adresa pole přijatého rámce musí být zkontrolována pro zjištění, zda obsahuje příkaz (přijatá adresa je naše) nebo odezva (přijatá adresa patří jinému terminálu).

Přehled konfigurací linky režimů provozu a typů stanic

HDLC režimy, třídy provozu, druhy stanic a základní typy rámců
spojovaný (connection-oriented)
režim NRM, ARM ABM
nevyvážený vyvážený
stanice nadřízená podřízená ---
primární
(primary)
sekundární
(secondary)
kombinovaná
(combined)
rámce příkazy odezvy příkazy odezvy
I
RR
RNR
SNRM,SARM
DISC
I
RR
RNR
UA
DM
FRMR
I
RR
RNR
SABM
DISC
I
RR
RNR
UA
DM
FRMR
nespojovaný (connectionless)
režim UCM
nevyvážený vyvážený
stanice nadřízená podřízená ---
řídicí
(control)
vedlejší
(tributary)
kombinovaná
(peer)
rámce příkazy odezvy příkazy odezvy
UI UI UI ---

HDLC operace a typy rámců

Existují tři stěžejní typy HDLC rámců.

  • Informační rámce nebo I-rámce přenášejí uživatelská data ze síťové vrstvy. Navíc mohou také obsahovat informace pro řízení toku dat a odhalování chyb přenášené s daty dopravovanými opačným směrem (anglicky piggybacking).
  • Dohlížecí rámce nebo S-rámce se používají pro řízení toku dat a opravu chyb když piggybacking není možný nebo vhodný, například když stanice nemá data na poslání. S-rámce nemají informační pole.
  • Nečíslované rámce nebo U-rámce se používají pro různé různé účely, včetně správy spojení. Některé typy U-rámců mohou obsahovat informační pole.

V základním režimu má řídicí pole následující formát:

HDLC řídicí pole
7 6 5 4 3 2 1 0
N(R)
Očekávané číslo rámce
P/F N(S)
Číslo tohoto rámce
0 I-rámec
N(R)
Očekávané číslo rámce
P/F typ 0 1 S-rámec
typ P/F typ 1 1 U-rámec

V rozšířených režimech se v I-rámcích a S-rámcích používá rozšířený (dvou, čtyř nebo osmibytový) formát řídicího pole. I v něm se nejméně významný bit (v této tabulce zcela vpravo) posílá jako první. V I-rámci pak následuje 7, 15 nebo 31-bitové pole s hodnotou N(S), bit P/F a 7, 15 nebo 31-bitové pole s hodnotou N(R). S-rámce obsahují místo pole N(S) jeden nulový bit, dva bity s typem rámce a 4, 12 nebo 28 nevyužitých bitů s hodnotou 0. Pokud byl režim nastaven příkazem SNRME, SARME nebo SABME je řídicí pole dvoubytové a hodnoty N(S) a N(R) sedmibitové. Pro nastavení režimu se čtyřbytovým řídícím polem (a 15-bitovými čísly N(S) a N(R)) a s osmibitových řídicím polem (a 31-bitovými čísly N(S) a N(R)) se používá příkaz SM, který má v informačním poli uvedenu velikost N(S) a N(R).

Rozšířené HDLC řídicí pole
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
N(R)
Očekávané číslo rámce
P/F N(S)
Číslo tohoto rámce
0 Rozšířený I-rámec
N(R)
Očekávané číslo rámce
P/F 0 0 0 0 typ 0 1 Rozšířený S-rámec

P/F bit

Bit Poll/Final je jeden bit se dvěma jmény. Nazývá se Poll když je nastaven primární stanicí pro získání odezvy od sekundární stanice a Final když je nastaven sekundární stanicí pro indikaci odezvy nebo konce přenosu. Ve všech jiných případech je bit vynulovaný.

Bit se používá jako token. To znamená, že se předává mezi stanicemi. Vždy musí existovat pouze jeden token. Sekundární stanice pošle rámec s nastaveným bitem Final pouze když přijala Poll od primární stanice. Primární posílá Poll, když přijala Final ze sekundární nebo pro indikaci po prodlevě, že bit byl ztracen.

  • V NRM režimu vlastnictví poll tokenu zajišťuje adresované sekundární stanici oprávnění vysílat. Sekundární stanice nastavuje bit F v posledním rámci s odezvou, čímž se vzdává oprávnění vysílat (bit F funguje jako slovo „příjem“ v rádiové hlasové komunikaci.)
  • V režimech ARM a ABM, má nastavený bit P význam žádosti o odezvu. V těchto režimech sekundární stanice nemusí čekat na výzvu, aby mohla vysílat, takže nemusí čekat odpovídat s nastaveným bitem final.
  • Jestliže není přijata odezva na rámec s nastaveným bitem P v určitém časovém limity, v primární stanici vyprší prodleva a pošle rámec s nastaveným bitem P znovu.
  • P/F bit je základem zpětné vazby s automatickým opakováním, které je povinnou částí implementace HDLC; všechny jiné varianty (například používání dohlížecího rámce REJ) jsou volitelná rozšíření a slouží pouze ke zvýšení efektivity komunikace. Když stanice přijme rámec s nastaveným bitem P/F, může předpokládat, že všechny rámce, které odeslala předtím, než naposledy poslala rámec s nastaveným bitem P/F, a které dosud nebyly potvrzeny, už nikdy nepřijdou a proto musí být odeslány znovu.

Stanice, která funguje jako kombinovaná stanice, musí rozlišovat bity P a F, protože se mohou používat dva zpětnovazební cykly současně. Bit P odeslaný v příkazu ze vzdálené stanice není v odezvou na náš bit P; je jí bit F vyslaný v odezvě.

N(R), očekávané číslo rámce

Informační a dohlížecí rámce obsahují pořadové číslo N(R). N(R) poskytuje kladné potvrzení pro příjem I-rámce z opačné strany spoje. Jeho hodnotou je vždy číslo prvního nepřijatého rámce; potvrzuje, že všechny rámce s hodnotami N(S) až do N(R)-1 (modulo 8 nebo modulo 128) byly přijaty a indikuje, že se očekává příjem rámce číslo N(S).

N(R) funguje stejným způsobem v příkazu i v odezvě. Kombinované stanice mají pouze jeden prostor pořadových čísel.

N(S), pořadové číslo odesílaného rámce

Tato hodnota se zvětšuje o jedničku (modulo 8 nebo modulo 128) pro každý další informační rámec. V závislosti na počtu bitů v pořadovém čísle je možné odeslat nejvýše 7 nebo 127 informačních rámců bez potvrzení.

Informační rámce (uživatelská data)

Informační rámce nebo I-rámce přenášejí uživatelská data ze síťové vrstvy. V řídicím poli obsahují také číslo rámce a potvrzení čísla rámce posílaného opačným směrem pro řízení toku dat.

Nejméně významný bit (první vysílané) definuje typ rámce. 0 znamená I-rámec. Kromě interpretace P/F pole neexistuje žádný rozdíl mezi příkazovým rámcem I a odezvovým rámcem I; když P/F je 0, oba tvary jsou přesně ekvivalentní.

S-rámce (řízení)

Dohlížecí rámce nebo S-rámce se používají pro řízení toku dat a chyba řízení když piggybacking je nemožný nebo nevhodný, jako například když stanice nemá data na poslání. S-rámce nemají informační pole.

Řídicí pole S-rámce začíná dvojicí bitů „10“, které udávají, že se jedná o S-rámec. Toto je následující 2-bitovým typ, poll/final bit a pořadové číslo. Pokud se používají 7-bitová pořadová čísla, v řídicím poli jsou 4 výplňkové bity.

Hodnota "10" v prvních 2 bitech signalizuje dohlížecí rámec. Všechny S rámce obsahují bit P/F a očekávané číslo rámce, jak je popsáno výše. Kromě interpretace pole P/F není žádný rozdíl mezi příkazovým S rámcem a odezvovým S rámcem; když P/F je 0, oba tvary jsou zcela ekvivalentní.

Typ dohlížecího rámce se rozlišuje pomocí 2-bitového pole typ.

Receive Ready (RR)

  • Bitová hodnota = 00 (0x00 vyhovovat výše tabulka typ pole bit pořadí[5])
  • Indikuje, že odesilatel je připraven přijmout další data (ruší efekt předchozího RNR).
  • Tento paket se posílá, pokud je potřeba poslat potvrzení, ale nejsou k dispozici data, se kterými by ho bylo možné poslat v informačním rámci.
  • Primární stanice může poslat tento rámec s nastaveným P bitem, aby si vyžádala data ze sekundární stanice.
  • Sekundární terminál může použít tento rámec s nastaveným F bitem v odpovědi na výzvu, když nemá žádná data na poslání.

Receive Not Ready (RNR)

  • Bitová hodnota = 01 (0x04 vyhovovat výše tabulka typ pole bit pořadí[6])
  • Potvrzení některé pakety a požadavek ne více být posílaný dokud ne další notice.
  • Může se používat jako RR s nastaveným bitem P pro vyžádání stavu sekundární stanice.
  • Může se používat jako RR s nastaveným bitem F jako odpověď na výzvu, pokud stanice nemůže přijímat další data.

Reject (REJ)

  • Bitová hodnota = 10 (0x08 vyhovovat výše tabulka typ pole bit pořadí[7])
  • Požadavek na okamžité opakování přenosu počínaje rámcem N(R).
  • Posílá se jako odezva při zjištění díry v číslech přijímaných rámců. Po příjmu rámců I1/I2/I3/I5 se pošle REJ4.
  • Jeho používání není povinné; funkční implementace mohou používat pouze RR.

Selektivní Reject (SREJ)

  • Bitová hodnota = 11 (0x0c vyhovovat výše tabulka typ pole bit pořadí)
  • Požaduje opakování přenosu pouze rámce N(R).
  • Není podporován všemi HDLC variantami.
  • Jeho používání není povinné; funkční implementace mohou používat jen RR nebo RR a REJ.

U-rámce

Nečíslované rámce neboli U-rámce se používají pro řízení spojení a mohou také sloužit pro přenos uživatelských dat. Slouží pro výměnu rámců pro správu relace a přenos řídicích informací mezi propojenými zařízeními; některé U-rámce mohou obsahovat informační pole, které slouží pro přenos informací pro správu systému nebo uživatelská data. První 2 bity (11) identifikují U-rámec. 5 bitů typ (2 před P/F bit a 3 bit po P/F bit) může existovat až 32 různých typů U-rámce

  • nastavení režimu (SNRM, SNRME, SARM, SARME, SABM, SABME, UA, DM, RIM, SIM, RD, DISC)
  • Přenos informací (UP, UI)
  • Recovery (FRMR, RSET)
    • Chybné řídicí pole
    • Datové pole příliš dlouhé
    • Datové pole není povoleno v přijatém typu rámce
    • Invalid Receive Count
  • Různé (XID, TEST)

Repertoár HDLC příkazů a odezev

  • Příkazy (I, RR, RNR, (SNRM nebo SARM nebo SABM), DISC)
  • Odezvy (I, RR, RNR, UA, DM, FRMR)

Základní Operace

  • Inicializaci může vyvolat libovolná strana vysláním jednoho ze šesti příkazů pro nastavení režimu. Tento příkaz:
    • Signalizuje opačné straně, že má provést vlastní inicializaci
    • Určuje, ve kterém z režimů (NRM, ABM, ARM) se má od tohoto okamžiku pracovat
    • Určuje, zda se mají používat tříbitová nebo sedmibitová pořadová čísla

HDLC modul, který přijme inicializační rámec, odpoví rámcem UA, pokud je požadavek přijatý; pokud je požadavek zamítnutý, pošle rámec DM (disconnect mode).

Funkční rozšíření

  • Pro komutované okruhy
    • Přidává příkaz XID
    • Přidává odezvy XID, RD
  • Pro dvoucestné současné příkazy & odezvy jsou ADD – REJ
  • Pro selektivní opakování jednoho rámce příkazy & odezvy: ADD – SREJ
  • Pro Informační příkazy a odezvy: ADD – UI
  • Pro Inicializaci
    • Příkazy: ADD – SIM
    • Odezvy: ADD – RIM
  • Pro skupinové výzvy
    • Příkazy: ADD – UP
  • Rozšířené adresování
  • Delete Odezva I rámce
  • Delete Příkaz I rámce
  • Rozšířené číslování
  • Pro Režim Reset (pouze v režimu ABM) Příkazy jsou: ADD – RSET
  • Test datového spoje; Příkazy & Odezvy jsou: ADD – TEST
  • Požadavek odpojení. Odezvy jsou ADD – RD
  • 32-bitové FCS

HDLC repertoár příkazů a odezev

Typ rámce Název Příkaz/
Odezva
Popis Informace Formát řídicího pole
7 6 5 4 3 2 1 0
Informační (I) C/R Výměna uživatelských dat N(R) P/F N(S) 0
Dohlížecí (S) Receive Ready (RR) C/R Kladné potvrzení Připravenost přijmout I-rámec N(R) N(R) P/F 0 0 0 1
Receive Ne Ready (RNR) C/R Kladné potvrzení Nepřipravenost k příjmu N(R) P/F 0 1 0 1
Reject (REJ) C/R Záporné potvrzení Opakovat rámce počínaje číslem N(R) N(R) P/F 1 0 0 1
Selektivní Reject (SREJ) C/R Záporné potvrzení Opakovat pouze rámec N(R) N(R) P/F 1 1 0 1

Nečíslované rámce

Řídicí pole v nečíslovaných rámcích má délku vždy 8 bitů a jeho spodní dva bity mají hodnotu 11. Další bit je obsazen příznakem P/F, takže zbývá 5 bitů pro rozlišení typu rámce. Přestože není použito všech 32 hodnot, některé hodnoty mají různý význam podle toho, jestli se jedná o požadavek nebo odezvu. Přitom vztah mezi příkazem DISC (disconnect) a odezvou RD (request disconnect) je poměrně pochopitelný, ale mezi příkazem SARM a odezvou DM již ne.

Jméno Příkaz/
Odezva
Popis Info Formát řídicího pole
7 6 5 4 3 2 1 0
Zahájit režim normální odezvy SNRM P Zahájit režim 3 bitová pořadová čísla 1 0 0 P 0 0 1 1
Zahájit rozšířený režim normální odezvy SNRME P Zahájit rozšířený režim 7 bitová pořadová čísla 1 1 0 P 1 1 1 1
Zahájit režim asynchronní odezvy SARM P Zahájit režim 3 bitová pořadová čísla 0 0 0 P 1 1 1 1
Zahájit rozšířený režim asynchronní odezvy SARME P Zahájit rozšířený režim 7 bitová pořadová čísla 0 1 0 P 1 1 1 1
Zahájit asynchronní vyvážený režim SABM P Zahájit režim 3 bitová pořadová čísla 0 0 1 P 1 1 1 1
Zahájit asynchronní vyvážený rozšířený režim SABME P Zahájit rozšířený režim 7 bitová pořadová čísla 0 1 1 P 1 1 1 1
Zahájit inicializační režim SIM P Spustí inicializaci řízení spoje v adresované stanici 0 0 0 P 0 1 1 1
Odpojit DISC P Ukončit logické spojení Při příjmu I a S rámců vracet DM 0 1 0 P 0 0 1 1
Nečíslované potvrzení UA O Potvrzení přijetí příkazu pro nastavení režimu. 0 1 1 F 0 0 1 1
Režim odpojení DM O Responder v Disconnect Režim nastavení režim požadovaný 0 0 0 F 1 1 1 1
Požadavek odpojení RD O Vyžádání DISC Příkaz 0 1 0 F 0 0 1 1
Požadavek na zaslání inicializace RIM O Pořadavek inicializace Požadavek pro SIM příkaz 0 0 0 F 0 1 1 1
Nečíslované Informace UI P/O Nepotvrzovaná data obsahuje uživatelská data 0 0 0 P/F 0 0 1 1
Nečíslovaná výzva UP P Používané pro vyžádání řídicích informací 0 0 1 P 0 0 1 1
Vynulování čítače rámců RSET P Slouží ke zotavení Vynuluje N(R) ale ne N(S) 1 0 0 P 1 1 1 1
Výměna Identifikace XID P/O Používaný pro vyžádání nebo oznámení schopností stanice 1 0 1 P/F 1 1 1 1
Test TEST P/O Vrátí stejné informační pole pro testování 1 1 1 P/F 0 0 1 1
Zamítnutí rámce FRMR O Oznamuje příjem chybného rámce 1 0 0 F 0 1 1 1
Nonreserved 0 NR0 P/O Nestandardizovaný Pro aplikační použití 0 0 0 P/F 1 0 1 1
Nonreserved 1 NR1 P/O Nestandardizovaný Pro aplikační použití 1 0 0 P/F 1 0 1 1
Nonreserved 2 NR2 P/O Nestandardizovaný Pro aplikační použití 0 1 0 P/F 1 0 1 1
Nonreserved 3 NR3 P/O Nestandardizovaný Pro aplikační použití 1 1 0 P/F 1 0 1 1
Konfigurovat pro test CFGR P/O Není součástí HDLC Bylo součástí SDLC 1 1 0 P/F 0 1 1 1
Maják BCN R Není součástí HDLC Bylo součástí SDLC 1 1 1 F 1 1 1 1

Rámce UI, XID a TEST obsahují data vyšší vrstvy a lze je použít jako příkazy i jako odezvy.

  • Rámce UI obsahují uživatelské informace, ale na rozdíl od I-rámců se nepotvrzuje ani znovu nevysílá při ztrátě.
  • Rámec XID se používá pro výměnu informací o schopnostech terminálu. SNA definovala jeden formát, ale varianta definovaná v ISO 8885 je používaná častěji. Primární stanice oznámí své schopnosti příkazem XID a sekundární vrátí XID odezvu.
  • Rámec TEST funguje jako příkaz ping pro ladící účely. Obsah datového pole příkazu TEST se vrací v odezvě TEST.

Rámec FRMR obsahuje data popisující chybný rámec. První 1 nebo 2 byty jsou kopií odmítnutého řídicího pole, další 1 nebo 2 byty obsahují aktuální pořadová čísla N(S) a N(R) a následující 4 nebo 5 bitů indikují důvod odmítnutí rámce.

Odkazy

Reference

V tomto článku byl použit překlad textu z článku High-Level Data Link Control na anglické Wikipedii.

  • FRIEND, George E., John L. Fike, H. Charles Baker, John C. Bellamy. Understanding Data Communications. 2. vyd. Indianapolis: Howard W. Sams & Company, 1988. ISBN 0-672-27270-9. 
  • STALLINGS, William. Data and Computer Communications. 7. vyd. Upper Saddle River: Pearson/Prentice Hall, 2004. ISBN 978-0-13-100681-2. 
  • S. TANENBAUM, Andrew. Computer Networks. 4. vyd. 482, F.I.E., Patparganj, Delhi 110 092: Dorling Kindersley (India) Pvt. Ltd., licenses of Pearson Education v South Asie, 2005. ISBN 81-7758-165-1. 

Literatura

  • KUBÍN, Boris; PUŽMAN, Josef. Veřejné datové sítě. 1. vyd. Praha: NADAS, 1989. 420 s. ISBN 80-7030-033-7. Kapitola 5.7.3 Bitově orientovaný protokol HDLC, s. 118-124. 
  • DLABOLA, František; STARÝ, Jaroslav. Systémy s mikroprocesory a přenos dat. 2. vyd. Praha: NADAS, 1986. 521 s. Kapitola 7.3 Bitově orientované postupy, s. 310-359. 

Související články

Poznámky

Externí odkazy