VyÜlo v t²denφku: | CHIPweek |
╚φslo: | 3/97 |
Datum: | 14. ledna 1997 |
Strana: | 22 |
Rubrika/kategorie: | Principy poΦφtaΦov²ch sφtφ |
Modul: | P°enosovΘ techniky |
Dφl: | 5 |
Na ·vod si nejprve p°ipome≥me, co vlastn∞ p°epojovßnφ obnßÜφ: mezilehl² (p°estupnφ, p°epojovacφ) uzel ka₧d² p°enßÜen² blok dat (neboli paket) nejprve naΦte, ulo₧φ jej do svΘ vyrovnßvacφ pam∞ti, pak jej analyzuje a rozhodne co sánφm, a v²sledek svΘho rozhodnutφ pak takΘ vykonß. To v∞tÜinou znamenß, ₧e blok dat odeÜle dßl váurΦitΘm konkrΘtnφm sm∞ru (tΘto Φinnosti se váangliΦtin∞ °φkß forwarding, neboli "p°edßvßnφ dßl"). Nebo p°estupnφ uzel takΘ m∙₧e zjistit, ₧e dan² blok dat ji₧ nemusφ p°edßvat nikam dßl, a tak jej jednoduÜe vyma₧e ze svΘ vnit°nφ vyrovnßvacφ pam∞ti (tΘto Φinnosti se °φkß filtering, proto₧e zde p°estupnφ uzel vlastn∞ "odfiltrovßvß" takovΘ bloky, kterΘ nenφ nutnΘ Üφ°it dßl).
JednotlivΘ druhy p°epojovacφch uzl∙ se liÜφ zejmΘna vátom, na jakΘ ·rovni fungujφ - tedy na jakΘ ·rovni probφhß jejich rozhodovßnφ, co dßl provΘst sáp°ijat²m blokem dat, a poslΘze takΘ praktickß realizace t∞chto rozhodnutφ. Co se ale p°esn∞ rozumφ tφm, ₧e káp°epojovßnφ dochßzφ na urΦitΘ ·rovni?
P°edstavme si, ₧e jde o p°epojovßnφ na ·rovni linkovΘ vrstvy, na kterΘ jsou p°enßÜenΘ bloky obvykle oznaΦovßny jako rßmce (frames). P°φkladem mohou b²t EthernetovΘ rßmce (Ethernet frames), kterΘ budeme dßle p°i naÜem v²kladu p°edpoklßdat. P°epojovacφ uzel fungujφcφ na ·rovni linkovΘ vrstvy se tedy bude zajφmat p°edevÜφm o hlaviΦku EthernetovΘho rßmce a o adresy, kterΘ jsou vánφ obsa₧eny - tedy o Ethernetovou adresu p°φjemce a Ethernetovou adresu odesilatele. Co naopak nebude p°epojovacφ uzel fungujφcφ na linkovΘ vrstv∞ zajφmat, je datov² obsah EthernetovΘho rßmce - ani nap°φklad to, zda tento datov² rßmec pat°φ protokolu IP (a váEthernetovΘm rßmci je tudφ₧ ulo₧en paket protokolu IP), nebo protokolu IPX apod. (ani komu takov²to paket pat°φ a od koho pochßzφ). Po naΦtenφ rßmce do svΘ vyrovnßvacφ pam∞ti se pak p°epojovacφ uzel bude rozhodovat podle zmφn∞n²ch Ethernetov²ch adres, zejmΘna podle EthernetovΘ adresy p°φjemce.
Nynφ si p°edstavme p°epojovßnφ na ·rovni sφ¥ovΘ vrstvy, a to vásφti, kde linkovß vrstva op∞t funguje na Ethernetu. Zde p°epojovacφ uzel nejprve p°ijme Ethernetov² rßmec (p°esn∞ji: uΦinφ tak jeho linkovß vrstva), a tento Ethernetov² rßmec vybalφ - tj. extrahuje zán∞j paket, kter² je várßmci obsa₧en. P°itom musφ b²t schopna rozpoznat, o jak² typ paketu jde - zda nap°. pat°φ protokolu IP, protokolu IPX apod. (na takovΘto rozliÜenφ musφ b²t vhodn²m zp∙sobem pamatovßno ji₧ na ·rovni linkov²ch rßmc∙). P°epojovacφ uzel (konkrΘtn∞ jeho sφ¥ovß vrstva) si pak vÜφmß hlaviΦky vybalenΘho paketu, a rozhoduje se podle adresy obsa₧enΘ vátΘto hlaviΦce - tedy podle sφ¥ovΘ adresy, kterou je nap°φklad 32-bitovß IP adresa (v p°φpad∞ IP paket∙).
Adresy, pou₧φvanΘ na ·rovni linkovΘ vrstvy, jsou typicky jednorozm∞rn²mi adresami, kterΘ nejsou dßle Φlen∞ny na ₧ßdnΘ logickΘ slo₧ky, a tvo°φ tudφ₧ jednorozm∞rn² (lineßrnφ) adresov² prostor. Nap°φklad 48-bitovΘ EthernetovΘ adresy jsou zápohledu most∙ a jejich fungovßnφ ka₧dß jednφm velk²m (48-bitov²m) Φφslem. To pak odpovφdß p°edstav∞, ₧e na ·rovni linkovΘ vrstvy jsou vÜechna za°φzenφ "na jednΘ hromad∞", resp, jsou souΦßstφ jednΘ velkΘ sφt∞, nestrukturovanΘ na menÜφ, logicky odd∞lenΘ Φßsti. DalÜφ d∙le₧itou p°edstavou, kterß vypl²vß zápovahy linkov²ch adres, je p°edstava o tom, ₧e mezi libovoln²mi dv∞ma uzly existuje p°φmΘ spojenφ, neboli mo₧nost adresovat ka₧d² rßmec p°φmo jeho koneΦnΘmu adresßtovi.
Na ·rovni sφ¥ovΘ vrstvy se ale pracuje sáadresami, kterΘ odpovφdajφ pon∞kud jinΘ "p°edstav∞ o sv∞t∞ a jeho uspo°ßdßnφ". Zde se poΦφtß sátφm, ₧e cel² sφ¥ov² sv∞t tvo°φ relativn∞ izolovanΘ ostr∙vky, p°edstavujφcφ do znaΦnΘ mφry samostatnΘ sφt∞ - alespo≥ vátom smyslu, ₧e ka₧dß takovßto samostatnß sφ¥ mß jako celek n∞jak² sv∙j identifikßtor. JednotlivΘ uzly pak jsou zapojovßny do t∞chto dφlΦφch sφtφ, a jejich adresy (tj. sφ¥ovΘ adresy) pak majφ dv∞ logickΘ slo₧ky: slo₧ku, kterß vyjad°uje (dφlΦφ) sφ¥ jako takovou, a pak slo₧ku vyjad°ujφcφ relativnφ adresu uzlu várßmci danΘ (dφlΦφ) sφt∞. Sátouto p°edstavou sv∞ta Φlen∞nΘho na dφlΦφ sφt∞ pak koresponduje i p°edstava o tom, ₧e mezi jednotliv²mi dφlΦφmi sφt∞mi je mo₧n² p°enos jen tehdy, pokud tyto jsou propojeny vhodn²mi p°estupnφmi (propojovacφmi) uzly. Struktura t∞chto propojovacφch uzly p°itom m∙₧e, ale nemusφ mφt n∞jak² °ßd, resp. systematickou topologii. D∙le₧it²m d∙sledkem, kterΘ zátΘto p°edstavy vypl²vß, je otßzka existence p°φmΘho spojenφ mezi kter²mikoli dv∞ma uzly - pro n∞kterΘ dvojice m∙₧e p°φmΘ spojenφ existovat (pokud oba spadajφ do stejnΘ dφlΦφ sφt∞), nebo nemusφ (pokud oba nepat°φ do stejnΘ dφlΦφ sφt∞). Vátomto druhΘm p°φpad∞ pak m∙₧e existovat jen "nep°φmß" cesta, vedoucφ p°es jeden nebo n∞kolik p°estupnφch uzl∙.
Vra¥me se nynφ kásamotnΘmu procesu p°epojovßnφ, a to na ·rovni sφ¥ovΘ vrstvy. To samoz°ejm∞ musφ brßt vá·vahu existenci dφlΦφch sφtφ a dvouslo₧kovou povahu sφ¥ov²ch adres - u₧ i proto, ₧e p°φsluÜnΘ rozhodovßnφ by m∞lo b²t odvozovßno p°edevÜφm od tΘ slo₧ky adresy p°φjemce, kterΘ vyjad°uje jeho p°φsluÜnost káurΦitΘ konkrΘtnφ dφlΦφ sφti. Pokud toti₧ p°epojovacφ uzel zjistφ, ₧e koneΦn² p°φjemce paketu se nachßzφ vátakovΘ dφlΦφ sφti, se kterou mß on sßm p°φmΘ spojenφ, m∙₧e mu p°φsluÜn² paket poslat p°φmo. Pokud ne, musφ nejprve hledat vhodnou cestu p°es dalÜφ p°estupnφ uzly, kterß by nakonec dovedla paket a₧ kájeho cφli. D∙le₧itΘ je pak uv∞domit si, ₧e kátakovΘmuto hledßnφ cesty je obecn∞ nutnß znalost skuteΦnΘ topologie celΘ soustavy dφlΦφch sφtφ (p°iΦem₧ tuto znalost obecn∞ musφ mφt ka₧d² p°epojovacφ uzel, fungujφcφ na ·rovni sφ¥ovΘ vrstvy).
Váb∞₧nΘ praxi se p°epojovßnφ na ·rovni sφ¥ovΘ vrstvy °φkß sm∞rovßnφ (anglicky: routing), a za°φzenφ kterΘ jej provßdφ je pak sm∞rovaΦ (router).
Jednorozm∞rnß p°edstava o sv∞t∞, kterß je vlastnφ vÜem most∙m, samoz°ejm∞ nenφ ·nosnß pro hodn∞ velkΘ sφt∞, resp. hodn∞ velkΘ soustavy dφlΦφch sφtφ, proto₧e zde by most musel pro svΘ rozhodovßnφ mφt kádispozici ne·nosn∞ velk² objem informacφ. MnohΘ zánich by mu dokonce nebyly k niΦemu - obecn∞ informace o vÜech uzlech, se kter²mi ve skuteΦnosti nemß p°φmΘ spojenφ (a cesta kánim vede jen p°es p°epojovacφ uzly typu sm∞rovaΦ∙). TakovΘto informace by most nemohl nikdy zu₧itkovat, a proto nenφ nutnΘ mu je ani poskytovat - mostu tedy staΦφ "znßt" jen uzly tΘ dφlΦφ sφt∞, ve kterΘ se sßm nachßzφ, resp. omezit svou p°edstavu plochΘho (jednorozm∞rnΘho) sv∞ta jen na svΘ nejbli₧Üφ okolφ, sahajφcφ a₧ po hranice jeho dφlΦφ sφt∞ (vytyΦenΘ sm∞rovaΦi).
Obecn∞ pak lze °φci, ₧e rozhodovßnφ mostu, probφhajφcφ na linkovΘ ·rovni, bude v²razn∞ jednoduÜÜφ ne₧ rozhodovßnφ sm∞rovaΦe, probφhajφcφ na ·rovni sφ¥ovΘ vrstvy. Dφky tomu pak mosty budou mφt Üanci fungovat rychleji, ne₧ sm∞rovaΦe, Ale o tom, i o dalÜφch zajφmav²ch d∙sledcφch, si povφme váp°φÜtφm dφlu.