Ako sme už povedali, všetko na internete je riadené protokolmi. Tieto protokoly sú organizované do vrstiev. Protokoly vyšších vrstiev využívajú služby protokolov nižších vrstiev a dodávajú im ďalšiu funkcionalitu. Vrstva protokolov môže byť riadená softvérom, hardvérom alebo ich kombináciou. Kým protokoly aplikácií sú riadené softvérovo, protokoly fyzickej a spojovej vrstvy sú typicky spravované hardvérom v sieťových kartách.
Organizácia vo vrstvách má tú výhodu, že v prípade zachovania rozhraní, môže byť niektorý protokol nahradený tak, aby to neovplyvnilo iné vrstvy.
1.9.1 Implementácia internetu TCP/IP
Internet súčasnosti implementuje rodinu protokolov TCP/IP, ktorá sa skladá zo 4 vrstiev. Zhora nadol sú to vrsty: aplikačná (application), transportná (transport), sieťová (network), a vrstva sieťového rozhrania (network interface). Každá vrstva má svoj daný účel.
- aplikačná vrstva
- Zabezpečuje komunikáciu medzi konkrétnymi typmi programov. Napríklad HTTP protokol slúži na komunikáciu medzi prehliadačom webových stránok a webovým serverom, FTP protokol na posielanie súborov, DNS protokol na preklad doménových mien na IP adresy a naopak, SMTP, POP a IMAP protokoly na posielanie mailov a podobne. Do tejto skupiny patrí aj množstvo protokolov na jedno použitie, ktoré si môže navrhnúť pre svoj sieťový program každý programátor.
- základná jednotka informácie, ktorú si medzi sebou posielajú sieťové programy, je správa (message)
- transportná vrstva
- Hlavnou úlohou je zabezpečiť spojenie dvoch procesov (spustených programov) na rôznych počítačoch. To umožňuje využívanie viacerých sieťových aplikácií súčasne na jednom počítači. Keď dorazí k počítaču paket, protokol transportnej vrstvy musí určiť, ktorému procesu poskytne dáta v tomto pakete. Táto vrstva tiež zabezpečuje rozdelenie správ na menšie časti, ktoré sa vojdú do paketov. Na internete sa najčastejšie používajú z transportných protokolov dva: TCP a UDP. TCP protokol k hlavnej úlohe ešte pridáva ďalšiu funkcionalitu. Zabezpečuje spoľahlivé doručenie všetkých dát v správnom poradí, rieši kontrolu zahltenia (spomalí odosielanie, ak niektorý uzol na ceste je zahltený) a kontrolu toku dát (odosielanie rýchlosťou, ktorou zvláda prenášať najužšie miesto spojenia).
- paket z pohľadu tejto vrstvy sa nazýva segment
- sieťová vrstva
- Úlohou sieťovej vrstvy je dopraviť na základe IP adresy príjemcu paket na ľubovoľné miesto na internete z jednej siete do inej. Na tejto vrstve sa už nerieši, čo sa s paketom na cieľovom zariadení stane. Hlavným problémom tejto vrstvy je nájdenie vhodnej cesty pre paket smerujúci na danú IP adresu. Dôležitú úlohu tu majú smerovacie protokoly.
- paket z pohľadu tejto vrstvy sa nazýva datagram
- vrstva sieťového rozhrania
- Úlohou je dopraviť paket vo vnútri podsiete k správnej sieťovej karte daným fyzickým médiom. Každá sieťová karta má danú svoju MAC adresu. Pre prijatie paketu, ktorý „ide okolo počítača“, sieťovou kartou je dôležitá MAC adresa. Použitá technológia je závislá na type spoja (optický kábel, kovový drôt, bezdrôtový spoj), na vlastnostiach týchto spojov aj použitej topológii zapojenia. Typické technológie sú Ethernet, Wireless LAN, Bluetooth, Point-to-point, Token ring a iné.
- paket z pohľadu tejto vrstvy sa nazýva rámec (frame)
1.9.2 Referenčný model ISO/OSI
Vrstvový model TCP/IP vychádza z teoretického referenčného modelu ISO/OSI, navrhnutého v sedemdesiatych rokoch dvadsiateho storočia. ISO je Medzinárodná organizácia pre štandardy. OSI je skratka od Open System Interconnection. Tento model obsahuje až 7 vrstiev. Okrem spomínaných štyroch obsahuje medzi aplikačnou a transportnou vrstvou dve extra vrstvy, prezentačnú a relačnú. Vrstva sieťového rozhrania je rozdelená na spojovú a fyzickú.
Priblížme si význam týchto extra vrstiev. Po aplikačnej vrstve slúžiacej na definovanie obsahu správ medzi programami nasleduje prezentačná vrstva (presentation layer). Prezentačná vrstva sa podľa ISO/OSI modelu má starať o interpretáciu dát: zabezpečiť šifrovanie, kompresiu či definovať kódovanie. Pod ňou sa nachádza relačná vrstva (session layer). Relačná vrstva má zaznamenávať kontrolné body relácie, ponúkať obnovenie relácie (napr. po výpadku siete), synchronizáciu a podobne. Tieto dve vrstvy sú v praktickom modeli TCP/IP súčasťou aplikačnej vrstvy. Je to spôsobené okrem iného aj tým, že mnohé aplikácie služby týchto dvoch extra vrstiev nepotrebujú.
Transportná a sieťová vrstva zodpovedajú rovnomenným vrstvám z implementácie TCP/IP.
Vrstva sieťového rozhrania je v referenčnom modeli ISO/OSI rozdelená na spojovú a fyzickú. Spojová vrstva (link layer) má za úlohu správne identifikovať príjemcu paketu a overovať, či nedošlo k zmene odoslaných dát (napr. interferenciami s inými elektromagnetickými žiareniami) a riadiť to, kto môže kedy vysielať a prijímať. Fyzická vrstva (physical layer) má za úlohu v danom prenosovom médiu prenášať binárnu informáciu, teda postupnosť jednotiek a núl. Táto vrstva má za úlohu identifikovať v signáli začiatok vyslania a koniec vysielania paketu, identifikovať jednotky a nuly.
V rámci tejto prednášky budeme využívať taký hybridný model, v ktorom sú aplikačná, prezentačná a relačná vrstva zlúčené do aplikačnej vrstvy, no vrstva sieťového rozhrania je rozdelená na spojovú a fyzickú. Budeme teda uvažovať 5 vrstiev: aplikačnú, transportnú, sieťovú, spojovú a fyzickú.
1.9.3 Zapuzdrenie
Keď sieťová aplikácia chce vyslať do internetu správu, predá túto správu transportnej vrstve, ktorá túto správu rozdelí na viac kúskov a každému z nich dodá hlavičku s dodatočnými informáciami, ktoré sú užitočné pre transportnú vrstvu prijímajúceho zariadenia a odovzdá takto vzniknuté segmenty sieťovej vrstve. Sieťová vrstva dodá každému segmentu hlavičku s informáciami pre sieťové vrstvy routrov na ceste a pre sieťovú vrstvu prijímajúceho zariadenia. Sieťová vrstva odovzdá takto vytvorené datagramy spojovej vrstve, ktorá opäť dodá svoju hlavičku určenú pre všetky zariadenia až po najbližší router alebo cieľovú stanicu. Nakoniec je takto vytvorený rámec odovzdaný fyzickej vrstve, ktorá už uskutoční samotný prenos rámca najbližšiemu zariadeniu (vyšle rámec ako postupnosť jednotiek a núl daným fyzickým spojom).
Jednotlivé zariadenia na ceste si rozbalia rámec až po niektorú z nižších vrstiev za účelom správneho preposlania. Môžu tiež niektoré hlavičky nahradiť a nové rámce posielajú ďalej. Platí, že jednoduché switche rozbaľujú paket iba po spojovú vrstvu a routre po sieťovú vrstvu. Transportná a aplikačná vrstva sa rozbaľuje až v cieľovom zariadení. Jedinou výnimkou je, že nejaké zariadenie na ceste je „v moci“ nejakého útočníka alebo špióna, ktorý môže čítať a meniť aj dáta pre najvyššie dve vrstvy.