4. diel - Siete – Prenos informácií (paketov)
V predchádzajúcej lekcii, { PREVIOUS}, sme si predstavili a vysvetlili pojmy internet, extranet a intranet.
V nasledujúcom tutoriále základov počítačových sietí sa zameriame na základné princípy prenosu informácií, najmä na prenos paketov.
Prenos informácií (paketov)
Paket je základná jednotka dát, ktorá sa prenáša v sieti. Ide o všetky dáta, ktoré behajú po internete. V paketoch nám do počítača dorazí email, posledný diel Simpsonovcov, alebo instagramové fotky najmenšej čivavy na svete. Prečo sa dáta neposielajú vcelku alebo ako stream má dobré dôvody. Keď pozeráme na stream youtubera, veľmi nám nevadí, keď sa raz za hodinu na necelú sekundu nadrobno zadrhne. Ak by sme ale takto prenášali napríklad nejaký program, to „drobné zadrhnutie“ by znamenalo, že po stiahnutí nebude fungovať a najskôr ani nepôjde spustiť.
Štruktúra paketu
Dôvodom číslo jedna pre "drobenie" dát do paketov je teda bezpečnosť a spoľahlivosť prenosu. Ako sa dozvieme ďalej v lekcii, pakety sa totiž vedia opravovať a keď o nejakej ceste prídeme, máme možnosť si ich poslať znova. Ďalšími faktormi sú aj efektivita využitia siete a zníženie oneskorenia pri prenose dát. Každý paket sa skladá z:
- riadiacich dát (metadat),
- užívateľských dát (užitočné zaťaženie, anglicky payload).
Komunikačné protokoly
Rôzne komunikačné protokoly používajú rôzne konvencie na rozlišovanie medzi riadiacimi prvkami a dátami. V binárnych synchrónnych prenosoch používajú pakety 8-bitové skupiny (bajty) a na vymedzenie jednotlivých prvkov sú použité špeciálne znaky. Ďalšie protokoly (napríklad Ethernet), definujú začiatok hlavičky a dátových prvkov ako pozíciu vzhľadom k začiatku paketu. Niektoré protokoly formátujú informácie na úrovni bitov namiesto použitia bajtovej úrovne. Protokoly majú špecifické využitie:
- Ethernet: široko používaný sieťový protokol pre prenos dát v lokálnych sieťach,
- TCP/IP: sada protokolov používaných na komunikáciu v internetových sieťach,
- HTTP: protokol pre prenos hypertextových dokumentov (webových stránok) v sieti,
- FTP: protokol pre prenos súborov medzi počítačmi v sieti,
- SMTP: protokol pre prenos emailov medzi počítačmi v sieti,
- POP3: protokol pre prijímanie emailov na počítači klienta,
- IMAP: protokol pre prijímanie a správu emailov na vzdialenom serveri,
- DNS: protokol pre preklad doménových mien na IP adresy a naopak,
- SSH: protokol pre zabezpečený prenos dát medzi počítačmi v sieti,
- Telnet: protokol pre vzdialený prístup k počítaču,
- ICMP: protokol pre odosielanie chybových správ a zisťovanie dostupnosti siete.
Siete využívajúce pakety majú teda dve základné výhody: detekciu chýb a adresáciu viacerých cieľov doručenia. Detekcia chýb zaisťuje, že prenášané dáta dorazia do cieľa v poriadku, zatiaľ čo adresácia viacerých cieľov umožňuje odoslanie jedného paketu viacerým príjemcom súčasne.
Zapuzdrenie
Máme teda fotku zubiacej sa čivavy a nutkavú potrebu podeliť sa o ňu s rodinou. Aby sme ju dostali z nášho počítača v Česku do notebooku alebo mobilu kamaráta z vedľajšej štvrti (alebo napríklad zo Španielska), musí ju naša sieťová karta rozdeliť na malé kúsky a tie potom obaliť „cestovnými dátami“ – musia z nej vytvoriť pakety. Tomuto procesu sa hovorí zapuzdrenie. Pri ňom sa dáta z jednej vrstvy siete balia do protokolu inej vrstvy, aby mohli byť poslané cez sieť. To znamená, že dáta sú obalené ďalšími informáciami, ako sú hlavičky a metadáta, aby sa zabezpečilo, že budú doručené správne a bezpečne.
Vrstvy
V modeli OSI, ako sme si ho popísali v lekcii Typy sieťových zariadení, sa zapuzdrenie používa na prenos dát od jednej vrstvy k druhej. Keď dáta opúšťajú jednu vrstvu, pridá sa k nim hlavička pre ďalšiu vrstvu, ktorá obsahuje informácie o tom, kde sa dáta nachádzajú a kam majú byť doručené. Potom sú dáta poslané na nižšiu vrstvu, kde je pridaná ďalšia hlavička a proces sa opakuje, kým dáta nedosiahnu najnižšiu vrstvu. OSI je teoretický a univerzálny model pre komunikáciu v počítačových sieťach. V praxi sa používa model TCP/IP.
Vrstvy TCP/IP
Model má štyri vrstvy, do ktorých postupne balia dáta:
- aplikačnú vrstvu (ktorá zahŕňa relačné, prezentačné a aplikačné vrstvy OSI) poskytujúce aplikáciám prístup k systému a umožňuje im spoluprácu,
- transportnú vrstvu poskytujúcu služby na kontrolu celistvosti dát,
- sieťovú vrstvu, ktorá zaisťuje predovšetkým sieťovú adresáciu, smerovanie a odovzdávanie datagramov,
- linkovú vrstvu (ktorá zahŕňa fyzickú a linkovú vrstvu OSI) umožňujúcu prístup k fyzickému prenosovému médiu.
Zapuzdrenie dát
Ukážme si celý proces ešte raz skrátene na prenose dát z webového prehliadača do webového servera. Keď zadáme adresu URL v prehliadači, s dátami (HTTP požiadavka) sa stane toto:
- najprv sú poslané na aplikačnú vrstvu modelu OSI, kde sú balené do protokolu HTTP,
- potom ich prevezme transportná vrstva, ktorá im pridá hlavičku TCP a kontrolný súčet pre zaistenie spoľahlivého prenosu,
- následne ich preberá sieťová vrstva. Tá k nim pridá IP adresu a routingové informácie pre doručenie dát na správne miesto,
- nakoniec si dáta prevezme linková vrstva, ktorá sa k nim pridá fyzickú adresu a kontrolný súčet na detekciu chýb.
HTTP požiadavka je vytvorený, keď používateľ zadá adresu URL do webového prehliadača. Obsahuje informácie o požadovanej webovej stránke, ako je napríklad názov servera (v URL adrese), typ požiadavky (GET, POST, atď.), hlavičky požiadavky a ďalšie metadáta.
Fragmentácia a zostavovanie paketov
Už sme si vysvetlili, že aby dáta dorazili bezpečne av poriadku z jedného počítača cez internet do druhého, delíme ich na pakety. Tie môžu mať rôznu veľkosť. Dôvodom je, že všetky siete po ceste nemusia byť rovnako priepustné. Tu sa dostáva k slovu fragmentácia. To je proces, pri ktorom sú väčšie dátové pakety rozdelené na menšie časti. Zostavovanie paketov potom znamená opačný proces, kedy sú tieto menšie časti opäť zložené do pôvodných väčších paketov.
Fragmentácia
Veľké dátové pakety sa teda v prípade potreby rozdelia na menšie časti, ktoré sa nazývajú fragmenty. Tieto fragmenty sú potom prenesené po sieti a na cieľovom zariadení sú opäť spojené do pôvodného paketu. Tento proces je potrebný v prípadoch, keď sú veľké dátové súbory prenášané cez siete s obmedzenou kapacitou alebo keď sú prenášané dáta cez sieť s obmedzenou maximálnou veľkosťou prenášaných paketov.
Príkladom môže byť situácia, kedy používateľ sťahuje veľký súbor z internetu. Ak je tento súbor prenášaný po sieti s obmedzenou maximálnou veľkosťou paketov, môže byť potrebné súbor rozdeliť na menšie časti, aby bolo možné ho úspešne preniesť. Tieto menšie časti súboru sú potom prenesené po sieti a na cieľovom zariadení opäť spojené do pôvodného súboru. Fotka našej čivavy veľká 10 MB by mohla rozprávať:-)
Veľkosť fragmentov v Internet Protocole (IP) je obvykle obmedzená na maximálnu veľkosť prenosnej jednotky (Maximum Transmission Unit, MTU) danou fyzickou vrstvou používanou v danej sieti. Väčšina sietí používa štandardnú MTU veľkosť 1500 bajtov pre ethernetové siete. To znamená, že ak chceme poslať dátový paket väčší ako 1500 bajtov, bude rozdelený na menšie fragmenty s veľkosťou 1500 bajtov alebo menej.
Fragmentácia môže byť tiež využitá v situáciách, keď sú siete zaťažené a dochádza k výpadkom prenosu. Fragmentácia potom umožňuje obnoviť prenos dát tam, kde došlo k výpadku, bez nutnosti prenášať celý paket znova.
Strata paketu
Sieťové zariadenia, ako sú smerovače a prepínače, používajú rôzne techniky na detekciu straty paketov. Napríklad sa môže použiť kontrolný súčet pre každý fragment alebo paket, ktorý je pridaný do hlavičky, aby sa mohlo zistiť, či boli dáta poškodené alebo stratené počas prenosu. Ak sa zistí, že paket alebo fragment je poškodený alebo stratený, môže sieťové zariadenie požiadať o opätovné odoslanie poškodených dát alebo použiť iné metódy nápravy problému. Tých existuje niekoľko. Jednou z nich je napríklad použitie protokolu TCP, ktorý využíva potvrdzovanie prenosu a automatické opakovanie prenosu stratených segmentov. Pokiaľ nejaký segment nie je potvrdený v určitom časovom limite, odosielateľ ho automaticky znovu odošle. Ďalšou metódou môže byť využitie protokolu FEC (Forward Error Correction), ktorý umožňuje obnovu dát bez nutnosti opakovania celého prenosu. Protokol FEC do dát vkladá redundantné informácie, ktoré umožňujú obnoviť pôvodné dáta v prípade straty niektorých fragmentov.
Zostavovanie
Zostavovanie (reassembly) je proces, pri ktorom sú fragmenty paketov spojené späť do pôvodného paketu. Tento proces prebieha na cieľovom zariadení a zahŕňa kontrolu, či sú všetky fragmenty prítomné, a ich správne spojenie v poradí, aby bol obnovený pôvodný paket.
Ak sa však fragmenty stratia alebo poškodia, cieľové zariadenie musí použiť niektorú zo spomínaných metód, ktoré problém straty alebo poškodenia paketu vyriešia.
V budúcej lekcii, Siete - IPv4 a IPv6 - Tvorba podsietí , si vysvetlíme proces tvorby podsietí, tzv. subnetting.