IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Lekce 5 - Sítě - Přenos informací (paketů)

V minulé lekci, Sítě - Média fyzické vrstvy, jsme si rozebrali typy médií fyzické vrstvy, po kterých se přenášejí data.

V následujícím tutoriálu základů počítačových sítí se zaměříme na základní principy přenosu informací, zejména na přenos paketů.

Přenos informací (paketů)

Paket je základní jednotka dat, která se přenáší v síti. Jde o veškerá data, která běhají po internetu. V paketech nám do počítače dorazí email, poslední díl Simpsonů nebo instagramové fotky nejmenší čivavy na světě. Proč se data neposílají vcelku nebo jako stream má dobré důvody. Když koukáme na stream youtubera, moc nám nevadí, když se jednou za hodinu na necelou vteřinu drobně zadrhne. Pokud bychom ale takto přenášeli třeba nějaký program, to "drobné zadrhnutí" by znamenalo, že po stažení nebude fungovat a nejspíš ani nepůjde spustit.

Struktura paketu

Důvodem číslo jedna pro "drobení" dat do paketů je tedy bezpečnost a spolehlivost přenosu. Jak se dozvíme dál v lekci, pakety se totiž umí opravovat a když o nějaké cestou přijdeme, máme možnost si je poslat znovu. Dalšími faktory jsou také efektivita využití sítě a snížení zpoždění při přenosu dat. Každý paket se skládá z:

  • Řídících dat (metadat),
  • uživatelských dat (užitečné zatížení, anglicky payload).

Řídící data poskytují síti informace k doručení paketu, například adresu zdroje a cíle a kódy pro detekci chyb – kontrolní součty a informace o pořadí. Obvykle se řídící data nalézají v hlavičkách paketů a na jejich konci, přičemž uživatelská data jsou mezi nimi:

TCP/IP protokol - Základy sítí

Komunikační protokoly

Různé komunikační protokoly používají různé konvence pro rozlišování mezi řídícími prvky a daty. V binárních synchronních přenosech používají pakety 8bitové skupiny (bajty) a k vymezení jednotlivých prvků jsou použity speciální znaky. Další protokoly (například Ethernet), definují začátek hlavičky a datových prvků jako pozici vzhledem k začátku paketu. Některé protokoly formátují informace na úrovni bitů místo použití bajtové úrovně. Protokoly mají specifické využití:

  • Ethernet: široce používaný síťový protokol pro přenos dat v lokálních sítích,
  • TCP/IP: sada protokolů používaných pro komunikaci v internetových sítích,
  • HTTP: protokol pro přenos hypertextových dokumentů (webových stránek) v síti,
  • FTP: protokol pro přenos souborů mezi počítači v síti,
  • SMTP: protokol pro přenos emailů mezi počítači v síti,
  • POP3: protokol pro přijímání emailů na počítači klienta,
  • IMAP: protokol pro přijímání a správu emailů na vzdáleném serveru,
  • DNS: protokol pro překlad doménových jmen na IP adresy a naopak,
  • SSH: protokol pro zabezpečený přenos dat mezi počítači v síti,
  • Telnet: protokol pro vzdálený přístup k počítači,
  • ICMP: protokol pro odesílání chybových zpráv a zjišťování dostupnosti sítě.

Obvyklý způsob, jak vysvětlit paket, je představit si ho jako dopis. Budeme se ho držet i my :-) Hlavička tedy slouží jako obálka se známkou (kontrolní data) a adresou. Uvnitř jsou pak naše data, třeba kousíček zmíněné čivavy. A stejně jako papírové dopisy mohou mít různě velké a různě nadité obálky i počítačová síť umí rozdělit data na různě velké pakety. Dokonce umí i už odeslané pakety cestou rozdělit na více menších, pokud je to nutné.

Sítě využívající pakety mají tedy dvě základní výhody: detekci chyb a adresaci více cílů doručení. Detekce chyb zajišťuje, že přenášená data dorazí do cíle v pořádku, zatímco adresace více cílů umožňuje odeslání jednoho paketu více příjemcům současně.

