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

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 (30):

Linkovß vrstva - II.

SprßvnΘ rozpoznßnφ zaΦßtku a konce ka₧dΘho rßmce i jeho jednotliv²ch Φßstφ nenφ zdaleka jedin²m ·kolem, kter² °eÜφ linkovß vrstva referenΦnφho ISO/OSI modelu.

Slu₧by, kterΘ linkovß vrstva poskytuje vrstv∞ sφ¥ovΘ, mohou mφt charakter spolehliv²ch i nespolehliv²ch slu₧eb (viz 27. dφl naÜeho serißlu). Pro realizaci spolehliv²ch slu₧eb pak linkovß vrstva musφ mφt k dispozici mechanismy pro zajiÜt∞nφ toho, ₧e p°φjemce skuteΦn∞ p°ijme vÜechny vyslanΘ rßmce, a to bez chyb (v p°φpad∞ spojovanΘ slu₧by jeÜt∞ ve sprßvnΘm po°adφ).

Mo₧nΘ zp∙soby, jak tento po₧adavek zajistit, zßvisφ na charakteru spojenφ mezi vysφlajφcφm a p°φjemcem. Zßle₧φ na tom, zda toto spojenφ je svou povahou simplexnφ (simplex), tj. umo₧≥ujφcφ pouze jednosm∞rn² p°enos od vysφlajφcφho k p°φjemci, nebo tzv. poloduplexnφ (half-duplex), umo₧≥ujφcφ sice obousm∞rn² p°enos, ale nikoli souΦasn∞, nebo pln∞ duplexnφ (full duplex), umo₧≥ujφcφ souΦasn² p°enos ob∞ma sm∞ry.

Simplexnφ spoje neumo₧≥ujφ vytvo°it zp∞tnou vazbu mezi vysφlajφcφm a p°φjemcem. P°φjemce pak nemß mo₧nost vy₧ßdat si novΘ vyslßnφ t∞ch rßmc∙, kterΘ p°ijal jako poÜkozenΘ, a se vÜemi p°φpadn²mi chybami se musφ vyrovnat sßm. Vysφlajφcφ mu v tom m∙₧e pomoci tφm, ₧e pou₧ije vhodn² samoopravn² k≤d (viz 3. dφl naÜeho serißlu), dφky kterΘmu pak p°φjemce dokß₧e n∞kterΘ chyby v p°enesen²ch datech opravit sßm. Tyto k≤dy jsou vÜak spojeny se znaΦnou redundancφ, kv∙li kterΘ v²razn∞ klesß efektivnφ p°enosovß rychlost "u₧iteΦn²ch" dat. Stejnß situace nastßvß takΘ u takov²ch spoj∙, kterΘ sice nejsou simplexnφ, ale pracujφ s tak dlouh²mi dobami p°enosu, ₧e se na ·rovni linkovΘ vrstvy nevyplatφ Φekat na zp∞tnou vazbu od p°φjemce dat (p°φkladem mohou b²t dru₧icovΘ spoje, viz 18. dφl naÜeho serißlu).

V p°φpad∞ poloduplexnφch a pln∞ duplexnφch spoj∙ je mo₧nΘ vystaΦit ji₧ jen se zabezpeΦenφm p°enßÜen²ch dat pomocφ detekΦnφch k≤d∙ (viz 3. dφl serißlu). Z nich jsou nej·Φinn∞jÜφ tzv. cyklickΘ k≤dy (viz op∞t 3. dφl naÜeho serißlu), kterΘ lze pou₧φt k zabezpeΦenφ rßmce jako celku. P°i odesφlßnφ se k obsahu rßmce p°idß krßtk² zabezpeΦovacφ ·daj (typicky v rozsahu 16 bit∙), a p°φjemce je pak na zßklad∞ tohoto zabezpeΦovacφho ·daje schopen se znaΦnou pravd∞podobnostφ rozpoznat, zda p°ijal rßmec bez chyby, Φi nikoli. V druhΘm p°φpad∞ pak m∙₧e vyu₧φt zp∞tnΘ vazby, kterou mu nabφzφ poloduplexnφ a duplexnφ spojenφ s vysφlajφcφm, a vy₧ßdat si na n∞m novΘ vyslßnφ celΘho chybn∞ p°ijatΘho rßmce.

