VyÜlo v t²denφku: CHIPweek
╚φslo:29/95
Datum:15. listopadu 1995
Strana:33
Rubrika/kategorie: Co to znamenß, kdy₧ se °ekne ...

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

Ji°φ Peterka

Znakov∞ orientovan², bitov∞ orientovan² protokol

Kdy₧ si dv∞ vzßjemn∞ komunikujφcφ strany vym∞≥ujφ mezi sebou data, je samoz°ejm∞ nezbytnΘ, aby ob∞ rozum∞ly formßtu ve kterΘm jsou data p°enßÜena. Tedy aby ob∞ strany dokßzaly sprßvn∞ rozpoznat zaΦßtek i konec bloku dat, kter² si p°edßvajφ, a stejn∞ tak aby dokßzaly sprßvn∞ identifikovat jednotlivΘ Φßsti tohoto bloku - nap°φklad adresu odesilatele, adresu p°φjemce, r∙znΘ °φdφcφ a zabezpeΦovacφ ·daje atd.

Snad nejvφce je tento po₧adavek aktußlnφ na nejni₧Üφ ·rovni, na kterΘ se ji₧ p°enßÜφ celΘ bloky dat, a ne pouze jednotlivΘ bity - tedy na ·rovni tzv. linkovΘ (n∞kdy naz²vanΘ tΘ₧: spojovΘ) vrtsvy, kde se p°enßÜen²m blok∙m °φkß rßmce (frames). Linkovß vrstva tedy musφ b²t schopna sprßvn∞ rozpoznat zaΦßtek i konec ka₧dΘho rßmce, a stejn∞ tak musφ sprßvn∞ identifikovat vÜechny jeho Φßsti, kterΘ jsou relevantnφ pro zpracovßnφ rßmce (nemusφ vÜak ji₧ rozum∞t tΘ Φßsti datovΘho obsahu rßmce, kterou p°edßvß ke zpracovßnφ vyÜÜφm vrstvßm).

R∙znΘ p°enosovΘ protokoly, pracujφcφ na ·rovni linkovΘ vrstvy, p°itom mohou pou₧φvat za tφmto ·Φelem r∙znΘ techniky a strategie. Jednou z nejjednoduÜÜφch mo₧nostφ je vzφt dva specißlnφ °φdφcφ znaky, jeden dßt na zaΦßtek datovΘho bloku a druh² na konec. Podle nich pak p°φjemce poznß zaΦßtek i konec rßmce, a pokud je s odesilatelem domluven na vnit°nφm formßtu rßmce (nap°φklad na tom, ₧e prvnφ dva byty p°edstavujφ adresu p°φjemce, poslednφ dva byty kontrolnφ souΦet atd.), mohlo by to v zßsad∞ staΦit. ProblΘm je ale v jednΘ v∞ci - co kdy₧ by se v samotnΘm obsahu datovΘho rßmce vyskytnula stejnß bitovß posloupnost, jakou p°edstavuje i onen specißlnφ koncov² znak? Pak by ji p°φjemce nutn∞ musel pova₧ovat za p°φznak konce rßmce, a to by jist∞ nebylo dob°e.

