VyÜlo v t²denφku: CHIPweek
╚φslo:26/95
Datum:25. °φjna 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

Acknowledgement

O tom, ₧e p°i nejr∙zn∞jÜφch p°enosech dat m∙₧e dochßzet k chybßm, jsme si v tomto slovnφkovΘm serißlu povφdali ji₧ n∞kolikrßt - stejn∞ jako o tom, jak vlastn∞ v²skyt chyby rozpoznat, a zda v∙bec mß smysl usilovat o nßpravu (viz minulΘ vydßnφ, na tΘma äSpolehliv² a nespolehliv² p°enos"). P°edpoklßdejme nynφ, ₧e nßm jde o nßpravu vznikl²ch chyb (neboli o zajiÜt∞nφ spolehlivΘho p°enosu), a zamysleme se nad tφm, jak to konkrΘtn∞ ud∞lat.

ZaΦn∞me tφm, jakΘ mo₧nosti v∙bec p°ipadajφ v ·vahu. Jsou v zßsad∞ dv∞: je mo₧nΘ pou₧φt tzv. samoopravnΘ k≤dy, nebo je mo₧nΘ vyvolat opakovßnφ p°enosu ji₧ jednou vyslan²ch dat, a doufat ₧e p°i opakovßnφ ji₧ k chyb∞ nedojde.

TakzvanΘ samoopravnΘ k≤dy (tΘ₧: korekΦnφ k≤dy) jsou zalo₧eny na jednoduchΘ myÜlence: k odesφlan²m dat∙m se p°ipojφ takovΘ informace, kterΘ p°i v²skytu chyby dovolφ p°φjemci zprßvn∞ zrekonstruovat p∙vodnφ obsah (p∙vodnφ data) - bez toho, ₧e by bylo nutnΘ cokoli vysφlat znovu. Mß to ale jeden hßΦek: ka₧d² samoopravn² k≤d se dokß₧e ävyrovnat" jen s chybami urΦitΘho typu (Φi spφÜe rozsahu), zatφmco s jin²mi chybami (s chybami v∞tÜφho rozsahu) se vyrovnat nedokß₧e. Navφc zde platφ vcelku z°ejmß zßvislost: Φφm v∞tÜφ chyby dokß₧e samoopravn² k≤d ävyrovnat", tφm v∞tÜφ je objem dat, kterΘ je nutnΘ äp°ibalit" k p∙vodnφm dat∙m pro pot°eby jejich p°φpadnΘ rekonstrukce. Objem t∞chto äp°ibalen²ch" dat ale v praxi vychßzφ ne·nosn∞ velk², a proto se samoopravnΘ k≤dy jako takovΘ pou₧φvajφ jen velmi vzßcn∞ (hlavn∞ tam, kde neexistuje mo₧nost zp∞tnΘ vazby mezi p°φjemcem a odesilatelem).

Obvykl² zp∙sob nßpravy chyb je tedy zalo₧en spφÜe na existenci zp∞tnΘ vazby a na tom, ₧e p°φjemce si vynutφ opakovanΘ vyslßnφ t∞ch dat, kterΘ se p°i d°φv∞jÜφm p°enosu poÜkodily. Postup je obvykle takov², ₧e odesilatel vysφlß data po blocφch urΦitΘ velikosti, a p°φjemce vracφ odesilateli informaci o tom, zda konkrΘtnφ blok doÜel v po°ßdku Φi nikoli. Obecn∞ se tomu °φkß potvrzovßnφ (anglicky acknowledgement), proto₧e Φinnost p°φjemce skuteΦn∞ mß charakter urΦitΘho äpotvrzovßnφ".

KonkrΘtnφ techniky potvrzovßnφ se ale mohou v mnoha aspektech v²znamn∞ liÜit. Mß nap°φklad p°φjemce potvrzovat ka₧d² jednotliv² blok p°enesen²ch dat? Mß odesilateli explicitn∞ signalizovat, ₧e p°ijal nepoÜkozen² blok - tedy odesφlat tzv. kladnß potvrzenφ (positive acknowledgement)? Nebo mß odesilatele explicitn∞ upozornit pouze v p°φpad∞, kdy p°ijal n∞jakß poÜkozenß data - tedy posφlat tzv. zßpornß potvrzenφ (negative acknowledgement)? Nebo mß p°φjemce explicitn∞ signalizovat ob∞ skuteΦnosti, a tedy vysφlat kladnß i zßpornß potvrzenφ? A jak se mß chovat odesilatel? Mß v₧dy Φekat na potvrzenφ naposledy odeslanΘho bloku, a¥ ji₧ kladnΘ Φi zßpornΘ, a teprve pak pokraΦovat dalÜφm vysφlßnφm? Nebo m∙₧e vysφlat n∞jakΘ bloky dat ädo foroty"? Odpov∞∩ nenφ jednoduchß, a musφ vzφt do ·vahy i skuteΦnost, ₧e poÜkodit (Φi ·pln∞ ztratit) se samoz°ejm∞ m∙₧e i samotnΘ potvrzenφ.

Z d∙vod∙ efektivnosti se nejΦast∞ji pou₧φvß kladnΘ i zßpornΘ potvrzovßnφ souΦasn∞ - kdyby se toti₧ pou₧φvalo bu∩ jen jedno, nebo pouze druhΘ, musel by odesilatel Φekat, zda do p°edem stanovenΘho limitu dostane oΦekßvanΘ potvrzenφ Φi nikoli (a pokud ne, m∞l by teprve po vyprÜenφ tohoto limitu prßvo p°edpoklßdat, ₧e doÜlo k opaΦnΘ situaci ne₧ jakou by signalizovalo p°ijetφ explicitnφho potvrzenφ).

V praxi pou₧φvanΘ metody a techniky potvrzovßnφ se v∞tÜinou liÜφ spφÜe v tom, zda se odesilatel chovß ähodn∞ ustraÜen∞", nebo naopak ävelkoryse". Prvnφ varianta p°edpoklßdß, ₧e odesilatel si po odeslßnφ ka₧dΘho bloku dat nejprve poΦkß na jeho explicitnφ potvrzenφ (nebo na vyprÜenφ ΦasovΘho limitu, do kterΘho by m∞l potvrzenφ dostat), a teprve pak podnikne dalÜφ akci - podle p°ijatΘho potvrzenφ bu∩ odeÜle dalÜφ blok, nebo opakuje p°enos ji₧ jednou odeslanΘho bloku. Ne nadarmo se tΘto variant∞ °φkß jednotlivΘ potvrzovßnφ (v angliΦtin∞ jeÜt∞ v²sti₧n∞ji: stop-and-wait acknowledgement). Je ovÜem vhodnß jen pro takovΘ sφt∞, ve kter²ch je doba p°enosu zanedbatelnß - tedy nap°φklad pro lokßlnφ sφt∞.

V rozlehl²ch sφtφch, kde doby p°enosu jednotliv²ch datov²ch blok∙ i doby p°enos∙ explicitnφch potvrzenφ rozhodn∞ nejsou zanedbatelnΘ, by technika jednotlivΘho potvrzovßnφ zbyteΦn∞ zpomalovala celkov² p°enos dat. Zde je naopak v²hodn∞jÜφ, kdy₧ se odesilatel chovß pon∞kud d∙v∞°iv∞ji, a je ochoten odeslat i vφce blok∙ dat ädo foroty", bez toho ₧e by m∞l explicitn∞ potvrzenΘ jejich ·sp∞ÜnΘ p°ijetφ. Zde odesilatel poΦφtß naopak s tφm, ₧e zatφmco on bude pr∙b∞₧n∞ vysφlat jednotlivΘ bloky dat, bude mu druhß strana (p°φjemce) pr∙b∞₧n∞ posφlat svß potvrzenφ. Proto se takΘ tomuto zp∙sobu potvrzovßnφ °φkß spojitΘ potvrzovßnφ (tΘ₧: pr∙b∞₧nΘ Φi kontinußlnφ potvrzovßnφ, angl.: continuous acknowledgement). O p°φpadnΘm v²skytu chyby a nutnosti opakovat vyslßnφ n∞kterΘho bloku se p°i spojitΘm potvrzovßnφ odesilatel sice dozvφ a₧ s urΦit²m Φasov²m odstupem (a mezitφm mohl ji₧ odvysφlat n∞kolik dalÜφch blok∙), ale i tato situace je docela dob°e °eÜitelnß. Ale o tom zase a₧ n∞kdy p°φÜt∞.


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