VyÜlo v t²denφku: COMPUTERWORLD
╚φslo:38/94
RoΦnφk:1994
Rubrika/kategorie: TΘma t²dne

zp∞t do archivu Φlßnk∙ | rejst°φk | p°edchozφ Φlßnek | dalÜφ Φlßnek

Ji°φ Peterka

Techniky vzßjemnΘho propojovßnφ sφtφ

Tento Φlßnek vyÜel v tzv. tΘmatu t²dne v CW 38/94, jako druh² ze sΘrie Φlßnk∙ v∞novan²ch problematice aktivnφch sφ¥ov²ch prvk∙

Pro pot°eby vzßjemnΘho propojovßnφ sφtφ existuje celß °ada r∙zn²ch technik, kterΘ se liÜφ p°edevÜφm svou celkovou filosofiφ. Z tΘ pak takΘ vypl²vß nejen konkrΘtnφ zp∙sob fungovßnφ p°φsluÜnΘho propojenφ, ale i jeho potencißlnφ a aktußlnφ mo₧nosti. Seznamme se nynφ s t∞mi hlavnφmi.

Propojenφ pomocφ opakovaΦ∙

Jednou z mo₧nostφ vzßjemnΘho propojovßnφ sφtφ a jejich jednotliv²ch segment∙ je takovΘ °eÜenφ, kdy jsou v mφst∞ styku p°φsluÜn²ch kabelov²ch segment∙ pouze regenerovßny p°enßÜenΘ signßly (tj. jejich ·tlum je kompenzovßn zesφlenφm, zkreslenφ nov²m vytvarovßnφm atd.). Za°φzenφ, kterΘ propojuje dva nebo vφce kabelov²ch segment∙ a pracuje prßv∞ tφmto zp∙sobem, se oznaΦuje jako opakovaΦ (anglicky: repeater). Pou₧φvß se p°edevÜφm pro zv∞tÜenφ dosahu sφ¥ov²ch rozvod∙ (p°ekonßnφ omezenφ na maximßlnφ mo₧nou dΘlku jednotliv²ch kabelov²ch segment∙), a pro pot°ebnΘ rozv∞tvenφ p°i pou₧itφ rozvod∙ na bßzi kroucenΘ dvoulinky.

Ji₧ samotn² nßzev dßvß tuÜit, ₧e opakovaΦ funguje tak, ₧e ze vÜech stran (tj. ze vÜech segment∙, kterΘ jsou k n∞mu p°ipojeny) trvale "poslouchß", a cokoli z n∞kterΘho segmentu zaslechne, to okam₧it∞ "zopakuje" i do vÜech ostatnφch segment∙ - pat°iΦn∞ zesφlenΘ, vytvarovanΘ atd. PodstatnΘ p°itom je, ₧e opakovaΦ funguje v reßlnΘm Φase, neboli to, co p°ijme, zase ihned odesφlß, ani₧ by si to jakkoli zapamatovßval (uklßdal do svΘ vnit°nφ pam∞ti). Z tohoto d∙vodu takΘ opakovaΦ dokß₧e vzßjemn∞ propojovat pouze takovΘ segmenty, kterΘ pracujφ se stejnou p°enosovou rychlostφ (ale mohou to b²t r∙znΘ druhy kabel∙, nap°φklad tlust² a tenk² koaxißlnφ kabel, tenk² koaxißlnφ kabel a kroucenß dvoulinka apod.).

Vzhledem k tomu, ₧e opakovaΦ pouze regeneruje p°ijφmanΘ signßly, ale nesna₧φ se nijak interpretovat jejich v²znam, je vlastn∞ za°φzenφm, kterΘ je z pohledu vrstvov²ch model∙ (zejmΘna pak referenΦnφho modelu ISO/OSI) nutnΘ za°adit do nejni₧Üφ, tzv. fyzickΘ vrstvy (viz obrßzek 3).

Obrßzek 3: OpakovaΦ funguje na ·rovni fyzickΘ vrstvy

Tato skuteΦnost by sprßvn∞ m∞la znamenat, ₧e opakovaΦ je zcela nezßvisl² na vyÜÜφch vrstvßch. V praxi tomu tak ovÜem nenφ, a to z nßsledujφcφho d∙vodu: mß-li opakovaΦ nejen zesilovat, ale takΘ nov∞ tvarovat p°enßÜenΘ signßly (tj. dßvat jim jejich p∙vodnφ tvar), pak musφ v∞d∞t, jak je mß tvarovat, resp. jak² zp∙sob k≤dovßnφ pou₧φvß na ·rovni fyzickΘ vrstvy ten p°enosov² protokol, kter² pracuje na ·rovni bezprost°edn∞ vyÜÜφ vrstvy. Z tohoto d∙vodu pak existujφ nap°φklad opakovaΦe, "ÜitΘ na mφru" sφtφm typu Ethernet, kterΘ ale nejsou v zßsad∞ pou₧itelnΘ v jin²ch druzφch lokßlnφch sφtφ.

Zam∞°me se nynφ ji₧ specificky na vlastnosti opakovaΦ∙ pro EthernetovskΘ sφt∞.

