Operační systémy
a
počítačové sítě
1
Obsah
1 Operační systémy..............................................................................................................................3
1.1 Úloha OS, prostředky počítače, virtuální počítač, typy OS......................................................................................3
1.2 Různé koncepce OS, monolitický systém, vrstvený systém, mikrojádro, OS pro práci v reálném čase,
distribuovaný OS, multiprocesorové systémy.................................................................................................................6
1.3 Hardware počítače, zpracování instrukce procesorem, DMA, techniky programování vstupu a výstupu...............8
1.4 Definice procesu, přepínání kontextu, stavy procesu, odložení procesu, 3stavový a 7stavový model.....................9
1.5 Plánování procesů, cíle plánování, plánovač a typy plánování, úloha časovače, plánovací kritéria, plánovací
algoritmy.......................................................................................................................................................................12
• SRT – preemptivní varianta SPN - vyžaduje odhad doby provádění.........................................................................13
1.6 Vlákna, výhody a nevýhody používání vláken, podpora ze strany OS, způsoby implementace, výhody a
nevýhody různých způsobů implementací....................................................................................................................13
vytvoření nového vlákna zabere méně času než vytvoření procesu.............................................................................13
ukončení vlákna zabere méně času než ukončení procesu...........................................................................................13
přepnutí z jednoho vlákna na druhé zabere méně času než přepnutí procesů...............................................................13
komunikace vláken je jednodušší a rychlejší než komunikace procesů.......................................................................13
protože vlákna jednoho procesu sdílejí paměť a soubory, mohou mezi sebou komunikovat bez použití služeb jádra13
1.7 Sdílení prostředků, soupeření procesů, kritická sekce, vzájemné vylučování, deadlock, vyhladovění..................15
1.8 Řízení přístupu do kritické sekce, softwarová řešení, hardwarová řešení, řešení s podporou OS a programovacího
jazyka, aktivní a neaktivní čekání. ...............................................................................................................................17
1.9 Synchronizace a komunikace procesů (IPC), semafory, předávání zpráv, sdílení paměti......................................18
1.10 Správa paměti, typy adresace, relokace programů, metody alokace paměti, odkládání obsahu paměti, vnější a
vnitřní fragmentace paměti...........................................................................................................................................19
1.11 Virtuální paměť, fyzická a logická adresa, stránkování, algoritmy pro výměnu stránek, výhody a nevýhody,
segmentace....................................................................................................................................................................22
1.12 Soubor, jeho atributy, omezení přístupu k souboru, hierarchická organizace souborů, způsoby alokace prostoru
na médiu, souborový systém.........................................................................................................................................23
2 Počítačové sítě.................................................................................................................................25
2.1 Základní komunikační funkce – synchronizace, adresace, detekce a oprava chyb, řízení přístupu, řízení toku,
taxonomie sítí................................................................................................................................................................25
.......................................................................................................................................................................................25
2.2 Spojovaný a nespojovaný přenos, síťové modely a architekt, referenční model ISO/OSI, architektura TCP/IP...29
2.3 Přístupové metody ke sdílenému médiu na 2. vrstvě. Technologie Ethernet, typy a vlastnosti aktivních síťových
prvků.............................................................................................................................................................................31
2.4 Adresování ve 2. a 3. vrstvě, MAC-adresa, IP-adresa, protokoly ARP a RARP, třídy IP-adres, podsítě a supersítě.
Princip všesměrového adresování, šíření kolizí a všesměrového vysílání, kolizní doména, broadcast doména..........34
2.5 Protokol IP, formát paketu a záhlaví, doba života paketu (TTL), maximální velikost paketu (MTU). Průchod IPpaketu sítí, fragmentace a defragmentace, úloha protokolu ICMP...............................................................................36
2.6 Směrování, směrovací tabulky, směrovací protokoly.............................................................................................38
2.7 Transportní protokoly TCP a UDP, rozdílné a společné vlastnosti, porty. Potvrzovací mechanizmus v TCP,
třícestné navazování spojení, technika zpožděné odpovědi..........................................................................................39
2.8 IP verze 4 a řešení nedostatku adres, privátní rozsahy, NAT..................................................................................40
2.9 IP verze 6.................................................................................................................................................................42
2.10 Princip doménového adresování, protokol DNS...................................................................................................43
2.11 WiFi, AP, rizika odposlechu, šifrování WEP a jeho slabiny, WPA, WPA2...........................................................45
3 Operační systémy............................................................................................................................48
3.1 Instalace systému, diskové oddíly, swap, souborový systém, pojem distribuce.....................................................48
žurnálovací souborové systémy patří např. NTFS, JFS, HFS+, ext3, XFS nebo ReiserFS...............49
distribuce.......................................................................................................................................................................49
Debian – Tato distribuce je jedna z nejstarších. Je to přísná open-source distribuce, která je vyvíjena dobrovolníky z
celého světa. Debian nabízí on-line repozitář (server, kde jsou uloženy zdrojové kódy) softwarových balíků...........49
3.2 Start počítače, zavaděče OS, jádro, start unixových OS, runlevels........................................................................49
3.3 Správa a údržba souborových systémů, typy souborových systémů, žurnál, metoda copy-on-write, zálohování. 50
3.4 Sdílení dat, síťové souborové systémy, NFS, SMB/CIFS, šifrované souborové systémy......................................51
3.5 Správa uživatelských účtů a skupin, autentizace, PAM, Kerberos, práva, monitorování činnosti uživatelů.........53
3.6 Správa síťových služeb, pojem démon, superdémon. Služby, omezování přístupu, aplikační a paketový firewall
(tcpd, iptables/ipf), tunelování, VPN............................................................................................................................55
3.7 Řízení provozu sítě, omezování rychlosti, policing, shaping a algoritmy(FIFO, TBF, SFQ, RED, PRIO, HTB). 56
2
1 Operační systémy
1.1
-
-
-
Úloha OS, prostředky počítače, virtuální počítač, typy OS.
softwarová nadstavba HW
přirovnáme-li HW počítače k nahému, právě narozenému dítěti, můžeme počítač vybavený
operačním systémem přirovnat k dospělému člověku, vybavenému vymoženostmi civilizace
společně s HW představuje virtuální počítač
rozhraní mezi uživatelem a systémem
o umožňuje efektivní práci se systémem
o umožňuje používat systém "laickým" uživatelům
o programátorům poskytuje prostředí pro vývoj a ladění programů
prostředí pro provádění programů
o spolehlivě a efektivně předává a odebírá řízení uživatelským programům
o chrání a izoluje programy a data jednotlivých uživatelů
zobecněné rozhraní pro přístup k systémovým prostředkům
o poskytuje uživatelům a programům služby virtuálního počítače
o skrývá před aplikačními programy detaily hardware počítače musí se s těmito detaily
dokázat vyrovnat sám
o programátorům poskytuje jednoduchý, jednotný způsob přístupu k paměti, souborům
a I/O zařízením
Vrstvy a vztahy v OS
Služby
- prostředí pro tvorbu programů
o editory, kompilátory, spojovací programy, ladící programy, emulátory
- prostředí pro provádění programů
o zavedení a spuštění programu, inicializace periferií
o plánování pořadí spouštění úloh
- přístup k I/O zařízením a souborům
o provádění I/O operací ve prospěch programu
o konverze formátů dat
-
přístup k systému
3
-
-
-
o správa a přidělování systémových prostředků
o ochrana přístupu k privátním prostředkům a datům
detekce chyb
o interní a externí chyby hardware
 chyby zařízení
 chyby paměti
o chyby software
 aritmetické přetečení
 přístup k zakázané oblasti paměti
o neschopnost OS splnit požadavek uživatele či programu např.
 nelze najít soubor
 program požádal o provedení nedovolené operace a pod.
reakce na chyby
o prosté ohlášení chyby aplikaci a další reakce je ponechána na programátorovi
o opakovaný pokus provést operaci - např. v případě chyby při čtení sektoru se disková
operace opakuje
o násilné ukončení programu s případným uložením podrobné zprávy pro následnou
analýzu
sledování činnosti systému (Accounting)
o sběr statistik o použití systémových prostředků
o monitorování výkonnosti (např. doba odezvy)
o lze využít pro:
 ladění parametrů systému (optimalizace chování
systému v aktuálních podmínkách)
 vyhledávání a odstraňování slabých míst systému (vývoj nové verze)
 účtování použití počítače uživatelům
 odhalování a sledování nedovolených aktivit uživatelů (bezpečnost systému)
Typy operačních systémů
- OS „velkých“ (mainframe) počítačů
- OS datových a síťových serverů
- OS multiprocesorových počítačů
- OS osobních počítačů a pracovních stanic
- OS reálného času (Real-time OS)
- Vestavěné OS (tiskárna, pračka, ...)
- OS čipových karet (smart card OS)
-
... a mnoho dalších specializovaných systémů
Virtuální stroj je software, který vytváří virtualizované prostředí mezi platformou počítače a
operačním systémem, ve kterém koncový uživatel může provozovat software na abstraktním stroji.
Aplikační virtuální stroj
Dalším významem termínu virtuální stroj je počítačový software, který izoluje aplikace
používané uživatelem na počítači. Protože verze virtuálního stroje jsou psány pro různé
počítačové platformy, jakákoliv aplikace psaná pro virtuální stroj může být provozována na
kterékoli z platforem, místo toho, aby se musely vytvářet oddělené verze aplikace pro každý počítač
a operační systém. Aplikace běžící na počítači používá interpreta nebo Just in time kompilaci. Jeden
z nejlepších známých příkladů aplikace virtuálního stroje je Java Virtual Machine od firmy Sun
Microsystem.
4
Hardwarový virtuální stroj
Původní význam pro virtuální stroj, někdy nazývaný též hardwarový virtuální stroj, označuje
několik jednotlivých totožných pracovních prostředí na jediném počítači, z nichž na každém
běží operační systém. Díky tomu může být aplikace psaná pro jeden OS používána na stroji, na
kterém běží jiný OS, nebo zajišťuje vykonání sandboxu, který poskytuje větší úroveň izolace mezi
procesy než je dosaženo při vykonávání několika procesů najednou (multitasking) na stejném OS.
Jedním využitím může být také poskytnutí iluze mnoha uživatelům, že používají celý počítač, který
je jejich „soukromým“ strojem, izolovaným od ostatních uživatelů, přestože všichni používají jeden
fyzický stroj. Další výhodou může být to, že start (bootování) a restart virtuálního počítače může
být mnohem rychlejší, než u fyzického stroje, protože mohou být přeskočeny úkoly jako například
inicializace hardwaru.
Podobný software je často označován termíny jako virtualizace a virtuální servery. Hostitelský
software, který poskytuje tuto schopnost je často označovaný jako hypervisor nebo virtuální
strojový monitor (virtual machine monitor).
Softwarové virtualizace mohou být prováděny ve třech hlavních úrovních:
•
•
•
Emulace, plná systémová simulace nebo „plná virtualizace s dynamickým přestavením
(recompilation)“ — virtuální stroj simuluje kompletní hardware, dovolující provoz
nemodifikovaného OS na úplně jiném procesoru.
Paravirtualizace — virtuální stroj nesimuluje hardware, ale místo toho nabídne speciální
rozhraní API, které vyžaduje modifikace OS.
Nativní virtualizace a „plná virtualizace“ — virtuální stroj jen částečně simuluje dost hardwaru,
aby mohl nemodifikovaný OS běžet samostatně, ale hostitelský OS musí být určený pro stejný
druh procesoru. Pojem nativní virtualizace se někdy používá ke zdůraznění, že je využita
hardwarová podpora pro virtualizaci (tzv. virtualizační technologie).
1.2 Různé koncepce OS, monolitický systém, vrstvený systém,
mikrojádro, OS pro práci v reálném čase, distribuovaný OS,
multiprocesorové systémy.
Monolitický operační systém
obsahuje všechny funkce jádra v sobě. Velké nesnadno přenosné nerozšiřitelné.
Mezi výhody patří centralizovaný charakter, který umožňoval relativně snadnou
administraci systému a poměrně snadnou implementaci aplikací. Nevýhodou byl často
monolitický software – uživatelské rozhraní, výkonná část a přístup k datům byly obsaženy
v jedné velké aplikaci, a proto jakákoliv změna mohla ovlivnit celou aplikaci.
Vrstvený systém
• vzhledem k velké složitosti OS obvykle systém dělíme na vrstvy
• dělení na vrstvy umožňuje rozklad složitých problémů na větší počet snadněji
zvládnutelných dílčích problémů
• každá vrstva využívá (primitivnějších) funkcí následující nižší vrstvy
Mikrojádro
• jádro OS plní pouze malý počet základních funkcí
• primitivní řízení paměti
• komunikace procesů (Inter-Process Communication)
• základní plánování
5
• ostatní služby OS jsou poskytovány procesy běžícími v uživatelském režimu (servery)
• ovladače zařízení, souborové systémy, virtuální paměť
• výhody: větší pružnost, rozšiřitelnost, přenositelnost
• nevýhody: snížení výkonnosti v důsledku náhrady systémových volání výměnnou zpráv
mezi procesy
OS pro práci v reálném čase
Real Time Operating Systém – RTOS je charakterizován deterministickým chováním,
krátkou dobou odezvy, vysokou spolehlivostí
• Deterministické chování
• operace se provádějí v pevných, předem určených časech nebo v předem určených
časových intervalech
• u každé operace je předem známo, kdy nejpozději skončí
• Doba odezvy
• čas, ve kterém musí systém přiměřeně reagovat na událost, časové měřítko je
relativní
• závisí na aplikační oblasti stovky mikrosekund např. řízení reaktoru
• Spolehlivost
• systém, jehož porucha může mít katastrofální důsledky
• systém natolik spolehlivý a bezpečný, že na něm můžeme být zcela závislí
• systém odolný proti poruchám, porucha může snížit výkonnost systému, ale nesmí
ho vyřadit z funkce, přednost mají úlohy kritické pro funkci systému, úlohy s nižší
prioritou se provádějí jen, když na ně zbývá čas.
Distribuovaný operační systém
jako NFS, umožňuje vzdálené připojování pomocí mount, systém klient-server
Tento model představuje aplikaci jako objekty, které mohou používat služby nabízené
jinými objekty v systému nebo samy tyto služby nabízet. Distribuované systémy jsou
v podstatě vícevrstevné klient/server systémy, kde počet různých klientů a serverů může
být obrovský.
Multiprocesorové systémy
Single Instruction Single Data; Single Instruction Multiple Data; Multiple Instruction Single
Data
Multiple Instruction Multiple Data – kombinace procesorů, které souběžně zpracovávají
odlišnými posloupnostmi instrukcí odlišné množiny dat
podle stupně vazby
MP systém s volnou vazbou
• každý procesor má vlastní operační paměť a I/O subsystém
• různé typy vazby
MP systém s těsnou vazbou
• procesory sdílejí operační paměť
• řízení jedním operačním systémem
podle symetrie
symetrický MP systém
• jádro OS může provádět kterýkoliv procesor
• spustitelné procesy či vlákna lze provádět v kterémkoliv volném procesoru
asymetrický MP systém
• procesory jsou funkčně specializované např. I/O procesory
• systém je řízen centrálním procesorem
6
1.3 Hardware počítače, zpracování instrukce procesorem,
DMA, techniky programování vstupu a výstupu.
CPU
hardware umožňující provádění instrukcí programu
Obsahuje:
o HW pro provádění programu
o programový čítač PC
o instrukční registr IR
o dekodér instrukce a řídící obvody
o registr(y) s informacemi o stavu procesoru PSW
o HW pro zpracování dat
o registry pro krátkodobé uložení adres a dat
o operační jednotka ALU
o Další pomocné registry a obvody
o ukazatel zásobníku SP, ...
Operační paměť
o Hardware sloužící k uložení programu a dat
Cache – vyrovnávací paměť zařazená mezi CPU a operační paměť
Procesor čte instrukce a data z paměti cache, pokud adresované slovo není v paměti
cache, načte se z operační paměti do cache celý blok, obsahující požadované slovo;
zápis: pokud procesor některé slovo v bloku modifikuje, musí se toto slovo (celý blok)
zapsat zpět do operační paměti.
Základní instrukční cyklus
• v okamžiku zahájení provádění instrukce programový čítač PC obsahuje adresu příští
instrukce
• CPU načte novou instrukci z operační paměti podle PC
• CPU dekóduje a provede načtenou instrukci
• obsah PC se automaticky zvýší tak, aby obsahoval adresu příští instrukce
Instrukční cyklus s přerušením
7
• CPU ověřuje požadavky na přerušení vždy před načtením nové instrukce
• pokud není přerušení povoleno nebo požadováno, CPU pokračuje normálně, tj. načte
následující instrukci podle PC
• pokud je přerušení povoleno a požadováno, uloží se automaticky obsah PC a PSW
např. do zásobníku a do PC a PSW se nahraje tzv. přerušovací vektor
• tím se změní adresa příští instrukce a nastavení přerušovacího systému
Typy přerušení:
I/O přerušení, časovač, programové chyby, chyby hardwaru
Techniky I/O komunikace
Programovaný I/O přenos
nepoužívá se přerušení, CPU musí čekat na dokončení každé I/O operace
nevyžaduje od hardwaru, aby dokázal přerušit činnost CPU po dokončení I/O operace
dokud I/O modul nedokončí akci, musí program čekat
v době čekání na dokončení I/O operace zůstává procesor zaměstnán testování stavu I/O
modulu
I/O přenos s přerušením
během provádění I/O operace může CPU pracovat - činnost CPU je přerušena po
dokončení I/O operace
činnost procesoru je přerušena, jakmile je I/O modul připraven k další akci
odpadá zbytečné čekání, po dobu provádění I/O operace je procesor volný pro jinou
činnost
pro přenos se spotřebuje část času procesoru (procedura pro obsluhu přerušení musí
obsloužit přenos každého slova dat)
I/O přenos s přímým přístupem do paměti (Direct Memory Access, DMA)
data se přenášejí po blocích přímo mezi I/O modulem a pamětí, bez účasti CPU
program pouze inicializuje DMA přenos (odkud, kam, kolik,...)
procesor předá požadavek na přenos bloku dat DMA modulu
DMA modul přenese blok dat přímo mezi I/O modulem a pamětí, bez účasti CPU
po dobu přenosu bloku je procesor zcela volný pro jiné použitá, o dokončení přenosu
bloku je procesor informován přerušením
1.4 Definice procesu, přepínání kontextu, stavy procesu,
odložení procesu, 3stavový a 7stavový model.
Hlavním úkolem OS je –
- prokládat (časově) provádění mnoha procesů s cílem maximalizovat využití
procesoru a dosáhnout vyhovující doby odezvy
- přidělovat procesům požadované systémové prostředky paměť, periferie, soubory
- podporovat komunikaci procesů a vytváření nových procesů uživatelem
Proces
- program = vykonatelný soubor
- proces = jedna instance vykonávaného programu
- konkrétní provedení určitého programu
o Příklad: recept na dort = program => pečení dortu podle tohoto receptu = proces
- program lze provádět opakovaně, s různými daty
- v daném okamžiku lze jeden program provádět vícekrát
- označujeme také jako task (úkol)
dávka (batch) = úloha + úloha + úloha …
úloha (job) = úkol + úkol + úkol …
8
- průběh procesu lze trasovat - po každé instrukci může být zastaven a analyzován
Dispečer
- převádí procesor z jednoho procesu do druhého
- brání okupaci procesoru jediným procesem na nepřijatelně dlouhou dobu
- na základě plánovacího algoritmu rozhoduje, který proces bude prováděn jako další
- během přepnutí z procesu A na proces B se v procesoru vždy provádí kód dispečera
Vznik procesu
- spuštěním úlohy v dávce
- přihlášením uživatele do systému
- spuštěním služby pro obsluhu požadavků např. tiskový server, www server ...
- vytvořením potomka existujícího procesu (spawning) - každý proces může požadovat
od OS vytvoření dalších procesů-potomků; tím se stává jejich rodičem
Ukončení procesu
- úloha v dávce vydá příkaz HALT
- uživatel se odhlásí
- proces předá systému požadavek na ukončení
- dojde k chybě
Příčiny ukončení procesu
- normální dokončení
- vyčerpání časového limitu
- nedostatek paměti
- překročení mezí - např. čtení z paměti mimo povolené oblasti
- porušení ochrany - např. zápis do souboru se zakázaným zápisem
- chyba operace - např. přetečení při sčítání, dělení nulou ...
- překročení doby čekání (Time Out) - doba čekání na událost překročila stanovené
maximum
- chyba I/O zařízení
- provedení nedovolené instrukce - může nastat např. při pokusu o provedení dat
jako programu
- provedení privilegované instrukce
- chybné použití dat
- intervence operačního systému - např. když systém detekuje deadlock
- požadavek rodičovského procesu - rodič může požádat o ukončení svého potomka
- ukončení rodičovského procesu - dojde také k ukončení všech potomků
Odložené procesy
- proces se může dostat do situace, kdy bude čekat na dokončení I/O operace
- I/O operace trvají dlouho
- procesy čekající v paměti zabírají místo
- tyto procesy lze odložit na disk, aby se uvolnila operační paměť
- proces přejde do stavu ODLOŽENÝ (Suspend), jestliže je z paměti přesunut na disk (Swap)
- přibudou dva nové stavy:
BLOKOVANÝ ODLOŽENÝ (Blocked, Suspend)
PŘIPRAVENÝ ODLOŽENÝ (Ready, Suspend)
3stavovi
7stavovi
9
BĚŽÍCÍ (Running)
- proces který se právě provádí v CPU
STOJÍCÍ (Not-running)
- proces nemá veškeré požadované prostředky k dispozici
Protože dispečer nemůže jednoduše vybrat proces, který je ve frontě první na řadě (tj. čeká
nejdéle) zavedeny ještě další stavy.
NOVÝ (New)
- OS provedl všechny akce nezbytné pro vytvoření procesu ale proces zatím
nelze zařadit mezi prováděné – (např. nemá k dispozici všechny prostředky)
PŘIPRAVENÝ (Ready)
- kterýkoliv proces, který lze spustit
BLOKOVANÝ (Blocked)
- proces čekající na událost (např. dokončení I/O operace)
UKONČENÝ (Exit)
- formálně již byl proces ukončen a nelze ho proto znovu spustit
- ale tabulky a další informace je nutné dočasně uchovat pro spolupracující
program – např. je potřebuje účtovací program, shromažďující
údaje pro účtování poplatků
– systém takový proces (a odpovídající data) odstraní, jakmile to bude možné
– Přepínání kontextu
Cooperative multitasking
K tomu, aby mohl procesor vykonávat více operací musí přesouval pozornost od jednoho vlákna
k druhému, tomuto procesu se říká přepínání kontextu. Ke kontextovému přepnutí může dojít,
když se vlákno dobrovolně vzdá svého času procesoru, který tento čas může přidělit jiným
vláknům. Tomuto systému se říká cooperative multitasking. Může ovšem dojít k tomu, že se
programátor omylem nebo záměrně nevzdá času vlákna ve prospěch procesoru nebo jiného vlákna,
což způsobí zatuhnutí aplikace a zablokuje běh všech dalších vláken. Tento systém přepínání
kontextu se používal u starých OS a umožňoval vytuhnutí aplikace nebo dokonce celého OS
vinnou jednoho vlákna.
Preemptive multitasking
Podstatně lepším řešením je preemptive multitasking, kde plánovací modul OS rozhoduje kdy
přerušit či pozastavit běh vlákna a spustit vlákno jiné, aniž by narušil běh úlohy.
Tento druh multitaskingu zabraňuje vláknu monopolizovat čas procesoru a nevyžaduje, aby
programátor rozhodoval, kdy se vzdát času procesoru. Toto má jako vždy svou nevýhodu, protože
programátor musí zajistit správnou koordinaci využívání prostředků.
10
1.5 Plánování procesů, cíle plánování, plánovač a typy
plánování, úloha časovače, plánovací kritéria, plánovací
algoritmy.
Plánovac prideluje procesorový cas procesum:
Plánování - scheduler
– rozhoduje, který proces (vlákno) má CPU
-rozhodnout, který proces (vlákno) poběží
-rozhodnutí typicky optimalizuje nějakou metriku
Cíle plánování
 krátká doba odezvy (response time)
 vysoká propustnost (throughput)
 efektivní využití procesoru
