Tento článek jsem napsal pro časopis Connect a vyšel v čísle Connect 04/10, zde jej publikuji s laskavým svolením redakce.
Jedná se o první díl seriálu o počítačových sítích. Na tomto webu již existuje obsahově shodný (a rozsáhlejší) seriál Počítačové sítě - Computer networks, ale tento článek jsem napsal s určitým časovým odstupem a z trochu jiného pohledu.
Síťové technologie přehledně a stručně
Na začátku bychom si měli určit, co taková počítačová síť (dále budeme používat pouze termín síť) je. Běžně používaná definice říká, že počítačová síť vznikne spojením dvou nebo více počítačů tak, aby mohli navzájem komunikovat a sdílet zdroje (informace, software, zařízení, apod.).
Sítě můžeme dělit podle velkého množství parametrů. Dle velikosti, rozlohy a účelu máme Local Area Network (LAN), Metropolitan Area Network (MAN), Wide Area Network (WAN), Virtual Private Network (VPN), Storage Area Network (SAN) a mnoho dalších. Podle síťové topologie máme zapojení jako sběrnice (bus), hvězda (star), kruh (ring), mřížka (mesh) apod. Podle technologie zapojení máme drátové (wired) sítě, které mohou používat kroucenou dvojlinku (twisted-pair), koaxiální kabel, optické vlákno, a bezdrátové (wireless).
Dále můžeme sítě dělit podle technologie komunikace na Ethernet, Token Ring, FDDI, Frame Relay, atd. A případně i podle použitého komunikačního protokolu, nejrozšířenější skupina protokolů TCP/IP (Transmission Control Protocol/Internet Protocol) a další jako IPX/SPX (Internetwork Packet Exchange/Sequenced Packet Exchange), AppleTalk.
My se dále budeme hlavně věnovat tomu, co je nejrozšířenější a nejběžnější, tedy lokálním sítím LAN s technologií Ethernet, používající protokoly z rodiny TCP/IP a v některých oblastech ještě s přihlédnutím k použití kroucené dvojlinky v zapojení do hvězdy.
Aktivní prvky a kabeláž
Síť stavíme z určitých fyzických prvků. Jednou částí jsou samozřejmě počítače (stanice, servery, tiskárny a další síťová zařízení), kterým chceme umožnit komunikaci. Druhou jsou zařízení, která zajišťují propojení, to je strukturovaná kabeláž (jinak řečeno pasivní prvky) a aktivní síťové prvky.
Do infrastruktury strukturované kabeláže patří horizontální i páteřní kabeláž, konektory, patch panely, datové (komunikační) a serverové rozvaděče (racky), telekomunikační zásuvky, apod. Mezi aktivní prvky patří zařízení, která odesílají, přijímají a přeposílají informace přes komunikační kanál. Jedná se o síťové adaptéry (Network Interface Controller - NIC), přepínače (switch), směrovače (router), přístupové body bezdrátové sítě (WiFi AP), případně i starší zařízení jako opakovače (repeater), rozbočovače (hub), mosty (bridge) a další.
Použité aktivní prvky a komunikační protokol určují, jakým způsobem data fyzicky putují po síti. Připojení na sdílené médium (mimo bezdrátové sítě) dnes asi již nikdo nepoužívá, takže pro komunikaci v rámci stejného subnetu se používá přepínaný ethernet s využitím switchů (ten je při komunikaci transparentní, nemění odesílaná data). Pro doručení dat do jiného subnetu se používá směrování pomocí routeru (ten se musí při komunikaci přímo adresovat a upravuje odesílaná data).