Tφm, Φemu takovΘto opakovaΦe musφ vychßzet vst°φc, je krom∞ konkrΘtnφho zp∙sobu k≤dovßnφ jednotliv²ch bit∙ i pom∞rn∞ specifickß p°φstupovß metoda, pou₧φvanß v Ethernetu. P°φstupovou metodou (access method) v sφtφch, kterΘ majφ mo₧nost pou₧φvat mnohobodovΘ spoje, je takov² mechanismus, kter² p°i p°φpadnΘm soub∞hu vφce zßjemc∙ o prßvo vysφlat rozhodne, komu z nich bude vyhov∞no a komu nikoli (proto₧e z Φist∞ praktick²ch d∙vod∙ nem∙₧e na takov²chto mnohobodov²ch spojφch vysφlat vφce uzl∙ souΦasn∞). V rßmci Ethernetu se tato otßzka °eÜφ tak, ₧e je sice p°φpustnΘ, aby zaΦalo vysφlat vφce uzl∙ souΦasn∞, ale takovßto situace (oznaΦovanß jako kolize) musφ b²t vÜemi detekovatelnß a vÜechny uzly, kterΘ se na takovΘto kolizi ·Φastnφ, se pak musφ zachovat podle p°esn∞ dan²ch pravidel (kterß ji₧ p°esahujφ rßmec tohoto textu). OpakovaΦ, kter² pracuje v reßlnΘm Φase, musφ b²t pro takovΘto kolize pr∙chodn², resp. musφ je Üφ°it do vÜech segment∙, kterΘ jsou k n∞mu p°ipojeny.

Pravidla Ethernetu takΘ velmi p°esn∞ definujφ, co vÜechno musφ platit, aby ka₧dß kolize byla vÜemi uzly bezpeΦn∞ detekovatelnß. Jednφm z hlavnφch po₧adavk∙ je i to, aby maximßlnφ doba Üφ°enφ signßlu (tj. mezi "nejvzdßlen∞jÜφmi" konci) nep°esßhla urΦitou pevn∞ danou hranici. Maximßlnφ doba Üφ°enφ signßlu je ovÜem zßvislß jak na poΦtu a dΘlce pou₧it²ch kabelov²ch segment∙, tak i na poΦtu pou₧it²ch opakovaΦ∙ - p°esto₧e toti₧ opakovaΦe pracujφ "v reßlnΘm Φase" a nic si pr∙b∞₧n∞ nezapamatovßvajφ, p°eci jen urΦit²m zp∙sobem zpo₧∩ujφ signßl, kter² p°es n∞ prochßzφ. V d∙sledku toho existuje pro EthernetovskΘ sφt∞ pravidlo kterΘ p°esn∞ °φkß, kolik kabelov²ch segment∙ a kolik opakovaΦ∙ smφ b²t pou₧ito, aby kolize byly stßle jeÜt∞ bezpeΦn∞ detekovatelnΘ. Toto pravidlo znφ: kabelov²ch segment∙ smφ b²t nejv²Üe p∞t, a mohou b²t propojeny nejv²Üe Φty°mi opakovaΦi. Je zde ovÜem jeÜt∞ jeden mal² hßΦek: ze zmφn∞n²ch p∞ti segment∙ smφ b²t nejv²Üe t°i "obydlenΘ", tj. nejv²Üe ke t°em z nich lze p°ipojovat n∞jakΘ uzly. Ostatnφ pak p°edstavujφ jen jakΘsi propojovacφ segmenty (link segments), viz obrßzek 4. V odbornΘ literatu°e se ovÜem Φasto uvßdφ takΘ to, ₧e opakovaΦe smφ b²t nejv²Üe dva (a jimi propojenΘ segmenty pak nejv²Üe t°i). Tento po₧adavek se od p°edchozφho liÜφ v tom, ₧e explicitn∞ nezmi≥uje mo₧nost "neobydlen²ch" propojovacφch segment∙, ale obvykle ji zahrnuje do mo₧nosti logicky "rozp∙lit" jeden opakovaΦ na dv∞ Φßsti, a tyto propojit vhodn²m spojem (odpovφdajφcφm "neobydlenΘmu" segmentu). Tφm pak vlastn∞ oba p°φpady spl²vajφ.

Obr. 4: P°φklad zapojenφ s maximßlnφm poΦtem opakovaΦ∙

Propojenφ pomocφ most∙

Jednou ze zßkladnφch nev²hod opakovaΦ∙ je to, ₧e Üφ°φ z jednoho segmentu do druhΘho i takov² provoz, kter² by nutn∞ Üφ°it nemusely, resp. kter² by mohl z∙stat "lokßlnφ" jen v jednom segmentu. D∙vodem pro takovΘto chovßnφ opakovaΦe je skuteΦnost, ₧e nijak neinterpretuje to, co p°enßÜφ, a tudφ₧ by se ani nem∞l podle Φeho rozhodovat, co kam p°enΘst a co nikoli.

Obr. 5: OpakovaΦ p°edßvß do ostatnφch segment∙ i takov² provoz, kter² by mohl z∙stat lokßlnφ v jednom ze segment∙

K tomu, aby takovΘto rozhodovßnφ bylo v zßsad∞ mo₧nΘ, je bezpodmφneΦn∞ nutnΘ, aby p°φsluÜnΘ propojovacφ za°φzenφ dokßzalo interpretovat data, kterß jim prochßzφ - minimßln∞ na takovΘ ·rovni, aby z nich dokßzalo poznat, kdo je jejich odesilatelem a kdo p°φjemcem.

Aby toto bylo mo₧nΘ, musφ ji₧ p°φsluÜnΘ propojovacφ za°φzenφ pracovat na vyÜÜφ ·rovni, ne₧ je ·rove≥ fyzickΘ vrstvy. V rßmci referenΦnφho modelu ISO/OSI je bezprost°edn∞ vyÜÜφ vrstvou vrstva linkovß, a za°φzenφ, kterΘ pracuje na ·rovni tΘto vrstvy, se naz²vß most (bridge), viz obr. 6.

