====== AP7, IN7 Počítačové sítě ======
===== Zadání: =====
Počítačové sítě (topologie, přístupové metody a architektury počítačových sítí (Ethernet, Fast Ethernet, Token-ring, ATM, ... ). Bezdrátové komunikační technologie. Model OSI. Protokol TCP/IP. Propojování počítačových sítí a směrování informací)
===== Vypracování =====
==== Úvod ====
Motto: „Hlavním smyslem počítačových sítí jsou jejich aplikace.“
=== Parametry sítě dle nároků aplikací: ===
* **Propustnost** -- objem přenesených dat za jednotku času
* **Zpoždění** (latence) -- doba mezi požadavkem a odezvou
* **Rozptyl** (jitter) -- kolísání zpoždění
=== Ideální vs. reálná síť ===
* Transparentní struktura s end-to-end vlastnostmi vs. reálná struktura
* Neomezená vs. limitovaná propustnost
* Nulové zpoždění vs. zpoždění na aktivních prvcích a při přenosu
* Nulový vs. vysoký rozptyl
==== OSI model ====
Abstraktní model určený jako podklad pro standardizaci norem v oblasti sítí a tvorbu síťových protokolů.
Sestává ze sedmi vrstev, každá má definovánu množinu vlastností a funkcí potřebných pro komunikaci. Každá vrstva využívá služeb své sousední nižší vrstvy a poskytuje své služby sousední vyšší vrstvě.
=== Popis vrstev ===
* **Aplikační** -- Účelem je poskytnout aplikacím přístup ke komunikačnímu systému a umožnit tak jejich spolupráci (Telnet, SSH, FTP, SMTP).
* **Prezentační** -- Funkcí vrstvy je transformovat data do tvaru, který používají aplikace (Samba).
* **Relační** -- Zajišťuje dialog mezi spolupracujícími relačními vrstvami obou systémů. Slouží k ustavení, udržení a ukončení relace mezi komunikujícími stranami (SSL).
* **Transportní** -- Zajišťuje přenos dat mezi koncovými uzly (TCP, UDP).
* **Síťová** -- „Vrstva routerů“, stará se o směrování v síti a síťové adresování. Poskytuje spojení mezi systémy, které spolu přímo nesousedí (IP).
* **Spojová** -- „Vrstva switchů“, poskytuje spojení mezi dvěma sousedními systémy.
* **Fyzická** -- Specifikuje fyzickou komunikaci. Definuje všechny elektrické a fyzikální vlastnosti zařízení.
{{:home:prog:osi_model.jpg|ISO/OSI model}}
Mnemotechnická pomůcka k pořadí vrstev: //**P**lease **D**o **N**ot **T**ell **S**ecret **P**asswords **A**nytime.//
==== Protokoly ====
===TCP==
//Transmission Control Protocol//((http://ftp.fi.muni.cz/pub/rfc/rfc793.txt))
Spojovaná služba čtvrté vrstvy, jež poskytuje //zaručený// proud slabik (žádné ztráty, zachovává pořadí paketů).
* potvrzuje zaslané zprávy
* používá piggybacking (potvrzení posílá spolu s dalšími daty)
* pro zachování pořadí čísluje pakety
* pokud nedorazí paket, příjemce vyšle potvrzení o nedoručení a všechny následující pakety zahazuje
* existuje několik různých implementací protokolu (Tahoe, Reno, Vegas -- názvy dle měst v Nevadě :))
**4 základní algoritmy**
* Pomalý start
* congestion window (''cwnd''), vysílající definuje objem dat, který smí být vyslán
* receiver advertised window (''rwnd''), příjemce definuje objem dat, který akceptuje
* po každém potvrzení se zvyšuje ''cwnd'' o jeden segment (512 B)
* dochází k exponenciálnímu navyšování objemu posílaných dat až do ''ssthresh'', pak končí
* Zábrana zahlcení
* nárůst pouze lineární
* ''cwnd'' se zvyšuje o segment pouze za RTT
* Round Trip Time -- čas, jenž data potřebují na cestu mezi vysílajícím a přijímajícím a zpět)
* Rychlá retransmise
* reakce na duplikované potvrzení (příjem 3 duplikovaných potvrzení detekuje ztrátu segmentu)
* následuje jeho opětovné zaslání
* Rychlé vzpamatování
* jedná se o způsob, jak předejít návratu do fáze pomalý start po ztrátě paketů
* posíláme více dat a čekáme na potvrzení, podle toho pak upravíme ''cwnd''
{{:home:prog:tcp_reno.png|TCP Reno}}
Implementace TCP Reno, exponenciální část křivky = Slow start, lineární nárůst = Congestion avoidance, pokračování od hodnoty ~''ssthresh'' = fast recovery
=== UDP ===
//User Datagram Protocol//((http://ftp.fi.muni.cz/pub/rfc/rfc768.txt))
Nespojovaná, nezajištěná služba (odpovědnost za pakety nese aplikace) 4. vrstvy ISO/OSI. Určená pro prostý přenos paketů. De facto je to rozšíření IP protokolu o informaci o portech.
=== IP ===
//Internet Protocol//((http://ftp.fi.muni.cz/pub/rfc/rfc791.txt))
Otevřený škálovatelný protokol síťové vrstvy. Zajišťuje dopravu dat mezi uzly. Určen pro velké sítě.
Dvě verze: **IPv4** a **IPv6**
=== ICMP ===
//Internet Control Message Protocol//((http://ftp.fi.muni.cz/pub/rfc/rfc792.txt))
Doprovází IP, slouží k zjišťování stavu sítě a k odhalení chyb při přenosu paketů.
ICMP zprávy: Destination unreachable, Redirect, TTL expired, Echo request/reply
==== Topologie ====
* **Hvězda**
* **Kruh**
* **Sběrnice**
* **Strom, Mesh atd.**
{{:home:prog:topology.gif|Topologie}}
==== Architektury a přístupové metody ====
MAC -- Medium Access Control (řízení přístupu k médiu)
Protokoly pro MAC mohou být založeny na:
* soupeření (connection-based)
* rezervaci prostředků (času, kanálu)
* předávání oprávnění (token-based)
* kombinaci předchozích metod
Faktory, jež ovlivňují výběr MAC protokolu:
* konfigurace spoje (jednosměrný, half duplex, full duplex)
* (ne)možnost všesměrového vysílání
* topologie spoje (point-to-point, bus, ring)
* spolehlivost a chybovost
* přenosová rychlost (b/s)
* vzdálenost nebo délka vedení
* rychlost šíření signálu v médiu
* zpoždění signálu v aktivních prvcích
=== MAC protokoly se soupeřením ===
Negarantují, kdy bude moci stanice vysílat. (Garantují, že nemusí vysílat nikdy. ;))
== Aloha ==
* vznikl na Hawaii
* všesměrové rádiové vysílání
* každá stanice vysílá, kdykoliv má požadavek
* využití teoretické kapacity kanálu max. 18 %
== CSMA ==
* Carrier Sense Multiple Access
* nesynchronizovaná kolizní metoda (jako Aloha)
* vysílající poslouchá signál
* tři druhy
* **nenaléhající CSMA** -- je-li kanál obsazen, čeká náhodný interval
* **1-naléhající CSMA** -- čeká, dokud není volno, potom okamžitě vysílá
* **//p//-naléhající CSMA** -- je-li volno, vysílá s pravděpodobností //p// (//p// by měla být menší než 1/(počet vysílajících))
== CSMA/CD ==
* CSMA/Collision Detection
* dtto CSMA, navíc vysílající poslouchá při vlastním vysílání
* zjistí-li kolizi, přeruší vysílání a vyšle rušící signál, aby kolizi detekovala i druhá vysílající stanice
* **není použitelné u rádiových přenosů**, protože přijímací část by při současném vysílání i naslouchání byla zahlcena vlastním signálem (rušila by sama sebe)
== CSMA/CA ==
* CSMA/Collision Avoidance
* nenaléhající CSMA, začátek čekacího intervalu je synchronizován na pravidelný čas
* **použití v bezdrátových sítích**
* potřeba opakování přenosu na základě potvrzení přijetí rámce
== Ethernet ==
* 1-naléhající CSMA/CD s exponenciálním růstem čekacího intervalu
* průchodnost se zmenšuje a zpoždění zvětšuje s rostoucím počtem vysílajících stanic
* není spravedlivý:
* pravděpodobnost vysílání při další příležitosti je menší u stanice, která je déle blokována
* stanice vysílající delší pakety jsou zvýhodněné
* spravedlivost roste s počtem stanic (ale...)
* řešení => propojení přepínačem (dojde ke zmenšení kolizních domén)
=== MAC s rezervací ===
* TDMA (Time Division Multi Access) -- pevně stanovená časová okna pro každou stanici (např. GSM)
== SDH a SONET ==
* Synchronous Digital Hierarchy (Evropa), Synchronous Optical NETwork (USA)
* protokoly pro vysoké rychlosti na optických médiích
* stejné principy, odlišné časování
* striktně point-to-point
* vychází z multiplexování digitalizovaných telefonních hovorů
* //synchronní// -- data jednotlivých příspěvkových toků se vždy nachází na stejném místě v rámci; rámce jsou neustále generovány na základě jednotného hodinového signálu
* na vzdálenosti tisíců kilometrů
* 10 Gb na stovky kilometrů, experimentálně 40 Gb
== ATM ==
* vznikl na popud několika velkých firem
* Cíle:
* podpora pro všechny existující i budoucí služby
* efektivní využití zdrojů
* zjednodušené směrování -> vysoké rychlosti
* QoS (Quality of Service) pro existující i budoucí služby
* rodina protokolů od síťové po fyzickou vrstvu
* **malé rámce pevné délky 53 B** -- buňky
* PCR -- Peak Cell Rate -- špičková přenosová rychlost
* SCR -- Sustainable Cell Rate -- agregovaná přenosová rychlost za nějakou dobu
* dohoda o parametrech spojení při jeho ustavení (connection-oriented služba)
* zvláštní protokolové vrstvy pro přizpůsobení běžným potřebám
* nakonec max. 622 Mb/s
* Typy provozu (BR = Bit Rate)
* CBR (Constant BR) -- specifikuje se datový tok, emulace pevné linky, snadná implementace, PCR=SCR
* VBR (Variable BR) -- složitá implementace, definuje zvlášť PCR a SCR
* VBR-rt (real time) -- streaming, pevně stanovené zpoždění
* VBR-nrt (non-real time) -- video on-demand, neexistují pevné limity pro zpoždění
* ABR (Available BR) -- pokus o adaptabilní službu typu TCP
* Resource Management Cell -- obsahuje informaci o požadavku na PCR, zajišťuje tak explicitně kontrolu zahlcení, přepínače po cestě RM sníží, nebo zachovají, cíl pošle RM s aktuální hodnotou vysílajícímu
* UBR (Unspecified BR) -- Best effort služba, je možné definovat PCR
=== MAC s předáváním oprávnění ==
* oprávnění vysílat (token) má vždy jedna stanice, je předáváno
* MAC protokol musí obsloužit chybové a neobvyklé stavy
* vytvoření tokenu při inicializaci
* obnovení tokenu po ztrátě v důsledku chyby média
* obnovení tokenu po ztrátě či zdvojení v důsledku chyby nebo vypnutí některé stanice
* řešeno algoritmy distribuované dohody
* Token Bus -- topologické uspořádání sběrnice
* Token Ring -- topologické uspořádání kruh
==== Směrování v sítích ====
Pakety prochází řadou směrovačů. Směrování může být statické i dynamické.
**Statické směrování**
* známe topologii
* existuje centrální směrovací tabulka, bývá zpracovávána "ručně" off-line. Díky tomu může být optimální pro danou topologii vzhledem k zadaným kritériím
* výhodou je jednoduchost, nevýhoda je vyšší citlivost na výpadky v síti a zátěž
**Dynamické směrování**
* adaptabilní na výpadky
* realizováno složitými algoritmy
* dynamické periodické výměny tabulek (dochází k dočasné nekonzistenci)
* hierarchie směrování
**Směrovací schémata mohou být:**
* **Distribuovaná** vs. centralizovaná
* "**Krok za krokem**" vs. zdrojová
* **Deterministická** vs. stochastická
* **Jednocestná** vs. vícecestná
* **Dynamická** vs. statický výběr cest
... a **Internet** je... červený :-)
=== Směrovací algoritmy ===
**Funkce**
* výběr komunikační cesty na základě daných kritérií (propustnost, zpoždění)
* vlastní doručení dat
**Vlastnosti**
* Správnost
* Jednoduchost
* Robustnost
* Stabilita
* Spravedlivost
* Efektivnost
* Optimálnost
**Výkonnostní kritéria**
* minimalizace počtu skoků (hops) přes aktivní prvky
* minimalizace „ceny“ cesty
**Druhy**
* Statické algoritmy
* jednorázové tabulky (často ručně vytvořené)
* neflexibilní, hodí se pro statickou topologii
* lze je dobře optimalizovat
* Dynamické algoritmy
* flexibilní a robustní
* nutnost zajistit aktualizaci směrovacích tabulek, potřebují protokol
* Dále se dělí na:
* centralizované -- stav se posílá do centra, centrum posílá tabulky uzlům
* izolované -- řešeno metodou náhodné procházky, vyžaduje zpětnou vazbu, šíření tabulek broadcastem = vysoká zátěž sítě
* distribuované -- uzly spolu vzájemně spolupracují
* dochází k periodické výměně směrovacích informací
Síť je reprezentována jako graf. Uzly jsou jednotlivé prvky sítě, hrany jsou komunikační linky mezi jednotlivými uzly. Hrany mohou být ohodnoceny -- lze určit cenu komunikace.
**Hierarchie směrování**
* Směrování k sítím (autonomní systémy)
* Směrování uvnitř sítí
===Směrování Distance Vector===
* Předpoklad: každý směrovač zná pouze cestu (adresa) a cenu (hrana) k sousedům
* Cíl: směrovací tabulka pro každý cíl v každém směrovači
* Idea: oznam sousedům svou představu tabulky
==DV algoritmus==
* Distance Vector = dvojice
* inicializace -- sousedé se známou cenou, zbývající uzly mají cenu nastavenu na nekonečno
* Periodické zasílání kopií DV sousedům
* Problém zacyklení (při výpadku hrany) řešen //dělením horizontu//, směrovač nikdy nesděluje cestu zpět k uzlu, od nějž se ji dozvěděl
* Typický zástupce: RIP (Routing Information Protocol)
===Směrování Link State===
* Stejný předpoklad a cíl jako u DV
* Idea: šíří se topologie, cesty si směrovače počítají samy
* Pracuje ve dvou krocích
- šíření topologie (broadcast)
- výpočet nejkratší cesty (Dijkstra)
* Typický zástupce: OSPF (Open Shortest Path First)
==== Bezdrátové komunikační technologie ====
**Klasifikace bezdrátových přenosů:**
* rádiové přenosy -- rádiové vlny s nízkým kmitočtem
* mikrovlnné přenosy -- rádiové přenosy na frekvencích nad 100 MHz
* IR přenosy -- komunikace na krátkou vzdálenost
* světelné přenosy -- úzký světelný paprsek
**Typy bezdrátových sítí**
* ad-hoc -- stanice komunikují přímo, vhodné pro dočasné sítě (LAN párty)
* infrastrukturní -- stanice komunikují prostřednictvím přístupového bodu (AP -- Access Point)
== Techniky rozprostřeného spektra ==
**DSSS** (Direct Sequence Spread Spectrum)
* signál je transformován do //n//-bitové sekvence
* rušení (kolize) není problém, poškozené informace lze dopočítat
**FHSS** (Frequecy Hopping Spread Spectrum)
* nosný signál vysílán po krátkou dobu
* přeskočí a pokračuje na jiné frekvenci
* posloupnost přeskoků je dána pseudonáhodným generátorem čísel
* výskyt rušení není kritický
==„Statické“ technologie==
* WiFi
* ad-hoc i infrastrukturní
* rodina standardů kolem 802.11
* DSSS v pásmech 5 GHz (802.11a) a 2,4 GHz (802.11b, 802.11g)
* rychlosti 11 Mb/s (802.11b), 54 Mb/s (802.11a, 802.11g)
* vysílací dosah 30/300 m (v budově/na volném prostranství)
* Bluetooth
* striktně Master-Slave komunikace, maximálně 8 spolu asociovaných zařízení => vytváří tzv. piconet
* FHSS v pásmu 2,4 GHz
* half-duplex (64 Kb/s) a full-duplex (720 Kb/s) provoz, dosah v jednotkách metrů
* WiMax
* řešení pro „last mile“
* Point-to-Multipoint, dosah až 50 km, až 255 Mb/s (reálně 70 Mb/s)
* zaručuje kvalitu služeb
* pracuje v pásmu 2--11 GHz (nelicencované)
==Mobilní technologie==
* princip buňkových sítí (průměr stovky metrů až 35 km)
* GSM
* pásmo 900 MHz a 1800 MHz
* poskytnutí telekomunikačních služeb (hlasové a datové služby, SMS...)
* pomalé (maximálně 9,6 kb/s)
* ostatní využívají stávající infrastrukturu GSM, pouze přidávají svoje specifické komponenty
* GPRS -- vývojový krok směrem k UMTS, využívá principu přepojování paketů (packet switching), nevýhodou jsou vysoké náklady a nový HW, rychlost až 160 kb/s (teoretická)
* EDGE -- zvyšuje rychlost přenosu dat až 384 kb/s
* UMTS -- 3G síť, až do 2 Mb/s ve městě, využívá kódový multiplex (CDMA)
===== Předměty =====
* [[https://is.muni.cz/auth/predmety/predmet.pl?fakulta=1433;obdobi=3084;kod=PB156|FI:PB156]] Počítačové sítě (jaro 2006)
* [[https://is.muni.cz/auth/predmety/predmet.pl?fakulta=1433;obdobi=3082;kod=PV005|FI:PV005]] Služby počítačových sítí (podzim 2005)
* [[https://is.muni.cz/auth/predmety/predmet.pl?fakulta=1433;obdobi=3725;studium=174910;id=427646|FI:PA151]] Soudobé počítačové sítě (jaro 2008), magisterský předmět
===== Použitá literatura =====
* [[http://cs.wikipedia.org/wiki/Referenční_model_ISO/OSI| OSI model (Wiki CS)]]
* [[http://en.wikipedia.org/wiki/OSI_model|OSI model (Wiki EN)]]
* http://www.ics.muni.cz/people/matyska/vyuka/site/site.html
* http://www.fi.muni.cz/usr/brandejs/P005/
* http://www.fi.muni.cz/usr/staudek/vyuka/PA151/PA151.xhtml
* http://www.ics.muni.cz/people/matyska/vyuka/pa159/pa159.html
===== Kam dál? =====
[[http://www.fi.muni.cz/usr/pelikan/Vyuka/Vyuka.html|Materiály k předmětu PV183 Technologie počítačových sítí]]
===== Vypracoval =====
Vít Rusňák, Jabber: vitek@jabber.ics.muni.cz, E-mail: vit.rusnak@gmail.com <100 %>
~~DISCUSSION~~