Komunikační model
Pro podrobnější pohled na síťovou komunikaci můžeme použít standardizovaný abstraktní popis, který se označuje jako OSI model (Open Systems Interconnection Basic Reference Model). Tento model se skládá ze sedmi vrstev a každá vrstva zajišťuje určitou část komunikace či služeb. OSI model ovšem pro praxi nenabízí potřebnou volnost, přesně definuje vrstvy a každé vrstvě povoluje komunikaci pouze se sousední nad či pod. To by pro praxi přinášelo zbytečnou zátěž.
V praxi nejpoužívanější soubor protokolů se jmenuje Internet Protocol Suite (většinou se označuje jako TCP/IP). Tato sada protokolů používá vlastní, upravený model, který se označuje jako TCP/IP Reference Model (případně také Internet Model). Ten se skládá pouze ze čtyř vrstev, nazvaných linková (link), síťová (internet), transportní (transport) a aplikační (application), často se ovšem setkáme i s jinými názvy. Horní vrstvy jsou blíže uživateli a pracují s více abstraktními daty, nižší vrstvy upravují data do formy, která se dá fyzicky přenášet.
Při odesílání začne pracovat nejvyšší vrstva, ta má uživatelská data, doplní je o hlavičku a předá nižší vrstvě. Tehdy se provede zapouzdření (encapsulate), z dat a hlavičky vyšší vrstvy se stávají data nižší vrstvy (zabalují se). Do hlavičky se doplňují komunikační údaje a další informace pro identifikaci dat na dané vrstvě. Pokud jsou uživatelská data velká, tak se také provádí rozdělení na segmenty (na 3. vrstvě).
Data na 2. vrstvě se označují jako paket (packet – balíček) a v případě IP protokolu obsahují IP adresu zdrojové a cílové strany. Na síť data odesílá 1. vrstva, která v hlavičce doplní MAC adresy a tehdy se z paketu stává rámec (frame). Měli bychom tedy rozlišovat, kdy mluvíme o paketech (například při směrování, které používá data z 2. vrstvy) a kdy o rámcích (například při přepínání, používají se údaje z 1. vrstvy). V praxi se ale často oba termíny zaměňují. Můžeme také používat obecný termín PDU (Protocol Data Unit).

Sítě a adresování
Řekli jsme si, že budeme převážně mluvit o lokálních sítích. Mezi sítě LAN se většinou počítá síť, která se nachází na menším (omezeném) geografickém území (může se jednat o budovu případně areál nebo jen patro či místnost). LAN je sama o sobě uzavřená síť, ale většinou spojujeme více LAN sítí dohromady. Buďto napřímo nebo přes větší vzdálenosti pomocí WAN (internetu či privátních linek).
Největší a nejznámější (WAN) síť postavená na TCP/IP je internet. Zjednodušeně můžeme říci, že se jedná o velké množství vzájemně propojených LAN. Situace je ale o něco komplikovanější. V internetu se používá adresování pomocí IPv4 (Internet Protocol Version 4) a k tomu se pomalu začíná prosazovat IPv6. Z řady technických důvodů není možné, aby všichni účastníci této sítě komunikovali napřímo mezi sebou.
Takže z principu komunikace, ale také kvůli přidělování rozsahů adres, celou síť rozdělujeme hierarchicky na menší části, těmto částem říkáme podsítě (subnet). Protože se jedná o hierarchické dělení, tak jednotlivé podsítě můžeme znovu dělit na ještě menší subnety. V případě internetu je hlavní adresní prostor spravovaný organizací IANA (Internet Assigned Numbers Authority). Dále se dělí na velké bloky, které jsou přiřazeny regionálním registrátorům RIR (Regional Internet Registries), ti spravují adresy pro různé části světa. RIR přiděluje menší bloky adres poskytovatelům služeb ISP (Internet Service Providers) a velkým organizacím. Od ISP pak může získat menší blok adres nějaká organizace.
V rámci organizace většinou nepoužíváme pouze veřejné IP adresy přidělené od ISP, ale také neveřejné rozsahy (ty by v rámci internetu neměli komunikovat). Celá síť firmy, kterou můžeme označovat jako LAN, se v praxi skládá z řady subnetů. Do jiných subnetů patří sítě, které chceme vzájemně oddělit (a také je logicky nebo fyzicky oddělujeme), třeba provozní, testovací, DMZ. Ale rozdělení na menší subnety využíváme i z důvodu výkonu, protože rozdělíme broadcastové domény (logická část sítě, kde všechny zařízení komunikují přímo na linkové vrstvě a přijímají vzájemné broadcasty).
V dávnějších dobách se pro vytvoření oddělených sítí museli používat různé aktivní prvky (a tedy budovat infrastrukturu vícekrát). V dnešní době je ovšem naprosto běžné využití VLAN (Virtual LAN), které dovolí provozovat více oddělených sítí (subnetů) v rámci jednoho (samozřejmě i více) aktivního prvku. Zjednodušeně řečeno, switch můžeme rozdělit na několik logických switchů tak, že určité porty zařadíme do určité VLANy. Při tom je zajištěno, že není možno komunikovat přímo mezi VLANami.
Komunikace v rámci subnetu
Zařízení, která jsou připojena do stejného subnetu, spolu mohou komunikovat napřímo. V případě přepínaného ethernetu to znamená, že pro propojení se použije jeden nebo více switchů. Pro komunikaci se použijí údaje z první vrstvy dle TCP/IP modelu, tedy v případě ethernetu jde o MAC (Media Access Control) adresu, což je fyzická adresa rozhranní.
Switch si v paměti vytváří tabulku (CAM - Content Addressable Memory), za jakým portem se nachází jaká MAC adresa. Potom komunikaci určenou nějaké MAC adrese posílá přímo na daný port. Pokud ještě nemá záznam, tak data odešle na všechny porty mimo příchozího. CAM tabulka se vytváří z příchozích dat.

