V tΘto Φßsti serißlu se budeme zab²vat protokoly a slu₧bami sφ¥ovΘ vrstvy. P°ipome≥me si nejprve, ₧e ·lohou sφ¥ovΘ vrstvy je poskytnout spojenφ systΘm∙m, kterΘ spolu hodlajφ komunikovat. Spojenφ musφ b²t nezßvislΘ na pou₧itΘm p°enosovΘm mΘdiu a technologiφch pou₧it²ch v p°enosov²ch okruzφch a podsφtφch, jejich₧ prost°ednictvφm se p°enos uskuteΦ≥uje. Zßkladnφ slu₧bou, kterou sφ¥ovß vrstva poskytuje, je transparentnφ p°enos dat mezi dv∞ma komunikujφcφmi objekty.
K dalÜφm slu₧bßm, kterΘ sφ¥ovß vrstva poskytuje, pat°φ sφ¥ovΘ adresovßnφ, zahajovßnφ, vytvß°enφ a ukonΦovßnφ sφ¥ov²ch spojenφ, identifikace koncov²ch bod∙ sφ¥ov²ch spojenφ, oznamovßnφ vznikl²ch chyb Φi dohadovßnφ kvality slu₧by. Nßpl≥ slu₧eb, pou₧itΘ protokoly a konvence se samoz°ejm∞ liÜφ v zßvislosti na pou₧itΘ sφ¥ovΘ technologii. Vzhledem k rozsahu serißlu se vÜak omezφme pouze na tu nejrozÜφ°en∞jÜφ; TCP/IP pou₧itou v celosv∞tovΘ sφti internet.
P°enos dat a sm∞rovßnφ
P°enos dat od odesφlatele k p°φjemci probφhß v ka₧dΘ sφti po urΦitΘ trase. Ta je, a₧ na v²jimky v p°φpad∞ velmi jednoduch²ch sφtφ, tvo°ena soustavou dφlΦφch sφtφ vzßjemn∞ propojen²ch prost°ednictvφm rozliΦn²ch za°φzenφ (viz obr. 1). JednotlivΘ dφlΦφ sφt∞ se mohou liÜit nejenom p°enosovou rychlostφ, ale takΘ pou₧itou infrastrukturou, technologiemi pou₧it²mi k p°enosu a dalÜφmi vlastnostmi. Mezi odesφlatelem a p°φjemcem m∙₧e souΦasn∞ existovat n∞kolik r∙zn²ch cest, tras, po nich₧ lze data p°enßÜet. Vlastnosti jednotliv²ch tras se mohou v²razn∞ liÜit jak z hlediska propustnosti, tak i z hlediska spolehlivosti Φi dalÜφch charakteristik p°enosu. Za°φzenφ propojujφcφ jednotlivΘ dφlΦφ sφt∞ oznaΦujeme jako mezilehlΘ systΘmy (Intermediate System, IS). ┌kolem mezilehl²ch systΘm∙ obecn∞ je zabezpeΦit p°enos dat mezi jednotliv²mi, vzßjemn∞ odliÜn²mi dφlΦφmi sφt∞mi. Trasu paketu tedy tvo°φ soustava jednotliv²ch dφlΦφch sφtφ, tzv. subsφtφ, a mezilehl²ch systΘm∙. V²b∞r trasy na ·rovni t°etφ vrstvy OSI modelu je oznaΦovßn jako sm∞rovßnφ. Sm∞rovßnφ m∙₧e b²t bu∩ statickΘ, co₧ znamenß, ₧e zvolenß trasa je pou₧φvßna po celou dobu p°enosu dat, nebo dynamickΘ, kdy je trasa vybφrßna individußln∞ pro ka₧d² p°edßvan² paket. Na pou₧itΘm sm∞rovßnφ jsou potom zalo₧eny dv∞ hlavnφ p°enosovΘ slu₧by, o nich₧ jsme ji₧ hovo°ili: p°enosovß slu₧ba se spojenφm (Connection-Oriented Network Service, CONS) a p°enosovß slu₧ba bez spojenφ (Connection-Less Network Service, CNLS).
V p°φpad∞ p°enosu se spojenφm, oznaΦovanΘm takΘ jako spolehliv² nebo zabezpeΦen² p°enos, se pou₧φvß statickΘho sm∞rovßnφ. Znamenß to, ₧e se nejd°φve vytvo°φ trasa mezi ob∞ma komunikujφcφmi objekty, po nφ₧ se pozd∞ji p°enßÜejφ datovΘ pakety. Spolehliv² p°enos se proto sklßdß ze t°φ hlavnφch fßzφ: navßzßnφ spojenφ, p°enosu dat a ukonΦenφ spojenφ. Charakteristiky a pr∙b∞h jednotliv²ch fßzφ mnohdy zßvisejφ na dalÜφch parametrech Φi volbßch, na nich₧ se mohou komunikujφcφ objekty p°edem dohodnout. Pro zv²Üenφ pravd∞podobnosti detekce ztrßty paketu se pou₧φvß metody potvrzovßnφ p°ijat²ch datov²ch paket∙. Potvrzovßnφ, jak sßm nßzev napovφdß, spoΦφvß v tom, ₧e p°φjemce potvrdφ odesφlateli bezchybn² p°enos ka₧dΘho p°ijatΘho paketu Φi jejich skupiny.
P°enosovß slu₧ba bez spojenφ, oznaΦovanß takΘ jako datagramovß, nespolehlivß Φi nezabezpeΦenß p°enosovß slu₧ba, je prav²m opakem slu₧by spolehlivΘ. Pou₧φvß dynamickΘho sm∞rovßnφ. P°enos paketu tak probφhß bez navazovßnφ spojenφ a potvrzovßnφ p°φjmu paket∙. Trasa, po nφ₧ jsou jednotlivΘ pakety (zde oznaΦovanΘ jako datagramy) doruΦovßny od odesφlatele k p°φjemci, nenφ p°edem definovßna a m∙₧e se datagram od datagramu dynamicky m∞nit. Äßdnß obecnß pravidla vÜak ani nezakazujφ pou₧φvat souΦasn∞ obou druh∙ p°enosov²ch slu₧eb ani nestanovujφ jejich vzßjemn² pom∞r.
Protokolovß sada TCP/IP
Protokolovß sada TCP/IP (Transport Control Protocol/Internet Protocol) vznikala v rßmci v²zkumn²ch pracφ zahßjen²ch americk²m ministerstvem obrany (USA Department of Defence) na pokusnΘ akademickΘ sφti ARPANet, kterß byla p°edch∙dcem dneÜnφ sφt∞ internet. Prßce na vytvß°enφ protokol∙ TCP/IP byly ukonΦeny v roce 1979 a do roku 1982 probφhalo na sφti ARPANet jejich ov∞°ovßnφ a testovßnφ. Vzhledem k tomu, ₧e v²voj protokolovΘ sady TCP/IP probφhal jeÜt∞ p°ed vznikem referenΦnφho modelu OSI, nenφ s nφm vnit°n∞ zcela kompatibilnφ.
Jejφ zaΦlen∞nφ do struktury referenΦnφho modelu OSI je znßzorn∞no na obr. 2. Na rozdφl od OSI je model TCP/IP Φty°vrstv². Nejni₧Üφ vrstva, vrstva sφ¥ovΘho rozhranφ, zajiÜ¥uje fyzickou komunikaci uzl∙ sφt∞. Integruje v sob∞ souΦasn∞ slu₧by fyzickΘ a spojovΘ vrstvy OSI modelu. DalÜφ vrstva, internet, zabezpeΦuje slu₧by, kterΘ v OSI modelu vykonßvß prßv∞ vrstva t°etφ, sφ¥ovß. ZajiÜ¥uje sφ¥ovΘ adresovßnφ a nezabezpeΦenou datagramovou v²m∞nu paket∙ prost°ednictvφm protokolu IP (Internet Protocol). Mezilehl²mi prvky IP sφt∞ jsou oznaΦovßny jako IP sm∞rovaΦe. Slu₧by dalÜφ, transportnφ vrstvy odpovφdajφ slu₧bßm transportnφ vrstvy referenΦnφho modelu OSI. Transportnφ vrstva zajiÜ¥uje jak spolehliv² p°enos dat protokolem TCP (Transport Control Protocol), tak i nespolehliv² datagramov² p°enos u₧itφm protokolu UDP (User Datagram Protocol). AplikaΦnφ vrstva sady TCP/IP pak zahrnuje slu₧by vÜech vyÜÜφch (relaΦnφ, prezentaΦnφ a aplikaΦnφ) vrstev modelu OSI.
Protokol IP
Jak u₧ bylo °eΦeno, pracuje protokol IP na ·rovni sφ¥ovΘ vrstvy OSI modelu. Jeho zßkladnφ funkcφ je sm∞rovßnφ a p°enos datov²ch paket∙ p°edan²ch vyÜÜφmi vrstvami (TCP/UDP) od zdrojovΘho uzlu (odesφlatele) k cφlovΘmu uzlu (p°φjemce) sφtφ tvo°enou v∞tÜφm poΦtem vzßjemn∞ propojen²ch dφlΦφch sφtφ a oznaΦovanou jako IP Internet (IP intersφ¥). Z hlediska slu₧eb definovan²ch na sφ¥ovΘ vrstv∞ poskytuje IP protokol nezabezpeΦenou datagramovou slu₧bu bez vytvß°enφ spojenφ a potvrzovßnφ p°φjmu paket∙. Tyto slu₧by jsou nßsledn∞ v protokolovΘ sad∞ TCP/IP implementovßny ve vrstvßch vyÜÜφch. Pakety pou₧φvanΘ IP protokolem jsou oznaΦovßny jako IP pakety.
Protokol IP pracuje se dv∞ma r∙zn²mi typy uzl∙ sφt∞: koncovΘ uzly (Host) a IP sm∞rovaΦe (IP Router). Zatφmco koncovΘ uzly vysφlajφ a p°ijφmajφ pakety, sm∞rovaΦe zajiÜ¥ujφ p°enos a sm∞rovßnφ paket∙ mezi jednotliv²mi subsφt∞mi. Pro p°enosovou slu₧bu pak IP protokol vykonßvß tyto funkce:
adresovßnφ koncov²ch uzl∙ a dφlΦφch sφtφ v IP intersφti;
vytvß°enφ IP paket∙ z paket∙ protokol∙ vyÜÜφch vrstev;
sm∞rovßnφ IP paket∙ intersφtφ;
fragmentace IP paket∙.
Zab²vejme se nynφ jednotliv²mi Φinnostmi vykonßvan²mi protokolem IP podrobn∞ji.
Adresovßnφ v sφtφch IP
Principy adresovßnφ v prost°edφ IP intersφt∞ vychßzelo z po₧adavk∙ na efektivnφ sm∞rovßnφ dat v rozsßhl²ch sφtφch. Proto bylo pou₧ito adresovacφ schΘma, kterΘ umo₧≥uje vytvß°enφ hierarchickΘ adresovΘ struktury uzl∙, logicky rozd∞lenΘ na jednotlivΘ dφlΦφ subsφt∞. IP adresu, jak se hierarchickß adresa protokolu IP naz²vß, tvo°φ dv∞ Φßsti: adresa sφt∞ a adresa uzlu (viz obr. 3). DΘlka IP adresy je 32 bit∙, tj. 4 bajty. Symbolicky se adresa zapisuje ve tvaru posloupnosti Φty° dekadick²ch Φφsel odd∞len²ch teΦkami. Tv∙rci protokolu IP vychßzeli z p°edpokladu, ₧e bude t°eba adresovat sφt∞ r∙znΘho rozsahu o r∙znΘm poΦtu uzl∙, a definovali t°i zßkladnφ t°φdy IP adres. T°φdy jsou oznaΦovßny A, B a C a liÜφ se poΦtem adresovateln²ch sφtφ (tj. poΦtem mo₧n²ch sφ¥ov²ch adres) a poΦtem uzl∙, kterΘ lze adresovat v rßmci ka₧dΘ sφt∞. Je z°ejmΘ, ₧e p°i konstantnφ dΘlce IP adresy jsou poΦty sφtφ a poΦty v nich adresovateln²ch uzl∙ nep°φmo ·m∞rnΘ. Adresy sφtφ jsou p°id∞lovßny centrßln∞ jednotliv²mi sprßvci IP adres, a potΘ p°erozd∞lovßny poskytovateli slu₧eb internetu. Adresy uzl∙ p°id∞luje sprßvce sφt∞. K hlavnφm sprßvc∙m IP adres pat°φ American Registry for Internet Numbers (ARIN) ve Spojen²ch stßtech, RΘsau IP EuropΘene (RIPE) v Evrop∞ Φi Asia Pacific Network Information Center (APNIC) v Asii.
JednotlivΘ t°φdy se liÜφ hodnotou prvnφch dvou bit∙ IP adresy a nßslednou dΘlkou tΘ jejφ Φßsti, kterß tvo°φ adresu sφt∞ (viz obr. 4). Krom∞ t°φd A, B a C se v praxi pou₧φvajφ jeÜt∞ n∞kterΘ dalÜφ specißlnφ adresovΘ t°φdy a adresy s p°edem urΦen²m v²znamem. Jde nap°. o t°φdu D, kterß slou₧φ pro tzv. skupinovou adresaci, a t°φdu E, pou₧φvanou pro experimentßlnφ ·Φely. Vlastnosti jednotliv²ch adresov²ch t°φd a specißlnφch adres shrnuje tabulka 1.
Vzhledem k neefektivnφmu rozd∞lenφ adresovΘho prostoru IP adres spoΦφvajφcφm jak v omezenΘm poΦtu uzl∙ adresovateln²ch ve t°φd∞ C, tak naopak v jejich nevyΦerpatelnΘ zßsob∞ ve t°φd∞ A se pozd∞ji zaΦal pou₧φvat adresovacφ mechanismus oznaΦovan² jako podsφ¥ovßnφ (Subnetting). Podsφ¥ovßnφ spoΦφvß v tom, ₧e Φßst adresovΘho prostoru, kterß je urΦena pro adresovßnφ uzl∙, se rozd∞lφ na dv∞ Φßsti: adresu podsφt∞ a vlastnφ adresu uzlu. Pro adresu podsφt∞ se vyu₧φvß souvislΘho pole bit∙ zaΦφnajφcφho zleva od adresy sφt∞, p°iΦem₧ je velmi d∙le₧itΘ mφt na z°eteli, ₧e vlastnφ adresa sφt∞ je nedotknutelnß a nesmφ b²t nijak m∞n∞na Φi modifikovßna. Pole adres uzl∙ zaΦφnß od nejvyÜÜφho (nejprav∞jÜφho) bitu IP adresy. Formßt IP adresy pou₧φvajφcφ podsφ¥ovßnφ je naznaΦen na obr. 5.
Pou₧itφ podsφ¥ovßnφ s sebou samoz°ejm∞ p°inßÜφ dalÜφ problΘmy. Zatφmco v p°φpad∞ adresovßnφ bez pou₧itφ podsφ¥ovßnφ je z hodnoty prvΘho bajtu IP adresy z°ejmΘ, jakß je jejφ struktura, tj. kterΘ t°φdy adresa je, jakou dΘlku a hodnotu majφ jejφ sφ¥ovß adresa a adresa uzlu, nelze v p°φpad∞ podsφ¥ovßnφ tyto ·daje zjistit bez pou₧itφ dalÜφch dopl≥ujφcφch informacφ. K urΦenφ jednotliv²ch polφ IP adresy s podsφ¥ovßnφm se proto pou₧φvß tzv. maska podsφt∞ (Subnet Mask). Jde o Φφseln² ·daj stejnΘ dΘlky, jako je dΘlka IP adresy, kter² obsahuje hodnoty 1 v bitech urΦujφcφch adresu sφt∞ a podsφt∞ a hodnoty 0 v bitech urΦujφcφch adresu uzlu. Implicitnφ masky podsφtφ pro jednotlivΘ t°φdy bez podsφ¥ovßnφ jsou:
pro t°φdu A - 255.0.0.0
pro t°φdu B - 255.255.0.0
pro t°φdu C - 255.255.255.0
P°i podsφ¥ovßnφ se vÜak nedß pou₧φt pro adresu podsφt∞ libovoln² poΦet bit∙. Jednak musφ b²t zajiÜt∞na mo₧nost adresovat alespo≥ n∞kolik uzl∙ sφt∞ a naopak musφ b²t naprosto jednoznaΦn∞ mo₧nΘ urΦit, zda jde o adresu sφt∞, Φi podsφt∞. Pro adresovßnφ uzl∙ se tedy jako adresa podsφt∞ nepou₧φvajφ poslednφ dva bity IP adresy, pro zajiÜt∞nφ jednoznaΦnosti se jako adresa podsφt∞ nevyu₧φvß prvnφ bit pole podsφt∞, tj. bit bezprost°edn∞ nßsledujφcφ za adresou sφt∞. Adresa podsφt∞ mφvß tedy dΘlku alespo≥ dva bity, avÜak nejv²Üe o dva mΘn∞, ne₧ je dΘlka celΘho p∙vodnφho zb²vajφcφho pole pro adresovßnφ uzl∙ tak, aby dva poslednφ bity tohoto pole z∙staly k dispozici pro adresovßnφ alespo≥ Φty° uzl∙. Krom∞ toho by nem∞ly adresu podsφt∞ tvo°it samΘ nuly, proto₧e ne vÜechna sφ¥ovß za°φzenφ, p°edevÜφm sm∞rovaΦe, nemusejφ b²t nakonfigurovßna tak, aby takovouto adresu interpretovala sprßvn∞. Z d∙vodu nebezpeΦφ kolize s univerzßlnφ adresou by rovn∞₧ nem∞la adresa podsφt∞ obsahovat samΘ jedniΦky.
IP verze 6
Bez ohledu na skuteΦn∞ obrovsk² rozsah IP adres zaΦφnß b²t v souvislosti se stßle se rozÜi°ujφcφm vyu₧φvßnφm sφt∞ internet v adresovΘm prostoru pon∞kud t∞sno. Proto byla vytvo°ena novß verze IP protokolu, oznaΦovanß jako IP verze 6. Hlavnφ rozdφl oproti IP verze 4, o n∞m₧ jsme a₧ dosud hovo°ili, spoΦφvß ve zv∞tÜenφ adresovΘho rozsahu IP adresy z p∙vodnφch 32 na 128 bit∙. Adresy se na rozdφl od p°edchozφ verze zapisujφ ve tvaru osmice Üestnßctkov²ch (hexadecimßlnφch) Φφsel odd∞len²ch dvojteΦkami, namφsto desφtkov²ch Φφsel odd∞len²ch teΦkami, jak tomu bylo u verze 4 (viz obr. 6). IP adresy verze 4 tvo°φ nynφ podmno₧inu adres IP verze 6 a zapisujφ se do poslednφ osmice Üestnßctkov²ch Φφsel. P°φklad IP adresy verze 4 v zßpisu adresy verze 6 je uveden na obr. 7.
K dalÜφm zm∞nßm, kterΘ IP verze 6 p°inßÜφ pat°φ zejmΘna:
zm∞na a zjednoduÜenφ zßhlavφ protokolu;
automatickß konfigurace uzl∙ umo₧≥ujφcφ automatickΘ p°i°azovßnφ adres uzl∙m a sm∞rovaΦ∙m;
novΘ bezpeΦnostφ procedury a k≤dovßnφ;
podpora multimedißlnφch aplikacφ.
Vytvß°enφ IP paket∙ z paket∙ vyÜÜφch vrstev
Vytvß°enφ IP paket∙ probφhß na zßklad∞ informacφ p°edan²ch IP protokolu vyÜÜφ vrstvou. K nim pat°φ zejmΘna adresa zdrojovΘho uzlu, adresa cφlovΘho uzlu, vlastnφ paket transportnφ vrstvy s p°enßÜen²mi daty a dopl≥ujφcφ informace, kterΘ slou₧φ k up°esn∞nφ parametr∙ p°enosu paketu intersφtφ. K nim pat°φ nap°. doba existence (₧ivota) paketu v sφti, tj. doba, po jejφm₧ uplynutφ bude paket zruÜen, aby se v intersφti nepohybovaly pakety, kterΘ z n∞jakΘho d∙vodu nedosßhly cφle, ·daje o mo₧nosti fragmentace paketu pro p°φpadnΘ rozd∞lenφ paketu do v∞tÜφho poΦtu datagram∙ Φi identifikace protokolu vyÜÜφ vrstvy cφlovΘho uzlu. Protokol IP na zßklad∞ t∞chto informacφ vytvo°φ IP datagram, doplnφ jej zßhlavφm a vypoΦte zabezpeΦovacφ informace. Paket p°edan² od vyÜÜφ vrstvy pak v jednom Φi vφce vytvo°en²ch datagramech odeÜle cφlovΘmu uzlu.
Protokol ARP
Protokol IP pracuje s IP adresami. Vlastnφ komunikace v sφti vÜak probφhß, jak bylo °eΦeno v p°edchozφch Φßstech, prost°ednictvφm fyzick²ch (MAC) adres. K tomu, aby bylo mo₧nΘ vlastnφ komunikaci v sφti uskuteΦ≥ovat, pot°ebuje IP protokol dalÜφ dopl≥kovΘ mechanismy, kterΘ zabezpeΦφ p°i°azenφ IP adres MAC adresßm. K tomuto ·Φelu slou₧φ protokol ARP (Address Resolution Protocol). ARP poskytuje dv∞ zßkladnφ slu₧by:
zφskßvß MAC adresy odpovφdajφcφ cφlov²m IP adresßm, s nimi₧ pracuje protokol IP,
udr₧uje tabulku p°i°azenφ IP a MAC adres.
Princip Φinnosti protokolu ARP je jednoduch². V okam₧iku, kdy IP protokol zφskß od vyÜÜφ vrstvy IP adresu cφlovΘho uzlu, prohledß ARP lokßlnφ tabulku p°i°azenφ IP a MAC adres (ARP Table), kterou si udr₧uje. Nenalezne-li po₧adovanou dvojici adres v lokßlnφ tabulce, vyÜle do sφt∞ univerzßlnφ zprßvu (zprßvu, kterß je urΦena vÜem uzl∙m intersφt∞) s ₧ßdostφ o p°edßnφ MAC adresy odpovφdajφcφ danΘ IP adrese (ARP Request). Uzel, jemu₧ je danß IP adresa p°i°azena, pak na tuto zprßvu odpovφ (ARP Reply) p°φsluÜnou MAC adresou, kterou si ₧ßdajφcφ ARP protokol za°adφ do svΘ lokßlnφ tabulky.
Protokol ICMP
Protokol ICMP (Internet Control Message Protocol) je dalÜφm dopl≥ujφcφm protokolem IP vrstvy protokolovΘ sady TCP/IP. Jeho ·kolem je zajiÜ¥ovat p°enos chybov²ch a °φdicφch zprßv mezi jednotliv²mi uzly a sm∞rovaΦi IP intersφt∞. ╪φdicφ a slu₧ebnφ informace jsou p°edßvßny v p°esn∞ definovanΘm formßtu prost°ednictvφm specißlnφch zprßv, tzv. ICMP paket∙.
K zßkladnφm funkcφm protokolu ICMP pat°φ:
testovßnφ stavu a dostupnosti cφlovΘho uzlu;
°φzenφ toku paket∙ a zahlcenφ sφt∞;
aktualizace sm∞rovacφch tabulek od jednotliv²ch sm∞rovaΦ∙;