Referenčný model ISO OSI je vlastne abstrakciou a rozšírením usporiadania protokolov TCP/IP. Najčastejšie sa reprezentácia vrstiev TCP/IP znázorňuje podľa obr. 1:
Vrstva sieťového rozhrania je najnižšou vrstvou v stĺpci a zodpovedá dvom najnižším vrstvám
modelu ISO OSI. Funkcie a parametre tejto vrstvy sú u väčšiny sieťových adaptérov pevne
zabudované v hardvéri a firmvéri.
Spolupráca medzi vrstvami je založená na tom, že vrstvy vyššej úrovne využívajú dopredu
definované služby, ktoré poskytuje niektorá z nižších vrstiev. Pritom spravidla vyššia vrstva
spolupracuje priamo iba s tou, ktorá sa nachádza bezprostredne pod ňou. Skutočný tok dát pri
komunikácii je znázornený na obr. 2. Na zdrojovej stanici A prechádzajú dáta vrstvami
smerom dole až do vrstvy sieťového rozhrania, kde sa uskutoční ich prenos do cieľovej stanice
B, odtiaľ postupujú vrstvami v opačnom smere, teda zdola nahor. Vďaka dátovej
abstrakcii danej vrstvením protokolov sa pre obidva programy v aplikačnej vrstve vytvára
predstava, ako keby spolu priamo komunikovali.
Pozrime sa teraz trochu podrobnejšie na to, čo sa deje s dátami, ktoré si protokoly v susedných vrstvách medzi sebou odovzdávajú. Predpokladajme, že nejaký program v aplikačnej vrstve vytvára určité dáta, ktoré chce poslať partnerskému programu, s ktorým komunikuje. Použije teda napríklad služby protokolu TCP na nadviazanie spojenia medzi obidvoma počítačmi a na vytvorenie logického prúdu dát. Dáta však musia byť prenášané v diskrétnych paketoch, takže TCP najprv odhadne optimálnu veľkosť takéhoto paketu, a potom rozdelí spojitý prúd dát na segmenty s touto veľkosťou. Segmenty sú doplnené identifikačnými údajmi, tvoriacimi hlavičku TCP a sú odovzdané nižšej vrstve - protokolu IP. Protokol IP zoberie obsah segmentu, ktorý považuje za indiferentné dáta a pripojí k nemu vlastné identifikačné údaje - hlavičku IP, čím vznikne IP datagram. Ten je odovzdaný sieťovému rozhraniu, napríklad Ethernetu, kde je postup úplne analogický: Datagram sa umiestni do dátovej časti ethernetovského rámca, v ktorom sa ešte ďalej vyplnia identifikačné dáta špecifické pre Ethernet, a potom je rámec odoslaný na prenosové médium. Na cieľovej stanici je postup opačný: Protokol nižšej vrstvy odstráni identifikačné údaje a vlastný dátový obsah odovzdá protokolu vo vyššej vrstve. Keďže v každej vrstve sa nachádza niekoľko protokolov, mohol by vzniknúť problém, ktorému protokolu vyššej vrstvy je potrebné dáta odovzdať. Preto každý protokol nižšej úrovne má vo svojej hlavičke okrem iného uvedené, ktorému z možných kandidátov vo vyššej vrstve má dáta odovzdať.
Bezpečnostné kódy sú v zásade dvojakého druhu:
1. detekčné (error - detection code),
2. samoopravné (self - corecting code).
Detekčné kódy sa líšia od samoopravných kódov v tom, že umožňujú len rozpoznanie chyby. Poznáme tieto základné typy:
- Zabezpečenie paritou - jednoduchý spôsob, nie je však dostatočne spoľahlivý (rozpoznáva len nepárny počet chýb).
- Hammingov kód - patrí k samoopravným kódom (na 8 bitov dát + 5 bitov, na 16 bitov dát + 6 bitov). Často v praxi nezabezpečuje každý znak, ale celý blok dát.
- Kontrolný súčet (CheckSum) - zabezpečuje celý blok dát. Robí sa ako súčet modulo 28 alebo 216. Výsledkom je kontrolný súčet o dĺžke 1 alebo 2 bitov.
- Cyklické kódy CRC (Cyclic Redundancy Check) - najúčinnejšia forma zabezpečenia. Napríklad zabezpečenie pomocov 16 bitov CRC dokáže stopercentne odhaliť chyby až v 16 po sebe nasledujúcich bitoch, z chyby po väčšom počte bitov na 99,9984%. Na realizáciu sa používa posuvný register EX-OR s pevnou maskou, ktorej hodnota je určená generujúcim polynómom. Napr. podľa CCITT (Consultative Committee for International Telegraphy and Telephony) sa odporúča x16+x12+x5+1.
Je základná služba poskytovaná IP protokolom na úrovni IP vrstvy. Jeho špecifikácia bola spracovaná v dokumente RFC 791. Ide o nepotvrdzovanú službu, t.j. IP protokol nezaručuje spoľahlivé doručenie datagramu adresátovi. Každý paket je smerovaný samostatne.
Hlavné funkcie IP protokolu:
- Definuje základnú dátovú jednotku, ktorá je prenášaná sieťou (IP datagram) a jeho presný formát.
- Vykonáva smerovanie paketov (výber cesty ktorou bude paket vyslaný).
- Definuje pravidlá prenosu datagramov - rozhoduje ako majú routery spracovávať pakety, za akých okolností sú generované chybové správy a pod.
- Prepojenie internetovej a transportnej vrstvy stĺpca protokolov TCP/IP. V hlavičke IP datagramu je pole identifikujúce pomocou čísla protokol transportnej vrstvy, pre ktorý sú dáta určené. Známym protokolom sú priradené pevné čísla štandardom Assigned Number (RFC 1340). Napríklad TCP má číslo 6, UDP číslo 17.
- Fragmentácia a opätovné zostavovanie datagramov. Ide o to, že rôzne siete sa okrem iného líšia tiež maximálnou veľkosťou paketu, ktorý sú schopné preniesť. Tento parameter sa označuje MTU (Maximum Transmission Unit). Minimálne MTU, ktoré musí každý počítač/router podporovať, je 576 oktetov. Pri prechode datagramu routerom zo siete s väčším MTU do siete s menším MTU sa musí vykonať fragmentácia (rozdelenie) pôvodného datagramu na niekoľko menších častí. Ak bol raz datagram fragmentovaný, pokračujú tieto fragmenty po celý zvyšok cesty ku konečnému adresátovi ako nezávislé datagramy (aj keď prechádzajú sieťou, ktorá má dostatočne veľké MTU na znovuzostavenie do pôvodného datagramu). Opätovné znovuzostavenie fragmentovaných datagramov v TCP/IP vykonáva vždy až koncový počítač-adresát.
Podobne, ako každý iný druh paketu, má IP datagram (obr. 4) dve časti:
- Riadiaca časť - je tvorená hlavičkou datagramu.
- Dátová časť - obsahuje dáta.
Význam jednotlivých položiek IP datagramu je nasledovný:
VERSION - prvé štyri bity tvoria verziu protokolu (v súčasnosti sa používa verzia 4),
HEADER LENGTH - dĺžka záhlavia datagramu v 32-bitových slovách,
TYPE OF SERVICE - typ požadovanej služby, ktorá má byť použitá pre prenos datagramu,
TOTAL LENGTH - celková dĺžka datagramu v oktetoch,
IDENTIFICATION - jednoznačná identifikácia datagramu, poradové číslo,
FLAGS - príznaky ovplyvňujúce fragmentáciu, môžu to byť dve hodnoty:D - zákaz fragmentácie datagramu,FRAGMENT OFFSET - pozícia od začiatku dátovej časti fragmentu vzhľadom k pôvodnému datagramu, z ktorého tento fragment vznikol (násobok 8 oktetov),
M - nasledujú ďalšie fragmenty daného datagramu.
TIME-TO-LIVE - životnosť datagramu v sekundách. Po každom prechode routerom sa táto hodnota dekrementuje o 1; ak sa zníži na 0 je datagram zničený,
PROTOCOL - určuje protokol vyššej vrstvy,
HEADER CHECKSUM - kontrolný súčet IP hlavičky (nie dát),
SOURCE IP ADDRESS - zdrojová adresa odosielateľa,
DESTINATION IP ADDRESS - cieľová adresa prijímateľa,
OPTIONS - voliteľné položky; nepovinná časť, môže obsahovať niekoľko nastavení:PADDING - zarovnávanie na 32-bitovú hranicu.
- Record route - zaznamenávanie cesty datagramu internetom.
- Strict source route - odosielateľ striktne predpíše celú cestu datagramu.
- Loose source route - odosielateľ predpíše minimálnu cestu datagramu.
- Timestamp - zaznamenávanie cesty datagramu internetom so zaznamenávaním času prechodu jednotlivými routrami.
- Security - stupeň utajenia.
Protokol TCP realizuje spojovanú službu na úrovni transportnej vrstvy, zabezpečuje spoľahlivé doručenie správy adresátovi. Špecifikácia TCP je obsiahnutá v RFC 793. Na protokole TCP je založený aj SMTP protokol, používaný pre prenos správ elektronickej pošty.
Vlastnosti TCP protokolu:
- spoľahlivá transportná služba zabezpečujúca doručenie všetkých prenášaných dát, tak ako ich odosielateľ vyslal (tzn. bez straty a skreslenia dát alebo bez duplicitných paketov),
- spojovaná služba (existuje fáza spojenia medzi dvomi procesmi, fáza prenosu dát a fáza ukončenia spojenia),
- bufferované vysielanie zabezpečujúce efektívne využitie prenosových kanálov, t.j. odosielateľ začne vysielať až vtedy, keď sa nazbiera dostatočné množstvo dát,
- transparentný prenos ľubovoľných dát,
- plne duplexné spojenie - súčasný obojsmerný prenos dát,
- rozlišuje medzi viacerými potenciálnymi adresátmi na danom počítači (pomocou portov). Porty sa rozdeľujú na vyhradené, ktorých čísla sú menšie než 1024 a efemérne, ktoré sú volené ľubovoľne a umožňujú napríklad na jednom počítači súčastne spustiť viacej klientov rovnakej sieťovej služby. SMTP protokol má vyhradený port 25, POP3 protokol PORT 110.
DESTINATION PORT - identifikátor cieľového procesu adresáta,
SEQUENCE NUMBER - je offset prvého dátového oktetu tohoto segmentu vzhľadom k celej sekvencii dát určených k vysielaniu,
ACKNOWLEDGEMENT NUMBER - ak je nastavený príznak ACK, obsahuje táto položka sekvenčné číslo nasledujúceho oktetu, ktorý je príjemca pripravený prijať,
HEADER LENGTH - dĺžka hlavičky TCP v 32-bitových slovách,
FLAGS - predstavujú nasledujúce príznaky:WINDOW - je veľkosť okna v oktetoch (odosielateľ oznamuje, aký počet oktetov je schopný prijať),
- URG - tento segment by mal byť doručený príjemcovi čo najrýchlejšie. ako to je len možné, položka Urgent pointer je platná.
- ACK - potvrdzuje platnosť položky.
- PSH - požiadavka okamžitého doručenia tohoto segmentu protokolu vyššej vrstvy.
- RST - reset spojenia.
- SYN - aktívna žiadosť o zriadenie spojenia, tzv. synchronizácia sekvenčných čísel prijímača a vysielača.
- FIN - ukončenie spojenia (odosielateľ vyslal všetky dáta).
CHECKSUM - kontrolný súčet,
URGENT POINTER - špecifikuje posledný oktet urgentných dát (súčet Urgent pointer a Sequence number dáva sekvenčné číslo posledného oktetu urgentných dát),
OPTIONS - voliteľné položky (napr. maximálna veľkosť segmentu, ktorý môže byť prijatý).
UDP (User Datagram Protokol) podobne ako protokol IP, poskytuje nespojovanú
službu prenosu dát s nezaručenou spoľahlivosťou a využíva na tento účel vrstvu
IP. Oproti protokolu IP pridáva schopnosť rozlíšiť viacej adresátov vo vnútri
cieľového adresáta. UDP protokol bol zverejnený v dokumente RFC 768.
Účelom UDP protokolu je:
- primárny mechanizmus pre posielanie datagramov medzi aplikačnými procesmi,
- rozlišuje procesy na danom počítači pomocou portov.
SOURCE PORT - identifikátor volajúceho procesu (nepovinný, vyplňuje sa len v prípade, keď je požadovaná odpoveď),
DESTINATION PORT - identifikátor cieľového procesu,
LENGTH - dĺžka celého UDP paketu v oktetoch,
CHECKSUM - kontrolný súčet.
Každý počítač TCP/IP siete má pridelenú jednoznačnú 32 bitovú IP adresu, ktorá
je používaná pri komunikácii s týmto počítačom. Pokiaľ má počítač viacej
sieťových rozhraní (napríklad router), potom každé toto rozhranie musí mať
jednoznačnú IP adresu. Koncepčne je každá IP adresa tvorená dvojicou (NetID,
HostID), kde NetID (Network identifier) špecifikuje sieť a HostID (Host
identifier) špecifikuje počítač pripojený do tejto siete.
Adresný priestor je rozdelený do nasledujúcich tried (obr. 8):
Trieda A
Prvý bit adresy v tejto triede je 0; v štandardnom zápise IP adresy je teda prvá zo štvorice bajtov v rozmedzí 0 - 127. Prvý bajt je tu NetID a zvyšné tri HostID. Trieda A umožňuje adresovať 125 sietí a každá z nich môže mať presne 16 777 214 staníc.
Trieda B
Prvé dva bity sú 10; prvý bajt je v rozmedzí 128 - 191. V tejto triede sú ľavé dva bajty NetID a pravé dva HostID. Trieda B umožňuje adresovať 16 382 sietí a v každej z nich môže byť až 65 534 staníc. Tieto adresy sa hodia pre siete veľkých inštitúcií, ako sú univerzity a pod. Sieťové adresy tohto typu sú však dnes už prakticky vyčerpané.
Trieda C
Prvé tri bity sú 110; prvý bajt je v rozmedzí 192 - 223. Tri bajty zľava predstavujú NetID a iba posledný bajt napravo je HostID. Trieda C pokrýva 2 097 150 sietí, ale priestor pre stanice je obmedzený číslom 254.
Trieda D
Prvé štyri bity sú 1110; prvý bajt je v rozmedzí 224 - 239. Trieda D sa používa pre adresovanie skupiny počítačov zároveň.
Trieda E
Prvé štyri bity sú 1111; prvý bajt je v rozmedzí 240 - 255. Táto trieda slúži ako rezerva pre budúce použitie.
IP adresy sa zapisujú v tvare štyroch dekadických čísel navzájom oddelených
bodkou, z ktorých každé reprezentuje jeden oktet 32-bitovej IP adresy.
Napríklad: binárna IP adresa 11000011 10010010 10000000 00111101 sa v
dekadickej notácii zapíše 195.146.128.61.
Každé smerovanie paketov medzi jednotlivými sieťami vykonávajú routery výhradne
podľa sieťovej časti IP adresy NetID.
Pravidlá pre siete triedy A, B, C je často možné obísť pomocou masky podsiete.
To nám umožňuje ďalej deliť sieť tak, že použijeme viacej bitov pre číslo siete
a menej bitov pre číslo hostiteľa.
V adresnom priestore IP adries sú niektoré adresy vyhradené pre špeciálne
účely. Sú to adresy určené napríklad pre broadcast, ladenie komunikačných
programov a pod. Tieto adresy sú rezervované. Označenie bitových položiek: "0"
znamená "tento/táto" (počítač, sieť), "1" znamená "všetky" (počítače).
Rozlišujeme tieto prípady:
- Adresa 0.0.0.0 sa interpretuje "tento" počítač na "tejto" sieti. Používa sa v úvodnej fáze IP komunikácie bezdiskovej stanice, ktorá zatiaľ nepozná svoju IP adresu, ale musí komunikovať napr. pri zavádzaní systému cez sieť zo servera. Takáto adresa sa nikdy nesmie objaviť v poli cieľovej adresy.
- (NetID, HostID = 0): adresa siete napríklad: 195.146.0.0.
- Adresa 255.255.255.255 je hromadná IP adresa (limited broadcast). Pakety s touto adresou sú určené všetkým staniciam, ktoré sa nachádzajú na rovnakej lokálnej sieti ako odosielateľ. Túto adresu nie je možné nikdy použiť ako identifikáciu odosielateľa.
- Adresy, ktoré majú špecifikovaný NetID a HostID sa skladajú zo samých jednotiek, napríklad: 10.255.255.255, 150.111.255.255 či 200.111.222.255, sú tzv. riadené hromadné adresy (directed broadcast).
- 127.x.x.x: softvérová spätne väzobná adresa (loopback), lokálna medziprocesorová komunikácia v rámci jedného počítača (bez vysielania do siete), obvykle 127.0.0.1. Každý paket odovzdaný protokolom TCP alebo UDP je vrátený späť, akoby práve prišiel z nejakej siete. To umožňuje vyvíjať a testovať sieťový softvér, pričom nepotrebujete skutočnú sieť. Táto adresa by sa nikdy nemala objaviť v sieti.
Každý uzol siete Internet je identifikovaný pomocou IP adresy. Tieto adresy
používajú všetky protokoly. Pre človeka je ľahšie zapamätateľné meno ako číslica,
preto sa zaviedli tzv. doménové mená. DNS zabezpečuje efektívne mapovanie a
autonómne prideľovanie mien a je založený na hierarchickom decentralizovanom
systéme menných domén so stromovou reprezentáciou. Každý uzol v tomto strome je
označený reťazcom dĺžky 0 až 63 znakov (doporučuje sa používať sedembitový
ASCII kód). Hierarchické meno používa ako separátor znak "." (napríklad
sun.mtf.stuba.sk).
Tieto reťazce môžu obsahovať malé aj veľké písmená, ale pri ich porovnávaní,
prípadne inom spracovaní funkciami operačného systému, sa malé a veľké písmená
nerozlišujú.
Rovnaké mená sa nedajú použiť pre uzly, ktoré sú súrodencami, inak je
viacnásobný výskyt označenia uzlov možný.
Uzly nachádzajúce sa bezprostredne pod hlavným uzlom ROOT (obr. 9) sa nazývajú
domény najvyššej úrovne (TLD). Nasledujúce domény (TLD) označujú jednotlivé
štáty, napríklad .sk znamená Slovensko, .at Rakúsko, .de Nemecko, .cz Česko a
pod. Štruktúra ďalej pokračuje doménami druhej úrovne (SLD) (u nás napr.
stuba), doménami tretej úrovne (mtf, elf) a menom počítača (sun, decef).
V USA, v mieste zrodu Internetu, sa na rovnakej úrovni používajú domény označujúce typ
uzlov do nich združených. Ich prehľad je uvedený v tab. 1.
Tab. 1: Domény najvyššej úrovne
Doména | Význam | Doména | Význam |
edu | Vzdelávacie inštitúcie v USA | org | Neziskové organizácie v USA |
gov | Vládne inštitúcie v USA | net | Brány (gateways) medzi sieťami |
mil | Vojenské inštitúcie v USA | int | Medzinárodné organizácie |
com | Komerčné organizácie v USA | xxx | Kód štátu (podľa ISO 3166) |
Vysvetlivky
RFC (Request for Comments) - Sada článkov, v ktorých sa dokumentujú a
zverejňujú štandardy Internetu, návrhy štandardov a obecne odsúhlasené
myšlienky.
ISO (International Organization for Standard) - Medzinárodná organizácia pre
štandardy, tiež organizácia, ktorá definovala rôznorodú skupinu sieťových
protokolov, nazývaných protokoly ISO/OSI.
IP (Internet Protocol) - Jeden z najdôležitejších protokolov, na ktorých je
Internet založený. Umožňuje, aby pakety na ceste k svojmu konečnému cieľu
prekonali niekoľko rôznych sietí.
DNS (Domain Name System) - Systém doménových mien. Distribuovaný hierarchický
informačný systém využívaný v IP sieťach, umožňujúci preklad symbolických
doménových mien (napr.: www.zoznam.sk) na číselné IP adresy (napr.:
195.85.36.45).
(c) 2004 Ing. Peter Gašparovič - www.pgasparovic.com
Literatúra
[1] Feiber, W.: Encyklopedie počítačových sítí, Praha, Computer Press, 1996.
[2] Břehovský, P.: Praktický úvod TCP/IP, České Budějovice, KOPP, 1994 .
[3] Šmrha, P. - Rudolf, V.: Internetworking pomocí TCP/IP, České Budějovice, KOPP, 1995.
[4] Hejna, L.: Lokální počítačové síte, Praha, GRADA, 1994.
[5] Falk, B.: Průvodce světem Internetu, Praha, Computer Press, 1995.
[6] Lhotka, L.: SERVER v INTERNETU, České Budějovice, KOPP, 1997.
[7] Peterka, J.: Co je čím ... v počítačových sítích, COMPUTERWORLD, 1994, č. 4, 7, 9, 17, 21, 35, 44.
[8] Sterling, B.: Short History of the Internet, The Magazine of Fantasy and Science Fiction, 1993.
[9] Dostálek, L. - Kabelová, A.: MIME - Multipurpose Internet Mail Extension. http://info.pvt.net/mime.htm, 1997.