zpět do archivu článků |
rejstřík |
předchozí díl |
následující díl
Jiří Peterka: Co je čím ... v počítačových sítích (44):
Adresování v TCP/IP sítích - I.
V minulém dílu našeho seriálu jsme si naznačili, že
síťový model TCP/IP zavádí na úrovni síťové vrstvy jednotnou
abstrakci všech dílčích sítí, které tvoří výslednou soustavu
vzájemně propojených sítí - tzv. internet. Podstata této
abstrakce spočívá mj. i v použití jednotných 32-bitových
adres, a to bez ohledu na skutečné (fyzické) adresy,
používané v jednotlivých dílčích sítích. Podívejme se nyní
na otázku IP adres poněkud podrobněji.
 |
Obr. 44.1.: Představa IP adresy
a/ bez členění na podsítě
b/ se členěním na podsítě (tzv. subnetting)
Jak jsme si již také uvedli minule, 32-bitové adresy,
používané na úrovní síťové vrstvy (tzv. IP adresy), mohou
být chápány jako jednosložkové (lineární) adresy,
vyjadřující právě a pouze adresu jednoho hostitelského
počítače. Pro síťovou vrstvu je ale 32-bitová IP adresa vždy
dvousložková, tvořená číslem resp. adresou (dílčí) sítě
a číslem resp. adresou hostitelského počítače, který se
v této síti nachází - viz obr. 44.1. a/. Tato představa pak
odpovídá členění výsledné soustavy sítí (internet-u) na
jednotlivé dílčí sítě (viz minule, obr. 43.1. a/), kterými
mohou být například jednotlivé lokální sítě typu Ethernet,
Token Ring apod., až po velké rozlehlé sítě s velkým počtem
hostitelských počítačů.
Podstata směrování v TCP/IP sítích
Důvod, proč síťová vrstva pracuje právě s takovouto
představou, a nikoli s představou jednolité, dále
nestrukturované výsledné sítě, je veskrze praktický: v zájmu
minimalizace objemu směrovacích tabulek je směrování
v TCP/IP sítích založeno jen na adresách (dílčích) sítí,
a nikoli na adresách jednotlivých hostitelských počítačů
v rámci těchto sítí.
Právě vyslovené tvrzení si zaslouží poněkud upřesnit:
Každý hostitelský počítač, který chce odeslat nějaký IP
datagram jinému hostitelskému počítači, dokáže z IP adresy
příjemce snadno rozpoznat, zda tento leží ve stejné dílčí
síti či nikoli. Pokud ano (nachází-li se například v téže
síti typu Ethernet), pošle mu odesilatel svůj datagram
přímo. Pokud se ale příjemce nachází v jiné síti, pošle
odesilatel svůj datagram nejbližší bráně (resp. IP
směrovači, viz minule) ve "své" síti. Na ní je pak
rozhodnout, kudy datagram poslat dále. Podstatné přitom je,
že při svém rozhodování vychází brána pouze z té části IP
adresy konečného příjemce, která vyjadřuje příslušnou
cílovou síť. V prvním přiblížení si lze představit, že každá
brána má své směrovací tabulky ve formě seznamu dvojic
<síť,brána>, a podle cílové sítě příjemce si v nich najde,
které bráně má příslušný datagram poslat dále. Zbývající
část IP adresy příjemce, která vyjadřuje adresu
hostitelského počítače v rámci cílové sítě, pak využije až
ta brána (poslední v řetězci), která již leží v příslušné
cílové síti, a která pak datagram pošle přímo jeho konečnému
adresátovi.
Třídy IP adres
32 bitů, vyhrazených pro IP adresy, je tedy nutné
vhodným způsobem rozdělit na dvě části, tak aby tyto mohly
vyjadřovat adresu sítě a adresu hostitelského počítače
v rámci této sítě. Otázkou ovšem je, jak toto rozdělení
provést. Filosofie síťového modelu TCP/IP totiž předpokládá,
že jednotlivými dílčími sítěmi mohou být jak "malé" sítě
s několika málo uzly (hostitelskými počítači), tak i "velké"
sítě s tisíci i desítkami tisíc uzlů. Třicet dva bitů, které
jsou k dispozici, pak nelze rozdělit jediným způsobem, který
by pamatoval na sítě s velkým počtem uzlů, a současně měl
i dostatečně velkou rezervu pro rychle rostoucí počet
jednotlivých dílčích sítí.
Řešení, uplatněné u IP adres, pak spočívá v zavedení
tří různých způsobů rozdělení 32 bitů na dvě části, resp.
v zavedení tří různých formátů IP adres: jednoho pro dílčí
sítě s velkým počtem uzlů resp. hostitelských počítačů,
jednoho pro "středně velké" sítě, a jednoho pro "malé" sítě,
s relativně malým počtem uzlů. Tyto formáty, označované jako
třídy A, B a C (class A, B and C), ukazuje obrázek 44.2.
 |