Na switchích se řeší několik různých problémů, hlavním jsou smyčky ve fyzickém propojení. Ty mohou vést ke vzniku broadcastových bouří (a dalších problémů). Na obranu proti smyčkám můžeme běžně použít Spanning Tree Protocol (STP), který blokuje redundantní cesty.
Propojení subnetů
Tím, že jsme provozní sít rozdělili na menší subnety a zařadili do různých VLAN, jsme sice zmenšili množství broadcastů, které každé zařízení zpracovává. Ale také jsme ztratili možnost komunikace mezi zařízeními v různém subnetu. Aby spolu zas mohli komunikovat, musíme připojit zařízení, které bude provádět routování a pro jednotlivé subnety bude výchozí branou (default gateway). V praxi nejčastěji využijeme tuto funkci na L3 switchi případně routeru. Komunikaci mezi sítěmi odlišného charakteru, jako je provozní síť a DMZ (Demilitarized zone), většinou zajišťuje firewall. Ten zároveň tvoří bezpečnostní bariéru mezi sítěmi.
Tak jak jsme mluvili o rozdělení sítě na subnety, tak tomu odpovídá umístění routerů, které se nachází v každém bodě, kde spolu mají komunikovat jednotlivé subnety. Dohromady tvoří hierarchickou strukturu, zjednodušeně strom. Když spolu mají komunikovat dvě stanice v různých sítích, tak komunikace musí projít přes jeden nebo více routerů. Délku označujeme jako počet hopů (skoků), tedy počet zařízení, přes která musí komunikace projít (přímé propojení dvou PC je jeden hop).