Zapouzdření

Máme tedy fotku zubící se čivavy a nutkavou potřebu podělit se o ní s rodinou. Abychom ji dostali z našeho počítače v Česku do notebooku nebo mobilu kamaráda z vedlejší čtvrti (nebo třeba ze Španělska), musí ji naše síťová karta rozdělit na malé kousky a ty potom obalit "cestovními daty" - musí z ní vytvořit pakety. Tomuto procesu se říká zapouzdření. Při něm se data z jedné vrstvy sítě balí do protokolu jiné vrstvy, aby mohla být poslána přes síť. To znamená, že data jsou obalena dalšími informacemi, jako jsou hlavičky a metadata, aby se zajistilo, že budou doručena správně a bezpečně.

Vrstvy

V modelu OSI, jak jsme si jej popsali v lekci Typy síťových zařízení, se zapouzdření používá pro přenos dat od jedné vrstvy k druhé. Když data opouštějí jednu vrstvu, přidá se k nim hlavička pro další vrstvu, která obsahuje informace o tom, kde se data nacházejí a kam mají být doručena. Poté jsou data poslána na nižší vrstvu, kde je přidána další hlavička a proces se opakuje, dokud data nedosáhnou nejnižší vrstvy. OSI je teoretický a univerzální model pro komunikaci v počítačových sítích. V praxi se používá zjednodušený model TCP/IP.

Vrstvy TCP/IP

Model má čtyři vrstvy, do kterých postupně balí data:

  • Aplikační vrstvu (která zahrnuje relační, prezentační a aplikační vrstvy OSI) poskytující aplikacím přístup k systému a umožňuje jim spolupráci,
  • transportní vrstvu poskytující služby pro kontrolu celistvosti dat,
  • síťovou vrstvu, která zajišťuje především síťovou adresaci, směrování a předávání datagramů,
  • linkovou vrstvu (která zahrnuje fyzickou a linkovou vrstvu OSI) umožňující přístup k fyzickému přenosovému médiu.

Až pak se výsledný paket vydá na cestu internetem po drátě, optickém vláknu nebo vzduchem, aby zakotvil v cílovém počítači. Tam celý proces proběhne v obráceném pořadí. A až na místo určení dorazí všechny potřebné pakety, na kamarádově monitoru se objeví odeslaná čivava vcelku a bez chybějících dat.

Zapouzdření dat

Ukažme si celý proces ještě jednou zkráceně na přenosu dat z webového prohlížeče do webového serveru. Když zadáme adresu URL v prohlížeči, s daty (HTTP požadavek) se stane toto:

  • Nejprve jsou poslána na aplikační vrstvu modelu OSI, kde jsou balena do protokolu HTTP,
  • poté je převezme transportní vrstva, která jim přidá hlavičku TCP a kontrolní součet pro zajištění spolehlivého přenosu,
  • následně je přebírá síťová vrstva. Ta k nim přidá IP adresu a routingové informace pro doručení dat na správné místo,
  • nakonec si data převezme linková vrstva, která se k nim přidá fyzickou adresu a kontrolní součet pro detekci chyb.

Vidíme tedy, že každičký kousek čivavy vyráží na cestu internetem zabalený jako cibule do čtyř vrstev "obalových" dat, jejichž jediným účelem je, aby dorazil nepoškozený a nezměněný do cílového počítače.

HTTP požadavek je vytvořen, když uživatel zadá adresu URL do webového prohlížeče. Obsahuje informace o požadované webové stránce, jako je například název serveru (v URL adrese), typ požadavku (GET, POST, atd.), hlavičky požadavku a další metadata.

Fragmentace a sestavování paketů

