High-Level Data Link Control

HDLC, anglicky High-Level Data Link Control, česky doslova Vysokoúrovňové řízení datového spoje je komunikační protokol linkové vrstvy vycházející z protokolu Synchronous Data Link Control vyvíjený od roku 1979 Mezinárodní organizací pro normalizaci (ISO) ve spolupráci s Mezinárodní elektrotechnickou komisí (IEC). HDLC pokrývá široké spektrum sériové komunikace:

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 definován postupně v řadě samostatných dokumentů, které stanovovaly formáty rámců a postupy při komunikaci na sériovém spoji a později byly sloučeny do ISO/IEC 13239.

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 ve své sadě 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 jako 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ávy CFGR a BCN) 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.

HDLC je implicitním zapouzdřením pro sériové rozhraní na routerech firmy Cisco Systems. Mírně odlišná verze se používají pro řídicí kanály na linkách E1, v Digital cross connect system a na mnohakanálových telefonních linkách SONET. Existují protokoly, 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 (například Cisco HDLC), nebo ji zcela nahrazují jinou hlavičkou (například MTP-2).

Funkce protokolu HDLC

Hlavní službou protokolu HDLC je spolehlivý přenos informací vyšší vrstvy s použitím mechanismu zpětné vazby s automatickým opakováním. Ke spolehlivému přenosu dat slouží informační rámce (I-rámce), které obsahují uživatelská data vyšší vrstvy spolu s číslem přenášeného rámce N(S). Hodnota N(S) se zvětšuje o jedničku pro každý vyslaný rámec; při opakování rámce se použije stejná hodnota N(S) jako při jeho prvním vysílání. Pole N(S) má omezenou velikost; v základních režimech je tříbitové; proto lze přenášet pouze spodní tři bity čísla rámce, což dovoluje odesílat bez potvrzení nejvýše 7 rámců. Jinak řečeno rámce se číslují aritmetikou modulo 8.

I-rámce zajišťují také potvrzování rámců přenášených opačným směrem; tento přenos potvrzení pro jeden směr komunikace spolu s uživatelskými daty posílanými opačným směrem se nazývá anglicky piggybacking. Pro potvrzování slouží pole N(R), které vždy obsahuje číslo očekávaného (prvního dosud nepřijatého) rámce. Uvedení určité hodnoty N(R) znamená, že všechny rámce s nižší hodnotou byly v pořádku přijaty.

Pokud má stanice poslat potvrzení a nejsou k dispozici uživatelská data, ke kterým by se potvrzení přibalilo, použije dohlížecí rámec (S-rámec), který neobsahuje žádná uživatelská data ani N(S), ale pouze číslo příštího očekávaného rámce N(R). Existují dva základní typy dohlížecích rámců: RR a RNR; první signalizuje, že stanice je připravena přijímat další rámce, druhý, že stanice další rámce přijímat nemůže (např. kvůli naplnění vyrovnávacích pamětí). Používání dalších dvou typů dohlížecích rámců REJ a SREJ, které představují záporné potvrzení dovolující používat selektivní opakování a tím snížit zpoždění při ztrátě nebo poškození rámce, je volitelné rozšíření.

Na linkách pracujících velkou rychlostí a s velkým zpožděním nemusí číslování rámců modulo 8 stačit, proto jsou k dispozici režimy používající vícebitové hodnoty N(S) a N(R) podle následující tabulky:

Počet bitůModulo čísel N(S) a N(R)Max. počet rámců odeslaných bez potvrzení
387
7128127
153276832767
3121474836482147483647

Posledním typem HDLC rámců jsou nečíslované rámce (U-rámce), které, jak napovídá jejich název, neobsahují ani N(S) ani N(R). Díky tomu je jejich řídicí pole vždy osmibitové. Nečíslované rámce umožňují:

  • nezabezpečený (nespolehlivý) přenos uživatelských dat
  • vyžádat inicializaci stanice
  • provést test funkčnosti linky
  • výměnu informací o možnostech stanice
  • zahájení a ukončení spojení v jehož rámci probíhá spolehlivý přenos uživatelských dat ve zvoleném režimu činnosti HDLC.

Typy HDLC rámců

Všechny druhy HDLC rámců popsané výše shrnuje následující tabulka:

