NB! Konspektis pole peaaegu
ühtegi joonist. Eksamil võivad olla joonised vajalikud.1. Üldine kommunikatsiooni
mudel
Üldises
kommunikatsiooni mudelis on alati kaks poolt –
saatja ja
vastuvõtja. Terves süsteemis on meil sisuliselt viis
osa:
1)
allikas,
mis genereerib andmeid
2)
saatja,
mis teisendab andmed transportimiseks sobivale
kujule 3)
edasustusüsteem,
mis transpordib signaalid ühest kohast teise
4)
vastuvõtja,
mis võtab signaali ja teisendab selle jälle adressaadi jaoks
sobivale kujule
5)
adressaat,
kellele need allika poolt
saadetud andmed on mõeldud kasutamiseks
2. Kommunikatsioonisüsteemi
ülesanded
Kommunikatsioonisüsteemi
ülesanded on:
1)
Edastussüsteemi
kasulikkus –
seisneb selles, et teha transport saatja ja vastuvõtja vahel nii
efektiivseks kui võimalik.
2)
Liidestamine
- kommunikatsiooni tagamine saatja/vastuvõtja ja edastussüsteemi
vahel läbi
liideste .
3)
Signaali
genereerimine –
kommunikatsiooni tagamiseks peavad signaalide omadused olema
sellised, et neid oleks võimalik
edastada ja, et need oleks
vastuvõtjale tõlgendatavad.
4)
Sünkroniseerimine
– saatja ja vastuvõtja ei saa näiteks samal ajal pakette saata,
muidu tekib kokkupõrge ja andmevahetusest ei tule midagi
välja.
5)
Andmevahetuse juhtmine – mis
seisneb põhimõtteliselt andmevahetuse reeglite paikapanemises.
Näiteks tuleb ära määrata, kuidas saatja ja vastuvõtja
saadavad andmeid korda mööda, millal on saatja andmed ära saatnud ja millal
võib vastuvõtja hakata kinnituseks andmeid vastu
saatma . Peale
selle on veel vaja määrata
pakettide vormingud ja suurused
jms.
6)
Vigade avastamine ja parandamine
– siin määratakse ära, mida teha vigadega ja siis kui nendega
enam hakkama ei saada.
7)
Voo
kontroll – seda
on vaja selleks, et mitte ülekoormata vastuvõtjat saates andmeid
kiiremini kui need ära töödeldakse.
8)
Adresseerimine
ja marsruutimine –
kui kommunikatsioonimudelis on saatjaid ja vastuvõtjaid rohkem kui
üks, siis on vaja leida parim tee ühest hostist teise.
9)
Andmete
taastamine –
andmeid on vaja taastada kui näiteks informatsioon pakettides muutub
halbade signaalide tõttu valeks.
10)
Sõnumite
formaatimine –
selleks, et otspunktid saaksid üksteisest aru on vaja ära määrata
„keel“ ehk sõnumite
formaat .
11)
Turvalisus
– on muidugi väga vajalik, sest suure tõenäosusega soovib
saatja, et tema andmed saaks kätte just see, kellele ta need
saadab ,
mitte keegi teine.
12)
Võrgu
juhtimine – on
vajalik võrgusüsteemi administreerimiseks, sest ükski süsteem ei
jookse iseenesest. Vajalik on süsteemi vaadelda ja reageerida
ülekoormustele, tõrgetele jms.
3. Mitmekihiline arhitektuur postisüsteemi näite baasil
Mitmed
võrgukommunikatsiooni põhimõtted
toimivad täpselt samamoodi nagu
meie igapäeva elu kommunikatsioonis. Kui me võtame näiteks
postisüsteemi, siis täpselt nagu ühes võrgus on ka siin meil
saatja ja vastuvõtja. Saatja kirjutab kirja, paneb selle ümbrikusse
ja siis ümbriku omakorda
postkasti . Kiri viiakse postkastist
postkontorisse ning
postkontor transpordib selle kirja omakorda
vastuvõtja postkasti. Vastuvõtja võtab kirja postkastist ja
ümbriku seest välja ning loeb selle. Täpselt samamoodi nagu
võrguski on vaja siin mitmed reeglid paika panna. Näiteks, millal
on postkastide tühjendamine, mis keeles suhtlevad saaja ja
vastuvõtja üksteise vahel jne.
4. Kihid , teenused, protokollid ja andmete liikumine läbi kihtide
Võrk
koosneb väga paljudest erinevatest osadest. Selleks, et oleks vähegi
kergem kogu seda süsteemi hallata, on võrgus olemas kihid.
Kihid
on kasulikud, sest:1)nad
võimaldavad kokku siduda erinevad keerulised süsteemid
2)nende
üksikasjalik struktuur võimaldab hõlpsat
identifitseerimist
3)nende eraldamine mooduliteks võimaldab neid
kergemalt
hooldada ja uuendada
Kihid – TCP/IP ja OSI mudeli
näitel
Kihid
ei pea teadma,
kuidas teine kiht
töötab.
Alumine kiht lihtsalt pakub teenust
ülemisele kihile ja kõige
alumiseks kihiks on füüsiline kiht. Teenuseid osutatakse
läbi
liideste.
Protokoll – reeglistik, mis
määrab ära kommunikatsiooni süntaksi,
semantika , ajastuse ja muud
sellised reeglid. Igal
kihil on enda protokoll ja igal kihil on enda
riistvara ja
tarkvara , mis implementeerib seda protokolli.
Saatja
ja vastuvõtja
suhtlevad
üksteisega tinglikult
(kasutades alumise kihi teenuseid) ja eelnevalt kokkulepitud
protokolliga. Iga kiht lisab andmete juurde päise ja edastab
tulemuse madalamale kihile. Vastuvõtmisel eemaldab iga kiht temale
mõeldud päise.
5. OSI mudel
OSI
mudel koosneb 7-st
kihist :
1)
Rakenduskiht
– rakendusprogrammile antavad teenused
2)
Esitluskiht
– Võrgust saabuvate andmete teisendamine üldkujult konkreetese
rakenduse jaoks sobivale kujule ja vastupidi
3)
Seansikiht
– Ühenduse loomine suhtlevate rakenduste vahel. Määratakse ära
millisel kujul toimub info
saatmine , sünkronisatsioon
jms
4)
Transpordikiht
– Usaldusväärse andmevahetuse garanteerimine. Tehakse rakenduselt
saadud andmed segmentideks ja vastupidi ning määratakse ja
kontrollitakse ka nende järjekorda
5)
Võrgukiht
– sõnumite marsruutimine, IP
aadresside tasemel tegutsemine.
Tehakse andmed datagrammideks.
6)
Kanalikiht
– vigade parandamine, sünkroniseerimine. Tehakse saabunud andmed
datagrammideks ja väljaminevad andmed kaadriteks.
7)
Füüsiline
kiht – andmete
füüsiline
edastus punktist punkti.
6. TCP/IP mudel
TCP/IP
mudel koosneb 5-st kihist:
1)
Füüsiline
kiht – andmete
füüsiline
edastamine punktist punkti
2)
Võrgupöörduskiht
– Füüsiline adresseerimine, voo kontroll, vigade kontroll,
kaadriteks jagamine
3)
Võrgukiht
– marsruutimine, pakettide edastamine sihtpunkti
4)
Transpordikiht
– Portide adresseerimine, andmete
segmenteerimine , tagab sõnumite
edastuse ühest punktist teise.
5)
Rakenduskiht
– pakub rakendusi kasutajale nagu näiteks e-maili
kirjavahetus ,
internetivõrku
sisenemine , failide edastamine jne.
7. Ühendusele-orienteeritud
ja ühenduseta andmeedastus
Mõlema
andmeedastuse puhul on
eesmärgiks edastada andmeid ühest punktist teise.
Ühendusele orinteeritud andmeedastuse puhul on vajalik eelnev
ühenduse loomine (
handshaking).
TCP
protokoll on just selline transporditeenus ning tagab ka
usaldusväärsuse
kviteerimismeetodi
abil. Protokoll tegeleb ka
voo
ja ülekoormuse kontrolliga .
Ühenduseta andmeedastuse puhul saame rääkida näiteks
UDP-st,
mis ei taga usaldusväärsust ning ei teosta voo ega ülekoormuse
kontrolli.
8. Kanalikommutatsioon ja
pakettkommutatsioon, paketi pikkus
Kanalikommutatsiooni
puhul
luuakse kõigepealt ahel
(pöördutakse lähima sõlme poole, see pöördub ise järgmise
sõlme poole, kuni vastuvõtjani välja) ning
kogu kanal reserveeritakse
andmete
saatmise ajaks.
Kui
andmed on saadetud, siis katkestatakse ühendus ja vabastatakse ressursid . Kasutatakse näiteks telefoni andmeedastuse puhul, kuid mitte
interneti puhul, sest siis oleks suur osa ajast kanal vaba, mis oleks
väga ebaeffektiivne.
Pakettkommutatsiooni puhul
jaotatakse
sõnum pakettideks/tükkideks
ja siis
saadetakse tükid minema. Ressursse, kasutakse ainult
vajadusel s.t neid
ei
reserveerita.
Pakettid lihtsalt pannakse teele ning
iga pakett on sõltumatu ja võib liikuda erinevat teed pidi.
Siin kohal on
kusjuures oluline jagada andmed täpselt õigete
pikkustega pakettideks, sest igas võrgusõlmes on
ruuter , mis
tegeleb pakettide edastusega ning kui
paketid on jagatud liiga
väikesteks
tükkideks, siis
tekivad ruuterisse
nö järjekorrad
(queues), mis võivad viia pakettide eemaldamiseni ruuterist, et
ruumi teha uute jaoks. Samas kui pakettide pikkused on liiga
suured,
siis
ei kasutata
võrguressursse kõige effektiivsemalt
ära nii, et siin tuleb leida tasakaal.
9. Multipleksimine
sageduse, aja ja koodi järgi
Kanali
saab multipleksida sageduse, aja ja koodi järgi:
Sageduse
järgi kanali
multipleksimine (
Frequency -
division multiplexing - FDM) – erinevad
võrguseadmed kasutavad suhtlemiseks erinevaid kanali sagedusi.
Aja
järgi kanali
multipleksimine (Time-division multiplexing - TDM) – igal
võrguseadmel on õigus edastada infot mingil kindlal
ajahetkel.
Statistiline
aja järgi kanali
multipleksimine (Statistical time-division multiplexing -
STDM ) –
on tegelikult natuke parem
versioon TDM-st, kus analüüsitakse
võrguseadmete töökoormust kanalile ja jagatakse vastavalt
vajadustele kanali sagedused ära.
Koodi
järgi kanali
multipleksimine (
Code -division multiple
access –
CDMA ) –
võrguseadmetele antakse kood, millega saab kanalit hõivata. Ainult
need, kes teavad seda koodi saavad üksteisega suhelda, teisi
seadmeid kohaldakse kui müra.
10. Ajalised viited
võrkudes
Kuna
paketi
teekond sihtpunkti käib läbi mitmete võrgusõlmede, siis
igas võrgusõlmes tulevad ette ajalised viited. Põhilised viited
on seotud pakettide töötlemise, järjekordade ning
paketiedastamisega järgmisesse võrgusõlme ja liikumisega
võrgusõlmede vahel.
Pakettide
töötlemine –
iga pakett võetakse vastu ning analüüsitakse, kuhu see edasi
saata
Järjekordade viide – sõltub
sellest kui suur on pakettide
liiklus läbi ruuterite buffritesse.
Kui liiklus on väike, siis järjekordi buffrites eriti pole ja
järjekordade viide on minimaalne ning vastupidi.
Paketiedastamine
järgmisesse võrgusõlme
- aeg, mis kulub paketi lükkamiseks
kanalisse , mis viib järgmisesse
võrgusõlme. Kusjuures paketti ei lükata enne kanalisse kui terve
pakett on võrgusõlme kohale jõudnud.
Liikumine
võrgusõlmede vahel
– aeg, mis kulub liikumiseks ühest võrgusõlmest teise.
11. Arvutivõrkude ja
Interneti ajalugu
1961
– Kleinrock tuli välja järjekorra teooriaga (queueing theory),
mis oli pakettedastuse üks põhialuseid
1964
– Barani pakettvahetuse teooria
1967
– ARPAneti
arendamise algus (
ARPAnet on esimene pakettedastusvõrk ja interneti
eelkäija)
1969 –
Esimene APRAneti võrgusõlm
1970
– ALOHAnet
satelliitvõrk Havail
1972
– ARPAneti avalik
demonstratsioon ; NCP (esimene otspunktide vaheline protokoll);
Esimene e-maili programm; ARPAnetis on 15 võrgusõlme
1974
– Vint
Cerf ja
Robert E.
Kahn töötavad välja arhitektuuri võrkude ühendamiseks
(teisisõnu interneti arhitektuur)
1976
– Etherneti loomine Xerox PARCis (uurimis- ja arendusfirma IT
valdkonnas)
70-ndate
lõpp – luuakse
arhitektuurid nagu DECnet, SNA, XNA
1979
– ARPAnetis on
200 võrgusõlme
1982
–
SMTP 1983
– TCP/IP
1983
– DNS
1985
– FTP
1988
– Voo kontroll TCPs
1980-1990
– 100 000 hosti, luuakse võrgud nagu Csnet, BITnet, NSFnet,
Minitel
90-ndate
algus – HTML,
HTTP, URL, brauseritest Mosaic ja
Netscape .
90-ndate
lõpp – P2P, uued
ja võimsad
rakendused internetimaailmas, interneti turvalisus
seatakse esimeseks, 50 miljonit hosti
2007
– 500 miljonit hosti, videokõned jms, P2P rakendused: BitTorrent
(File sharing),
Skype (VoIP), rakendused nagu YouTube jms,
traadita ühenduse kiire areng
12. Mida erinevad
rakendused nõuavad võrkudelt
Laias
laastus nõuavad rakendused võrkudelt kolme:
1)
Usaldusväärne
andmeedastus –
rakendused, mis on seotud elektroonse
meili edastusega või
failiedastusega nõuavad usaldusväärset andmeedastust, mis
tähendab, et andmeid ei tohi kaotsi minna. Samal ajal kui mõned
rakendused, mis on seotud näiteks filmi- või heliedastusega
tolereerivad mingil määral andmete kaotsiminekut. Kui me võtame
näiteks failiedastuse, siis sellel puhul ei pruugi andmete
kaotsimineku puhul fail enam töötadagi, samal ajal kui
muusika kuulamisel üle võrgu ei ole kahju nii suur kui üks sekund laulust
kuulmata jääb. Sellepärast sõltubki rakenduse valikust ka
protokolli valik võrgus.
2)
Andmeedastuskiirus
– mõned rakendused vajavad mingisugust minimaalset
andmeedastuskiirus, et ülekanne oleks efektiivne. Kui selline
ülekandekiirus ei ole tagatud, siis
rakendus peab
kodeerima/dekodeerima teisel kiirusel või siis lihtsalt alla andma.
Elastsed rakendused (elastic applications) kasutuvad ära nii palju
andmeedastuskiirusest kui võimalik.
3)
Ajalised
viited –
rakendused, mis on seotud näiteks telefonivestluse või mingisuguse
mänguga nõuavad pidevat andmevoogu otspunktide vahel. Liiga suured
ajalised viited tekitavad ebanormaalseid pause ja on kasutajatele
soovimatud.
Vastavalt sellele, millised
on rakenduse vajadused, valitakse ka protokoll.
13. HTTP
HyperText
Transfer Protocol on
rakenduskihi
protokoll. Serveri
ja kliendi
arvutid suhtlevad üksteisega programmide abil (näiteks
brauser ja Apache), mis vahetavad
HTTP
sõnumeid üksteise
vahel. HTTP ise defineeribki (nagu protokoll ikka) nende
sõnumite
struktuuri ja kuidas server ja klient üksteisele sõnumeid saadavad
(näiteks kuidas toimuvad requestid ja edastus). Kui kasutaja vajutab
mingile lingile, siis brauser saadab serverisse
pordi
80 kaudu HTTP request objekti,
mille peale server saadab kasutajale vastu
HTTP
response objekti,
mis sisaldab neid objekte, millest antud veebileht koosneb. HTTP
kasutab alusprotokollina
TCP-d,
mis tähendab seda, et enne serveri ja kliendi üksteise vahelist
sõnumite saatmist tuleb luua ühendus kaheotspunkti vahel ja
reserveerida „läbitav teekond“. Siin tuleb ka välja
kihilise
arhitektuuri eelis:
kui rakenduskiht (HTTP) annab liidesega läbi SAP-i (
Service Access
Point, antud juhul socket) töö edasi TCP’le, siis tema töö on
tehtud ja transport on juba TCP teha. Serveri ja kliendi vahel on
võimalik moodustada kahte tüüpi ühendusi:
Püsiv
( persistent ) ja mittepüsiv ühendus.
Mittepüsiva ühenduse korral luuakse
uus
ühendus iga objekti saatmiseks
(mis nõuab 2 RTT-i – see tähendab päris palju aega) ning pärast
seda kui server saadab vastuse, ta katkestab ühenduse. Selline
suhtlus
aga võib
viia ummistumiseni
kui kliente on palju, sest tänapäeva veebilehtedeel on objekte ikka
päris palju. Püsiva ühenduse korral loodud
ühendust
ei katkestata ja
see annab nii ajalise võidu kui ka selle, et ummistusoht on palju
väiksem, kuid ka sellel ühendusviisil on tagasilöök. Nimelt kui
ühendust ei katkestata, siis
vahepeal kui suhtlust serveri ja
kliendi vahel ei toimu on tegu
ressurssi
raiskamisega. HTTP
sõnumeid on kahte tüüpi nagu eelnevalt sai ka
mainitud : HTTP
request sõnumid ja HTTP response sõnumid.
HTTP
request sõnum
koosneb
request
line’st (kus on
requesti meetod, URL ja HTTP versioon),
header
line’st (info
hosti, ühenduse ja kliendi kohta) ja
entity body ’st (GETi
puhul tühi, POSTi puhul saadetakse on näiteks vormi väljade
väärtused siin).
HTTP
response koosneb
status line’st
(kus on protokolli versioon, staatuse kood ja staatuse sõnum),
request line’st
(info serveri, ühenduse ja andmete kohta) ja
entity
body’st (sisaldab
andmeid). Kuna HTTP server on olekuta
(stateless),
kuid
serveril on ikkagi vaja identifitseerida klienti, siis on
kasutusele võetud
cookie ’d.
Kui kasutaja alustab serverisse sisenemist saadab ta (tavaliselt)
brauseriga HTTP request objekti serverisse. Pärast seda saadab
server vastu
HTTP
response objekti,
mille header’is on nüüd
Set-cookie:
header lisaks teistele,mis sisaldab
unikaalset
identifikaatornumbrit
kliendi jaoks. Pärast seda kui brauser on HTTP response’i kätte
saanud
salvestab ta
selle erilisse cookie file’i,
mida ta hiljem kasutada oskab. Ja nüüd
iga
kord kui kasutaja uuesti siseneb sellesse serverisse saadab ta selle
sama cookie (mille
ta serverilt sai) tagasi serverisse HTTP request objektiga ja nii
saab server kasutaja
koguaeg ära uuesti tunda. Kui cookie’d ka
aeguvad algab kogu protsess otsast peale.
14. FTP
File
Transfer Protocol on
rakenduskihi
protokoll.
Analoogselt HTTP-ga kasutab ka FTP alusprotokollina
TCP-d.
Suurim erinevus HTTP-ga on see, et FTP kasutab
kahte
TCP ühendust, et
faili edastada.
Esimene
on kontrollühenduse jaoks
(selle ühenduse kaudu saadetakse kontrollandmed nagu näiteks
kasutajanimi, parool, käsud failide muutmiseks, lisamiseks ja
kustutamiseks jne)
ja
teine on andmeühenduse jaoks
(selle ühenduse kaudu saadetakse fail). FTP sessiooni korral luuakse
kõigepealt TCP kaudu kontrollühendus, kusjuures serveri
pordiks
on antud juhul
21.
Selle ühenduse kaudu saadetakse kontrollandmed ja käsud ning kui
serverini jõuab failiedastuse käsk, siis ta loob andmeühenduse TCP
kliendiga ja failiedastus saab
alata . Pärast edastamist suletakse
see ühendus.
Kui
uus fail on vaja saata, siis avatakse uus andmeühendus,
kontrollühendus jääb aktiivseks terve sessiooni vältel.
15. Elektronpost, SMTP, MIME ja POP3
Elektronpost
koosneb kolmest
komponendist :
user agent , meili server, SMTP
(
Simple Mail Transfer Protocol).
User
agent on rakendus,
mille abil saab kasutaja lugeda ja saata kirju.
Meili
server on server,
kuhu
talletatakse saabuvad ja väljaminevad kirjad. Igas
meiliserveris on igal kasutajal on ruum, kuhu tulevad saabuvad ja
väljaminevad kirjad, mida ta saab lugeda.
SMTP
on rakenduskihi protokoll, mis sätestab kirjade saatmise ning
kasutab
TCP-d
alusprotokollina. Kirjad saadetakse serverile
pordi
25 kaudu. SMTP
protokoll koosneb kahest osast
:
kliendi poolne SMTP ja serveri poolne SMTP.
Kui meil saadetakse
kuhugi teise serverisse saatja meiliserverist,
siis on kasutusel kliendi poolne SMTP ja kui meil jõuab vastuvõtja
serverisse, siis on kasutusel serveri poolne SMTP. Peale selle piirab
SMTP ära ka kirja body suuruse, milleks on 7-
bitine ASCII formaat.
SMTP on
push tüüpi
protokoll.
Tüüpiline kirja
teekond: 1)Saatja
koostab user agentis kirja ja annab sellele käsu kiri vastuvõtjale
saata. 2)User agent saadab kirja saatja meili serverisse, kus see
pannakse järjekorda (
message queue). 3)Saatja (kliendi) poolne SMTP
meili server näeb, et kiri on järjekorras ja loob TCP ühenduse
vastuvõtja
poolse SMTP serveri-ga. 4)Pärast ühenduse loomist
(handshakingut) saadab saatja meili server kirja vastuvõtja
meiliserverisse. 5)Vastuvõtja meiliserver paneb kirja vastuvõtja
postkasti. 6)Vastuvõtja avab user agentis kirja.
MIME
(Multipurpose
Internet Mail Extensions) on standard, mis võimaldab
edastada selliseid kirju, mille sisu ei ole
kodeeritav tavalise ASCII
koodina. MIME koosneb kahest headerist, mis lisatakse kirja
headerisse:
Content-Type
ja Content-Transfer-Encoding.
Content-Type määrab ära, millist tüüpi on kirja body ja
vastavalt sellele saab vastuvõtja user agent seda ka kodeerida.
Content-Transfer-Encoding kirjeldab, millist tüüpi kodeeringut
kasutati, et kiri ASCII-ks kodeerida. Nii, et kui kiri jõuab
vastuvõtja user agentini, siis alguses vaatab viimane üle
Content-Transfer-Encodingu ja dekodeerib kirja vastavalt sellele, mis
tüüpi kodeeringut kasutati ning siis vaatab user agent üle
Content-Type’i ja dekodeerib ära selle, mis on teist tüüpi kui
tavaline ASCII. Tähtis märkus on siinkohal aga see, et kuna SMTP on
push protokoll, siis vastuvõtja ei saa kätte kirju oma meili
serverist SMTP-ga, sest see on
pull operatsioon . Selleks, et kirju
kätte saada peab vastuvõtja kasutama näiteks
POP3
(Post Office
Protocol) protokolli. POP3 on samuti TCP alamprotokollil põhinev
protokoll. Kui user agent alustab meili serverisse sisenemist, siis
loob POP3 TCP ühenduse ja läbitakse kolm faasi:
autoriseerimine ,
tegutsemine ja uuendamine.
Autoriseerimise korral saadetakse kasutajanimi ja parool. Tegutsemise
ajal otsitakse sõnumeid, märgitakse neid kustutamiseks jne.
Uuendamine läheb käiku siis kui POP3 sessioon lõppeb, sellel ajal
eemaldatakse kirjad, mis kasutaja märkis ära.
16. DNS
Inimesed
kasutavad internetis surfamisel hosti
nimesid kui nad lehekülgi
külastavad. See tähendab, et URL-i ribale kirjutame www.google.com,
www.
facebook .com,
www.ttu.ee
jne. Küll, aga ei suuda selliseid nimesid töödelda ruuterid,
viimastel on vaja IP aadresse, et nende URL-
idega midagi peale
hakata.
DNS ( Domain name system) viib vastavusse inimeste kasutatavad hosti nimed ja 32
bitised IP aadressid ,
mille alusel toimub pakettide edastus. DNS kasutab
UDP-d
pordil 53.
DNS-i kasutavad teised rakenduskihi protokollid (HTTP, SMTP, FTP
jne), et muuta hostinimed IP-
deks . DNS pakub lisaks hostinimede
IP-deks muutmisele ka muid teenuseid:
1) Host aliasing –
keerukamatel hostinimedel võib olla üks või mitu aliast, mis on
lihtsamad kui õige nimi ja seetõttu paremini meeldejäävad.
2)
Mail server aliasing
– analoogselt
eelmisega võib ka keerukamatel meili aadressidel oli
üks või mitu aliast, mis paremini meelde jäävad.
3) Load distribution
(koormuse jagamine) – väga suure külastatavusega saitidel on mitu
serverit, milledel nad eksisteerivad, kusjuures igal serveril on oma
IP. DNS viib suurema külastatavusega saidile vastavusse mitu
IP-aadressi ning
jaotab nende aadresside vahel koormuse ära kui
päringud leiavad aset.
Üks
tsentraliseeritud DNS server poleks mõeldav,
sest: 1) Kui see crashib, siis pmselt crashib kogu internet 2) Liiga
palju päringuid tuleks sellesse serverisse, mis tooks kaasa liiga
suure trafficu 3) Üks server ei saa olla lähedal kõigile hostidele
ja sellepärast tooks kaasa suured
delay ’d 4) See server peaks
olema hiiglaslik ja seda peaks koguaeg uuendama, sest hoste tuleb
koguaeg juurde
Sellepärast on
DNS
jagunenud mitmeteks serveriteks üle maailma.
Ühelgi DNS serveril pole kõiki hostide nimesid vaid need on
jaotatud serverite vahel. Põhimõtteliselt on kolme tüüpi DNS
servereid:
juurserverid,
nimeserverid ja autoratiivsed serverid .
Igal ISP-l on oma
kohalik DNS server.
Kui host kasutab
teenusepakkuja internetilahendust, siis ISP pakub
enda poolt hostile ligipääsu ühele või rohkematele oma kohalikele
DNS serveritele.
Kui
host soovib teada mingi teise hosti IP-aadressi,
siis kõigepealt küsitakse vastust lokaalse DNS serveri käest. Kui
see vastust ei tea, siis kohalik server küsib vastust juurserveri
käest, mis
tagastab nimeserverite IP aadressid, kes on vastutavad
selle teise hosti IP eest. Peale seda valib
lokaalne server välja
ühe nimeserveri aadressi ja küsib sealt, mille peale nimeserver
tagastab autoratiivse serveri IP, kes teab selle hosti aadressi ja
lõpuks küsib lokaalne server autoratiivse serveri käest ja saab
vastuse IP näol ning see edastatakse hostile, kes pöördus lokaalse
DNS serveri poole.
Rekursiivse
päringu puhul
toimub vastuse saamine järgmiselt: host loob päringu lokaalsesse
DNS serverisse->lokaalne server edastab päringu
juurserverisse->juurserver nimeserverisse->nimeserver
autoratiivsesse->ja siis liigub vastus sama teed mööda tagasi
päringu koostajani.
Vastuste kiiremaks kättesaamiseks ja
serverite koormuste vähendamiseks kasutatakse
cahce’mist.
Cache’
mise puhul jätab lihtsalt (ükskõik milline) DNS server
vastused meelde ja kustutab need kui TTL (time to
live ) aegub.
Näiteks
lokaalsed DNS serverid cahce’vad pidevalt nimeservereid ja
sellepärast juurserveritele päringuid tihtipeale ei edastatagi.
DNS-i
andmebaasis hoitakse igasuguseid kirjed ning need talletatakse
RR ( Resource Record )
formaadis. RR
formaat = (nimi, väärtus,kirje tüüp, TTL)
Kirjete tüübid:
A-kirje
– nimeks hosti nimi ja väärtuseks IP-aadress
NS-kirje
– nimeks
domeen ja väärtuseks autoratiivse DNS serveri hostinimi,
kes teab antud domeeni hoste.
CNAME -kirje
– nimeks on hosti nime alias ja väärtuseks hosti tegelik
nimi.
MX-kirje
– nimeks meili serveri hosti nimi ja väärtuseks selle hosti
tegelik meili serveri nimi.
DNS-i sõnumi sisu võib olla nii
päring kui vastus
teiselt DNS serverilt ning neid talletatakse samas
formaadis ja eristatakse ühebitise flagi abil – päringu puhul 0
ja vastuse puhul 1. Esimesed 12 baiti on mitme väljaga päis, siis
päring, vastus, info autoritatiivsete serverite kohta ja lisainfo.
17. Töökindel
andmeedastus
Töökindel
andmeedastus on oluline rakenduskihi, transpordikihi ja kanalikihi
jaoks.
Töökindel
kanal tagab selle, et ükski bit ei lähe kaduma ega ei muundu ja
kõik bitid saabuvad kohale selles järjekorras, millises nad
saadeti. Töökindla
andmeedastusprotokolli ülesanne on implementeerida sellist
andmeedastust kanali kaudu, kuid see võib tihti peale osutuda päris
keerukaks,
sest
kiht, mis on töökindla andmeedastusprotokolli all ei pruugi olla
töökindel
(näiteks füüsiline - ja võrgukiht pole töökindlad). Edaspidi
keskendume ainult ühesuunalisele andmeedastusele ja saatja ning
vastuvõtja ning nende
operatsioonide kindlaks tegemiseks kasutame
FSM-i
(Finite-State
Machine ).
Rdt
1.0 – see on
suhteliselt
triviaalne , sest me eeldame,
et
alumise kihi andmeedastus on töökindel s.t
bite ei lähe kaduma, pakette ei lähe kaduma.
Saatjal ja vastuvõtjal
on erinevad FSM-d: Rakenduselt tulevad andmed. Saatja saadab andmeid
alumisele kihile, vastuvõtja võtab vastu andmeid alumiselt
kihilt.
Rdt 2.0
– realistlikum, sest
alumise
kihi andmeedastamisel ja vastuvõtmisel võib andmeid kaotsi minna.
Et sellisel juhul hakkama saada on vaja
ARQ
(
Automatic Repeat reQuest) protokolli. ARQ protokoll suudab:
1) Avastada vigasid (checksumi abil)
2)Vastuvõtja puhul
suudab anda tagasisidet (ACKi ja NAKi näol) 3)Uuesti sooritada
andmeedastust.
Näiliselt
veatu protokolli puhul on aga suur viga, mis siis teha kui
ACK või NAK on
vigased?Rdt
2.1 – igale
saatja poolt saadetavale paketile lisatakse ka
järjekorra
number. See
välistab pakettide dubleeringu küll, aga võib vastuvõtja saada
samasuguste
andmetega pakette
.
Kui saatja saab kätte ACK-i, siis lõpetab ta andmete saatmise.
Vastasel juhul saadab ta samasuguseid pakette ja suurendab koguaeg
järjekorranumbrit.
Rdt
2.2 - erinevus
2.0-ga on see, et
NAK-e
ei saadeta. Selle
asemel pannakse
igale
ACK-le külge selle paketi järjekorranumber, mis viimati kätte
saadeti. Nii on
teada, et kui kaks korda sama järjekorranumbriga ACK-i tuleb, siis
viimati saatja poolt saadetud paketti vastuvõtja kätte ei saanud
(sest ACK tähendab ju viimase kätte saadud paketti korrasolekut.
Kui ACKe tuleb saatjale kaks samasugust, siis need peavad olema
eelviimase kohta, sest viimase kohta on saadetud ainult üks ACK, mis
kinnitab eelviimase korrasolekut). Kuid ka see ei ole veel veatu
protokoll, sest
mida
teha siis kui paketid kaduma lähevad?
Rdt 3.0
– saatja ootab
teatud aja kui ta ei ole saanud kätte ei ACKi ega NAKi, siis saadab
ta paketi uuesti.Rdt
protokolli suureks puuduseks on see, et see on wait -and-stop
protokoll, mis
tähendab seda, et enne uue paketi saatmist
oodatakse vastus ära
selle kohta, kas
eelmine pakett jõudis kohale. Mis omakorda tähendab
seda, et enamus ajast kulub ootamisele, mis on väga suur ressurssi
raiskamine.
18. Go- back -n
Go-back-n
(GBN) protokoll lubab saatjal pakette saata ilma, et ta peaks ACK-e
ootama. Küll, aga
võib ilma ACK-ita paketti saatjal olla mitte rohkem kui N tükki.
Defineerime mõned muutujad:
base - kõige
vanem ja kinnitamata pakett
nextseqnum - järgmine saadetav
pakett
window size – pakettide arv, mis on võimalik saata ilma
kinnitust (ACK-i) saamata
Nõnda
saame, et paketid vahemikus
[0;base-1]
on paketid, mis on saadetud ja kinnituse saanud. Paketid vahemikus
[base;nextseqnum-1]
on paketid, mis on saadetud, aga pole kinnitust saanud. Paketid
vahemikus
[nextseqnum;base+N-1]
on pakettide arv, mis on veel lisaks saadetud pakettidele võimalik
teele panna ilma kinnitust saamata. Paketid, mis tulevad peale base+N
paketti on need paketid, mida ei saa veel teele panna enne kui ühtegi
ACK’i pole juba saadetud paketi kohta tulnud. Kui base’i kohta
tuleb ACK nihkub window size edasi ja uus window size on vahemikus
[base+1;base+N], mis võimaldab omakorda panna ühe uue paketi teele.
Taimerit kasutatakse
antud juhul ainult
base’i jaoks. Kui timeout tuleb, siis hakatakse saatma kõiki
pakette uuesti alates base’st. Tähtis on ära märkida, et
saatja
võtab ülemiselt kihilt vastu andmeid ainult siis kui aken ei ole
täis (s.t ei
sisalda N paketti). Kui vastuvõtja saab paketi korralikult kätte,
siis saadab ta vastu ACKi selle järjekorranumbriga.
Vales järjekorras paketid heidetakse kõrvale
(s.t, et enne kui pakett 2 pole kätte saadud ei võeta vastu pakett
3-e). Selline lähenemine teeb
vastuvõtja
töö tunduvalt lihtsamaks,
sest tema peab siis meeles
pidama ainult seda, mis paketti järmisena
peaks
tulema (expectedseqnum).
Probleem on selles, et kui window size on väga suur ja samuti
pakettide kohalejõudmiseks kulub palju aega, siis
ühe
paketti saatmise ebaõnnestumine võib põhjustada hästi paljude
pakettide uuesti saatmist,
mis tegelikult poleks vajalik.
19.
Selective-repeat
Selective-repeat
(SR) protokolli puhul saadab saatja ainult need paketid uuesti, mis
olid vigased, mitte kõik alates vigasest pakettist
(nagu GBN puhul). Vastuvõtja saadab ACK’i vastu kui pakett
korrektselt kohale jõuab hoolimata sellest, kas see pakett on
järjekorras järgmine (järgmise järjekorra numbriga kui eelmine)
või mitte
. Et see
kõik toimiks peab olema ka igal paketil oma taimer
nii, et timeout’i puhul saadetakse ainult üks pakett uuesti. Selle
protokolli puhul on ka ühtlasi
vastuvõtja puhverdamine keerulisem.
Window size peab
olema selle protokolli puhul vähemalt poole väiksem kui suurim
järjekorranumber,
muidu võib tekkida paketi kordussaatmine või saadetakse juba uus
pakett.
20. TCP ühenduse loomine
ja sulgemine
Kõigepealt
teatab esimese hosti (
nimetame edaspidi esimest hosti kliendiks, sest
tema initsiatiivil alustati ühenduse loomist)
rakenduskihi
programm transpordikihile läbi sokli, et ta tahab luua ühendust
mingisuguse teise hostiga
(nimetame edaspidi teist hosti serveriks). Selleks on vaja hosti nime
ja pordi numbrit. Pärast seda kui need on kätte saadud alustab
transpordikiht TCP ühenduse loomist, mis toimub
järgnevalt:
1)
Kliendi
poolne TCP saadab erilise TCP segmendi serverile -
selles segmendis pole mingisuguseid rakenduskihi andmeid. SYN bit
pannakse headeris üheks (sellepärast kutsutakse seda
segmenti SYN
segmendiks). Transpordikiht genereerib suvalise numbri
järjekorranumbriks (sequence number) ja paneb selle headeri sequence
number väljale. See
segment kapseldatakse IP datagrammiks ja
saadetakse serverile.
2)
Kui
server saab datagrammi kätte, siis teeb server selle uuesti TCP SYN
segmendiks ning töötleb selle headeri muutujaid ja saadab kliendile
tagasi uue ’ connection granted’ segmendi –
SYN paneks uuesti 1-ks, acknowledgment väljale väärtus, milleks on
järjekorranumber+1 ja server genereerib enda sequence numberi ja
paneb selle sequence number väljale (SYNACK segment).
3)
Kui klient saab segmendi kätte töötleb ta samuti segmendi headeri
muutujaid ning saadab serverile uue segmendi, milles SYN bit on 0
(ühendus on saavutatud), järjekorranumbriks on kliendi
järjekorranumber+1 ning acknowledgement väljal on serveri
järjekorranumber+1.
Kui klient tahab sulgeda
ühendust, siis saab see alguse sellest, et ta saadab serverile
segmendi, kus
FIN
bit on 1 ning jääb
ootama serveri poolset vastust, et ta on nõus ühendust sulgema
(läheb FIN_WAIT_1 seisundisse). Kui ta saab selle vastuse (läheb
FIN_WAIT_2 seisundisse), siis jääb ta ootama vastust, et server on
sulgenud ühenduse. Selles serveri poolt saadetavas segmendis peab
FIN bit samuti 1 olema. Kui see segment ka tuleb kohale (TIME_WAIT),
siis saadab klient ka omapoolse lõpetamismärguande, et ühendus on
lõpetatud.
21. TCP töökindel
andmeedastus
TCP
(transpordikihi tasemel)
tagab
töökindla andmeedastuse mitte-töökindla IP
(võrgukihi tasemel)
teenuse peale. TCP
muretseb selle eest, et
vastuvõtja
buffris poleks segmendid vigased, dubleerimata, oleks õiges
järjekooras jne.
TCP töökindel andmeedastus
töötab
üldjuhul järgnevalt:
Transpordikiht, saab rakenduskihilt andmeid ning
TCP
kapseldab andmed segmentideks
ja annab siis segmendid omakorda edasi võrgukihile, kust võtab IP
üle. Kui taimer juba ei jookse ja on mõni ilma ACK-ita segment,
siis
TCP paneb
taimeri tööle.
Kui tuleb
timeout,
siis saadetakse see segment uuesti, mis põhjustas timeout-i. Kui
saadakse ACK kätte, siis vaadatakse selle ACK-i väljaväärtust.
Kui see väljaväärtus on suurem kui viimane ilma ACK-ita
(unacknowledged) segment, siis sellest võib TCP välja lugeda, et
kõik andmed enne seda serverilt tulnud ACK-i on kätte saadud.
Näited:
1)Kui vastuvõtja saadetud ACK pakett läheb kaduma , siis tänu
timeout-le saadab saatja paketi lihtsalt uuesti 2)Kuna kell pannakse
käima kõige vanema ilma ACK-ita segmendi jaoks siis saadetakse
alati ainult kõige vanem pärast timeout-i uuesti. See on hea, sest
kui ACK-id segmentide kohta jõuavad hiljem kohale kui timeout otsa
saab (eriti hea kui ACK-id suhteliselt koos tulevad), siis näiteks 2
või rohkema paketi saatmise puhul saadetakse serverile ainult üks
(kuigi seda poleks vaja, sest ACK-id on olemas, lihtsalt pole veel
kohale jõudnud) mitte kõik paketid, mille ACK-e pole kohale
jõudnud. Ning kui sellel ajal jõuavad ACK-id kohale, siis
saadetakse kõige suurema väljaga ACK-i järjekorranumbriga segment
uuesti. Ei koormata võrku üleliigselt!!! 3)Kui saadetakse 2 paketti
ja esimese paketi ACK ei jõua kohale, aga teine jõuab, siis pole
vahet. Sest on teada, et esimene saadi ka kätte kuna esimese paketi
ACK>teise paketi ACK.
22. TCP taimerid
Taimer
on võetud kasutusele selleks, et
hakkama
saada ebaaktiivsusega vastuvõtja poole pealt.
Kui oodatakse vastuvõtja poolt mingit tegevust, siis saatja paneb
tööle taimeri. Näiteks
retransmission timer mõõdab
aega, mille möödudes pakett uuesti saadetakse. See aeg ei tohiks
olla liiga lühike, sest see tooks kaasa ebavajalikud
korduvsaatmised. Ning samuti ei tohiks see olla ka liiga pikk, sest
see tooks ebavajaliku delay ja aeglase reaktsooni paketi kadudele.
Aja seadmiseks võetakse arvesse mitmeid asjaolusid. Mõned
kasutatavad definitsioonid: SampleRTT’d (aeg segmendi saatmisest
ACKi saamiseni), EstimatedRTT’d (
Round Trip Time’de keskmestatud
väärtus) ja peale
selle lisatakse tavaliselt ka väike lisaaeg.
Taimereid on
7:
1)
Connection-establishment
timer – pannakse
jooksma kui SYN segment saadetakse TCP ühenduse loomiseks. Kui 75
sekundi jooksul vastust ei tule, siis ühendust ei
looda.
2)
Retransmission
timer – pannakse
jooksma kui pakett pannakse teele. Kui seatud aja möödudes ACK’i
ei tule, siis saadetakse pakett uuesti (vt ülevalt
poolt).
3)
Delayed-acknowledgement
timer – pannakse
jooksma kui vastuvõtja saab kätte paketi, millele on vaja ACK vastu
saata. Kestab umbes 200ms. Kui selle aja jooksul tuleb veel pakette,
siis ACK’itakse kõik pakettid ühe ACK’iga.
4)
Persistence
timer – pannakse
jooksma kui vastuvõtja saadab saatjale ACK’i, milles märgib ära,
et vaba buffri suurus (Receive Window) on null. Selleks, et saatja
saaks pakette edukalt saata, peab akna suurus olema suurem kui null.
Sellepärast ootab saatja, et vastuvõtja saadaks talle uue ACK’i,
milles ta märgib ära, et akna suurus on suurem kui null. Kui seda
taimeri aja jooksul ei tule, siis saadab saatja
probe ’i suurusega 1
byte ja see probe ACK’itakse saatja poolt. Protsess kordub seni
kuni mingi aja möödudes vastuvõtja
buffer tühjeneb ja ACK’ide
sisudes on märgitud, et vaba buffri suurus on suurem kui
null.
5)
Keep - alive timer – aegub
mingi aja möödudes (tavaliselt umbes 2 tunni aja möödudes) ja
siis saadab spetsiaalse segmendi teele,
kontrollimaks , kas ühendus
on ikka üleval.
6)
FIN
WAIT 2 timer7)
TIME
WAIT timer23. TCP voo
juhtimine
Selleks,
et vastuvõtjat mitte ülekoormata on vajalik voo juhtimine. Selleks,
et voogu juhtida on vajalik kontrollida koguaeg ühte välja nimega
Receive Window,
mis annab aimduse sellest kui palju on vastuvõtjal vaba ruumi
buffris. Selleks, et ülekoormus ei tekiks arvutab saatja koguaeg kui
palju tema andmetest
on
ACK’imata ja see
peab olema väiksem
kui
vastuvõtja
Receive
Window. Selleks, et
see töötaks korralikult on
vajalik
Persistence timer,
mis tagab koguaeg ühenduse vastuvõtjaga.
24. TCP koormuse
juhtimine
Selleks,
et võrku mitte üle koormata pakettidega on vajalik koormuse
juhtimine. TCP
edastutuskiirus
on
funktsioon, mis
sõltub võrgu koormusest.
Kui koormus on liiga suur, siis edastuskiirus viiakse madalamale ja
vastupidi. Et see
niimoodi saaks toimida on vajalikud kolm
elementi:
1)
TCP
saatja poolel peab oskama reguleerida edastuskiirust
– TCP puhul on nii saatja kui vastuvõtja poolel koormuse aken
(congestion window), millest ACK’imata andmete hulk ei tohi suurem
olla. See tähendab koormuse akna suuruse ja ACK’imata andmete
põhjal oskabki TCP saatja poolel reguleerida edastuskiirust.
2)
TCP
saatja poolel peab saama infot selle kohta, milline on koormus võrgus
– infot saab selle kohta siis kui paketti retransmission taimer
saab otsa või kui lihtsalt tulevad dubleeritud ACK’id, mis
viitavad sellele, et viimati kätte saadud pakett saaja poolel ei ole
see, mis saatja välja viimasena välja saatis.
3)
TCP
peab kasutama võimalikult head algoritmi , mis reguleerib
edastuskiirust –
algoritm koosneb kolmest tähtsast komponendist:
*
täiendav suurendamine ja mitmekordne vähendamine
(additive-
increase , multiplicative-
decrease ) – idee seisneb selles,
et koormuse akent (Congestion Window)
vähendatakse
saatja poolel poole võrra
kui ilmnevad pakettide kaod. Kui, aga saadakse ACK’e siis
suurendatakse
vähehaaval koormuse
akna suurust.
*
aelgane
algus (
slow start)
– alustatakse sellest, et
määratakse
väike koormuse akna
suurus
(näiteks 1 maksimaalne segmendi suurus) ja
siis
suurendatakse seda väärtust eksponsentsiaalselt pärast
iga Round Trip Time’i. Kui esineb esimene paketti kaotus, siis
jagatakse see kahega
ja koormuse aken suureneb lineaarselt.
*
reaktsioon
timeout’idele
(reaction to timeout
events ) – tegelikult reageeritakse natuke
teistmoodi (mitte lihtsalt koormuse akna kahega jagamine ja
lineaarselt suurenemine) kui esineb paketi kaotus või mitme
samasuguse ACK’i saabumine saatjale. TCP’l on olemas üks muutuja
nimega
Threshold,
mis määrab kindlaks koormuse akna suuruse. See tähendab, et kui
esineb paketi kaotus, siis tegelikult hakatakse
uuesti
peale slow start’iga
ja suurendab oma väärtust eksponentsiaalselt
seni
kuni jõutakse Threshold’i väärtuseni,
siis suureneb koormuse aken
lineaarselt.
25. UDP
Esimene
aspekt, mille poolest erineb UDP TCP’st on see, et UDP puhul
ei
toimu handshaking protsessi
ja toru kahe hosti vahel ei looda
(connectionless
transport). See
tähendab omakorda seda, et UDP
peab panema vastuvõtja aadressi (s.t. IP ja pordi numbri)
segmendi külge ja seda peab ta tegema
iga
segmendi puhul. UDP
puhul ei saa me rääkida töökindlast andmeedastusest, mis
tähendab, et
segmentide
kohalesaabumine pole garanteeritud.
Peale selle
ei
tegele UDP ka voo kontrolliga.
UDP pakub
täpselt
nii palju teenuseid kui vaja,
s.t. et ta pakub ainult
multipleksimist
ja demultipleksimist ning
vigade avastamist
segmendi headerites. Multipleksimine
kujutab endast sisuliselt seda, et transpordi kiht võtab vastu
andmetükid,
mis tulevad
läbi
protsessi soklite
ja paneb
igale
tükile külge headeri
ning
loob sellest
segmendi.
Demultipleksimine
toimub siis vastavalt
vastupidi,
s.t. et transpordi kiht võtab segmendid vastu, mis tulevad
võrgukihilt, töötleb headereid ja saadab need edasi soklitesse.
Pärast multipleksimist võtab võrgukiht segmendi vastu, teeb
sellest datagrammi ja annab oma
parima (best-effort),
et toimetada see vastuvõtjale. See toob omakorda kaasa selle, et
pakettid võivad minna kaduma või siis saabuvad vastuvõtjale vales
järjekorras ning
siin tulebki mängu vigade avastamine ja kontroll.
Transpordi
kiht paneb kaasa
checksumi
headerisse,
et vigasid avastada, aga neid ei parandata.
26. Datagrammvõrgud ja
virtuaalahelatega võrgud
Analoogselt
transpordikihiga pakub ka
võrgukiht
ühendusele orienteeritud
(handshaking) ja
ühenduseta
(ilma handshaking’uta)
teenust. Kuid siiski on võrgukihi puhul mõned
erinevused:
1)
Võrgukihi
teenused on hostide vahelised ja nad pakuvad teenuseid
transpordikihile,
kuid transpordikihi teenused on protsesside vahelised ja nad pakuvad
teenuseid rakenduskihile.
2)
Võrgukihid
pakuvad ühendusele orienteeritud VÕI ühenduseta teenuseid,
aga mitte mõlemaid korraga. Arvutivõrgud, kus me näeme võrgukihi
tasemel ühendusele oritenteeritud võrke nimetatakse
virtuaalahelatega võrkudeks ja selliseid võrke, kus on võrgukihi
tasemel ühenduseta võrgud, nimetatakse
datagrammvõrkudeks.
3)
Ühendusele
orinteeritud teenus toimib võrgukihi tasemel teistmoodi kui
transpordi kihi tasemel.
Näiteks transpordi kihi tasemel nägime, et ühendusele orinteeritus
implementeeritakse lõpp-punktides olevate süsteemide poolt, aga
võrgukihi tasemel implementeeritakse see lõpp-punktide vahel
olevates ruuterites ja ka lõpp-punktides.
Virtuaalahelatega võrgud –
kasutavad virtuaalahelaid, et kaks otspunkti omavahel ühendada.
Virtuaalahelad
koosnevad:
1)
teekonnast,
mis on lihtsalt ühenduslülide ja ruuterite jada
2)
numbritest,
mis tähistavad ära iga lingi teekonnal
3)
sissekannetest
marsruutimistabelitesToimib
see järgnevalt:
Luuakse kanal
(VC setup),
saadetakse
andmed (data
transfer) ja
pannakse
kanal kinni (VC
teardown). Pakett, mis mööda kanalit liigub omab
Virtuaalahela
numbrit oma
header’is, mis
muutub
iga lingi juures.
Numbri
muutmise viib
läbi ruuter, kellel on tabel,
mille alusel ta numbrit muudab. Samuti hoiavad ruuterid
ühenduste
informatsiooni,
s.t. et kui uus ühendus luuakse, siis lisatakse ka uus kirje tema
tabelisse ja vastupidi
kustutamise puhul. Erinevus transpordikihi ja
võrgukihi kanali loomise vahel on see, et võrgukihi puhul on
ruuterid otseselt ka
kaasatud ühenduse loomisesse,
vastupidiselt transpordi kihile, kus ühenduse loomisesse on kaasatud
ainult lõpp-punktid.
Datagramm
võrgud – erinevalt virtuaalahelatega võrkudest ei looda siin
mingisugust kanalit ja ruuterid ei tea mingit infot virtuaalahelate
kohta (sest neid
lihtsalt pole). Kui pakett pannakse teele, siis
iga
ruuter, mis jääb
tee
peale vaatab
vastuvõtja aadressi ja paneb selle kokku oma tabelis oleva lingi
liidesega.
Ruuteri tabelid ei hoia
mitte kõiki IP’sid,
mis maailmas on
vaid
sisuliselt hoiavad nad IP’de vahemikke.
Vahe virtuaalahela võrguga on ka see, et
datagramm
võrgu puhul võivad pakettid läbida erineva teekonna.
27. Marsuutimine
Võrgukiht
peab otsustama,
millise
teekonna pakettid läbivad.
Marsruutimisprotokolli eesmärk on
tuvastada
„hea“ tee alguspunktist lõpp-punkti.
Headuse mõõtmine võib käia
mitme
mõõtme järgi,
näiteks
hinna,
usaldusväärsuse, teekonna pikkuse, delay’de
jms järgi. Marsruutimine koosneb
kahest
põhilisest komponendist:
optimaalse
marsruutimisteekonna kindlaksmääramine ja pakettide transport.
Kui
pakettide
transport võib
olla
üsnagi
triviaalne, siis
marsruutimisteekonna
kindlaks tegemine
võib olla jällegi
vägagi
keeruline. Teekonna
teevad kindlaks ja arvutavad välja
marsruutimisalgoritmid.
Tee määramiseks
kasutavad algoritmid marsruutimistabeleid,
mis sisaldavad algoritmist sõltuvat marsruutimisinformatsiooni.
Selleks, et
info tabelites oleks asjakohane
suhtlevad ruuterid ka omavahel marsruutimisvärskenduse
(routing
update) sõnumite
ja lingi oleku kuulutuse
( link state advertisement)
sõnumitega Marsruutimisprobleemidega tegelemiseks kasutatakse
tihtipeale ka
graafe.
28. Link state
marsruutimisalgoritm
Selle
algoritmi puhul on
terve
võrgu topoloogia ja linkide hinnad teada
ehk siis nad on sisendiks Link State marsruutimisalgoritmile.
Teoorias on see see saavutatav nõnda, et
iga
ruuter saadab endale teadaoleva info ruuterite
ja lingi hindade
kohta kõigile teistele laiali.
Praktikas on see saavutav näiteks
Link-state broadcast algoritmiga .
Järgnev link state algoritm on tuntud kui
Dijkstra
algoritm ja
töötab
see nõnda:
Graafi tipp, millest alustatakse, märgib endale üles tee hinnad otseste
naabriteni. Kui
otsesed naabrid ei olda, siis märgitakse hinnaks
lõpmatus. Järgmisena pöördutakse naabri poole, kelleni oli tee
kõige odavam. Vaadatakse üle tema otsesed naabrid ning kui mõni
tee oli lühem, kui eelmise naabri juurest, siis märgitakse see
endale üles ning jäetakse meelde, et selle tipu kaudu oli sinna
odavam minna. Kallimaid asju üles ei märgita. Ning jätkatakse
samal põhimõttel, kuni on teada lühimad teed alguspunktist
teistesse punktidesse.
29. Distance vector marsruutimisalgoritm
Omadused:
Iteratiivne
(jätkub kuni ükski sõlm infot ei vaheta),
ise-lõpetav
(ei ole mingit signaali, mis selle seisma paneks),
asünkroonne
(sõlmed ei pea ühes rütmis töötama),
jagatud
(iga sõlm
vahetab ainult oma
naabrite vahemaade hinnanguid teiste
sõlmedega). Distance vectori marsruutimisalgoritm põhineb
Bellman- Ford võrrandil, mis on
järgnev:
dx(y)=minv<
See
tähendab sisuliselt seda, et kõigepealt minnakse x’st v’sse (v
on mingi suvaline naaber) ja siis vaadatakse v minimaalset kaugust
y’sse.
Kõige
lühem tee on üle kõigi naabrite v minimaalne kaugus
y’sse.
Distance
vectori algoritm
töötab
nõnda: Aeg-ajalt
saadavad sõlmed üksteisele distance vectoreid (distance vector Dx
on selline vektor, milles on maksumuste
hinnangud x’st kõigisse
teistesse sõlmedesse) ja kui x saab kätte uue distance vectori,
siis uuendab ta enda distance
vektorit analoogselt Bellman-Fordi
võrrandiga:
Dx(y)=minv<
Ja
kui x’i distance vector muutus, siis saadab ta selle laiali ka oma
naabritele ning protsess kordub seni kuni sõlmed vahetavad üksteise
vahel vektoreid.
30. Hierarhiline
marsruutimine
Link
State ja Distance Vector marsruutimisalgoritmid
on
liiga
lihtsakoelised
selles mõttes, et nendes algoritmides
ruuterid
realiseerisid sama algoritmi
ja
reaalsuses on ruutereid nii palju, et
kui
kõik vahetaks omavahel nõnda infot
nagu see toimis nende algoritmide puhul siis ei jääks ruumi
andmevahetuseks
ja samuti oleks
administreerida
iseseisvalt mingit võrku
võimatu.
Sellepärast on ruuterid jaotatud
autonoomsetesse
süsteemidesse
(autonomous systems – ASs), kus igas süsteemis ruuterid teavad
üksteise kohta infot ja realiseerivad ruuterid sama algoritmi ning
samuti on igas süsteemis on ühel või rohkemal ruuteril
ülesanne
saata pakette väljaspoole
AS’i. Neid nimetatakse
gateway ruuteriteks. Kõik
gateway ruuterid
realiseerivad sama protokolli,
et nad oskaks üksteisega suhelda ja kõigil
gateway
ruuteritel on piirkonna sisesed ja piirkonna välised
ruutimistabelid.
Hierarhilise marsruutimise
eelisteks on marsruutimisvärskenduse sõnumite liikluse vähenemine
ja marsruutimisprobleemi jagamine väiksemateks probleemideks.31. IP aadress ja MAC
aadress, ARP
IP
aadress on võrgukihi aadress
ning neid on tänapäeval kahte tüüpi
IPv4 ja
IPv6 (vt alt poolt).
MAC aadress on kanali kihi
aadress, mis on
igal
arvutil ja ruuteril on need
ROM’is
read-only’na
olemas. See tähendab, et see püsib arvutil muutumatuna terve tema
elutsükli jooksul. Koosneb see
6-st
baidist ja neid
väljendatakse
kuueteistkümnend süsteemis.
Kui
adapter saadab mingi
kaadri , siis
lisab
ta otspunkti MAC aadressi päisesse
ja paneb selle teele.
Iga
arvuti, kes selle
kätte saab,
kontrollib,
kas see on tema MAC või mitte.ARP
(address resolution protocol)
võtab
sisse IP aadressi ja annab välja MAC aadressi.
Seda on vaja kui
saatja
on juba DNS’ilt saanud teada vastuvõtja IP
ning siis annab
ARP
vastavalt IP’le õige MAC aadressi.
ARP
töötab
mõnes mõttes
analoogselt
DNS’iga, kuid
oluline erinevus on see, et kui DNS annab hosti IP aadressi terve
interneti võrgu piires, siis
ARP suudab anda MAC aadressi ainult alamvõrgu piires.
Kui host tahab saata paketti kellegile, kelle
MAC
aadressi ARP’i tabelis pole,
siis host
teeb
alguses ARP paketi,
mis saadetakse
kõigile
alamvõrgus olevatele sõlmedele kui
ilmneb, et
sõlm
teab vastust, siis
saadab ta ARP paketi
tagasi saatjale.
Kui saatja tahab saata paketti
väljaspoole
oma alamvõrku,
siis alguses saab ta
ARP’i
abil kätte alamvõrgu ruuteri MAC’i
ja
saadab paketi
alamvõrgu ruuterile.
Peale seda
saab
ruuter ARPi abil kätte vastuvõtja MAC’i
ning toimetab siis paketi
teise
võrku, kus on
vastuvõtja arvuti.
32. DHCP
DHCP
(Dynamic Host
Configuration Protocol) on
protokoll, mis võimaldab lasta serveril dünaamiliselt hallata ja
automatiseerida unikaalse IP-aadressi omistamist kohtvõrgu
seademetele.
Kutsutakse ka „plug-and-play protocol“-iks. See on
väga
hea protokoll administraatorile,
sest muidu
peaks ta
IP’d manuaalselt määrama ise.
DHCP’d saab konfida nii, et see
omistaks
hostidele jäävad või ajutised IP aadressid
(tavaliselt kasutatakse ajutisi, sest IP’de arv on teadupoolest
piiratud). Oma dünaamilisuse ja automaatsuse tõttu on see
protokoll
väga laialt levinud,
sest tänapäeval inimesed pidevalt liituvad ja
lahkuvad erinevates
võrkudes.
Protsess
näeb välja nõnda:
1)Kui
võrku
tuleb uus host,
siis esimese asjana ta peabki üles leidma DHCP serveri võrgus ja
seda otsingut saab ta teostada
DHCP
discover message’ga,
mis saadetakse UDP pakettina
pordile
67. Host koostab
vastava IP datagrammi ja paneb sinna külge ka
broadcast’i
aadressi 255.255.255.255
ja enda aadressi 0.0.0.0 ning saadab selle kanali kihile, mis loob
kaadri ja paneb oma korda külge
MAC’i
broadcast aadressi FF-FF-FF-FF-FF-FF.
Pärast seda läheb läheb
kaader võrku ja
kõik
hostide adapterid näevad seda,
sellepärast saabki see kaader ilusti DHCP serverini toimetatud.
Discover message’il
on küljes ka üks
ID,
mille järgi saavad DHCP serverid vastuseid luua ja mille järgi host
need vastused ära tunneb.
2)Kui
DHCP
server saab discover message’i kätte,
siis vastab ta enda poolse
DHCP offer message’ga.
Kui DHCP servereid on mitu, siis võib olla ka offer message’eid
mitu, millel
kõigil
on küljes see discover message’ist saadud ID.
Peale selle sisaldavad offer message’id ka
pakutavat
IP’d, võrgu maski ja IP aadressi eluea pikkust.
3)Pärast
seda kui
server on
vastuse saatnud,
saadab
host DHCP
request paketi,
milles ütleb ta serverile, et on tema
pakutud offer mesagge’i
kätte saanud ja tema IP edukalt vastu võtnud.
4)Selle peale
vastab server DHCP
ACK’iga, millega
ta näitab, et sai hosti sõnumi kätte ja tema
parameetrid on
edukalt kinnitatud.
33. NAT
NAT
(
Network Address
Translation ) on sisuliselt
võrguaadressi
ümbernimetamine.
Oletame, et meil on näiteks üks väike
organisatsioon alamvõrgu IP
aadressidega 10.0.0.0/24 ning oletame, et organisatsiooni arvutitel
on ainult privaatsed IP’d s.t. et välismaailmale on need IP’d
registreerimata või ei ole vähemalt registreeritud kui selle
konkreetse organisatsiooni IP’d.
NAT
ruuter näib välismaailmale kui üks IP
ja kõik liiklus,
mis tuleb selle organisatsiooni alamvõrku käib läbi NAT ruuteri IP
ja kõik organisatsiooni IP’d lähevad välja ühe ja sama NAT
ruuteri IP’na.
Üldiselt saab
NAT
ruuter ise oma
võrguaadressi ISP
DHCP’lt ning
jooksutab ka ise
DHCP serverit jagades siis välja IP’sid enda alamvõrku.
Protsess
näeb välja nõnda: Kui
sisevõrgust saadetakse pakett välisvõrku, siis kõigepealt liigub
see pakett sisevõrgu NAT ruuterisse, mis suhtleb välismaailmaga.
NAT ruuter loob enda NAT translation tabel’
isse sellise IP ja pordi
paari, mida seal veel ei ole. Asendab need paketis ära ja lisab need
tabelisse ning siis saadab paketti välja. Vastuvõtja teeb oma
tegevused paketiga ära ja saadab paketi NAT’ile tagasi ning NAT
vaatab oma tabelist jälle, milline sisevõrgu IP ja port vastasid
sellele IP’le ja pordile, mis ta enne paketti source’s ära
muutis ja saadab siis paketi sisevõrku õige IP ja
pordiga arvutile.
34. Marsruutimisprotokollid
RIP, OSPF ja BGP
RIP
– Routing
Information Protocol – kasutab
Distance
Vector algoritmi.
Marsruuterid
vahetavad distantsvektoreid iga 30 sekundi tagant (saadetavaid
teateid nim advertisementideks, neid saadetakse UDP pakettidena). Iga
advertisementiga
antakse
edasi marsruut kuni 25 sihtvõrguni.
Kui naabri käest
180
sekundi jooksul advertisementi ei saada,
kuulutatakse naaber
„ surnuks ”
ning kõik marsruudid, mis käisid antud naabri kaudu, kehtetuks. Sel
juhul (marsruutimistabel muutus)
saadetakse
kohe ka kõigile naabritele uued advertisementid
ja naabrid saadavad need omakorda edasi ning teade mõne sõlme
ülesütlemisest levib kiiresti üle kogu võrgu.
RIPi
kasutakse põhiliselt väiksemates võrkudes.OSPF
–
Open Shortest
Path First –
kasutab
Link State marsruutimisalgoritmi.
Iga võrgusõlm teab
kogu võrgutopoloogiat ning lühim tee punktide vahel leitakse
Dijkstra algoritmiga.
Suuremates võrkudes
kasutatakse
hierarhilist
OSPFi, kus võrk on
jagatud piirkondadeks (area), nii et Link State algoritm toimib
ainult piirkondade piires ning iga piirkond on ühendatud võrgu
tuumaga ehk „selgrooga” ehk magistraaliga (backbone area),
kusjuures
marsruutimine
piirkondade vahel toimib ainult läbi magistraali.
OSPF eelised RIPiga võrreldes:
kõik
OSPF teated on autentitud
,
kasutatakse TCP
protokolli (RIPis
kasutati UDP-d),
lubatud
on mitu samaväärset
(võrdselt lühikest)
teed
kahe punkti vahel
(RIPis sai olla ainult üks lühim tee),
toetab
suuremaid võrke.
Kui RIP ja OSPF on nn Intra-AS
(autonoomsüsteemi sisesed) marsruutimisprotokollid, siis järgmine -
BGP (Border
Gateway Protocol) on mõeldud
autonoomsüsteemide
vaheliseks marsruutimiseks
(marsruutimine toimub ASide välislüüside (border gateway) kaudu).
BGP on
peamine
ruutimisprotokoll Internetis.
Igale ASile on antud
unikaalne number, mille järgi
see Internetis identifitseeritakse. BGP kasutab
Path
Vector marsruutimisprotokolli
(sarnane Distance Vector protokolliga). Iga ASi
välislüüs
saadab naabritele
informatsiooni
kogu tee kohta sihtpunkti.
Naaber saab siis otsustada, kas kasutab seda teed või mitte. BGP
protokollis
ei
arvestata marsruudi leidmisel ainult lühimat teed,
vaid määravaks võivad saada ka
poliitilised
ja majanduslikud põhjused
(näiteks ei soovita teha marsruuti läbi konkurendi ASi). BGP teated
liiguvad
üle TCP
protokolli.
35.
Marsruuterid
Marsruuteri
kaks põhilist funktsiooni on:
1)
Marsruutimisalgoritmide
ja protokollide töö tagamine2)
Datagrammide
edasisaatmine sissetulevast kanalist väljuvasseIga
ruuteri puhul saame rääkida neljast põhilisest komponendist,
millest ta koosneb:
1)
Input
port –
realiseerib füüsilise kihi, kanali kihi ja võrgukihi
funktsioone.
2)
Switching
fabric – ühendab
sisend- ja väljundpordid.
3)
Output
port – võtab
pakettid, mis on talle saadetud sisendpordi poolt läbi switching
fabricu ja edastab selle väljundkanalisse.
4)
Routing
processor –
protsessor realiseerib protokolle, sisaldab ruutimisinformatsiooni ja
tabeleid ning viib läbi erinevaid võrgufunktsioone.
Sisendpordi eesmärk on kõik
sissetulevad datagrammid kinni püüda, leida datagrammi sihtaadressi
järgi mälus
olevast marsruutimistabelist sobiv väljundport ning
saada pakett sinna edasi. Kui paketid saabuvad sisendisse kiiremini
kui nende töötlemine aega võtab, siis jäetakse paketid mällu
ootele (queueing). See tekitab viiteid ning kui mälu (
puhver ) täis
saab, lähevad datagrammid kaduma. Ideaalsel juhul toimub pakettide
töölemine võrgu kiirusel (ühtki paketti ei jäeta ootele).
Kommuteerimisel on
kasutusel kolm meetodit:
1)
Läbi
mälu (kasutati
vanades esimese põlvkonna ruuterites). Sisendpordi protsessor vaatab
paketi üle ja kopeerib selle marsruuteri mällu. Sealt saadetakse
pakett edasi väljundporti. Paketi liikumise kiiruse määrab mälu
kiirus.
2)
Mööda
siini. Datagramm
kantakse sisendpordilt väljundporti üle jagatud siini. Tunduvalt
kiirem kui eelmine variant. Kiiruse määrab siinikiirus (näiteks
mõnes
Cisco ruuteris kasutatakse 1Gb/s siini).
3)
Läbi
interconnection networki
(eestikeelset vastet ei tea; mõeldud on selliseid võrke nagu
näiteks mitme protsessoriga süsteemides protsessorite omavaheliseks
ühendamiseks kasutatakse). Kõige kiirem variant.
Väljundpordis kasutatakse
samamoodi pakettide ootelejätmist (queueing), kui väljundi liini
kiirusest ei piisa. Probleemid samad mis sisendi puhul (viide,
andmekaod).
36. Ipv4 ja Ipv6
IP
on
võrgukihi
protokoll, mis
tegeleb loogilise adresseerimisega. IP’d on mõeldud
võrguliideste
tuvastamiseks
(arvutitel on neid tavaliselt üks ja ruuteritel mitu).
IPv4
– iga IP on
32
biti (4 baiti) pikk
ja seetõttu on aadresse kokku
232.
IP aadress
kirjutatakse kümnendnumbritega ja iga
bait eraldatakse
punktiga . InterNIC
Registration Service registreerib
internetiaadresse neljast klassist:
A-klass),
mis on mõeldud suurtele võrkudele ja toetab 16 miljonit hosti;
B-klass),
mis on mõeldud keskmise suurusega võrkudele ja toetab 65000 hosti;
C-klass)
on mõeldud väikestele võrkudele, kus on alla 256 hosti;
D-klass)
on mõeldud multiedastusvõrkudele. Aadress koosneb kahest
loogiliselt osast:
võrgu-
ja hostiosast
(kusjuures esimesed bitid näitavad ka aadressi klassi). Võrguosa
identifitseerib
alamvõrgu
ja hostiosa identifitseerib
konkreetse
masina selles alamvõrgus.
Näide:
aadress 223.1.1.0/24 tähendab seda, et 24 esimest biti aadressist
moodustab alamvõrgu aadressi ja
viimased 8
bitti moodustab hosti
aadressi.
IP-datagrammi
päises on kirjas IP-protokolli versioon, päise pikkus, datagrammi
pikkus, lähte- ja sihtkoha ip-aadressid
(source ja destination),
time-to-live
ehk datagrammi eluiga (maksimaalne läbitavate võrgusõlmede arv),
fragmenteerimisinfo ja kontrollsumma.
Päises võib olla veel ka muud lisainfot (näiteks saatmise aeg
(timestamp) või natuke lisainfot marsruutimise jaoks), aga see pole
kohustuslik.
IPv6
– loomise põhjuseks on see,
et
IPv4 aadressid hakkasid otsa saama.
IP on selle versiooni puhul
128
biti pikk ja
seetõttu on aadresse kokku
2128.
IPv6 kasutab fikseeritud
40
baidi pikkust päist
ja keelab ära fragmenteerimise. Päise formaat peaks
kiirendama pakettide töötlust ja edastamist (hõlbustab QoS kasutamist).
Võrreldes IPv4’ga on veel ära
kaotatud kontrollsumma ja
pakettidele on
võimalik määrata prioriteete.
Üleminek
IPv4-lt IPv6-le –
kõiki ruutereid pole võimalik ära uuendada. Nende standardite
ühendamiseks on kasutusel kaks meetodit:
1)
dual stack – osad
ruuterid (Ipv6 ja Ipv4 võrgu vahelülid)
saavad
aru nii v4 kui v6 pakettidest
ning oskavad ühte teiseks ümber teisendada. Niimoodi liigub pakett
osa teekonnast Ipv6 paketina ja osa Ipv4 paketina.
2)
tunneling
– kui Ipv6 pakett jõuab võrguossa, kus kasutatakse Ipv4
protokolli, siis
spetsiaalne
ruuter Ipv6 võrgu „ serval ” paneb Ipv6 paketi Ipv4 võrgus
edastamiseks Ipv4 paketi sisse ja
edastatakse nagu tavalist Ipv4 paketti. See tähendab, et Ipv4 võrgus
käiakse Ipv6 paketiga ümber nagu suvaliste andmetega Ipv4 paketis.
Teisel pool pannakse Ipv6 pakett taas kokku. Seda võib vaadelda kui
Ipv6 tunnelit läbi Ipv4 võrgu.
37. Vigade avastamine ja
parandamine, CRC
Vigade
avastamiseks ja parandamiseks lisatakse edastatavale koodile mingi
lisainformatsioon.
Kõige lihtsam veaavastus toimub
paarsusbiti
abil (näitab, kas
andmetes olev ühtede arv on paaris või paaritu). Paarsusbiti abil
on võimalik tuvastada ühekordseid vigu (kui kaks bitti on valed,
siis paarsusbitt viga ei näita) ning vigade parandamiseks
paarsusbitt piisavalt informatsiooni ei anna. Keerulisemad
veaavastuskoodid on nn
kontrollsummad.
Nende põhimõte seisneb selles, et andmebittide alusel arvutatakse
mingi kindla algoritmi abil välja üks kontrollkood, mis pannakse
paketiga kaasa. Seejärel arvutab
paketi
vastuvõtja uuesti sama koodi välja
ja
kui see erineb
saadud kontrollsummast, on pakett vigane .
Kontrollsumma eelis on see, et korraliku algoritmi ja piisavalt pika
kontrollsuma puhul on väga raske (peaaegu võimatu) teha kahte
erinevat paketti, millel oleks sama kontrollsumma. Seega võib üsna
kindlalt väita, et
kui
kontrollsummad klapivad, on pakett korrektne.
Kõige levinum veaavastustehnoloogia on
CRC
– Cyclic Redundancy
Check . CRC arvutamisel
kasutatakse
16- või 32-bitist polünoomi
(generaator), mida teavad nii saatja kui vastuvõtja (see polünoom
on standardiga määratud). Saatja poolel tekitatakse selline CRC
kood, et
kui
vastuvõtja jagab andmebitid koos neile järgnevate CRC bittidega
(CRC bitid lisatakse andmebittide järele noorimateks bittideks.
Näiteks kui andmed on 110011 ja crc on 10110, siis jagatavaks tuleb
11001110110. Tegelikkuses on nii andmed kui CRC muidugi
pikemad .)
läbi generaatoriga,
peab jagamisel tekkima jääk 0.
Kui tekib nullist erinev jääk, peab andmetes olema viga. CRC koodi
arvutamine käib nii, et teostatakse
samasugune jagamine, aga CRC
koodi asemele (mida veel ei teata) pannakse andmete lõppu nii palju
nulle kui pikk on CRC kood. Sel juhul tuleb generaatoriga
jagamise jäägiks CRC kood ise.
38.
Multipöördusprotokollid
Broadcast
lingi puhul võib olla
mitu
saatvat ja mitu vastvõtvat sõlme,
mis on ühe jagatud
broadcast
kanaliga ühendatud.
Ethernet ja traadita
LAN on head näited.
Kuna sõlmi on võrgus palju, siis tekib probleem seoses sellega, et
mida teha kui mitu sõlme tahavad korraga kaadreid saata? Sest
siis
tekib kollisioon ja
vastuvõtjatest ei saa keegi aru, kes mida saatis.
Multipöörduskrotokoll tegeleb probleemiga:
kuidas
koordineerida mitut sõlme, mis saadavad ja võtavad vastu sõnumeid
ühelt broadcast kanalilt . Ehk siis protokoll määrab ära, kes
saadab ja millal saadab. Multipöördusprotokollid
jagunevad kolmeks:
1)
Kanali
jaotamise protokollid
(näiteks aja või sageduse järgi).
2)
Juhupöördusprotokollid(lubatakse
kokkupõrkeid (collisioneid), on olemas reeglid, mida teha põrke
korral).
3)
Kordamööda
kasutamise protokollid
(kanali jagamine on
rangelt kontrollitud, et kokkupõrkeid vältida).
Kanali jaotamise (Channel
Partitioning Protocols) protokollid:TDMA
(time division multiple access) – ajapõhine multipöördus. Iga
saatja saab kindlaks ajavahemikuks kanali enda käsutusse, seejärel
läheb kasutusõigus üle järgmisele. Pole väga efektiivne, kuna
saatjad saavad oma osa kanalist ka siis, kui neil midagi saata ei
ole, ning kasutamata aeg läheb raisku.
FDMA
(frequency division multiple access) – sageduspõhine multipöördus.
Kanal jaotatakse erinevateks sagedusvahemikeks, iga saatja edastab
andmeid oma sagedusel teisi segamata. Samuti väheefektiivne, kuna
sagedusvahemikud on alati saatjate käes, kuigi neil võibolla alati
ei ole midagi saata.
CDMA
(code division multiple access) – koodipõhine multipöördus.
Igale kasutajale antakse unikaalne kood. Kõik kasutavad sama
sagedust, kuid kõik
kodeerivad saadetavad andmed oma
koodiga . Koodid
on ortogonaalsed ja sellepärast ei sega erinevad saatjad üksteist.
Vastuvõtjas
teatakse saatja koodi ja selle järgi on võimalik
andmed dekodeerida. CDMA-d kasutatakse enamasti juhtmeta seadmetes
(
mobiiltelefonid , sateliitside jne).
Juhupöördusprotkollid
( Random Access Protocols):
Slotted ALOHA - kanal jaotatud võrdseteks ajavahemikeks (slottideks) ning iga
saatja võib oma suva järgi kasutada mingit ajavahemikku andmete
saatmiseks (saatmine algab ja lõppeb
sloti vahetumisel). Kõik
saadetavad
kaadrid on võrdse pikkusega ja iga kaader on võimalik
ära saata ühe sloti jooksul. Kui kaks saatjat saadavad samal
ajavahemikul korraga andmeid, tekib kokkupõrge (collision), mille
saatjad tuvastavad ja saadavad paketi mingi aja pärast uuesti.
Selleks, et ei tekiks uut kokkupõrget
samade pakettide vahel, ei
saadeta neid uuesti kohe järgmisel ajavahemikul, vaid jäetakse
vahele juhuslik hulk ajavahemikke. Seejärel proovitakse uuesti
saata, nii kaua kuni lõpuks õnnestub.
Unslotted
ALOHA - ei oodata
sloti algust, vaid saatjad võivad andmeid edastada suvalisel
ajahetkel. Unslotted ALOHA on lihtsam ja võeti kasutusele
ajalooliselt enne Slotted ALOHA „leiutamist”. Ilma kindlate
ajavahemike määramiseta ei ole saatjad omavahel sünkroniseeritud
ja seetõttu võib kokkupõrge tekkida mitte ainult pakettide
saatmise alguses vaid põhimõtteliselt suvalisel hetkel, kui üks
saatja ei ole veel saatmist ära lõpetanud, aga teine üritab juba
alustada. Põrke tõenäosus Unslotted ALOHA puhul on täpselt 2
korda suurem kui Slotted aloha puhul.
CSMA /CD
( Carrier Sense Multiple Access with Collision Detection)
– kandja- ja põrketuvastusega multipöördus. Lisab CSMA’le ka
protseduurid, mida siis teha kui kollisioon tuvastatakse. Selle
protokolli puhul kõik saavad saata kaadreid ja kui saatmine toimub
ilma kollisioonita, siis on kõik korras. Kui, aga ilmneb kollisioon,
siis saadetakse kaader uuesti mingisuguse juhusliku ajavahemiku
pärast. CSMA/CD kaks põhireeglit (inimkommunikatsiooni näite
vara): ära
alusta rääkimist,
kui teised räägivad
(Carrier Sense); kui keegi teine alustab rääkimist
sinuga samal ajal, lõpeta
rääkimine
(Collision Detection).
Juhupöörduste vead: kasutamata slotid.
Kordamööda kasutamise
protokollid:
Polling protocol
– üks sõlmedest on põhisõlm, kes sisuliselt koordineerib
võrguliiklust. Alguses küsitleb põhisõlm esimest sõlme ja lubab
tal mingi kaadreid saata mingi kindla maksimum arvu. Siis lubab
põhisõlm saata teisel sõlmel mingi kindla maksimum arvu kaadreid,
kusjuures põhisõlm suudab tuvastada selle kui sõlm enam kaadreid
saata ei taha. Ning see protsess käib kogu aeg ringiratast. Vead:
põhisõlme
teavitamine ja suhtlemine kõigi sõlmedega eraldi on
aega nõudev. Kui põhisõlm ei tööta, siis terve kanal ei
tööta.
Token - passing protocol – sõlmed
vahetavad enda vahel erilist kaadrit nimega token. See kelle käes on
token saab saata ka kaadreid. Kui kaadreid enam saata pole, siis
saadetakse token edasi. Kui on kaadreid saata, siis saadetakse kuni
mingi maksimum arv kaadreid ja siis saadetakse token edasi. Vead: ühe
sõlme mittetöötamine võib terve kanali mittetöötavaks teha. Kui
üks sõlm ei anna mingi vea tõttu tokenit enam käest, siis vea
parandamine võib olla aega nõudev.
39. ALOHA ja CSMA/CD (vt
eelmist)40. Token ring
LAN tehnoloogia . 3
baidine kaader nimega Token,
mis liigub
ringis . Ring ise koosneb võrgusõlmedest. See,
kelle
käes on Token, saab saata pakette,
mis tagab omakorda selle, et
kollisioone
ringis ei ole. Et
arvuti saaks ringis pakette edastada,
peab
ta kõigepealt Tokeni kinni püüdma.
Kui ta on Tokeni kinni püüdnud,
siis
loob ta sellest kaadri ja paneb sinna vajaliku info paketi saatmiseks
ja
laseb kaadri võrguringi. Kui õige võrgusõlm saab kaadri kätte,
siis
saadab ta ACK’i
ringis saatjale tagasi.
Kui saatja on ACK’i
kätte saanud, siis vabastab ta Tokeni ja järgmine sõlm saab hakata
saatma. Token ring
toetab kahe kaadri formaati:
Andmekaader
ja Token ringi kaader.
Andmekaader koosneb järgmistest elementidest:
Starting
Delimiter –
määrab ära kaadri alguse
Access
Control – määrab
ära
prioriteedid ja reserveerimisbitid
Frame Control – määrab
ära, kas tegu on LLC kaadriga või mitte. Kui ei ole, siis selle
välja bitid kontrollid token ringi MAC protokolli
Destination
Aadress –
vastuvõtja aadress
Source
Aadress – saatja
aadress
Data unit
– sisaldab LLC kaadri andmeid
Frame
Check SequenceEnd
Delimiter –
määrab ära kaadri lõpu
Frame
Status Token
ring koosneb järgmistest elementidest:
SD,AC,ED41. Token bus
LAN
tehnoloogia ja
analoogne Token
Ringiga. Põhiline
erinevus on see, et
füüsiliselt
ei moodusta võrk ringi vaid Token liigub mööda ühte siini.
Siini peal liigub kaader nimega Token ning
igale
võrgusõlmele on määratud ajapiirang kaua see Token tema käes
võib olla. Iga
võrgusõlm peab teadma on naabi aadressi (
Who
Follows Me). See,
kellel on luba teab, kes on pärast seda ja küsib, kas
keegi
tahab ringi ühineda
ja saadab tal
SolS
sõnumi. See, kes
tahab ühineda peab vaatama mingisugust kindlat võrgupunkti ja kui
ta näeb, et on saadetud SolS sõnum, siis saabki ta ühineda.
Saadetakse
sõnum SetS ja ring
seatakse ümber. Kui keegi
lahkub ringist , siis
saadab ta
jälle
SetS sõnumi ja
nõnda teavad naabrid, et üks sõlm on ringist lahkunud ja
korrigeerivad oma tabeleid.
Kui
niimoodi lahkumine ei toimu,
siis saadab sõlm, kes on enne lahkunud sõlme mingi
kindla
arvu sõnumeid. Kui
vastust ei tule,
siis saadab
WF
sõnumi, millele
vastab
lahkujast
järgmine sõlm SetS sõnumiga.
Mõlemad korrigeerivad jälle oma tabeleid ja ring toimib edasi.
42. Datagrammide edastus
läbi võrkude (võrgukihi ja kanalikihi tasemel)
Andmete
edastus võrgukihi ja kanalikihi tasemel nõuab
kahesuguseid
aadresse.
Omavaheliseks
suhtluseks kasutatakse IP aadresse, mida kasutab
võrgukiht. Andmete edastuseks vajab kanalikiht nn füüsilist
aadressi e MAC aadressi, mida annab välja USA ühendus IEEE.
MAC
aadressid on kõik unikaalsed ja vastavuses IP aadressidega.
Igas seadmes on olemas oma ruutimise tabel, kuhu pakett saata. Kui
saadetakse välja pakett, mis on mõeldud samas võrgus asuvale
terminalile, siis toimetatakse see vahetult kohale. Kui sihtarvuti ei
asu samas võrgus, saadetakse see võrguväravasse (gateway), mis
uurib kas sihtarvuti asub samas alamvõrgus. Kui ei, siis saadetakse
pakett järgmisele ruuterile. Nii tehakse senikaua, kui jõutakse
alamvõrku kus sihtarvuti asub.
Näide:
A tahab saata datagrammi B-le läbi ruuteri R. Oletame, et A teab B
IP aadressi. 1) A loob datagrammi, mille alguspunktiks on A ja
lõpppunktiks B. 2) A kasutab ARPi, et saada R-i MAC aadress. 3) A
loob kanalikihi frame’i, kus sihtkohaks on R-i MAC aadress. Frame
koosneb A to B IP datagrammist. 4) A kanalikiht saadab frame’i. //
5) R-i kanalikiht saab frame’i kätte. // 6) R eemaldab IP
datagrammi Etherneti frame’st, näeb, et see on mõeldud B-le. //
7) R kasutab ARPi, et saada B füüsilise kihi aadress. // 8) R loob
frame’i, mis sisaldab A to B IP datagrammi ja saadab B-le.
43. Ethernet
Kõige
populaarsem traadiga LAN tehnoloogia. Ethernet
ei
ole ühendusele orienteeritud,
s.t. enne paketi teele saatmist ei toimu handshaking’imist. Samuti
pole
Ethernet ka
usaldusväärne,
sest ei toimu ACK’imist ega NAC’imist. Etherneti võrgus liiguvad
Etherneti kaadrid, millesse pakitakse IP datagrammid või mõned
teised võrgukihi protokolli paketid. Aadressidena kasutatakse
48
bitiseid MAC aadresse.
Pakett koosneb
sünkroniseerimisjadast,
siht ja lähtekohta aadressitest, võrgukihi protokolli tüübist,
andmetest ja kontrollkoodist.
Kuna Ethernetis leiab
aset
broadcast’imine
(kõik võrgu sõlmed näevad saadetavaid datagramme), siis peab
realiseeritav olema multiple access protocol CSMA/CD.
CSMA/CD
Ethernetis:
Kokkupõrke korral edastatakse võrku 48 bit
mürasignaal,
et kõik oleksid kokkupõrkkest teadlikud ja katkestaksid saatmise.
Peale seda valivad kõik saatjad 0…512 bit edastusajast viite. Kui
tuleb uus kokkupõrge, valitakse juba suurem bit edastusajast viide
jne.
Ethernet 10
Base2.
Otstes terminaatorid, mis kõrvaldavad signaali peegeldumise võimaluse.
Signaal levib mõlemale poole. Edastuskiirus on 10 Mbps. Maksimaalne
siini pikkus 200m (tingitud kaadri pikkusest). Siiniks on
peenike coax
kaabel . Mitme segmendi kokkuühendamiseks kasutatakse
repiitereid.
10BaseT
– keerupaari võrk. Kasutatakse HUB-dega puu-süsteemi.
Edastuskiirus 10 või 100 Mbps. Max kaugus hostist hubini on 100m.
HUB võib välja lülitada saatja , mis edastab väljaspool talle
ettenähtud aega ja koguda LANi
admini jaoks
vaatlusandmeid .
Gbit
Ethernet –
Kasutab standardset Etherneti kaadri vormi. Võimaldab punkt-punkt
ühendust ja jagatud kanaleid. Kasutab HUB’e.
Poin -to-point
linkides täisdupleks kiirusega 1 Gbps. 5-4-3 nõue- 5 segmenti, 4
repeaterit, 3 hosti.
44. Jaoturid, sillad ja
kommutaatorid
HUB
– jaotur .
Backbone jaotur ühendab omavahel LAN
segmente , võimaldab pikendada
sõlmede vahelist
vahemaad (tugevdab signaali). // Kui väikeses osas
on kokkupõrge, siis saab andmeid saata see, kes peale jääb (kes
valib parema uuesti saatmise aja ja õnnestub), kui kokkupõrge aga
suuremates osades, siis antakse teade nendele osapooltele ning tuleb
teha
ootamine . // EHK Jaoturid(HUB) on füüsilise kihi
seadmed , mis
ühendavad erinevad kaabliotsad. On põhiomaduselt repiiter. Kordab
(saadab) oma hosti infot teistele. Ta saadab kogu info laiali kõigile
antud hubi küljes olevatele klientidele ning kes tunneb talle
määratud paketi ära, võtab ka selle vastu. Hub ei isoleeri
kokkupõrget. Hub ei suuda ühendada eri tüüpi Ethernette. Jaoturid
on ebaturvalised–segmendi piires on võimalik kõikidel kõiki
pakette lugeda,
omades vastavat tarkvara. ////////
BRIDGE
–
Sild on kanalikihi seade. Edastab Etherneti kaadri, uurides selle
päist ja saadab valikuliselt need oma sihtpunkti. Sillad suudavad
isoleerida kokkupõrkega alad, sest ta puhverdab kaadrid. Nad jagavad
võrgu väiksemateks tükkideks ning väiksemad segmendid on
väiksemate veavõimalustega. Samuti suudab sild ühendada eri tüüpi
Ethernette, sest ta on säilita-ja-saada-edasi seade. Sillad
säilitavad filltreerimistabeleid, mida nad on võimelised õppima,
neid ei pea reguleerima. Sildade funktsioonid: 1) Pakettide
filtreerimine –mingid kaadrid jätta
samasse võrku, mingid kaadrid
saata üle silla edasi. 2)Edastamine–sild peab suutma eristada,
millisesse porti realiseerida kaader. Ruuter tegutseb IP-aadressi
tasemel, sild aga MAC-aadressi tasemel. /// Silla näide: C saadab
frame’i D-le ja D vastab C-le frame’ga. > Sild saab frame’i
C-lt. Sild näeb, et C on liideses üks. > Kuna D-d tabelis ei ole
saadab sild frame’i teise ja kolmandasse liidesesse. > D saab
frame’i kätte > D koostab frame’i C-le saadab teele > sild
saab frame’i kätte, näeb, et D on liideses 2 ja lisab tabelisse >
Sild teab nüüd, et C on liideses 1 ja saadab frame’i ainult
liidesele 1.
SWITCH -
kommutaator, oma
olemuselt on see mitme pordiga sild. Kõik, mis
kehtib silla kohta, kehtib ka siin. Kanalikihi seade. Salvestab ja
edastab Etherneti frame’e. Loeb frame’i header-eid ja saadab
valikuliselt frame’e MACi sihtkoha aadressi järgi edasi. Kui frame
tuleb saata sedmendile, siis kasutab sild CSMA/CD-d, et
segmendile ligi pääseda. // Kommutaatorid on läbipaistvad. Hostid ei tea
nende olemasolust. Neid ei pea ka konfigureerima. kommutaatoritel on
oma tabelid. Nad õpivad milliste hoste’deni milliste liideste
kaudu saab. ///// EHK Switch suurendab läbilaskevõimet ka sellega,
et ta ei puhverda
tervet kaadrit, vaid loeb päisest sihtaadressi
ning hakkab kohe sinna infot edastama. Edastab kaadreid ilma tervet
kaadrit ära ootamata.
Kombineeritud erikiirusega ühendused
10/100/1000Mbps.
45. CSMA/CA
Erineb
CSMA/CD protokollist selle poolest, et püüab kollisioone ennetada.
Kasutab ühte persistence strateegiatest. Kui sõlmpunkt näeb, et
kanal on vaba, siis ootab ta mingi ajavahemiku ja ootab veel mingi
juhusliku ajavahemiku. Pärast seda paneb ta kaadri teele, taimeri
käima ja jääb ACK’i ootama. Kui ACK tuleb enne seda kui aega
saab otsa, siis on kaadriedastus olnud edukas. Kui, aga ACK’i ei
tule õigeaegselt, siis saatja teab, et midagi on valesti ja
suurendab oma juhuslikku ooteaega ning proovib siis mingi aja pärast
uuesti.
46. ATM
Arendamise
eesmärgiks
oli luua selline võrk, mis
transpordiks reaalaja helisid ja videosid ning samuti ka teksti faile, e-maile ja
pildifaile. Andmed
on kodeeritud väikestesse
53
baidistesse
pakettidesse, mida nim.
cell’ideks. ATM põhineb pakettedastuste ja virtuaalahela võrkude arhitektuuril
ning koosneb
kolmest
kihist:
1)
ATM adaptation layer
(AAL) – see kiht on ainult lõpp-kasutajate masinates ja on
analoogne transpordi
kihiga . Andmed liiguvad saatja poolelt kihtide
vahel ülevalt alla ja vastuvõtja poolel alt üles. Ülesanded:
vigade leidmine/parandamine, segmenteerimine. Loob AAL protocol data
unit’i (PDU) ja saadab alumisele kihile.
2)
ATM
layer – on ARMi
arhitektuuri südameks. Loob ATM cell’i, mis on sama tähtis ATM
võrgule nagu IP datagramm IP võrgule. Ülesandeks on transportida
ATM cell’id üle võrgu
luues selleks virtuaalkanali. Virtuaalkanal
pole midagi muud kui virtuaalahela kanal, mis on ühendusele
orineteeritud andmeedastusega, kahe punkti vahel.
3)
ATM physical layer –
tegutseb voltide ja bitide tasandil ehk siis füüsilise
andmeedastusega.
ATM-teenust
on nelja liiki: 1)
CBR (
Constant Bit
Rate ) - konstantse bitikiirusega, sarnane rendiliinile; 2)
VBR
(Variable Bit Rate) - muutuva bitikiirusega, sobib heli ja video
puhul; 3)
UBR
(Unspecified Bit Rate) - suvalise bitikiirusega, sobib e-posti ja
veebilehtede edastamiseks; 4)
ABR
(
Available Bit Rate) - garanteerib minimaalse bitikiiruse, kuid lubab
aeg-ajalt ka suuremaid kiirusi, kui võrk on vaba
47. Võrkude turvalisus ja
ohud
Võrkude
turvalisuse põhilised aspektid on:
1)
Konfidentsiaalsus
– ainult saatja ja vastuvõtja peaksid aru saama sõnumi sisust.
See on võimalik saavutada kui saatja krüpteerib sõnumi ja
vastuvõtja dekrüpteerib sõnumi.
2)
Autentimine
– saatja ja vastuvõtja peaksid saama ennast üksteisele tuvastada
nii, et nad saaksid olla kindlad kellega nad suhtlevad.
3)
Sõnumi terviklikkus –
sõnum peab saatjalt vastuvõtjani jõudma terviklikkuna nii, et see
ei oleks moondnud mingil kujul
4)
Saadavus ja juurepääsu kontroll
– võrgus olevad teenused peavad olema kõigile, kellele need on
mõeldud, kättesaadavad.
Teod, millega sissetungija saab
ebameeldivusi tekitada on:
1)
eavesdropping
– andmete kuulamine ja
salvestamine kanalis
2)
Andmete
muutmine, sisestamine , eemaldamine pakettides3)
Vastuvõtja
teesklemine4)
Enda
asendamine saatja või vastuvõtjaga võttes ühenduse üle5)
Teenuste
kasutamise keelamine 48. Krüptograafia,
algoritmid ja võtmed
Krüptograafia
võimaldab andmed niimoodi
ära
moondada, et
pealtkuulaja ei saa mingisugust informatsiooni nendest andmetest.
Vastuvõtja oskab moonutatud andmed viia oma
esialgsele
kujule.Algoritmid
on need, mille abil andmed ära moonutatakse.
Võtmed
võetakse algoritmi
sisendiks krüpteerimisel ja ka dekrüpteerimisel ning ilma nendeta
poleks võimalik neid protseduure korrektselt läbi viia.
Algoritm
võib olla mõlemal poolel sama, aga võti peab kindlasti erinema.
Hea algoritm on selline algoritm, mis sunnib kõiki võtmeid läbi
proovima. Halb algoritm võimaldab võtmete hulka vähendada
kuidagi.
Näide:
Oletame, et me tahame turvaliselt vastuvõtjani edastada
teksi m.
Selleks on meil võti KA
ning krüpteerimisalgoritm. Šifritekstiks on väärtus KA(m),
mis tähendab, et tekst m on krüpteeritud võtmega KA.
Kui vastuvõtja saab šifriteksti kätte, siis oleme me talle andnud
ka võtme KB ,
millega on võimalik dekrüpteerida tekst m. Nii et antud juhul
KB(KA(m))=m.
Sümmeetrilise võtme krüptograafia puhul on saatja ja vastuvõtja
võtmed samasugused ja salajased. Avaliku võtme krüptograafia puhul
kasutatakse kahte võtit, üks on teada kõigile ja teine on teada on
teada ainult vastuvõtjale.
49.
Sümmeetrilise võtme krüptograafia, DES
Saatja
ja vastuvõtja võtmed on ühesugused. 1)
Caesari
šiffer - täht
asendatakse krüptitud kirjas tähestikus k võrra edasi oleva tähega
(nt: k=5: a -> f, b -> g jne.). k väärtus on võtmeks. 25 eri
võtmevarianti. 2)
monoalpabetic cipher (ühetäheline
šiffer) - täht asendatakse suvalise teise tähega tähestikus,
asendus ei pea olema mingi kindla süsteemi järgi. Iga täht võib
krüptimisel
asendada ainult ühte tähte. 26! eri võtmevarianti (10
astmes 26 võimalikku tähepaari). 3)
polyaphabetic
cipher
(mitmetäheline šiffer) - kasutatakse mitut ühetähelist šifrit.
Kindlas kohas tekstis kasutatakse ühte neist šifritest, teises
kohas teist. Šifrid erinevad üksteisest võtme väärtuse
poolest.
DES –
kodeerib andmed 64 bitisteks blokkideks kasutades selleks 64-bitist
võtit. 8 biti 64’st tegelikult ei kasutata nii, et võti on 56
biti pikk. DES koosneb kahest permutatsiooni (järjestuse muutmise
sammust) ja need on esimeseks ja
viimaseks sammuks algormitmis.
Vahepeal teeb algoritm 16 identset operatsiooniringi. Iga operatsioon
võtab eelmise operatsiooni väljundi sisendiks.
50. Avaliku võtme
krüptograafia, RSA
Edaspidi:
eb(m) - krüptimise võti; db(m) - dekrüptimise võti. Saatja saab
vastuvõtja public encryption key (PEK). Saatja krüpteerib sõnumi m
PEK-iga ja teadaoleva krüpteerimisalgoritmiga (nt Caesari
krüpteering) (saadakse eb(m) ). Vastuvõtja saab saatjalt
krüpteeritud sõnumi eb(m) ning kasutab oma privaatset
dekrüpteerimise võtit (PDK) ning sama krüpteerimise algoritmi, et
dekrüpteerida sõnumit (s.t. db(eb(m)) = m). Leidub selliseid
krüpteerimise /dekrüpteerimise algoritme, et kui rakendada
krüpteerimiseks PEK-i sõnumile ning hiljem PDK dekrüpteerimiseks,
siis algne sõnum on enne krüptimist ja pärast dekrüptimist
identne: m = db(eb(m)). Kui rakendada alguses sõnumile PDK
krüptimiseks ja dekrüptimiseks PEK, siis saadakse sama tulemus:
eb(db(m)) = m.
RSA algoritm
(Rivest, Shamir, Adleman algoritm) - on saanud avaliku võtme
krüptograafia sünonüümiks. Kaks omavahel seotud komponenti RSA-l:
* avaliku ja privaatse võtme valik; * krüptimise ja dekrüptimise
algoritmi valik. Võtmete valikuks peab saaja:
1)
valima kaks
suurt algarvu p ja q (mida suurem arv, seda raskem koodi murda).
Soovituslikult võiksid p ja q olla 1024 biti(väga tähtsa info
jaoks) või 768 biti(vähem tähtsa info jaoks).
2) arvutama n =
pq ja z = (p-1)(q-1)
3) valima arvu e 4) Valima arvu d nii, et ed -1
jagub täpselt (jäägita) arvuga z. (ehk: e*d mod z = 1)
5) avalik võti
on eb(n,e), privaatvõti on db(n,d).
Saatjapoolne krüptimine ja
saajapoolne dekrüptimine:
1) Oletame, et saatja tahab saata
numbrit m 2) Vastuvõtjapoolne dekrüptimine: m = cd
mod n
51. Autentimine
Autentimine
on oma identiteedi tõestamine kellelegi teisele.
Autentimisprotokoll
(ap) kõigepealt identifitseerib suhtlejad teineteisele ja alles
peale identifitseerimist algab tegelik suhtlus.1
)
Autentimisprotokoll ap1.0
- lihtsaim autentimisprotokoll. Saatja (
Alice ) saadab vastuvõtjale
(Bob) sõnumi, et tema on saatja. Probleem - vastuvõtja ei saa
kindel olla, et saatja on tegelikult Alice, vaid võib olla keegi
muu, kes väidab end olevat Alice.
2)
Autentimisprotokoll
ap2.0 - Vastuvõtja
(Bob) võib kontrollida IP-datagrammist, kas Saatja aadress on
tegeliku Saatja (Alice) IP-aadress. IP-datagramm on võltsitav, seega
pole see info usaldusväärne.
3)
Autentimisprotokoll
ap3.0 - Saatja
(Alice) edastab vastuvõtjale (Bob) identifitseerimiseks oma
salasõna. Salasõnade edastamist saab "pealt kuulata",
seega võib keegi teine saada teada Saatja salasõna, ning hiljem
esineda ise õige Saatjana.
4)
Autentimisprotokoll
ap3.1 - salasõna
krüptitakse. Saatjal ja vastuvõtjal on ühine sümmeetriline võti.
Pole turvaline - keegi võib kuulata pealt salasõna krüptitud
kujul, ning saata seda hiljem
saajale , esinedes ise õige saatjana
(playback attack). Alati kasutatakse ühte ja sama salasõna.
5)
Autentimisprotokoll
ap4.0 - iga kord
kasutatakse erinevat salasõna. Kasutab sümmeetrilise võtme
krüptograafiat. Lepitakse kokku salasõnade jada või algoritm,
mille alusel salasõna leitakse. nonce - number, mida ap kasutab
ainult üks kord "eluaja" jooksul.
•Saatja(Alice) saadab sõnumi
"hi, I am Alice" saajale (Bob).
•Vastuvõtja valib
nonce-i R ja saadab R-i saatjale.
•Saatja krüptib R-i,
kasutades ühist sümmeetrilist krüptimisvõtit ning saadab
krüptitud R-i tagasi saajale.
•Vastuvõtja dekrüptib saadud
krüptitud R-i: kui see vastab algsele R-ile, siis on saatja
autenditud.
6)
Autentimisprotokoll
ap5.0 - kasutab
avatud võtme krüptograafiat sarnaselt ap4.0-ga.
•Saatja saadab
saajale sõnumi "hi, I am Alice".
•Vastuvõtja valib
nonce-i R ja saadab selle saatjale.
•Saatja kasutab oma
privaatvõtit, et krüptida nonce R ja saadab krüptitud R-i tagasi
saajale.
•Vastuvõtja kasutab saatja avalikku võtit,
dekrüpteerimaks saatja saadetud R-i. Kui dekrüptitud R vastab
algsele, on saatja autenditud.
Selle
ap töökindlus sõltub avalike võtmete jagamisest.
Probleem - Saatja ja saaja suhtlevad omavahel, kuid neid kuulab
vahepeal salaja pealt keegi kolmas. Kui vastuvõtja hakkab saatma
krüptitud andmeid saatjale, kasutades pealtkuulajalt saadud
krüptimisvõtit, siis pealtkuulaja saab sõnumi kätte plaintextina
ning saadab selle siis plaintextina edasi tegelikule adressaadile -
saatjale. Saatja ja saaja vahetavad omavahel andmeid, teadmata, et
neid kuulatakse pealt (man-in-the-
middle attack).
52. Digitaalallkiri
Digitaalallkiri
on krüptograafia tehnoloogial põhinev meetod, mis võimaldab
tuvastada dokumendi omaniku või looja.
Toimib
see järgnevalt:1)
Saatja krüptib sõnumi m oma privaatvõtmega db,
saades tulemuseks
sõnumi m ja digitaalallkirja db(m). Saatja saadab sõnumi m ja
digitaalallkirja db(m) vastuvõtjale.
2) Vastuvõtja kasutab
saatja avalikku võtit, et arvutada välja eb(db(m)) = m, mis on
võrdne algse sõnumiga m.
Kes iganes digiallkirjastas sõnumi,
kasutas saatja privaatvõtit. Seda saab kasutada ainult saatja
isiklikult. Seega antud sõnumi saatis saatja ja mitte keegi kolmas.
Kuid
digitaalne allkirjastamine on tegelikult üsna kallis ja kui
andmed võrgusõlmede/ruuterite vahel liiguvad, siis ei ole vahest
olulinegi, kas andmed on krüpteeritud või mitte. Sellepärast
kasutatakse sageli sõnumi kokkuvõtteid (message digest), mis pole
midagi muud kui
hash funktsioonist läbi
lastud andmed, mis teevad
esialgsed andmed lühemaks. Palju effektiivsem on kui allkirjastada
sõnumi kokkuvõtted, mitte kõik andmed.
53. Sertifitseerimine
Sümmeetrilise
võtme krüptograafia sümmeetrilise võtme ning avaliku võtme
krüptograafia avaliku võtme saamiseks kasutatakse
usaldusväärset
vahendajat (trusted
intermediary). Sümmeetrilise võtme krüptograafia puhul nim.
vahendajat
key
distribution center
(KDC). Avaliku võtme krüptograafia puhul nim. vahendajat
certification authority (CA).
KDC – server, mis teab
oma kasutajate sümmeetrilisi võtmeid
•Saatja
ja vastuvõtja teavad ainult oma enda salavõtit.
•Saatja (A)
saadab KDC-le oma salavõtmega krüptitud teate KA-KDC,
et ta tahab suhelda mingisuguse sõnumi vastuvõtjaga (B).
•KDC,
teades saatja salavõtit, dekrüptib KA-KDC
saadetud teate ning genereerib suvalise numbri R1 - one-time session
key (ühine salavõti, mida saatja ja saaja kasutavad omavahelises
suhtluses). Antud R1-e kasutatakse ainult antud sessiooni ajal.
•KDC
krüptib A ja R1 vastuvõtja võtmega KB-KDC(A,R1)
ning valmistab sõnumi KA-KDC(R1,
KB-KDC(A,R1)),
mille ta saadab saatjale.
•Saatja saab KDC-lt sõnumi, dekrüptib
selle oma salavõtmega, saab teada R1 väärtuse ning saadab (A, R1)
krüptitud paari KB-KDC(A,R1)
vastuvõtjale.
•Vastuvõtja dekrüptib oma võtmega paari (A,
R1) ning saab teada R1 väärtuse.
Avaliku võtme
sertifitseerimine – Avaliku võtme krüptograafia on kasutuskõlblik
ainult siis kui vastuvõtja saab kindel olla, et tal on saatja avalik
võti, sest vastasel juhul võib tegu olla pettusega. Isikute ja
avalike võtmete kokku viimisega tegeleb certification authority.
•CA
verifitseerib, et isik või
subjekt (olgu selleks, siis kasutaja,
brauser, ruuter vms) on, kes ta väidab end olevat.
•Kui CA
tuvastab identiteedi, siis loob ta ka sertifikaadi, mis seob isiku
avaliku võtme just identifitseerituga.
Sertifikaat koosneb avalikust
võtmest ja globaalselt unikaalsest avaliku võtme omaniku
identifitseerimisinformatsioonist (nt inimese nimi või masina
IP-aadress). CA seejärel digiallkirjastab sertifikaadi.
Vastuvõtja
saab saatjalt tema sertifikaadi (veebilehelt, meilist või
sertifikaadiserverist). Saaja kasutab CA poolt antud avalikku võtit
kontrollimaks saatja saadetud, CA-poolt
allkirjastatud sertifikaati.
54. Võtmete
jaotussüsteemid ja protokollid
Jaotussüsteemid
(vt eelmist)
Protokollid:1)
Kerberos
– on analoogne KDC’le, kuid selle vahega, et autentida
kasutajaid, kes sisenevad serverisse. Toimib järgnevalt:
*Saatja
kontakteerub
Kerberose serveriga, sest ta tahab siseneda serverisse.
Siis annab saatja oma nime ja passwordi
local hostile, kes
kontakeerub ise Kerberosega, et selgitada välja salajane võti
saatja ja Kerborose vaheliseks suhtluseks.
* Kerberos autendib
saatja ja genereerib sessiooni võtme ja „pileti“, millega pääseb
serveri teenustele ligi (pilet sisaldab saatja kohta vajalikku infot,
mis läheb serverile) ning saadab selle saatjale.
*Saatja saadab
pileti ja sessiooni võtme serverisse, server dekrüptib ja saadab
Alice’le teate, et pääse on olemas.
2)
Needham-Schroeder
protocol3)
Otway- Rees protocol55. Tulemüürid
Tulemüür
on kombinatsioon riist - ja tarkvarast, mis isoleerib organisatsiooni
sisevõrku Internetist, lubades mõned paketid läbi (internetist -
võrku ja vastupidi) ning blokeerides kõik teised.
Tulemüür laseb võrgu administraatoril kontrollida andmeliiklust
sise- ja välisvõrgu vahel. Ühes organisatsioonis võib olla ka
mitu tulemüüri erinevatel tasanditel, tavaliselt on üks tulemüür
alati välisvõrgu ühenduse juures, et oleks kergem tervet liiklust
korraga hallata.
Kaks
tüüpi tulemüüre:
1)
Packet-filtering firewall
- pakettfiltriga tulemüür (opereerib võrgukihil). Tavaliselt
toimub pakettfiltreerimine välise ISP-i ja firma võrgu vahel olevas
ruuteris. Kõigepealt vaatab pakettfilter läbi datagrammi päise
(header) ning siis kasutab võrgu admini poolt seatud reegleid
paketile - kas lasta datagramm läbi või mitte. Tavalisemad
filtreerimise alused - a) Sihtkoha või vastuvõtja IP aadress
(Filtrina võib kasutada ka
kombinatsiooni aadressist ja pordi
numbrist (nt tulemüür võib läbi lasta kõik
Telneti
datagrammid (port 23), välja arvatud need, mis lähevad admini poolt
määratud IP-aadressidele.) ; b) TCP või UDP saatja- või sihtport
(Nd: blokeerida kõik UDP ja Telneti ühendused (väliskasutajad ei
saa logida sisse organisatsiooni võrku, sisekasutajad ei saa logida
välistesse võrkudesse); c)
ICMP sõnumitüüp; d) Ühenduse
initsialiseerimise datagrammid, mis kasutavad TCP SYN või ACK
bitte (
filter - kas TCP ACK bit on seatud või mitte. Võimaldab
sisekasutajatel luua ühendust välisvõrguga, kuid mitte
väliskasutajatel sisevõrguga). Filtrite järjekord on oluline.
2) Application Gateway (edaspidi
AG). In order to have a finer-level security,
firewalls must combine
packet
filters with AG-s. AG-s
look beyound the IP / TCP / UDP
headers and make policy
decisions based on application data. AG is an
application-specific server
through which all application data
(inbound and outbound) must
pass . Nd: tulemüür, mis lubab mõnedel
sisekasutajatel kasutada Telneti ühendse võtmiseks välisvõrguga,
kuid keelab kõikide teiste sisekasutajate välisvõrgu
kasutust ning
välisvõrgu kasutajatel sisevõrgu kasutust. Kasutatakse
kombineeritult pakettfiltrit (ruuteris) ja Telneti AG-d. Ruuteri
filter blokeerib kõik Telneti ühendused, v.a. need, mille
algatajaks on lubatud aadressid AG-s. See filter suunab kõik
väljastpoolt tuleva Telneti liikluse läbi AG. Kasutaja tahab
algatada Telneti seanssi. AG-s
jooksev application laseb kasutajal
sisestada kasutajatunnuse ja parooli ning peale sisestamist
kontrollib, kas antud kasutajal on õigus algatada telneti sessiooni.
kui ei ole õigust, siis sisekasutaja telneti ühendus katkestatakse
AG poolt. Kui on õigus, siis 1) AG küsib
kasutajalt sihtkoha nime,
2) AG seab üles telneti sessiooni sihtkoha ja gateway vahel, 3)
vahendab sisekasutaja ja sihtkoha vahelist liiklust. Seega on AG ka
Telneti server ja Telneti klient. Igale applicationile on vaja oma
AG-d (
Telnet , HTTP, FTP, e-mail jne).
56. Transpordikihi
turvalisus, SSL
SSL
- Secure Sockets Layer - protokoll, mis on loodud selleks, et
võimaldada autentimist kliendi ja serveri vahel ning ka krüpteeritud
andmeliiklust.
Protokoll tomib
järgnevalt:
1)
Handshake
2)
Lepitakse
kokku krüpteerimise algoritm ja võtmed ning toimub ka
autentimine3)
Andmete
vahetus (krüpteeritud kujul, kasutades neid võtmeid ja algoritme, milledes kokku lepiti)SSL
on üks põhilisi
turvalise andmevahetuse transpordikihi protokolle.
SSLi või mõne muu protokolli kasutus on väga oluline E-kaubanduse
juures ning leiab seal ka kõige rohkem kasutust. Peale selle
kasutatakse ka näiteks
IMAP meilide juures. SSL-i võib vaadata kui
kihti application layeri ja transport layeri vahel. Saatja poolel
saab SSL andmed (nt HTTP või IMAP sõnumi rakenduselt) kätte,
krüptib andmed ja saadab krüptitud andmed TCP socketisse.
Vastuvõtja poolel loeb SSL andmed TCP socketist, dekrüptib andmed
ja saadab andmed rakendusele.
SSL-i
võimalused:1)
SSL server
authentication.
võimaldab kasutajal veenduda serveri identiteedis. SSL-i valmidusega
brauseril on nimekiri usaldusväärsetest
sertifitseerimisinstitutsioonidest (CA-dest) koos nende CA-de avalike
võtmetega. Kui brauser tahab suhelda SSL-i
toega veebiserveriga,
siis saab brauser sertifikaadi serveri avaliku võtmega. Sertifikaadi
annab välja (allkirjastab digitaalselt) CA, mis on brauseri
nimekirjas. See võimalus laseb brauseril identifitseerida serveri
enne, kui kasutaja sisestab oma krediitkaardi andmed.
2)
SSL client authentication.
Laseb serveril veenduda kasutaja identiteedis. Analoogne serveri
identiteedi autentimisega. Vajalik nt juhul, kui serveriks on panga
server, mis saadab konfidentsiaalset informatsiooni kliendile ja
tahab olla kindel kliendi
isikus .
3)
An
Encrypted SSL session
- kogu info, mida
vahetatakse serveri ja brauseri vahel, on krüptitud
saatva tarkvara poolt ja dekrüptitud vastuvõtja tarkvara poolt.
SSL-toega serveri protokoll URL-is on https tavalise http asemel.
Brauser ja server läbivad handshake-faasi ( a) Bob satub Alice-i
SSL-toega lehele; b) Alice saadab Bob-ile oma sertifikaadi, c) Bob
saab kätte Alice-i avaliku võtme, d) Bob genereerib suvalise
sümmeetrilise võtme ja krüptib selle, kasutades Alice-i avalikku
võtit, saadab Alice-le; e) Alice dekrüptib sümmeetrilise võtme)
ning suhtlus võib alata, kasutades edaspidi alguses genereeritud
sümmeetrilise võtmega krüptitud andmeid.
57. E-kaubandus, SET
SET
- Turvaline
elektrooniline ülekanne.
Loodi turvalisteks ja terviklikeks rahaülekanneteks internetis. SSLi
puhul on puudu mõned aspektid puudu, mis on olulised turvalisteks
rahaülekanneteks. SET tagab turvalisusele kliendile, müüjale ja
müüjat esindavale pangale, kõigil peavad olema sertifikaadid. SET
täpsustab sertifikaatide õigusliku tähenduse - seob endas reegleid
usaldusväärsete tehingute teostamiseks. Sisaldab järgmisi
komponente:
1)
Kaardihoidja
rakendus
(digitaalne rahakott), mis on siis ostja oma ja sisaldab endas
krediitkaardi informatsiooni ja digitaalset allkirja, mis tagab
selle, et ostja on see, kes ta väidab end olevat.
2)
Müüja
server3)
Makselüüs
(payment gateway) kuulub tavaliselt pangale, mis viib tavaliselt läbi
tuvastamised jms
4)
Sertifikaatide
hoidja, kes
vastutab sertifikaatide eest
58. Võrgukihi turvalisus,
Ipsec
IPSec
(Internet Protocol
Security) - internetiprotokolli andmeturve - Firma Cisco Systems
juhtimisel arendatav andmeturbe standard võrgu- või
paketitöötluskihi tasemel. Varem sisestati andmeturve sidemudeli
rakenduskihti. IPSec on eriti kasulik virtuaalsete privaatvõrkude
ehitamisel ja kasutajatele turvalise kaugpöörduse võimaldamisel
virtuaalsetesse privaatvõrkudesse. IPSec’i suur eelis on selles,
et andmeturbe tagamiseks pole vaja teha mingeid muudatusi
individuaalkasutajate arvutites. Cisco varustab kõiki oma
võrgumarsruutereid IPSec’i toega. IPSec pakub kaht turbeteenuse
valikut: andmete saatja autentimist võimaldavat autentimispäist
(AH) ning sõnumi kapselturvet (ESP), mis toetab niihästi saatja
autentimist kui ka andmete krüpteerimist.
Kummagi teenusega seotud
spetsiifiline informatsioon sisestatakse sidekanalis edastatavasse
paketti eraldi päisesse, mis järgneb IP paketipäisele. On võimalik
valida mitme erineva võtmeprotokolli vahel, näiteks võib kasutada
ISAKMP/Oakley protokolli. IPSec sobib kasutamiseks nii Internetis,
ekstranetis, intranetis kui kaugpöördusega privaatvõrkudes
EHK Nagu just öeldud,
võrgukihi turvalisus e IPSec koosneb eraldi protokollidest.
Esimene
- AH pakub allika autentimist, paketi puutumatust, kuid mitte selle
salastatust. AH päis pannakse Ippäise ja IP andmevälja vahele. AH
päis sisaldab : 1) ühenduse ID-d . 2) allkirjastatud sõnumi
kokkuvõtet, mis arvutatakse originaal IP datagrammist; allika
autentimise infi;sõnumi puutumatust. 3) järgmise päise tüüpi,
mis määratleb andmete tüübi: (TCP, UDP, ICMP,jne).
Teine
protokoll, mida
IPsec sisaldab on ESP, mis tagab salastatuse, saatja autentimise ja
andmete puutumatuse. ESP protokolli datagramm on järgmine: [IP
päis][ESP päis*][TCP/UDP segment**][ESP
trailer **][ESP autent.].
*-autenditud. **- autenditud ja krüpteeritud. ESP päis sisaldab
samu välju mis AH päis.
59. Võrguhaldus, SNMP
Võrguhaldus
hõlmab tarkvara,
riistvara ja inimelementide paika panemist, integreerimist, koostööd,
et jälgida, testida, seadistada, analüüsida, hinnata ja
kontrollida võrku ja vahendeid, et need vastaksid soorituste ja
teeninduskvaliteedi nõuetele ning oleksid mõistliku hinnaga.
Võrguhalduse osad:
haldav isik, võrku haldav protokoll, hallatavad seadmed ja objektid,
mille info kongutakse infobaasi.
Standardid:
CMIP (Common
Management Information Protocol) ja SNMP (Simple Network
Management Protocol). ==> SNMP - lihtne võrguhalduse protokoll -
Interneti protokollistandard STD 15, RFC 1157 sõlmede
haldamiseks IP
võrgus. SNMP ei piirdu ainult TCP/IP võrguga, seda saab kasutada ka
igasuguste võrguga ühenduses olevate seadmete nagu arvutid,
marsruuterid, jaoturid jms halduseks.
SNMP koosneb neljast osast:
1) management infobaas (kogutakse võrgu haldamise infot); 2)
haldamise informatsiooni struktuur (management’i infobaasi
objektide defineerimise keel); 3) SNMP protokoll (request/response
mode; trap mode), millega vahetatakse kogutud haldamisinfot; 4)
turvalisus ja
administratsioon (krüpteerimine, autentimine..).
Kogu info on hierarhiliselt
hajutatud . Informatsiooni saamiseks ja edastamiseks liiguvad SNMP
paketid võrgukese ja selle pealiku vahel. Turvalisuse tagamiseks
kasutatakse SNMP sõnumite krüpteerimist DES-iga ning autentimiseks
kaasut. Salajast võtit ning räsifunktsiooni.
60. Sünkroniseerimine,
asünkroon- ja sünkroonedastus
Asünkroonülekanne
- Andmete edastusviis, kus edastatakse üks märk korraga ja
ajavahemik kahe märgi
edastamise vahel on ebaühtlane. Algus
bitt ja
lõpubitt annavad arvutile teada, millal märgi edastus algab ja
millal lõpeb. Nt: A "0100 0001" saab "1 0100 0001 0"
, lisa üks (või null, olenevalt
paarsus bitil). Seda
ülekandemeetodit kasutatakse kui andmeid saadetakse katkendlikult
mitte ühe jadana.
Sünkroonedastuse
korral edastatakse mitte üksikuid märke, vaid terveid stringe. See
on kiirem, aga ka kallim tehnoloogia. Lisaks tuleb tegeleda ka
signaalide sünkroniseerimisega, et edastus
toimuks samal ajal, kui
kasutatakse sünkroonset ühendust. St. mõlemad osapooled peavad
käima samas taktis, sama kella järgi. ///// EHK Kahe sõlme vahel
saadetakse andmed pideva jadana. Tegu on küll
kiirema andmeedastusega (pole start ja stop bitte), aga võib esineda rohkem
vigu, sest
kellad võivad muutuda erinevaks. Selle probleemi
lahendaks kellade uuesti sünkroniseerimine.
Kõik kommentaarid