Počítačová síť je velmi zjednodušeně řečeno několik počítačů spojených nejčastěji technologií Ethernet přes zařízení zvané router, případně switch. Právě router, který v sobě switch integruje, připojí počítačovou síť do dalších sítí, a to tím, že ji celou maskuje jako jediný počítač. Vzniká tak hierarchická topologie, kde se požadavek z vašeho počítače takto postupně přes několik sítí a routerů dostane až na nejvyšší potřebnou úroveň (společnou s cílovým vzdáleným počítačem) a poté je směrován k cílovému počítači.
Každý počítač má tzv. IP adresu, která jej identifikuje v rámci sítě. Pokud chce komunikovat mimo svou síť, musí poslat požadavek na bránu - což je většinou router. Ta je také "označena" IP adresou. Router přidá k posílanému požadavku svoji hlavičku a pošle paket dále.
Kolik počítačů může být v rámci jedné sítě je závislé na takzvané masce. Udává se většinou ve tvaru 255.255.255.0 (ale může vypadat i jinak) a značí, že první tři čísla z IP adresy jsou označení sítě a čtvrté poté číslo samotného počítače. V tomto případě tedy může být v jedné síti jen 254 počítačů (0-255, ale bez multicastu a broadcastu).
Nestačí mít počítače jen fyzicky propojené, je potřeba spousta úkonů, aby si navzájem rozuměly. Aby se data aplikace, která chce něco poslat jinému počítači, daly přenést po drátu, musí se nejprve převést na jedničky a nuly, tedy na elektrické impulsy. Bylo by velmi složité a neefektivní, kdyby se o to měly starat samotné aplikace.
Popis fungování sitě, aneb ISO/OSI
Proto tu máme referenční model ISO/OSI, který komplexně popisuje síťovou architekturu pomoci sedmi vrstev. O některé aspekty přenosu se stará aplikace, o další operační systém a o zbytek síťové prvky. Model ISO/OSI není v praxi nasazen (místo něj se používá jednodušší TCP/IP), ale krásně demonstruje funkce sítě.
Aplikační vrstva se stará o identifikaci uživatelů, síťových zdrojů a implementuje přístup přes komunikační protokol HTTP.
Transportním protokolem je například TCP
Prezentační vrstva tyto data kóduje, komprimuje a případně šifruje. Upravuje také data stejného typu, například obrázky, do formátu srozumitelného pro různé systémy.
Relační vrstva navazuje spojení (sessions) mezi vzdálenými počítači, které se potom domlouvají na typu přenosu (zda bude realizován jako duplexní, nebo simplexní), a přidává do zprávy synchronizační značky sloužící k obnově spojení při výpadku.
Transportní vrstva řeší optimální délku jednotlivých segmentů dat, jejich složení v cíli ve správném pořadí a zasílání "potvrzení o přijetí".
Referenční model ISO/OSI a srovnání s reálně používaným TCP/IP
Síťová vrstva se stará o směrování datových bloků (paketů) napříč sítěmi na základě IP adres a využívá k tomu směrovacích tabulek (například RIP) ve směrovačích. Překládá síťové adresy IP na fyzické adresy MAC a celkově řídí datový tok v síti - nepouští data do jiné sítě, než do které mají podle IP adresy v hlavičce paketu svůj cíl.
Příkladem síťové vrstvy je protokol IP
Linková vrstva řeší komunikaci mezi blízkými prvky sítě, které nejsou odděleny routerem. Datové rámce jsou mezi prvky sítě směrovány na základě fyzických MAC adres. Tato vrstva také vytváří typ spojení. To může být peer-to-peer: rovný s rovným, nebo jedna řídící stanice vůči podřízeným počítačům. Data se zde zabezpečují proti chybám přenosu, například cyklickým redundantním kódem CRC, který vkládá do zprávy informaci navíc, jež je důležitá pro zjištění (a opravení dat) chybného přenosu.
Fyzická vrstva se již zabývá přímo jedničkami a nulami. Řeší, jakým způsobem budou vysílány impulsy do přenosového média na základě jeho vlastností a jak se bude signál modulovat na elektrický signál.
Jak funguje internet
Z referenčního modelu ISO/OSI vychází model TCP/IP (Transmisson Control Protocol/Internet Protocol), který má jen čtyři vrstvy:
Aplikační (o funkce prezentační a relační vrstvy se musí aplikace, které je vyžadují, samy postarat), transportní, síťovou a vrstvu nazvanou síťové rozhraní, která je tu namísto vrstvy linkové a fyzické. Každá vrstva využívá služeb vrstvy nižší a poskytuje služby vrstvě vyšší.
Přehled přidávání hlaviček k datovým rámcům a paketům během přenosu
Na TCP/IP je v současnosti založen celý internet. Jde primárně o nespolehlivou síť bez potvrzování správného přenosu. Zajištění spolehlivé infrastruktury by bylo neúměrně drahé - o spolehlivost se starají až koncové uzly, pokud to vyžadují. Typicky u přenosu videa a hudby je jedno, že vypadne nějaký snímek, hlavně musí být přenos rychlý. Naopak u přenosu emailů a webových stránek nevadí určitá prodleva, ale data musí být přenesena bezchybně.
TCP/IP garantuje pouze "Best Effort", tedy že se bude co nejvíc snažit, ale v podstatě negarantuje, že se přenos dat podaří. Koncovýcm prvkům pak nezbývá, než přenos opakovat.
Struktura TCP/IP je proti ISO/OSI mnohem jednodušší
Aplikační vrstva obsahuje protokoly nejpoužívanějších služeb, tedy HTTP, FTP, SMTP a další.
Transportní vrstva vytváří spojení a směruje datový tok k příslušným aplikacím. Na výběr jsou protokoly TCP a UDP. TCP zajišťuje spojově orientovanou spolehlivou službu, která je náročnější na režii. Naváže spojení mezi počítači teprve po ověření existence a dostupnosti všech prvků na přenosové cestě a druhá strana vysílá zpět potvrzení o správnosti přijatých dat.
Spojení je definováno pomocí dvojice tzv. soketů, což je kombinace IP adresy a čísla portu. Navíc umožňuje řízení toku dat - například přijímací strana vyšle požadavek straně vysílací, že nestíha a potřebuje přenos zpomalit. Naproti tomu UDP protokol začne vysílat data i bez ověření samotné existence cílového počítače a bez řízení toku dat. Nemá žádnou režii a hodí se třeba na streamované video.
Síťová vrstva je realizována protokolem IP, který poskytuje také nespolehlivou službu. Vrstva směruje pakety podle IP adres v hlavičce. Dnes používané IP adresy verze 4 jsou 32bitové, může jich tedy být kolem 4 miliard, což je nedostačujici. Řešením je IPv6 se 128bitovým adresovaním. které navíc nabízí řízení kvality služby (QoS).
Vrstva síťového rozhraní závisí na typu sítě a je různá pro Ethernet, ATM, Token Ring nebo telefonní síť. V naprosté většině lokálních sítích je především díky své jednoduchosti používán Ethernet. Princip byl založen na sběrnicové technologii, kdy se na jeden přenosový kabel snaží dostat svá data všechny počítače, a to často současně - neví, že ve stejném okamžiku se chystá vysílat i někdo jiny.
Jak se vejít na jeden kabel
Pro vysílání na tomto sdíleném médiu (třeba drátu) se používá technologie CSMA/CD, což je metoda s nasloucháním a s detekcí kolize. Stanice, která chce začít vysílat, nejdříve naslouchá, zda je na přenosovém kanálu volno. Pokud ano, začne vysílat, ale přesně v tom okamžiku třeba udělá to samé další počítač. V takovém případě je detekována kolize a stanice, která ji detekovala jako první, vyšle tzv. "jam" signál.
Po něm si všechny stanice vygenerují náhodnou dobu, po kterou budou čekat na další pokus o vysílání. Mohlo by se zdát, že je to neefektivní, ale po několika takových pokusech je již velká pravděpodobnost uspěšného odesláni. Navíc se toto děje tak strašně rychle, že nějaké prostoje nezaznamenáte.
Ethernet je zdánlivě složitý, ale jde o desítky let starou a postupně vylepšovanou technologii, na které je založena velká část počítačových sítí v našem okolí. Pro zajímavost, tvůrcem Ethernetu byl Bob Metcalfe z Xeroxu, firmy známé dnes jako výrobce kopírek.