českyzkráceněanglickypoužití
Informační rámceI-rámceInformation FramesSpolehlivý přenos uživatelských dat síťové vrstvy v informačním poli. Potvrzování dat přenášených opačným směrem.
Dohlížecí rámceS-rámceSupervisory FramesPotvrzování dat přenášených I-rámci opačným směrem. Informační pole mají pouze rámce SREJ.
Nečíslované rámceU-rámceUnnumbered FramesSpráva spojení a další účely. Některé typy U-rámců mohou obsahovat informační pole.

Vytváření rámců

HDLC se používá na sériových linkách, 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. Křídlová značka 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:

NrziEncodedFlags.png

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 je 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.

Synchronní spoje

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–4Data rámcepřijmout beze změn
5Data rámcevypustit následující nulový bit
6Křídlová značkapo stavu klidu: synchronizovat přijímač; po datech: zkontrolovat přijatá data a předat vyšší vrstvě
7–15Násilné ukončení rámcerámec zahodit
>15Stav 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í spoje

Má-li HDLC pracovat na linka používající arytmický přenos, jako je například standardní sériový port podle standardu RS-232 nebo V.24/V.28, který sdružuje bity po 5–8 do slabik, nelze použít mechanismus vkládání bitů. Aby bylo možné v rámcích přenášet bitové kombinace a znaky, které mají speciální význam, používá se metoda únikového znaku (anglicky escape character). Jako únikový znak slouží 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). Je-li aktivní volitelná funkce číslo 15.1, budou se znaky se speciálním významem, které se vyskytnou datech, kódovat podle následující tabulky:

Kód znakuSpeciální významZakódování
0x7DÚnikový znak0x7D 0x5D
0x7EHranice rámce0x7D 0x5E

HDLC umožňuje dojednat, aby se stejným způsobem přenášely i jiné rezervované hodnoty oktetů (jako například XON a XOFF – volitelná funkce 15.2, případně všechny řídicí znaky – volitelná funkce 15.3), 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:

FlagAdresní poleŘídicí poleInformační poleFCSFlag
8 bitů8 bitů8 bitůproměnná délka16 bitů8 bitů

Po dohodě o režimu činnosti nebo o rozšířeních lze používat další formáty rámce:

Formát rámce typu 0
FlagFormát rámceAdresní poleŘídicí poleInformační poleFCSFlag
8 bitů8 bitů8, 16, 24, ... bitů8, 16, 32, 64 bitůproměnná délka16 bitů8 bitů

Formát rámce typu 0 je určen pro prostředí s omezenou šířkou pásma, kde se používají krátké rámce s délkou 5 až 127 oktetů. Tento formát minimalizuje délku hlavičky.

Používání pole formát rámce je volitelná funkce číslo 22, používání adres proměnné délky volitelná funkce číslo 7, rozšířené číslování rámců se nastavuje příkazy SNRME, SARME nebo SABME nebo pomocí volitelné funkce číslo 10.

Formát rámce typu 1
FlagFormát rámceAdresní poleŘídicí poleInformační poleFCSFlag
8 bitů16 bitů8, 16, 24, ... bitů8, 16, 32, 64 bitůproměnná délka8, 16, 32 bitů8 bitů

Délka rámce typu 1 je 5 až 4095 oktetů. Formát rámce typu 1 je navržen tak, aby se co nejvíce podobal základnímu formátu rámce, ale v poli formát rámce obsahuje délku rámce, což umožňuje vypnout vkládání bitů nebo oktetů (volitelná funkce číslo 24). Používání kontrolních součtů jiné délky než 16 bitů je volitelná funkce číslo 14.

Formát rámce typu 2
FlagFormát rámceAdresní poleŘídicí poleHCSInformační poleFCSFlag
8 bitů16 bitů8, 16, 24, ... bitů8, 16, 32, 64 bitů8, 16, 32 bitůproměnná délka8, 16, 32 bitů8 bitů

Délka rámce typu 2 je 5 až 2047 oktetů. Formát rámce typu 2 se používá, pokud je nutná zvýšená ochrana proti chybám případně delší rámce. Používá segmentační podpole, takže podpole délky ve formátu rámce má 11 bitů, což umožňuje vypnout vkládání bitů nebo oktetů (volitelná funkce číslo 24). Rámce bez informačního pole neobsahují HCS, ale pouze FCS. Používání kontrolních součtů jiné délky než 16 bitů je volitelná funkce číslo 14.

