VyÜlo v t²denφku: COMPUTERWORLD
╚φslo:18/92
RoΦnφk:1992
Rubrika/kategorie: Co je Φφm ... v poΦφtaΦov²ch sφtφch
Dφl: 29

zp∞t do archivu Φlßnk∙ | rejst°φk | p°edchozφ dφl | nßsledujφcφ dφl

Ji°φ Peterka: Co je Φφm ... v poΦφtaΦov²ch sφtφch (29):

Linkovß vrstva - I.

Fyzickß vrstva ISO/OSI modelu zajiÜ¥uje p°enos jednotliv²ch bit∙ mezi dv∞ma uzlov²mi poΦφtaΦi, mezi kter²mi existuje p°φmΘ spojenφ (tj. vhodn² komunikaΦnφ kanßl resp. okruh). Linkovß vrstva pak vyu₧φvß t∞chto prost°edk∙ pro p°enos v∞tÜφch blok∙ dat, oznaΦovan²ch jako rßmce (frames), a p°enos t∞chto rßmc∙ pak sama nabφzφ jako svou slu₧bu bezprost°edn∞ vyÜÜφ vrstv∞ - vrstv∞ sφ¥ovΘ.

Fyzickß vrstva vÜak nijak nerozliÜuje jednotlivΘ bity, kterΘ p°enßÜφ. Je proto na linkovΘ vrstv∞, aby sama zajistila jejich sprßvnou interpretaci - aby dokßzala rozpoznat, kterΘ bity resp. skupiny bit∙ p°edstavujφ °φdφcφ informace (nap°. signalizujφ zaΦßtek Φi konec bloku, udßvajφ jeho dΘlku apod.), a kterΘ bity p°edstavujφ vlastnφ "u₧iteΦnß" data.

V p°φpad∞ asynchronnφho p°enosu - viz 2. dφl naÜeho serißlu - jsou p°enßÜenß data Φlen∞na na znaky (stejn∞ velkΘ skupiny bit∙). Tyto jsou pak pro pot°eby p°enosu "obaleny" tzv. start a stop bity, kterΘ p°φjemci umo₧≥ujφ sprßvn∞ rozpoznat zaΦßtek a konec znaku. Pot°ebujeme-li pak p°enßÜet data, tvo°enß posloupnostmi b∞₧n²ch (tj. tisknuteln²ch) ASCII znak∙, je nejjednoduÜÜφ metodou vlo₧it cel² blok znak∙ mezi dvojici specißlnφch (tj. netisknuteln²ch znak∙): STX (Start of TeXt, zaΦßtek textu) a ETX (End of TeXt, konec textu), kterΘ jsou pro svou funkci oznaΦovßny jako °φdφcφ znaky p°enosu (transmission control characters). Tφm se dosßhne pot°ebnΘ synchronizace na ·rovni rßmc∙ (frame synchronization), nebo¥ znaky STX a ETX umo₧≥ujφ p°φjemci sprßvn∞ rozpoznat zaΦßtek a konec rßmce (zatφmco jednotlivΘ znaky rßmce rozpoznßvß p°i asynchronnφm p°enosu dφky zmφn∞n²m start a stop bit∙m) - viz obr. 29.1. a/.