ObvyklΘ °eÜenφ je nßsledujφcφ: p°ed specißlnφ °φdφcφ znaky, uvozujφcφ zaΦßtek a konec rßmce, se vlo₧φ jeÜt∞ jeden specißlnφ znak, kter² jako kdyby °φkal: äpozor, nßsledujφcφ znak je °φdφcφ, a nenφ souΦßstφ p°enßÜen²ch dat". ╪eÜφ to ale nßÜ problΘm? Co kdy₧ by se v samotnΘm datovΘm rßmci vyskytovala stejnß bitovß posloupnost, jakou mß prßv∞ tento äprefixov²" znak? JeÜt∞ by m∞lo zßle₧et na tom, co nßsleduje za nφm, ale v ka₧dΘm p°φpad∞ to op∞t p°edstavuje ne₧ßdoucφ komplikaci. TΘ se ale dß vyhnout nap°φklad tφm, ₧e uvnit° datovΘho rßmce se ka₧d² p°φpadn² v²skyt äprefixovΘho" znaku (obvykle ASCII znaku DLE, neboli Data Link Escape, s hodnotou 16 desφtkov∞, resp. 10 hexadecimßln∞) zdvojφ. P°φjemce pak p°i p°φjmu tohoto znaku v₧dy zbyst°φ pozornost, a pokud dalÜφm p°ijat²m znakem je znovu tent²₧ znak, chßpe dvojici jako jedin² znak s hodnotou 16, p°edstavujφcφ data. V opaΦnΘm p°φpad∞ chßpe druh² znak z dvojice jako °φdφcφ, a za°φdφ se podle toho, co tento °φdφcφ znak znamenß. Obecn∞ se prßv∞ popsanΘ technice °φkß character stuffing, Φesky: vklßdßnφ znak∙. To takΘ skuteΦn∞ vystihuje podstatu v∞ci - pro zajiÜt∞nφ tzv. transparence dat (neboli toho, aby v₧dy bylo jasnΘ zda jde o data nebo o °φdφcφ ·daje), se do proudu p°enßÜen²ch dat vklßdajφ celΘ znaky.

Prßv∞ tento moment je pak natolik charakteristick², ₧e p°enosov²m protokol∙m linkovΘ vrstvy, kterΘ zajiÜ¥ujφ transparenci dat pomocφ vklßdßnφ cel²ch znak∙, se °φkß znakov∞ orientovanΘ protokoly. Nejv²znamn∞jÜφm p°edstavitelem t∞chto protokol∙ je protokol BSC (Binary Synchronous Communication, tΘ₧: BISYNC).

Zcela jinak se k pot°eb∞ zajiÜt∞nφ transparence dat stavφ protokoly, pat°φcφ do alternativnφ skupiny tzv. bitov∞ orientovan²ch protokol∙ (mezi kterΘ pat°φ nap°φklad protokoly HDLC a SDLC). Ty vklßdajφ mezi p°enßÜenß data nikoli celΘ °φdφcφ znaky, ale p°edem definovanΘ posloupnosti bit∙. Hlavnφ p°φnos (oproti znakov∞ orientovan²m protokol∙m) je pak v tom, ₧e tyto posloupnosti bit∙ mohou b²t v²razn∞ kratÜφ, a tudφ₧ nep°inßÜejφ tak vysokou re₧ii, jakou nutn∞ musφ mφt protokoly znakov∞ orientovanΘ. Zkusme si to pon∞kud rozvΘst.

ZaΦßtek (i konec rßmce) se bitov∞ orientovan² protokol sna₧φ indikovat p°edem stanovenou posloupnostφ bit∙, tvo°φcφ tzv. k°φdlovou znaΦku - nejΦast∞ji jde o posloupnost osmi bit∙, z nich₧ oba krajnφ jsou nulovΘ, a Üest vnit°nφch bit∙ je jedniΦkov²ch. Aby vÜe fungovalo tak jak mß, a k°φdlovß znaΦka jednoznaΦn∞ identifikovala zaΦßtek a konec rßmce, nesmφ se zmφn∞nß Üestice jedniΦkov²ch bit∙, obklopenß z obou stran nulov²mi bity, vyskytnout nikde uvnit° rßmce. Tomu se op∞t p°edchßzφ technikou vklßdßnφ, ale tentokrßte nikoli vklßdßnφm cel²ch °φdφcφch znak∙, ale pouze jednotliv²ch bit∙ - za ka₧d²ch p∞t po sob∞ jdoucφch jedniΦkov²ch bit∙ odesilatel p°idß jeden nulov² bit. Proto se takΘ tΘto technice °φkß bit stuffing (vklßdßnφ bit∙). P°φjemce pak postupuje analogicky: pokud p°ijme p∞t jedniΦkov²ch bit∙ a za nimi nulov² bit, odstranφ jej bez nßhrady, a pokud p°ijme Üest za sebou jdoucφch jedniΦkov²ch bit∙, vφ ₧e p°ijal k°φdlovou znaΦku.


zp∞t do archivu Φlßnk∙ | rejst°φk | p°edchozφ Φlßnek | nßsledujφcφ Φlßnek
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