Používání kontrolního součtu pouze pro hlavičky (pole HCS) je volitelná funkce číslo 26. Délka HCS je vždy stejná jako FCS.

Formát rámce typu 3
FlagFormát rámceCílová adresaZdrojová adresaŘídicí poleHCSInformační poleFCSFlag
8 bitů16 bitů8, 16, 24, ... bitů8, 16, 24, ... bitů8, 16, 32, 64 bitů8, 16, 32 bitůproměnná délka8, 16, 32 bitů8 bitů

Délka rámce typu 3 je 7 až 2047 oktetů. Formát rámce typu 3 se používá, pokud je třeba použít adresu odesilatele a příjemce; používání dvou adres se zapíná jako volitelná funkce číslo 21. Ostatní informace jsou stejné jako u formátu rámce typu 2.

Při vysílání dat rámce mezi křídlovými značkami 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).

Křídlová značka

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

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. Pokud je potřeba, mohou stanice po vzájemné dohodě používat delší adresu.

Některé varianty HDLC rozšiřují adresní pole o druhou adresu, takže vždy obsahuje zdrojovou i cílovou adresu případně 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ů. V základním režimu má řídicí pole následující formát:

HDLC řídicí pole
76543210
N(R)P/FN(S)0I-rámec
N(R)P/Ftyp01S-rámec
typP/Ftyp11U-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) vysílá jako první. V I-rámci pak následuje 7, 15 nebo 31bitové pole s hodnotou N(S), bit P/F a 7, 15 nebo 31bitové 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 15bitovými čísly N(S) a N(R)) a s osmibitovým řídicím polem (a 31bitový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
1514131211109876543210
N(R)P/FN(S)0Rozšířený I-rámec
N(R)P/F0000typ01Rozšířený S-rámec

Informační pole

Délka dat je násobkem 8 bitů, ale vyžadují to pouze některé varianty HDLC; ostatní dovolují zarovnání dat na jiné než 8bitové hranici.

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á 16bitový CRC, komunikující stanice mohou dojednat použití 32bitového nebo 8bitové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 a neposílá žádné potvrzení. 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á, anglicky unballanced), kdy komunikuje jedna nadřízená stanice s jednou nebo více podřízenými stanicemi.
  • Vyvážená (symetrická, anglicky ballanced), kdy spolu komunikují dvě rovnocenné stanice.

Druhy stanic

Při nesymetrické (nevyvážené) konfiguraci datového spoje existuje na spoji právě jedna nadřízená stanice, která provoz na spoji řídí (posílá příkazy k nastavení režimu provozu, řídí tok dat, zajišťuje funkce řízení zabezpečení a zotavení z chyb při komunikaci). Při použití spojovaných režimů se nadřízená stanice nazývá primární stanice (anglicky primary station), při použití nespojovaných režimů řídicí stanice (anglicky control station). Ostatní stanice jsou podřízené (na spoji jich může být jedna nebo více). Podřízené stanice se ve spojovaných režimech nazývají sekundární stanice (anglicky secondary station), v nespojovaných režimech vedlejší stanice (anglicky tributary station)

Při symetrické konfiguraci datového spoje komunikují na spoji vždy právě dvě stanice, které se při použití spojovaných režimů nazývají kombinované stanice (anglicky combined station), při použití spojovaných režimů rovnocenné stanice (anglicky peer station)

Příkazy a odezvy

Příkaz (anglicky command) je v HDLC rámec vyslaný primární nebo řídicí stanicí. Při vyvážené konfiguraci datového spoje je to takový rámec vyslaný kombinovanou nebo rovnocennou stanicí, který obsahuje adresu druhé stanice.

Odezva (anglicky response) je v HDLC rámec vyslaný sekundární nebo vedlejší stanicí. Při vyvážené konfiguraci datového spoje je to takový rámec vyslaný kombinovanou nebo rovnocennou stanicí, který obsahuje vlastní adresu.

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í stanice) dává každé periferii (sekundární stanici) oprávnění vysílat. Protože zdrojem nebo cílem veškeré komunikace je nadřízená stanice, rámce obsahují pouze adresu sekundární stanice; primární stanici 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.