Typy plánování
dlouhodobé (Long-term) – provádí se, když se vytváří nový proces. Určuje, které programy systém
zařadí do zpracování, ovládá stupeň multiprogramování, omezuje maximální počet procesů
střednědobé (Medium-term) odkládání procesů (swapping) určuje, které procesy mají zůstat v
operační paměti a které mají být odloženy.
krátkodobé (Short-term)- který z procesů připravených ke spuštění se má provádět jako další.
který z požadavků procesů na I/O má být obsloužen dostupným I/O zařízením
Maximální počet procesů v systému je omezen velikostí operační paměti - čím více
procesů, tím menší riziko, že procesor zůstane nevyužitý (provádí plánovač)
Plánovací kritéria:
Uživatelsky orientovaná kritéria: minimální oba odezvy (doba, která uplynu od předložení
požadavku do vydání výstupu)
Systémově orientovaná kritéria: efektivní využitá procesoru, paměti a periférií
Výkonově orientovaná kritéria: výkon měřitelný pomocí doby odezvy a propustnosti, počet
provedených úloh za časovou jednotku
11
Plánovací algoritmy:
Prioritní plánování:
Plánovač vždy dá přednost procesu s vyšší prioritou před procesem s nižší prioritou,
obvykle se používá pro každou prioritní úroveň samostatná fronta připravených procesů.
Nízká priorita může být příčinou vyhladovění procesu, je nutné umožnit změnu priority
čekajících procesů v závislosti na době čekání nebo historii provádění (dynamická fronta)
Rozhodování plánování:
Nepreemptivní - jakmile je proces ve stavu Running, běží, dokud se sám neukončí nebo
dokud se nezablokuje čekáním na I/O
• FCFS - Fronta
• SPN - nejprve jsou nejkratší procesy, pak dlouhé
Preemptivní - OS může právě běžící proces kdykoliv přerušit a přesunout do stavu Ready,
umožňuje lepší ovládání, protože jeden proces nemůže na dlouhou dobu monopolně
obsadit procesor
• RR – na principu časovače
• SRT – preemptivní varianta SPN - vyžaduje odhad doby provádění
1.6 Vlákna, výhody a nevýhody používání vláken, podpora ze strany
OS, způsoby implementace, výhody a nevýhody různých způsobů
implementací.
Vlákno (thread) – odlehčený proces
– v rámci jednoho klasického procesu muže běžet více vláken
– má následující položky samostatně:
● program counter, registry, stack, stav
– ostatní je sdíleno s ostatními vlákny procesu
–
Výhody použití vláken




vytvoření nového vlákna zabere méně času než vytvoření procesu
ukončení vlákna zabere méně času než ukončení procesu
přepnutí z jednoho vlákna na druhé zabere méně času než přepnutí procesů
komunikace vláken je jednodušší a rychlejší než komunikace procesů
 protože vlákna jednoho procesu sdílejí paměť a soubory, mohou mezi sebou komunikovat
bez použití služeb jádra
Nevýhody vláken
● Vlákna byste měli používat jen tam, kde je to opravdu nutné, protože tvorba vlákna na určitých
platformách je poněkud zdlouhavá operace.
● Každé vlákno vytváří v paměti vlastní zásobník, do kterých jsou ukládány mezivýsledky, stavy
proměnných, adresy apod.
● I když je teoreticky možné vytvářet obrovský počet vláken, maximální počet vláken je omezen
platformou.
● Jednou z největších nevýhod vláken je však zvýšená složitost kódu
● Je daleko složitější sledovat tok programu.
● Další z nevýhod vláken je sdílení prostředků, za kterou je většinou odpovědný programátor.
implementace vláken
Implementace vláken v uživatelském prostoru
12
Run-time system: množina funkcí, která spravuje vlákna.
Jádro nemá o vláknech žádné informace
Výhody:
• vlákna mohou být implementována v OS, které nepodporuje vlákna
• rychlé plánování vláken
• každý proces může mít svůj vlastní plánovací algoritmus
Nevýhody:
• pro implementaci blokujících systémových volání je třeba buď volat systémovou funkci
select, nebo se tato volání musí změnit na neblokující
• problémy s výpadkem stránky
• žádný Clock Interrupt uvnitř procesu (jedno vlákno může okupovat CPU během celého
časového kvanta procesu)
Implementace vláken v prostoru jádra
•
•
jádro má tabulku vláken, která obsahuje informace o všech vláknech v systému
Výhody:
1. žádný problém s blokujícími systémovými voláními
Nevýhody:
• vytváření, ukončování a plánování vláken je pomalejší
Hybridní implementace vláken
•
•
•
•
jádro se stará pouze o kernel-level threads a plánuje je
některé kernel-level threads mohou mít user-level threads
user-level threads jsou vytvářena, ukončovana a plánovana uvnitř procesu
13
•
•
např. Solaris, Linux, MS Windows
kombinuje výhody uživatelských vláken (dobrá výkonnost) s výhodami kernel vláken
(jednoduchá implementace)
Podpora OS
● Windows 2000/XP
● Linux
● BSD Unix 4.4
1.7 Sdílení prostředků, soupeření procesů, kritická sekce,
vzájemné vylučování, deadlock, vyhladovění.
Sdileni prostředků – problem soupeřeni či souběhu
– Procesy použivaji a modifikuji sdileni data
– Operace zapisu musi byt vzajemně vylučné
– Operace zapisu musi byt vzajemně vylučne s operacemi čtení
– Operace čteni (bez modifikace) mohou byt realizovany souběžně
– Pro zabezpečeni integrity dat se použivaji kriticke sekce
Soutěžení procesů o prostředky
-provádění jednoho procesu může ovlivnit chování soupeřících procesů
-pokud přístup k jednomu prostředku požaduje více procesů současně, lze prostředek přidělit
jen jednomu z nich
-ostatní procesy musí čekat!
-nelze vždy zaručit, že blokovaný proces získá přístup k prostředku v budoucnosti
-takový proces nikdy neskončí, bude bez omezení čekat!
Problémy s řízením přístupu
-vzájemné vylučování (Mutual Exclusion)
-v každém okamžiku smí mít přistup k prostředku pouze jeden proces
-smrtící objetí (Deadlock)
-procesy vzájemně čekají na uvolnění prostředků, přidělených jiným procesům
-vyhladovění (Starvation)
-proces nemůže získat přístup k požadovanému prostředku v důsledku obsazení prostředku
jinými procesy
Kritická sekce
-proces je ve (své) kritické sekci (pro daný sdílený prostředek), jestliže provádí část
programu, manipulující s (tímto) sdíleným prostředkem
-provádění kritické sekce musí být vzájemně výlučné (mutually exclusive)
v každém okamžiku smí být v kritické sekci (pro daný prostředek) pouze jeden proces
-to platí i pro multiprocesorové prostředí
-každý proces musí žádat o povolení ke vstupu do kritické sekce!
Deadlock
- vzniká konfliktem požadavků na prostředky od dvou nebo více procesů
podmínky vzniku deadlock
14
o vzájemné vylučování
� v daném čase může prostředek používat pouze jeden proces
o hold and watt
� proces může držet prostředek v době, kdy žádá o přidělení dalšího
o systém bez preempce
� již přidělený prostředek nemůže být procesu násilně odebrán
o kruhové čekání
� existuje uzavřený řetězec procesů takový, že každý proces drží nejméně jeden prostředek,
který potřebuje následující proces v řetězci
prevence
o vzájemné vylučování
� nelze se mu vyhnout
o hold and watt
� lze, zajisti, aby všechny procesy požadovaly všechny prostředky najednou
o preempce
� když je procesu odmítnuto přidělení dalšího prostředku, musí proces uvolnit již získané
prostředky
o kruhové čekání
� pro prostředky definovat lineární uspořádání, jakmile je nějaký prostředek přidělen,
mohou být jako další přiděleny již jen prostředky s vyšším pořadovým číslem
vyloučení deadlocku –
o nestartovat procesy, jejichž požadavky by mohly způsobit deadlock
o nepovolit inkrementální požadavky na prostředky procesům, pokud by takové požadavky mohly
způsobit deadlock
o není nutná preempce a rollback procesů
odstraňování deadlock
o násilně ukončit všechny vzájemně zablokované procesy
o obnovit vzájemě zablokované procesy ze zálohy v bodě, kde dosud neexistoval deadlock
o postupně ukončovat jednotlivé procesy dokud deadlock nezmizí
o postupně procesům násilně odebírat prostředky
Vyhladovění
- při čekání na přidělení prostředků
o proces nemůže získat přístup k požadovanému prostředku v důsledku obsazení
prostředku jinými procesy
- při komunikaci procesů
o dva procesy si stále vyměňují zprávy, zatímco jiný proces čeká na zprávu a nikdy se jí
nedočká
- typický důsledek nízké priority
15
Řízení přístupu do kritické sekce, softwarová řešení,
hardwarová řešení, řešení s podporou OS a programovacího
jazyka, aktivní a neaktivní čekání.
1.8
Typy řešení
SW řešení – algoritmy, jejichž korektnost nezávisí na dalších předpokladech
HW řešení – využívá speciální instrukce procesoru
OS řešení – poskytuje programátorovi vhodné funkce a datové struktury
SW řešení: aktivní čekání
Příklad:
svého šamana (kritickou sekci) může v daném čase navštívit pouze jediný eskymák (proces)
I gloo má malý vchod, takže dovnitř může vstoupit vždy jen jeden eskymák, aby si přečetl jméno
napsané na tabuli
Pokud je na tabuli jeho jméno, může jít k šamanovi
Pokud je na tabuli napsáno jiné jméno, eskymák igloo opět opustí a čeká
Čas od času eskymák znovu vstoupí do igloo podívat se na tabuli
Algoritmus (Petersonův)
Bakery algoritmus
Nedostatky SW řešení
Procesy požadující přístup do kritické sekce jsou v aktivním čekání a proto zbytečně
spotřebovávají čas procesoru
pokud jsou kritické sekce dlouhé, může být efektivnější čekající procesy blokovat
HW řešení
- opírá se o některé základní principy
o proces běží v procesoru kontinuálně, dokud nevyvolá službu OS nebo není přerušen
o k přerušení procesu může dojít pouze na hranicích instrukcí – mezi dokončením jedné a
zahájením další instrukce
o přístup k paměťovému místu obvykle vylučuje současný přístup ostatních procesů k
tomuto místu
Instrukce test-and-set
Instrukce xchg
16
1.9 Synchronizace a komunikace procesů (IPC), semafory,
předávání zpráv, sdílení paměti.
Synchronizace běhu procesů – čekání na událost od jiného procesu
- Vzájemné vyloučení s aktivním čekáním
o proces čeká na událost opakovaným prováděním kontroly zda instrukce nenastala. Tento způsob mrhá
strojovým časem a může způsobit také nefunkčnost systému
- Synchronizace bez aktivního čekání
o blokování procesu pomocí systémových atomických primitiv
 sleep() místo aktivního čekání – proces se zablokuje
 wakeup(process) probuzení spolupracujícího procesu při opouštění kritické sekce
