Obecně vzato, síť umožňuje počítačům komunikovat. Zajímavější jsou případy, kdy máme spojené aspoň tři počítače, ale často se síťování používá i pro komunikaci programů v rámci jednoho stroje – například když si založíte na zkoušku na počítači vlastní webserver. Při komunikaci po síti nám operační systém může pohodlně zaručit zabezpečení a ověřování dat, pokud si to přejeme.
Ať mluvíme o čemkoli, rozlišujeme komunikaci spojovanou (obě strany navážou spojení, pak se spolu baví a nakonec spojení uzavřou; například telefonní hovor) a nespojovanou (data je potřeba vždy označit adresou příjemce, ale můžeme psát kdykoli komukoli; například papírová pošta).
Přestože síťová komunikace bývá po sériových rozhraních a běží v reálném čase, můžeme si představovat, že po síti běhají balíky dat; jedna strana data chvíli odesílá, druhá je přijímá. Slovo "balík" není žádný termín; na linkové vrstvě by se tomu říkalo rámec, na síťové datagram, při spojované komunikaci bychom tomu říkali paket. Podrobněji rozebereme níže.
Pro síť je velmi pohodlné, že spolupracují všechny počítače a data můžete posílat přes prostředníka – nemusíte mít ke každému adresátovi přímý kabel. (Tohle opět není nutnost, ale dobrý zvyk.) K tomu se vztahují termíny routing (směrování; činnost, kdy počítač hledá, kudy poslat přijatá data dál) a forwarding (přeposílání; samotná činnost, kdy data zvoleným směrem předá).
O síťových vrstvách modelu TCP/IP jsem psal podrobněji v poznámkách z loňska. Nemusíte o nich vědět všechno, ale měli byste je umět aspoň zhruba vyjmenovat: odspodu vrstva linková neboli fyzická (Ethernet), síťová (IP), transportní (TCP nebo UDP), aplikační (například HTTP).
U drátového připojení je nejjednodušším prvkem síťový kabel. Měli byste ho umět zařadit: je to pasivní prvek linkové vrstvy. Bývá to osmižilový kabel kroucených párů. Napětí na vývodech v rámci jednoho páru je vždycky opačné; příjemce bere právě jejich rozdíl, aby odstranil rušení rádiem. Konkrétní napětí záleží na rychlosti spojení, ale je to něco jako +2V/-2V.
Jen o kousek složitější prvek linkové vrstvy je HUB čili opakovač. Funguje tak, že pokud najde napětí na některém kabelu, zaokrouhlí ho na správnou hodnotu (tedy zesílí) a předá do všech ostatních kabelů. Je to aktivní prvek, protože žere elektrický proud ze zásuvky.
Switch se liší tím, že si z přijatého datagramu přečte adresu příjemce a pošle data jen do správného kabelu. Obvykle funguje na linkové vrstvě a tedy může číst leda MAC adresu; to, co dělá, tedy není směrování. Význam může mít pro rychlost (když je chytrý, může přes něj probíhat několik datagramů mezi různými dvojicemi počítačů zároveň) a především pro bezpečnost, protože do určité míry brání ostatním číst data, která jim nepatří.
Slovem router můžeme označit vlastně cokoliv složitějšího. Může to být zařízení na síťové vrstvě, které přečte IP adresu a nějakým jednoduchým způsobem rozhodne, kam datagram přeposlat. Zrovna tak to může být obyčejný počítač s aspoň dvěma síťovými kartami, který přečte každý příchozí paket, zkontroluje, že neobsahuje žádná politicky nekorektní data, a všechny obrázky obrátí vzhůru nohama.
Různých síťových zařízení je samozřejmě spousta; můžete se zmínit taky třeba o wifi-routeru, tiskovém serveru nebo firewallu.
Podsíť je pojem týkající se modelu TCP/IP. Z celé sítě tím uděláme jeden velký strom (ve smyslu progamátorském či mafiánském). Zjednodušuje to směrování – stručně řečeno, díky tomu váš počítač nemusí znát architekturu celého Internetu, abyste mohli stahovat webové stránky. Když je paket v podsíti příjemce, přepošle se přímo jemu, jinak se přepošle na bránu (tj. nějaký počítač, který tak označíme; může jich být i víc, podle toho, jak se to nastaví).
Podsíť má svoji adresu a navíc zvláštní masku; obojí jsou to v případě IPv4 čísla o 32 bitech. O příslušnosti počítače do podsítě rozhodneme tak, že si v bináru napíšeme pod sebe jeho adresu, adresu podsítě a masku:
desítkově | první binárně | druhé binárně | třetí binárně | čtvrté binárně | |
IP adresa počítače | 192.168.57.15 | 11000000 | 10101000 | 00111001 | 00001111 |
IP adresa podsítě | 192.168.48.0 | 11000000 | 10101000 | 00110000 | 00000000 |
Maska podsítě | 255.255.240.0 | 11111111 | 11111111 | 11110000 | 00000000 |
Pro každý bit platí: pokud je tady maska 1, pak se adresa počítače rovná adrese podsítě. Když je maska 0, je to fuk.
Je dobrým zvykem (tedy, jen totální pošuk by to udělal jinak) mít v masce na začátku samé jedničky a potom samé nuly. Pak ji stručně můžeme vyjádřit počtem těch jedniček na začátku. Adresu podsítě navíc snadno odvodíme z masky a adresy počítače (dáme nuly tam, kde je maska nulová), takže všechna tři předchozí čísla můžeme shrnout jako 192.168.57.15/20.
Tahle otázka je trochu na improvizaci, ale těžko na ni odpovědět špatně. Já (Adam) tady nabízím jedno řešení, ale klidně si vymyslete něco jiného.
Představuju si, že podnik sídlí v poměrně malé, zhruba třípatrové budově. Síť bych dělal především v drátech jako 1Gb Ethernet. Na každém patře bych dal jeden switch a od něj vedl všechny kabely k počítačům na patře (ty budou patřit převážně podniku). Do jedné vhodné místnosti (sklepa, kotelny nebo tak) bych dal hlavní switch, do kterého bych zavedl kabely ze switchů všech pater. Do téže místnosti bych umístil databázový server a připojil ho rovnou k hlavnímu switchi.
Kromě toho bych (asi jen do prvního patra) dal wifi router zabezpečený heslem přes WPA-PSK a připojil ho kabelem k hlavnímu switchi. Heslo bych napsal na papírek a přilepil na kávovar. Na wifi routeru bych filtroval všechny porty kromě 80 (HTTP) a 445 (HTTPS) a zakázal spojení do vnitřní sítě (bezdrátová síť bude sloužit jen pro přístup na web z telefonů a tak).
Do síťové místnosti bych zavedl taky kabel od poskytovatele připojení k Internetu a zapojil ho do dalšího routeru, který bude sloužit jako firewall. Zapojil bych do něj taky webserver a hlavní switch. Zakázal bych spojení z vnějšku na jiné adresy, než je webserver na portu 80 a 445. Spojení po vnitřní síti bych nijak neomezoval. Na tomhle hlavním routeru bych povolil DHCP server.
Na webserver bych nainstaloval Ubuntu Linux v serverovém vydání a verzi s Long Term Support, webový server Apache a vhodný skriptovací jazyk (nejspíš PHP, podle požadavků webdesignéra), dále poštovní server (jakýkoli, nejspíš Dovecot). Na databázový server bych dal Microsoft Windows 2008 Small Business Server a nastavil ho jako hlavní server pro Active Directory; tím budou spravovány účty všech uživatelů. (Kdyby Active Directory nebyl v podniku potřeba, dal bych Ubuntu i na tenhle server.) Kromě toho bych na něj nainstaloval MySQL databázi, kterou bude používat webový server a možná některé další programy.