Obr. 6: Most pracuje na ·rovni linkovΘ vrstvy ISO/OSI

DalÜφ zßsadnφ odliÜnostφ mostu od opakovaΦe je to, ₧e ji₧ nepracuje v reßlnΘm Φase, ale zp∙sobem dßvkov²m, na principu "store and forward". Ka₧d² jednotliv² rßmec (jak se naz²vajφ bloky, p°enßÜenΘ na ·rovni linkovΘ vrstvy) most nejprve p°ijme do svΘ vnit°nφ vyrovnßvacφ pam∞ti, zde analyzuje jeho obsah - alespo≥ do tΘ mφry, aby dokßzal rozpoznat odesilatele a p°φjemce - a na zßklad∞ toho se pak rozhodne, co s takto p°ijat²m rßcem ud∞lß.

Mo₧nosti mß v zßsad∞ t°i: pokud mu je znßmo, ₧e jak p°φjemce, tak i odesilatel danΘho rßmce se nachßzφ ve stejnΘm segmentu (v tom, ze kterΘho jej most p°ijal), pak s dan²m rßmcem vlastn∞ nemusφ v∙bec nic d∞lat, a m∙₧e jej jednoduÜe ze svΘ vnit°nφ pam∞ti vymazat. Pak se jednß o tzv. filtrovßnφ (filtering), dφky kterΘmu most dokß₧e udr₧et "lokßlnφ" provoz skuteΦn∞ lokßlnφm v segmentu, kde vznikß a pro kter² je urΦen, a nep°edßvat jej do dalÜφch segment∙, kde by zbyteΦn∞ spot°ebovßval jejich p°enosovou kapacitu.

Obr. 7: Most ji₧ nep°edßvß do ostatnφch segment∙ takov² .. provoz, kter² m∙₧e z∙stat lokßlnφ v danΘm segmentu

DalÜφ mo₧nost, kterß p°ipadß v ·vahu, vychßzφ z toho, ₧e most nemß k dispozici ₧ßdnou informaci o segmentu, ve kterΘm se nachßzφ adresßt p°ijatΘho rßmce. V tomto p°φpad∞ mostu nezb²vß, ne₧ se zachovat obdobn∞ jako opakovaΦ: rozeslat p°φsluÜn² rßmec do vÜech ostatnφch segment∙ (krom∞ toho, ze kterΘho rßmec p°ijal).

T°etφ mo₧nost pak p°ipadß v ·vahu v situaci, kdy most ji₧ mß k dispozici informaci o tom, ve kterΘm segmentu se nachßzφ p°φjemce danΘho rßmce. V tomto p°φpad∞ most jednoduÜe odeÜle rßmec do p°φsluÜnΘho segmentu (a pouze do n∞j, nikoli i do ostatnφch segment∙). Tento p°φpad je oznaΦovßn jako forwarding (doslova: p°edßvßnφ).

Zajφmavou otßzkou je jist∞ to, jak most zφskß pot°ebnΘ informace o umφst∞nφ jednotliv²ch uzl∙ v segmentech, aby v∙bec mohl provßd∞t cφlenΘ p°edßvßnφ (forwarding). Mo₧nostφ je op∞t n∞kolik: jednou z nich je ta, ₧e most dostane vÜechny pot°ebnΘ informace p°edem (nap°φklad v rßmci svΘho nakonfigurovßnφ apod.). Tato situace ovÜem nevychßzφ vst°φc p°φpadn²m dynamick²m zm∞nßm v topologii sφt∞, a samoz°ejm∞ nenφ odolnß v∙Φi eventußlnφm chybßm (v informacφch, kterΘ most dostane a kterΘ "slep∞" pou₧φvß).

DalÜφm mo₧n²m °eÜenφm, kterΘ se pou₧φvß p°edevÜφm v Ethernetovsk²ch sφtφch, jsou tzv. samouΦφcφ se mosty (Learning Bridges). Ty se sna₧φ samy si zφskat pot°ebnΘ informace, resp. samy se nauΦit znßt skuteΦnou topologii sφt∞. D∞lajφ to tak, ₧e kdy₧ z urΦitΘho segmentu dostanou rßmec od urΦitΘho uzlu-odesilatele, odvodφ si z toho, ₧e tento uzel se nachßzφ prßv∞ v danΘm segmentu. Tφmto zp∙sobem se pak postupn∞ nauΦφ znßt celou topologii sφt∞, a vÜechny rßmce pak bu∩to filtrujφ, nebo je cφlen∞ p°edßvajφ jen do p°φsluÜnΘho cφlovΘho segmentu (tj. provßdφ forwarding). K tomu, aby rßmce rozesφlaly do vφce segment∙, se p°itom uchylujφ jen v dob∞, kdy se teprve uΦφ, a nemajφ pot°ebnΘ informace o topologii k dispozici.

