ARVUTIVÕRKUDE EKSAMIKÜSIUSED 2014 *Erki*
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
1)Edastussüsteemi kasulikkus – seisneb selles, et teha transport saatja ja vastuvõtja
vahel nii efektiivseks kui võimalik. (Mõistlik kasutamine/koormamine)
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. (nt tuleb digitaalsignaal enne “traati” saatmist analoogsignaaliks muuta)
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
1
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.
Tüüpilisemaks ja enam kaustatavamaks variandiks on
kolmekihiline arhitektuur.
Kliendile kõige lähemal on tema arvutis olev tööjaama
tarkvara ehk esitusloogika
kiht. Esitusloogika kiht suhtleb
rakenduse kihiga .
Äriloogika ülesandeks on juhtida funktsionaalsust, töödeldes selleks alumisest
kihist saadud andmeid vastavalt
kasutajalt ülemisest kihist tulnud päringutele. See kiht
paikneb tavaliselt kohtvõrgu
serveril .
Andmekiht on kolmas kiht. See sisaldab andmebaasi ning selle
haldamiseks vajalikku
2
tarkvara ning võib paikneda mõnes suurarvutis. Kihi ülesanne on muuhulgas hoida
andmeid sõltumatutena rakendusest ja esitusloogikast.
Posti edastamisel on mitmed etapid. Kui keegi saadab kirja, siis vahepealsetel etappidel ei teata midagi selle sisust.
Saatja peab saadetise teataval kombel adresseerima, et see oleks kohale toimetatav sihtpunkti. Näide:
saatja->postkontor->transporivahendid->postkontor(võib mitmeid kordi korduda, kuna kiri võib mitmest postkontorist
läbi käia)->saaja; vahepealsetes etappides ei teata kirja sisust midagi ja kirja saab kätte see, kellele see adresseeritud
on.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 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.
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.
(
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.)
5. OSI mudel
OSI-baasmudel annab loogilise struktuuri konkreetsetele andmesidevõrkude standarditele.
OSI-
baasmudeli kohaselt jagatakse sõnumi edastamiseks vajaminevad funktsioonid 7 kihi vahel.
Iga kiht suhtleb otseselt vaid naaberkihtidega ja madalamate kihtide kaudu ühenduspartneri
sama kihiga. Iga kiht täidab ühte osa tervikust.
OSI-projekt lõpetati 1996. aastal. Praegu kasutatakse seda mudelit õppevahendina
andmesidevõrkude tööpõhimõtete tundma õppimiseks.
3
OSI mudel koosneb 7-st kihist:
1)Rakenduskiht – töötab vahendajana tarkvararakenduste ja võrguteenuste vahel. Sellel
töötavad protokollid nagu HTTP, FTP,
Telnet ,
SMTP ,
POP3 , IMAP4,
SNMP .
Põhiülesandeks on juhtida üldist võrgu ligipääsu, andmevoogusid ja vigade parandamist.
2)Esitluskiht – Määrab kindlaks andmevahetuse
formaadi . Esitatakse andmed universaalsetes
andmepakettides. Vastuvõtja poolel konverteeritakse andmed universaalsetest
andmepakettidest formaati, mida vastuvõtva tööjaama rakenduskiht saab töödelda, ehk tegeleb
võrgust
saabuvate andmete teisendamisega üldkujult konkreetse rakenduse jaoks sobivale
kujule ja vastupidi.
3)Seansikiht – Seansikiht võimaldab eri hostide kasutajatel luua
omavahelise sideseansi.
Seansid peavad olema kas täisdupleks või pooldupleks režiimis.
Seansikiht juhib ja sünkroniseerib andmeülekannet ning kaitseb ülekande katkestuste eest.
4)Transpordikiht –
Teostab andmepakettide transporti täpses jadas ilma vigade ja kadudeta. Teeb
rakenduselt saadud andmed segmentideks ja vastupidi ning määrab ja kontrollib ka nende
järjekorda. Lisaks on see kiht võimeline
liiklust optimeerima, ühendades eelnevaid mittetäielikke
andmepakette. Selles kihis töötavad transpordiprotokollid nagu TCP, UDP ja
domeeninimesüsteemi teenus.
5)Võrgukiht – Võrgukihi ülesandeks on pakettide marsruutimine ja
edastamine , samuti
adresseerimine, võrkudevaheliste ühenduste loomine, veatöötlus, ummistuste reguleerimine ja
pakettide järjestamine. Levinuim võrgukihi protokoll on IP protokoll
6)Kanalikiht – vigade parandamine, sünkroniseerimine. Teeb saabunud andmed
datagrammideks ja väljaminevad andmed kaadriteks. Saadab sõnumeid võrgukihilt füüsilisele
kihile
7)Füüsiline kiht – andmete füüsiline
edastus punktist punkti. Pakub kaadrite baitide ja bittide
krüpteerimist elektri- või valgussignaalideks ning nende edastamist võrgumeediumile.
Sellel kihil töötavad nt võrgukaardid.
6. TCP/IP mudel
TCP/IP (Transmission
Control Protocol /
Internet Protocol) on kirjelduslik
raamistik arvutivõrgu protokolli jaoks, mis valmistati 1970ndatel Ameerika Ühendriikide
Kaitseministeeriumi poolt.
TCP/IP mudel koosneb 5-st kihist:
1)Füüsiline kiht – andmete füüsiline edastamine punktist punkti. See on kõige
alumine Interneti protokolli kiht, kuna TCP/IP on riistvarast sõltumatu. Selles kihis on
võimalik ka valida pakette, mida saab üle virtuaalse
privaatse võrgu saata.
2)Võrgupöörduskiht – Füüsiline adresseerimine, voo kontroll, vigade kontroll,
kaadriteks jagamine
4
3)Võrgukiht – marsruutimine, pakettide edastamine sihtpunkti. See on põhiülesanne,
kus võetakse allikast andmete pakette ja
saadetakse need järgmisse võrgustikku, mis
on lähemal lõpp-punktile.
4)Transpordikiht –Transpordi kihi kohustused sisaldavad ots-otsaga sõnumite
ülekande võimet, sõltumata aluseks
olevast võrgust. Kaasnevad veel ka veakontroll,
segmenteerimine , ummikukontroll, ülekoormuse kontroll ja rakenduse
adresseerimine. Transpordi kihti võib võtta kui transpordi mehanismi (näiteks: auto,
mille kohustus on oma
pagas turvaliselt sihtpunkti toimetada.) Transpordi kiht pakub
seda teenust, ühendades rakendusi läbi teenuse pordi. Kuna IP pakub ainult
parima saavutuse toimetust, on transpordi kiht esimene TCP/IP kiht, mis pakub
usaldusväärsust.
5)Rakenduskiht – pakub rakendusi kasutajale nagu näiteks e-maili
kirjavahetus ,
internetivõrku
sisenemine , failide edastamine jne. Rakenduskiht
viitab kõrgema
taseme protokollile, mida kasutavad enamus rakendusi võrguühenduseks. Andmed,
mis on kodeeritud vastavalt rakenduskihile kapseldatakse ühte või enamasse
transpordi kihi protokolli, mis omakorda kasutab madalama kihi protokolle, et
tegelikult andmeid edastada. Rakenduskihi protokollid kohtlevad tavaliselt transpordi
kihti kui “musta kasti,” mis tagavad stabiilse võrguühenduse mille abil infot jagada.
Transpordi ja madalama tasandi kihid on suures osas ükskõiksed
spetsiifiliste rakenduskihi protokollide suhtes.
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). Selliseid ühendusi nimetatakse virtuaalahelatega võrkudeks. TCP
protokoll on just selline transporditeenus ning tagab usaldusväärsuse
kviteerimismeetodi abil. Protokoll tegeleb voo ja ülekoormuse
kontrolliga . Selline
teenus töötab võrgukihi tasemel teistmoodi kui transpordikii tasemel. TCP-d
kasutavad HTTP (web), FTP(File
Transfer ), Telnet(Remote
login ), SMTP(
email ).
Ühenduseta andmeedastuse puhul saame rääkida näiteks UDP-st, mis ei taga
usaldusväärsust ning ei teosta voo ega ülekoormuse kontrolli. Selliseid võrke
nimetatakse datagrammvõrkudeks. UDP-d kasutavad Streaming media, DNS, Internet
telephony. UDP võimaldab otspunktide (defineeritud IP aadressi järgi) vahele olekuta
ühendusi luua ehk UDPl ei ole erinevalt TCPst selgelt eristatavaid
olekuid "suletud",
"ühendamisel", "ühendatud". Kuna ühenduse olekut ei
kontrollita . peab UDP
5
kasutama best-effort põhimõtet ehk koostatud
pakett saadetakse välja ja loodetakse,
et see jõuab kohale. Kui pakett mõnel põhjusel kohale ei jõua, ei ole
saatjal võimalik
seda protokolli tasemel tuvastada ja seetõttu ei toimu ka automaatset
paketi uuestisaatmist.
UDP ei kontrolli paketi kohale jõudmist. Samuti ei nummerda UDP saadetud pakette,
mis tähendab, et
paketid võivad sihtpunkti jõuda suvalises järjekorras ja neid ei ole
võimalik hiljem protokolli tasemel järjestada. Samuti ei ole võimalik tuvastada
olukorda, kui mingist paketist jõuab sihtpunkti mitu
koopiat . UDP ei tuvasta ka
ummikuid ega piira sellest tulenevalt saadetavate andmete mahtu (erinevalt TCPst).
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. Selle
puhul toimub eri andmejadade edastamine näiliselt samaaegselt, kuid tegelikult
lühikeste intervallidega
vaheldumisi .
6
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 ) – CDMA
kasutab spektri
hajutamise tehnoloogiat koos spetsiaalse kodeerimisskeemiga, mis
omistab igale saatjale kindla koodi, võimaldamaks mitmel kasutajal samal füüsilisel
kanalil multipleksida. 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öötlemise
viide – iga pakett võetakse vastu ning analüüsitakse päise järgi,
kuhu see edasi saata, see võtab aega.
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. Vaja on oodata, kuni protsessor vabaneb paketi
töötlemiseks.
Paketi edastamine 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.
Igas võrgus on
puhver , kuhu salvestatakse kõik töötlemist
ootavad paketid. Kui puhver on täis,
hakatakse sissetulevaid pakette ignoreerima.
7
11. Arvutivõrkude ja Interneti ajalugu
Tänase Interneti kujundamist alustati 1960. aastatel USA kaitseministeeriumi katselisest
arvutivõrgust
ARPANET . 1969. aastal toimusid esimesed õnnestunud katsed
pakettedastusprotokolliga - Esimene ARPAneti võrgusõlm.
1970 - ALOHAnet satelliitvõrk Hawaiil.
1972 - Esimene e-maili programm.
1974. töötasid Vint
Cerf ja Robert
Kahn välja
esialgse interneti arhitektuuri.
Aastal 1983 käivitati esimene TCP/IP arvutivõrk 200 hostarvutiga ja DNS.
1993 formuleeriti HTML-i esimene versioon. Teaberuum, kus seda kasutama hakati, sai veebi
(World
Wide Web, WWW) nime. Samal ajal töötati välja esimene mugava kasutajaliidesega
brauser Mosaic ning Interneti ja veebi laialdasem levik võis
alata .
2012. aasta 30. juuni seisuga oli maailmas üle 2,4 miljardi internetikasutaja.
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/
ribalaius – mõned rakendused vajavad mingisugust minimaalset
andmeedastuskiirust/ribalaiust, et ülekanne oleks efektiivne. (nt internetitelefon, mängud) Kui
selline ülekandekiirus ei ole tagatud, siis
rakendus peab kodeerima/dekodeerima teisel kiirusel või
siis lihtsalt alla andma. Elastsed rakendused (nt e-mail, failiedastus) kasutuvad ära nii palju
andmeedastuskiirusest kui võimalik, ükskõik kui väike see ka on.
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.
8
13. HTTP
HyperText Transfer Protocol on rakenduskihi protokoll. Serveri ja kliendi
arvutid suhtlevad üksteisega programmide abil, 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“.
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.
9
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 ja
MIME 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
10
ü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, 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
11
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
sisuliselt 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.
17. Töökindel andmeedastus
Süsteem peab olema võimeline töötama ka siis, kui osa pakette läheb kaotsi või
andmete ülskandmisel tekivad bitivead. Mitteusaldatava kanali karakteristikud
määravad usaldusväärsuse protokolli (rdt) keerukuse.
12
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).
Rdt 1.0 – töökindel kanal, see on suhteliselt
triviaalne , sest me eeldame, et alumise
kihi andmeedastus on töökindel,
bitte ei lähe kaduma, pakette ei lähe kaduma.
Saatjal ja vastuvõtjal on erinevad FSM-d. Saatja saadab paketi kanalisse ja vastuvõtja
saab selle kätte.
Rdt 2.0 – realistlikum, sest alumise kihi andmeedastamisel ja vastuvõtmisel võib
andmeid kaotsi minna. Kanal, kus esinevad bitivead, võivad esineda muutused
bittides. UDP protokolli puhul kasutatakse kontrollsummat, et kindlaks teha
moondunud bitte. Vastuvõtja peab saatma
kinnituse , kui pakett on vigadeta kohale
tulnud (ACK) või kui pakett on
vigane (
NACK ). Kui ACK-i ei tulnud või tuli NACK, siis
tueb pakett uuesti saata. Kui moondub kviitung, on oht ühte ja sama paketti mitu
korda saata. Selle jaoks nummerdatakse paketid.
Rdt 2.2 – Kasutatakse ainult ACK kviitungeid, et NACK-e ei saadeta. Iga kviitungiga
pannakse kaasa paketi number, mille kohta kviitung käib. Kui paketti kätte ei saadud,
saadetakse välja teistkordne ACK juba varem saadetud paketi kohta. See on
samaväärne rdt 2.0 NACK kviitungile. Saatja saab sellisel juhul teada, et üks pakett on
moondunud ja seda tueb uuesti saata.
Rdt 3.0 – Kanal, kus esinevad bitivead ja paketikadu. Kuna siin võivad kaduma minna
nii andmed, kui ka paketi kviitungid, võetakse kasutusele
taimer . Kui selle aja jooksul
ei ole kinnitust tulnud, tuleb paketti
korrata . Ka siin tuleb iga kviitungiga kaasa panna
paketi järjekorra number, mis välistab duplikaadid. Rdt 3.0 raiskab ressurssi, sest
ooteajad on liiga pikad.
18. Go-
back -n
Kui paketti saata ei õnnestunud, tuleb tagasi minna n paketi võrra ja korratakse kõike,
mis juba saadetud on. Paketi päises on ettenähtud väli idendifikaatori jaoks. Kui väli
saab täis, alustatakse otsast peale.
13
Aken – mitu paketti võib saata enne esimese kinnituse saabumist. Aken võib olla
muutuva suurusega, mis sõltub saatja, võrgu ja vastuvõtja parameetritest.
Voo juhtimine – määratakse kindlaks, kui palju saatja võib saata ja kui palju vastuvõtja
suudab vastu võtta.
Vastuvõtja jälgib saabunud pakettide järjekorranumbreid. Kui saabunud paketi jrk
number näitab, et eelnev pakett pole kohel jõudnud, ei saada vastuvõtja ACK teadet
ja saabunud paketti ignoreeritakse.
Akent nihutatakse ainult siis, kui saabub ACK
teade ühele
aknas olevale saadetud paketile, tõendades ka, et eelnevad paketid on
kohale jõudnud. Kui teatud aja jooksul ei toimu akna nihutamist, st akna esimestele
pakettidele pole kinnitust tulnud, saadetakse kõik paketid uuesti. Paketid peavad
olema saabunud õiges jrk-s, vastasel juhul toimub pakettide uuesti
saatmine alates
paketist, kus viga ilmnes tänu akna kellale.
Go-back-n (GBN) protokoll lubab saatjal pakette saata ilma, et ta peaks ACK-e
ootama. Küll, aga võib ilma ACK-ita pakette saatjal olla mitte rohkem kui on akna suurus.
Tähtis on ära märkida, et saatja võtab ülemiselt kihilt vastu andmeid ainult siis kui aken ei ole täis.
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 . 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
14
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 pannakse 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.
15
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.
16
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 timer (?)
7)TIME WAIT timer (?)
23. TCP voo juhtimine
Vastuvõtja informeerib saatjat, palju tal puhvris vaba ruumi on. Saatja püüab hoida
kviteerimata andmehulka väiksemana sellest vabast ruumist. Oluline on optimaalne
timeout. Kui see on liiga lühike, koormatakse võrku, kui see on liiga pikk, muutub viide
suureks. Iga paketi saatmisel võetakse aega: saatmine +
kinnitus . Tehakse statistikat,
arvtatakse kaalutud keskmine. Usaldatavuse tagamiseks lisatakse sellele mingi
konstant.
(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.)
17
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
18
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
Arvutivõrgud, kus me näeme võrgukihi tasemel ühendusele oritenteeritud võrke
(handshakinguga)
nimetatakse virtuaalahelatega võrkudeks ja selliseid võrke, kus on
võrgukihi tasemel ühenduseta võrgud (ilma handshaking’uta)
, nimetatakse
datagrammvõrkudeks.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 marsruutimistabelites
Toimib 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.
19
Virtuaalahelatega võrgud – alguses seatakse marsruut paika, mis püsib kogu ühenduse aja(ruuterid säilitavad
kõneaegse seisundi). Ei reserveeri seda teed küll füüiliselt. Kasutatakse enamasti, kui vähe infot tarvis saata(ATM).
Igal paketil “ silt ”(virtuaalse ahela ID), mis määrab järgmise hüppe(hop).Datagrammvõ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.
Datagrammvõrgud – kogu aeg otsustatakse, mis teed valida. Teise osapoole hinnang(TCP/IP). Sihtpunkti aadress
määrab järgmise sammu(hop). Teekond võib muutuda ka ühe sessiooni vältel(analoogiks on autoga sõitmisel tee
küsimine)27. Marsuutimine
Võrgukiht peab otsustama, millise teekonna paketid 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
20
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 odavam, 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
odavaimad teed alguspunktist teistesse punktidesse.
Link state marsruutimisalgoritm - Baseerub Djikstra algoritmil, eeldusena on kõigile võrguseadmetele teada võrgu
topoloogia, kõik seadmed omavad sama infot. Arvutatakse vähima kuluga tee ühest võrgusõlmest kõigisse teistesse,
saadakse ruutimistabel selle võrgusõlme jaoks. Iteratiivne – pärast k iteratsiooni teatakse vähima kuluga teed k
sihtkohta .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.
Igal sõlmel on oma kauguste tabel (Distance Table). Tabelis on nii palju ridu, kui on võimalikke
sihtpunkte antud sõlmest ning tulpasid sama palju, kui naabersõlmi antud sõlmel on (hoitakse
kõikvõimalikke kaugusi (ruutimiskulusid) DX(Y,Z) = kaugus X-st Y-sse, kui Z on järgmine samm).
Iga iteratsiooni käigus leitakse minimaalne tee ruuterist X ruuterisse Y läbi ruuteri Z (ruuterist Z
saabub info ruuterusse X tee Z->Y maksumusest).
Iteratsioon toimub uuesti iga kord, kui
muutub ruuteriga seotud tee ruutimiskulu või naabersõlm teavitab temaga seotud
kulumuutusest. Ruuter teavitab oma naabreid vaid esimesel juhul. Iteratsioon jätkub, kuni ükski
võrgusõlm enam infot ei vaheta, iga võrgusõlm suhtleb ainult oma vahetute naabritega.
Ruutimistabel saadakse eeltoodud minimeerimise käigus, seal hoitakse infot parima
vahendajasõlme kohta ning tee maksumust läbi selle sõlme.
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
21
ruuterid teavad üksteise kohta infot ja realiseerivad ruuterid sama algoritmi ning
samuti on igas süsteemis ü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 võrguseadmel ja määratakse võrgukaardile
tootmise käigus. 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.
22
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 FFFF-
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
23
lisab need tabelisse ning siis saadab paketi 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 onautonoomsüsteemi sisesed marsruutimisprotokollid,
siis järgmine -
BGP (Border Gateway Protocol) on mõeldud autonoomsüsteemide
vaheliseks marsruutimiseks. BGP on peamine ruutimisprotokoll Internetis. Igale ASile
(autonoomsüsteemile) 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.
24
35. Marsruuterid
Marsruuteri kaks põhilist funktsiooni on:
1)Marsruutimisalgoritmide ja protokollide töö tagamine
2)Datagrammide edasisaatmine sissetulevast kanalist väljuvasse
Iga 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).
25
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
bitti (4 baiti) pikk ja seetõttu on aadresse kokku 232. IP aadress
kirjutatakse kümnendnumbritega ja iga
bait eraldatakse
punktiga . IP-aadress koosneb kahest
osast: vanemat järku (
vasakpoolsed ) bitid määravad võrguosa ning nooremad hostiosa.
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 aadressid on jagatud nelja klassi:
● A-klass – võrguosa 8 bitti (kuni 256 võrku), hostiosa 24 bitti (igas võrgus kuni 16 miljonit
hosti). Aadressid 1.0.0.0 kuni 127.255.255.255.
● B-klass – võrguosa 16 bitti (kuni 65k võrku), hostiosa 16 bitti (kuni 65k arvutit igas
võrgus). Aadressid 128.0.0.0 kuni 191.255.255.255
● C-klass – võrguosa 24 bitti (kuni 16 miljonit võrku), hostiosa 8 bitti (kuni 256 arvutit igas
võrgus). Aadressid 192.0.0.0 – 223.255.255.255.
● D-klass – multicast aadressid (võrguosa ja hostiosa ei ole üheselt määratud). Aadressid
224.0.0.0 – 239.255.255.255.
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. Võrreldes IPv4’ga on veel ära kaotatud
kontrollsumma ja pakettidele on võimalik määrata prioriteete.
Kuna Ipv4-lt v6-le üleminek ei saa toimuda ühe hetkega, kasutatakse nende standardite
ühendamiseks kahte 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.
26
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
Multipöördusprotokolle kasutatakse selleks, et ühel füüsilisel andmekanalil saaks erinevad
saatjad edastada korraga erinevaid andmeid. Ehk siis protokoll määrab ära, kes saadab ja millal
saadab.
27
Kolm võimalust multipöörduseks:
1)
kanali jaotamine (
channel partitioning, näiteks aja või sageduse järgi).
2)
Juhupöördus (lubatakse kokkupõrkeid (collisioneid), on olemas reeglid, mida teha põrke
korral).
3)
Kordamööda kasutamine (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.
28
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
varal ): ä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).
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
(Eesti keeles - lubaringvõrk) Loahaldusprotokolli kasutav ringvõrk; milles arvutid on omavahel
kaabliga ringitaoliselt ühendatud. Loaks (token) nimetatav lühike bitijada ringleb võrgus pidevalt
ühes suunas ühelt tööjaamalt teisele. Võrku sõnumi saatmiseks püüab tööjaam kõigepealt kinni
võrgus ringleva loa, liidab selle külge sõnumi ja saadab siis võrku. Kuna võrgus ringleb ainult üks
luba, siis ei teki olukorda, kus mitu tööjaama saaks üheaegselt võrku sõnumeid saata.
41. Token bus
29
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)
Datagramm - Andmeid ja piisavat marsruutimisteavet sisaldav iseseisev edastusüksus. Sama, mis pakett.
Pakett - Andmete edastamiseks võrgus tükeldatakse andmejadad pakettideks, mis pärast kohalejõudmist uuesti
kokku pannakse. Kui edastamisel on näiteks sideliinide kehva kvaliteedi tõttu tekkinud vigu, siis saadetakse vigane
pakett kohe uuesti. Nii pole ühe vea tõttu vaja uuesti saata kogu andmemassiivi
Andmepaketti nimetatakse ka kaadriks ja datagrammiksAndmete 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. 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, 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.
43.
Ethernet Ethernet - Kohtvõrgu standard IEEE 802.3, mida esmakordselt kirjeldati 1976. a. ja mis on praeguseks saanud
üldkehtivaks. Andmed jagatakse pakettideks, mille ülekanne toimub CSMA/CD algoritmi kasutades ilma pakettide
omavaheliste põrgeteta, kuni nad saabuvad sihtkohta. Igal ajamomendil iga sõlm kas saadab andmeid või võtab
neid vastu. Ethernet’i ribalaius on ligikaudu 10 Mbps. Ethernetivõrgu kaablite tähistus on "XBaseY", näit. 10Base5 30
tähendab, et andmekiirus on 10 Mbps ja 5 on kaablivõrgu kategooria (5 - normaalne koaksiaalkaabel , 2 - peen
koaksiaalkaabel, T - keerdpaarjuhe).Ethernet on esimene laiemalt levinud 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. Suudab edastada andmeid
kuni 10, 100, 1000 Mbps. Ethernetis liiguvad Etherneti kaadrid, millesse pakitakse IP
datagrammid või teised võrgukihi protokolli paketid. LAN aadressiks on 48bit MAC aadressid,
mida kasutatatakse füüsiliseks
transpordiks . IP aadressi abil suunatakse pakett õigesse
alamvõrku, seal edastatakse pakett kõigile arvutitele ja õige MAC
aadressiga arvuti loeb ja
tunneb talle saadetud paketi ära.
Etherneti kaadri struktuur:
1.
Aadress(S, VV)6 baiti MAC. Kaader saadetakse kõigile LAN-i
masinatele ja need kes ei ole selle
aadressiga, viskavad selle kaadri minema.
2.
Type - näitab kõrgema kihi protokolli (mis on kaadri sees).
3.
CRC –veakontrolliks vajalikud andmed, mida kontrollitakse vastuvõtjas. Vea korral visatakse
kaader lihtsalt ära. Nende ees on veel nii S kui ka VV MAC aadressid ja sünkrobitid, et S ja VV kella
sagedused sünkroniseerida. Etherneti kaadri andmehulk on 46–1500 baiti.
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 0…
1536 bit edastusajast viide jne.
Ethernet 10 Base2. -
Otstes terminaatorid, mis kõrvaldavad signaali peegeldumise võimaluse.
Signaal levib Sst 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
sild =bridge, jaotur =hub, kommutaator =switch, S=saatja, VV=vastuvõtjaSild 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. See ongi
31
üks silla
eeliseid . Ta ei lase kokkupõrkel
levida , mistõttu suureneb läbilaskevõime. 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.
Hostide jaoks on ta nähtamatu, st. ta võrdsustatakse
juhtmega .
Soovitav on ühendada sild tähe
(puu) kujuliselt, sest jadaühenduse korral, kui mingi LAN ära katkeb, siis on kogu võrk sealt alates
ühenduseta. Sillad säilitavad filtreerimistabeleid, mida nad on võimelised õppima, neid ei pea
reguleerima. Igas kaadris on S ja VV aadress, sild jätab
S aadressi meelde. Kui on vaja saata pkt, siis ta vaatab S aadressi tabelisse, millises segmendis
antud seade asub, kui
seadet seal kirjas ei ole, saadab ta päringu teistesse segmentidesse. Et
vältida tsükleid, peavad sillad omavahel suhtlema. Et ei tuleks silmusedastus võimalust, on nad
võimelised ka osa ühendusi läbi lõikama.
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.
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. Eelis - lihtne ja odav, kui mõni hub peaks üles ütlema,
töötab võrk edasi. Max kaugus hubist kliendini 100m. 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.
Kommutaator-on oma
olemuselt mitmesisendiline sild. Töötab võrgukihil. Edastab kaadreid,
mida
filtreerib , kasutades LAN aadresse. Võib mitut ühendust samaaegselt tagada, seetõttu
suurendab läbilaskevõimet. 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.
(Eelmainitud seadmeid on vaja, kuna ei saa luua üht suurt LAN-i, sest kaabli pikkus on
piiratud, jaamade arvud on piiratud, jõudluse probleemid tekivad, token ringi loa liikumise aeg
kasvab, turvalisuse ja töökindluse probleemid kasvavad.)
45. CSMA/CA
32
CSMA/CA protokollis, kui saatja saab edastamiseks paketi, siis enne saatmist ta kuulab kanalit, et
kas keegi teine juhuslikult ei saada. Kui kanal on vaba, siis edastab ta selle paketi. Vastasel juhul
aga valib aja, kaua ta ootab ja selle nulli tiksudes edastab paketi. Kuna tõenäosus, et kaks või
rohkem saatjat valivad sama aja on väike, siis ka pakettide kokkupõrke tõenäosus on väike.
Hetkel, mil saatja paketti edastab, ei kuule ta teisi. Siiski võivad tekkida ka
kollisioonid .
Kollisiooni puhul katkestatakse koheselt saatmine, kuna vigase info saatmine on ainult ajakulu. Kollisioon
levib alati igas kanali suunas, kui on tegemist ühise kanaliga. Kui on tekkinud kollisioon, siis
mõlemad kollisiooni tekitanud saatjad ootavad suvalise aja ja püüavad uuesti saata.
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 ) - ülekandekiirus on
fikseeritud, andmed saadetakse püsiva voona. Analoogiline punkt-punkt ühenduse fikseeritud
liinile 2)
VBR (Variable Bit Rate) - muutuva bitikiirusega, garanteeritakse teatud kanalimaht, kuid
andmeid ei saadeta võrselt. Kasutatakse üldiselt kõne ja videokonverentside tarbeks
3)
UBR (Unspecified Bit Rate) - UBR)-läbilaskemahud pole garanteeritud. St. kiirus võib oluliselt
muutuda. Kasutatakse nt e-maili ja failiülekannete puhul, kus ajaline viide on lubatav
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
33
Turvalise ühenduse tunneb ära selle järgi, et
veebilehitseja aadressireale on kirjutatud
https://, mitte aga http:// .
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.
Turvamiseks kasutatakse krüptograafiat (avaliku võtme ja sümmeetrilise võtme
krüptograafia), autentimist,
meetodeid , mis näitavad, kas sõnum on muudetud või mitte,
turvalist elektronposti, turvalist andmeülekandmist. Lisaks kasutatakse veel täiendavaid
turvavahendeid nagu nt tulemüürid.
Teod, millega sissetungija saab ebameeldivusi tekitada on:
1)eavesdropping – andmete
kuulamine ja salvestamine
kanalis 2)Andmete muutmine, sisestamine, eemaldamine pakettides
3)Vastuvõtja teesklemine
4)Enda asendamine saatja või vastuvõtjaga võttes ühenduse üle
5)Teenuste kasutamise
keelamine 48. Krüptograafia, algoritmid ja võtmed
Krüptograafia on teksti salastamine võõraste eest. Kasutatakse sümmeetrilise võtme ja avaliku
võtme krüptograafiat. Sümeetrilise võtme puhul on sama võti nii saatjal kui vastuvõtjal. Avaliku
võtme puhul krüpteeritakse tekst avaliku võtmega ja dekrüpteeritakse salajase võtmega.
*
Caesar ’i šiffer – sümmeetrilise võtme algoritm. Toimub tähestikku nihutades.
*
Alfabeetiline šiffer – sümmeetrilise võtme algoritm. Mõlemale osapoolele on teada võti ja 2
asendusalfabeeti.
49. Sümmeetrilise võtme krüptograafia, DES
34
Sümmeetrilise võtme puhul on krüpteerimiseks ja dekrüpteerimiseks sama võti. Sümmeetrilise
võtme puhul on probleemiks turvaline võtmeedastus. DES (Data Encryption Standard) 'i korral
jagatakse andmed 64 bitisteks blokkideks ja kasutatakse 56 bitist võtit. Mida pikem võti, seda
keerukam on lahtimurdmine. DES'i puhul ei ole teada ühtegi tagaust, kasutatakse nihutamisi ja
loogikatehteid, on võimalik realiseerida ka riistvaraliselt. Ühtegi muukimisalgoritmi pole
õnnestunud leida. Des ‘i
loogika seisneb selles, et algne 64bitine tekst jagatakse 2-ks. Paremat
poolt kombineeritakse XOR funktsiooni kasutades esimese 48bit alamvõtmega ning
permuteeritakse. Seejärel liidetakse saadud parem pool XOR funktsiooni kasutades vasaku
poolega, mis nihkub paremale. Permuteeritud parem pool aga vasakule. Uut paremat poolt
kombineeritakse nüüd XOR funktsiooni kasutades teise 48bitise alamvõtmega, permuteeritakse
ning liidetakse XOR-ga vasaku poolega. Toimub jälle
kohtade vahetus ja nii edasi 16X
järjest. 48bitine alamvõti genereeritakse 56bit peavõtmest. Dekrüpteerimine toimub samu
funktsioone vastupidises järjekorras rakendades. Kuna 1998 murti 56bit Des lahti, siis loodi
sellele edasiarendus – 3X Des. Sel puhul siis:1) krüpteeritakse andmed 56bit šifriga; 2) dekrüpt
teise 56bit šifriga;3)krüpt kolmanda 56bit šifriga. Antud
moodus võtab ka kolm korda rohkem
aega.
50. Avaliku võtme krüptograafia, RSA
Avaliku võtme krüptograafial on kaks funktsiooni - salastus ja autentimine.On 2 võtit-üks
krüpteerimiseks(avalik võti), teine dekrüpteerimiseks (salajane võti). Avaliku võtme saadab
vastuvõtja ise saatjale kui see soovib talle turvalist teadet saata kuid salajast võtit ei tohiks
teoreetiliselt avaldada teistele. RSA algoritm on pööratav, st. võtmed on paarikaupa ja võivad
olla mõlemad krüpteerivaks või vastavalt siis dekrüpteerivateks võtmeteks. Salajast võtit
kasutatakse krüpteerimiseks digitaalse allkirja puhul, kui krüpteeritakse signatuur ja kui see
avaneb ainult sinu avaliku võtmega, siis on
allkiri kirjastatud. Avaliku võtme krüptograafia töötab
funktsioonide peal, mis on küllaltki lihtsalt arvutatavad kuid "raskesti" pööratavad.
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
35
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 -Kasutaja saadab kasutajanime. Vastuvõtja saadab mingi signatuuri,
mille saatja krüpteerib kasutades oma salajast võtit. Saadab selle vastuvõtjale. Vastuvõtja küsib
kasutaja avalikku võtit, millega ta dekrüpteerib kasutaja poolt krüpteeritud bitijada. Kui need
vastavad, on kasutaja tuvastatud.
•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 autentimisprotokolli 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 36
Krüptograafiline
analoog käsikirjalisele allkirjale. Saatja lisab kirjale digitaalse teate, et tema on
omanik/saatja. Saatja lisab oma signatuuri, mis on krüpteeritud kasutades tema salajast võtit.
Vastuvõtja teab saatja avalikku võtit ning dekrüpteerib sellega krüpteeritud signatuuri ja võrdleb
dekrüpteerimise tulemust signatuuri krüpteerimata versiooniga. Nii vastuvõtja tuvastab, et
allkirjastas just see saatja ja mitte keegi teine. Signatuur peab olema igal kirjal erinev ja see
arvutatakse Hash
funktsioonina kirja sisu põhjal.
53.
Sertifitseerimine On vajalik riskide vähendamiseks kahe teineteist mitteusaldava osapoole vahelises suhtluses.
Sisuliselt notarid digitaalsel kujul. On kaks juhtu, kus neid kasutatakse-üks osapool soovib
kinnitust, kas talle esitatud avalik võti kuulub teisele osapoolele ning teine olukord, kus kahel
teineteist mitte usaldaval
osapoolel on vaja leida ühine võti, et pidada turvalist sidet. Olukord,
kus on vaja kindlaks teha, kas avalik võti kuulub just vajalikule üksusele: Selleks peab olema
vajalik isik registreerinud oma avaliku võtme CA (Certification Authorities) juures. Kui nüüd keegi
soovib antud isiku avalikku võtit, saab ta isiku seritfikaadi, kasutab CA- avalikku võtit isiku
sertifikaadi lugemiseks ning saab sedasi isiku avaliku võtme. Olukord, kus kahel üksteist
mitteusaldaval osapoolel on vaja leida ühine võti, et pidada turvalist sidet: Kasutaja
kommunikeerub sertifitseerimiskeskusega (Key Distribution Center, KDC) ja saab sealt
sessioonivõtme, mille ta krüpteerib vastuvõtja avaliku võtmega ja saadab vastuvõtjale, kes selle
siis dekrüpteerib oma salajase võtmega
saades sedasi teada sessiooni võtme.
54. Võtmete jaotussüsteemid ja protokollid
VJK on ilmselt KDC eestikeelne vaste ( vist ) - võtmejaotuskeskusKDC (Key Distribution
Centre ) taodeldakse võtit. KDC annab igale registreeritud kasutajale
salajase võtme, millega iga sessiooni jaoks genereeritakse sessioonivõti. Võtmete
jaotussüsteemi on vaja juhul kui 2 isikut soovivad rajada jagatud salajast võtit üle võrgu. Selleks
ongi vaja usaldusväärset võtmejaotuskeskust nende vahele.
Vaatleme juhtu: A ja B vajavad
vajavad sümmeetrilist jagatud võtit. VJK server jagab iga registreerinud kasutajaga erinevat võtit.
A ja B teavad ainult sümmeetrilisi võtmeid: Ka-vjk , Kb-vjk . Kui A soovib B-ga ühendust,
kontakteerub ta VJK-ga ning saab sealt sessioonivõtme R1 ja Kb-vjk (A,R1). A saadab viimase
B-le. B eraldab R1 ning nüüd omavad nad mõlemad sessioonivõtit R1.
55. Tulemüürid
37
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. Tulemüüri saab implementeerida nii tarkvaraliselt,
riistvaraliselt kui ka kombinatsioonina mõlemast. Ü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.
Tulemüür võib töötada mitmel
erineval viisil:
1.
Pakett- filtrid : Pakett-filtreerimisel põhinevad tulemüürid uurivad võrguliikluses
igat paketti eraldi ning vastavalt kasutaja poolt kehtesatud reeglitele lubab need
läbi või tõrjub eemale. Kuigi keeruline seadistada, on see üsna efektiivne ja
arvutikasutajale oma olemuselt arusaadav. Vastuvõtlik IP spuufimisele.
2.
Rakenduskihi tulemüür: kehtestab turvanõuded teatud rakendustele nagu FTP
ja Telnet serveritele. Selline lähenemine on äärmiselt efektiivne turvakaalutlustest
lähtudes, kuid võib vähendada üldist jõudlust.
3.
Olekuteadlik tulemüür: kehtestab turvanõuded kui TCP või UDP ühendusele.
Kui juba ühendus on loodud, siis paketid võivad liikuda ilma edasise kontrollita.
4.
Proksi : püüab kinni kõik teated, mis saabuvad või mida saadetakse läbi võrgu.
Proxy server
varjab efektiivselt
tegelikku võrguaadresi.
56. Transpordikihi turvalisus(TLS), SSL, E-kaubandus, SET
TLS (Transport Layer Security ) protocol -
(Eesti k. - transpordikihi turbeprotokoll) Avatud
protokoll, mis võimaldab klient-server rakendustel omavahel turvaliselt suhelda üle Interneti,
olles kaitstud pealtkuulamise või sõnumite rikkumise ja võltsimise eest. TLSi
kasutamisel toimub
nii otspunktide autentimine kui ka andmeedastus krüpteeritult. Harilikult autenditakse ainult
serverit ja klient jääb autentimata. Kui soovitakse autentida ka klienti, tuleb kliendile tagada PKI
(Public Key Infrastructure) kasutusvõimalus. Andmeedastusel kasutatakse sümmeetrilist
krüptograafiat.
SSL (Secure Sockets Layer) - (Eesti k. -
turvasoklite kiht)
Infoturbe protokoll üle Interneti
edastatavate andmete turvalisuse tagamiseks. Andmete edasi-tagasi saatmine klient- ja
serverprogrammi vahel toimub läbi soklikihi programmi. SSL kasutab RSA kahe võtmega (avalik ja
38
privaatvõti) krüpteerimissüsteemi. SSL protokolli kasutatakse laialdaselt näiteks krediitkaardiinfo
edastamiseks elektrooniliste äritehingute puhul
Protokoll tomib järgnevalt:
1)Handshake
2)Lepitakse kokku krüpteerimise algoritm ja võtmed ning toimub ka autentimine
3)Andmete vahetus (krüpteeritud kujul, kasutades neid võtmeid ja algoritme, milledes kokku
lepiti)
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.
2) SSL
client authentication - Laseb serveril veenduda kasutaja identiteedis.
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.
SET (secure eletronic transactions) disainiti maksete tegemiseks internetis. SET pakub
turvalisust teenust 3 osapoole vahel: klient, müüja,
pank . Kõik nad peavad omama sertifikaate.
Süsteem toimib järgnevalt:Müüja ei tea ostja pangaandmeid; pank ei tea mida osteti.
e-kaubandus- internetikaubandus. Kaupade ja teenuste müük Internetis.
57. 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
39
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.
58. 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.
40
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.
41
Kõik kommentaarid