- Semafory – obecný synchronizační nástroj
o Semafor S – systémem spravovaný objekt se základní vlastností typu celočíselná proměnná
o Dvě standardní atomické operace nad semaforem
 acquire(S) [někdy nazývaná wait() nebo down()]
 release(S) [někdy nazývaná signal() nebo up()]
Tyto operace jsou implementovány v jádře jako nedělitelné a tak, aby je žádné dva procesy nemohly
provést nad týmž semaforem současně.
o Sémantika těchto operací:
• Základní typy semaforů
–
–
Čítající (obecný) semafor – jeho celočíselná hodnota není omezena
Binární semafor – hodnota je pouze 0 nebo 1
 Znám též jako zámek (mutex)
 Snáze se implementuje
• Monitory
• jsou to synchronizační nástroje vysoké úrovně
• Umožňuje bezpečné sdílení libovolného datového typu
• Monitor je jazykový konstrukt v jazycích „pro paralelní zpracování“
– Podporován např. Concurrent Pascal, Java, ...
• Procedury definované jako monitorové procedury se implicitně vzájemně vylučují
Synchronizace pomocí zasílání zpráv-mechanismus mailboxů a portů
Mailbox
schránka pro předávání zpráv
 Může být soukromá pro dvojici komunikujících procesů nebo sdílená více procesy
 JOS vytvoří mailbox na žádost procesu a tento proces je pak jeho vlastníkem
 Vlastník může mailbox zrušit nebo bude zrušen při skončení vlastníka
Port
schránka vlastněná jedním příjemcem
• Zprávy do portu může zasílat více procesů
• V modelu klient/server je přijímacím procesem server
• Port zaniká ukončením přijímacího procesu
17
Komunikace mezi procesy – výměna zpráv
• komunikace – způsob synchronizace, koordinace různých aktivit
• může dojít k ,,uváznutí” – každý proces v jisté skupině procesů čeká na zprávu od jiného procesu v téže skupině
• může dojít ke ,,stárnutí” či „hladovění“ – dva procesy si opakovaně posílají zprávy zatímco třetí proces čeká
na zprávu nekonečně dlouho
1.10 Správa paměti, typy adresace, relokace programů,
metody alokace paměti, odkládání obsahu paměti, vnější a
vnitřní fragmentace paměti.
rozdělení paměti pro použití více procesy, paměť je nutné alokovat efektivně, aby mohlo
být spuštěno co nejvíce procesů, procesy musí mít přístup pouze do té části paměti, která jim
byla přidělena
Relokace (přemístění) programu programátor neví, ve které oblasti operační paměti bude
program umístěn při provádění, program může být pozastaven, odložen na disk, a pak vrácen do
jiné oblasti operační paměti, paměťové odkazy v programu musí být převedeny z logických adres
(uváděných v kódu programu) na aktuální adresy fyzické operační paměti, aktuální umístění programu v paměti je určeno při zavedení programu proces může být umístěn v různých dílech, a proto se
mohou absolutní adresy během provádění měnit, když se novému procesu nebo procesu odloženému na disk přiděluje paměť, když se provede setřesení paměti
Ochrana - proces nesmí být schopen pracovat s paměťovými místy jiného procesu bez povolení
Sdílení - někdy je nutné dovolit více procesům přístup ke stejné oblasti paměti, je výhodné, jestliže procesy provádějící tentýž program používají tutéž kopii programu v paměti,
výrazná úspora paměti, méně časté odkládání na disk
Pevné dělení: dostupná paměť je rozdělena na oddíly s pevnými hranicemi
všechny oddíly jsou stejně velké
• jakýkoliv proces vyžadující oblast paměti menší nebo rovnou velikosti oddílu lze zavést
do kteréhokoliv volného oddílu
• když jsou obsazeny všechny oddíly, může OS některé oddíly uvolnit odložením procesu na
disk
• pokud se program nevejde do jednoho oddílu, musí programátor použít překrývání
• jakkoliv krátký program obsadí celý paměťový oddíl
• operační paměť nelze využívat efektivně - vnitřní fragmentace
18
oddíly mají různou velikost
• procesům se přiděluje paměť tak, aby se minimalizovala vnitřní fragmentace
• procesům se přiděluje nejmenší oddíl, do kterého se proces ještě vejde
•
procesy čekající na přidělení paměti tvoří frontu Samostatná fronta pro každý
oddíl • proces lze zavést do paměti pouze když je příslušný oddíl volný, zbytečně blokuje
procesy, které by se mohly provádět ve větších právě volných oddílech
Společná fronta pro všechny procesy
• při zavádění procesu do paměti je použit nejmenší volný oddíl, do kterého se
proces ještě vejde ale nemusí to být nejmenší použitelný oddíl rychlejší ale za
cenu větší fragmentace
Dynamické dělení paměti: proměnný počet i velikost oddílů, procesu je přiděleno přesně tolik
paměti, kolik potřebuje, při ukončení nebo odložení procesu vznikají v paměti díry uvolněnou část
lze použít pouze pro proces, který potřebuje stejný nebo menší objem paměti, při použití procesem s
menšími požadavky na paměť představuje zbytek nepoužité paměti opět díru menší než původní, a
proto obtížněji využitelnou, tomuto jevu říkáme vnější fragmentace, lze odstranit defragmentací
(sražení všech oblastí obsazených procesy těsně k sobě, aby vznikla souvislá oblast paměti)
Umísťovací algoritmy:
algoritmus nejlépe padnoucí (Best-fit) vyber blok, jehož velikost je nejblíže požadavku stejný
nebo nejbližší, nejméně výkonná metoda, dosahuje se nejmenší možná fragmentace, protože je vždy
použit nejmenší vyhovující blok fragmenty jsou malé, ale rychle přibývají proto se musí často
provádět setřesení obsazené paměti
algoritmus první padnoucí (First-fit) paměť se prohledává od začátku a procesu se přidělí
první volný blok, který vyhovuje požadavku, rychlejší než best-fit, prohledávání zpomaluje výskyt
velkého počtu obsazených bloků, tato oblast se pokaždé zbytečně prohledává
algoritmus další padnoucí (Next-fit) paměť se prohledává od místa, kam se naposledy umísťovalo, a procesu se přidělí první volný blok, který vyhovuje požadavku, umísťuje další proces
hned za předchozí, blok volné paměti na konci lze získat setřesením paměti
Logická adresa - odkaz na paměťové místo nezávislý na aktuálním přidělení paměti k získání fyzické adresy je nutný překlad
Relativní adresa - vyjádřená jako relativní pozice vzhledem k nějakému známému místu
Fyzická adresa absolutní nebo aktuální adresa - absolutní adresa umožňuje trvale přístup k
určitému místu fyzické paměti, aktuální adresa umožňuje přístup k určitému místu fyzické paměti k
získání
Virtuální paměť
logický paměťový prostor, jehož část je uložena v části operační paměti a zbytek
v sekundární paměti
• odkazy na paměť v programu adresují virtuální paměť
19
• v reálné operační paměti se nacházejí pouze
• právě prováděná část programu
• data, se kterými se právě pracuje
• ostatní části programu a dat mohou být uloženy v sekundární paměti - odkládací oblast
• přístup programu k virtuální paměti je zcela transparentní
• všechny problémy spojené s vyhledáním aktuálního umístění instrukcí a dat řeší OS
• virtuální paměť může být uspořádána jako
• lineární adresový prostor - jednorozměrné pole
• množina segmentů - bloky pevné nebo proměnné délky
• mapování adres virtuální paměti na adresy reálné paměti zajišťuje hardware
• pokud program adresuje místo, které se právě nenachází v reálné operační paměti, pak
pokud v paměti není volné místo, uloží se obsah bloku reálné paměti na disk
• do volné oblasti reálné paměti se z disku načte blok obsahující požadované paměťové
místo
Stránkování
paměť se rozdělí na malé části stejné velikosti - rámce
logická paměťová oblast procesu se rozdělí na stejně velké části jako paměť - stránky
operační systém udržuje pro každý proces tabulku přiřazení stránek a rámců, tabulka obsahuje údaje o umístění rámce v paměti
Segmentace
všechny segmenty všech programů nemusí mít stejnou délku, maximální délka segmentu je
omezená, protože segmenty nemají stejnou délku, podobá se segmentace dynamickému dělení
paměti
• odkazy na paměť se dynamicky převádějí na fyzické adresy při provádění
• proces může být odložen a znovu vrácen do paměti, takže jeho umístění v paměti se
může kdykoliv změnit
• proces může být rozdělen na části, které nemusí být v paměti uloženy souvisle
• během provádění se v operační paměti nemusí nacházet všechny části procesu
současně
• OS zavede do operační paměti několik částí programu
• část procesu, která se nachází v operační paměti, označujeme Resident set
• pokud se logicky adresované paměťové místo nenachází v operační paměti, generuje se
přerušení
• OS převede proces do blokovaného stavu
• část procesu obsluhující požadované paměťové místo se přesune do operační paměti
20
• OS vydá požadavek na čtení z disku
• během provádění diskové operace je naplánován další proces
• dokončení čtení z disku je ohlášeno přerušením, jehož důsledkem je převedení
původního procesu do stavu Ready
Stránky
• čím menší stránky, tím menší vnitřní fragmentace, tím více stránek procesy potřebují
• čím více stránek na proces, tím rozsáhlejší jsou stránkovací tabulky
• čím větší stránkovací tabulky, tím větší podíl virtuální paměti tabulky zabírají
• sekundární paměť je navržena pro efektivní přenos dat po blocích, takže větší stránky jsou
výhodnější
• možnost práce se stránkami rozdílné velikosti poskytuje pružnost pro efektivní využití
TLB
• velké stránky mohou být využity pro kód programu
• malé stránky mohou být použity pro vlákna
1.11 Virtuální paměť, fyzická a logická adresa, stránkování,
algoritmy pro výměnu stránek, výhody a nevýhody,
segmentace.
virtuální paměť – logický paměťový prostor, jehož část je uložena v části operační paměti a zbytek
v sekundární paměti (na disku)
Logická adresa
-odkaz na paměťové místo nezávislý na aktuálním přidělení paměti
-k získání fyzické adresy je nutný překlad ( translation)
Fyzická adresa
-absolutní nebo aktuální adresa
-absolutní adresa umožňuje trvale přístup k určitému místu fyzické paměti
-aktuální adresa umožňuje přístup k určitému místu fyzické paměti pouze po dobu platnosti
přiřazení
Stránkování
každý proces má svoji vlastní stránkovací tabulku (page table)
každá položka stránkovací tabulky obsahuje číslo rámce operační paměti s odpovídající stránkou
v každé položce musí být k dispozici příznak (bit), indikující zda stránka je nebo není v operační
paměti
Stránkování (Paging)
paměť se rozdělí na malé části stejné velikosti – rámce ( frames)
logická paměťová oblast procesu se rozdělí na stejně velké části jako paměť – stránky (pages)
operační systém udržuje pro každý proces tabulku přiřazení stránek a rámců
tabulka obsahuje údaje o umístění rámce v paměti pro každou stránku procesu
adresa paměti se skládá z čísla stránky a ofsetu na stránce
21
ofset = relativní adresa vzhledem k začátku stránky)
TLB
obsahuje určitý počet naposledy použitých položek stránkovací tabulky
funguje podobně jako paměť cache hierarchické paměti
Použití TLB
procesor se pokusí vyhledat číslo stránky z virtuální adresy v TLB
pokud je odpovídající položka stránkovací tabulky v TLB (hit = trefa), použije procesor
nalezené číslo rámce a zformuje odpovídající fyzickou adresu
pokud odpovídající položka tabulky v TLB není (miss = rána vedle), je nutné tuto položku do
TLB doplnit
číslo stránky je použito k vyhledání odpovídající položky stránkovací tabulky
potřebná služba OS se vyvolá přerušením (page fault)
nejprve se ověří, zda je odpovídající část stránkovací tabulky v operační paměti
pokud ne, načte se z virtuální paměti potřebná část stránkovací tabulky
do TLB se načte požadovaná položka stránkovací tabulky
Algoritmus TLB
Soubor, jeho atributy, omezení přístupu k souboru,
hierarchická organizace souborů, způsoby alokace prostoru
na médiu, souborový systém.
1.12
Soubory: univerzální forma dlouhodobého uložení dat v sekundární paměti, má unikátní
jméno, přístup k souboru může být omezený
Stromová struktura:
• jeden hlavní adresář, obsahující adresáře, podadresáře,…
• počet úrovní může být omezen (např. ISO9660)
• více souborů může mít stejné jméno, pokud se liší cestou
• při práci se soubory lze zvolit libovolný adresář jako pracovní
• cestu k souboru lze vyjádřit relativně vzhledem k pracovnímu adresáři
Přístupová práva:
• žádná - uživatel neví o existenci souboru, není dovoleno číst obsah adresáře
• znalost existence - uživatel zjistí existenci souboru a jeho vlastníka
• provádění - uživatel smí soubor provádět, ale nesmí ho kopírovat
• čtení - uživatel může obsah souboru číst pro jakékoliv účely (provádění, výpis,
kopírování), ale nesmí ho modifikovat nebo mazat
• přidávání - uživatel může soubor číst a navíc smí přidat data na konec
• přepisování - uživatel může soubor číst/provádět/modifikovat/smazat
• změna ochrany - uživatel může měnit nastavení přístupových práv souboru jiného
uživatele
• mazání - odstranění souboru
Přidělování paměti:
• v době vytváření souboru je nutné znát maximální velikost souboru (je to obtížné)
• ve snaze vyhnout se vyčerpání rezervovaného prostoru je odhad obvykle zbytečně velký
• souvislé obsazení paměťového prostoru zvyšuje rychlost zpracování
• velký počet malých bloků zvyšuje požadavky na velikost tabulek
• pevná velikost bloků zjednodušuje novou alokaci uvolněného prostoru - po smazání
souboru lze uvolněné bloky bez problémů použít pro nový soubor
22
• proměnná velikost bloků - minimalizuje vnitřní fragmentaci
• souvislá alokace
• při vytváření je souboru přidělena jedna sada po sobě následujících bloků
• stačí jedna položka v alokační tabulce - počáteční blok souboru, délka souboru
• dochází k vnější fragmentaci
• po zrušení souboru se obvykle nepodaří do uvolněné oblasti umístit soubor stejné
velikosti
• po zaplnění disku je obtížné nalézt souvislou sadu bloků potřebné délky
• řetězená alokace
• alokují se jednotlivé bloky
• každý blok obsahuje ukazatel na následující blok v řetězci
• stačí jedna položka v alokační tabulce - počáteční blok souboru, délka souboru
• nedochází k vnější fragmentaci
• kterýkoliv volný blok lze připojit na konec souboru
• v případě potřeby lze snadno zvětšit velikost souboru
• nebere ohled na princip lokality
• logicky sousední bloky mohou být fyzicky umístěny značně daleko od sebe
indexová alokace
• alokační tabulka obsahuje samostatný jednoúrovňový index pro každý soubor
• index má jednu položku pro každý blok alokovaný souboru
• alokační tabulka obsahuje číslo bloku pro indexaci
• lze použít proměnnou velikost bloků
Souborový systém
• slouží k dlouhodobému uložení programů a dat
• informace se ukládají v pojmenovaných objektech zvaných soubory
• pro OS snadno použitelná jednotka z hlediska přístupu a ochrany
• programy při manipulaci s obsahem souborů mohou soubory (či jejich části) kopírovat do
virtuální paměti
• soubor může sloužit jako zdroj vstupních dat nebo cíl vstupních dat pro program
• soubor může obsahovat program
23
2 Počítačové sítě
2.1 Základní komunikační funkce – synchronizace, adresace, detekce
a oprava chyb, řízení přístupu, řízení toku, taxonomie sítí.
Synchronní, asynchronní přenos
Synchronní = informace se přenášejí po jednotlivých bitech, vzdálenosti mezi nimi jsou pevně
určeny
Asynchronní = okamžiky přechodu od přenosu jednoho bitu k přenosu dalšího bitu nejsou
stejně vzdáleny,
arytmický přenos.
Časová synchronizace
Hodinový signál-hodinový signál je v časovém vztahu s daty
- určuje, ve kterém okamžiku jsou data platná
Metody odvození hodinového signálu
•
asynchronní arytmický přenos – přenos slov je asynchronní, ale přenos jednotlivých bitů v rámci
slova je již synchronní
Synchronizace přijímače a vysílače
v přijímači je nutné rozpoznat hranice jednotlivých symbolů bitů, znaků, bloků, zpráv…
přímá synchronizace – synchronizační informace je obsažena v přijímaném signálu
PŘEDPOKLAD:
časová základna přijímače se liší od časové základny vysílače jen málo a synchronizaci proto není
24
nutné obnovovat v každém bitu
nepřímá synchronizace – synchronizační informace se odvozuje z přijímaného signálu
nepřímo – start-stopní (arytmický) přenos, fázový závěs (PLL)…
Adresace
•
•
•
•
•
•
Každý paket v síti je adresován na jednu unikátní adresu.
V sítích IP se adresuje pomocí adresy IP.
Pomocí IP adresy dochází ke směrování
Data uvnitř jedné sítě jsou doručována podle MAC adresy
Protokoly ARP, RARP, DNS
Vznik a detekce chyb
mezi vysílačem a přijímačem dojde ke změně, např. vlivem rušení, přenášeného signálu, který se
pak demoduluje a dekóduje na jiný znak, než byl původně vyslán – vysláno 1111, přijato 1101
Možnosti detekce:
- parita (příčná a podélná)
- kontrolní součty
- cyklické redundantní kódy CRC (zdaleka nejlepší účinnost)
Kódová (Hammingova) vzdálenost
je počet pozic, na kterých se řetězce stejné délky liší, neboli počet záměn, které je potřeba provést pro změnu
jednoho z řetězců na druhý.
1010101010
1100110010
0+1+1+0+0+1+1+0+0+0 = 4 - Hammingova vzdálenost je 4.
PARITA
– jednoduchá metoda zabezpečení proti chybám
– ke kódu se přidá další bit, jehož hodnota udává počet jedniček MODULO 2
– parita zvyšuje kódovou oblast o 1
napr. seriova linka
Samoopravný kód umožňuje následnou opravu chyby v jediném bitu, přidává ke každému
8 bitovému bytu navíc pět bitů (resp. 6 bitů ke každému 16-bitovému slovu).
Kódová krychle
– symboly A, B jsou zakódovány pomocí 3 bitů tak, že při změně A na B nebo opačně se musí
změnit hodnota všech 3 bitů
symbol
kód
A
000
B
111
kódová vzdálenost = 3
– je-li kódová vzdálenost větší nebo rovna 2n+1, umožňuje kód detekci 2n chyb a automatickou
opravu n chyb
Zabezpečovací kódy
– větší kódové vzdálenosti lze dosáhnout speciálními kódy
– Hammingovy a cyklické kódy využívají vlastnosti polynomů
– zákrytové (Orchad) kódy využívají geometrické principy
25
– ve fyzikálním prostředí se chyby často vyskytují ve shlucích
– rušivý impuls potlačí několik přenášených bitů za sebou
– poškození povrchu optického či magnetického paměťového media zasáhne několik
bitů za sebou
– důležitou vlastností zabezpečovacích kódů je odolnost proti shlukům chyb
BSC
Binary synchronous communication (bisync). Znakově orientovaný protokol spojové vrstvy.
HDSL
High-data-rate digital subscriber line. Jedna ze čtyř DSL technologií s přenosovým pásmem 1,544
Mb/s v obou směrech, využívající dva kroucené dvoupáry. Bez použití opakovačů je vzdálenost
omezena na 3658,5 m.
Řízení přístupu
v době, kdy uzel nevysílá, zůstává část přenosové cesty přidělená uzlu zcela nevyužitá
výhodnější je dynamické přidělování (alokování) přenosového kanálu přenosové médium je
přidělováno (typicky celé) dynamicky, na základě skutečné potřeby (požadavku)
Možné varianty řízení přístupu:
• řízené metody (deterministické) např. Token Passing (Token Ring, FDDI)
• neřízené metody (stochastické) – CSMA/CD
– jejich pravidla obsahují „náhodný“ prvek – např. „počkej náhodně zvolenou dobu“
– vedou k výsledku jen s určitou pravděpodobností
• centralizované metody
– většinou jde o řízené (deterministické) metody – např. HDLC
• distribuované metody
– metodu realizují jednotlivé uzly ve vzájemné součinnosti např. CSMA/CD
(Ethernet)
Řízené centralizované metody
• počítají s existencí centrálního arbitra
• arbitr se musí dozvědět, kdo a kdy chce vysílat (získat přístup)
– metodou výzev (polling) – centrální arbitr se pravidelně (cyklicky) dotazuje všech
potenciálních zájemců o vysílání
– z explicitních žádostí uzlů o právo na vysílání
Řízené distribuované metody
• nemají centrálního arbitra
• algoritmus přidělování „běží“ na všech uzlech
• počítají s důslednou disciplínou všech uzlů – že každý dodrží stanovená „pravidla hry“
varianty:
• rezervační metody – distribuovaná obdoba přidělování na žádost
• prioritní přístup – existuje způsob, jak žadatelé mohou ze svého středu vybrat jednoho, a ten
může vysílat
 metody s předáváním pověření (token)