Zajφmav²m d∙sledkem prßv∞ popsanΘho mechanismu fungovßnφ uΦφcφch se most∙ je po₧adavek, aby v sφti nebyly ₧ßdnΘ cykly. Ty by toti₧ cel² proces uΦenφ znemo₧≥ovaly. V∞tÜina dnes vyrßb∞n²ch most∙ se vÜak i s takovouto situacφ dokß₧e vyrovnat: jsou vybaveny schopnostmi, kterΘ jim umo₧≥ujφ nejen rozpoznat existenci cykl∙, ale hlavn∞ se dokß₧φ vzßjemn∞ domluvit a aplikovat vhodn² algoritmus (tzv. Spanning Tree Algorithm), prost°ednictvφm kterΘho dokß₧φ cyklus odstratnit a vyrobit op∞t Φist∞ stromovitou strukturu sφt∞.

Mechanismus fungovßnφ uΦφcφch se most∙, jakΘ jsou pou₧φvßny v Ethernetovsk²ch sφtφch, mß jeÜt∞ jeden zajφmav² a velmi d∙le₧it² aspekt. SpoΦφvß v tom, ₧e tyto mosty propojujφ jednotlivΘ segmenty takov²m zp∙sobem, ₧e z pohledu prvotnφch odesilatel∙ spl²vajφ v jedin² homogennφ celek (viz obr. 8 a/). To mß velmi siln² d∙sledek: odesilatel si pak m∙₧e myslet, ₧e p°φjemce se nachßzφ ve stejnΘm segmentu jako on (p°esto₧e se ve skuteΦnosti nachßzφ v jinΘm segmentu), a m∙₧e mu tedy p°φsluÜn² datov² rßmec poslat p°φmo. Jakmile tak ud∞lß, vstupuje do hry most, p°ipojen² k segmentu odesilatele - tento most zachytßvß veÜker² provoz v p°φsluÜnΘm segmentu (tj. i ten, kter² mu nenφ explicitn∞ adresovßn), a dφky tomu zachytφ i nßmi uva₧ovan² datov² rßmec. Z adresy p°φjemce, kterß je v n∞m obsa₧enß, pak rozpoznß, ₧e jej musφ p°edat do jinΘho segmentu (viz obr. 8 b/).

Obr. 8: P°edstava fungovßnφ most∙

Prßv∞ naznaΦenß ·vaha ovÜem znamenß, ₧e mosty v Ethernetovsk²ch sφtφch vlastn∞ nejsou pro ostatnφ uzly v∙bec viditelnΘ - tyto si jejich existenci nemusφ v∙bec uv∞domovat, proto₧e jim nikdy nic neadresujφ p°φmo. Proto se takΘ t∞mto most∙m °φkß transparentnφ (transparent bridges).

Transparentnφ samouΦφcφ se mosty, pou₧φvanΘ v Ethernetovsk²ch sφtφch, vÜak nejsou jedin²m mo₧n²m typem most∙. DalÜφm typem most∙ jsou takovΘ, kterΘ pracujφ na bßzi tzv. Source Routingu (a pou₧φvajφ se hlavn∞ v sφtφch Token Ring).

MyÜlenka, na kterΘ jsou tyto mosty zalo₧eny, je nßsledujφcφ: o cest∞, kterou mß ka₧d² jednotliv² datov² rßmec projφt, nebudou rozhodovat mosty, ale ji₧ prvotnφ odesilatel datovΘho rßmce. Ten pak vlo₧φ pot°ebnΘ informace o "trase" p°enosu do vlastnφho rßmce, a odeÜle jej prvnφmu mostu, kter² se na tΘto trase nachßzφ. Ten musφ b²t schopen interpretovat ·daje o po₧adovanΘ trase, kterΘ jsou v rßmci obsa₧eny, a p°edat jej dalÜφmu mostu na trase - dokud nenφ rßmec doruΦen a₧ svΘmu koneΦnΘmu adresßtovi.

Jak²m zp∙soben ale prvotnφ odesilatel zφskß vÜechny pot°ebnΘ informace k tomu, aby dokßzal sestavit p°φsluÜnou trasu jeÜt∞ p°ed odeslßnφm rßmce? Odpov∞∩ je nßsledujφcφ: odesilatel nejprve vyÜle specißlnφ pr∙zkumn² rßmec, kterß se v jednotliv²ch mostech rozv∞tvuje do vÜech existujφcφch sm∞r∙ - tj. je rozmno₧en a rozeslßn do vÜech segment∙, kterΘ p°φsluÜn² most propojuje. Exemplß°e pr∙zkumn²ch paket∙ tak zaΦnou zaplavovat celou soustavu vzßjemn∞ propojen²ch segment∙, dokud se prvnφ z nich nedostane a₧ k po₧adovanΘmu cφli. Od n∞j se odrazφ a vrßtφ zp∞t k p∙vodnφmu odesilateli, kterΘmu souΦasn∞ p°inese i po₧adovanou informaci o tom, jak se k cφlovΘmu uzlu dostal.

Prßv∞ popsan² princip fungovßnφ most∙ (tj. tzv. Source Routing) vÜak p°φliÜ nezapadß do druhΘ nejni₧Üφ vrstvy referenΦnφho modelu ISO/OSI, do kterΘho mosty jako takovΘ pat°φ. Svou celkovou filosofiφ pat°φ spφÜe o vrstvu v²Üe, neboli do vrstvy sφ¥ovΘ, kde probφhß tzv. sm∞rovßnφ. ╪φkß to dokonce i jeho samotn² nßzev - Source Routing (v doslovnΘm p°ekladu: sm∞rovßnφ, urΦovanΘ zdrojem dat). Do linkovΘ vrstvy byl Source Routing za°azen z°ejm∞ proto, ₧e byl p°edlo₧en ke standardizaci komisi, zab²vajφcφ se prßv∞ linkovou vrstvou.

