PSIA Flashcards
Referencni model ISO/OSI
Open System Interconnection z roku 1984 cca
- cilem je snadne propojeni distribuovanych sustemu
- definuje sedmivtstvy protokolovy zasobnik
- rozdeluje komunikaci na subproblemy
- rika, jak zadani rozdelit a co ma umet kazda vrstva
- vymezuje komunikaci pouze mezi dva sousedni bloky
- implementace jednotlibcy vrstv je jendodussi nez celku - modularita
- vrstva X poskytuje vyssi vrstve sluzby a sama pouziva sluzby nizsi vrstvy
Obecny prehled vrstev ISO modelu
- Aplikacni
- Prezentacni
- Relacni
- Transportni
- Sitova
- Spojova
- Fyzicka
Fyzicka vrstva
Nejspodnejsi
- vyhradne pro prenos bitu
- kodovnai, modulace, casovani, ridici signaly…
- sluzba: prijmi bit, odesli bit
- neinterpretuje to co prenasi, ale pouze poskytuje dopravu
- paralelni nebo seriovy prenos, synchronni a asynchronni
- fyzicke vodice, opt. vlakno, elmga vlny (ethernet, wifi)
Spojova vrstva
Prenasi cele ramce - bloky dat
- poskytuje prenos v primem spojeni, bez prestupnich stanic
- muze byt spolehliva ci nespolehliva
- ukolem: synchronizace ramcu - rozpoznat zacatek a konec
- resi pristup ke sdilenemu mediu
- adresace
- detekce chyb a naprava
- rizeni datoveho toku
Sitova vrstva
Prenasi bloky jako pakety
- zajistuje doruceni paketu k adresatovi
- zajistuje smerovani, routing, hleda cestu k adresatovi
- ma poneti o skutecne topologii site
- pouziva smerovaci algoritmy
- je to posledni nutna vrstva pro prenosovou infrastrukturu (zbytek je doplnek nepovinny)
- nejrozsirenejsi implementaci je IP
Transportni vrstva
Prevadi pozadavky komunikace vyssi vrstvy na poskytovane sluzby nizzsich vrstev - interface
- tedy prevadi pokrocila pozadavky vyssich (politik) vrstev na sluzby, ktere reale umi nizsi vrstvy (protoze vetsinou patri nekomu jinemu nez me)
- transportni vrstva tyto pozadavky prevadi
- prevadi treba nespolehlivy prenos na spolehlivejs
nespojovany na spojovany atd…
Relacni vrstva
Zajistuje sestaveni, rizeni a zruseni relaci
- pro spojovanou komunikaci
- synchronizace
- siforvani
- komprese dat
- podpora transakcniho zpracovani dat
Presentacni vrstva
Prevadi potrebne konverze mezi dat odesilatele a prijemce
- prevod na kodovaci algoritmy znaku
- formaty cisel
- formaty struktur
- ukazatele
- endian …
Aplikacni vrstva
Jadro uzivatelskych aplikaci, ktere poterbuji komunikaci
- prenosove mechanismy el. posty
- sluzby pro pristup k distribuovanym objektum v siti
Jak vrstvy komunikuji mezi sebou?
Pouze po dvou sousednich naraz, pomoci virtualniho spojeniu
Chyba v datovych prenosech obecne
Typicky dochazi ve fyzicke vrstve
- sum v kanalu
- vnejsi elmag ruseni treba
- prirodni faktor
Vyjimecne i ve vyssich vrstvach
- chybna implemetace - lidsky faktor
Obecne je to zmena odeslane hodnoty - tedy prijde neco, co realne enbylo odeslano
- bud jednotliva chyba delky 1
- nebo shlukova chyba delky n (n je pocet pozic mezi prvni a posledni chybou, vse mezi nimi, tedy i spravne bity)
Detekce chyb obecne, co jsou redundantni data
Obecne prijemce nemuze nic usuzovat o odeslanych datech - tedy vse co prijme, tak musi povazovat za mozna realne odeslana data.
Pokud ale cestou nastane chyba, tak to prijemce nemuze poznat, protoze ocekava libovolna data od odesilatele. Tedy muze vzniknout problem, ze jsem prijal neco chyboveho a zacnu to provadet.
Reseni - pridame bit/y navic (redundantni) tedy uz jsou mimo uzitecna data v bloku, ale nejakym zpusobem jsou s nima provazana - tedy neni to libovolna posloupnost, ale presne definovana vzhledem k odeslanym uzitecnym datum tak, aby pri pripadne chybe, prijemce mel alespon sanci si to zpetne zkontrolovat, zda redundantni data mohla byt spocitana podle prijatych dat a pokud ne, tak je mozne, ze doslo k chybe
Detekce chyb paritou
K uzitecnym datum pridame pouze 1 red. bit, ktery mi rika:
1 = pocet jednicek v odeslanem slove je lichy (VCETNE RED. BITU!!!)
0 = pocet jednicek v odeslanem slove je sudy (VCETNE RED. BITU!!!)
- toto se nazyva licha parita (muzeme definovat i obracnou sudou paritu)
Prijemce koukne na prijate slovo a na posledni bit, pokud je posledni bit 1, ale celkovy pocet jednicke v celem sloze je sudy - pak nastala chyba
Vyhoda - rozpozna se jednonasobna chyba - spatna parita
PROBLEM - dojde ale k dvojnasobne chybe - parita se nezmeni - chyba se nerozpozna!
Obecne parita tedy muze detekovat lichy pocet chyb, sudy pocet ale neni odhalen
Co je kodove slovo?
Odeslane slovo (uzitecna data plus hlavicky na zacatku) + redundantni kontrolni bity
Detekce chyb Hamnningovou vzdalenosti
Hammingova vzdalenost dvou slov = pocet znaku, v nizchz se dve slova lisi
Hammingova zvdalenost kodu = nejnizsi pocet znaku, v nichzs se llisi ibovolna dve kodova slova = d. // Tedy mame mnozinu kodovych slov a hammingovoe vzdalenosti pro kazdy par. Hammingova vzdalenost kodu je min(hammingova zvdalenost paru)
Detekce chyb:
- rozdelime dve mnoziny - koda a nekodova slova
- pokud se kazda dve kodova slova lisi ve vice nez t znacich, pak t-nasobna chyba vzdy zmeni kodove slovo na nekodove
Kod odhaluje t-nasobne chyby, pokud je Hammingova vzdalenost kodu d>t.
Kod opravuje t-nasobne chyby, pokud je H. vzd. kodu d> 2t.
Cyclic Redundancy Check CRC
Patri mezi lienarni cyklicke kody
- cilem maximalizovat detekcni schopnosti pri minimalizaci red. dat
Princip:
- n-bitova data jsou reprezentovana jako ibnarni polynom stupne n-1, kde hodnoty koeficientu polynomu odpovidaji jednotlivym datovym bitum
- datovy polynom vydelime generujicim polynomem stupne k
- zbytek po deleni pridame jako red. informaci a slovo delky n+k odesleme.
Prijemce zopakuje postup a pokud nove vypocteny CRC kod lisi od prijateho = neni kodove slovo
- pokud se odeslane a nove CRC rovnaji, pak je slovo prijato ALE NENI ZARUCENO ZE NEDOSLO K CHYBE JAK VE SLOVE TAK I V CRC
Prakticky - binarni kod prevedu na polynom, kde je to x^i, kde i = 1/0 pozice binarniho kodu
Generujici polynom si zvolim a delam XOR s puvodnim kode (XOR = 1 pokud jsou hodnoty ruzne.
Zbytek po XOR pridam ke slovu
Detekcni schopnosti CRC
Chyby reprezentujeme chybovym polynoem E(x), ktery se prida do odeslaneho slova M(x) vcetne CRC a prijemce dostane vysledny polynoom:
M’(x) = M(x) + E(x)
Chyba je rozpoznana, pokud chybovy polynom neni delitelny generujicim polynomem (jinak se nam proste ztrati v CRC postupu)
- Pokud generujici polynom G(x) ma alespon 2 cleny, pak odhali vsechny jednonasobne chyby
- Odhali dovjnasobne chyby, pokud ma alespon 2 cleny a nedeli zadnou dvojnasobnou chybu (x^m +1)
- Odhali vsechny liche chyby pokud G(x) je delitelny (x+1)
- Odhali vsechny shlukove chyby delky <=k, kde k=deg(G(x)), pokud G(x) obsahuje nenulovy konstantni clen
…
Co jsou typove CRC G(x)?
Priklady vhodnych generujicich polynomu pro zrovna posilana data, standardni vhodne, znaci se treba CRC-12, CRC-16 atd… kde cislo je stupen polynomu (ale neni rozvinuty full)
TCP/IP protokol obecne
Je starsi nez OSI/ISO, ze 70. let, podobny prinicp deleni vrsev, ale pouze 4 vrstvy
Vrstvy:
1. sitoveho rozhrani = fyzicka + spojove
- adresace, ramce, dekompozice, rizeni pristupu ke komunikaci master/slave
- Sitova = stejna jako OSI
- Transportni = stejna jako OSI
- Aplikacni = relacni + prezaentacni + aplikacni funkce
IP Protrokol obecne, druhy komunikace a co to je
IP Protokol - Doruceni dat na IP adresu (pomoci IP adres)
Druhy:
1. Unicast - komunikace 1:1, tedy 1 prijemce primej
2. Broadcast - 1 odesialtel a VSEM uzlum posle zpravu
3. Multicast - 1 odesilatel a NEKOLIK uzlu vybranych dostane zpravu
4. Anycast - 1 odesilatel a posle obecne do prostoru a nevi, kdo mu odpovi a kdo ho posloucha
IP Adresa
IPv4 nebo IPv6
- 4 nebo 16 bajtu
- regionalni sprava/prideleni na uovni statu
IPv4 adresa:
treba 10.0.0.15 - tedy 4 dekadicka cisla od 0-255 (4 bajty, 1 bajt pokryuje 8 bitu, 2^8 = 256
Puvodne strukturovana do dvou casti :
[adresa site][adresa uzlu v siti], tedy adresa site je stejna pro vsechny uzly v siti a definovalo se to podle trid, jak moc posuneme hranici bitovou.
Vylepseni prinasi maska site - 32bitove cislo
Vyhrazene/dulezite IP adresy
Vyhrazene:
- same nuly = testovani
- [nulova sit][nejaky uzel] = nase site
- same 1 = lokalni broadcast (ale nepusti se ven do sveta)
- 127.x.x.x = loopback, adresa zpetnovazebni v ramci komunikace mezi procesy pocitace bez vysilani na sit
Privatni:
-192.168.0. az 192.168.255.0, tedy 256 siti tridy C, nejsou smerovany ve verejnem internetu
-treba firmy/skoly - setri se mistem, protoze kazda skola muze mit tu stejnou IP adresu, ale jelikoz se nesmerujou do sveta ven, tak se nepretezujou, pracovnici nemaji pristup do interneru, spatne se do toho boura, pouze v ramci nejakeho strediska
Nabalovani adres pomoci IP adresy, jak se to resi od globalni adresy po lokalni
IP adresa je nabalena jako cibule - musim postupne odhalovat adresu podle “teritorialni” dulezitosti.
Tedy IP adresa ma nabalene adresy jako:
Europa - CR - Praha - lokalni sit - lokalni podsit - … - uzel v siti
Tedy pri komunikace to preposilam dal POUZE NA DALSI stupen, nezajima me vubec co je dalsim dalsim krokem, vzdy to preposlu pouze o uroven niz a neresim. Tam to prevezmou a uz vyresi podobne.
Vyhoda - nemusim mit zaznam o adresach vsech uslu, to existuje pouze v ramci urovne, musim vedet kam zpravu predat dal a to je vsechno
IPv6 adresy
16 bajtu, chybi broadcast formalne
- 8 skupin po 4 hexa cislisich, treba:
fedc:ba98:7654:3210:fedc:ba98:7654:3210
Mohu vynehcat pocatecni nuly pokud jich je hodne.
Blok souvislych nul mohu JEDNOU nahradit ::
0123:0000:0000:0000:fedc:ba98:7654:3210
->
123::fedc:ba98:7654:3210
Kanonicky tvar IPv6 adresy
- Vsechna mala hex. pismkenka
- Vynechaji se uvodni 0
- :: konstrukce musi byt maxmalni
Pri URL adrese se IPv6 adresa da do []
Struktura IPv6 site
[globalni smerovaci prefix][podsite][identifiaktor lok. rozhrani]
Celkem 128 bitu
IPv4 Transmission Routing Protocol
Pro smerovani - komu to poslu
Bud poslu naprimo, nebo pres zvoleny router, nebo pres default router, nebo cesta neexistuje.
Tedy je to rozhodovaci strom:
- Vem IP adresu kam to mas poslat
- Rozkoduj ji na mistni site/masky atd - priprav ji na raw vzhled
- Je tam prima schoda s nejakym uzlem?
- pokud ano - posli to tam - hotov
- pokud ne: - Existuje neprima cesta pres smerovac?
- pokud ano - posli to smerovaci neprimo - hotovo
- pokud ne: - Existuje zakladni smerovac pro tuto adresu?
- pokud ano - posli to neprimo zakladnimu smerovaci - hotovo
- pokd ne: - Nelze dorucit na adresu