– vysílá pouze držitel oprávnění
– kruh je pouze logický
– lze garantovat přístup do doby x
Neřízené distribuované metody
Metoda Aloha odešli, když potřebuješ (na nikoho se neohlížej), pokud nedostaneš včas potvrzení,
26
opakuj
• dochází často ke kolizím, efektivnost do 18%
Metoda CSMA
• poslouchej nosnou, a pokud nikdo nevysílá, můžeš začít vysílat sám
• kdy může dojít ke kolizi:
– více uzlů (zájemců o vysílání) současně zjistí, že nikdo nevysílá, a začne vysílat
– více uzlů čeká, až někdo jiný přestane vysílat, a pak začnou všichni najednou
nenaléhající CSMA
• podívá se, jestli někdo vysílá, pokud ano, odmlčí se na náhodnou dobu
naléhající CSMA
• jakmile je volno, začne vysílat
Metody CD
• snaží se detekovat výskyt kolizí
• metody „bez CD“ pokračují ve vysílání, i když ke kolizi došlo
• metody s CD využívají schopnost detekce k (téměř) okamžitému ukončení vysílání
• uzel, který detekoval kolizi, vyšle zvláštní „rušení“ (jam), aby ostatní uzly určitě detekovaly
kolizi také
Algoritmus CSMA/CD
• pokud nikdo právě nevysílá (CS), můžeš začít vysílat sám
• pokud někdo vysílá, čekej až skončí
• pokud začneš vysílat a dojde ke kolizi, přestaň, a odmlč se na náhodně zvolenou dobu
• při vyšší zátěži vykazují nestabilitu
Řízení toku
•
•
•
Řízení toku je umožňují aktivní prvky
Routery
Switche
Rozdělení počítačových sítí (taxonomie)
Počítačové sítě můžeme rozdělit do různých skupin podle kritérii, které nemusí být přesně
definována a můžou se vzájemně prolínat. To znamená, že výsledné skupiny nemají
pevně určeny hranice a jedna síť může patřit do více skupin současně.
Nejzákladnější dělení je podle:
Velikosti
• Topologie
• Přenosové rychlosti
• Typu uzlu
• Vztahu mezi uzly
• Architektury
• Mobility
27
2.2 Spojovaný a nespojovaný přenos, síťové modely a architekt, referenční model
ISO/OSI, architektura TCP/IP
Přepojování okruhů (spojovaný přenos)
•
•
•
•
•
•
•
pochází ze „světa spojů“
obdoba telefonní sítě
mezi příjemcem a odesilatelem vzniká přímá, souvislá cesta
komunikace probíhá v reálném čase
představa: od odesilatele vede až k příjemci jednolitá „roura“, kterou protékají data
data nemusí být příjemci explicitně adresována
Přepojování paketů (nespojovaný přenos)
•
•
•
•
•
•
pochází ze „světa počítačů“
fungují tak prakticky všechny sítě LAN a WAN
obdoba listovní pošty
mezi příjemcem a odesilatelem nevzniká žádná souvislá vyhrazená cesta
data se přenášejí po blocích (paketech, datagramech, buňkách, …)
přenos neprobíhá v reálném čase – přestupní uzel nejprve přijme celý přenášený blok dat a
teprve pak jej předá dál
• přenášená data musí být explicitně adresována
čím jsou bloky větší
• tím je přenos dat efektivnější klesá režie
• tím více rychlost přenosu závisí na kvalitě přenosové cesty, při chybě se musí opakovat přenos
celého bloku
• tím větší je rozdíl mezi přepojováním paketů a přepojováním okruhů
– důležité např. pro přenos zvuku a obrazu
při extrémně malých blocích (buňkách) se rozdíl téměř ztrácí – toho využívá technologie
ATM – přenos dat je založen na přepojování velmi krátkých bloků dat (buněk), vyhovuje
potřebám „světa spojů“ i „světa počítačů“
Síťový model a síťová architektura
síťový model je ucelená představa o tom, jak mají být sítě řešeny zahrnuje:
• představu o počtu vrstev
• představu o tom, co má mít která vrstva na starosti
nezahrnuje:
• konkrétní představu o tom, jak má která vrstva své úkoly plnit tedy konkrétní protokoly
síťová architektura obsahuje navíc také:
• konkrétní představu o způsobu fungování jednotlivých vrstev (tj. obsahuje konkrétní
protokoly)
příklad síťového modelu: referenční model ISO/OSI
příklad síťové architektury: TCP/IP
switching = přepínání
• přepojování na nižší úrovni (linková vrstva)
• bere v úvahu jen nejbližší okolí uzlu
28
• lze řešit HW
routing = směrování
• přepojování na vyšší úrovni (síťová vrstva)
• bere v úvahu topologii celé sítě
• řeší se SW
ISO/OSI
• pokus o vytvoření univerzální síťové architektury
• pochází ze světa spojů
• používá se pro srovnávací účely
fyzická vrstva – zabývá se přenosem bitů
• neinterpretuje, co přenáší
• rozlišuje se paralelní a sériový přenos
• přenos v základní a přeloženém pásmu
linková vrstva – přenáší celé bloky (frames)
• zajišťuje přenos pouze v dosahu přímého spojení
• funguje spolehlivě, nespolehlivě, spojovaně, nespojovaně
• synchronizace na úrovni rámců
• zajištění spolehlivosti – detekce chyb
• řízení toku
• přístup ke sdílenému médiu
síťová vrstva
• přenáší bloky dat jako datagramy či pakety
• zajišťuje doručení paketů až ke koncovému adresátovi
• v prostředí, kde není přímé spojení, hledá vhodnou cestu až k cíli
– zajišťuje tzv. směrování (routing)
• musí si uvědomovat skutečnou topologii celé sítě (obecně)
• může používat různé algoritmy směrování: adaptivní, neadaptivní, izolované, distribuované
• data v přestupních uzlech se nedostanou výš než na úroveň síťové vrstvy
transportní vrstva – s vlastnostmi a funkcemi nižších vrstev nelze „hýbat“
• vyšší vrstvy mohou chtít něco jiného, než co nabízí nižší vrstvy
• je úkolem transportní vrstvy zajistit potřebné přizpůsobení!
• může měnit:
– nespolehlivý charakter přenosu na spolehlivý
– méně spolehlivý přenos na více spolehlivý
– nespojovaný přenos na spojovaný
relační vrstva – zajišťuje vedení relací
• může zajišťovat: synchronizaci, šifrování, podporu transakcí
prezentační vrstva – nižší vrstvy se snaží doručit každý bit přesně tak, jak byl odeslán
• stejná posloupnost bitů může však mít pro příjemce jiný význam než pro odesilatele,
• např. pro rozdíly:
– v kódování znaků (ASCII, EBCDIC,…)
• prezentační vrstva má na starosti potřebné konverze
aplikační vrstva – původně měl obsahovat aplikace
• problém: aplikací je moc, musely by být všechny standardizovány
29
• později:
– aplikační vrstva měla obsahovat pouze „jádro“ aplikací, které má smysl standardizovat
– například přenosové mechanismy elektronické pošty
TCP/IP
• obsahuje ucelenou představu o počtu a úloze vrstev
• síťová architektura – obsahuje konkrétní protokoly
• nejdříve vznikají protokoly a později vrstvy
TCP/IP
Aplikační
Transportní
Síťová
Vrstva síťového rozhranní
ISO/OSI
Aplikační
Prezentační
Relační
Transportní
Síťová
Linková
Fyzická
vrstva síťového rozhraní
• zahrnuje vše, co se nachází „pod síťovou vrstvou“
• předpokládá se, že bude používat to, co vznikne někde jinde
síťová vrstva
• zajišťuje pouze nespojovaný a nespolehlivý přenos
• protokol IP snaží se zakrývat specifika přenosových technologií nižších vrstev a fungovat nad
nimi optimálně
transportní vrstva
• sama využívá nespojovaný a nespolehlivý přenos na úrovni síťové vrstvy
• sama nabízí spojovaný a spolehlivý přenos
• protokol TCP /transmission control protocol/
– zajišťuje spolehlivý přenos a spojovaný
– tváří se jako proud /stream/
• protokol UDP /User Datagram Protocol/
– zajišťuje nespojovaný a nespolehlivý přenos
aplikační vrstva
• koncepce obdobná modelu ISO/OSI
• původní – elektronická pošta, přenos souborů – později vznikají další, sdílení souborů, správa
sítě…
2.3 Přístupové metody ke sdílenému médiu na 2. vrstvě. Technologie
Ethernet, typy a vlastnosti aktivních síťových prvků.
První komerčně dostupná verze Ethernetu byla společným projektem firem DEC, Intel a XEROX
(Ethernet II, DIX Ethernet), dnešní podoba je standardizována organizací IEEE – existuje celá řada
verzí (včetně Wireless)
Ethernet přenosové cesty optické, drátové rychlosti 10,100,1000 Mb/s
paket: hlavička a datová část (adresa odesilatele, příjemce, opravny crc kod)
adresace: pevně alokovaná adresa 48 bitů (světově unikátní)
zabezpečení: 32-bitový cyklický kód (CRC)
řízení přístupu: adaptivní CSMA/CD
Ethernet 10Mb/s
30
10BASE-T hvězdicová topologie (společné medium tvoří opakovač nebo port přepínače),
MAU (Samostatné jednotky, ke kterým lze připojit až 8 uzlových počítačů.) na desce, připojení
k rozbočovači nebo přepínači konektorem RJ45 a dvojicí kroucených dvoulinky
10BASE-F verze používající optické kabely (FL, FB, FP)
Ethernet 100Mb/s je 10x rychlejší
všechny časy jsou 10x kratší, ve stejném poměru se však zmenšily maximální vzdálenosti
100BASE-TX hvězdicová topologie, populární díky kompatibilitě s 10BASE-T, připojení
konektorem RJ45 a dvojicí kroucených dvojvodičů; některé síťové prvky se dokáží
automaticky přizpůsobit provozu rychlostí 10 i 100 Mb/s
100BASE-FX varianta pro připojení optickým kabelem
10BROAD36 verze 10Mb/s používající technologii kabelové televize
Wireless Ethernet bezdrátová verze Ethernetu, používá kódový multiplex
Ethernet 1Gb/s nová verze Ethernetu, opět 10x rychlejší než Ethernet 100Mb/s (max.
délka přípojky 25m)
Aktivní prvky:
· fyzická vrstva: opakovač (repeater), rozbočovač (hub)
· linková vrstva: most(bridge), přepínač (switch)
· síťová vrstva: směrovač (router)
· aplikační vrstva: brána (gateway)
Opakovač:
· je to pouze digitální zesilovač, zesilující a znovu tvarující přenášený signál
· funguje v reálném čase až na malé zpoždění způsobené elektronickými prvky
· kompenzuje zkreslení, útlum a další vady reálných přenosových cest
· vše, co přijímá, rozesílá („opakuje“) do všech připojených segmentů
· šíří i kolize a poškozené pakety
· uzly v jiných segmentech musí poznat, že k ní došlo
· propojené segmenty tvoří jednu kolizní doménu tj. oblast, ve které současné zahájení vysílání
kterýchkoliv dvou uzlů způsobí kolizi
· kolizní doména končí až na nejbližším mostu, přepínači nebo směrovači
Mosty, přepínače a směrovače se nezajímají o datový obsah rámců resp. paketů
mohou propojovat jen takové systémy, které do rámců/paketů „balí“ stejná data, tj. stejné systémy,
ev. systémy lišící se v přenosových technologiích nižších vrstev
Switche:
· Princip fungování
– Jako opakovač
– Naplnění směrovací tabulky MAC adresami
– Další přenos už je analyzovaný
· Switch vždy pracuje plnou rychlostí sítě
· Propustnost přepínače je dána CPU
– store and forward – celý rámec do paměti (možná detekce poškozeného rámce, větší latence)
– cut throught – z bufferu se přečte jen hlavička a poté okamžité odeslání, jednodušší algoritmus,
větší propustnost
· přepínání přepojování na úrovni linkové vrstvy
· bere v úvahu jen nejbližší okolí uzlu
· rozhodování o dalším směru přenosu je jednoduché
· obecně jednodušší a rychlejší
· lze „zadrátovat“ (tj. řešit přímo v HW)
Routry:
· směrování přepojování na úrovni síťové vrstvy
· bere v úvahu topologii celé sítě
31
· vyžaduje náročnější rozhodování o dalším směru přenosu dat
· obecně složitější a pomalejší
· řeší se v SW, nelze snadno řešit pomocí HW
Brány:
· pro spolupráci odlišných systémů je nutné rozumět přenášeným datům a provádět jejich konverzi
· brány jsou vždy aplikačně orientované, rozumí jen datům určité aplikace (aplikací)
Přístupové metody ke sdílenému médiu
Řízené centralizované metody
· počítají s existencí centrálního arbitra
· arbitr se musí dozvědět, kdo a kdy chce vysílat (získat přístup)
· jinak by muselo jít o statické přidělování
· jak se to arbitr může dozvědět?
– metodou výzev (polling) – centrální arbitr se pravidelně (cyklicky) dotazuje všech potenciálních
zájemců o vysílání
– z explicitních žádostí uzlů
_ zájemce musí „explicitně požádat“ o právo na vysílání
_ musí existovat možnost vyslání dotazu k arbitru
_ výhody-nezdržují se přenosy-nevýhody – velká režie
Řízené distribuované metody
· nemají centrálního arbitra
· mají plně deterministická “pravidla hry“
· algoritmus přidělování „běží“ na všech uzlech
· počítají s důslednou disciplínou všech uzlů – že každý dodrží stanovená „pravidla hry“
· varianty:
– rezervační metody – distribuovaná obdoba přidělování na žádost
– prioritní přístup – existuje způsob, jak žadatelé mohou ze svého středu vybrat (koordinovaným,
deterministickým způsobem) jednoho, a ten může vysílat
– metody s předáváním pověření (token) logický kruh
_ též: metody s předáváním pověření – vysílá pouze držitel oprávnění
_ token – pešek – speciální balíček dat
_ kruh je pouze logický
_ lze garantovat přístup do doby x
Neřízené distribuované metody
Metoda Aloha (tzv. „čistá“)
· vznikla na univerzitě na Havajských ostrovech
· potřebovali přenášet data mezi ostrovy, neměli vhodnou infrastrukturu
· využívá rádiového přenosu
· přenosu „éterem“, jedním společným kanálem se všesměrovým šířením
· strategie: odešli když potřebuješ (na nikoho se neohlížej) pokud nedostaneš včas potvrzení,
opakuj
· dochází často ke kolizím
· efektivnost do 18%
Metoda CSMA
· „čistá“ Aloha nemonitorovala provoz na kanále – nerozpoznala, že už někdo vysílá
· metody CS (Carrier Sense) využívají možnosti „odposlechu nosné“ a díky tomu dokáží zmenšit
počet kolizí, ale nedokáží je odstranit zcela
· princip (chování uzlu): poslouchej nosnou, a pokud nikdo nevysílá, můžeš začít vysílat sám
· kdy může dojít ke kolizi:
– více uzlů (zájemců o vysílání) současně zjistí, že nikdo nevysílá, a začne vysílat
– více uzlů čeká, až někdo jiný přestane vysílat, a pak začnou všichni najednou
32
· nenaléhající CSMA – podívá se, jestli někdo vysílá – pokud anoo odmlčí se na náhodnou dobu
· p-naléhající – podívá se, jestli někdo vysílá – pokud ano odmlčí se na 1/p zvloneou náhodnou
dobu
· naléhající CSMA – jakmile je volno, začne vysílat
Metody CD
– snaží se detekovat výskyt kolizí
– metody „bez CD“ pokračují ve vysílání, i když ke kolizi došlo
– metody s CD využívají schopnost detekce k (téměř) okamžitému ukončení vysílání
– některé uzly nemusí kolizi správně detekovat
– uzel, který detekoval kolizi, vyšle zvláštní „rušení“ (jam), aby ostatní uzly určitě detekovaly kolizi
také
Algoritmus CSMA/CD
· pokud nikdo právě nevysílá (CS), můžeš začít vysílat sám
· pokud někdo vysílá, čekej, až skončí
· pokud začneš vysílat a dojde ke kolizi, přestaň, a odmlč se na náhodně zvolenou dobu
· při vyšší zátěži vykazují nestabilitu
2.4 Adresování ve 2. a 3. vrstvě, MAC-adresa, IP-adresa, protokoly
ARP a RARP, třídy IP-adres, podsítě a supersítě. Princip všesměrového
adresování, šíření kolizí a všesměrového vysílání, kolizní doména,
broadcast doména.
MAC – jednoznačná identifikace na LV 48 bit (první tři oktety = výrobce, další 3 identifikace karty
v rámci výrobce). např. 00-00-64-65-73-74
IP adresa je jednoznačná identifikace konkrétního zařízení v prostředí Internetu. Veškerá data (ve
formě datagramů), která jsou posílána z daného zařízení přes počítačovou síť, obsahují IP adresu
odesilatele i příjemce. Zkratka IP znamená Internet Protocol, což je protokol, pomocí kterého spolu
komunikují všechna zařízení v Internetu. Dnes nejčastěji používaná je jeho IPv4, postupně se však
bude přecházet na novější verzi IPv6. V jiných protokolech se adresování jednotlivých zařízení
může provádět jinak (viz např. MAC adresa)
Třídy IP adres
•
•
•
•
A 126 sítí 16,7 mil. uzlů [intranet – 10.0.0.0/8] /8 = počet bitů masky
B 8190 sítí 65. 534 uzlů [intranet – 172.16.0.0/12]
C 2 mil. sítí max 254 uzlů [intranet – 192.168.0.0/16]
InterNIC přiděluje IP adresy po skupinách národním distributorům ty je přidělí po skupinách
providerům
Třídy adres:
proměnný formát adresy spočívá v různém nastavení “předělu” mezi adresou sítě a adresou uzlu v
rámci sítě
33
Podsítě:
• velký počet adres třídy C způsobuje komplikace
o každé adrese C odpovídá ve směrovacích tabulkách jedna položka
o ... směrovací tabulky se tím stávají neúnosně velké!
• možné řešení: použít adresy třídy B, ale těch je málo
Využijeme techniku podsítí (subneting)
technika, umožňující efektivněji využívat adresový prostor IP adres
umožňuje zavést jiné jemnější dělení adresy na dvě logické složky
umožňuje vytvářet „logické podsítě”
Supersíť: spojení podsítí jednou maskou 255.255.0.0
Kolizní doména je oblast kde dochází ke kolizím na úrovni linkové vrstvy (vysílá moc lidí).
IP: 130.75.27.11192.168.32.34
Maska: 255.255.0.0
M and IP130.75.0.0
adr. sítě
M‘ and IP0.0.27.11
adr. hosta
M‘ or IP130.75.255.255
broadcast
Kódování tříd adres
•
•
•
•
Využívá se u směrování
Data jsou doručeny všem uzlům v síti
Iterativní
A - 0xxx
B - 10xxx
C - 110xxx
Kolize
– při časovém multiplexu obvykle nesmí vysílat více uzlů najednou
– „technicky“ to většinou moc nevadí - obvykle nedojde k poškození přenosové cesty
– vadí to však „logicky“
– dochází k nežádoucímu „smísení“ signálů
– jeden zdroj signálu ruší druhý
– pokud k takové situaci dojde, hovoříme o kolizi
– frekvenční a kódový multiplex obvykle připouští současné vysílání více uzlů
ARP je jedním možným mechanismem dynamického překladu IP adres na fyzické adresy nikoli
jediným možným řešením!
• využívá možnosti všesměrového vysílání (broadcastingu) např. v Ethernetu
• ARP dotaz obsahuje IP adresu, ke které se hledá fyzická adresa. Tento paket se rozešle všem
uzlům dané sítě (směrovače nesmí šíření paketu omezit)
• ARP odpověď posílá uzel, který rozpoznal svoji IP adresu.
34
K odpovědi připojí i svou fyzickou adresu
důsledek:
tázající se dozví potřebnou fyzickou adresu
Jednotlivé uzly si své IP adresy mohou pamatovat samy (na svých pevných discích)
• ne vždy je to možné (např. u bezdiskových stanic)
• ne vždy je to vhodné (zejména pro správu sítě a správu konfigurací)
Každý uzel musí znát svou IP adresu ještě dříve, než vyšle či přijme svůj první IP paket!
RARP se v počítačových sítích s IP protokolem používá k získání vlastní IP adresy počítače při
znalosti MAC adresy
Vysílající vyšle RARP dotaz obsahující vlastní MAC adresu. Dotaz se posílá na MAC broadcast,
tedy všem počítačům v dané fyzické síti. V ní by se měl nacházet RARP server opatřený tabulkou
obsahující IP adresy příslušející jednotlivým MAC adresám. Server prohlédne tabulku, a pokud v ní
najde MAC adresu tazatele, pošle mu zpět RARP odpověď (RARP reply) s IP adresou, kterou si má
nastavit.
• RARP pakety se vkládají přímo do linkových rámců
• RARP se používá především v Ethernetu (využívá broadcasting)
• RARP neprojde přes směrovače,
tj. jeho působnost je omezena na lokální síť
2.5 Protokol IP, formát paketu a záhlaví, doba života paketu (TTL),
maximální velikost paketu (MTU). Průchod IP-paketu sítí, fragmentace a
defragmentace, úloha protokolu ICMP.
Protokol IP
Stará se o doručení dat z jednoho uzlu na druhý
Směrování IP paketů v síti
Definuje formát IP paketů
Implemetuje jednotné adresování IP
Ošetřuje nestandartní situace
•
•
•
•
•
IP Datagram (paket)
Zapouzdřuje data z vyšších vrstev
Skládá se z hlavičky (20 B) a datové části
Max 65535 B
•
•
•
Hlavička IP paketu
•
•
Verze – první položka, verze IP, pro IPv4 obsahuje 4
Délka záhlaví
• v násobcích „čtyřbajtů“ (32bitů) – např. pro délku 20B obsahuje 5
• záhlaví se proto vždy doplňuje na velikost dělitelnou 4B
• maximální velikost záhlaví je tedy 11112 x 4B=1510 x 4B = 60B
• povinné položky zabírají 20B – na volitelné tedy zbývá 40B
35
•
•
•
•
•
•
•
•
•
Typ služby
• dlouho nevyužitá položka
• dnes se používá maximálně jako jednoduché QoS
Celková délka
• celková délka IP datagramu (včetně hlavičky) v B
• 2B → 65536 - nulová velikost = 65536B
Identifikace IP datagramu
• základní identifikátor datagramu
• datagramy mohou do cíle přijít v různém pořadí – je třeba je pak podle něčeho seřadit
Fragmentační příznaky
• popisují možnost fragmentace datagramu
Offset fragmentu
• použije se v momentě vytváření fragmentovaného datagramu
Tyto položky úzce souvisejí s možností fragmentace (rozdělováním) datagramů při průchodu
některými cestami
Doba životnosti datagramu - Time to live (TTL)
o slouží k zamezení nekonečného toulání datagramu po směrovačích
o každý směrovač snižuje např. o 1
o při TTL=0 se datagram zahazuje
 odesilateli je odeslán ICMP