Mosty vs. opakovaΦe v Ethernetu

Vra¥me se nynφ jeÜt∞ k jednomu zajφmavΘmu aspektu, kter² se t²kß vztahu Ethernetovsk²ch transparentnφch most∙ k opakovaΦ∙m. Vzhledem k tomu, ₧e tyto mosty pracujφ stylem "store and forward", tj. ka₧d² p°ijat² rßmec nejprve cel² p°ijmou do svΘ vnit°nφ vyrovnßvacφ pam∞ti, a teprve pak se rozhodujφ co s nim ud∞lajφ, nemusφ ji₧ Üφ°it kolize z jednoho segmentu do ostatnφch segment∙. Pokud nap°φklad most p°ijme datov² rßmec z jednoho segmentu a mß jej p°edat do jinΘho segmentu, ve kterΘm prßv∞ doÜlo ke kolizi, pak pro n∞j nenφ principißlnm problΘmem poΦkat, dokud kolize neskonΦφ a dokud sßm nezφskß prßvo vysφlat.

D∙sledkem prßv∞ naznaΦenΘ skuteΦnosti je pak to, ₧e pravidlo o maximßlnφm mo₧nΘm poΦtu opakovaΦ∙ v Ethernetovsk²ch sφtφch (viz v²Üe) se "zastavuje" na nejbli₧Üφm most∞ - viz tΘ₧ obrßzek 9. Ty segmenty, kterΘ jsou vzßjemn∞ propojeny pomocφ opakovaΦ∙ p°itom tvo°φ tzv. koliznφ domΘnu (tj. soustavu segment∙, v rßmci kterΘ se kolize Üφ°φ vÜemi sm∞ry a do vÜech segment∙, proto₧e opakovaΦe tyto kolize propouÜtφ). Koliznφ domΘny pak konΦφ na nejbli₧Üφm mostu.

Co vÜak mosty stßle jeÜt∞ propouÜtφ, je tzv. vÜesm∞rovΘ vysφlßnφ (broadcasting), neboli takov² provoz, kter² jeden odesilatel adresuje souΦasn∞ vÜem potencißlnφm p°φjemc∙m. Tato skuteΦnost souvisφ s transparentnostφ Ethernetovsk²ch most∙ a s iluzφ, kterou ostatnφm uzl∙m vytvß°φ - ₧e jednotlivΘ segmenty, propojenΘ mosty, spl²vajφ do jednoho logickΘho celku (viz obr. 8/a).

Propojovßnφ pomocφ sm∞rovaΦ∙

P°edchozφ odstavce dßvajφ tuÜit, ₧e vzßjemnΘ propojovßnφ sφtφ a jejich Φßstφ je mo₧nΘ realizovat i na vyÜÜφch ·rovnφch, ne₧ jakou je vrstva linkovß. Obecn∞ platφ, ₧e to m∙₧e b²t v podstat∞ na kterΘkoli vrstv∞, ovÜem v praxi se vzßjemnΘ propojovßnφ sφtφ a jejich segment∙ provßdφ p°edevÜφm na ·rovni t°φ nejni₧Üφch vrstev referenΦnφho modelu ISO/OSI: na ·rovni fyzickΘ vrstvy, kde se p°φsluÜnΘ za°φzenφ oznaΦuje jako opakovaΦ, na ·rovni linkovΘ vrstvy, kde se oznaΦuje jako most, a na ·rovni vrstvy sφ¥ovΘ, kde se p°φsluÜnΘ za°φzenφ oznaΦuje jako sm∞rovaΦ (router).

Obr. 10: Sm∞rovaΦ pracuje na ·rovni sφ¥ovΘ vrstvy referenΦnφho .. modelu ISO/OSI

JakΘ ale jsou d∙vody vzßjemnΘho propojovßnφ sφtφ na ·rovni sφ¥ovΘ vrstvy pomocφ sm∞rovaΦ∙, resp. jakΘ v²hody to p°inßÜφ oproti pou₧itφ most∙, pracujφcφch na ·rovni linkovΘ vrstvy?

Nejprve je vhodnΘ si uv∞domit, ₧e konkrΘtnφ mechanismus fungovßnφ sm∞rovaΦ∙ je v mnohΘm obdobn² fungovßnφ most∙: stejn∞ jako most, i sm∞rovaΦ nejprve p°ijme cel² p°enßÜen² blok dat (tzv. paket, viz dßle), pak analyzuje jeho obsah, podle n∞j se rozhodne kudy jej poslat dßle, a poslΘze tak skuteΦn∞ uΦinφ. Rozdφly jsou vÜak mj. v nßsledujφcφm: most analyzuje obsah datovΘho rßmce, jak se naz²vß blok dat, p°enßÜen² na ·rovni linkovΘ vrstvy. Naproti tomu sm∞rovaΦ analyzuje obsah tzv. paketu, jak jsou oznaΦovßny bloky dat, p°enßÜenΘ na ·rovni sφ¥ovΘ vrstvy (viz obr. 11). Most i sm∞rovaΦ tedy p°i svΘm rozhodovßnφ vychßzφ v zßsad∞ z jin²ch ·daj∙, p°iΦem₧ ty, kterΘ dostßvß k dispozici sm∞rovaΦ, jsou obecn∞jÜφ a obsa₧n∞jÜφ. Nap°φklad adresy, se kter²mi pracujφ sm∞rovaΦe (adresy na ·rovni sφ¥ovΘ vrstvy, neboli tzv. sφ¥ovΘ adresy), v∞tÜinou obsahujφ i informace o umφst∞nφ danΘho uzlu (v konkrΘtnφ sφti), zatφmco adresy na ·rovni linkovΘ vrstvy (linkovΘ adresy, se kter²mi pracujφ mosty) obvykle nemajφ ₧ßdnou souvislost s fyzick²m umφst∞nφm uzlu. Nap°φklad v Ethernetovsk²ch sφtφch se na ·rovni linkovΘ vrstvy pou₧φvajφ 48-bitovΘ ΦφselnΘ adresy, kterΘ do p°φsluÜn²ch adatΘr∙ napevno "zadrßtovßvß" ji₧ jejich v²robce (ani₧ samoz°ejm∞ m∙₧e tuÜit, kde a jak bude p°φsluÜn² adaptΘr p°ipojen).