Už jsme si vysvětlili, že aby data dorazila bezpečně a v pořádku z jednoho počítače přes internet do druhého, dělíme je na pakety. Ty mohou mít různou velikost. Důvodem je, že všechny sítě po cestě nemusí být stejně propustné. Zde se dostává ke slovu fragmentace. To je proces, při kterém jsou větší datové pakety rozděleny na menší části. Sestavování paketů pak znamená opačný proces, kdy jsou tyto menší části opět složeny do původních větších paketů.

Fragmentace

Velké datové pakety se tedy v případě potřeby rozdělí na menší části, které se nazývají fragmenty. Tyto fragmenty jsou poté přeneseny po síti a na cílovém zařízení jsou opět spojeny do původního paketu. Tento proces je nezbytný v případech, kdy jsou velké datové soubory přenášeny přes sítě s omezenou kapacitou nebo kdy jsou přenášena data přes síť s omezenou maximální velikostí přenášených paketů.

Příkladem může být situace, kdy uživatel stahuje velký soubor z internetu. Pokud je tento soubor přenášen po síti s omezenou maximální velikostí paketů, může být nutné soubor rozdělit na menší části, aby bylo možné ho úspěšně přenést. Tyto menší části souboru jsou pak přeneseny po síti a na cílovém zařízení opět spojeny do původního souboru. Fotka naší čivavy velká 10 MB by mohla vyprávět :-)

Velikost fragmentů v Internet Protocolu (IP) je obvykle omezena na maximální velikost přenosné jednotky (Maximum Transmission Unit, MTU) danou fyzickou vrstvou používanou v dané síti. Většina sítí používá standardní MTU velikost 1500 bajtů pro ethernetové sítě. To znamená, že pokud chceme poslat datový paket větší než 1500 bajtů, bude rozdělen na menší fragmenty s velikostí 1500 bajtů nebo méně.

Fragmentace může být také využita v situacích, kdy jsou sítě zatížené a dochází k výpadkům přenosu. Fragmentace pak umožňuje obnovit přenos dat tam, kde došlo k výpadku, bez nutnosti přenášet celý paket znovu.

Ztráta paketu

Síťová zařízení, jako jsou směrovače a přepínače, používají různé techniky pro detekci ztráty paketů. Například se může použít kontrolní součet pro každý fragment nebo paket, který je přidán do záhlaví, aby se mohlo zjistit, zda byla data poškozena nebo ztracena během přenosu. Pokud se zjistí, že paket nebo fragment je poškozený nebo ztracený, může síťové zařízení požádat o opětovné odeslání poškozených dat nebo použít jiné metody nápravy problému. Těch existuje několik. Jednou z nich je například použití protokolu TCP, který využívá potvrzování přenosu a automatické opakování přenosu ztracených segmentů. Pokud nějaký segment není potvrzen v určitém časovém limitu, odesílatel ho automaticky znovu odešle. Další metodou může být využití protokolu FEC (Forward Error Correction), který umožňuje obnovu dat bez nutnosti opakování celého přenosu. Protokol FEC do dat vkládá redundantní informace, které umožňují obnovit původní data v případě ztráty některých fragmentů.

Sestavování

Sestavování (reassembly) je proces, při kterém jsou fragmenty paketů spojeny zpět do původního paketu. Tento proces probíhá na cílovém zařízení a zahrnuje kontrolu, zda jsou všechny fragmenty přítomny, a jejich správné spojení v pořadí, aby byl obnoven původní paket.

Pokud se tedy fragmenty cestou ztratí nebo poškodí, cílové zařízení musí použít některou ze zmíněných metod, které problém ztráty nebo poškození paketu vyřeší.

V příští lekci, Sítě - IPv4 a IPv6 - Tvorba podsítí, si vysvětlíme proces tvorby podsítí, tzv. subnetting.


 

Předchozí článek
Sítě - Média fyzické vrstvy
Všechny články v sekci
Základy sítí
Přeskočit článek
(nedoporučujeme)
Sítě - IPv4 a IPv6 - Tvorba podsítí
Článek pro vás napsal Karel Zaoral
Avatar
Uživatelské hodnocení:
127 hlasů
Karel Zaoral
Aktivity