HDLC tradičně definuje 3 základní třídy komunikačních postupů pro spojovanou komunikaci; 2 nesymetrické (NRM a ARM) a 1 symetrický (ABM). Novější verze přidávají a po jednom nesymetrickém a symetrickém nespojovaném (UCM a BCM).

Nové verze HDLC definují 5 základních tříd komunikačních postupů; 2 nesymetrické spojované (NRM a ARM), 1 symetrický spojovaný (ABM) a po jednom nesymetrickém a symetrickém nespojovaném (UCM a BCM).

HDLC definuje 3 režimy provozu:

  • Režim normální odezvy (NRM) je nesymetrická konfigurace, ve které zahájit přenos dat může pouze primární stanice. Sekundární stanice vysílá data pouze v odezvě na příkazy z primární stanice. Primární stanice se dotazuje sekundárních stanic, aby zjistila, zda mají data na odeslání a pak vybere jednu, která bude vysílat.
  • Režim asynchronní odezvy (ARM) je nesymetrická konfigurace, ve který sekundární stanice mohou vysílat bez oprávnění od primární. Nicméně primární stanice 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é libovolná stanice může zahájit komunikaci.

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 DM „Disconnected mode“. Účelem 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í zaručeno doručení dat).

Režim normální odezvy

V režimu normální odezvy si musí být primární stanice vědoma, že při komunikaci přes poloduplexní komunikační spoj nemůže vysílat, když předala oprávnění sekundární stanici.

Režim asynchronní odezvy

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

Asynchronní vyvážený režim

Asynchronní vyvážený režim přináší koncept kombinované stanice, které může fungovat jak jako primární tak jako sekundární stanice. Přestože u většiny vlastností protokolu HDLC nezáleží na tom, zda jsou použity v příkazu nebo odezvě, u některých na tom záleží a je třeba kontrolovat adresní pole přijatého rámce pro zjištění, zda obsahuje příkaz (přijatá adresa je naše) nebo odezvu (přijatá adresa patří jiné stanici).

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á komunikace (connection-oriented)
konfig. linkynevyváženávyvážená
režimNRM, ARMABM
stanicenadřízenápodřízená
primární
(primary)
sekundární
(secondary)
kombinovaná
(combined)
rámcepříkazyodezvypříkazyodezvy
I
RR
RNR
SNRM,SARM
DISC
I
RR
RNR
UA
DM
FRMR
I
RR
RNR
SABM
DISC
I
RR
RNR
UA
DM
FRMR
nespojovaná komunikace (connectionless)
konfig. linkynevyváženávyvážená
režimUCMBCM
stanicenadřízenápodřízená
řídicí
(control)
vedlejší
(tributary)
rovnocenná
(peer)
rámcepříkazyodezvypříkazyodezvy
UIUIUI

Na určitý režim komunikace mohou být stanice předem nastaveny, nebo může být dojednán pomocí příkazů a odpovědí XID nebo pomocí příkazu SM či jiných příkazů pro změnu režimu (SNRM, SARM, SABM, SNRME, SARME, SABME).

Bit P/F

Součástí každého rámce je bit P/F (anglicky Poll/Final). Jeho základním účelem je předání oprávnění k vysílání podobně jako v sítích Token ring; jakmile v poloduplexním režimu odešle stanice rámec s nastaveným bitem P/F, musí přestat vysílat a čekat na odpověď od druhé stanice. Druhá stanice může vyslat jeden nebo více rámců, ale odesláním rámce s nastaveným bitem P/F předává řízení první stanici. Protože se rámec s nastaveným bitem P/F může ztratit, řídicí stanice musí po jeho odeslání pustit časovač, a pokud dojde k jeho vypršení, opakovat vysílání.

