VyÜlo v t²denφku: CHIPweek
╚φslo:29/97
Datum:29. Φervence 1997
Strana:22
Rubrika/kategorie: Principy poΦφtaΦov²ch sφtφ
Modul: Ethernet
Dφl:13

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

Ji°φ Peterka

Formßty Ethernetov²ch rßmc∙

NaÜe povφdßnφ o Ethernetu dnes zakonΦφme jednou nep°φliÜ sv∞tlou kapitolou ze ₧ivotopisu tΘto fenomenßln∞ ·sp∞ÜnΘ p°enosovΘ technologie - pokusφme se toti₧ vnΘst jasno do problematiky Ethernetov²ch rßmc∙.

Ethernet je p°enosovou technologiφ, kterß funguje p°edevÜφm na ·rovni linkovΘ vrstvy (druhΘ nejni₧Üφ, ve smyslu sedmivrstvΘho modelu ISO/OSI), ale pokr²vß takΘ nejni₧Üφ vrstvu, vrstvu fyzickou. To znamenß, ₧e na ·rovni tΘto fyzickΘ vrstvy Ethernet p°esn∞ specifikuje, jak majφ b²t p°enßÜeny jednotlivΘ bity, zatφmco na ·rovni linkovΘ vrstvy musφ Ethernet specifikovat, jak spolu jednotlivΘ bity souvisφ, jakΘ tvo°φ celky (bloky), jakΘ majφ tyto celky hlaviΦky a co obsahujφ (nap°. jak je v nich vyjßd°ena adresa p°φjemce atd.). A prßv∞ zde vstupujφ do hry formßty Ethernetov²ch rßmc∙, jak se sprßvn∞ °φkß zmφn∞n²m celk∙m (blok∙m), p°enßÜen²m na ·rovni linkovΘ vrstvy v prost°edφ Ethernetu.

V souvislosti s problematikou rßmc∙ je vhodnΘ si takΘ zd∙raznit jeden fakt: specifikace na ·rovni fyzickΘ vrstvy, kterΘ se t²kajφ p°edevÜφm p°enos∙ jednotliv²ch bit∙, se musφ m∞nit p°i zm∞n∞ pou₧itΘ p°enosovΘ cesty (tedy nap°φklad p°i p°echodu z tenkΘho koaxißlnφho kabelu na kroucenou dvoulinku), nebo p°i p°echodu z desetimegabitovΘho na stomegabitov² Ethernet, Φi dokonce na Ethernet gigabitov². Praktick²m d∙sledkem je pak skuteΦnost, ₧e musφ existovat samostatnΘ dφlΦφ standardy pro r∙znΘ p°enosovΘ cesty a p°enosovΘ rychlosti (tj. nap°φklad standardy 10Base2, 10BaseT, 100BaseTX, 100BaseFX apod.). Naproti tomu p°i vÜech zm∞nßch a v²vojov²ch trendech byl kladen velk² d∙raz na to, aby se na ·rovni linkovΘ vrstvy naopak nemuselo v∙bec nic m∞nit. To se p°itom t²kß jak p°φstupovΘ metody CSMA/CD, kterß funguje prßv∞ na ·rovni linkovΘ vrstvy (p°esn∞ji na ·rovni ni₧Üφ z obou podvrstev, na kterou se linkovß vrstva rozd∞luje), a stejn∞ tak se to t²kß i formßtu Ethernetov²ch rßmc∙, pou₧φvan²ch na linkovΘ vrstv∞ (p°esn∞ji na ·rovni vyÜÜφ z obou podvrstev linkovΘ vrstvy). Prßv∞ dφky tΘto skuteΦnosti je pak mo₧nΘ to, aby sφ¥ovΘ protokoly i nad nimi provozovanΘ aplikace fungovaly nezm∞n∞n²m zp∙sobem bez ohledu na to, jakß varianta Ethernetu je "pod nimi".

Rßmec Ethernet II

Nejprve si zkusme rozmyslet, jakΘ druhy informacφ by v ka₧dΘm datovΘm rßmci m∞ly b²t obsa₧eny. Zcela jist∞ by tam nem∞la chyb∞t adresa p°φjemce, a dßle adresa odesilatele. Jeliko₧ v Ethernetu se pou₧φvajφ 48-bitovΘ adresy, je pot°eba vyhradit na ka₧dou takovouto adresu 6 byt∙. Dßle je nutnΘ n∞jak²m zp∙sobem vyjßd°it, co je ulo₧eno "v nßkladovΘm prostoru" datovΘho rßmce - zda je tam vlo₧en nap°φklad sφ¥ov² paket pat°φcφ protokolu IP, nebo paket protokolu IPX apod. Vhodn² je i kontrolnφ souΦet, pro ov∞°enφ zda rßmec nebyl p°i p°enosu poÜkozen. Krom∞ toho je samoz°ejm∞ nutnΘ zajistit, aby se jednoznaΦn∞ poznalo kde datov² rßmec zaΦφnß a kde konΦφ, resp. jak je dlouh².