Protokol vyšší vrstvy
o číselná identifikace vloženého protokolu
o málokdy se komunikuje přímo IP protokolem
o proto je vkládán další vyšší protokol (např.: 6-TCP, 17-UDP...)
Kontrolní součet z IP záhlaví
o pouze ze záhlaví
o problémem je, že pokud se něco změní v hlavičce (např. TTL) musí se CRC znovu dopočítat
Fragmentace IP Paketu
•
•
•
•
•
•
•
•
Přenos je nejefektivnější když můžeme celý paket vložit do linkového rámce bez dělení. – IP
protokol se o to snaží
parametr MTU Maximum Transfer Unit – je definován v konfiguraci PC
IP protokol má nástroje pro (de)fragmentaci paketů
Defragmentaci provádí příjemce
Není rozumné přizpůsobovat velikost minimu ze všech síťových prvků
Každý fragment zatíží sít novou hlavičkou.
Identifikace – podleni se zjisti které pakety patri k sobe
Offset – podleni se zjisti na jako pozici patri paket, offset = 0 první paket
MTU
Maximum transmission unit, zkráceně MTU (česky maximální přenosová jednotka). V sadě
protokolů internetu se jedná o označení maximální velikosti IP paketu, který je možné přenést z
jednoho síťového zařízení na druhé. Obvyklá hodnota MTU v případě Ethernetu je 1500 bajtů,
nicméně mezi některými místy počítačové sítě (spojených například modemem nebo sériovou
linkou) může být maximální délka přeneseného paketu nižší.
Maximální možnou velikost MTU na trase lze zjistit metodou Path MTU discovery, kdy je vyslán datagram s
nastaveným příznakem Do not fragment (nefragmentovat). Pokud některý router potřebuje provést
fragmentaci (která je zakázána), je pomocí protokolu ICMP oznámena odesílateli chyba.
36
Servisní protokoly a diagnostika
ICMP - Internet Control Message Protocol
•
•
•
•
Povinná součást všech realizací IP protokolů
Mechanizmus pro hlášení chyb a nestandartních situací
ICMP pakety jsou přenášeny v datové části IP paketů
ICMP pakety mohou být filtrovány
Složení ICMP
•
•
•
Typ - hrubé dělení zpráv
Kód - Jemné dělení
Podle těchto polí se odlišuje hlavička i tělo zprávy
Použití ICMP
•
•
•
2.6
Echo - dosažitelnost uzlů
Nedoručitelný paket - informování adresáta pomocí ICMP
Čas vypršel - TTL = 0 Tracert
Směrování, směrovací tabulky, směrovací protokoly.
Směrování Routing – hledání cest v počítačových sítích. Úkolem je dopravit datový paket určenému
adresátovi, pokud možno co nejefektivnější cestou.
Směrovací tabulka – sadu ukazatelů, podle kterých se rozhoduje, co udělat s kterým paketem.
Adresa cílové sítě: "IP +
Maska"
Příští
adresa
Síťové
rozhraní
Metrik
a
 Procházení po řádcích – Vyhodnocení Maska x uzel
 pro více vyhovujících rozhoduje Metrika
 Pro žádný záznam se použije default s maskou 0.0.0.0
