HDLC

Z Wikipedie, otevřené encyklopedie
Skočit na: Navigace, Hledání

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 SDLC 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[editovat | editovat zdroj]

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.

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. HDLC je také implicitním zapouzdřením pro sériové rozhraní na routerech firmy Cisco Systems.

Funkce protokolu HDLC[editovat | editovat zdroj]

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 rámce N(S). Hodnota N(S) se zvětšuje pro každý vyslaný rámec; při opakování rámce se použije stejné číslo jako při jeho prvním vysílání.

I-rámce zajišťují také potvrzování rámců přenášených opačným směrem. K tomu slouží pole N(R), které vždy obsahuje číslo prvního dosud nepřijatého rámce, a tak potvrzuje přijetí všech předešlých rámců. Tento způsob přenosu 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.

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). Dohlížecí rámce jsou čtyř typů; umožňují také signalizovat nepřipravenost stanice pro příjem dalších rámců (např. kvůli naplnění vyrovnávacích pamětí), posílat záporná potvrzení (a tím snížit zpoždění při ztrátě nebo poškození rámce) a používat selektivní opakování.

Rozsah čísel N(S) a N(R) je omezen délkou pole, proto se používá číslování modulo počet zobrazitelných čísel. V základních režimu jsou hodnoty N(S) a N(R) tříbitové, tedy číslování rámců je modulo 8, což umožňuje poslat 7 rámců bez potvrzení. To nemusí na linkách pracujících velkou rychlostí a s velkým zpožděním stačit, proto jsou k dispozici režimy používajících 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í
3 8 7
7 128 127
15 32768 32767
31 2147483648 2147483647

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). 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ů[editovat | editovat zdroj]

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

česky zkráceně anglicky použití
Informační rámce I-rámce Information Frames Spolehlivý přenos uživatelských dat ze síťové vrstvy. Potvrzování dat přenášených opačným směrem.
Dohlížecí rámce S-rámce Supervisory Frames Potvrzová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ámce U-rámce Unnumbered Frames Správa spojení a další účely. Některé typy U-rámců mohou obsahovat informační pole.

Vytváření rámců[editovat | editovat zdroj]

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[editovat | editovat zdroj]

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í spoje[editovat | editovat zdroj]

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 tedy 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 a XOFF), pokud to vyžaduje přenosová linka.

Struktura rámců[editovat | editovat zdroj]

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 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, z nichž část lze shrnout formátem:

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ů

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[editovat | editovat zdroj]

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.

Adresní pole[editovat | editovat zdroj]

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[editovat | editovat zdroj]

Ří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
7 6 5 4 3 2 1 0
N(R) P/F N(S) 0 I-rámec
N(R) 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) vysí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) P/F N(S) 0 Rozšířený I-rámec
N(R) P/F 0 0 0 0 typ 0 1 Rozšířený S-rámec

Informační pole[editovat | editovat zdroj]

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ž 8-bitové hranici.

Kontrolní součet[editovat | editovat zdroj]

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 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[editovat | editovat zdroj]

Konfigurace linky[editovat | editovat zdroj]

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[editovat | editovat zdroj]

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[editovat | editovat zdroj]

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[editovat | editovat zdroj]

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í záručeno doručení dat).

Režim normální odezvy[editovat | editovat zdroj]

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[editovat | editovat zdroj]

Režim asynchronní odezvy je HDLC rozšíření[1] 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[editovat | editovat zdroj]

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[editovat | editovat zdroj]

HDLC režimy, třídy provozu, druhy stanic a základní typy rámců
spojovaná komunikace (connection-oriented)
konfig. linky nevyvážená vyvážená
režim NRM, ARM ABM
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á komunikace (connectionless)
konfig. linky nevyvážená vyvážená
režim UCM BCM
stanice nadřízená podřízená ---
řídicí
(control)
vedlejší
(tributary)
rovnocenná
(peer)
rámce příkazy odezvy příkazy odezvy
UI UI UI ---

Bit P/F[editovat | editovat zdroj]

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[editovat | editovat zdroj]

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[editovat | editovat zdroj]

  • 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).

Funkční rozšíření[editovat | editovat zdroj]

Stanice mohou používat 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řidává příkaz a odezvu SREJ
  • Pro nečíslované informace přidává příkaz a odezvu UI
  • Pro Inicializaci
    • Přidává příkaz SIM
    • Přidává odezvu RIM
  • Pro skupinové výzvy
    • Přidává příkaz UP
  • Rozšířené adresování
  • Zákaz používat odezvové I rámce
  • Zákaz používat příkazové I rámce
  • Rozšířené číslování
  • Pro Režim Reset (pouze v režimu ABM) Přidává příkaz RSET
  • Test datového spoje; Přidává příkaz a odezvu TEST
  • Požadavek odpojení. Přidává odezvu RD
  • 32-bitové FCS

Nečíslované rámce[editovat | editovat zdroj]

Název Příkaz/
Odezva
Popis Informace Formát řídicího pole
7 6 5 4 3 2 1 0
Information (I) P/O Výměna uživatelských dat N(R) P/F N(S) 0

Dohlížecí rámce[editovat | editovat zdroj]

Název Příkaz/
Odezva
Popis Informace Formát řídicího pole
7 6 5 4 3 2 1 0
Receive Ready (RR) P/O Kladné potvrzení Připravenost přijmout I-rámec N(R) N(R) P/F 0 0 0 1
Receive Not Ready (RNR) P/O Kladné potvrzení Nepřipravenost k příjmu N(R) P/F 0 1 0 1
Reject (REJ) P/O Záporné potvrzení Opakovat rámce počínaje číslem N(R) N(R) P/F 1 0 0 1
Selective Reject (SREJ) P/O Záporné potvrzení Opakovat pouze rámec N(R) N(R) P/F 1 1 0 1

Příkaz nebo odezva RR indikuje, že odesilatel rámce je schopen příjí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[editovat | editovat zdroj]

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í příkazu DISC 0 1 0 F 0 0 1 1
Požadavek na zaslání inicializace RIM O Pořadavek inicializace Vyžádání příkazu SIM 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
Set command SM P Obecné nastavení režimu 1 1 0 F 0 0 1 1
Unnumbered Information with Header check UIH P/O Nečíslovaná informace s kontrolou hlavičky 1 1 1 F 1 1 1 1
Maják BCN O 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 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.

Odkazy[editovat | editovat zdroj]

Reference[editovat | editovat zdroj]

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[editovat | editovat zdroj]

  • 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[editovat | editovat zdroj]

Poznámky[editovat | editovat zdroj]

  1. a b c Friend, 1988, s. 188
  2. Úvod do SNA
  3. Friend, 1988, s. 191

Externí odkazy[editovat | editovat zdroj]