Obr. 11: P°edstava rßmce a paketu

Rozhodovßnφ, kterΘ provßdφ sm∞rovaΦ, je obecn∞ nßroΦn∞jÜφ ne₧ rozhodovßnφ mostu (a takΘ v∞tÜinou trvß dΘle). V d∙sledku v∞tÜφ obecnosti ·daj∙, kterΘ mß pro svΘ rozhodovßnφ k dispozici, vÜak sm∞rovaΦ dokß₧e takovΘ v∞ci, kterΘ most nedokß₧e v∙bec, nebo je alespo≥ dokß₧e zajistit lΘpe. ZejmΘna:

DalÜφ v²znamnou odliÜnostφ sm∞rovaΦ∙ od most∙ je skuteΦnost, ₧e ji₧ nejsou transparentnφ. Ostatnφ uzly si jejich existenci pln∞ uv∞domujφ, a v d∙sledku toho si explicitn∞ uv∞domujφ takΘ to, ₧e sm∞rovaΦe navzßjem propojujφ jednotlivΘ sφt∞. P°i pou₧itφ sm∞rovaΦ∙ si tedy jednotlivΘ sφt∞, resp. jejich Φßsti zachovßvajφ svou identitu (jsou nadßle samostatn²mi sφt∞mi, a majφ nap°φklad odliÜnΘ sφ¥ovΘ adresy, resp. sφ¥ovΘ Φßsti adres), zatφmco p°i pou₧itφ sm∞rovaΦ∙ spl²valy v jedin² logick² celek (v jedinou sφ¥, s jedinou sφ¥ovou adresou).

Odesilatel, kter² chce poslat datov² paket jinΘmu uzlu, musφ b²t z jeho adresy schopen poznat, zda se nachßzφ ve stejnφ sφti jako on sßm, nebo nikoli. Pokud ano, odesilatel poÜle p°φsluÜn² paket p°φmo (resp. p°edß jej svΘ linkovΘ vrstv∞ k odeslßnφ). Pokud se ovÜem p°φjemce nachßzφ v jinΘ sφti, pak odesilatel musφ postupovat nßsledovn∞: musφ znßt alespo≥ jeden sm∞rovaΦ, kter² z jeho sφt∞ "vede ven" (a takov² musφ existovat, nebo¥ v opaΦnΘm p°φpad∞ by v∙bec nebyl mo₧n² jak²koli p°enos mezi sφt∞mi odesioatele a p°φjemce). Sv∙j paket sice opat°φ adresou skuteΦnΘho p°φjemce, ale ve skuteΦnosti jej poÜle sm∞rovaΦi (tj. svΘ linkovΘ vrstv∞ jej p°edß s pokynem odeslat jej tomuto sm∞rovaΦi). Sm∞rovaΦ, kter² paket p°ijme, jej analyzuje, a z adresy p°φjemce si pak odvodφ, kudy jej mß poslat dßl - zda ji₧ jej m∙₧e p°φmo p°edat jeho koneΦnΘmu p°φjemci, nebo zda jej musφ p°edat jeÜt∞ jinΘmu sm∞rovaΦi atd., viz obr. 12.

Obr. 12: P°edstava p°enosu v soustav∞ sφtφ, spojen²ch .. sm∞rovaΦi

Proces rozhodovßnφ o dalÜφm sm∞ru p°enosu paketu, kter² sm∞rovaΦ provßdφ, se oznaΦuje p°φznaΦn∞ jako tzv. sm∞rovßnφ (routing). M∙₧e b²t zalo₧eno na mnoha r∙zn²ch principech a metodßch (kterΘ ji₧ p°esahujφ rßmec tohoto textu), a m∙₧e b²t provßd∞no pro ka₧d² samostatn² paket v₧dy znovu (pokud sφtovß vrstva funguje tzv. nespojovan²m zp∙sobem, neboli nabφzφ tzv. datagramovou p°enosovou slu₧bu), nebo pouze jednou, p°i navazovßnφ spojenφ mezi p°φjemcem a odesilatelem (pokud sφ¥ovß vrstva funguje spojovan²m zp∙sobem, a nabφzφ p°enos po tzv. virtußlnφch okruzφch). V zßsad∞ ovÜem platφ, ₧e sm∞rovßnφ se dokß₧e ·sp∞Ün∞ vyrovnat s takov²mi situacemi, kterΘ most∙m vadφ - nap°φklad s existencφ alternativnφch cest ke stejnΘmu p°φjemci (co₧ pro most p°edstavuje nep°φpustn² cyklus). Sm∞rovaΦ∙m takovΘto alternativnφ cesty nejen nevadφ, ale Φasto je dokß₧φ i vhodn∞ vyu₧φt, tak ₧e je pou₧φvajφ vÜechny a datov² provoz mezi n∞ rozd∞lujφ.

