====== Zadání ======
Počítačové sítě: OSI a TCP/IP modely počítačové sítě, směrovací a přepínací protokoly pro IP sítě, transportní protokoly. IPv4 a IPv6, pokročilé vlastnosti IPv6. Principy přenosu dat, spojované a nespojované sítě, kvalita služeb.
====== Vypracování ======
===== OSI a TCP/IP modely počítačové sítě =====
ISO OSI model počítačové sítě:
* application layer - síťové aplikace
* presentation layer - prezentace dat
* session layer - sezení, obnova sezení
* transport layer - komunikace mezi procesy, zajištění spolehlivosti
* network layer - síťové adresování (logické), směrování
* data link layer - MAC a LLC (fyzické adresování)
* physical layer - přenosové médium, signály, reprezentace bitů
ISO OSI model není moc používán, v praxi se používá TCP/IP model:
* application layer - OSI vrsty application layer, presentation layer a session layer
* transport layer - OSI vrstva transport layer
* internet layer - OSI vrstva network layer
* network access layer - OSI vrstvy data link layer a physical layer
===== Směrovací a přepínací protokoly pro IP sítě =====
Směrování je proces nalezení cesty v síti mezi dvěmi komunikujícími uzly. Směřování je zajištěno routery, které využívají směrovací protokoly pro zjištění informací o síti.
Internet je rozdělen na autonomní systémy - cílem je zmenšit overhead routování. Vrámci internetu se pak rozlišuje mezi směrováním vrámci autonomního systému a mezi autonomními systémy.
==== Distance vector ====
Sousední routery si periodicky vyměňují svoje směrovací tabulky. Metrikou je obvykle počet "hopů". Využívá se Bellman-fordův algoritmus.
Distance vector protokoly:
* RIP (routing information protocol) - používá počet "hopů" jako metriku, routery si vyměňují informace každých 30 vteřin před UDP s timeout 180s. Vhodné pro malé sítě.
* IGRP (interior gateway routing protocol) - používá pět různých metrik, stojí příno nad IP prokolem, podporuje víc cest pro směrování. Nepodporuje variabilní délku maskování podsítě.
* EIGRP (enhanced interior gateway routing protocol) - vylepšení IGRP (žádné cykly, spolehlivé doručení, variabilní délka maskování podsítě, ...)
==== Link State ====
Routery si vyměňují informace o stavu jejich linek a udržují si informaci o kompletní topologii sítě. Nejkratší cesty jsou počítány Dijstrovým algoritmem.
Link State protokoly:
* OSPF (open shortest path first) - v současnosti nejvyužívanější LS protokol. Jako metriku využívá cenu, která ja automaticky odvozena z propustnosti linky. Podporuje autentizované zprávy, umožňuje rozdělní autonomních systémů na oblasti a přidat tak další úroveň hierarchie. Podporuje load-balancing využitím více-násobných odchozích linek. Stojí přímo nad IP.
* IS-IS (intermediate system to intermediate system) - ISO standard. Taky podporuje přidanou hierarchii pomocí dvou-vrstvých oblastí. Packety jsou zabaleny přímo v L2 hlavičkách. Může být použit pro směrování teoreticky libovolným protokolem. Dokáže určit přetížené routery, má ale menší rozsah metriky než OSPF (rozšířený rozsah metriky je větší než u OSPF). Je míň ukecaný než OSPF a škáluje pro velké sítě, ale nenabízí tolik vlastností a rozšíření jako OSPF.
==== Path vector ====
Varianta distance vectoru - routery si nevyměňují pouze informace o konzových bodech ale celé cesty, což umožňuje lehčí detekci cyklů a definování pravidel/politiky.
Path vector využívá BGP (border gateway protocol) protokol. BGP podporuje redundanci, poradí si s cykly, byl navržen kvůli růstu Internetu a požadavcích na podporu komplexních topologií. BGP přenáší informace o sítích v autonomním systému do jiných autonomních systémů. BGP stojí nad TCP protokolem, umožňuje definování směrovacích pravidel. Jako metriku používá počet "hopů". Vnitřní routery autonomního systému jsou informovány o sousedních autonomních systémech pomocí IGBP (Internal BGP).
===== Transportní protokoly =====
==== UDP ====
UDP (User Datagram Protokol) poskytuje jednoduchý bezstavový přenos bez handshaků. Protokol nezajišťuje spolehlivost přenosu a uspořádání packetů. UDP packet obsahuje pouze zdrojový a cílový port, délku, kontrolní součet a samotná data.
==== TCP ====
TCP (Transmission Control Protocol) poskytuje spolehlivé a uspořádané doručení packetů. Protol vyžaduje handshake před samotným začátkem přenosu dat. TCP packet obsahuje zdrojový a cílový port, číslo sekvence, acknowledgment číslo (pro flag ACK), data offset, 3 vyhrazené bity, 9 bitů pro různé flagy (SYN, FIN, ACK, ...), velikost okna, kontrolní sumu, urgentní pointer (pro flag URG), volitelné podmínky (pokud je data offset větší než 5) zarovnané nulami v případě potřeby a samotná data.
Protokol využívá velikost okna pro kontrolu zahlcení sítě/příjemce.
==== Multithread TCP ====
Využívá více TCP proudů na přenos dat. Vylepšuje chování TCP pouze při izolovaných strátách packetů. Nevýhodou je vyšší složitost, lineární start a synchronní přetěžování front a cache v routrech.
==== GridDT ====
Představuje kolekci ad-hoc úprav: sstresh (rychlý start). Má upravé chování změny velikosti okna (AIMD): nárast o $a$ při úspěchu, $b$-násobek při stratě packetu.
==== Scalable TCP ====
Mění chování změny velikosti okna: nárast o $0.1 \times cwnd$ při úspěchu, o $0.01$ při ACK a pokles na $0,875 \times cwnd$ při ztrátě packetu. Při malé velikosti okna nebo vysoké míře strát přepne do AIMD módu.
==== High-speed TCP ====
Používa kontrolu zahlcení AIMD/MIMD: nárast o $a(cwnd)$ při úspěchu, o $\frac{a(cwnd)}{cwnd}$ při ACK. Při stratě packetu zmenší $cwnd$ na $b(cwnd) \times cwnd$. Na sítích s malou velikostí okna nebo vysokou strátovostí emuluje správání klasického TCP.
==== BIC-TCP ====
Výchozí algoritmus v Linuxové jádře (od 2.6.8 nahoru). Používá binární vyhledávání pro nalezení $cwnd$. Má 4 fáze: reakce na strátu packetu, aditivní nárast, binární vyhledávání, testování maxima. BIC-TCP je místy považováno za příliš agresivní na TCP - obzvlášť na pomalých sítích nebo s krátkým RTT.
==== CUBIC-TCP ====
Nové vydání BIC-TCP, které využívá kubickou funkci a redukuje počet fází.
==== Quickstart ====
Využívá pole QS TTL a Initial Rate v IP packetu. QS TTL nastaví na libovolně (dostatečně) velikou hodnotu a Initial Rate na požadovanou rychlost, kterou chce vysílat, a pošle SYN packet. Každý router po cestě s podporou QS sníží QS TTL o jedna a sníží Initial Rate v případě potřeby. Příjemce pošle QS TTL a Initial Rate v SYN/ACK packetu vysílajícímu. Vysílající se dozví, jestli všechny routery podporují QS (porovnání QS TTL a TTL). Vysílající pak nastaví vhodné $cwnd$ a začne používat algoritmus kontroly zahlcení (např. AIMD). Protokol ale vyžaduje změny na IP vrstvě.
==== E-TCP ====
Early Congestion Notification (ECN), součást Advanced Queue Management (AQM), je bit, který nastavují routery pokud se blíží zahlcení, musí být zrcadlen příjemcem. Vysílající musí reagovat na ECN stejně jako na strátu packetu. Administrátoři ale musí nakonfigurovat AQM/ECN.
E-TCP mirroruje ECN pouze jednou (při prvním výskytu), příjemce zmrazí velikost $cwnd$ při ECN bitu. Protokol vyžaduje zavedení malých syntetických strát v síti kvůli férovosti a změnu reakce příjemce na ECN bit.
==== FAST ====
Fast AQM Scalable TCP používá end-to-end spoždění, ECN a stráty packetů pro detekci a předcházení zahlcení.
==== tsunami ====
Používá TCP pro kontrolní kanál (dohoda parametrů, požadavky na retransmisi - NACK namísto ACK, dohoda ukončení spojení), UDP pro přenos dat (MIMD kontrola zahlcení, vysoce nastavitelné).
==== Reliable Blast UDP (RBUDP) ====
Podobné tsunami, navrhnuté pro disk-to-disk přenosy, posílá data v uživatelsky definované rychlosti.
==== eXplicit Control Protocol (XPC) ====
Používá feedback od routerů.
==== Jiné přístupy ====
SCTP: Multi-vláknové, multi-zdrojové přenosy (uzl může mít víc IP adres). Orientované na zprávy jako UDP, zajišťuje spolehlivý, uspořádáný přenos.
DCCP: Nesplehlivý protokol (jako UDP) s kontrolou zahlcení kompatibilní s TCP.
STP: Založeno na CTS/RTS, jednoduchý protokol implementovatelný v HW, který nemá sofistikovanou kontrolu zahlcení.
Reliable UDP: Zajišťuje spolehlivé a uspořádané doručení. Původně navrženo pro IP telefonii.
XTP(Xpress Trasfer Protocol), atd...
===== IPv4 a IPv6 =====
==== Rozídly mezi hlavičkami ====
{{http://cisconet.com/images/stories/users/ipv4_header.png}} {{http://cisconet.com/images/stories/users/ipv6_header.png}}
==== Vlastnosti ====
| ^ IPv4 ^ IPv6 ^
^ Adresa | 32 bitů (4 bajty) | 128 bitů (16 bajtů) |
^ Adresný prostor | víc než 109 možných adres | víc než 1038 možných adres |
^ Hlavička | variabilní délka - náročné na zpracování | fixná délka 40 bajtů - efektivnější |
^ Speciální pole v hlavičce | mnoho druhů, obvykle nepodporováno kvůli výkonu | odstraněno nebo nahrazeno jinými vlastnostmi |
^ Velikost packetu | 65536 bajtů max | normální packet do 65536 bajtů, "jumbogram" až do 4 miliard bytů |
^ Alokace adres | třídou (A, B, C), CIDR, lokální pouze vrámci linky, adresy pro expanzy už vyčerpány | IPv4 kompatibilita, hierarchické podle registrátora, poskytovatele, odběratele a podsítě, hierarchické podle geografické oblasti, lokální využití linkou nebo oblastí, víc než 70% rezervováno pro expanzi |
^ Zápis adres | 4 čísla 0-255 oddělená tečkami | hexadecimální, zapsáno po 4 ve skupinách, oddělené dvojtečkami, podpora skratek (vynechání úvodních nul a sekvence nulových bloků) |
^ Typy adres | unicast, lokální broadcast, limitovaný multicast, experimentální anycast (není dostupný globálně) | unicast, multicast (linka, oblast, organizace, libovolné seskupení), anycast (nejbližší zařízení ze skupiny) |
^ Fragmentace | na libovolném uzlu sítě, snižuje výkon směrování | učiněno pouze koncovými uzly, zlepšuje se tak výkon |
^ Quality of Service | definováno, ale nepoužíváno konzistentně | flow label, priority, podpora pro real-time data a distribuci multimédií |
^ Zabezpečení | limitována, řešeno pomocí IPsec | IPsec součástí (není bezpečnější než IPv4) |
^ Správa konfigurace | převážně manuální | automatická konfigurace na základě fyzických adres, bezstavová automatická konfigurace |
^ Správa routování | BGP-4 mezi subdoménami, velké směrovací tabulky, OSPF a RIP v subdoménách | IDRP mezi doménami, agregované tablky pro menší nároky na úložiště, aktualizované OSPF a RIP |
===== Pokročilé vlastnosti IPv6 =====
==== Extension headers ====
Hlavička IPv6 packetu obsahuje pouze nejzákladnější a nejnutnější informace. Pro účely rozšíření umožňuje IPv6 tzv. extension headers, které představují dodatečné hlavičky packetu. Tyto hlavičky je možné řetězit. Tuto funkcionalitu využívá například IPsec v IPv6.
==== Anycast adresy ====
Anycast adresa identifikuje skupinu zařízení, ale data jsou (narozdíl od multicastu) doručena pouze jednomu (obvykle nejbližší uzl).
==== Path MTU discovery ====
Před zahájením samotného přenosu mezi uzly musí zařízení zjistit vhodnou velikost packetů, protože IPv6 nepovoluje fragmentaci packetů (router packet zahodí a pošle zpátky ICMPv6 Packet Too Big). Proces funguje tak, že zdrojové zařízení pošle packet velikosti MTU lokální linky. Pokud se vrátí ICMPv6 Packet Too Big, zmenší velikost na velikost uvedenou v ICMPv6 packetu a pokus opakuje.
==== Neighbor discovery protocol ====
Slouží primárně na překlad IP adresy na fyzickou adresu. Tento protokol je používán na:
* autokonfiguraci IPv6 adresy (stateful/stateless)
* zjištění prefixu sítě, routerů a jiných konfiguračních informací
* detekci duplikátních IP adres (DAD)
* zjištění L2 adresy uzlu na stejném spojení
* nalezení sousedných routerů pro přeposílání packetů
* udržování si přehledu o dostupných a nedostupných sousedech (NUD)
* detekci změny link-layer adresy
Prokol sestává z následovných ICMP zpráv:
* router solicitation (RS) - autokonfigurace (zjištění routerů, atd)
* router advertisement (RA) - odpověď na RS, pravidelně vysílánou routerem
* neighbor solicitation (NS) - zjištění L2 adresy souseda, ověření jeho dostupnosti a detekce duplicitních adres
* neighbor advertisement (NA) - odpověď na NS, použito pro oznámení změny L2 adresy
* ICMP redirect - posláno packetem pokud je možné packet doručit rychleji skrz jiný router
Pozn.: protokol je možné využít i pro inverzní vyhledání sousedů.
==== Mobility support ====
Podpora mobility je založená na myšlence že i mobilní zařízení jsou někde doma. Mobilní zařízení má proto adresy:
* home address - globální unicast adresa kde je zařízení vždy dostupné
* care-of address - globální unicast adresa použita když zařízení není doma (záleží od aktuální sítě)
Terminologie:
* correspondent node (CN) - uzl, který komunikuje s mobilním zařízením
* home agent (HA) - router v domácí síti, který zajišťuje dostupnost mobilního zařízení
* route optimization - nepovinná optimalizace komunikace mezi CN a mobilním zařízením pomocí přímé komunikace (bez HA), jinak se používá obousměrné tunelování skrz HA
Když mobilní zařízení není v domácí síti, zaregistruje si svoji care-of adresu u HA.
Pro ověření identity mobilního zařízení (že opravdu vlastní home adresu i care-of adresu) se používá Return Routability (RR) Procedure:
* CN komunikuje s mobilním uzlem přes HA, mobilní uzl odpoví
* CN komunikuje s mobilním uzlem pomocí care-of adresy, mobilní ulz odpoví
* CN a mobilní uzl se dohodnou na přímé komunikaci skrz care-of adresu
==== IPv6 zabezpečení ====
Bezpečenost je zajištěna sadou protokolů IPsec, které jsou povinnou součástí IPv6. IPsec poskytuje:
* autentizaci - authentication header (AH)
* šifrování - encapsulating security payload (ESP)
* definici pro použití kryptografických algoritmů pro šifrování a autentizaci
* definici bezpečnostních politik a bezpečnostních asociací mezi komunikujícími ulzy
* správu klíčů
===== Principy přenosu dat =====
Přenos dat po sítí vyžaduje kódování dat do podoby, kterou je možné přenést médiem a umožňuji detekci nebo opravu chyb. Tato problematika je detailně spracována v [[mgr-szz:in-psk:12-psk|otázce 13]].
===== Spojované a nespojované sítě =====
Spojované sítě při vytváření spojení vytvoří dedikovaný okruh mezi komunikujícími uzly. Tento okruh je pak dedikován po celou dobu komunikace komunikujícím uzlům. Spojované sítě snadno zajišťují QoS.
Nespojované sítě nevytváří okrhy, jsou best-effort. V nespojovaných sítích komunikuje tolik uzlů, kolik síť unese a všechni mají rovnaký přístup k prostředkům sítě - QoS se zajišťuje těžko.
===== Kvalita služeb =====
Zajištění kvality služeb (Quality of Service - QoS) spočíva v prostředí sítí primárně na zajištějí jistého přenosového pásma, rozptylu nebo odezvy.
Existují dvě navrhnuté architektury pro poskytování datových proudů s prioritami a zárukou kvality:
* integrované služby - založeno na paradigmu že pásmo a všechny související zdroje jsou rezervované pro každý proud mezi koncovými uzly (routery si udržují informaci o proudech a analyzují každý packet)
* diferencované služby - založené na označení packetů (přiřazení třídy priority packetům)
==== Integrované služby ====
Aplikace oznámí síti svoje požadavky na kvalitu. Síť skontroluje jestli jsou dostupné požadované zdroje a jestli je možné požadavku vyhovět. Síť odmítne vytvoření spojení pokud není možné požadavku vyhovět. Pokud je možné požadavku vyhovět, síť upovědomí všechny prvky sítě na cestě k cíli spojení aby si rezerovali zdroje pro proud dat.
Nevýhodou je, že je nutné udržovat stav vnitřních uzlů sítě, co může vést k problémům se škálováním.
==== Diferencované služby ====
Přesná definice požadovaných QoS parametrů není vždy nutná - obvykle postačí záruka, že se kvalita spojení nezhorší od vytvoření.
Difirencované služby nevyžadují protokoly pro rezervaci zdrojů. Každý packet je označen třídou priority při vytvoření (vstupu do sítě), která je uložena v Traffic class poli IPv6 packetu. Vnitřní uzly sítě spracovávají packet na základě jeho priority.
Hlavní výhody:
* jednoduchost (na implementaci)
* žádná stavová informace na uzlech sítě
* žádné úvodní zdržení kvůli rezervaci zdrojů
==== Podpora v IPv6 ====
V IPv6 hlavičce jsou dvě pole pro zajištění QoS:
* trafic class (packet priority - PRI) - 1 byte, prvních 6 bitů použitelných jako DiffServ field (DS), poslední 2 bity představují Explicit Congestion Notification (ECN)
* flow label - 20 bitové pole ktoré umožňuje klasifikaci packetů patřících ke specifickému produ dat, využití je doposud otevřené diskusi
====== Předměty ======
[[https://is.muni.cz/auth/predmety/predmet.pl?id=585096|FI:PA159]] Počítačové sítě a jejich aplikace I (podzim 2010), doc. RNDr. Eva Hladká, Ph.D.
====== Použitá literatura ======
Google
====== Vypracoval ======
DevelX - Martin Jurča
stav - 100 %