Prßv∞ naznaΦen² mechanismus je obvykle implementovßn v podob∞ tzv. potvrzovßnφ (acknowledgement), p°esn∞ji: potvrzovacφ zp∞tnΘ vazby, kterß p°edpoklßdß, ₧e p°φjemce zkontroluje bezchybovost ka₧dΘho p°ijatΘho rßmce, a o v²sledku informuje vysφlajφcφho. V angliΦtin∞ je pak tato technika oznaΦovßna takΘ jako ARQ (Automatic Retransmission reQuest).

Obrßzek 30.1.
Obr. 30.1.: JednotlivΘ potvrzovßnφ
Mo₧nostφ realizace mechanismu potvrzovßnφ existuje celß °ada. V prvnφm p°iblφ₧enφ je lze rozd∞lit na dv∞ velkΘ skupiny, na tzv. jednotlivΘ potvrzovßnφ (idle RQ, stop&wait RQ), a kontinußlnφ potvrzovßnφ (continuous RQ). V p°φpad∞ jednotlivΘho potvrzovßnφ vysφlajφcφ odeÜle rßmec, a pak Φekß na reakci p°φjemce. DalÜφ rßmec pak vyÜle teprve potΘ, kdy mu p°φjemce signalizuje ·sp∞ÜnΘ p°ijetφ p∙vodnφho rßmce. V opaΦnΘm p°φpad∞ (kdy je mu signalizovßno ne·sp∞ÜnΘ p°ijetφ, nebo nedostane-li do urΦitΘho ΦasovΘho limitu ₧ßdnou odpov∞∩), vyÜle p∙vodnφ rßmec znovu. KonkrΘtnφ implementovan² mechanismus pak m∙₧e vychßzet z toho, ₧e p°φjemce potvrzuje pouze bezchybn∞ p°ijatΘ rßmce (zatφmco p°ijetφ chybn²ch rßmc∙ nesignalizuje v∙bec a tyto rßmce jednoduÜe ignoruje), nebo naopak z toho, ₧e p°φjemce vysφlß jen zßpornß potvrzenφ (negative acknowledgements), resp. odmφtnutφ (rejections), kterß signalizujφ p°ijetφ rßmce s chybami a explicitn∞ ₧ßdajφ o jeho op∞tovnΘ vyslßnφ. Nejefektivn∞jÜφ je ovÜem takovß varianta, p°i kterΘ p°φjemce explicitn∞ signalizuje ob∞ mo₧nΘ situace - pomocφ kladnΘho i zßpornΘho potvrzenφ, viz obr. 30.1.

Obrßzek 30.2.
Obr. 30.2.: Kontinußlnφ potvrzovßnφ se selektivnφm opakovßnφm
Obecnou nev²hodou vÜech variant jednotlivΘho potvrzovßnφ je nutnost Φekat p°ed odeslßnφm dalÜφho rßmce na reakci protistrany. V p°φpad∞ delÜφch dob p°enosu tak mohou vznikat ne·nosn∞ velkΘ ΦasovΘ ztrßty, kterΘ minimalizuje a₧ potvrzovßnφ kontinußlnφ. To je zalo₧enΘ na myÜlence, ₧e vysφlajφcφ bude vysφlat novΘ rßmce bez toho, ₧e by si byl jist ·sp∞Ün²m p°ijetφm p°edchozφch rßmc∙. Po odeslßnφ urΦitΘho rßmce tudφ₧ vysφlajφcφ neΦekß na zprßvu o ·sp∞ÜnΘm Φi ne·sp∞ÜnΘm p°ijetφ rßmce, ale m∙₧e ihned pokraΦovat vyslßnφm dalÜφho rßmce. Kladnß resp. zßpornß potvrzenφ jednotliv²ch rßmc∙ pak dostßvß s urΦit²m zpo₧d∞nφm, a reaguje na n∞ samoz°ejm∞ a₧ v okam₧iku, kdy je skuteΦn∞ dostane. Zde je op∞t n∞kolik mo₧n²ch variant: vysφlajφcφ m∙₧e znovu vyslat jen ten rßmec, o kterΘm se dozv∞d∞l, ₧e nebyl ·sp∞Ün∞ p°enesen (pak jde o tzv. selektivnφ opakovßnφ, selective repeat, viz obr. 30.2.), nebo znovu vyslat chybn∞ p°enesen² rßmec, a po n∞m znovu i vÜechny nßsledujφcφ rßmce, kterΘ ji₧ mezitφm mohly b²t takΘ odvysφlßny (pak jde o tzv. opakovßnφ s nßvratem, v angliΦtin∞ o tzv. Go-back-N techniku, viz obr. 30.3.).