Mezi zp∙sobem fungovßnφ sm∞rovaΦ∙ a most∙ je ovÜem i jeden zßsadnφ rozdφl, podstatn² zejmΘna pro u₧ivatele: mosty jsou za°φzenφ typu "plug and play", kterΘ staΦφ pouze p°ipojit a zapnout. Naproti tomu sm∞rovaΦe je t°eba konfigurovat, co₧ je Φasto i dosti slo₧itΘ a vy₧aduje to nemalΘ znalosti o pou₧φvan²ch sm∞rovacφch protokolech atd.

OpakovaΦ, most nebo sm∞rovaΦ, tak znφ otßzka!

Rozhodovßnφ mezi opakovaΦem, mostem Φi sm∞rovaΦem nemusφ b²t v∙bec jednoduchΘ. Relativn∞ nejjednoduÜÜφ je situace v p°φpad∞ opakovaΦ∙, pro kterΘ lze p°esn∞ stanovit hranice, za kter²mi ji₧ nejsou pou₧itelnΘ (nap°. maximßlnφ poΦet opakovaΦ∙ v Ethernetovsk²ch sφtφch). Dßle je v mnoha p°φpadech mo₧nΘ si odvodit, ₧e pou₧itφ opakovaΦ∙ nenφ v²hodnΘ - nap°φklad tam, kde se anal²zou datov²ch tok∙ zjistφ, ₧e v jednotliv²ch segmentech eistuje nezanedbateln² objem provozu, kter² by mohl z∙stat lokßlnφ. Na druhΘ stran∞ existujφ velmi z°eteln∞ definovanΘ situace, kdy je pou₧itφ opakovaΦ∙ ₧ßdoucφ - zejmΘna p°i pot°eb∞ rozv∞tvit sφ¥ovΘ rozvody na bßzi kroucenΘ dvoulinky.

Rozhodovßnφ mezi mostem a sm∞rovaΦem m∙₧e b²t mnohem slo₧it∞jÜφ, a to zvlßÜt∞ v situacφch, kdy je pot°eba vzßjemn∞ propojit lokßlnφ sφt∞, kterΘ dosud fungovaly jako samostatnΘ celky bez vzßjemnΘho propojenφ. Majφ si nynφ, po vzßjemnΘm propojenφ, udr₧et svou relativnφ samostatnost (tj. nadßle b²t samostatn²mi sφt∞mi na ·rovni sφ¥ovΘ vrstvy, co₧ by znamenalo propojit je pomocφ sm∞rovaΦ∙), nebo majφ splynout v jedin² homogennφ celek, tj. v jedinou sφ¥ (co₧ by znamenalo propojit je pomocφ most∙)?

Pro pou₧itφ most∙ hovo°φ skuteΦnost, ₧e jsou lacin∞jÜφ ne₧ sm∞rovaΦe (i kdy₧ v poslednφ dob∞ nijak v²razn∞), ₧e dokß₧φ pracovat rychleji (proto₧e majφ jednoduÜÜφ rozhodovßnφ ne₧ sm∞rovaΦe), a v neposlednφ °ad∞ je jejich pou₧itφ jednoduÜÜφ (nenφ t°eba je slo₧it∞ konfigurovat). Na druhß stran∞ pro pou₧itφ sm∞rovaΦ∙ hovo°φ fakt, ₧e dokß₧φ ·Φinn∞ji izolovat provoz, kter² m∙₧e z∙stat lokßlnφ v urΦitΘ Φßsti sφt∞ (na rozdφl od most∙ nap°φklad nepropouÜtφ tzv. vÜesm∞rovΘ vysφlßnφ), ₧e sk²tajφ v∞tÜφ prostor pro realizaci vÜelijak²ch logick²ch zßbran (firewalls), a p°edevÜφm ₧e dokß₧φ vyu₧φt jakoukoli skuteΦnou topologii sφt∞.

Rozhodovßnφ mezi mostem a sm∞rovaΦem m∙₧e Φasto ulehΦit nap°φklad volba pou₧it²ch p°enosov²ch protokol∙. Jde-li nap°φklad o sφ¥, kde jsou pou₧φvßny protokoly TCP/IP, pak je zde p°esn∞ stanoveno, jak² maximßlnφ mo₧n² poΦet uzl∙ m∙₧e mφt ka₧dß jednotlivß sφ¥. Tento poΦet p°itom zßvisφ na druhu adresy, kterß je pro takovouto sφ¥ k dispozici: pro nejb∞₧n∞jÜφ adresy t°φdy C (kterΘ typicky p°ipadajφ v ·vahu), m∙₧e b²t v ka₧dΘ sφti nev²Üe 254 uzl∙. Pak je z°ejmΘ, ₧e kdyby m∞l poΦet uzl∙ ve vzßjemn∞ propojen²ch segmentech p°ekroΦit tento poΦet (nejspφÜe i v rozumnΘm v²hledu do budoucna), pak je nutnΘ p°φsluÜnΘ segmenty propojit pomocφ sm∞rovaΦ∙, a ud∞lat z nich samostatnΘ sφt∞ (na ·rovni sφtovΘ vrstvy), tak aby mohly pou₧φvat vlastnφ, samostatnΘ sΘ¥ovΘ adresy typu C.

