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 (53):
Protokol IP
V p°edchßzejφcφch dφlech naÜeho serißlu jsme se
zab²vali adresami a zp∙sobem adresovßnφ na r∙zn²ch ·rovnφch
- tedy fyzick²mi adresami, IP adresami i symbolick²mi jmΘny,
a dßle otßzkou sm∞rovßnφ. Nynφ se ji₧ budeme v∞novat
konkrΘtnφm mechanism∙m p°enos∙ v TCP/IP sφtφch.
Vra¥me se vÜak jeÜt∞ jednou ke 42. dφlu, ve kterΘm jsme
si naznaΦili celkovou filosofii sφ¥ovΘho modelu TCP/IP,
a srovnßvali ji s filosofiφ referenΦnφho modelu ISO/OSI. Zde
jsme si uvedli, ₧e sφ¥ov² model TCP/IP vychßzφ
z p°edpokladu, ₧e zajiÜt∞nφ spolehlivosti p°i p°enosu dat je
spφÜe otßzkou koncov²ch ·Φastnφk∙, a nikoli otßzkou
komunikaΦnφ podsφt∞. ╪eΦeno jin²mi slovy: sφ¥ov² model
TCP/IP za°azuje mechanismy pro zajiÜt∞nφ spolehlivosti
p°enos∙ a₧ do vrstvy transportnφ, a nikoli do vrstvy sφ¥ovΘ
(resp. tzv. IP vrstvy). Od tΘto vrstvy oΦekßvß pouze
jednoduchou p°enosovou slu₧bu nespojovanΘho (connectionless)
charakteru, kterß by sice nem∞la samovoln∞ ztrßcet p°enßÜenΘ
pakety, ale na druhΘ stran∞ zase nenφ povinna podnikat ₧ßdnΘ
nßpravnΘ akce v p°φpad∞, ₧e se n∞kter² paket skuteΦn∞
|
Obr. 53.1.: Slu₧by, poskytovanΘ na jednotliv²ch ·rovnφch sφ¥ovΘho modelu TCP/IP
ztratφ, nebo kdy₧ jej tato vrstva nenφ z objektivnφch d∙vod∙
schopna doruΦit - nap°φklad kv∙li p°epln∞n²m vyrovnßvacφm
pam∞tem, kv∙li v²padku spojenφ atd. Takovouto nespolehlivou
nespojovanou slu₧bu vÜak musφ sφ¥ovß vrstva poskytovat
jednotn²m zp∙sobem v rßmci celΘ soustavy vzßjemn∞
propojen²ch sφtφ (tj. v rßmci celΘho internetu, s mal²m
"i"), bez ohledu na to, zda jsou data ve skuteΦnosti
p°enßÜena po lokßlnφ sφti typu Ethernet, po dvoubodovΘm
spoji, ve°ejnou datovou sφtφ Φi jin²m zp∙sobem.
Nad touto nespolehlivou nespojovanou p°enosovou slu₧bou
na ·rovni sφ¥ovΘ vrstvy pak TCP/IP model buduje spolehlivou
transportnφ slu₧bu, a nad nφ pak r∙znΘ druhy aplikaΦnφch
slu₧eb - viz obrßzek 53.1.
IP, neboli Internet Protocol
V∞nujme se nynφ zp∙sobu, jak²m je v TCP/IP modelu
implementovßna v²Üe zmφn∞nß nespolehlivß a nespojovanß
p°enosovß slu₧ba na ·rovni sφ¥ovΘ vrstvy. Definuje ji
protokol, kter² se pln²m jmΘnem naz²vß Internet Protocol,
ale nejΦast∞ji je oznaΦovßn zkratkou IP.
|
Obr. 53.2.: P°edstava IP datagram∙ a datov²ch rßmc∙
IP protokol definuje zßkladnφ jednotku dat, kterß je
soustavou TCP/IP sφtφ p°enßÜena na ·rovni sφ¥ovΘ vrstvy,
tzv. Internet datagram, zkrßcen∞ IP datagram, a jeho p°esn²
vnit°nφ formßt. Definuje takΘ zp∙sob, jak²m majφ b²t
jednotlivΘ IP datagramy sm∞rovßny, a toto sm∞rovßnφ pak
p°φsluÜn² IP software takΘ zajiÜ¥uje. Krom∞ toho IP protokol
takΘ podrobn∞ji definuje i dalÜφ aspekty poskytovanΘ
nespolehlivΘ a nespojovanΘ p°enosovΘ slu₧by - nap°φklad
podmφnky, za jak²ch mohou b²t p°enßÜenΘ pakety zahazovßny,
kdy majφ b²t generovßna chybovß hlßÜenφ a jakß tato hlßÜenφ
majφ b²t.
IP datagram a jeho formßt
Podobn∞ jako ka₧d² jin² druh paketu Φi rßmce, mß i IP
datagram dv∞ zßkladnφ Φßsti: °φdφcφ Φßst, tvo°enou hlaviΦkou
datagramu, a datovou Φßst. Jak naznaΦuje obrßzek 53.2., p°i
vlastnφm p°enosu se tento datagram vklßdß (jako data) do
datovΘ Φßsti rßmce, se kter²m pracuje bezprost°edn∞ ni₧Üφ
|
Obr. 53.3.: Formßt hlaviΦky IP datagramu
vrstva - vrstva sφ¥ovΘho rozhranφ. V hlaviΦce jsou pak r∙znΘ
°φdφcφ informace, pot°ebnΘ pro doruΦenφ datagramu resp.
rßmce - v p°φpad∞ hlaviΦky rßmce jde mj. o fyzickou adresu
skuteΦnΘho odesilatele a bezprost°ednφho p°φjemce, zatφmco
v hlaviΦce IP datagramu jde o IP adresy koncovΘho p°φjemce
a p∙vodnφho odesilatele. Jeliko₧ v datovΘm rßmci mohou b²t
v principu p°enßÜeny i jinΘ druhy paket∙, musφ zde b²t
vyjßd°eno takΘ to, o jak² konkrΘtnφ druh paketu se v danΘm
p°φpad∞ jednß (nap°φklad v sφtφch typu Ethernet se druh
paketu udßvß pomocφ dvoubytovΘ polo₧ky v hlaviΦce rßmce,
a IP datagramy zde majφ vyhrazen k≤d 0800H). Podobn∞ je tomu
i na ·rovni paketu, resp. IP datagramu - takΘ v jeho
hlaviΦce musφ b²t vyjßd°eno, jak² je v²znam obsahu datovΘ
Φßsti. V p°φpad∞ IP datagramu jde o jednobytovou polo₧ku,
udßvßjφcφ Φφslo protokolu na ·rovni transportnφ vrstvy,
kterΘmu obsah IP datagramu pat°φ (polo₧ka PROTOCOL, viz obr.
53.3.).
Maximßlnφ dΘlka IP datagramu
KonkrΘtnφ formßt hlaviΦky IP datagramu ukazuje obrßzek
53.3. Za zmφnku stojφ nap°φklad velikost polo₧ky TOTAL
LENGTH, kterß udßvß celkovou dΘlku IP datagramu (tj. jeho
hlaviΦky i datovΘ Φßsti), m∞°enou v oktetech (tj. v
osmibitov²ch bytech). Jeliko₧ tato polo₧ka mß rozsah 16
bit∙, omezuje tφm maximßlnφ mo₧nou velikost IP datagramu na
65 535 oktet∙.
Doba ₧ivota
DalÜφ zajφmavou polo₧kou je jednobytovß polo₧ka TIME TO
LIVE. Ta udßvß, jak dlouho (m∞°eno v sekundßch) se dan² IP
datagram m∙₧e nachßzet v soustav∞ vzßjemn∞ propojen²ch sφtφ.
Tato polo₧ka je jakousi pojistkou proti nekonzistentnostem
ve sm∞rovacφch tabulkßch, dφky kter²m by mohlo dojφt
k situaci, ₧e by IP datagram byl sm∞rovßn v kruhu, a obφhal
v n∞m nekoneΦn∞ dlouho. Tomu zabra≥uje prßv∞ tato polo₧ka,
jejφ₧ obsah je ka₧dß mezilehlß brßna povinna sni₧ovat podle
toho, jak dlouho se v nφ p°φsluÜn² datagram "zdr₧φ". Jakmile
dojde k vynulovßnφ polo₧ky TIME TO LIVE (doslova: doba
₧ivota), je podle pravidel IP protokolu brßna oprßvn∞na dan²
IP datagram zahodit.
Fragmentace datagram∙
SkuteΦnost, ₧e IP protokol musφ b²t schopen p°enßÜet
svΘ datagramy prost°ednictvφm r∙zn²ch druh∙ p°enosov²ch
cest, mß n∞kterΘ v²znamnΘ d∙sledky. Nap°φklad velikost
datov²ch rßmc∙, p°enßÜen²ch na ·rovni vrstvy sφ¥ovΘho
rozhranφ TCP/IP modelu, je zßvislß na konkrΘtnφ p°enosovΘ
technologii, pomocφ kterΘ je danß dφlΦφ sφ¥ realizovßna. V
p°φpad∞ lokßlnφch sφtφ typu Ethernet je to 1500 oktet∙,
zatφmco nap°φklad sφt∞ Token Bus p°ipouÜtφ rßmce a₧ do
velikosti 8191 oktet∙, a ve°ejnΘ datovΘ sφt∞ na bßzi
doporuΦenφ X.25 pracujφ s rßmci a₧ do velikosti 4096 oktet∙.
N∞kterΘ modernφ p°enosovΘ technologie vÜak pracujφ s mnohem
menÜφmi rßmci - nap°φklad jen 128 oktet∙ Φi jeÜt∞ mΘn∞.
Protokol IP se ale dost dob°e nem∙₧e p°izp∙sobit nejmenÜφmu
mo₧nΘmu formßtu rßmce, aby do n∞j mohl v₧dy vlo₧it sv∙j IP
datagram cel². Proto musφ poΦφtat s mo₧nostφ fragmentace
(viz tΘ₧ 41. dφl naÜeho serißlu), p°i kterΘ pro pot°eby
p°enosu dochßzφ k rozd∞lenφ p∙vodnφho datagramu na n∞kolik
dφlΦφch fragment∙ - tak velk²ch, aby se ji₧ veÜly celΘ do
t∞ch rßmc∙, kterΘ je p°φsluÜnß sφ¥ schopna skuteΦn∞ p°enΘst
- viz obr. 53.4. Jak jsme si ji₧ takΘ naznaΦili ve 41. dφlu,
jde p°itom o tzv. netransparentnφ fragmentaci, p°i kterΘ
jednotlivΘ fragmenty sklßdß do p∙vodnφho celku a₧ jejich
koncov² p°φjemce. Ten pak k tomu vyu₧φvß polo₧ky
IDENTIFICATION, FLAGS a FRAGMENT OFFSET jednotliv²ch
fragment∙.
NepovinnΘ Φßsti IP datagram∙
|
Obr. 53.4.: P°edstava fragmentace
Polo₧ka IP Options, kterß v hlaviΦce IP datagramu
nßsleduje IP adresu koneΦnΘho adresßta, je polo₧kou
nepovinnou. Je urΦena p°edevÜφm pro pot°eby testovßnφ
a lad∞nφ. Pomocφ tΘto polo₧ky, kterß mß prom∞nnou dΘlku, je
nap°φklad mo₧nΘ zaznamenßvat cestu, kterou je p°φsluÜn²
datagram postupn∞ p°enßÜen - co₧ je neocenitelnΘ zvlßÜt∞ pro
pot°eby sprßvy sφtφ. Krom∞ IP adres bran, kter²mi datagram
postupn∞ prochßzφ, je mo₧nΘ v tΘto polo₧ce zaznamenßvat
i Φas, kdy datagram jednotliv²mi brßnami prochßzφ. DalÜφm
mechanismem, velmi u₧iteΦn²m pro sprßvu vzßjemn∞ propojen²ch
sφtφ, je pak mo₧nost explicitn∞ p°edepsat v tΘto polo₧ce
trasu, kterou mß b²t IP datagram doruΦen.
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