Aktuality  |  Články  |  Recenze
Doporučení  |  Diskuze
Grafické karty a hry  |  Procesory
Storage a RAM
Monitory  |  Ostatní
Akumulátory, EV
Robotika, AI
Průzkum vesmíru
Digimanie  |  TV Freak  |  Svět mobilně

Jak zapojíme síť - 1. část: něco málo z teorie

31.8.2005, Martin Kuchař, článek
Jak zapojíme síť - 1. část: něco málo z teorie
Jistě se každý z vás s tím alespoň jednou setkal a nebo se dokonce o nějaké to vybudování sítě pokoušel. Ať už byl výsledek práce jakýkoli, přinášíme vám seriál, kde si v několika dílech ukážeme postupy, jak si místní síť vybudovat, co vše k tomu budeme potřebovat a kolik nás to bude stát.
Kapitoly článku:
  1. Jak zapojíme síť - 1. část: něco málo z teorie
  2. Spínané sítě
  3. Hardware - kabely, koncovky a vše ostatní
  4. Závěr
Celkově můžeme počítačové sítě rozdělit do dvou základních skupin - první z nich je LAN (Local Area Network) a tou druhou je WAN (Wide Area Network). První (LAN) je určena pro spojení počítačů, které jsou umístěny relativně blízko u sebe (knihovny, učebny, domy...), narozdíl od sítí WAN, které jsou určeny pro spojení vzdálených objektů - například dvě knihovny na opačných koncích města sdílí svou elektronickou databázi knih. Sítě LAN jsou zpravidla rychlejší a stabilnější než sítě WAN a v dnešní době díky optickým kabelům jsou schopny pracovat i na vzdálenosti několika set či tisíc kilometrů. Sítě WAN jsou zase flexibilnější a umožňují spojení i v jinak nedostupném terénu například pomocí bezdrátových technologií.

Vězte, že první síť založená na standardu Ethernet byla vyzkoušena již v roce 1973 a provedl to Bob Metcalfe ve společnosti Xerox. Pomocí kabelu spojil zařízení do sítě Ethernet a nastartoval tím neskutečné možnosti pro výrobce a inženýry, kteří se této možnosti opravdu chopili a udělali z ní to, čím je dnes. Mnoho parametrů a problémů, jež se v Ethernetu používají, jsou natolik rozšířené i ve zbylé síťové technologii, že jejich porozumění vám může hodně pomoci. Ethernet už od svého vzniku vychází ze stejného konceptu, kdy jakékoliv zařízení zapojené do této sítě se okamžitě stává sdíleným a je možné na něj přistupovat odkudkoliv ze sítě. To umožňuje snadné rozšíření bez nutnosti provádět upgrade na již zapojených zařízeních. Ethernet je tedy lokální síť, která zpravidla funguje v limitované vzdálenosti a lokalitě (budova, knihovna...) a to také proto, že síťové kabely jsou funkční pouze do vzdálenosti sta metrů. Naštěstí díky novým technologiím je možné tuto vzdálenost značně prodloužit, avšak dle mého už se pak nejedná a klasické LAN, ale o jejich modifikace, které už zcela neodpovídají prvotnímu rozvržení Ethernetu.

Nyní si vysvětlíme, co je to protokol. Jistě už o něm každý slyšel a v historii jsem tento pojem několikrát zmiňoval. Je to sada pravidel, která řídí komunikaci. Dalo by se říci, že protokol je pro počítače to, co je pro lidi mluvení a jazyky. Aby byl uživatel schopný tento článek přečíst, musí umět česky a to samé platí i pro počítače - aby byly schopny spolu komunikovat, musí oba dva používat stejný protokol.


Schéma jednoduché sítě.

Pro podrobnější pochopení další částí nyní vysvětlím pár pojmů. Prvním z nich je pojem Médium - zařízení jsou spojena nějakým médiem, po kterém je přenášen elektrický signál. Toto médium bylo v minulosti nejčastěji koaxiální kabel, avšak v dnešní době je čím dál tím více nahrazován kroucenou dvojlinkou nebo optickými kabely. Druhým pojmem je Segment - skupina počítačů (zařízení) připojených k jednomu médiu. Uzel - zařízení připojovaná k segmentům se nazývají uzly nebo stanice. Packet (balíček) - uzly komunikují pomocí krátkých zpráv - packetů, což jsou různě velké balíčky informací. Každý protokol v sobě obsahuje pravidla pro tvorbu těchto paketů. Zadává maximální a minimální velikost a sadu speciálních znaků, které se musí v každém paketu objevit. Takovýto povinný obsah nazýváme hlavičkou paketu a můžeme z něj vyčíst adresu odesílatele i příjemce paketu, velikost paketu a další údaje.

