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

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

Ji°φ Peterka

Ethernet a kolize

V minulΘm dφlu tohoto modulu jsme si zaΦali popisovat p°φstupovou metody Ethernetu, kterß °φdφ p°φstup jednotliv²ch uzl∙ ke spoleΦn∞ sdφlenΘmu p°enosovΘmu mΘdiu. Dnes si tuto zajφmavou problematiku dokonΦφme.

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.

Co si poΦφt s kolizφ?

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φ.

Obrßzek 1.
P°edstava kolize dvou uzl∙ a jejφ ·sp∞ÜnΘ vy°eÜenφ
Bez mo₧nosti vzßjemnΘho dorozum∞nφ se jednotlivΘ uzly z·Φastn∞nΘ v kolizi musφ spolehnout na nßhodu - ka₧d² z nich si ähodφ kostkou" a doufß ₧e alespo≥ nßhodn² faktor dokß₧e vybrat z jejich st°edu jednoho vφt∞ze, kter² bude moci uskuteΦnit sv∙j zßm∞r vysφlat (ve skuteΦnosti se ka₧d² uzel odmlΦφ na nßhodn∞ zvolenou dobu, a potΘ se sna₧φ uplatnit sv∙j po₧adavek na vysφlßnφ znovu). D∙le₧itΘ ovÜem je uv∞domit si, ₧e ani ähod kostkou" nemusφ vΘst k zaruΦenΘmu v²sledku, proto₧e vφce uzl∙m m∙₧e äpadnout" stejnß hodnota - mohou se odmlΦet na stejnou dobu, ev. se po svΘm äprobuzenφ" znovu se°adit p°i Φekßnφ na konec prßv∞ probφhajφcφho vysφlßnφ a pak se znovu dostat do kolize.

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.

Omezenß velikost koliznφ domΘny

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.


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