Konstrukce směrovacích tabulek
•
•
•
•
•
•
Manuálně
Dynamicky pomocí ICMP
Dynamicky pomocí směrovacích protokolů
Příme směrování se využívá na stejné dílčí síti – je snadné
Nepřímé směrování – paket putuje přes více sítí
Routery na každém TCP/IP segmentu tvoří vzájemně spolupracující soustavu
Hostitelská PC se od Routerů "učí"
Směrovače upozorňují PC pomocí ICMP o existenci jiných routerů ICMP redirect
ICMP a směrování
37
•
•
•
Reakci na zahlcení
Informaci o zacyklení cest
Testuje dosažitelnost uzlů "ICMP echo"
Dřívější představa Internetu
•
•
Core gateways
NonCore gateways
Dnešní routování
•
•
•
Soustava autonomních systémů
Stromovitá struktura
Soustava Core gateways kořen stromu
IGP Interior Gateway Protocols – napr. RIP, OSPF, EGRP
•
•
•
•
•
Automatické směrovací protokoly dynamicky vytvářejí směrovací tabulky
Snadná adaptace na změny v topologii
Hledání optimální cesty – různými metodami
Centralizované směrování – (distribuce směrovací tabulky centrálem)
Izolované směrování – pouze znalost okolí (záplavové vs horká brambora)
Algoritmy pro výpočet směrovacích cest
•
•
DVA – Distance Vector Alghoritm (RIP, IGRP, E-IGRP) – ohodnocení cesty (délky)
HopCount
LSA – Link State Alghoritm (NLSP, EGP, OSPF, IS-IS) – kvality cesty
2.7 Transportní protokoly TCP a UDP, rozdílné a společné vlastnosti, porty.
Potvrzovací mechanizmus v TCP, třícestné navazování spojení, technika zpožděné
odpovědi.
•
•
o
•
•
služby transportní vrstvy používají entity aplikační vrstvy
zajišťuje komunikaci koncových účastníků
rozlišuje zdrojovou a cílovou aplikaci
rodina protokolů TCP/IP nabízí v transportní vrstvě dva alternativní protokoly:
TCP = Transmission Control Protocol
UDP = User Datagram Protocol
oba využívají nespolehlivý a nespojovaný přenos (IP), zajišťovaný síťovou vrstvou
Protokol TCP
• spojovanou službou, TCP segment
o přidává spolehlivost kontroluje integritu paketů, zajišťuje opakování přenosu poškozených a
ztracených paketů, kontroluje a opravuje pořadí došlých paketů, vyřazuje zdvojené pakety,
funguje na spojovaném principu, mezi odesilatelem a příjemcem vytváří virtuální spoj, plne
duplexni, Přenášené bajty jsou číslovány. Ztracená nebo poškozená data jsou znovu vyžádána.
Integrita přenášených dat je zabezpečena kontrolním součtem.
Protokol UDP
38
•
•
•
o
nespojová služba, UDP datagram
nezajišťuje spolehlivost
nenavazuje spojení
maximálně jednoduchou “obálkou” nad protokolem IP nabízí prakticky tytéž přenosové služby
jako IP
o odesilatel odešle data a více se o ně nestará, o to se musí postarat až aplikace na aplikační vrstvě
Porty – číselná označení programů (služeb) běžících na jednom stroji.
transportní protokoly (UDP i TCP) musí přebírat data k přenosu od více odesilatelů a přijatá
data rozdělovat mezi více potenciálních příjemců.
• k rozlišení aplikace v rámci počítače.
• Čísla portů mohou být přidělena staticky – předem dohodnutá (a všem známá)
• servery pak budou dostupné na portech s předem dohodnutými (známými) čísly
• Všeobecně známé porty – dokumentech RFC
• 21 = FTP, 23 = telnet, 42 = name server, 80 = www server, 110 = POP3 server
• mohou vznikat dynamicky – přidělována až v okamžiku jejich vzniku (generovaná čísla portů)
• server číslo portu klienta předem nemusí znát, dozví se ho z žádosti klienta o službu
•
kompletní adresace v Internetu tedy je: IP adresa + číslo portu + použitý
protokol
•
•
•
2.8
třícestné navazování spojení
• Klient začíná navazovat spojení – 1
• TCP paket 1, připojuje se na port 4433, nastaven SYN, vygeneruje startovací
pořadové č. odesílaného bajtu ISN
• 1 je prvním segmentem – nemůže potvrzovat žádná data, není nastaven ACK
• Server potvrzuje spojení, navazuje 2. – 2
• nastaven ACK (zadost o potvrzeni), nastaven SYN
• Klient potvrzuje 2. spojení – 3
• nastaven ACK
Technika zpožděné odpovědi
snaha objem přenášených dat zmenšit, čímž se snažíme zabránit ucpání přenosových cest.
Myšlenka spočívá v tom, že potvrzování přijatých dat nebude probíhat okamžitě, ale se
zpožděním. Během tohoto zpoždění se pak mohou objevit i další data k přenosu.
Zpoždění 200 ms – operační systém spustí pro tento účel hodiny zpravidla s tikem 200 ms (pod
500 ms). Po každém tiku systém zkontroluje, zda-li není něco k odeslání (potvrzení přijatých dat
či odeslání dat). Pokud je třeba něco odeslat, pak vše odešle najednou. Jenže je již málo
pravděpodobné, že klient stiskne další klávesu H, tak aby software klienta byl schopen znak H
odeslat společně s potvrzením přijetí echa klávesy A. Proto jak je z následujícího obrázku patrné
klient provede potvrzení echa klávesy A pomocí segmentu a stisk klávesy H způsobí vyslání
dalšího TCP segmentu.
IP verze 4 a řešení nedostatku adres, privátní rozsahy, NAT.
stav v IP verze 4 – teoreticky 4 miliardy adres
39
Řešení nedostatku adres:
podsítě
• velký počet adres třídy C způsobuje komplikace.
• každé adrese C odpovídá ve směrovacích tabulkách jedna položka. ST se tím stávají
neúnosně velké!
• možné řešení: použít adresy třídy B, ale těch je málo
• jak adresu rozdělit, aby mohla být využita pro více sítí?
• podsíť = technika, umožňující efektivněji využívat adresový prostor IP adres – zavádí jiné
dělení
32-bitové IP adresy na dvě logické složky, než je definováno třídami A, B a C
• umožňuje vytvářet „logické podsítě”
-
•
•
•
•
•
•
•
Idea dělení na podsítě (subnettingu):
o hranice (bitová pozice) se posune směrem k nižším bitům
 adresy uzlů se rozdělí na několik skupin
• velikosti mocniny 2, aby to byl posun o celé bitové pozice
 použijí se masky
 vše se udělá někde "izolovaně" (v rámci jedné soustavy dílčích sítí)