Zp∙sob∙, jak vÜechny takovΘto informace "posklßdat" do jednoho celku (rßmce) je samoz°ejm∞ vφce. Svou p°edstavu samoz°ejm∞ m∞li ji₧ auto°i p∙vodnφho Ethernetu ve st°edisku PARC: jejich °eÜenφ naznaΦuje prvnφ Φßst dneÜnφho obrßzku (zcela vlevo). Samoz°ejm∞ zde neschßzφ adresa p°φjemce a odesilatele, a z dalÜφch d∙le₧it²ch ·daj∙ je vhodnΘ zde zmφnit p°edevÜφm obsah 12. a 13. bytu, ve kterΘm se nachßzφ identifikace "u₧iteΦnΘho nßkladu" (konkrΘtn∞ identifikace protokolu, kterΘmu pat°φ sφ¥ov² paket, vlo₧en² do EthernetovΘho rßmce). Tento identifikaΦnφ ·daj, tzv. EtherType, je dvoubytov²m Φφslem, a ka₧dΘmu sφ¥ovΘmu protokolu je centrßln∞ p°id∞lena jedna konkrΘtnφ hodnota tohoto EtherTypu (nap°φklad protokolu IP pat°φ hodnota 0800 hexadecimßln∞). Podle nφ pak implementace linkovΘ vrstvy na stran∞ p°φjemce dokß₧e rozhodnout, co mß ud∞lat s p°ijat²m Ethernetov²m rßmcem - komu mß p°edat jeho "u₧iteΦn² obsah" k dalÜφmu zpracovßnφ.

Dnes je prßv∞ popsan² formßt rßmce, pochßzejφcφ od p∙vodnφch autor∙ Ethernetu, stßle pou₧φvßn (a dost mo₧nß je i poΦetn∞ nejrozÜφ°en∞jÜφ). Formßln∞ je oznaΦovßn jako rßmec Ethernet_II (pro jeho souvislost s p∙vodnφ verzφ Ethernetu, DIX Ethernetu a Ethernetu II).

Rßmec Ethernet 802.2

V ·vodu tohoto modulu jsme si °φkali, ₧e Ethernet byl vyvinut firmami Digital, Intel a Xerox jako jejich vlastnφ (proprietßrnφ) °eÜenφ, ale poslΘze byl p°edßn standardizaΦnφ organizaci (IEEE), kterß z n∞j vytvo°ila vÜeobecn² standard. LidΘ z pracovnφch skupin IEEE se vÜak rozhodli pozm∞nit p∙vodnφ nßvrh kter² jim byl p°edlo₧en - nejmarkantn∞ji snad prßv∞ u formßtu Ethernetov²ch rßmc∙. Dosp∞li k zßv∞ru, ₧e vlastnφ Ethernetov² rßmec nepot°ebuje znßt ·daj o druhu svΘho nßkladu, a mφsto tohoto ·daje pak umφstili do hlaviΦky (do zmφn∞nΘho 12. a 13. bytu, ve smyslu Φφslovßnφ dle obrßzku) ·daj o dΘlce rßmce.

Rozhodnutφ lidφ z IEEE samoz°ejm∞ m∞lo logickΘ d∙vody: p°edpoklßdß toti₧, ₧e do EthernetovΘho rßmce bude vlo₧en jeÜt∞ jeden dalÜφ rßmec - odpovφdajφcφ hornφ podvrstv∞ linkovΘ vrstvy, neboli podvrstv∞ °φzenφ linkovΘho spoje (anglicky Logical Link Control, odsud "rßmec LLC"), a p°ipraven² pracovnφ skupinou 802.2 spoleΦnosti IEEE. Tento "vnit°nφ" rßmec, oznaΦovan² takΘ jako rßmec IEEE 802.2, pak ji₧ obsahuje ·daj o typu svΘho "u₧iteΦnΘho nßkladu". Nejde ale o "jednorozm∞rn²" identifikßtor jako v p°φpad∞ EtherTypu, ale o identifikaci konkrΘtnφ entity (na stran∞ p°φjemce i odesilatele), kterß datov² obsah vytvo°ila, resp. mß dßle zpracovat - ve skuteΦnosti je p°φsluÜn² ·daj Φφslem tzv. p°echodovΘho bodu (Service Access Point) mezi linkovou a sφ¥ovou vrstvou, skrz kter² byla data p°evzata k odeslßnφ, resp. majφ b²t p°edßna k dalÜφmu zpracovßnφ.