Za to, jakou cestou bude komunikace směrována (na jaké další zařízení), jsou zodpovědné routery. Ty používají určitý routovací protokol, který sestavuje routovací tabulku a podle ní se provádí rozhodnutí o směrování na další hop. Routovacích protokolů existuje celá řada, ať již standardizovaných nebo proprietárních. Příkladem je RIP (Routing Information Protocol), EIGRP (Enhanced Interior Gateway Routing Protocol), OSPF (Open Shortest Path First) či BGP (Border Gateway Protocol).
Použití routovacího protokolu není vždy potřeba. Ten se používá pro dynamické routování, které automaticky detekuje změny v síti a upravuje routovací tabulku. V LAN nám často stačí použít statické routování, kdy záznamy do tabulky zadáme buď ručně, nebo se vytvoří automaticky z přímo připojených rozhranní (subnety, které jsou připojeny na tomto routeru).
Metody vysílání
K předchozímu popisu komunikace je ještě třeba doplnit, že máme tři typy komunikace a podle nich se mění detaily v doručování. Jde o to, zda chceme doručit data pouze jednomu příjemci. Tato metoda je nejběžnější a označuje se jako unicast. Tomu se věnovala většina předchozího popisu.
Potom máme vysílání jednoho všem, označuje se jako broadcast (všesměrové vysílání). To by měla obdržet všechna zařízení v rámci broadcast domény (stejného subnetu). Switch takovou komunikaci odesílá na všechny porty mimo příchozího. Toto vysílání využijeme nejen tehdy, když chceme poslat informaci všem okolo, ale také když neznáme adresu příjemce. Ten přijme broadcast, podle obsahu pozná, že je určen jemu a odešle odpověď. Takovým příkladem jsou protokoly DHCP či ARP. Velké množství broadcastů ale zpomaluje síť a zatěžuje stanice.
Ještě máme směrovaný broadcast (Subnet Directed Broadcast), ten by měl po síti doputovat do cílového subnetu a teprve tam se rozeslat jako broadcast. V praxi je však tento způsob z bezpečnostních důvodů často blokován.
Poslední možnost je vysílání určené skupině příjemců, tzv. multicast. To má zajistit efektivní doručení dat několika různým příjemcům tak, aby data v síti putovala pouze jednou.
Síťové protokoly
Ještě si doplníme krátkou informaci k protokolům. Zde se bavíme o Internet Protocol Suite, souboru síťových protokolů, kterému se často říká TCP/IP. To ovšem může být zavádějící, protože do této skupiny patří mnohem více protokolů. IP je sice hlavní komunikační protokol na 2. vrstvě TCP/IP modelu, který zajišťuje doručování paketů. Ale existují zde i další důležité protokoly, jako je ICMP (Internet Control Message Protocol, zajišťuje v síti třeba informace o nedostupnosti cílové sítě nebo echo request/reply) či IGMP (Internet Group Management Protocol, zajišťuje správu skupin pro multicast).
Stejně tak na 3. vrstvě TCP/IP modelu je důležitý TCP, protokol, který operuje nad IP a zajišťuje rozdělení odesílaných dat na segmenty a jejich spolehlivé doručení příjemci ve správném pořadí. I na této vrstvě máme další protokoly, hlavním zástupcem je UDP (User Datagram Protocol), který také pracuje nad IP. Ten používá jednoduchý vysílací model, který nezajišťuje spolehlivost doručení (data nemusí dorazit, mohou dorazit vícekrát či v jiném pořadí), ale má malou režii.
Na 4. vrstvě TCP/IP modelu jsou již aplikační protokoly. Nad UDP pracuje například DNS, TFTPa VoIP. Nad TCP pracuje velké množství protokolů, namátkou HTTP, SMTP, FTP. Do rodiny IP protokolů patří i několik protokolů z 1. vrstvy TCP/IP modelu, například MAC (Media Access Control, používaný ethernetem), ARP (Address Resolution Protocol) či PPP (Point-to-Point Protocol).
naprosto jednoduchy perfektni a dokonalý článek. díky! :-)
odpověď na [1]schomi:
JJ souhlasim s Schomim. Tenhle clanek mi to hezky vsechno, celkem strucne objasnil :-) taky dik ;-)
Vyborny clanek, ted me zrovna site prednasej,takze se mi to hodi. Muzu se zeptat, proc switch posle data vsem, kdyz v tabulce CAM nema zaznam?? Je to divny, on(switch) vi, co je na jednotlivych portech za zarizeni....prece se nemuze stat, ze by tam bylo neco jinyho s jinou ip adresou. A este me napada, kdyz rozdelim provozni sit na mensi subnety pomoci VLAN, tak ta kazda podsit nebude mit svuj broadcast? Diky za odpoved
odpověď na [3]The Ghost:
Pokud switch nemá naplněnou CAM tabulku, či pro konkrétní rámec nezná konkrétní port kam to má poslat zachová se jako hub, aby se zaručilo, že cíl data dostane. Switch je zařízení druhé vrstvy a CAM tabulka obsahuje mapování HW adresa (MAC) a portu, nikoliv IP adresy. Navíc po zapnutí switch neví, kde co je. To se naučí až sledováním provozu (konkrétně pole source address z ethernetových rámců).
VLAN představuje vždy vlastní síť či subnet a má svoji adresu sítě i broadcast adresu. Broadcast na switchi s VLANy se pak šiří jen v dané VLAN a přes trunky.
odpověď na [4]blekeke:
Jasne, MAC adresa....jsem to ale... Tak a este ta VLAN. Autor uvadi, cituji:".....zmenšili množství broadcastů, které každé zařízení....". Tak nevim, co si o tom myslet. Je mi jasny co tim myslis a jsem stejnyho nazoru. Je to odstavec PROPOJENI SUBNETU. Co tim teda mysli??
odpověď na [5]The Ghost: Většina síťových zařízení posílá některé zprávy jako broadcast (hlavně třeba stanice s Windows). Pokud je v jednom subnetu (jedné VLANě) více stanic, tak jich více posílá broadcast a každá z nich dostane více zpráv. Rozdělením se zmenší počet stanice a tím množství broadcastů.
odpověď na [6]Samuraj:
Ahaaaa, takze se zmensi celkovy pocet vsecho broadcastu posilany po urcite VLAN. Uz chapu. Diky
pekne a zrozumitelne napisany clanok
dakujem
Pozor , počet hopů = počet zařízení není uplně přesné, lepší he počet rourerů, přes kteté komunikace jde.
(Existují i záludnosti jako VRF nebo že někteté routery nesnižují TTL schválně , nebo že v případě komunikace přes tunel se hopy jsou smrsknuté do jednoho)