CSMA/CD (carrier-sense multiple access with collision detection) ovládá to, jakým způsobem bude Ethernetový protokol řídit komunikaci mezi uzly. Pokud jeho principy rozebereme do úplných základů, zjistíme, že se podobají tomu, jak se lidé chovají ve slušné konverzaci. Pro lehčí pochopení si vše převedeme na situaci, kdy lidé konverzují u jídelního stolu. Řekněme tedy, že stůl je nějaký segment a lidé kolem něj sedící jsou koncové uzly. Pojem multiple access pak přesně odpovídá tomu, co jsem psal výše - pokud nějaký ethernetový uzel přenáší data, všechny ostatní uzly naslouchají stejně tak, jako když někdo u stolu povídá historku nebo zážitek, tak také ostatní účastníci naslouchají. Nyní si představte situaci, že k tomu, co váš kamarád povídá, chcete něco dodat. Někdo by to sice vyhrknul okamžitě, ale jelikož jsme ve slušné společnosti, počkáte s tím, až domluví - takhle to mezi slušnými lidmi chodí.

Stejná situace je i u carrier sense - pokud nějaká stanice chce vysílat, pak chvíli naslouchá a pokud zjistí, že na lince je "ticho", tak teprve pak s přenosem začne. Tato technika nám dává slušný základ pro bezproblémovou síťovou komunikaci, avšak pořád nám zbývá jeden možný kolizní scénář. Pokud bych měl vše opět naznačit na našem imaginárním stole s hosty, pak by situace vypadala následovně: řekněme, že je úplné ticho a vy a váš známý máte něco na srdci co chcete ostatním sdělit. Jelikož je opravdu ticho, nevidíte žádnou zábranu a tedy začnete - bohužel ale oba dva v úplně stejný okamžik. V ethernet terminologii se tomuto problému říká kolize (collision) a nastává, pokud dva uzly začnou vysílat v tu samou chvíli. Lidé by tuto situaci vyřešili hladce - jelikož oba dva zúčastnění slyší toho druhého, tak mluvit přestanou a jeden dá tomu druhému přednost, nebo počká se svou informací až na později. Síťový uzel také při vysílání naslouchá, zda je opravdu jediným kdo zrovna médium využívá a pokud zaznamená svůj signál ve zničené podobě, pak ví, že nějaká jiná stanice nebo uzel vysílá také. Pokud k něčemu takovému tedy dojde, uzel přestane vysílat, počká nějaký čas, zjistí zda je "ticho" a svoje vysílání zopakuje. Zde je potřeba si ještě ujasnit poslední možný kolizní stav, kterým je právě doba, kterou uzel čeká, než začne znova vysílat. Pokud by dva uzly vstoupily do kolize, tak by oba v tu samou chvíli zaznamenaly problém a za tu samou chvíli by se pokusily vysílat znova - to by vedlo do nekonečné smyčky konfliktních stavů a z přenosu by nebylo nic. I tohle dokáže protokol jednoduše ošetřit - pokud ke koliznímu stavu dojde, tak doba prodlevy je nastavována náhodně a tím pádem je několikanásobná kolize prakticky vyloučena.


Síťová karta pro více médií. Jak koaxiální kabel (přípojka napravo) tak dvojlinku (přípojka nalevo).

To, co jsme si ukázali (náš jídelní stůl s hosty), je pěkné řešení problémů malých sítí s několika uzly. Ovšem co se stane pokud do takovéto sítě zapojíme uzlů třeba desetkrát tolik? I zde se dá vše ukázat na mém oblíbeném příkladu - jídelní stůl. Je předem jasné, že několik desítek lidí se už nedokáže řídit zažitými pravidly komunikace ve slušné společnosti. Někteří by byli znechuceni neustálým čekáním na slovo a jiní by skákali do řeči. Naštěstí lidé toto vyřeší pohodlně - jistě jste si všimli, že na zábavách se vytvoří malé skupinky, ve kterých lidé hovoří tak, že tím ostatní skupiny neruší. Lidské ucho zaznamená zvuk jen z nejbližšího okolí a rozhovory dalších skupinek nepostřehne. Bohužel síťový kabel přenáší data tak rychle a spolehlivě, že okamžitě jej získají všichni připojení. Ethernet tedy čelí zahlcení, které roste přímo úměrně s počtem připojených lidí. Každý uzel v takovéto síti by se snažil vysílat kdykoliv by zaznamenal klid a při velkém počtu takovýchto uzlů by se zvýšil počet kolizí a ohrozil by tím naší komunikaci. Je tedy třeba tuto velkou skupinu rozdělit do menších skupin avšak za předpokladu, že tyto skupiny již nebudou schopny společně komunikovat navzájem.

