VyÜlo v t²denφku: COMPUTERWORLD
╚φslo:33/92
RoΦnφk:1992
Rubrika/kategorie: Co je Φφm ... v poΦφtaΦov²ch sφtφch
Dφl:44

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ßzek 44.1.
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ß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.s16777214
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ßzek 44.4.
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://archiv.czech.net/copyleft.htm