Obrßzek 29.1.
Obr. 29.1. Synchronizace na ·rovni rßmc∙ p°i asynchronnφm p°enosu
a/ pro textovß data
b/ pro binßrnφ data
Prßv∞ naznaΦen² zp∙sob ovÜem nelze pou₧φt v p°φpad∞, kdy pot°ebujeme p°enΘst (jako data) i n∞kterΘ °φdφcφ znaky, nebo v p°φpad∞, kdy mφsto znak∙ p°enßÜφme obecnß binßrnφ data. Ta sice m∙₧eme rozd∞lit na stejn∞ velkΘ skupiny bit∙ a chßpat je jako k≤dy jednotliv²ch znak∙, stßle se nßm vÜak m∙₧e stßt, ₧e nßm takto vyjde prßv∞ n∞kter² ze zmφn∞n²ch °φdφcφch znak∙. Pak je nutnΘ zajistit tzv. transparenci dat (data transparency), tedy umo₧nit, aby mezi p°enßÜen²mi daty mohly b²t i °φdφcφ znaky, a tyto nebyly interpretovßny jako °φdφcφ, ale jako "u₧iteΦnß" data. Pou₧φvß se k tomu technika tzv. vklßdßnφ znak∙ (character stuffing), kdy je p°ed °φdφcφ znaky STX a ETX vlo₧en jeÜt∞ jin² °φdφcφ znak - znak DLE (Data Link Escape, zm∞na v²znamu nßsledujφcφho znaku). Ten se ovÜem m∙₧e vyskytovat i mezi vlastnφmi daty, a proto se zde ka₧d² jeho v²skyt zdvojuje - viz obr. 29.1. P°φjemce se pak v₧dy po p°ijetφ znaku DLE rozhoduje podle nßsledujφcφho znaku - je-li jφm dalÜφ znak DLE, jednoduÜe jej vypustφ (a p°ijme p°edchozφ znak DLE jako "u₧iteΦnß" data). Je-li naopak dalÜφm znakem znak ETX, p°φjemce si z toho odvodφ, ₧e se dostal na konec bloku (viz obr. 29.1. b/.

Jednou z nev²hod asynchronnφho zp∙sobu p°enosu je vklßdßnφ nezbytn²ch start a stop bit∙, Φφm₧ se dosti podstatn∞ sni₧uje efektivnφ p°enosovß rychlost. Pro vyÜÜφ p°enosovΘ rychlosti se proto pou₧φvß spφÜe p°enos synchronnφ (viz 2. dφl serißlu).

Obrßzek 29.2.
Obr. 29.2.: Synchronnφ znakov∞ orientovan² p°enos
a/ formßt rßmce
b/ synchronizace na ·rovni znak∙
Synchronnφ p°enos si lze p°edstavit jako spojit² proud bit∙ (bez start a stop bit∙), ve kterΘm p°φjemce musφ sprßvn∞ rozpoznßvat hranice mezi jednotliv²mi znaky (co₧ p°edstavuje synchronizaci na ·rovni znak∙, character synchronization). TΘ se dosahuje pomocφ specißlnφch znak∙ SYN (viz op∞t 2. dφl naÜeho serißlu), kterΘ uvozujφ ka₧d² synchronn∞ p°enßÜen² blok znak∙, viz obr. 29.2.

Synchronizace na ·rovni rßmc∙ (tj. sprßvnΘ rozpoznßnφ zaΦßtku a konce rßmce) se p°i synchronnφm p°enosu m∙₧e dosahovat stejn∞, jako p°i p°enosu asynchronnφm - pomocφ °φdφcφch znak∙ p°enosu. Pak jde o tzv. znakov∞ orientovan² p°enos (character-oriented transmission).

Vklßdßnφ cel²ch °φdφcφch znak∙ do p°enßÜen²ch dat a jejich nezbytnΘ zdvojovßnφ p°i p°enosu binßrnφch dat ale op∞t p°inßÜφ snφ₧enφ efektivnφ p°enosovΘ rychlosti. Proto se dnes stßle vφce uplat≥uje bitov∞ orientovan² p°enos (bit-oriented transmission). Je zalo₧en na myÜlence indikovat zaΦßtek a konec rßmc∙ nikoli °φdφcφm znakem, ale skupinou bit∙. OznaΦenφ "bitov∞ orientovan²" p°itom zd∙raz≥uje skuteΦnost, ₧e p°enßÜenß data jsou vyhodnocovßna bit po bitu, dokud nenφ nalezena hledanß skupina bit∙, indikujφcφ zaΦßtek rßmce resp. jeho konec. PoΦet bit∙, kterΘ tvo°φ vlastnφ obsah rßmce, pak nemusφ nutn∞ b²t nßsobkem osmi.

Jednou z mo₧nostφ pro bitov∞ orientovan² p°enos je pou₧φt stejnou skupinu bit∙, tzv. k°φdlovou znaΦku (flag) pro uvozenφ i zakonΦenφ rßmce - viz obr. 29.3. a/. Tato k°φdlovß znaΦka se pak ovÜem nesmφ vyskytovat "uvnit°" vlastnφho rßmce. Obvykle je k°φdlovß znaΦka tvo°ena posloupnostφ "01111110", a pot°ebnß transparence dat se zajiÜ¥uje vklßdßnφm bit∙ (bit stuffing), p°i kterΘm je za ka₧d²ch p∞t po sob∞ jdoucφch jedniΦkov²ch datov²ch bit∙ automaticky vlo₧en jeden nulov² bit (kter² p°φjemce zase automaticky odstra≥uje) - viz obr. 29.3. b/.

DalÜφ mo₧nostφ je uvozenφ celΘho rßmce (po tzv. preambuli neboli synchronizaΦnφm poli) tzv. p°φznakem zaΦßtku rßmce (start-of-frame delimiter), za kter²m nßsleduje hlaviΦka (header) p°edem stanovenΘho formßtu, a ·daj o dΘlce rßmce - viz obr. 29.3. c/. Tato varianta se pou₧φvß p°edevÜφm u lokßlnφch sφtφ.

Obrßzek 29.3.
Obr. 29.3.: Synchronnφ bitov∞ orientovan² p°enos
a/ formßt rßmce s k°φdlovou znaΦkou
b/ p°edstava vklßdßnφ bit∙
c/ formßt rßmce s p°φznakem zaΦßtku a zadanou dΘlkou

Podle pou₧φvanΘho zp∙sobu p°enosu lze protokoly, pou₧φvanΘ na ·rovni linkovΘ vrstvy ISO/OSI modelu, rozd∞lit do dvou velk²ch skupin: na znakov∞ orientovanΘ protokoly (character-oriented protocols) a bitov∞ orientovanΘ protokoly (bit-oriented protocols).

Mezi znakov∞ orientovanΘ protokoly pat°φ p°edevÜφm protokol, vyvinut² firmou IBM pod oznaΦenφm Binary Synchronous Protocol, zkrßcen∞ naz²van² Bisync, Φi jen BSC. V poslednφ dob∞ se vÜak stßle vφce prosazujφ spφÜe bitov∞ orientovanΘ linkovΘ protokoly. Nejv²znamn∞jÜφm p°edstavitelem tΘto skupiny je op∞t protokol, vyvinut² firmou IBM pro jejφ sφ¥ovou architekturu SNA - protokol SDLC (Synchronous Data Link Control). Od tohoto protokolu jsou pak odvozeny tΘm∞° vÜechny ostatnφ pou₧φvanΘ bitov∞ orientovanΘ protokoly - HDLC (High-Level Data Link Control), pochßzejφcφ od organizace ISO, LAP (Link Access Procedure) a jeho r∙znΘ varianty od CCITT, Φi ADCCP (Advanced Data Communications Control Procedure), kter² je standardem ANSI.


zp∞t do archivu Φlßnk∙ | rejst°φk | p°edchozφ dφl | nßsledujφcφ dφl
Tento Φlßnek m∙₧e b²t voln∞ Üφ°en, pokud se tak d∞je pro studijnφ ·Φely, na nev²d∞leΦnΘm zßklad∞ a se zachovßnφm tohoto dov∞tku. Podrobnosti hledejte zde, resp. na adrese http://archiv.czech.net/copyleft.htm