Obr. 44.2.: Třídy IP adres
Adresy třídy A mají pro adresu sítě vyhrazeno 7 bitů, a
pro adresu hostitelského počítače 24 bitů. Adres této třídy
je tedy relativně velmi málo, počítají však s velmi velkým
počet uzlových počítačů. Jsou určeny pro velké rozlehlé
sítě, jako např. síť ARPAnet (viz 39. díl seriálu), která se
stala zárodkem sítě Internet, pro velké veřejné sítě,
případně i velké podnikové sítě. Adresy třídy B, které
připouští až 65534 uzlů (hostitelských počítačů), jsou
určeny pro středně velké sítě, např. pro univerzitní sítě,
podnikové sítě apod., a používají se též v souvislosti
s tzv. subnetting-em (podsítěmi, viz dále). Adresy třídy C,
které počítají jen se 254 uzly, jsou pak určeny pro všechny
ostatní sítě.
Symbolický zápis IP adres
32-bitové IP adresy je samozřejmě možné vyjadřovat jako
celá dvojková čísla. Pro člověka to ale není příliš
srozumitelné, a tak se pro symbolický zápis IP adres zavedla
vhodná konvence, označovaná jako tečkovaná desítková notace
(dotted decimal notation). Spočívá v tom, že 32 bitů IP
adresy se rozdělí na čtyři části po osmi bitech (oktety),
a každá z těchto částí se pak vyjádří jako celé desítkové
číslo bez znaménka (s použitím tečky jako oddělovače
jednotlivých částí). Například nepříliš mnemonický tvar
10000000 00000001 00000010 00000011 tak dostává přehlednější
podobu: 128.1.2.3. Význam desítkové notace ilustruje též
tabulka 44.3.
| první oktet adresy | síťová část adresy | část adresy, představující relativní adresu uzlu v rámci sítě | maximální počet hostitelských počítačů |
třída A | 1-126 | p | q.r.s | 16777214 |
třída B | 128-191 | p.q | r.s | 65534 |
třída C | 192-223 | p.q.r | s | 254 |
Tabulka 44.3.: Desítková tečkovaná notace a IP adresy (je-li p.q.r.s obecný tvar IP adresy)
Jak volit IP adresy?
V principu je možné volit IP adresy dle vlastního
uvážení. Je ovšem nutné dbát na dodržení jedné zásadní
podmínky, a tou je jednoznačnost. Nesmí se totiž stát, aby
se v jakémkoli konglomerátu vzájemně propojených sítí adresy
dvou různých sítí shodovaly (přesněji ty části IP adres,
které vyjadřují adresu sítě) - jinak totiž bude mít
mechanismus směrování velké problémy.
U každé počítačové sítě či soustavy sítí, budované
pomocí protokolů TCP/IP, je však prakticky jen otázkou času,
kdy je jejich provozovatelé budou chtít připojit do dnes již
celosvětové sítě Internet (viz např. CW 7/92). Také zde
samozřejmě platí zásada jednoznačnosti adres, takže všechny
nově připojované sítě musí mít dosud nepoužité adresy.
V Internetu proto existuje centrální autorita (konkrétně:
DDN Network Information Center, SRI International, 333
Rawenswood Avenue, Menlo Park, California 94025), která se
stará o hospodaření s IP adresami, a přiděluje je všem
potenciálním zájemcům (přesněji: přiděluje tu část IP adres,
která představuje adresu sítě, zatímco zbývající část IP
adres si volí žadatel. Ve skutečnosti tak přiděluje vlastně
celé skupiny IP adres se shodnou první částí). Skutečné
připojení k síti Internet přitom vůbec není podmínkou pro
přidělení adresy, takže je naopak dobré si přidělení adresy
vyžádat co nejdříve, pokud možno ještě před zprovozněním
jakékoli sítě na bázi TCP/IP (a tím se vyhnout pozdější
změně IP adres, která je samozřejmě možná, ale obvykle
značně pracná).
V našich zeměpisných šířkách však není nutné se pro
přidělení IP adresy obracet až do USA. DDN NIC, která adresy
spravuje, totiž delegovala svou pravomoc v přidělování IP
adres pro oblast ČSFR výpočetnímu centru pražské VŠCHT
(Technická 5, 166 28 Praha 6).
Subnetting
Jak jsme si již naznačili výše, při směrování v TCP/IP
sítích se vychází pouze z té části IP adresy, která
představuje adresu (dílčí) sítě. Výhodou jsou neskonale
menší směrovací tabulky, než jaké by musely být v případě
směrování podle celých IP adres.
 |
