VyÜlo v t²denφku: | CHIPweek |
╚φslo: | 18/97 |
Datum: | 29. dubna 1997 |
Strana: | 24 |
Rubrika/kategorie: | Principy poΦφtaΦov²ch sφtφ |
Modul: | Ethernet |
Dφl: | 3 |
P°φstupovß metoda Ethernetu, kterou jsme si zaΦali popisovat v minulΘm dφlu, vychßzφ z n∞kolika zßkladnφch p°edpoklad∙: prvnφm z nich je existence takovΘho p°enosovΘho mΘdia, kterΘ mß sdφlen² charakter, a nem∙₧e tudφ₧ slou₧it vφce uzl∙m souΦasn∞ - konkrΘtn∞ v tom smyslu, aby po tomto mΘdiu mohlo vysφlat svoje data vφce uzl∙ najednou (zatφmco vysφlßnφ jednoho uzlu, kterΘ mß vφce p°φjemc∙ souΦasn∞, je mo₧nΘ a s oblibou vyu₧φvanΘ). DalÜφm p°edpokladem je skuteΦnost, ₧e souΦasnΘ vysφlßnφ vφce uzl∙ je sice velmi ne₧ßdoucφ, proto₧e vede ke vzßjemnΘmu äznehodnocenφ" jednotliv²ch signßl∙ a jimi reprezentovan²ch dat, ale na druhΘ stran∞ nehrozφ ₧ßdn²m mechanick²m ani elektrick²m poÜkozenφm p°enosovΘ cesty ani p°ijφmacφch a vysφlacφch obvod∙. P°φstupovß metoda Ethernetu se proto nesna₧φ apriorn∞ zcela vylouΦit souΦasnΘ vysφlßnφ vφce uzl∙, oznaΦovanΘ jako kolize. Samoz°ejm∞ se jim sna₧φ p°edchßzet, a to zp∙sobem, kter² jsme si ji₧ popsali v p°edchozφm dφlu - tφm, ₧e ka₧d² uzel mß povinnost nejprve poslouchat, zda prßv∞ nikdo nevysφlß, a sßm mß prßvo zaΦφt vysφlat pouze tehdy, pokud je äticho". DalÜφm d∙le₧it²m p°edpokladem p°φstupovΘ metody Ethernetu je proto skuteΦnost, ₧e jednotlivΘ uzly jsou v∙bec schopny detekovat, zda prßv∞ n∞kdo vysφlß Φi nikoli.
Zd∙razn∞me si nynφ znovu fakt, ₧e p°φstupovß metoda Ethernetu se sice sna₧φ p°edchßzet kolizφm, ale na druhΘ stran∞ se nesna₧φ zcela a ·pln∞ eliminovat mo₧nost jejich vzniku. Bylo by to toti₧ relativn∞ nßroΦnΘ a komplikovanΘ, zatφmco Ethernet sßzφ spφÜe na jednoduchost a na ästatisticky dobrΘ" chovßnφ p°i menÜφch zßt∞₧φch. Proto v prevenci kolizφ jde jen urΦit² kus cesty (a ne a₧ äna doraz"), ale pak rad∞ji p°eci jen p°ipouÜtφ mo₧nost vzniku kolizφ a zam∞°uje se na to, jak ex-post eliminovat jejich nep°φznivΘ nßsledky.
Kdy a za jakΘ situace tedy m∙₧e ke kolizi dojφt?
NejΦast∞jÜφm p°φpadem z°ejm∞ jsou situace, kdy v dob∞ prßv∞ probφhajφcφho vysφlßnφ n∞kolik uzl∙ pojme ·mysl takΘ n∞co odvysφlat. VÜechny tyto uzly vÜak zjistφ, ₧e spoleΦn∞ sdφlenΘ p°enosovΘ mΘdium je prßv∞ obsazenΘ, a tak Φekajφ na jeho uvoln∞nφ. Jakmile se tak stane, zaregistrujφ to vÜichni vφcemΘn∞ ve stejn² okam₧ik (plus-minus jejich reakΦnφ doba), a zaΦnou vysφlat vÜichni najednou, Φφm₧ zp∙sobφ kolizi.
Podφvejme se nynφ na celou situaci z pohledu jednoho z·Φastn∞nΘho uzlu (je jedno kterΘho): tento uzel rozpoznß, ₧e ke kolizi doÜlo, a z tohoto faktu si m∙₧e odvodit, ₧e vysφlat zaΦaly i n∞kterΘ dalÜφ uzly. D∙le₧itΘ ovÜem je, ₧e dan² uzel nepoznß, kolik takov²chto uzl∙ bylo - zda jeden, dva, t°i apod. Poznß pouze to, ₧e vysφlat zaΦal alespo≥ jeden dalÜφ uzel krom∞ n∞j. Krom∞ poΦtu ostatnφch uzl∙ v kolizi dan² uzel samoz°ejm∞ nepoznß ani to, kterΘ konkrΘtnφ uzly se spolu s nφm do kolize dostaly.
Absence vzßjemnΘho pov∞domφ o ostatnφch ·Φastnφcφch kolize brßnφ deterministickΘmu (°φzenΘmu) vy°eÜenφ tΘto nep°φjemnΘ situace - jeliko₧ jednotlivΘ uzly o sob∞ nev∞dφ a vzhledem k povaze sdφlenΘho p°enosovΘho mΘdia nemajφ mo₧nost se vzßjemn∞ domluvit, nem∙₧e b²t kolize °eÜena nap°φklad vhodn²m ärozpoΦφtßnφm", tak aby z nφ v₧dy vzeÜel jeden konkrΘtnφ vφt∞z a ten m∞l prßvo pokraΦovat ve vysφlßnφ.
![]() |
Mechanismus, zvolen² autory Ethernetu pro °eÜenφ ji₧ nastßl²ch kolizφ (tj. odmlΦenφ se na nßhodn∞ zvolenou dobu) proto takΘ nemusφ vΘst ke k²₧enΘmu v²sledku, neboli neodkß₧e zcela eliminovat mo₧nost nßsledn²ch (zavleΦen²ch) kolizφ. Pouze sni₧uje jejich pravd∞podobnost. K tΘto snaze ostatn∞ p°ispφvß sv²m dφlem i ka₧d² uzel, kter² se dostane do opakovanΘ kolize - aby snφ₧il pravd∞podobnost dalÜφ kolize, zv∞tÜφ si na dvojnßsobek interval, ze kterΘho si nßhodn∞ volφ dobu na kterou se odmlΦφ. Takto postupuje ka₧d² uzel celkem desetkrßt, a po desßtΘm ne·sp∞ÜnΘm pokusu to vzdß a ohlßsφ sv²m vyÜÜφm vrstvßm ne·sp∞ch.
Mechanismus vzniku kolizφ, kter² jsme si popsali v p°edchozφm odstavci, je z°ejm∞ v praxi nejΦast∞jÜφ, ale nenφ jedin²m mo₧n²m zp∙sobem resp. d∙vodem, kv∙li kterΘmu ke kolizφm m∙₧e dochßzet. DalÜφ mo₧nostφ, by¥ mΘn∞ pravd∞podobnou, je situace kdy dva uzly (ev. vφce uzl∙) ve stejn² okam₧ik pojmou ·mysl zaΦφt vysφlat, oba ve stejn² okam₧ik otestujφ stav p°enosovΘho mΘdia, oba zjistφ ₧e je prßv∞ volnΘ a oba zaΦnou vysφlat. V praxi p°itom nemusφ jφt ·pln∞ o äjeden a tent²₧ okam₧ik", ale o mal² Φasov² interval, dan² koneΦnou rychlostφ Üφ°enφ signßlu po p°enosovΘm mΘdiu a reakΦnφ dobou jednotliv²ch uzl∙.
S koneΦnou rychlostφ Üφ°enφ signßlu a nenulovou reakΦnφ dobou konkrΘtnφch uzl∙ pak souvisφ jeÜt∞ n∞kterΘ dalÜφ zajφmavΘ technickΘ aspekty kolem kolizφ, kterΘ majφ d∙le₧itΘ praktickΘ d∙sledky. Jde zejmΘna o otßzku sprßvnΘho rozpoznßnφ kolize vÜemi zainteresovan²mi uzly, a o p°esnΘ chovßnφ ka₧dΘho jednotlivΘho uzlu v okam₧iku, kdy zjistφ ₧e prßv∞ on se ocitnul ke kolizi.
V prvnφm p°iblφ₧enφ by se mohlo zdßt nejrozumn∞jÜφ to, aby dotyΦn² uzel okam₧it∞ p°estal vysφlat. Ve skuteΦnosti to ale ud∞lat nesmφ. D∙vody souvisφ prßv∞ s koneΦnou rychlostφ Üφ°enφ signßlu o nenulovou reakΦnφ dobou - pokud by jeden z uzl∙, z·Φastn∞n²ch v kolizi, p°estal vysφlat okam₧it∞ potΘ, co on sßm rozpoznal kolizi, mohlo by se stßt, ₧e ostatnφ uzly by tuto kolizi ji₧ nedokßzaly korektn∞ rozpoznat (lze si p°edstavit, ₧e informace o v²skytu kolize by se k nim nestaΦila vΦas dostat). Ka₧d² uzel, kter² zjistφ ₧e se dostal do kolize, se proto musφ zachovat zcela opaΦn∞, ne₧ by mu radil zdrav² rozum - musφ jeÜt∞ n∞jakou dobu vysφlat, aby kolizi nßle₧it∞ äutvrdil" (a umo₧nil tak ostatnφm korektn∞ ji rozpoznat).
Doba, po kterou musφ uzel kolizi äutvrzovat", je p°itom pevn∞ dßna (ve standardech Ethernetu). Z jejφ pevnΘ velikosti, koneΦnΘ rychlosti Üφ°enφ signßlu v p°enosovΘm mΘdiu a velikosti zpo₧d∞nφ na opakovaΦφch pak vychßzφ velmi d∙le₧itΘ omezenφ na poΦet segment∙ a mezi n∞ zapojen²ch opakovaΦ∙, kterΘ je mo₧nΘ v Ethernetu pou₧φt. V p°φÜtφch dφlech se k tΘto otßzce vrßtφme podrobn∞ji, nynφ si pouze zd∙razn∞me, ₧e tato maximßlnφ velikost se t²kß pouze oblastφ, do kter²ch musφ b²t kolize Üφ°eny - a kterΘ jsou proto oznaΦovßny jako tzv. koliznφ domΘny. Jsou to jednotlivΘ kabelovΘ segmenty Φi skupiny kabelov²ch segment∙, propojenΘ na ·rovni fyzickΘ vrstvy, neboli prost°ednictvφm opakovaΦ∙. Ty toti₧ propouÜtφ kolize, zatφmco aktivnφ sφ¥ovΘ prvky pracujφcφ na vyÜÜφch ·rovnφch (nap°. mosty, switche, sm∞rovaΦe) ji₧ kolize nepropouÜtφ. Koliznφ domΘny tedy konΦφ v₧dy u nejbli₧Üφho mostu, sm∞rovaΦe Φi switche.
Jin²m zajφmav²m d∙sledkem prßv∞ popsanΘho chovßnφ uzl∙ (i celkovΘho charakteru p°φstupovΘ metody Ethernetu) je skuteΦnost, ₧e ke kolizφm m∙₧e dochßzet jen na zaΦßtku vysφlßnφ jednotliv²ch Ethernetov²ch rßmc∙ - pokud se toti₧ ka₧d² uzel chovß disciplinovan∞ a dodr₧uje pravidla p°φstupovΘ metody Ethernetu, nem∞l by äskoΦit do °eΦi" jinΘmu uzlu v dob∞, kdy tento vysφlß. M∙₧e se tak stßt pouze na zaΦßtku vysφlßnφ, dφky tomu ₧e jin² uzel otestoval stav p°enosovΘho mΘdia jeÜt∞ v dob∞, kdy nikdo nevysφlal, a o n∞co pozd∞ji (dφky svΘ nenulovΘ reakΦnφ dob∞ a dφky koneΦnΘ rychlosti Üφ°enφ signßlu) zaΦal vysφlat takΘ. Jakmile toto pevn∞ danΘ a p°edem znßmΘ änebezpeΦnΘ obdobφ" skonΦφ, mß prßv∞ vysφlajφcφ uzel zßruku, ₧e u₧ mu do jeho vysφlßnφ nikdo nevstoupφ, neboli ₧e bude moci dokonΦit svΘ vysφlßnφ bez nebezpeΦφ kolizφ. Dφky tomu staΦφ ka₧dΘmu uzlu monitorovat p°φpadnΘ kolize jen po urΦitou dobu na zaΦßtku jeho vysφlßnφ. I to p°ispφvß k celkovΘ jednoduchosti a pru₧nosti Ethernetu.