• a informace o tomto rozdělení není šířena "do světa„
Subnetting hodně pomohl
• byl okamžitým řešením, které šlo použít "lokálně"
• zpomalil úbytek IP adres, ale neřešil jej z principu
NAT – Network Address Translation – překlad síťových adres
převádi IP-adresy přímo na routeru
překládá lokální (privátní, vícenásobně použitelné) adresy na veřejné (unikátní) adresy
poskytuje zabezpečení-lokální adresy "nejsou vidět"
šetří IP adresy – pokud jen část lokálních uzlů potřebuje komunikovat s vnějším světem!
neveřejné (privátní) IP adresy
Co brání vícenásobnému použití IP adres? – to, že by směr. Alg. nevěděly, kam doručovat IP
pakety
nebude existovat přímá komunikace, aby se adresy mohly opakovat
• tato situace nastává v sítích bez přímé IP konektivity ("privátních sítích"), které jsou
•
•
•
odděleny od "ostatního světa" vhodnou bránou (firewallem)
• která zajišťuje přestup na úrovni vyšší, než je síťová!!
Podmínka fungování:
• na hranicích privátních sítí je třeba zastavit šíření směrovacích informací
• "ohlašujících" existenci uzlů uvnitř privátních sítí
Důsledek:
• v privátních sítích lze použít v zásadě libovolné IP adresy
• uvnitř jedné privátní sítě musí být jednoznačně
• v různých privátních sítích mohou být použity stejné IP adresy
Doporučení:
• nepoužívat úplně libovolné IP adresy, ale takové, které byly k tomuto účelu vyhrazeny (RFC
1597)
40
•
2.9
jsou to adresy:
• 1síťová adresa třídy A: 10.0.0.0 – 10.255.255.255
• 16 adres třídy B: 172.16.0.0 – 172.31.255.255
• 256 adres třídy C: 192.168.0.0 – 192.168.255.255
IP verze 6
Úvod
S rozvojem Internetu se objevily nové požadavky na přenosové služby.
IP verze 4 neřeší například tyto problémy:
· již zmíněný nedostatek dres
· nedostatečná podpora služeb se zaručenou kvalitou (QoS)
· design neodpovídající vysokorychlostním sítím
· bezpečnostní mechanismy nejsou obsaženy přímo v IP
· nedostatečná podpora mobilních zařízení
· neexistující automatická konfigurace
Nový protokol je označován:
· nejprve jako protokol příští generace IP next generation (IPng)
· později se vžilo označení IPv6 (IP verze 5 exp. proudový protokol )
Nový protokol byl vyvíjen s cílem postupně nahradit protokol IPv4, podmínkou nového protokolu
tedy
byl co nejsnazší přechod na novou verzi.
Struktura hlavičky IPv6
Struktura hlavičky IPv6 se skládá ze 40B záhlaví následovaného rozšířeními
· pole Verze (4b) obsahuje 6 (u IPv4 4)
· pole třída dat specifikuje naléhavost dat, jinak řečeno, která data budou zahazována v případě
zahlcení sítě
· délka dat (2B = 65535B), bez základní hlavičky, s použitím příznaku „ohromný datagram“ v další
hlavičce i více
· typ další hlavičky – TCP, UDP, IPv4, rozšíření hlavičky IPv6
· identifikace toku dat, nová myšlenka, slouží ke dvěma účelům:
– snížení zátěže směrovačů
– datagramy jednoho toku dostanou shodný identifikátor
– směrovače pak řeší úlohu směrování pouze pro první datagram
– další datagramy odesílá stále do stejného rozhraní (max. 6s)
– další možností je zajištění QoS
– směrovače se nakonfigurují tak, aby pro pakety s určitým FL upřednostňovaly jejich směrování
– směrovače pak neobsluhují datagramy jako sekvenční frontu ale vybírají pakety s vhodným FL
Porovnání hlavičky IPv4, IPv6
41
V hlavičce IPv6 zůstaly pouze nejdůležitější informace, zejména takové, které se uplatňují při
průchodu paketu směrovači.
Pole „Next Header“
· ukazuje jaký typ hlavičky následuje (TCP, UDP, IPv4 nebo další IPv6)
· v další hlavičce je za polem Next Header pole specifikující posunutí k další hlavičce
· základní hlavička toto pole nemá, má vždy 40B
· v dodatečných hlavičkách IPv6 se vyskytují méně často používané údaje
Dodatečné hlavičky IPv6
· Volby pro všechny – informace zajímavé pro každého po cestě (např. upozornění směrovače, že
paket nese data, která by jej mohla zajímat)
· Směrování – datagram musí projít předepsanou cestou
· Fragmentace – při fragmentaci paketu nese informace nutné pro jeho složení do původní podoby
· Šifrování obsahu (ESP) – obsah datagramu je zašifrován, ESP hlavička nese odkaz na parametry
pro dešifrování
· Autentizace (AH) – data pro ověření totožnosti odesilatele a původnosti obsahu
· Volby pro cíl - informace určené příjemci datagramu (např. domácí adresa mobilního uzlu)
· Mobilita – hlavička pro potřeby komunikace s mobilními zařízeními
Šifrovací a autentizační hlavička
IPv6 nativně podporuje autentizaci a šifrování.
Autentizace je zajišťována vypočítáním CRC za pomocí MD-5 a šifrovacího 128bit. klíče → ten
musí
mít odesilatel i příjemce.
Formát adresy
Pro adresy zdroje a cíle je v IPv6 vyhrazeno 2 x 128b (2 x 16B) = 3.4 x 1038*
Rozeznáváme tři typy adres
Unicast jednoznačná adresa síťového rozhraní
Anycast adresa skupiny síťových rozhraní - dresována je skupina uzlů, ale paket je doručen pouze
jednomu (nejbližšímu z hlediska topologie), typicky: hledám nejbližší přístupový bod
Multicast – oběžník, adresována je skupina uzlů, paket je doručen všem
Datagramy typu všeobecného oběžníku (Broadcat) v IPv6 neexistují.
2.10
Princip doménového adresování, protokol DNS.
DNS je hierarchický systém doménových jmen, který je realizován servery DNS
42
a protokolem stejného jména, kterým si vyměňují informace. Jeho hlavním
úkolem jsou vzájemné převody doménových jmen a IP adres uzlů sítě.
Zóna: oblast sítě spravovaná jedním name serverem
Name servery – úkol: převod HOSTNAME (doménového jména) na IP
adresu
Doména – jednoznačné jméno počítače nebo počítačové sítě, které jsou připojené do internetu. Př.
doménového jména je www.example.com
DNS protokol – pracuje způsobem dotaz – odpověď. Klient pošle dotaz serveru a server na dotaz odpoví.
DNS protokol je protokol aplikační vrstvy, neřeší tedy otázku vlastního
přenosu paketů.
využívá DNS jako transportní protokoly UDP i TCP.
DNS servery (name servery)
DNS server může hrát vůči doméně jednu ze tří rolí:
•
•
•
Primární server je ten, na němž data vznikají. Pokud je třeba provést v doméně změnu,
musí se editovat data na jejím primárním serveru. Každá doména má právě jeden primární
server.
Sekundární server je automatickou kopií primárního. Průběžně si aktualizuje data a slouží
jednak jako záloha pro případ výpadku primárního serveru, jednak pro rozkládání zátěže u
frekventovaných domén. Každá doména musí mít alespoň jeden sekundární server.
Pomocný (caching only) server slouží jako vyrovnávací paměť pro snížení zátěže celého
systému. Uchovává si odpovědi a poskytuje je při opakování dotazů, dokud nevyprší jejich
životnost.
Příklad: Podívejme se, jak by postupovalo hledání IP adresy ke jménu www.wikipedia.org:
Postup hledání www.wikipedia.org
1. Uživatel zadal do svého WWW klienta doménové jméno www.wikipedia.org. Resolver v
počítači se obrátil na lokální DNS server s dotazem na IP adresu pro www.wikipedia.org.
2. Lokální DNS server tuto informaci nezná. Má však k dispozici adresy kořenových serverů.
Na jeden z nich se obrátí (řekněme na 193.0.14.129) a dotaz mu přepošle.
3. Kořenový server také nezná odpověď. Ví však, že existuje doména nejvyšší úrovně org, a
jaké jsou její autoritativní servery, jejichž adresy tazateli poskytne.
4. Lokální server jeden z nich vybere (řekněme, že zvolí tld1.ultradns.net s IP adresou
204.74.112.1) a pošle mu dotaz na IP adresu ke jménu www.wikipedia.org.
5. Oslovený server informaci opět nezná, ale poskytne IP adresy autoritativních serverů pro
doménu wikipedia.org. Jsou to ns0.wikimedia.org (207.142.131.207), ns1.wikimedia.org
(211.115.107.190) a ns2.wikimedia.org (145.97.39.158).
6. Lokální server opět jeden z nich vybere a pošle mu dotaz na IP adresu ke jménu
www.wikipedia.org.
7. Jelikož toto jméno se již nachází v doméně wikipedia.org, dostane od jejího serveru
nepochybně autoritativní odpověď, že hledaná IP adresa zní 145.97.39.155
8. Lokální DNS server tuto odpověď předá uživatelskému počítači.
43
2.11 WiFi, AP, rizika odposlechu, šifrování WEP a jeho slabiny, WPA,
WPA2.
WiFi (Standard 802.11) standard pro doplňky pro lokální bezdrátové sítě.
Dobré si uvědomit: přenosová rychlost není nijak garantována, v prostoru
nejsme sami, přenos je poloduplexní
Techniky přenosu
• FHSS – Frequency Hopping Spread Spektrum – frekvenčně rozprostřené spektrum
• základní metoda, pouze pro nižší přenosové rychlosti do 1–2 Mb/s
• frekvenční modulace, 78 kanalu po 1Mhz
• vyšší režie na přeskoky → nižší rychlost
• DSSS – Direct Sequence Spread Spektrum – kódově rozprostřené spektrum
• nejpoužívanější v 802.11
• frekvenční pásmo 2,412GHz – 2,484 GHz je rozděleno na 14 kanálů po 22Mhz
• vysílač komunikuje s přijímačem na jedné zvolené frekvenci
• signál je rozprostřen do větší šíře spektra – je méně citlivý vůči úzkopásmovému
rušení
• Protokol 802.11a již nepoužívá DSSS ale OFDM – rozprostřeným spektrem
• pásmo 2,412 až 2,484 rozděleno na 4 nepřekrývající se pásma
• v každém pásmu 52 podkanálů (nosných odstupňovaných o 300 kHz)
• přenášená data jsou zabezpečena kódováním s možností rozsáhlé rekonstrukce chyb
• modulaci 64QAM (54Mbit/s)
AP = přístupový bod – Základní prvek protokolu rodiny 802.11
Klienti spolu nekomunikují přímo, ale prostřednictvím přístupového bodu
• BSA (Basic Service Area) – oblast, kterou pokrývá přístupový bod.
• BSS (Basic Service Set)-Dva a více uzlů, které navzájem navázaly komunikaci.
• SSID (Service Set Identifier) – jedinečný identifikátor každé bezdrátové (WiFi) počítačové sítě.
• 2 hlavní varianty SSID:
44
AD-HOC – je bezdrátové připojení, které se skládá z klientských zařízení bez přístupového
bodu (AP).
• nevýhodou je obecně nižší dosah
• výhodou je vyšší propustnost
• vyšší globální spolehlivost
Infrastrukturní sítě obsahuje přístupové body (AP)
• nevýhodou je nižší propustnost
• v topologii se dále používají: Klienti, opakovače
Mechanismy zabezpečení dat
Autentizace
Pro připojení stanice se používají dvě metody:
1. metoda otevřeného systému (Open-system)
• klient je autentizován na základě informací jím zaslaných, které nejsou nikde ověřovány
• AP tedy vždy autentizuje klienta
2. metoda sdíleného klíče (Shared Key)
• je vyžadována pro všechna zařízení s podporou WEP
• klient usilující o připojení musí správně zašifrovat (RC4) zaslaný klíč (náhodně vygenerované
číslo)
• velkou nevýhodou je zasílání textu v nezašifrované a následně zašifrované podobě
• je tak možné díky slabinám šifry RC4 získat odposlechem šifrovací klíč
Další metody řízení přístupu
1. SSID – nejnižší stupeň zabezpečení
- SSID je logický identifikaci konkrétní sítě (nastaven na AP)
- AP své SSID pravidelně prezentuje
2. Filtrování MAC adres
- asociovány budou pouze stanice z platného seznamu MAC adres
- útočník si může snadno změnit svou MAC adresu
- předpokládá se ale, že útočník neví, za jakou
- nevýhody:
- seznam MAC adres je nutné vytvářet ručně (administrátor)
- filtrování MAC adres neumožňuje dynamickou změnu klientů
- mnohem větší nevýhodou je ale:
- přítomnost MAC adres klientů ve vysílaných paketech a to i v případě použití
šifrování v nezašifrované podobě
WEP-ochrana ekvivalentní kabelovému vedení
- volitelný doplněk k 802.11b
- pro řízení přístupu k síti a zabezpečení přenášených dat pomocí sdíleného klíče – je nutné ho
nastavit na klientských stanicích
- data jsou šifrována a dešifrována pomocí šifrovacího klíče:
• 40bit. WEP klíč (10 x hex znak) + 24 bit. inicializační vektor (IV)
• nebo 104bit. WEP (26 x hex znak) klíč + 24 bit. inicializační vektor (IV)
- IV – inicializační vektor – mění se v každém paketu, bohužel pouze z 224 možností
Dalším problémem WEPu je existence statických klíčů
- není nijak řešena redistribuce nových klíčů a posílání IV v nezašifrované podobě
45
WEP - zjevné nevýhody WEPu:
- v takovém případě je vhodné dodržet několik pravidel:
1. používejte tabulku validních MAC adres
2. zapněte WEP na 128bit.
3. pravidelně WEP klíče měňte
4. používejte statické přidělování IP adres
5. nastavte uzký rozsah IP, nebo povolené IP
6. zakažte prezentaci SSID
7. znemožněte fyzický přístup k AP
8. pravidelně kontrolujte síť i logy z AP
9. omezte výkon na nejnižší akceptovatelný
10. používejte VPN
WPA
- je zpětně slučitelné s WEP a předně slučitelné s 802.11i/WPA2
- pokud se v síti sejdou produkty s podporou WPA a WEP, použije se slabší WEP
- pro autentizaci a management klíčů se používá 802.1x
- pro utajení dat protokol TKIP
- používající dynamicky se měnící klíč pro každý paket
- prodlouženou délku vektoru IV (na 48 bitů)
- pro kontrolu integrity zpráv – mechanizmus MIC (Message-Integrity Check).
Přednosti WPA jsou:
- dynamické klíče
- autentizace se serverem RADIUS
- v domácích sítích lze použít předem nastavené sdílené klíč.
WPA2
- komerční název standardu 802.11i (2004)
- architektura označovaná jako RSN (Robust Security Network)
- podarchitektura 802.1X určená pro bezdrátové sítě
- vlastnosti:
- používá nový standard AES
- velikost šifrovacího klíče 128b, 192b, 256b
- šifrovací klíče se mění automaticky
Postup autentizace:
- stanice se autentizuje otevřenou metodou a domluví se na bezp. zásadách
–
následuje fáze komunikace s ověřovacím serverem, je
vygenerován společný hlavní klíč
46
3
Operační systémy
3.1 Instalace systému, diskové oddíly, swap, souborový systém,
pojem distribuce.
Diskové oddíly(partitions) lze rozdělit na tři základní typy: primární, rozšířené a logické.
• Primární diskový oddíl
o Primární diskový oddíl je takový diskový oddíl, o kterém jsou informace uloženy v
MBR (Master Boot Record). Protože MBR je velice malý (512 bytů)- je uložen ve
speciální oblasti disku – v prvním sektoru cylindru 0, hlavička 0, která se nazývá
tabulka diskových oddílů (partition table), lze vytvořit nejvýše čtyři primární diskové
oddíly.
• Rozšířený diskový oddíl
o Rozšířený diskový oddíl je speciálním typem primárního diskového oddílu (z toho
plyne, že rozšířený oddíl musí být jedním ze čtyř možných primárních oddílů)
obsahujícím další diskové oddíly. Rozšířený diskový oddíl původně neexistoval, ale
protože maximální počet čtyř primárních oddílů byl málo, objevilo se toto řešení
umožňující rozšíření zaběhlého schéma bez ztráty zpětné kompatibility.
• Logický diskový oddíl
o Logický diskový oddíl je diskový oddíl uvnitř rozšířeného diskového oddílu. Jejich
definice není ukládána do MBR (kam by se z principu nevešla), ale je uchovávána v
rozšířeném diskovém oddílu. Množství logických diskových oddílů je neomezené.
Proč dělit disk-Většina uživatelů vyčlení pro Linux více než jeden oddíl na disku. Jsou k tomu dva
důvody.
- Prvním je bezpečnost, pokud dojde k poškození filesystému, většinou se to týká pouze
jednoho oddílu, takže potom musíte nahradit ze záloh pouze část systému. Jako minimum
můžete uvážit vydělení kořenového svazku souborů. Ten obsahuje zásadní komponenty
systému. Jestliže dojde poškození nějakého dalšího oddílu, budete schopni spustit Linux a
provést nápravu, může Vám to ušetřit novou instalaci systému.
- Druhý důvod je obyčejně závažnější při pracovním nasazení Linuxu, ale záleží k čemu
systém používáte. Představte si situaci, kdy nějaký proces začne nekontrolovaně zabírat
diskový prostor. Pokud se jedná o proces se superuživatelskými právy, může zaplnit celý
disk. Naruší chod systému, poněvadž Linux potřebuje při běhu vytvářet soubory. K takové
situaci může dojít z vnějších příčin, například nevyžádaný e-mail Vám lehce zaplní disk.
Swap – není souborovým systémem, ale prostorem, kam si OS Linux průběžně ukládá běhová
data, která se nevejdou do operační paměti. Windows používají obyčejný soubor.
Swapuje se na harddisk. swapovat muzete na:
- partition
- do souboru na filesystemu
Vyhody a nevyhody swapovani jsou u:
o Partition:
o +Je asi 5* rychlejsi nez do souboru
o +Ze se ma do nej swapovat lze rici jadru jiz pri startu
o -Kdyz nestaci jeho velikost tak mate holt smulu
o Souboru:
o +Lze ho vytvorit na existujicim filesystemu
47
o -Je uzasne pomalej
o +Kdyz dochazi pamet i vsechny existujici swap zarizeni tak lze vytvorit a
pridat dalsi soubor
Souborový systém (filesystem) je označení pro způsob organizace informací (ve formě souborů)
tak, aby bylo možné je snadně najít a přistupovat k nim. Souborové systémy mohou používat
paměťová média jako pevný disk nebo CD, mohou poskytovat přístup k datům uloženým na
serveru (síťové souborové systémy, např. NFS, SMB) nebo mohou poskytovat přístup k čistě
virtuálním datům (např. procfs v Linuxu). Souborový systém umožňuje ukládat data do souborů,
které jsou označeny názvy. Obvykle také umožňuje vytvářet adresáře, pomocí kterých lze soubory
organizovat do stromové struktury.
žurnálovací souborové systémy patří např. NTFS, JFS, HFS+, ext3, XFS nebo ReiserFS.
GNU/Linuxová distribuce je označení kompletu programových balíků provozovatelných na
operačním systému GNU/Linux. Tzn. nejenom vlastního jádra operačního systému ale i dalších
aplikací, které mohou být, ale většinou nejsou autorským dílem distributora.
Tyto distribuce se liší například ve způsobu instalace programových balíků, integrací vlastních
konfiguračních metod, atp. V angličtině „to distribute“ znamená rozšířit, rozprostřít, rozdat ap.
distribuce
Debian – Tato distribuce je jedna z nejstarších. Je to přísná open-source distribuce, která
je vyvíjena dobrovolníky z celého světa. Debian nabízí on-line repozitář (server, kde jsou
uloženy zdrojové kódy) softwarových balíků.
Ubuntu – Tato distribuce vhodná pro začátečníky vychází z Debianu. Je volně dostupná, včetně
možnosti bezplatného zaslání instalačních CD poštou. Ubuntu zajišťuje komunitní i profesionální
podporu. Nové verze vychází dvakrát do roka. Kromě Ubuntu existuje ještě Kubuntu, které
používá grafické uživatelské rozhraní KDE, nebo Xubuntu, které používá grafické uživatelské
rozhraní Xfce narozdíl od Ubuntu, které používá GNOME. Také existuje Edubuntu, které je
zaměřeno na výuku.
3.2 Start počítače, zavaděče OS, jádro, start unixových OS,
runlevels.
BIOS
(Basic imput output system) – provede základní testy HW. Pomocí programu pro zahájení práce zaváděcího programu předá řízení zavaděči.
Zavaděč
je krátký program, který je uložen v zaváděcím sektoru. (MBR) Načítá operační systém do paměti RAM. Jsou různé druhy zavaděčů.Jedná se o program umístěný v úvodních sektorech pevného disku (např. v MBR – Master Boot Record).
Po spuštění počítače a provedení testů předává BIOS řízení právě programu obsaženému v MBR disku označenému jako startovací, tj.
našemu zavaděči systému. Jeho úkolem je nahrát operační systém do paměti a předat mu řízení.
V současné době většina rozšířených zavaděčů systému umožňuje volbu jednoho ze systémů nainstalovaných na disku. Nejoblíbenějšími programy tohoto typu, dodávanými spolu s distribucemi GNU/Linuxu, jsou LILO a GRUB (GRand Unified Bootloader).
•
LILO (Linux Loader) – zavaděč, který je standardní součástí linuxových distribucí; konfigurace v /etc/lilo.conf,
•
GRUB (the Grand Unified Bootloader) – zavaděč, který je součástí linuxových distribucí; konfigurace v /boot/grub/grub.conf,
popř. /etc/grub.conf, /boot/grub/menu.1st, nebo /boot/grub/menu.lst,
48
•
XOSL (eXtended Operating System Loader) – spolehlivý freewarový zavaděč OS,
•
NTLDR (NT OS Loader) – zavaděč OS Windows NT/2000/XP; konfigurace v C:\boot.ini,
•
komerční zavaděč System Commander od firmy VCOM, BootIt NG od firmy Terabyte Unlimited, OS Selector od firmy Acronis,
•
další zavaděče: OSL2000 Boot Manager (OS Loader), Boot Magic, chos aj.
Zavádění Linuxu
– při zavádění OS Linux, se inicializují technické prostředky a ovladače jednotlivých zařízení. Pak se spustí proces init, který spouští
procesy, umožňující uživatelům přihlásit se do systému a pracovat v něm.
Boot
Během bootování systému si pravděpodobně všimnete toho, jak po monitoru ubíhá poměrně hodně textu. Budete-li pozorní, zjistíte, že
při každém rebootu jde o ty samé informace. Pořadí těchto akcí se nazývá bootovací sekvence a je (do značné míry) pevně daná.
Nejprve bootloader načte do paměti obraz jádra (určený v konfiguračním souboru) a předá jej CPU k provedení. Kernel si poté zinicializuje potřebné datové struktury a pochody a spustí proces init.
Když počítač bootuje, proces init prohledá konfigurační soubor /etc/inittab a najde, do kterého
runlevelu má bootovat. Runlevel je reprezentován číslem od nuly do šesti
Tabulka runlevelů
0 vypnutí systému
1 jednouživatelský režim (všechny služby vypnuté, k dispozici pouze jedna virtuální konzole
pracující pod superuživatelem
2 normální režim bez grafického prostředí a síťových služeb
3 normální režim bez grafického prostředí
4 rezervován – například pro vytvoření vlastního runlevelu
5 normální režim
6 restart systému
3.3 Správa a údržba souborových systémů, typy
souborových systémů, žurnál, metoda copy-on-write,
zálohování.
Linux podporuje širokou škálu souborových systémů. Pro naše účely si je rozdělíme na tři skupiny:
• speciální filesystémy
• "nativní" filesystémy
• filesystémy pro zpětnou kompatibilitu
•
Nativní filesystémy
EXT2
EXT3
Ext3 přidává k filesystému ext2 podporu žurnálu, ale jako takový může být stále namountován
jako ext2. Pro uživatele ext2 je navíc zajímavá možnost bezpečného upgradu z ext2 na ext3. Utility
pro správu ext2 mohou být také použity pro ext3.
Ext3 je dobrý kompromis mezi stabilitou a funkcemi. Rozumně v něm fungují ACL, žurnál je
poměrně čistě dodělaný a téměř nedegraduje výkon. Výhodou také je, že ho lze bezpečně zmenšit a
zvětšit, a dokonce i zvětšit přimountovaný filesystém. Ext3 je velmi otestovaný a široce
podporovaný filesystém, takže pokud nemáte speciální požadavky, bude určitě dobrou volbou.
49
JFS
JFS byl vytvořen s důrazem na vysokou spolehlivost a rychlost. Postupem času uvolněný pod open
source licencí. JFS má žurnál, kvóty zvládne při použití externího patche, EA/ACL v něm nejsou
implementovány vůbec, filesystém může být pouze zvětšen.
Žurnálovací systém souborů zapisuje změny, které mají být v počítačovém systému souborů
provedeny, do speciálního záznamu nazývaného žurnál. Žurnál je obvykle realizován jako
cirkulární buffer a jeho účelem je ochránit data na pevném disku před ztrátou integrity v případě
neočekávaných havárií (výpadek napájení, neočekávané přerušení vykonávaného programu, pád
systému apod.). Žurnál podporují: NTFS, XFS, HFS+, ext3 nebo ReiserFS.
Žurnál je pro ochranu prováděné transakce využíván následujícím způsobem:
1. do žurnálu je zapsáno, co a kde se bude měnit
2. je provedena vlastní série změn
3. do žurnálu je zapsáno, že operace byla úspěšně dokončena
4. záznam v žurnálu je zrušen
Copy-on-write
Princip spočívá v tom, že v okamžiku, kdy je vydán příkaz k pořízení kopie dat, se ve skutečnosti
fyzická kopie nevytvoří, a aplikaci je předán toliko jiný odkaz na již existující data. Skutečná kopie
je vytvořena teprve ve chvíli, kdy jedna z aplikací sdílejících společnou kopii vydá pokyn k zápisu
dat.
ZFS nemá žurnálovací systém, protože integrita dat je dostatečně zajištěna právě technologií
Copy-on-write!
Sdílení dat, síťové souborové systémy, NFS, SMB/CIFS,
šifrované souborové systémy.
3.4
Síťové souborové systémy (network filesystem) je označení pro systémy souborů, které jsou
dostupné prostřednictvím počítačové sítě. Ve skutečnosti leží soubory a adresáře na jiném
počítači a přistupujeme k nim pomocí speciálních síťových volání služeb (např. SMB, NFS). Na
vzdáleném počítači jsou pak soubory a adresáře fyzicky uloženy v podobě klasického systému
souborů. Speciálními síťovými systémy souborů jsou distribuované souborové systémy (např.
GFS v Linuxu), které se mohou rozkládat na několika počítačích, které jsou navzájem propojeny
pomocí počítačové sítě.
Server Message Block (SMB) je síťový komunikační protokol aplikační vrstvy, který slouží ke
sdílenému přístupu k souborům, tiskárnám, sériovým portům a další komunikaci mezi uzly na síti.
Poskytuje také autentizovaný mechanismus pro meziprocesovou komunikaci. Je využíván hlavně na
počítačích s operačními systémy rodiny Windows.
Protokol pracuje na principu klient-server. Server umožňuje klientům sítě přistupovat k tzv.
sdílenům prostředkům, např. sdíleným disk, adresářům, tiskovým frontám nebo pojmenovaným
kanálům.
Network File System (NFS) je internetový protokol pro vzdálený přístup k souborům přes
počítačovou síť. Protokol byl původně vyvinut společností Sun Microsystems v roce 1984, v
50
současné době má jeho další vývoj na starosti organizace Internet Engineering Task Force (IETF).
Funguje především nad transportním protokolem UDP, avšak od verze 3 je možné ho provozovat
také nad protokolem TCP.
V praxi si můžete prostřednictvím NFS klienta připojit disk ze vzdáleného serveru a pracovat s ním
jako s lokálním. V prostředí Linuxu se jedná asi o nejpoužívanější protokol pro tyto účely.
Programy pro šifrovaní FS
2. TrueCrypt
3. EncFS
TrueCrypt
TrueCrypt je open source nástroj pro on-the-fly šifrování obsahu dat na disku pro operační systémy
Microsoft Windows, Linux a Mac OSx. TrueCrypt umožňuje vytvářet virtuální disky v podobě
souboru, který lze snadno připojit a pracovat s ním jako s jakýmkoliv jiným pevným diskem, nebo
zašifruje celý diskový oddíl. Soubor má vždy plnou velikost, kterou si zadáme při vytváření, aby
případný útočník nezjistil, jaké množství dat máme zašifrováno a uloženo. Od verze 5.0 umí také
šifrovat oddíl, ze kterého se bootuje operační systém (toto platí pouze pro verzi Windows).
Šifrování a dešifrování probíhá transparentně při zápisu a čtení z disku na pozadí a uživatel se
nemusí o nic starat. TrueCrypt podporuje mnoho šifrovacích algoritmů – AES, Blowfish, DES,
Triple DES, Twofish a Serpent.
EncFS
EncFS je nástroj, který nám poskytuje šifrovaný FS v uživatelském prostoru. Ke své práci využívá
známého jaderného modulu FUSE. Mezi jeho přednosti patří automatická změna velikosti
souborového systému tak, jak do něho vkládáme nebo mažem data. Nemusíme dopředu určovat
kolik místa si vynahradíme pro své soubory. EncFS je pouze vrstva nad souborovým systémem,
proto jej můžeme využít téměř kdekoliv. Pro aplikace je přístup k souborům plně transparentní.
EncFS používá algoritmy AES nebo blowfish, které nám zaručí, že je útočník neprolomí. EncFS je
dostupný v mnoha distribucích linuxu, např. v Ubuntu je obsažen balíček deb.
Výhody
•
•
•
Bezpečí dat odcizených a ztracených počítačů
Zamezení přístupu k datům pro ostatní uživatele
Ochrana osobních údajů proti útokům zvenčí
Nevýhody
•
•
Při zapomenutí hesla přicházíme o vešjerá data
Do jisté míry zpolený zápis a čtení z disku
51
3.5 Správa uživatelských účtů a skupin, autentizace, PAM, Kerberos,
práva, monitorování činnosti uživatelů.
Správa uživatelských účtů a skupin,
Pridani uzivatele do skupiny: sudo adduser --ingroup root lama
smazani uzivatele: sudo deluser --remove-home (--remote-all-files)
přihlazeni jako uživatel: su jmeno
Informace o skupinách jsou uloženy v souboru /etc/group
Informace o uživatelech jsou uloženy v souborech /etc/passwd a /etc/shadow.
Soubor /etc/passwd v sobě uchovává kompletní seznam uživatelských účtů, a to jak reálných, tak
systémových (virtuálních).
Soubor /etc/shadow obsahuje zakryptované hesla k jednotlivým účtům.
add group guest student
Pridani skupiny: addgroup student
Smazani skupiny: groupdel skupina
Práva souborů a adresářů
Práva u souborů
r umožňuje čtení souboru
w umožňuje zápis do souboru
x umožňuje spuštění souboru jako programu
Práva u adresářů
Z předchozího odstavce je patrné, že práva adresářů (s výjimkou práva x) neovlivňují možnost
čtení, zápisu a spouštění souborů. Ovlivňují však možnost výpisu obsahu adresáře, vytváření, rušení
a přejmenování souborů a podadresářů podle následující tabulky:
r umožňuje vypsat jména souborů a podadresářů v adresáři
w samo o sobě není k ničemu; spolu s právem x umožňuje vytvářet, rušit a
přejmenovávat soubory a podadresáře
x umožňuje vypsat informace o souboru nebo podadresáři se známým jménem,
Je podmínkou pro všechny operace s obsahem adresáře kromě vypsání jmen
CHMOD Příkaz chmod slouží ke změně práv souboru. První číslice udává práva vlastníka, druhá
práva skupiny, třetí ostatních. chmod 751 pictures. Právo r má hodnotu 4, právo w 2, a právo x 1.
Další možností jako zadávat práva je symbolickým zápisem – práva 751 je možné přidělit zápisem
u=rwx,g=rx,o=x. Písmena před rovnítkem znamenají
u user vlastník
g group skupina
o others ostatní
a all
vlastník, skupina i ostatní
Po spuštění SUID programu poběží jeho proces pod právy vlastníka. V případě SGID je to
obdobné, proces poběží pod právy skupiny.
SUID/SGID byty se přidávají pomocí chmod +s, resp. chmod -s.
Číselné nastavení:
Právo Binární Oktalový
StickyBit 001
1
52
SGIDBit 010
2
SUIDBit 100
4
Napište všechny potřebné příkazy, kterými vytvoříte adresář pom, v němž bude moci kdokoli
vytvářet soubory, ale rušit je bude smět pouze jejich vlastník.
mkdir pom
chmod 222 pom
chmod u+t pom
chown zmena majitele a skupiny
Příkaz umask zobrazuje nebo nastavuje implicitní masku práv pro nově vytvářené soubory.
umask 027 majitel vsechno skupina zapis ostatni nic
umask 022 majitel vse skupina a ostatni vse
PAM je mechanizmus pro integraci více nízkoúrovňových autentizačních schémat do API, což
umožňuje programům opírajícím se o autentizaci uložit uživatelské údaje nezávisle na použitém
mechanizmu přihlášení. PAM-jednotný systém autentizace.
Díky PAM je možné bez úpravy aplikace užívající PAM měnit autentizační mechanismy, které
aplikace používá. Tedy je možné provést upgrade kompletně celého lokálního autentizačního
systému bez jakéhokoli zásahu do samotných aplikací. Programy, které potřebují autentizovat
uživatele, mohou zavolat funkci z PAM, která projde s uživatelem autentizační proces a vrátí
programu výsledek – uživatel prošel/neprošel. Jako příklady programů, kterým se PAM hodí,
můžeme uvést login, su, passwd.
PAM je dostupný snad pro všechny UNIXové systémy – Linux, Solaris, IRIX.
Kerberos je síťový autentizační protokol umožňující komukoli komunikujícímu v nezabezpečené
síti prokázat bezpečně svoji identitu někomu dalšímu. Kerberos zabraňuje odposlechnutí nebo
zopakování takovéto komunikace a zaručuje integritu dat. Byl vytvořen primárně pro model klientserver a poskytuje vzájemnou autentizaci – klient i server si ověří identitu své protistrany. Kerberos
je postavený na symetrické kryptografii a potřebuje proto důvěryhodnou třetí stranu.
monitorování činnosti uživatelů
EtherApe – grafický nástroj sloužící k monitorování komunikace na síti. Zobrazuje názvy
protokolů a IP adresy nebo DNS názvy systémů, se kterými právě váš počítač komunikuje,
jednotlivým protokolům pro přehlednost přiděluje odlišné barvy.
process accounting – jádro umožňuje metodu zaznamenávání příkazů vykonaných v linuxu, běžící,
čas cpu, kdo spustil, detailní informace o využívání zdrojů, monitorování, přihlášení a odhlášení,
provedené příkazy, časy I/O operaci, CPU.
tcpdump – sledování síťového provozu, sledování vytížení sítě, paketů
iptraf-je konzolový program se schopností vytvářet statistické přehledy, které umí i logovat. IPTraf
umožňuje monitorovat komunikaci v reálném čase.
53
3.6 Správa síťových služeb, pojem démon, superdémon. Služby,
omezování přístupu, aplikační a paketový firewall (tcpd, iptables/ipf),
tunelování, VPN.
Jako démon se hlavně v unixových počítačových systémech označuje proces, který neustále běží
„na pozadí“, kde průběžně vykonává nějakou činnost a není (za běžných okolností) ukončován.
Démon obvykle nijak nekomunikuje s uživatelem, pracuje samostatně.
Superdemon inetd Sitovy superdemon. Je vyjimecnym tim, ze se vzbudi kdyz pride nekde ze site
pozadavek na urcitou sluzbu, vtedy se vzbudi a spusti taky program alebo demona, ktery konkretnu
pozadavku obsluzi. Vyhoda tohto demona je v tom, ze keby nebol, tak by kazda sluzba musela mat
demona svojho vlastneho, ktory by ju obsluhoval. Ak vsak mame inetd, vtedy staci iba tento jeden a
ten kontroluje vsetky prichodzie poziadavky.
tcpd
Program tcpd je velice užitečným doplňkem našich serverů. Umisťujete-li nějaký server na Internet
a nepoužíváte jinou metodu autentizace klientů, pak určitě zvolte alespň program tcpd. Klient
prokazuje svoji totožnost na základě své IP-adresy, případě jména svého počítače. Tj. v
databázi programu tcpd jsou uvedeny IP-adresy nebo jména počítačů (případně skupin
počítačů) jimž je přístup povolen. V případě, že je uvedeno jméno počítače, pak se vezme z
příchozího IP-datagramu adresa odesilatele a provede se na ní reverzní překlad DNS. Takto získané
jméno se porovnává s databází programu tcpd.
Iptables je nástroj, který umožňuje všeobecně unixovému systému plně pracovat se síťovou
komunikací. Pomocí něj si můžeme snadno postavit různé druhy firewallů, nebo sdílení internetu.
Vlastně řídí síťovou dopravu na serveru.
 INPUT aplikuje pravidla z řetězce na pakety jdoucí dovnitř.
 OUTPUT aplikuje pravidla z řetězce na pakety jdoucí ven.
 FORWARD aplikuje pravidla z řetězce na pakety jdoucí mezi sítěmi.
54
VPN je prostředek pro propojení několika počítačů na různých místech internetu do jediné virtuální
počítačové sítě. I když počítače mohou být v naprosto fyzicky nezávislých sítích na různých
místech světa, prostřednictvím virtuální privátní sítě mezi sebou mohou komunikovat, jako by byly
na jediném síťovém segmentu.
IP-tuneling znamená, že se vytvoří mezi dvěma body zapouzdřené spojení tzv. tunel. K tunelování
je potřeba tunel – kanál pro data mezi dvěma počítači v síti. Tento kanál může být tvořen třeba i
TCP spojením, ale v praxi se používá spíše specializovaných protokolů na úrovni IP (ipsec, gre).
GRE tunel je obecně typu bod-bod, z toho vyplívá, že pakety v jednom bodě vstoupí do tunelu a
vystoupí na druhým konci.
SSH neboli Secure Shell je klient/server protokol v síti TCP/IP, který umožňuje bezpečnou
komunikaci mezi dvěma počítači pomocí transparentního šifrování přenášených dat.
3.7 Řízení provozu sítě, omezování rychlosti, policing,
shaping a algoritmy(FIFO, TBF, SFQ, RED, PRIO, HTB)
policing, shaping
Nástroje určené k omezování provozu přicházejícího a odcházejícího ze sítě. Příchozí provoz už z
principu nejsme moc schopni regulovat. Policing se nazývá zahazování případně pozdržování
paketů nad určitou stanovenou míru. Předpokládáme pak, že odesílatel jich začne posílat méně
(TCP).
K řízení odchozího provozu použijeme traffic shaping. Celé řízení provádíme pomocí fronty
paketů určených k odeslání, způsob práce s frontou se nazývá qdisc (queue discipline). shaping
řeší problém velkého vytížení site.
Qdisc přiřazujeme jednotlivým rozhraním pakety a dělíme je na třídní a beztřídní (classful,
classless). Beztřídní jsou jednodušší a neobsahují další qdiscy.
Díky klasifikaci provozu sítě můžeme nastavit různým službám různé priority – např. ssh by
mělo mít vyšší prioritu než ostatní síťové služby. Dále můžeme podle různých pravidel nastavovat
minimální (garantované) a maximální rychlosti různým službám, ale i jednotlivým stanicím na
lokální síti. Díky omezování šířky pásma mohou dnešní ISP (Internet Service Provideri) nastavovat
svým klientům různé šířky pásma, a tím dosáhnout toho, aby jednu linku sdílelo více uživatelů, a
tím ji efektivně využili.
Fronty paketů
Jednotlivé pakety se před vysíláním nebo po přijetí řádí do fronty. Pakety čekající ve frontě je
možné ovlivňovat pomocí disciplín qdisc (queue discipline).
Existují dva základní typy disciplín:
• classless – dokáže pakety ve výstupní frontě "přeházet", zdržet či zahodit.
55
classful – omezování spočívá v rozřazení provozu, který přichází do výstupní fronty, do
jednotlivých tříd (class). Mluvíme o klasifikaci provozu. Klasifikace se děje na základě
filtrů, které jsou definovány uživatelem.
Classless qdisc
• FIFO – implicitní fronta, která je automaticky nastavena u classful qdisc. Funguje na
principu "kdo první příjde, první odchází". Fronta není tedy moc spravedlivá, a proto je
rozdělena na tři menší fronty. Pakety jsou do front řazeny podle příznaku TOS (type of
service).
• TBF (Token Bucket Filter) – vhodný pro jednoduché omezení rychlosti na síťovém
rozhraní. Obsahuje kapsu (buffer), do které si ukládá pakety. Z kapsy postupně odesílá
pakety nastavenou rychlostí. Po přetečení kapsy, jsou pakety zahazovány. Ve výsledném
efektu je díky kapse TBF fronta odolná vůči menším výpadkům.
• SFQ (Stochastic Fairness Queueing) – snaží se pásmo rovnoměrně rozdělovat mezi datové
proudy. Algoritmus používá více front, mezi kterými rovnoměrně postupně přepíná. Datové
proudy jsou hashovací funkcí rozděleny do jednotlivých front. Hashovací funkce se v
průběhu mění, aby nezůstávaly datové proudy dlouho v jedné frontě.
• RED (Random Early Detect, Random Early Drop) – určen pro vytížené páteřní spoje. Podle
vypočítaných statistik snižuje zátěž zahazováním paketů před zahlcením linky. Čím blíže je
celkový traffic maximální hodnotě, tím více jsou pakety zahazovány.
•
Classful qdisc
•
•
•
CBQ (Class Based Queueing) – dlouho používaná a na nastavení velmi bohatá qdisc.
Podporuje libovolné vnořování tříd. Třídy mohou půjčovat svou konektivitu podtřídám a
získávat od předků. Podporuje také priority.
HTB (Hierarchical Token Bucket) – obdoba CBQ. Má intuitivnější nastavení a svojí silou
pro většinu případů dostačuje. HTB nepoužívá propočty nečinnosti linky jako je tomu u
CBQ.
PRIO – podobné na FIFO. Vytvoří 3 třídy, které mají prioriy 0, 1 a 2. Třídy se zpracovávají
postupně od nejnižší priority po nejvyšší, ale na rozdíl od FIFO lze na ně pověsit libovolnou
jinou qdisc.
Praktické použití HTB
Běžný problém, který administrátoři řeší, je znázorněn na Obrázku 1. Provider P potřebuje rozdělit
internetové pásmo mezi firmy označené A a B. Každá firma má specifický požadavek na
garantovaný tok r a maximální odezvy. Velikost odezvy přitom záleží na prioritě p třídy. Firma B si
navíc přeje oddělit datové toky pro mailové a webové služby.
56
Download

Operan systmy a potaov st.pdf