Nyní jsme sice vyřešili jeden problém, ale hned jsme si zadělali na další. Sice už víme, jak zabránit neustálým kolizím vzniklým kvůli velkému počtu uzlů, ale na druhou stranu jsme zabránili vzájemnou komunikaci nově vzniklých skupinek (segmentů). Tento problém jde vyřešit několika způsoby. Nyní se podíváme na jeden z těch nejstarších - je to metoda propojení segmentů pomocí síťových mostů (bridge). Toto zařízení dokáže nejenom spojit dva segmenty dohromady, ale navíc rozšiřuje dosah sítě a především dokáže regulovat provoz na síti. Takovýto most se chová jako každý jiný uzel ale s tím rozdílem, že pakety sám nevytváří, ale pouze pakety z jednoho segmentu zaznamená, upraví a pošle do segmentu druhého.


Zjednodušená ukázka funkce síťového mostu.

Jednou ze největších výhod těchto mostů je to, že dokáží zahazovat nepotřebné pakety. Jednoduše prostě zkontroluje cílovou adresu předtím, než paket někam odešle. Díky tomu například paket z jednoho segmentu není po příchodu do mostu znova poslán zpět do stejného segmentu, ale pouze do segmentu druhého. Pokud tedy paket z jednoho segmentu má být doručen do segmentu druhého, most ho musí přesměrovat (packet forwarding). A především díky těmto metodám je umožněna komunikace uvnitř jednotlivých segmentů bez toho, aby byly jakkoliv omezovány segmenty ostatní.

Most tedy dokáže vyřešit zahlcování sítě pomocí rozdělení na segmenty, které posléze propojí. Důležité je si uvědomit, že most pošle packet z jednoho segmentu na všechny zbývající, což ale může být ve výsledku kámen úrazu, pokud je síť velká a hodně rozdělená. V případě, kdy hodně stanic v takovéto síti současně vysílá, to může být větší problém, než kdyby to byla síť vcelku bez dělení do segmentů. Řešením může být logické segmentování za pomocí routeru. V praxi to vypadá tak, že síť je jako by pořád vcelku, ale je oddělena do jednotlivých segmentů pouze logicky. Router pracuje na sadě protokolů, které jsou zcela nezávislé na technologii v sítí, což umožňuje snadné propojení několika sítí pracujících s jinými technologiemi - například LAN a WAN. To umožňuje celosvětové rozšíření a propojení sítí jako součást Internetu.

Narozdíl od starých sítí založených na médiu z koaxiálního kabelu ty nové využívají jako médium kroucenou dvojlinku a nebo nejmodernější optické kabely pro zapojeni do paprskovité topologie. Dalším podstatným pokrokem je zrychlení v těchto sítích ze zastaralých 10Mbps na 100Mbps či dokonce 1Gbps. Nejzajímavější je však způsob zapojení pomocí spínaného Ethernetu. V takovýchto sítích odpadá problém jednoho sdíleného média a je nahrazen samostatnými segmenty pro každou stanici či uzel. Tyto segmenty jsou zapojeny do switche, který funguje v podstatě jako síťový most, ale dokáže navzájem a současně propojit mnoho nezávislých segmentů. Moderní switche dokáží obsloužit stovky segmentů současně a prakticky jedinými zařízeními na segmentech jsou koncová stanice a switch. Toto zařízení posílá síťové pakety do určených segmentů avšak právě díky tomu, že v tomto segmentu je jen jedna stanice, není potřeba, aby bylo rozlišováno, kdo ji má přijmout. A právě toto umožňuje nezávislou komunikaci mnoha stanic ve stejném čase.



I takto může vypadat topologie ve spínaných sítích.

Spínaný Ethernet nám dává ještě jednu neopomenutelnou výhodu. Tou je Full-duplex mód (plně duplexní), což v praxi znamená, že stanice je schopna ve stejnou chvíli data nejen odesílat nebo přijímat, ale zvládá obě dvě činnosti současně. Ethernet v dobách koaxiálu byl pouze half-duplex, což pro uživatele znamenalo, že v tu samou chvíli mohl vždy buď jen přijímat a nebo vysílat. V kompletně spínaných sítích každá stanice vždy komunikuje skrze switch a nikdy ne přímo s další stanicí, což nám přináší další výhodu oproti starším typům sítě - jelikož je každá stanice na svém segmentu sama, nemusí neustále zjišťovat, zda nemůže dojít ke kolizi vlivem současného vysílání více stanic, což umožní to, že stanice může vysílat data do switche v tu samou chvíli, jako je z něj přijímá. V dnešní době už se prakticky jiná topologie sítí než je tato nevyužívá a proto se na ni podíváme podrobněji.