DalÜφ skuteΦnost, kterß m∙₧e rozhodovßnφ mezi mostem a sm∞rovaΦem v²razn∞ ovlivnit, je p°ipojovßnφ na "vn∞jÜφ sv∞t" - na n∞kterou rozlehlou sφ¥. Zde se toti₧ prakticky v²luΦn∞ pou₧φvß propojenφ na ·rovni sm∞rovaΦ∙. N∞kterΘ p°enosovΘ protokoly to dokonce p°φmo p°edepisujφ, ale hlavnφm d∙vodem je v∞tÜinou pot°eba logickΘho odd∞lenφ propojovan²ch sφtφ, pot°eba zachovßnφ jejich identity a co nejefektivn∞jÜφ mo₧nost regulace p°φstupov²ch prßv a omezenφ.

Propojenφ pomocφ ·st°eden

Zajφmavou alternativou, kterß se v poslednφ dob∞ zaΦφnß dosti v²razn∞ prosazovat a konkurovat opakovaΦ∙m a most∙m - alespo≥ v Ethernetovsk²ch sφtφch - jsou tzv. EthernetovΘ ·st°edny (Ethernet switches).

V prvnφm p°iblß₧enφ je mo₧nΘ si je p°edstavit jako zvlßÜtnφ variantu most∙, kterß p°edpoklßdß pou₧itφ v∞tÜφho poΦtu samostatn²ch segment∙, p°iΦem₧ ke ka₧dΘmu z nich se bude p°ipojovat v₧dy jen jeden uzlov² poΦφtaΦ (viz obrßzek 13). Vlastnφ fungovßnφ ·st°edny je pak obdobnΘ fungovßnφ mostu: kdy₧ ·st°edna p°ijme z n∞kterΘho segmentu datov² rßmec, analyzuje jeho obsah takov²m zp∙sobem, aby zjistila kdo je jeho adresßtem, naΦe₧ jej odeÜle do toho segmentu, ve kterΘm se p°φsluÜn² adresßt nachßzφ. Zßsadnφ rozdφl oproti most∙m je zde spφÜe v kvantit∞ ne₧ v kvalit∞ - vzhledem k tomu, ₧e ka₧d² jednotliv² segment je "obydlen" pouze jednφm uzlem, odpadß vlastn∞ mo₧nost filtrovßnφ, a ·st°edna v₧dy pou₧φvß cφlenΘ p°edßvßnφ (forwarding) rßmce tomu, komu pat°φ. Pouze v souvislosti s ·st°ednami se ji₧ nepou₧φvß termφn "forwarding", ale mφsto n∞j se pou₧φvß termφn switching (doslova: p°epojovßnφ). TakΘ mφsto segmentu ("obydlenΘho" v₧dy jen jednφm uzlem) se v souvislosti s ·st°ednami pou₧φvß spφÜe termφn port.

Obr. 13: P°edstava fungovßnφ EthernetovΘ ·st°edny

DalÜφ zajφmavou odliÜnostφ Ethernetov²ch ·st°eden od most∙ je skuteΦnost, ₧e ji₧ nemusφ nutn∞ pracovat dßvkov²m zp∙sobem, na principu "store and forward". EthernetovΘ ·st°edny toti₧ existujφ ve dvou variantßch: jedna z nich postupuje podobn∞ jako most, tj. ka₧d² jednotliv² rßmec v₧dy nejprve p°ijme do svΘ vnit°nφ pam∞ti, zde jej analyzuje, a podle v²sledku jej odeÜlem tφm sm∞rem, ve kterΘm se adresßt nachßzφ (p°esn∞ji p°es ten port, ke kterΘmu je adresßt p°ipojen). Mß to v²hodu v tom, ₧e takto pracujφcφ ·st°edna dokß₧e mj. rozpoznat chybnΘ rßmce a eliminovat je. Nev²hodou je ale v∞tÜφ zdr₧enφ rßmce na jeho cest∞ od odesilatele k p°φjemci, kterΘ padß na vrub jeho uklßdßnφ do vnit°nφ vyrovnßvacφ pam∞ti ·st°edny.

Alternativou jsou pak takovΘ ·st°edny, kterΘ neΦekajφ na p°ijetφ celΘho paketu, ale svΘ rozhodovßnφ uΦinφ okam₧it∞, jakmile je to jenom mo₧nΘ - tedy ji₧ v okam₧iku, kdy z prßv∞ p°ijφmanΘho rßmce p°ijaly takovou Φßst, aby z nφ poznaly adresu p°φjemce. Pr∙b∞₧n∞ p°ijφman² rßmec pak takto pracujφcφ ·st°edna zaΦn∞ okam₧it∞ p°edßvat do p°φsluÜnΘho cφlovΘho segmentu, a to op∞t pr∙b∞₧n∞ (se zpo₧d∞nφm, kterΘ odpovφdß velikosti hlaviΦky rßmce, obsahujφcφ p°φsluÜnΘ adresy). V²hodou je p°edevÜφm malΘ p°enosovΘ zpo₧d∞nφ rßmce, nev²hodou pak skuteΦnost, ₧e takovßto ·st°edna musφ "pustit" i takovΘ rßmce, kterΘ jsou chybnΘ (proto₧e sama to poznß a₧ v okam₧iku, kdy p°ijme rßmec cel², ale mezitφm ji₧ jeho Φßst sama odeslala).


zp∞t do archivu Φlßnk∙ | rejst°φk | p°edchozφ Φlßnek | dalÜφ Φ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