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

Flow Control

Kdy₧ spolu komunikujφ dva subjekty, je v₧dy velmi d∙le₧itΘ, aby jeden z nich nezahltil toho druhΘho - tedy aby jej nedostal do takovΘho stavu, ve kterΘm p°φjemce ji₧ nestφhß sprßvn∞ zu₧itkovßvat to, co mu druhß strana posφlß, a musφ to bu∩ ihned zahazovat, nebo jinak ignorovat. Nejmarkantn∞jÜφ je tento problΘm z°ejm∞ v situaci, kdy vzßjemn∞ komunikujφ dva r∙zn∞ v²konnΘ (a hlavn∞ r∙zn∞ rychlΘ) subjekty - nap°φklad velmi rychl² poΦφtaΦ v roli odesilatele, a relativn∞ pomal² poΦφtaΦ v roli p°φjemce. Pak je vcelku z°ejmΘ, ₧e rychlejÜφ poΦφtaΦ by se m∞l zajφmat o to, zda pomalejÜφ poΦφtaΦ ästφhß" korektnφm zp∙sobem p°ijφmat jeho data, a v p°φpad∞ pot°eby se p°izp∙sobit rychlosti pomalejÜφho poΦφtaΦe. Stejn² problΘm vÜak nastßvß i v p°φpad∞, kdy spolu vzßjemn∞ komunikujφ dva vφcemΘn∞ rovnocennΘ subjekty - nap°φklad dva stejn∞ rychlΘ poΦφtaΦe. Zde je toti₧ t°eba si uv∞domit, ₧e p°φjemce nemusφ mφt na starosti jen p°φjem dat. Jde-li nap°φklad o poΦφtaΦ, pracujφcφ ve vφce·lohovΘm re₧imu, musφ se pr∙b∞₧n∞ v∞novat i dalÜφm ·lohßm, a ne pouze zmφn∞nΘmu p°φjmu dat. Prakticky v₧dy je tedy nutnΘ mφt k dispozici vhodn² mechanismus, kter²m by bylo mo₧nΘ regulovat pr∙b∞h p°enosu. Obecn∞ se p°itom hovo°φ o mechanismech pro tzv. °φzenφ toku (flow control).

Zßkladnφ charakteristikou vÜech mechanism∙ a technik °φzenφ toku je skuteΦnost, ₧e pr∙b∞h p°enosu by se m∞l °φdit mo₧nostmi p°φjemce, a nikoli schopnostmi odesilatele. Rozhodujφcφ slovo by tedy m∞l mφt p°φjemce, kter² by m∞l mφt mo₧nost diktovat tempo vzßjemnΘho ärozhovoru". KonkrΘtn∞ by m∞l mφt prßvo p°im∞t odesilatele, aby doΦasn∞ pozastavil odesφlßnφ dalÜφch dat, a nßsledn∞ jej zase mohl informovat, ₧e ve vysφlßnφ m∙₧e pokraΦovat. Otßzka ovÜem je, na jakΘ ·rovni takov²to regulaΦnφ mechanismus implementovat, a jak²m zp∙sobem.

NejjednoduÜÜφ je situace v p°φpad∞, kdy mezi p°φjemcem a odesilatelem existuje vφce samostatn²ch p°enosov²ch kanßl∙. Pak je vcelku snadnΘ vyhradit jeden z nich pro vlastnφ p°enos, a dalÜφ kanßly vyhradit pot°ebßm °φzenφ toku. Typicky k tomu dochßzφ tam, kde se jednß o propojenφ na velmi krßtkΘ vzdßlenosti, a mezi ob∞ma stranami je veden n∞jak² vφce₧ilov² kabel - nap°φklad mezi poΦφtaΦem a tiskßrnou, nebo mezi poΦφtaΦem a modemem. V takovΘm p°φpad∞ je mo₧nΘ regulovat tok dat i po jednotliv²ch znacφch Φi bytech - tj. dßt p°φjemci mo₧nosti pozastavit a pozd∞ji znovu obnovit p°enos mezi libovoln²mi dv∞ma znaky Φi byty. V tomto p°φpad∞ se ale ji₧ v∞tÜinou nehovo°φ o °φzenφ toku (flow control), ale pou₧φvß se spφÜe termφn handshake. V doslovnΘm p°ekladu to znamenß äpot°esenφ rukou", a je to dßno tφm, ₧e jde vlastn∞ o spojenφ potvrzovßnφ (viz minul² dφl) a °φzenφ toku: ka₧d² jednotliv² znak Φi byte je samostatn∞ potvrzen, a souΦasn∞ s tφm je i signalizovßno, zda je p°φjemce schopen p°ijmout dalÜφ znak Φi byte, nebo nikoli.

Pon∞kud odliÜnß je situace p°i komunikaci na v∞tÜφ vzdßlenosti, kdy vyhrazenφ samostatn²ch p°enosov²ch kanßl∙ pro °φzenφ (i potvrzovßnφ) nep°ipadß v ·vahu. Zde existuje obvykle jen jeden kanßl, skrz kter² musφ äprojφt" vÜechno - krom∞ vlastnφch dat i veÜkerΘ °φdφcφ ·daje, slou₧φcφ jak pot°ebßm °φzenφ toku, tak i pot°ebßm potvrzovßnφ Φi jeÜt∞ dalÜφm nezbytn²m Φinnostem. Kdy₧ ale dochßzφ k takovΘmuto äprolφnßnφ" skuteΦn²ch dat a °φdφcφch ·daj∙, musφ b²t v₧dy jednoznaΦn∞ jasnΘ, co se prßv∞ p°enßÜφ, zda jde o data nebo o °φdφcφ ·daje (v tΘto souvislosti se obvykle hovo°φ o tzv. transparenci dat).

V praxi se ale u takov²chto jednotliv²ch p°enosov²ch kanßl∙ praktikuje °φzenφ toku na pon∞kud vyÜÜφ ·rovni, ne₧ na ·rovni jednotliv²ch znak∙ Φi byt∙. Tedy poΦφtß se s tφm, ₧e data se p°enßÜφ po urΦit²ch celcφch (blocφch, rßmcφch, paketech), a °φzenφ toku se t²kß toho, zda p°φjemce je schopen p°ijmout dalÜφ blok dat Φi nikoli. P°φjemce zde tedy nemß mo₧nost doΦasn∞ pozastavit p°enos uprost°ed n∞jakΘho bloku dat, ale v₧dy jen mezi bloky dat. Navφc re₧ie, spojenß s takto koncipovan²m °φzenφm toku, m∙₧e b²t ·nosn∞ malß. V praxi je takΘ konkrΘtnφ °φzenφ toku Φasto kombinovßno s mechanismy potvrzovßnφ - kdy₧ u₧ p°φjemce vysφlß zp∞t k odesilateli informaci o tom, zda a jak co p°ijal, je vhodnΘ s nφ spojit i informaci o tom, co dalÜφho je Φi nenφ schopen p°ijmout, tedy informace pot°ebnΘ pro °φzenφ toku. O konkrΘtnφch technikßch si ale povφme 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