P/F 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ý.

  • 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, aby mohla odpovědět s nastaveným bitem Final.
  • Bit P/F je v HDLC povinným prvkem zpětné vazby s automatickým opakováním; všechny další varianty (například používání S-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í odezvou na náš bit P; je jí bit F vyslaný v odezvě.

Repertoár HDLC příkazů a odezev

Základní operace:

  • Příkazy (I, RR, RNR, nastavení režimu (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 sedmi 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 požadavek přijímá; pokud požadavek zamítá, vrátí odezvu DM (disconnect mode).

Informační rámce

NázevPříkaz/
Odezva
PopisInformaceFormát řídicího pole
76543210
Information (I)P/OVýměna uživatelských datN(R)P/FN(S)0

Dohlížecí rámce

NázevPříkaz/
Odezva
PopisInformaceFormát řídicího pole
76543210
Receive Ready (RR)P/OKladné potvrzeníPřipravenost přijmout I-rámec N(R)N(R)P/F0001
Receive Not Ready (RNR)P/OKladné potvrzeníNepřipravenost k příjmuN(R)P/F0101
Reject (REJ)P/OZáporné potvrzeníOpakovat rámce počínaje číslem N(R)N(R)P/F1001
Selective Reject (SREJ)P/OZáporné potvrzeníOpakovat pouze rámec N(R)N(R)P/F1101

Příkaz nebo odezva RR indikuje, že odesilatel rámce je schopen přijímat další data a zároveň potvrzuje přijetí rámců až do rámce N(R)-1; pokud je nastavený bit P, žádá, aby protistrana zaslala informaci o svém stavu.

Příkaz nebo odezva RNR funguje stejně jako RR, ale indikuje nepřipravenost odesilatele přijímat další data.

Příkaz nebo odezvu REJ indikuje, že odesilatel přijal všechny rámce s čísly do N(R)-1, a požaduje, aby příjemce opakoval rámce od čísla N(R).

Rámec SREJ lze použít pouze jako odezvu a pouze v rozšířeném režimu (modulo 128), v LAPB i v super režimu (modulo 32768 nebo 2147483648). Informační pole obsahuje seznam čísel rámců, které nebyly přijaty; seznam může obsahovat jednotlivá čísla rámců (mají nulový nejnižší bit) i intervaly (jsou tvořeny dvojicí čísel, obě mají jedničkový nejnižší bit).

Nečíslované rámce

JménoPříkaz/
Odezva
PopisInfoFormát řídicího pole
76543210
Zahájit režim normální odezvy SNRMPZahájit režim3bitová pořadová čísla100P0011
Zahájit rozšířený režim normální odezvy SNRMEPZahájit rozšířený režim7bitová pořadová čísla110P1111
Zahájit režim asynchronní odezvy SARMPZahájit režim3bitová pořadová čísla000P1111
Zahájit rozšířený režim asynchronní odezvy SARMEPZahájit rozšířený režim7bitová pořadová čísla010P1111
Zahájit asynchronní vyvážený režim SABMPZahájit režim3bitová pořadová čísla001P1111
Zahájit asynchronní vyvážený rozšířený režim SABMEPZahájit rozšířený režim7bitová pořadová čísla011P1111
Zahájit inicializační režim SIMPSpustí inicializaci řízení spoje v adresované stanici000P0111
Odpojit DISCPUkončit logické spojeníPři příjmu I a S rámců vracet DM010P0011
Nečíslované potvrzení UAOPotvrzení přijetí příkazu pro nastavení režimu.011F0011
Režim odpojení DMOResponder v Disconnect Režimnastavení režim požadovaný000F1111
Požadavek odpojení RDOVyžádání příkazu DISC010F0011
Požadavek na zaslání inicializace RIMOPořadavek inicializaceVyžádání příkazu SIM000F0111
Nečíslované Informace UIP/ONepotvrzovaná dataobsahuje uživatelská data000P/F0011
Nečíslovaná výzva UPPPoužívané pro vyžádání řídicích informací001P0011
Vynulování čítače rámců RSETPSlouží ke zotaveníVynuluje N(R) ale ne N(S)100P1111
Výměna Identifikace XIDP/OPoužívaný pro vyžádání nebo oznámení schopností stanice101P/F1111
Test TESTP/OVrátí stejné informační pole pro testování111P/F0011
Zamítnutí rámce FRMROOznamuje příjem chybného rámce100F0111
Set command SMPObecné nastavení režimu110P0011
Unnumbered Information with Header check UIHP/ONečíslovaná informace s kontrolou hlavičky111P/F1111
Nonreserved 0 NR0P/ONestandardizovanýPro aplikační použití000P/F1011
Nonreserved 1 NR1P/ONestandardizovanýPro aplikační použití100P/F1011
Nonreserved 2 NR2P/ONestandardizovanýPro aplikační použití010P/F1011
Nonreserved 3 NR3P/ONestandardizovanýPro aplikační použití110P/F1011
Konfigurovat pro test CFGRP/ONení součástí HDLCBylo součástí SDLC110P/F0111
Maják BCNONení součástí HDLCBylo součástí SDLC111F1111

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 stanice. Jeden formát definovalo SDLC, ale varianta definovaná v ISO 8885 je používanější. Primární stanice oznámí své schopnosti příkazem XID a sekundární vrátí XID odezvu.
  • Rámec TEST slouží pro ladící účely. Funguje jako příkaz ping; 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.

Volitelné funkce

Čís.FunkceZměny protokolu
1Identifikace a předávání charakteristiky stanicPřidán příkaz a odpověď XID
2Včasné informování o chybách pořadí rámcůPřidán příkaz a odpověď REJ
3Efektivnější zotavení z chyb v pořadí I rámců ...Přidán příkaz a odpověď SREJ
3.1... opakováním jednotlivého rámcePřidán příkaz a odpověď SREJ
3.2... opakováním jednoho nebo více rámcůPřidán příkaz a odpověď SREJ
3.3... s možností uvedení rozsahu rámcůPřidán příkaz a odpověď SREJ
4Používání UI rámců v libovolném režimuPřidán příkaz a odpověď UI
5Inicializace vzdálené stanice a vyžádání inicializacePřidán příkaz SIM a odpověď RIM
6Dotazování skupiny stanic, všech stanic a individuální stanicePřidán příkaz UP
7Rozšíření adresy na více oktetůPoužívá se rozšířený formát adres
8Používání pouze příkazových I rámcůNepoužívá se odpověď I
9Používání pouze odpovědních I rámcůNepoužívá se příkaz I
10Rozšířené číslování rámců ...Místo SXXM se používá příkaz SXXME
10.1... modulo 128Místo SXXM se používá příkaz SXXME
10.2... modulo 32768Místo SXXM se používá příkaz SM
10.3... modulo 2 147 483 648Místo SXXM se používá příkaz SM
11Reinicializace stavových proměnných pouze v jednom směruPřidán příkaz RSET
12Základní test datového spojePřidán příkaz a odpověď TEST
13Požadavek logického odpojeníPřidána odpověď RD
14Nestandardní délka FCSFCS jiné velikosti než 16 bitů
14.132bitové FCS32bitové FCS
14.28bitové FCS8bitové FCS
15Start/stop komunikace ...
15.1... se základní transparentností
15.2... se základní transparentností a transparentností řízení toku dat
15.2... se základní transparentností a transparentností řídicích oktetů
16Start/stop komunikace pro 7bitová data
17Konfigurace spojePřidán příkaz SM
18Informační pole v odpovědích UA a DM a příkazu DISCInformační pole v rámcích UA, DM a DISC
19Informační pole v příkazech pro změnu režimuV rámcích SABM, SARM, SNRM, SABME, SARME, SNRME
20FCS nepokrývá informační polePřidán příkaz a odpověď UIH
21Více adresních políPřidán příkaz a odpověď UIH
22Rámec začíná polem formátu rámce (za flagem)Přidáno pole formátu rámce
23SegmentacePole formátu rámce obsahuje segmentační podpole
24Vypnutí vkládání bitů nebo oktetů
25Start/stop režim s mezirámcovým timeoutem
26Kontrolní součet hlavičekPřidáno pole HCS za pole Control

Odkazy

Poznámky

  1. a b Friend, 1988, s. 188
  2. Úvod do SNA. pclt.cis.yale.edu [online]. [cit. 2014-06-22]. Dostupné v archivu pořízeném dne 2016-03-03. 
  3. a b Friend, 1988, s. 191

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. Dostupné online. ISBN 0-672-27270-9. 
  • STALLINGS, William. Data and Computer Communications. 7. vyd. Upper Saddle River: Pearson/Prentice Hall, 2004. Dostupné online. 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. Dostupné online. 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. (česky) 
  • 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. (česky) 

Související články

Synchronous Data Link Control|

Externí odkazy

Média použitá na této stránce

NrziEncodedFlags.png
NRZI-encoded signal of HDLC 7E flags