Logika rozhodnutφ IEEE pak dßle souvisφ s tφm, ₧e zmφn∞n² rßmec LLC (rßmec IEEE 802.2) je spoleΦn² i pro dalÜφ p°enosovΘ technologie, standardizovanΘ spoleΦnostφ IEEE (tedy nap°φklad pro FDDI a Token Ring). Proto zm∞na EthernetovΘho rßmce byla vlastn∞ snahou sjednotit linkovΘ rßmce a umo₧nit snazÜφ nßvaznost a koexistenci r∙zn²ch p°enosov²ch technologiφ.

SouΦasn∞ s tφm ale vznikl zajφmav² problΘm: je v₧dy mo₧nΘ od sebe spolehliv∞ odliÜit p∙vodnφ rßmce Ethernet_II a rßmce IEEE 802.3, s vlo₧en²mi rßmci 802.2? Odpov∞∩ je naÜt∞stφ kladnß, a je Ü¥astn²m d∙sledkem dvou skuteΦnostφ: toho, ₧e maximßlnφ dΘlka EthernetovΘho rßmce, vyjßd°enß v rßmci Ethernet 802.3 (p°esn∞ji velikost jeho u₧iteΦnΘho nßkladu) je v₧dy menÜφ nebo rovna 1500, zatφmco konkrΘtnφ hodnoty EtherTypu, vyjßd°enΘ v rßmci Ethernet_II, jsou v₧dy v∞tÜφ. Dφky tomu pak oba typy rßmc∙ mohou vedle sebe koexistovat "na jednom drßtu".

Rßmce "raw 802.3"

Obrßzek 1.
Srovnßnφ Φty° variant Ethernetov²ch rßmc∙
Aby nejednotnostφ kolem Ethernetov²ch rßmc∙ nebyl konec, zavedla firma Novell do sv²ch lokßlnφch sφtφ jeÜt∞ dalÜφ typ EthernetovΘho rßmce, kterΘmu se zaΦalo °φkat "raw 802.3" (ve smyslu: "hol² 802.3"). D∙vodem pro p°φvlastek "raw" je absence vnit°nφho LLC rßmce 802.2 - zde jde v podstat∞ o rßmec 802.3, do kterΘho se ale ji₧ nevklßdß rßmec 802.2, kter² by urΦoval druh datovΘho "nßkladu". Mφsto toho se p°φsluÜn² "datov² nßklad" vklßdß p°φmo do rßmce 802.3. V prost°edφ, kde p°ipadß v ·vahu jen jedin² druh "datovΘho nßkladu" (a to pakety protokolu IPX) to m∙₧e fungovat.

Dodnes nenφ znßmo, proΦ se firma Novell rozhodla pro takovΘto °eÜenφ. Oficißlnφ vysv∞tlenφ nenφ k dispozici, a kuloßrovΘ vysv∞tlenφ °φkß, ₧e si n∞kdo Üpatn∞ p°eΦetl specifikaci rßmc∙ 802.3 a nedoÜlo mu, ₧e se v nich poΦφtß s vklßdßnφm rßmc∙ 802.3. Faktem je, ₧e rßmce 802.3 byly implicitnφmi (p°edvolen²mi) rßmci v sφtφch Novell NetWare do verze 3.x. Od verzφ 4.x ji₧ firma Novell ve sv²ch produktech implicitn∞ p°ednastavuje rßmce 802.3 + 802.2 (ale podporovßny jsou vÜechny existujφcφ typy rßmc∙).

TakΘ rßmce "raw 802.3" je mo₧nΘ bezpeΦn∞ odliÜit od ostatnφch typ∙ rßmc∙ dφky tomu, ₧e ka₧d² IPX paket, vklßdan² do t∞chto rßmc∙, zaΦφnß dv∞ma byty pln²mi sam²ch jedniΦek (tj. dv∞ma byty s hodnotou FF hexadecimßln∞).

Rßmce 802.2 SNAP

╚tvrt²m mo₧n²m typem EthernetovΘho rßmce je rßmec 802.3 s vlo₧en²m rßmcem 802.2 SNAP (od: Subnetwork Access Protocol). Smyslem rßmce 802.2 SNAP je rozÜφ°it repertoßr mo₧nostφ pro oznaΦenφ "datovΘho nßkladu" uvnit° rßmce - jestli₧e "klasick²" rßmec 802.2 pou₧φvß k tomuto ·Φelu jedin² byte, rßmec 802.2 SNAP umo₧≥uje vyu₧φt a₧ p∞t byt∙. V praxi se ale tato varianta pou₧φvß nejmΘn∞ ze vÜech ostatnφch.


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