Obr. 44.4.: Představa členění na podsítě (tzv.subnetting)
Přesto se ale v síti Internet záhy ukázalo, že i tak
vychází směrovací tabulky větší, než by bylo vhodné. Proto
se zpětně do TCP/IP prosadil mechanismus, označovaný
v angličtině jako subnetting, který se snaží další nárůst
směrovacích tabulek omezit.
Myšlenku tohoto mechanismu si můžeme ukázat na příkladu
organizace, připojené k síti Internet, která provozuje více
dílčích sítí, a pro každou z nich má přidělenu samostatnou
adresu (nejspíše třídy C). Každá z těchto dílčích sítí je
pak ovšem "samostatně viditelná" i z vně příslušné
organizace, a jako se samostatnou je s ní také nakládáno
- ve směrovacích tabulkách každá zabírá samostatnou položku.
Kdyby se ovšem příslušná organizace sama postarala
o potřebné směrování mezi svými sítěmi, a navenek
vystupovala jako jediný celek, mohla by mít přidělenu jen
jednu síťovou adresu (například třídy B místo více síťových
adres třídy C), a ve směrovacích tabulkách by tak zabírala
jen jednu položku. Všechny dílčí sítě, patřící příslušné
organizaci, by tak navenek vystupovaly jako síť jediná,
s jedinou společnou adresou (přesněji: s IP adresami, které
se shodují v části, vyjadřující adresu sítě). Skutečné
vnitřní členění této navenek jednotné sítě by pak bylo plně
v kompetenci příslušné organizace. Ta by také musela změnit
přesný způsob, jakým sama interpretuje IP adresy svých
hostitelských počítačů, a to podle obrázku 44.1. b/ - tu
část, která z vnějšího pohledu představuje číslo resp.
adresu hostitelského počítače, by pro sebe musela rozdělit
na dvě části - číslo resp. adresu své dílčí sítě (podsítě,
neboli subnet, odsud subnetting), a na číslo resp. adresu
hostitelského počítače v rámci této podsítě.
V nejjednodušším případě adresy třídy B tak, že třetí oktet
bude považovat za číslo podsítě, a čtvrtý za číslo uzlu
(hostitelského počítače) - viz obrázek 44.4. V obecném
případě pak podle tzv. masky podsítě (subnet mask), viz
obrázek 44.1. a/, která obě části IP adresy nově definuje.
zpět do archivu článků | rejstřík |
předchozí díl |
následující díl
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://ksi.ms.mff.cuni.cz/~peterka/archiv/copyleft.htm