Obrßzek 30.3.
Obr. 30.3. Kontinußlnφ potvrzovßnφ s nßvratem
Opakovßnφ s nßvratem je obecn∞ mΘn∞ efektivnφ ne₧ selektivnφ opakovßnφ, nebo¥ m∙₧e zp∙sobit opakovanΘ vyslßnφ rßmc∙, kterΘ ji₧ byly p°ijaty bezchybn∞. Selektivnφ opakovßnφ zase vy₧aduje ke svΘ implementaci pom∞rn∞ velkou kapacitu vyrovnßvacφch pam∞tφ, a to jak na stran∞ p°φjemce, tak i na stran∞ vysφlajφcφho.

P°i naÜich ·vahßch o mechanismech potvrzovßnφ je dobrΘ se zamyslet takΘ nad tφm, jakou konkrΘtnφ podobu majφ kladnß i zßpornß potvrzenφ, kterß p°φjemce datov²ch rßmc∙ vracφ jejich odesilateli. Mohou to b²t samostatnΘ rßmce zvlßÜtnφho typu, kterΘ nenesou ₧ßdnß "u₧iteΦnß" data, ale majφ pouze °φdφcφ charakter. Pak jde o tzv. samostatnΘ potvrzovßnφ, kterΘ ovÜem sv²mi °φdφcφmi rßmci zat∞₧uje p°enosovΘ cesty na ·kor datov²ch rßmc∙ s "u₧iteΦn²mi" daty. Efektivn∞jÜφ alternativou, pou₧itelnou vÜak jen v p°φpad∞ obousm∞rnΘho toku "u₧iteΦn²ch" dat, je vklßdat potvrzujφcφ informace p°φmo do datov²ch rßmc∙ - tΘto technice se v angliΦtin∞ °φkß piggybacking.

DalÜφm, velmi v²znamn²m ·kolem linkovΘ vrstvy ISO/OSI modelu je zajistit, aby vysφlajφcφ sv²mi daty nezahltil p°φjemce. Linkovß vrstva se tedy musφ zab²vat takΘ tzv. °φzenφm toku (flow control), kterΘ mß zajistit, aby vysφlajφcφ skuteΦn∞ vysφlal jen tehdy, kdy je p°ijφmajφcφ v∙bec schopen n∞jakß data p°ijφmat - a ne nap°. tehdy, kdy₧ p°φjemce nemß k dispozici dostateΦn∞ velk² objem vyrovnßvacφ pam∞ti pro ulo₧enφ p°ijφman²ch dat, nebo je zaneprßzdn∞n jinou Φinnostφ (obsluhou nalΘhavΘho p°eruÜenφ, zpracovßnφm d°φve p°ijat²ch dat apod.).

Obrßzek 30.4.
Obr. 30.4. P°edstava metody okΘnka (sliding window)
UrΦujφcφmi jsou p°itom mo₧nosti p°φjemce - ten musφ mφt mo₧nost doΦasn∞ pozastavit vysφlanφ dat, a pozd∞ji je zase obnovit. Na ·rovni linkovΘ vrstvy je nejjednoduÜÜφ doΦasn∞ pozastavovat vysφlßnφ cel²ch rßmc∙. V p°φpad∞ jednotlivΘho potvrzovßnφ (viz v²Üe) k tomu p°φjemci staΦφ nepotvrdit posledn∞ p°ijat² rßmec (nebo na n∞j reagovat zßporn²m potvrzenφm). V p°φpad∞ kontinußlnφho potvrzovßnφ nenφ situace o nic slo₧it∞jÜφ - vysφlajφcφ zde toti₧ vysφlß "dop°edu" (tj. bez potvrzenφ) v₧dy jen urΦit² maximßlnφ poΦet rßmc∙. V souladu s obrßzkem 30.4. tak vznikß "okΘnko" ji₧ vyslan²ch ale dosud nepotvrzen²ch rßmc∙, kterΘ prost°ednictvφm sv²ch potvrzenφ posouvß prßv∞ p°φjemce rßmc∙. Dφky tomu mß i tomto p°φpad∞ mo₧nost podle sv²ch pot°eb doΦasn∞ pozastavit vysφlßnφ (tj. posun okΘnka) a pozd∞ji jej zase obnovit.

Kv∙li charakteristickΘ p°edstav∞ zmφn∞nΘho "okΘnka" se metoda kontinußlnφho potvrzovßnφ Φasto oznaΦuje takΘ jako metoda okΘnka (sliding window method).


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