Võrgutopoloogiad ja mudelid
Topoloogia defineerib sidevõrgu struktuuri. Eristatakse kahte tüüpi topoloogiat: loogiline ja füüsiline.
- Füüsiline topoloogia tegeleb ühenduskaablite, võrguseadmete ja võrgus asuvate kasutajatööjaamade riistvara konfigureerimise/seadistamisega.
- Loogiline topoloogia määrab viisi, kuidas kasutajad saavad ligipääsu võrgule ja võimalikud marsruudid sõlmedevaheliseks andmevahetuseks.
1. Füüsiliste topoloogiate tüübid
Siinitopoloogia (Bus Topology)
Siinitopoloogia puhul on kõik üksused sidemeediumiga ühendatud võrguadapterite abil magistraalliini külge (Joonis 3.1, vasakul). Samaaegselt on ainult ühel üksusel lubatud infopakette saata. See teeb vajalikuks hallata ja juhtida üksuste ligipääsu meediumile. Igast jaamast (üksusest) tulev ülekanne jaotatakse üle kogu siini mõlemas suunas ja seda võivad vastu võtta kõik üksused. Andmed kantakse üle pakettidena, mis sisaldavad vastuvõtva jaama aadressi, saatja aadressi ning muud infot.
Siinitopoloogia puudused:
- Võimalike signaalimoonutuste vältimiseks ei tohi tööjaamade vahekaugus teineteisest või magistraalliinist (Bus) ületada maksimaalset lubatud kaugust.
- Lisaks ei võimalda see võrk lihtsat diagnostikat.
- Andmekaitse puudumine: Siinitopoloogia ei võimalda võrgusisest andmekaitset, kuna kõik ülekanded tehakse mööda ühist magistraalliini, võimaldades igal võrgukasutajal autoriseerimata ligipääsu süsteemi.
Ring-topoloogia (Ring Topology)
Selles topoloogias ühendatakse üksus otse järgmise üksuse külge ja viimane üksus esimese külge (Joonis 3.1, paremal). Sellisel moel saavutatakse ringikujuline füüsiline ühendus. Kõik üksused ringis on ühendatud repiiterite abil. Sõnumid kantakse jaamast jaama ainult ühes suunas. Ring-topoloogia võrgud kontrollivad, kas edastatud sõnumid jõudsid sihtpunkti. Iga kord kui üksus võtab vastu sellele adresseeritud sõnumi, kopeeritakse see ja saadetakse saatjale tagasi lipuga, mis kinnitab vastuvõtmist. Iga kindla üksuse poolt saadetud pakett saadetakse edasi järgmisele ringis asuvale üksusele. Kui pakett jõuab sihtpunkti, siis see salvestatakse ja see jätkab liikumist mööda ringi. Pakett eemaldatakse ringist selle üksuse poolt, mis selle saatis.
Joonis 3.1: Siini- ja Ringtopoloogia (Bus and Ring Topology)
Ringtopoloogia probleemid:
- Kõigi tööjaamade võrdne võimalus pääseda võrku võib olla probleem.
- Individuaalseid ringtopoloogia võrke on võimalik ühendada ühiseks ringtopoloogia võrguks sildade abil, mis edastavad andmeid ühest ringist teise.
- Algselt ehitatud ringtopoloogia võrku on väga raske lisada uusi tööjaamu, kuna see eeldab kõigi võrgus toimuvate operatsioonide seiskamist, et lisada uus tööjaam, teha vajalik kaabeldus ja seadistus.
Tähttopoloogia (Star Topology)
Tähttopoloogia puhul on iga tööjaam (Joonis 3.2, vasakul) ühendatud keskse sideüksusega (näiteks kontsentraator/jaotur, kommutaator/switch) kahe ühesuunalise ühenduse abil (üks edastamiseks ja teine vastuvõtmiseks). Sideüksus võib olla passiivne (see jaotab sisendsignaalid väljundliinidele) või aktiivne (see võtab vastu sisendsignaalid ja edastab need väljundliinidele).
Tähttopoloogia eelised:
- Mõned üksused võrgus võivad omada suuremat prioriteeti kui ülejäänud, võimaldades sideüksusel kontrollida kõrgema prioriteediga tööjaamadest tulevaid sõnumeid enne teiste üksuste päringute vastu võtmist.
- Kasutatakse võrkudes, kus mõni tööjaam peab saama oma päringutele kohese vastuse.
- Tähttopoloogia võimaldab tsentraliseeritud diagnostikat. Kuna kõik sõnumid saadetakse sideüksusele, siis on lihtne analüüsida individuaalsetelt tööjaamadelt tulevaid sõnumeid.
- See topoloogia lubab lisada uusi tööjaamu sidevõrku ja analüüsida detailselt võrgu jõudlust.
Puudused:
- Kui sideüksusel tekib rike, muutub kogu võrk mittetoimivaks.
Joonis 3.2: Tähttopoloogia ja Laiendatud tähttopoloogia (Star Topology and Extended Star Topology) [64]
Laiendatud täht-topoloogia (Extended Star Topology)
Laiendatud tähttopoloogia (Extended Star Topology) on tähttopoloogia edasiarendus, kus mitu tähttopoloogiat on ühendatud omavahel ühte suuremasse võrku (Joonis 3.2, paremal).. Igas tähttopoloogias on tööjaamad ühendatud keskseadme või switchiga, nagu tavapärases tähttopoloogias, kuid laiendatud tähttopoloogia puhul ühendatakse need keskseadmed omakorda teise keskseadme või switchiga, mis toimib kõrgema taseme sidepunktina.
Täpsem kirjeldus ja eelised:
- Modulaarsus: Laiendatud tähttopoloogia on modulaarne, mis tähendab, et võrku saab hõlpsasti laiendada uute tähttopoloogiatega, ilma et see mõjutaks olemasolevat võrku. Iga tähttopoloogia võib toimida iseseisvalt, ning uusi sektsioone saab lisada vastavalt vajadusele.
- Jõudluse isolatsioon: Kui ühes tähttopoloogias tekib probleem, näiteks sideüksuse rike, mõjutab see ainult konkreetse tähttopoloogia tööjaamu, kuid mitte kogu võrku. See võimaldab teistel võrgusegmentidel jätkata normaalset tööd.
- Haldus ja tõrkeotsing: Tsentraliseeritud haldus on lihtsam, kuna iga tähttopoloogia saab hallata eraldi, võimaldades kiiremat tõrkeotsingut ja probleemide lahendamist. Kui probleem esineb ühes võrgusegmendis, on selle isoleerimine ja parandamine kiirem.
- Laiendatavus ja paindlikkus: Võrgu laiendamine ja uute tööjaamade lisamine on lihtne, kuna iga uus tähttopoloogia saab ühendada olemasolevasse süsteemi ilma keeruka ümberkonfigureerimiseta. See muudab laiendatud tähttopoloogia sobivaks suurtes organisatsioonides, kus võrgu vajadused muutuvad ja kasvavad aja jooksul.
Puudused:
- Võrgukoormuse jaotamine: Kui keskne switch, mis ühendab mitmeid tähttopoloogiaid, on üle koormatud, võib see mõjutada kogu võrgu jõudlust. Seetõttu on vaja tagada, et keskse seadme võimsus ja läbilaskevõime vastaksid võrgu vajadustele.
- Kaabli kulud: Laiendatud tähttopoloogia nõuab suurt hulka kaableid, eriti kui tähttopoloogiad asuvad geograafiliselt kaugel üksteisest, mis võib suurendada paigalduskulusid.
Hierarhiline topoloogia (Hierarchical Topology)
Hierarhiline topoloogia (Hierarchical Topology) on võrgu struktuur, mis sarnaneb laiendatud tähttopoloogiaga, kuid on organiseeritud hierarhilisel kujul, mis meenutab puu struktuuri(Joonis 3.3, vasakul). See tähendab, et võrk hargneb allapoole, alustades keskse juurepunktiga ja jätkates allapoole, kus iga tasandi seadmed on ühendatud oma kohaliku keskseadmega. Hierarhilist topoloogiat (Hierarchical Topology) kutsutakse sageli ka puu topoloogiaks (Tree Topology).
Täpsem kirjeldus ja eelised:
- Selge hierarhia: Hierarhiline topoloogia loob selge ja loogilise võrgu struktuuri, kus kõrgemal tasemel seadmed haldavad ja koordineerivad madalama taseme seadmeid. See muudab võrgu haldamise ja laiendamise lihtsamaks, kuna igal tasandil on oma funktsioon ja vastutus.
- Tõhus liikluskorraldus: Tänu hierarhilisele struktuurile on võrgu liiklus suunatud efektiivselt, vähendades ülekoormust ja parandades üldist jõudlust. Iga tasandi seade haldab oma sektsiooni liiklust, võimaldades üleliigsete andmete liikumise vältimist kõrgemates tasandites.
- Lihtne võrgu laiendamine: Uute seadmete ja sektsioonide lisamine on lihtne, kuna need saab hõlpsasti paigutada võrgu sobivasse hierarhilisse tasandisse. See muudab võrgu skaleerimise ja hooldamise lihtsamaks ja odavamaks.
- Veakindlus ja taastumisvõime: Kui madalama tasandi seadmel tekib rike, mõjutab see ainult seda sektsiooni, mitte kogu võrku. Kui kõrgema tasandi seade on rikke kindel ja varustatud varuseadmetega, võib kogu võrgu töö jätkuda tõrgeteta.
Puudused:
- Ülemise tasandi seadmete koormus: Kui võrgu liiklus on suur, võivad ülemise tasandi seadmed muutuda ülekoormatuks, mis mõjutab kogu võrgu jõudlust. Seetõttu on oluline kasutada piisava võimsusega seadmeid ja vajadusel rakendada koormuse jagamist.
- Kompleksne seadistamine ja hooldus: Hierarhiline topoloogia nõuab hoolikat planeerimist ja seadistamist, et tagada võrgu optimaalne toimimine. Võrgustruktuuri muutmine võib olla keeruline, eriti kui tuleb muuta kõrgema tasandi seadmeid või tasandeid ümber korraldada.
Silmus-topoloogia (Mesh Topology)
Silmustopoloogia (Mesh Topology) on võrgu struktuur, kus iga võrguseade on ühendatud mitme teise seadmega, moodustades omavahelise silmuse või võrgu (Joonis 3.3, paremal). See tagab, et andmed saavad liikuda läbi võrgu mitmel alternatiivsel teel, mis parandab võrgu töökindlust ja vigade taluvust.
Täpsem kirjeldus ja eelised:
- Tõrketaluvus ja usaldusväärsus: Silmustopoloogia suurim eelis on selle tõrketaluvus. Kui üks ühendus või seade ebaõnnestub, saab võrk siiski jätkata tööd, kasutades alternatiivseid teid. See muudab silmustopoloogia ideaalseks keskkondades, kus töökindlus on kriitilise tähtsusega, nagu näiteks missioonikriitilised süsteemid või suure jõudlusega andmekeskused.
- Dünaamiline marsruutimine: Silmustopoloogia toetab dünaamilist marsruutimist, kus andmepaketid leiavad automaatselt kõige kiirema ja tõhusama tee sihtpunkti. See tagab optimaalse võrgu jõudluse ja vähendab ummikute tekkimise tõenäosust.
- Skaalautuvus: Uute seadmete ja ühenduste lisamine on suhteliselt lihtne, kuna iga uus seade saab ühendada mitme teise seadmega, suurendades seeläbi võrgu usaldusväärsust ja jõudlust. Silmustopoloogiat saab hõlpsasti laiendada, lisades rohkem ühendusi või seadmeid.
Puudused:
- Kulud ja keerukus: Silmustopoloogia nõuab suurel hulgal kaableid ja seadmeid, eriti suurtes võrkudes, mis võib märkimisväärselt suurendada võrgu paigaldus- ja hoolduskulusid. Kaabeldus ja seadistamine on keerulisemad võrreldes lihtsamate topoloogiatega.
- Haldamine: Silmustopoloogia keerukus võib muuta võrgu haldamise ja tõrkeotsingu keerulisemaks, kuna igal seadmel on mitu ühendust, mida tuleb jälgida ja hallata. Võrgu üldise toimimise ja jõudluse säilitamine nõuab pidevat järelevalvet ja optimeerimist.
Joonis 3. 3. Hierarhilisel (Hierarchical Topology) ja Silmus topoloogia (Mesh Topology) [64]
2. Üksused füüsilise ja loogilise võrgu struktureerimiseks
Sidevõrkudes kasutatakse füüsiliste ja loogiliste struktuuride loomiseks erinevaid sideüksusi. Saadaval on kolme gruppi sideüksusi:
Passiivsed üksused
Passiivsed üksused on sidevõrgu ühenduspunktid, mis ei muuda sisendisse saabuva signaali parameetreid. See üksuste grupp sisaldab:
Ühenduspistikud (Jack couplers) (Joonis 3.4, vasakul) on passiivsed üksused, mida kasutatakse võrgukaabli pikendamiseks.
Joonis 3. 4. Ühenduspistiku pesad
Seinapistik (wall plate) (Joonis 3.4, paremal) on ühenduspaneel ühe tööjaama jaoks, millel on tavaliselt üks või kaks porti. Portidesse on võimalik asetada pesasid RJ-45 või RJ-11 tüüpi otsadele.
Juhtmepaneel (Patch panel) (Joonis 3.5, vasakul) on ühendus- ja jaotuspunkt kaablite korraldamiseks.
Passiivne kontsentraator/jaotur (passive concentrator/hub)on keskne ühenduskolmik, mille abil luuakse ühendus hulga tööjaamade vahel. See ei sisalda elektroonilisi komponente ega vaja seega elektritoidet. Suvalisse porti saabuv sisendsignaal edastatakse kõigisse teistesse portidesse. Tänapäeval neid jaotureid praktiliselt kasutust ei leia.
Aktiivsed seadmed
Aktiivsed seadmed võimendavad sisendsignaali. Lisaks on need võimelised signaali muutma ühest ülekandemeediumi tüübist teise. Siia kuuluvad järgmised seadmed:
Ülekandemeediumi konverterid (transmission medium converters).Need on tuntud kui adapterid või ülekandemeediumi translaatorid/konverterid, mis konverteerivad võrguliiklust kahe erinevat tüüpi ülekandemeediumiga sidevõrgu segmendi vahel. Näiteks valguskonverter loob ühenduse UTP-kaabelvõrgu ja valguskaabelvõrgu vahel.
Repiiter. (signaali võimendi) See seade funktsioneerib füüsilisel tasandil, suurendab sidevõrgu kogupikkust. See taastab signaalitugevust ja parandab impulsi tugevust suurematel vahemaadel. Repiiterid ei filtreeri neid läbivaid signaale; nad ainult regenereerivad signaale, sealhulgas saadetud sõnumeid, müra ja häireid. Nende põhirakenduseks on sama võrgu kahe võrgusegmendi ühendamine ja nendevaheliste signaalide võimendamine normaalstasemele. Repiitereid on võimalik kasutada mitmete ülekandemeediumitega kuni nende tüübid ühtivad, siiski ei saa neid kasutada erinevat tüüpi struktuure või ligipääsumeetodeid kasutavate segmentide ühendamiseks.
Hub (jaotur). See on mitme sisendiga repiiter, millega luuakse täht-ühendus. Seda iseloomustavad tehnilised spetsifikatsioonid ja omadused on järgmised:
- Muudab võrgu füüsilist topoloogiat, kuid mitte selle loogilist struktuuri;
- Ühendab individuaalsed, võrgukaardiga varustatud tööjaamad ühtseks võrguks;
- Hubid võimaldavad lisada olemasolevasse võrku uusi füüsilisi tööjaamu;
- Kõik pordid on võrdse prioriteediga;
- Protsessi, mille käigus hub mõned pordid välja lülitab, kui tuvastatakse talitlushäire, nimetatakse segmentatsiooniks;
- See leiab rakendust võrkudes, mis kasutavad UTP kaableid;
- Vastu võetud andmepakette ei puhverdata, mistõttu on andmevahetuskiirus väike;
- See ei sünkroniseeri teistel kiirustel töötavaid porte.
Seadmed võrgu, segmentide ja alamvõrkude struktureerimiseks
Seadmeid nagu sillad, switchid, ruuterid ja lüüsid kasutatakse sidevõrkude loogiliseks struktureerimiseks (Joonis 3.6).
Sild (bridge).See jagab võrgu loogilisteks segmentideks ja sõnumid edastatakse ühest segmendist teise üle silla pordi, kui vastuvõtja unikaalne võrguaadress (MAC [1]) kuulub vastavasse segmenti. See seade sisaldab mõlema segmendi üksuste aadressitabelit ja side käib järgnevate sammude jadana:
- Andmepaketi vastuvõtmisel algatatakse lähteaadressi ja sihtaadressi kontroll. Tabelis on esitatud igas segmendis oleva üksuse individuaalne aadress.
- Kui sihtaadressi ei ole kirjutatud tabelisse, tuleb pakett edastada kõikidesse segmentidesse. Sihtaadressi puudumisel tabelist lisatakse see võimalusel sinna automaatselt.
- Sild edastab paketi vastavale segmendile, kui sihtaadress on kirjutatud tabelisse.
- Kui lähteaadress ja sihtaadress on samas segmendis, ei edasta sild andmepaketti teise segmenti.
Sildade peamine eesmärk on filtreerida segmentidevahelistliiklust, et vähendada ummikuid suuremate kohtvõrkude puhul. Sillad võivad tegutseda kui eraldiseisvad seadmed või olla osa arvutist. Sillad tegutsevad OSI[2]võrgumudeli kanalikihis – andmepakettide tasandil. Need leiavad rakendust võrkudes, mis on ehitatud kontsentraatorite/hubidega, et limiteerida andmepakettide valet edastamist või ühendada kaht eemalasuvat lokaalvõrku üheks. Sarnaselt, eraldavad need ühe konkreetse segmendi liikluse ülejäänud osa liiklusest ja tõstavad kogu võrgu mahtu ning kiirust. Kaks lokaalset võrku, mis on silla abil ühendatud, on füüsiliselt küll erinevad, kuid loogiliselt siiski üks võrk.
Switch (kommutaator).See on uuema generatsiooni sild, mis kindlustab informatsiooni paralleelse töötlemise. Switchi kasutatakse kõige laialdasemalt tööjaamade ühendamiseks täht-topoloogia võrkudes. See suurendab võrgu andmevahetuskiirust. Välimuselt sarnaneb see hubiga kuid siiski on kommutaator sellest oluliselt intelligentsem seade. Hub edastab vastuvõetud signaali kõigisse portidesse, switch seevastu filtreerib informatsiooni ning edastab selle ainult sihtseadmetele. Switch on mitme pordiga sild ja tegutseb järgneva sammujadana:
Paketi saabumisel kindlasse switchi porti kontrollib see, kas pakett on korralikult vastu võetud, seejärel viitab oma tabelile, et kindlaks teha, kas selles on vastuvõtja MAC aadressi kirje.
Kui MAC aadress puudub tabelist, edastab kommutaator andmepaketi kõigisse oma portidesse ja saab vastuse sihtseadmelt. Vastavustetabelisse tehakse kirje, mis näitab, milline väljundport sobitati selle konkreetse MAC aadressiga. Kõik järgnevad sama aadressi kandvad andmepaketid edastatakse otse vastavasse porti.
Kommutaator edastab paketi otse vastavasse porti, kui on olemas MAC aadressi kirje.
Eksisteerib kolme tüüpi vastuvõtja aadresse (andmeplokkide edastusviisi): leviedastus (broadcast), multiedastus (multicast), üksikedastus (unicast). Leviedastusaadressi puhul saadetakse pakett kõigisse portidesse, samal ajal kui multiedastusaadressi puhul saadetakse pakett eelnevalt kindlaks määratud portidesse. Üksikedastus aadressi puhul saadetakse pakett ainult ühte porti, mis omakorda tõstab võrgu turvalisust, mahtu ja kiirust.
Switchi eritüüpe eristatakse sõltuvalt sellest, millist OSI mudeli võrgukihti need kasutavad tegutsemiseks. Tavapärased switchid töötavad OSI mudeli teise kihi baasil. Kõrgema klassi kommutaatorid töötavad OSI mudeli kolmanda ja neljanda kihi baasil. Need switchid toimivad ruuterile sarnaselt. Tavaliselt on nende ühendus limiteeritud ühe MAC aadressiga ja ühenduse ülekande kiirus on ka limiteeritud.
Teised switchi spetsiifilised tunnused on järgmised:
- Omab iga pordi jaoks spetsiaalset protsessorit, mis töötleb sissetulevaid andmepakette (kaadreid) ülejäänud portide protsessoritest eraldi;
- Võimaldab igal tööjaamal edastada andmeid üle ülekandemeediumi ilma teiste tööjaamadega konkureerimata;
- Kontrollib sellesse ühendatud seadmete MAC aadresse;
- Tõlgib andmepakette ühest standardist teise (näiteks Ethernetist FDDI-sse);
- Lingib mitmed eraldiseisvad seadmed ja võrgusegmendid, millest igaühel võib olla veel sellesse ühendatud terminale;
- Puhverdab andmed (salvesta-ja-edasta) enne vastuvõtja ühendusparameetrite tuvastamist;
- Kommutaatorid suhtlevad omavahel täisdupleks-režiimis, mis võimaldab andmeid edastada ja vastu võtta samaaegselt.
Joonis 3. 6. Ruuteri [64]
Ruuter (Marsruuter) on eraldiseisev seade, mida kasutatakse infopakettide jaotamiseks erinevate võrkude või võrgusegmentide vahel. Ruuterina saab kasutada ka tavalist arvutit. Erinevalt hubidest, sildadest ja madalama taseme switchidest töötab ruuter OSI võrgukihis IP aadressidega, mitte MAC aadressidega. Sillaga võrreldes isoleerib ruuter liiklust efektiivsemalt, kasutades individuaalsete sõlmede aadresse. Kui võrgus lingitakse kindel seade ruuteri abil, jääb selle MAC aadress varjatuks. Ruuterid saavad valida parima otsetee kindlale aadressile võimalike olemasolevate marsruutide hulgast. Ülekande marsruudi määramiseks ja andmepakettide edastamiseks kasutab ruuter enda marsruutimistabelit, milles on teiste ruuterite IP aadressid salvestatud. Ruuter genereerib selle tabeli ise, kogudes vastavat infot, muutuste ilmnemise korral uuendab tabelit teiste ruuterite abil. Ruuteri poolt tehtavat tööd (Joonis 3.6) saab illustreerida järgneva näitega:
Võrk A koosneb seadmetest А1 ja A2. Võrk B koosneb seadmetest B1 ja B2. Mõlemad võrgud on ühendatud ruuterite abil. Kui andmed saadetakse seadmelt A1 seadmesse А2, ei edasta ruuter pakette võrku B. Sel viisil on võrgu B liikluse ülekoormamine limiteeritud. Juhul, kui saadetakse andmed seadmest А1 seadmesse B1, edastab ruuter andmed võrku B, kus andmed tuleb vastu võtta seadme B1 poolt.
Ruuteri kasutamine ühendusseadmena vähendab võrguliiklust individuaalsete võrkude vahel ja parandab kohtvõrgu turvalisust.
Lüüsid (gateways).Lüüs ühendab kahte kohtvõrku nagu ka globaalseid võrke, mis ei ühildu ligipääsuprotseduuride ja protokollide poolest (näiteks DeviceNet ja CANopen). Lisaks sellele eristab ja tuvastab erinevate võrkude liiklust kummalgi pool lüüsi. Kõige sagedamini kasutatakse lüüse kohtvõrgu linkimiseks globaalsesse võrku või kahe eemalasetseva kohtvõrgu linkimiseks üle globaalse võrgu.
Võrgumudelid
Mitmed töötlemise, juhtimise, kodeerimise ja muud võrguside andmeüksuste protsessid eeldavad kommunikatsiooniprotsessi läbimise erinevate etappide (kihtide) ja faaside kirjeldamise (modelleerimise) formaliseerimist.
Võrgu mudelid on abstraktsed raamistikud, mis aitavad mõista, disainida ja hallata arvutivõrke. Need mudelid jagavad võrgu funktsioonid erinevateks kihtideks või tasanditeks, kus iga kiht vastutab teatud ülesannete täitmise eest. Mudelite kasutamine võimaldab standardiseerida võrgu komponente ja protsesse, nii et erinevate tootjate seadmed ja protokollid saavad omavahel suhelda ja koostööd teha.
Võrgu mudelite peamised eesmärgid on järgmised:
- Standardiseerimine: Võrgu mudelid aitavad kehtestada ühtseid standardeid, et erinevad võrguseadmed ja tarkvara saaksid sujuvalt koos töötada.
- Modulaarsus: Kihtide jaotamine võimaldab võrgu kujundust hõlpsasti hallata ja muuta. Kui ühe kihi sees tehakse muudatusi, ei mõjuta see tingimata teisi kihte.
- Võrgu disain ja tõrkeotsing: Võrgu mudeleid saab kasutada juhendina, et aidata võrke kujundada ja diagnostika käigus probleeme lahendada. Iga kihi funktsioonid on hästi määratletud, mis lihtsustab tõrkeotsingut.
- Õppimine ja arendamine: Mudelid annavad selge ja struktureeritud ülevaate võrgu tööpõhimõtetest, aidates nii õppijatel kui ka võrguinseneridel süsteeme paremini mõista ja arendada.
OSI võrgumudel (Open Systems Interconnection Model)
OSI võrgumudel kirjeldab baasarhitektuuri, mis jaotab võrguside anmdepakettide vahetamiseks seitsmes iseseisvas kihis (Joonis 3.7). See on välja töötatud Rahvusvahelise Standardiorganisatsiooni (International Standards Organization, ISO) poolt. OSI võimaldab süsteemidel omavahel suhelda. Seda standardit kasutavad võrguseadmete tootjad seadmete, operatiivsüsteemide ja protokollide loomisel, see omab järgmisi spetsiifilisi tunnuseid:
- Iga kiht suhtleb külgnevate kihtidega ainult standardiseeritud protokollide abil;
- Igale kihile on omistatud spetsiifilised funktsioonid; kiht pakub liidest ja teenuseid ülemisele kihile ja sarnaselt kasutab ise alumise kihi teenuseid.
- Kihte eraldatakse liideste järgi;
- Enne seda, kui andmed saadetakse ühest kihist teise, jagatakse see andmepakettideks – need on infoüksused, mida edastatakse ühtsena ühest seadmest teise;
- Võrgutarkvara edastab andmepaketid jadamisi ühest kihist teise, teostades igale paketikihile lisavormindamist või adresseerimist.
- Kasutajapoolel käib andmepakett läbi kihtide tagurpidi järjestuses; iga kiht eemaldab ülekande ajal selle kihi poolt lisatud lisainfo. Kui andmepakett jõuab rakenduskihti, eraldatakse täielikult aadressinfo.
Rakenduskiht (7). See on mudeli kõige ülemine kiht, mis töötab vahendajana tarkvararakenduste ja võrguteenuste vahel. Sellel töötavad protokollid nagu HTTP, FTP, Telnet, SMTP, POP3, IMAP4, SNMP. Kihi põhiülesandeks on juhtida üldist võrgu ligipääsu, andmevoogusid ja vigade parandamist. Selle kihi spetsiifilised tunnused on järgmised:
- Kasutajatel on otsene ligipääs;
- Lülitab sisse programmi seadmed ja töödeldavad andmed, mis tõenäoliselt vahetavad infot teiste tööjaamadega;
- Igale sõnumile lisatakse päis, luues sellega informatsiooni struktuuri, mis identifitseerib edastava ja vastuvõtva tööjaama.
Esitluskiht (6). See määrab kindlaks andmevahetuse formaadi. Siin esitatakse andmed universaalsetes andmepakettides. Vastuvõtja poolel konverteeritakse andmed universaalsetest andmepakettidest vastuvõtva jaama esitluskihi poolt kasutatavasse formaati. Selle kihi tunnusteks on:
- Esitluskihi sõnumid muudetakse edastamiseks ja vastuvõtjale arusaamiseks mugavasse formaati.
- Võimaldab andmete pakkimist, andmete krüpteerimist autoriseerimata ligipääsu ära hoidmiseks ja protokollide transleerimist, et võimaldada erinevate seadmete ja operatiivsüsteemide vahelist sidet;
- Igale sõnumile lisatakse päis, mis sisaldab infot pakkimise ja krüpteerimise meetodite ning andmete kirjutamise formaadi kohta.
Seansikiht (5). See kiht loob seansikanali kahe võrguseadme vahel. Programmide vahel on iga seansi jooksul dialoog. Seansid võimaldavad kahesuunalist sidet täisdupleks-režiimis või pooldupleks-režiimis. Ühendusmeetod on kirjutatud seansikihi päisesse. Seansikiht juhib ja sünkroniseerib andmeülekannet ning kaitseb ülekande katkestuste eest. Seansikihi protokollide hulgas on sellised liidesed nagu Network Basic Input/Output System (NetBIOS), Berkeley UNIX soklid (Sockets), Windows Sockets (Winsock).
Transpordikiht (4). See teostab andmepakettide transporti täpses jadas ilma vigade ja kadudeta. Lisaks on see kiht võimeline liiklust optimeerima, ühendades eelnevaid mittetäielikke andmepakette. Sellel kihil töötavad transpordiprotokollid nagu TCP, UDP ja domeeninimesüsteemi (DNS) teenus. Transpordikihi omadused on järgmised:
- Kindlustab andmeedastuse kaitse;
- Valmistab ette kontrollsummad, mis võimaldavad tuvastada ja parandada andmeedastuse ajal tekkivaid vigu;
- Arhiveerib ülekantud andmed vea ilmnemise korral edastamiseks;
- Lisab sõnumi päisesse kontrollsumma ja andmepaketi positsiooni andmed;
- Vastuvõtvas jaamas pakib andmepaketid lahti ja korrastab need algsesse järjekorda, millele järgneb nende vastuvõtmise kinnituse saatmine.
Võrgukiht (3).See adresseerib sõnumid ja määrab kindlaks marsruudi, mida mööda andmepaketid kantakse üle lähtejaamast sihtjaama. Aadressid lisatakse sõnumitele päisevormis. Kiht jälgib liiklust ja juhib andmeprioriteete (teenusekvaliteet, Quality of Service, QoS). IP-protokoll ja ruuterid töötavad antud kihi baasil.
Kanalikiht (2). See kiht saadab andmekaadreid (sõnumeid) võrgukihilt füüsilisele kihile. See koosneb kahest alamkihist: – meediumpöörduse juhtimiskiht (Media Access Control, MAC) ja loogilise lüli juhtimiskiht (Logical Link Control, LLC). MAC eraldab tööjaamadele ligipääsu operatiivmeediumile ja defineerib MAC aadressid. LLC määrab kindlaks loogilise struktuuri. Vastuvõtja poolel pakib andmelülikiht füüsilise kihi järjestikbitid andmekaadrite formaati.
Iga kaadri saatmisele järgneb selle saabumise kinnituse genereerimine. Kaadrid, mille kohta ei ole vastuvõtmise kinnitust, või mis on viga saanud, edastatakse uuesti. Silld- ja kommutaatorseadmed töötavad kanalikihi baasil.
Füüsiline kiht (1). See kiht pakub kaadrites baitide ja bittide krüpteerimist elektriliste või valgussignaalide moel, nagu ka nende edastamist võrgumeediumile (kaabel). Lisaks sellele teostab see järgnevaid põhifunktsioone:
- Defineerib kaablite ühendamisviisid võrgujaamade väljundterminalidesse;
- Defineerib andmeedastustehnika mööda võrgukaablit, nagu ka andmekrüpteerimise ja bittsünkroniseerimise;
- Määrab ära iga biti kestuse ja selle, kuidas bitid muudetakse vastavaks elektriliseks või valgusimpulsiks võrgukaabli jaoks.
Sellel tasandil opereerivad seadmed on võrgukaardid, kordistajad (doubler), kontsentraatorid ja konverterid.
TCP/IP mudel (Transmission Control Protocol/Internet Protocol Model)
TCP/IP mudel (Transmission Control Protocol/Internet Protocol Model)
- Ajalugu ja taust: TCP/IP mudel töötati välja 1970. aastate lõpus ja 1980. aastate alguses Ameerika Ühendriikide Kaitseministeeriumi projektina, mis pidi võimaldama erinevate arvutisüsteemide vahelist suhtlust ja andmeedastust. Mudel keskendub interneti- ja võrguühenduste loomisele, mistõttu on see aluseks tänapäeva internetile.
- Kihtide kirjeldus:
- Võrgu liidesekiht (Network Interface Layer): Hõlmab füüsilisi ja andmesideühendusi, mis vastutavad andmepakettide edastamise eest kohaliku võrgu (LAN) piires.
- Internetikiht (Internet Layer): Hoolitseb IP-aadresside määramise ja andmepakettide marsruutimise eest võrkude vahel.
- Transpordikiht (Transport Layer): Pakub usaldusväärset andmeedastust protokollide kaudu nagu TCP (Transmission Control Protocol) ja UDP (User Datagram Protocol).
- Rakenduskiht (Application Layer): Toetab rakendusi ja teenuseid, nagu HTTP (Hypertext Transfer Protocol), FTP (File Transfer Protocol), SMTP (Simple Mail Transfer Protocol) ja DNS (Domain Name System).
- Tähtsus: TCP/IP mudel on praktiline ja keskendub internetiprotokollidele, mistõttu on see de facto standard tänapäeva interneti ja võrkude tööpõhimõtete mõistmiseks.
Võrgumudelid ja arhitektuurid
Lisaks OSI ja TCP/IP mudelitele on veel mitmeid teisi võrgu mudeleid ja arhitektuure, mida on kasutatud erinevates kontekstides ja tehnoloogiates. Siin on mõned neist:
1. DoD mudel (Department of Defense)
DoD (Department of Defense) võrgumudel töötati välja USA Kaitseministeeriumi poolt enne OSI mudelit. See töötati välja koos TCP/IP protokollidega osana ARPAneti projektist. Seetõttu tuntakse DoD ka TCP/IP mudeli nime all. DoD koosneb neljast kihist (Joonis 3.8):
- Rakenduskiht (application layer) – kõige kõrgem mudeli kiht, mis täidab OSI mudeli kolme kõrgema kihi funktsioone;
- Transpordikiht (transport layer) – vastab OSI mudeli transpordikihile;
- Internetikiht (internetworking layer) – vastab OSI mudeli võrgukihile.
- Võrguliidese kiht (network interface) – vastab OSI mudeli kanali- ja füüsilisele kihile.
2. NetWare mudel (Novell NetWare Model)
- Taust: Novell NetWare oli 1980ndatel ja 1990ndatel üks populaarsemaid võrguoperatsioonisüsteeme. NetWare töötas välja oma võrgu mudeli, mis oli mõeldud eelkõige failide ja printerite jagamiseks lokaalses võrgus.
- Kihtide kirjeldus:
- Füüsiline kiht (Physical Layer): Hõlmab võrgukaableid ja riistvara ühendusi.
- Andmesidekiht (Data Link Layer): Pakub mehhanisme, nagu MAC-aadressid ja viga parandavad protokollid.
- Võrgukiht (Network Layer): Pakub marsruutimist ja andmepakettide edastamist erinevate alamsüsteemide vahel.
- Transpordikiht (Transport Layer): Vastutab andmeedastuse usaldusväärsuse eest.
- Seansikiht (Session Layer): Haldab andmevoogude seansse, näiteks kasutaja autentimist ja ühenduse haldamist.
- Tähtsus: Kuigi NetWare ei ole tänapäeval laialdaselt kasutusel, oli see oluline võrgu mudel varajastes LAN-ides ja pakkus palju võrgu- ja failijagamise teenuseid.
3. AppleTalk mudel
- Taust: AppleTalk oli Apple Inc. poolt välja töötatud võrguprotokollide komplekt, mis oli mõeldud kasutamiseks Apple’i seadmetes 1980ndatel ja 1990ndatel.
- Kihtide kirjeldus:
- Füüsiline kiht (Physical Layer): Hõlmab füüsilist ühendust, nagu kaablid ja signaalid.
- Lingikiht (Link Layer): Pakub põhilisi andmeedastuse teenuseid.
- Võrgukiht (Network Layer): Vastutab marsruutimise ja võrgu aadressimise eest.
- Transpordikiht (Transport Layer): Pakub usaldusväärset andmeedastust ja vigade parandust.
- Rakenduskiht (Application Layer): Pakub kõrgema taseme teenuseid, nagu failiedastus ja printerite jagamine.
- Tähtsus: AppleTalk oli mõeldud lihtsaks ja intuitiivseks võrgulahenduseks Apple’i kasutajatele, kuid seda asendasid lõpuks laialdasemad ja standardiseeritumad protokollid nagu TCP/IP.
4. IBM SNA mudel (Systems Network Architecture)
- Taust: IBM töötas välja SNA (Systems Network Architecture) 1970ndatel, et toetada ettevõtte andmetöötlusvõrke, eriti suurarvutite ja terminalide vahelist suhtlust.
- Kihtide kirjeldus:
- Füüsiline kiht (Physical Layer): Hõlmab riistvara ühendusi ja signaali edastust.
- Andmesidekiht (Data Link Layer): Tagab andmeühenduse töökindluse ja voogude juhtimise.
- Võrgukiht (Path Control Layer): Hoolitseb andmevoogude marsruutimise ja suunamise eest võrgu erinevate osade vahel.
- Transpordikiht (Transmission Control Layer): Vastutab andmeedastuse usaldusväärsuse ja terviklikkuse eest.
- Seansikiht (Data Flow Control Layer): Haldab seansse ja andmevoogusid suurarvuti ja terminalide vahel.
- Esitluskiht (Presentation Services Layer): Pakub andmete kodeerimist ja vormindamist.
- Rakenduskiht (Transaction Services Layer): Pakub rakendusteenuseid, mis võimaldavad kasutajatel andmeid töödelda ja vahetada.
- Tähtsus: SNA oli üks esimesi laialdaselt kasutatud võrgumudeleid ettevõtete andmetöötlussüsteemides, eriti suurarvutite keskkondades.
5. Hybriid mudelid
- Taust: Hybriid mudelid kombineerivad mitme võrgu mudeli omadusi, et saavutada konkreetsete süsteemide ja võrkude nõuded. Need mudelid on sageli organisatsioonide või tootjate spetsiifilised lahendused, mis ei vasta täielikult ühele standardiseeritud mudelile.
- Näited:
- FDDI (Fiber Distributed Data Interface): Kasutas oma võrgu mudelit, mis sisaldas elemente nii OSI kui ka TCP/IP mudelitest ja oli mõeldud suure jõudlusega optiliste võrkude jaoks.
- ATM (Asynchronous Transfer Mode): Võrgu mudel, mis integreeris andmeside-, heli- ja videokanalid üheskoos ja põhines 53-baidi pikkustel rakkudel. See mudel ei vastanud täielikult OSI mudelile, kuid laenas mõned elemendid sellest.
Kuigi OSI ja TCP/IP mudelid on kõige tuntumad ja laialdaselt kasutatavad võrgu mudelid, on ajaloos eksisteerinud ja endiselt olemas mitmeid teisi mudeleid, mis on mõeldud konkreetseteks kasutusjuhtudeks või lahendusteks. Nende mudelite väljatöötamine ja kasutamine on olnud oluline osa võrguarhitektuuride ja -protokollide arengus ning paljud neist on kujundanud tänapäevaseid võrgustandardeid ja -tehnoloogiaid.
Võrgumudelite ajalugu ja areng
1960: võrkude algusaeg ja areng
Võrkude varajane areng algas 1960ndatel, kui arvutite vaheliste ühenduste loomise vajadus kasvas. Sel ajal olid võrguühendused enamasti punkt-punkt tüüpi, kus iga ühendus loodi käsitsi. Standardid puudusid, mis muutis eri süsteemide vahelise suhtluse keeruliseks.
- Paul Baran ja pakettside: 1960ndate alguses töötas Paul Baran USA-s välja pakettside kontseptsiooni. See võimaldas andmeid edastada väikeste pakettidena eri suundades, parandades võrgu töökindlust ja kiirust. Pakettside kontseptsioon oli aluseks hilisematele võrkudele, sealhulgas ARPANETile.
- ARPANET: 1969. aastal käivitati ARPANET, esimene pakettsuunamisega võrk, mis kujunes hiljem interneti eelkäijaks.
Sel perioodil ei olnud ühtset mudelit, mis reguleeriks, kuidas võrgud peaksid toimima. Võrkude disain ja protokollid loodi pigem konkreetsete vajaduste põhjal, mitte standardiseeritud mudelite järgi.
1970: standardiseerimise algus ja TCP/IP mudeli sünd
1970ndatel hakati arendama esimesi võrgu standardiseerimise katseid ja arhitektuure, mis määratleksid, kuidas võrgukomponendid omavahel suhtlema peaksid.
- TCP/IP mudel: 1970ndate lõpus ja 1980ndate alguses töötati välja TCP/IP mudel, mis loodi ARPANETi vajadustest lähtuvalt. TCP/IP mudel keskendus interneti ja võrguühenduste loomisele. See muutus üheks kõige olulisemaks ja laialdasemalt kasutatavaks mudeliks tänapäeva võrkude loomisel.
- DoD mudel: TCP/IP mudel oli osa suuremast DoD mudelist (Department of Defense Model), mis keskendus usaldusväärsele andmeedastusele eri võrkude vahel ning pakkus turvalisust ja töökindlust.
1980: OSI mudeli sünd ja globaliseerumine
1980ndatel suurenes rahvusvaheline koostöö arvutivõrkude standardiseerimise valdkonnas. Selle tulemuseks oli OSI mudeli loomine.
- ISO ja OSI mudel: ISO töötas välja OSI mudeli, mis avaldati ametlikult 1984. aastal. OSI mudel koosneb seitsmest kihist, millest igaüks täidab spetsiifilisi funktsioone võrgu andmeedastuse korraldamiseks. Mudel pidi saama universaalseks standardiks kõigile arvutivõrkudele.
- OSI mudeli olulisus: Kuigi OSI mudel ei saanud kunagi laialdaselt kasutatavaks praktilises võrgutöös, eriti TCP/IP mudeli populaarsuse tõttu, on see endiselt oluline õpetamisvahend ja kontseptuaalne raamistik võrguarhitektuuri mõistmiseks.
1990: interneti laienemine ja võrgumudelite konsolideerumine
1990ndatel kasvas internet plahvatuslikult. TCP/IP mudel muutus de facto standardiks, kuna see toetas interneti skaleerimist ja ühenduvust.
- TCP/IP kui interneti selgroog: 1990ndatel laienes TCP/IP kasutus kiiresti ja sellest sai ülemaailmse interneti aluseks. Sellised tehnoloogiad nagu e-post (SMTP), veeb (HTTP) ja domeeninimede süsteem (DNS) kasutasid kõik TCP/IP mudelit.
- Teiste mudelite kadumine: TCP/IP populaarsuse tõusuga hakkasid teised mudelid, nagu NetWare ja AppleTalk, taanduma või sulanduma TCP/IP-ga.
2000 ja edasi: võrguarhitektuuride arenemine ja tulevik
- sajandi alguses on TCP/IP mudel jätkuvalt domineeriv, kuid võrguarhitektuurid ja tehnoloogiad on arenenud, et toetada uusi vajadusi.
- IPv6: IP-aadresside nappuse tõttu töötati välja IPv6, mis laiendas IP-aadressiruumi ja pakkus täiendavaid funktsioone, sealhulgas paremat turvalisust ja võrguliiklust.
- SDN (Software-Defined Networking): Võrgu juhtimise ja kontrolli kontseptsioonid muutusid, kui SDN-i ja NFV (Network Functions Virtualization) tehnoloogiad hakkasid arenema. Need võimaldavad suuremat paindlikkust ja juhtimist võrgu infrastruktuuri üle.
- IoT (Internet of Things): IoT seadmete kiire kasv on toonud kaasa vajaduse uute protokollide ja arhitektuuride järele, mis võimaldavad miljonite seadmete omavahelist suhtlust.
Võrgumudelite ajalugu on tihedalt seotud tehnoloogia arenguga ja globaalsete vajadustega. Alates 1960ndate pakettsuunamisest kuni tänapäeva skaleeritavate ja paindlike võrkudeni on võrgumudelid olnud võrgustike kujundamise ja standardimise alus. Kuigi OSI ja TCP/IP mudelid on kõige tuntumad, on olnud ka mitmeid teisi mudeleid, mis on andnud oma panuse võrguarhitektuuride arengusse. Võrgumudelite areng jätkub, et vastata uute tehnoloogiate ja tuleviku vajadustele.
Võrguprotokollid
Protokoll on informaatikas ja telekommunikatsioonis kasutatavate reeglite, protseduuride ja formaatide kogum, mis reguleerib andmevahetust võrgus olevate seadmete vahel. Protokollid tagavad, et andmeid saab edastada turvaliselt, usaldusväärselt ja mõistetaval viisil erinevate süsteemide ja seadmete vahel.
Võrkude alamteemad, kuhu protokollid võivad kuuluda:
- Andmeside protokollid:
- Käsitleb erinevaid protokolle, mis võimaldavad andmeedastust võrgus. Näiteks TCP/IP, HTTP, FTP ja paljud teised, mis tagavad andmete liikumise internetis või muudes võrkudes.
- Võrgu turvalisuse protokollid:
- Fookuses on protokollid, mis tagavad andmete turvalisuse võrgus. SSL/TLS, IPSec ja muud krüpteerimisprotokollid on mõeldud andmete kaitsmiseks pahatahtlike rünnakute ja volitamata juurdepääsu eest.
- Võrgu haldamise protokollid:
- Hõlmab protokolle, mis aitavad hallata ja seirata võrguseadmeid ja -ühendusi. Näiteid on SNMP (Simple Network Management Protocol), mis võimaldab võrguseadmete haldamist ja jälgimist.
- Rakendusprotokollid:
- Spetsiifilised protokollid, mis reguleerivad konkreetse rakenduse andmevahetust. Näiteks SMTP (Simple Mail Transfer Protocol) e-posti saatmiseks või MQTT (Message Queuing Telemetry Transport) kasutatakse sageli IoT (Internet of Things) seadmetes.
Protokollid võivad kuuluda mitmesse alamteemasse, sõltuvalt nende funktsioonidest ja kasutusaladest. Nende mõistmine ja rakendamine on võtmetähtsusega, et tagada võrkude efektiivne ja turvaline toimimine.
Võrguprotokollide kasutusalad ja ajalugu
Võrguprotokollid on digitaalse kommunikatsiooni nurgakivid, mis reguleerivad andmete vahetust arvutivõrkudes. Need protokollid kindlustavad, et erinevad seadmed ja süsteemid suudavad omavahel suhelda, hoolimata nende tehnilistest erinevustest.
Miks on võrguprotokollid vajalikud?
- Andmeedastus: Protokollid nagu TCP (Transmission Control Protocol) ja IP (Internet Protocol) tagavad andmete usaldusväärse liikumise lähtepunktist sihtkohta. Nad jagavad teabe pakettideks, suunavad need õigesti ja taastavad algse sõnumi.
- Turvalisus: Turvaprotokollid, nagu SSL/TLS (Secure Sockets Layer/Transport Layer Security), krüpteerivad andmeid, et kaitsta neid pahatahtlike rünnakute ja volitamata juurdepääsu eest.
- Ühilduvus: Protokollid võimaldavad eri tüüpi ja tootjate seadmetel ning rakendustel suhelda, mis on oluline nii kodu- kui ka ärikeskkondades.
Kuidas võrguprotokollid töötavad?
Võrguprotokollid toimivad kihtide süsteemina, mis on määratletud OSI (Open Systems Interconnection) mudeli kaudu. Iga kiht täidab teatud funktsioone ja suhtleb ainult oma naaberkihtidega. Näiteks:
- Transportkiht (nagu TCP) tagab andmete järjepideva ja usaldusväärse edastuse.
- Võrgukiht (nagu IP) tegeleb andmete suunamisega võrkudes.
- Rakenduskiht (nagu HTTP) võimaldab rakendustel kasutada võrguressursse.
Võrguprotokollide ajalugu
Võrguprotokollide ajalugu ulatub tagasi 1960ndatesse, mil arendati välja esimesed arvutivõrgud:
- 1960ndad: ARPANET’i loomine, mis oli esimene laiaulatuslik pakettkommutatsioonivõrk ja Interneti eelkäija.
- 1974: TCP/IP protokollide tutvustamine Vinton Cerfi ja Bob Kahni poolt, mis on tänapäeval Interneti standardprotokollide komplekt.
- 1980ndad: OSI mudeli arendamine, et standardiseerida võrkudevahelist suhtlust eri süsteemides.
- 1990ndad: WWW (World Wide Web) areng ja HTTP protokolli kasutuselevõtt.
- 2000ndad: Turvalisuse paranemine ja uute protokollide, nagu IPv6, arendamine, mis aitavad lahendada aina kasvava seadmete arvu nõudmisi.
Tänapäeval jätkub võrguprotokollide areng, et vastata uutele turvalisuse ja tehnilisele nõudmistele. Need protokollid tagavad, et võrgud püsivad töökindlad, turvalised ja suudavad toetada jätkuvat digitaalset innovatsiooni.
TCP/IP
TCP/IP protokollid tagavad usaldusväärse side erinevate mehhanismide kaudu, mis on loodud selleks, et andmed, mis saadetakse võrgu kaudu, jõuaksid sihtkohta täpselt ja õiges järjekorras. Siin on, kuidas TCP (Transmission Control Protocol), mis on TCP/IP protokollide põhikomponent, tagab selle usaldusväärsuse:
1. Ühendusepõhine suhtlus
TCP on ühendusepõhine protokoll, mis tähendab, et enne andmete saatmist tuleb saatja ja vastuvõtja vahel luua ühendus. See ühendus luuakse protsessi abil, mida nimetatakse kolmik-käepigistuseks:
- SYN: Saatja algatab ühenduse, saates vastuvõtjale SYN (synchronize) sõnumi.
- SYN-ACK: Vastuvõtja kinnitab SYN sõnumit, saates tagasi SYN-ACK (synchronize-acknowledge) sõnumi.
- ACK: Saatja vastab ACK (acknowledge) sõnumiga, mis lõpetab käepigistuse ja loob ühenduse.
2. Andmete järjestamine
TCP jagab andmed väiksemateks pakettideks ja määrab igale paketile järjekorranumbri. See aitab tagada, et andmed pannakse sihtkohas õiges järjekorras kokku, isegi kui paketid saabuvad segamini. Vastuvõtja kasutab järjekorranumbreid pakettide sortimiseks ja andmete õigeks kokkupanemiseks.
3. Vigade kontroll
Iga TCP pakett sisaldab kontrollsumma välja, mida kasutatakse andmete vigade kontrollimiseks sihtkohas. Kui kontrollsumma ei ühti andmetega, näitab see, et andmed on edastamise ajal rikutud, misjärel vastuvõtja palub rikutud paketi uuesti saata.
4. Kinnitused ja uuesti saatmised
Pärast ühe või mitme paketi vastuvõtmist saadab vastuvõtja saatjale ACK kinnituse eduka kättesaamise kohta. Kui saatja ei saa teatud aja jooksul (määratud taimauti järgi) ACK-i, eeldab ta, et pakett on kadunud või rikutud ja saadab selle uuesti. See tagab, et ülekande ajal ei kao ühtegi andmet.
5. Voogude kontroll
TCP kasutab voo kontrolli mehhanisme, et vältida vastuvõtja ülekoormamist. Vastuvõtja teatab tagasi saatjale, kui palju andmeid ta korraga vastu võtta suudab (akna suurus). Saatja peab piirama saadetud andmete hulka, et mitte ületada seda akent, mis võimaldab vastuvõtjal andmeid töödelda ilma puhvri ületäitumiseta.
6. Ümbruse kontrolli tööpõhimõte TCP-s
TCP rakendab ka umbruse kontrolli algoritme, nagu aeglane algus, umbruse vältimine ja kiire taastumine, et kohandada andmete edastamise kiirust võrgu tingimustest lähtuvalt. Need mehhanismid aitavad minimeerida umbruse riski, mis võib põhjustada pakettide kadu ja vähendada võrgu jõudlust.
Ümbruse kontroll TCP-s on protsess, mis aitab vältida võrgu ülekoormust, kohandades andmete saatmise kiirust. Kui võrk on ülekoormatud, võib see põhjustada pakettide kadumist, mis omakorda võib vähendada andmeedastuse efektiivsust ja suurendada viivitusi. TCP kasutab mitmeid mehhanisme, et tuvastada ja reageerida võrgu umbrusele:
- Aeglane algus: Kui ühendus algab, suurendab TCP järk-järgult akna suurust ehk andmete hulka, mida võib saata kinnitust ootamata, alustades väikesest väärtusest. See kiirus suureneb eksponentsiaalselt, kuni saavutatakse umbrusetase või andmeakna ülempiir.
- Umbruse vältimine: Kui umbrus on tuvastatud, tavaliselt pakettide kadumise kaudu, aeglustub andmete saatmise kiiruse kasv või see isegi väheneb. TCP kohandab oma saatmise kiirust, et vähendada võrgukoormust.
- Kiire taastumine: Kui tuvastatakse üksikute pakettide kadu, võimaldab TCP kiiret taastumist, kus pakettide saatmise kiirust ei vähendata drastiliselt, vaid korrigeeritakse mõõdukalt, eeldades, et umbrus ei ole püsiv.
- Kadumise tuvastamine: TCP kasutab mitmeid mehhanisme nagu kolmekordne kordusvastus ja aegumistaimerid, et tuvastada kadunud pakette, mis võivad viidata umbrusele.
Need mehhanismid aitavad tagada, et võrk ei satuks seisundisse, kus liigne andmete hulk põhjustab ulatuslikke viivitusi või andmekadusid. TCP ümbruse kontroll on kriitiline, et säilitada võrgu stabiilsus ja optimeerida andmeedastuse tõhusust, eriti suure andmevahetusega keskkondades.
Need omadused teevad TCP-st usaldusväärse transpordiprotokolli, mis sobib rakendusteks, kus andmete täpne kohaletoimetamine on kriitiline, nagu veebilehitsemine, e-kiri, failide ülekanne ja palju muud. Kuigi TCP tagab usaldusväärse andmeedastuse, tegeleb IP (Internet Protocol) andmete marsruutimise ja aadressimisega, tagades, et paketid saadetakse läbi omavahel ühendatud võrkude õigele sihtkohale.
HTTP ja HTTPS protokollID
HTTP (Hypertext Transfer Protocol) on võrguprotokoll, mida kasutatakse andmete edastamiseks World Wide Web’is. See on üks peamisi vahendeid, mille abil veebibrauserid suhtlevad veebiserveritega, võimaldades kasutajatel veebilehti ja muid veebiresursse sirvida.
Kuidas HTTP töötab?
HTTP põhineb klient-serveri mudelil, kus veebibrauser (klient) teeb serverile taotlusi ja server vastab neile. HTTP kasutab TCP/IP protokolle andmeedastuseks, tavaliselt porti 80. Protokolli protsessid toimuvad mitmes etapis:
- Ühenduse loomine: Enne andmete saatmist loob klient TCP-ühenduse serveriga.
- Taotlus (Request): Klient saadab serverile HTTP-taotluse, mis sisaldab meetodit (näiteks GET, POST), URL-i ja versiooni HTTP-st, samuti päised, mis sisaldavad täiendavat teavet taotluse või kliendi kohta.
- Vastus (Response): Server töötleb taotlust ja saadab vastuse, mis sisaldab olekukoodi (näiteks 200 OK, 404 Not Found), mis näitab taotluse täitmise staatust, ning päiseid ja vajadusel ka vastuse sisu (nt HTML-dokument).
- Ühenduse sulgemine: Pärast andmevahetuse lõpetamist ühendus tavaliselt suletakse, kuigi kaasaegsed HTTP versioonid toetavad püsiühendusi, kus mitu taotlust ja vastust võivad liikuda ühe ühenduse kaudu.
HTTP meetodid
HTTP määratleb mitmeid meetodeid, millest kõige tuntumad on:
- GET: Pärib ressursi serverist. GET taotlusi kasutatakse tavaliselt veebilehtede või piltide allalaadimiseks.
- POST: Saadab andmed serverisse. Seda kasutatakse näiteks vormide sisestuste saatmisel.
- PUT: Laeb üles või uuendab ressursi serveris.
- DELETE: Kustutab ressursi serveris.
HTTP staatuskoodid
HTTP vastused sisaldavad staatuskoode, mis teavitavad klienti taotluse tulemusest. Mõned levinumad staatuskoodid on:
- 200 OK: Taotlus õnnestus.
- 301 Moved Permanently: Ressurss on alaliselt teisele aadressile teisaldatud.
- 404 Not Found: Server ei leidnud taotlusele vastavat ressurssi.
- 500 Internal Server Error: Serveris ilmnes ootamatu viga.
Turvalisus
Kuigi HTTP ise ei paku andmete krüpteerimist, kasutatakse turvaliseks andmeedastuseks protokolli HTTPS (Hypertext Transfer Protocol Secure), mis laiendab HTTP-d, lisades andmete krüpteerimise SSL/TLS protokollide abil. HTTPS on oluline veebiliikluse turvalisuse tagamisel, eriti isikuandmete ja makseteabe edastamisel.
HTTP on fundamentaalne veebitehnoloogia, mis toetab interaktiivset ja dünaamilist veebikasutajate kogemust, võimaldades sujuvat andmevahetust brauseri ja serveri vahel.
HTTP (Hypertext Transfer Protocol) ja HTTPS (Hypertext Transfer Protocol Secure) on mõlemad protokollid, mida kasutatakse andmete edastamiseks internetis, kuid neil on olulised erinevused, eriti turvalisuse osas. Siin on peamised erinevused HTTP ja HTTPS vahel:
- HTTP on turvamata protokoll, mis tähendab, et andmed saadetakse lihttekstina. See muudab HTTP kasutamise haavatavaks mitmesuguste rünnakute suhtes, nagu mees-keskel-rünnakud (man-in-the-middle attacks), kus ründaja võib andmeid pealt kuulata või neid muuta.
- HTTPS seevastu kasutab SSL/TLS krüpteerimist (Secure Sockets Layer / Transport Layer Security), et pakkuda turvalist kanalit, isegi kui andmeid edastatakse ebaturvaliste võrkude kaudu. HTTPS krüpteerib kogu edastatava teabe, muutes selle loetamatuks kõigile peale saatja ja vastuvõtja.
Portid
- HTTP kasutab tavaliselt porti 80 andmeedastuseks.
- HTTPS kasutab tavaliselt porti 443, mis on määratletud SSL/TLS liikluse jaoks.
URL-i formaat
- HTTP URL-id algavad tavaliselt “http://”, mis näitab, et ühendus kasutab HTTP protokolli.
- HTTPS URL-id algavad “https://”, mis näitab, et ühendus kasutab turvalist HTTPS protokolli.
Jõudlus
- HTTP on teoreetiliselt kiirem kui HTTPS, sest puudub krüpteerimisega seotud lisakoormus. Siiski on see erinevus kaasaegsete süsteemide puhul sageli tühine, arvestades riistvara ja tarkvara optimeerimisi.
- HTTPS võib põhjustada veidi suuremat latentsust, sest krüpteerimine ja dekrüpteerimine nõuavad täiendavat arvutusressurssi. Kuid turvalisuse kasu kaalub tavaliselt üles need väikesed jõudluse kaotused.
Privaatsus ja usaldusväärsus
- HTTP ei paku andmete privaatsuse, terviklikkuse ega autentsuse tagamist.
- HTTPS pakub täiendavat privaatsuse taset, kuna andmeid ei saa lugeda ega muuta ilma võtmeteta. Lisaks tagab SSL/TLS, et server, millega kasutaja ühendust võtab, on autentne, mis on kriitiline panganduses, e-kaubanduses ja muudes tundlikku teavet nõudvates rakendustes.
Kokkuvõttes, kuigi HTTPS võib põhjustada väikese jõudluse languse võrreldes HTTP-ga, on see langus tavaliselt tühine võrreldes turvalisuse ja privaatsuse eelistega, mida HTTPS pakub. Seetõttu on HTTPS soovitatav vaikimisi valik peaaegu kõigi kaasaegsete veebirakenduste jaoks.
Protokollide Loomine
Siin on näide lihtsast kliendi-serveri protokollist, mida kasutatakse sageli õppimiseks ja testimiseks. Selle protokolli eesmärk on saata lihtsaid sõnumeid kliendi ja serveri vahel ning saada vastus.
Näide: Echo Protokoll
Eesmärk:
Echo protokoll on väga lihtne – klient saadab serverile sõnumi ja server saadab sama sõnumi tagasi kliendile.
1. Protokolli struktuur
Kasutatud transportkiht:
- TCP (Transmission Control Protocol): See tagab, et andmed saadetakse usaldusväärselt ja järjekorras.
2. Sõnumi formaat
- Päis: Kuna see on lihtne protokoll, päist ei ole vaja. Kogu sõnum on andmed ise.
- Andmed: Sõnum on lihtsalt tekst, mille klient saadab serverile (nt „Tere“).
3. Protsess
Kliendi tegevused:
- Kliendi programm loob TCP-ühenduse serveriga.
- Klient saadab tekstisõnumi (nt „Tere“).
- Klient ootab vastust.
Serveri tegevused:
- Server ootab TCP-ühendust kliendilt.
- Kui ühendus on loodud, server võtab kliendi saadetud sõnumi vastu.
- Server saadab sama sõnumi tagasi kliendile.
4. Protokolli sõnumid
- Klient saadab:
Tere
- Server saadab tagasi:
Tere
5. Näide kommunikatsioonist
Kliendi ja serveri vahel toimuv suhtlus:
- Kliendi sõnum:
TCP Connection established
Client -> Server: "Tere"
- Serveri vastus:
Server -> Client: "Tere"
TCP Connection closed
6. Protokolli kirjeldus:
- TCP port: Echo protokoll kasutab tavaliselt TCP pordi numbrit 7.
- Vastuvõtt ja saatmine: Server vastab iga saadetud sõnumile täpselt sama sisuga.
- Kasutusala: Seda kasutatakse peamiselt võrguühenduste testimiseks ja kontrollimiseks, kas andmeside toimub vigadeta.
Implementatsioon (näide Pythonis):
Serveri osa:
import socket
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind(('localhost', 12345))
server_socket.listen(1)
print("Ootan ühendusi...")
while True:
client_socket, addr = server_socket.accept()
print(f"Ühendus aadressilt: {addr}")
data = client_socket.recv(1024) # Saab sõnumi
if data:
print(f"Kliendilt saadud: {data.decode()}")
client_socket.send(data) # Saadab sama sõnumi tagasi
client_socket.close()
Kliendi osa:
import socket
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client_socket.connect(('localhost', 12345))
message = "Tere"
client_socket.send(message.encode()) # Saadab sõnumi serverile
data = client_socket.recv(1024) # Saab vastuse serverilt
print(f"Serverilt saadud: {data.decode()}")
client_socket.close()
Selgitus:
- Server ootab klientidelt ühendusi, võtab saadetud sõnumi vastu ja saadab sama sõnumi tagasi.
- Klient loob ühenduse serveriga, saadab sõnumi ja ootab vastust.
See on näide väga lihtsast protokollist, mida kasutatakse peamiselt võrguteenuste testimiseks ja harjutamiseks.
Näide: Lihtne Failiedastusprotokoll (SFTP)
Siin natuke keerulisem protokoll, millel on rohkem funktsionaalsust ja mis võiks reaalses olukorras kasutust leida. Selleks näiteks toome lihtsa failiedastusprotokolli (Simple File Transfer Protocol, SFTP), mis ei ole seotud tuntud SSH-ga, vaid on täiesti lihtne ja omaette protokoll, mida saaks kasutada failide edastamiseks serveri ja kliendi vahel.
1. Protokolli eesmärk
Protokoll võimaldab kliendil saata ja vastu võtta faile serverilt. Seda võib kasutada lihtsates võrkudes või spetsiaalsetes süsteemides, kus failide ülekanne on vajalik, kuid keerukamaid protokolle nagu FTP ei soovita kasutada.
2. Transportkiht
- TCP – tagab usaldusväärse ühenduse ja andmete edastamise kindlas järjekorras.
3. Sõnumi formaat ja struktuur
Sõnumid koosnevad järgmistest elementidest:
- Tüüp: määrab, kas see on päring, vastus või tõrketeade.
- Faili nimi: sisaldab faili nime (kui sobilik).
- Andmed: edastatava faili sisu või päringutega seotud andmed.
Päise struktuur (fikseeritud pikkusega osad):
Tüüp (1 bait) | Faili nimi (varieeruv) | Andmed (varieeruv) |
---|
Sõnumitüübid:
- UPLOAD (1): Klient soovib saata faili serverile.
- DOWNLOAD (2): Klient soovib faili alla laadida serverilt.
- ACK (3): Server kinnitab, et fail on edukalt saadud.
- ERROR (4): Server saadab vea, kui fail puudub või esineb mõni tõrge.
4. Protsess
Faili üleslaadimine (UPLOAD)
- Klient saadab serverile sõnumi tüübiga 1 (UPLOAD), millele on lisatud faili nimi ja andmed.
- Server vastab sõnumiga 3 (ACK), kui fail on edukalt salvestatud, või sõnumiga 4 (ERROR), kui esineb tõrge.
Faili allalaadimine (DOWNLOAD)
- Klient saadab serverile sõnumi tüübiga 2 (DOWNLOAD), millele on lisatud soovitud faili nimi.
- Server vastab failiga, kui fail eksisteerib, või saadab sõnumi 4 (ERROR), kui faili ei leitud.
5. Protokolli sõnumid
Sõnumi näide faili üleslaadimisel:
- Klient saadab:
[1] [failinimi.txt] [Faili andmed...]
- Server vastab edukal salvestamisel:
[3] [ACK]
- Server vastab, kui tekib tõrge:
[4] [ERROR: Faili ei saa salvestada]
Sõnumi näide faili allalaadimisel:
- Klient saadab:
[2] [failinimi.txt]
- Server vastab failiga, kui see eksisteerib:
[1] [failinimi.txt] [Faili andmed...]
- Server vastab, kui faili ei eksisteeri:
[4] [ERROR: Faili ei leitud]
6. Tõrkehaldus
- Kui server saab tundmatu sõnumitüübi, saadab see kliendile veateate (ERROR).
- Kui faili üleslaadimise käigus tekib viga (nt ei saa kirjutada kettale), saadab server ERROR-sõnumi.
- Kui faili ei leita allalaadimise korral, saadab server samuti ERROR-sõnumi.
7. Näide protokolli implementatsioonist (Pythonis)
Serveri osa:
import socket
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind(('localhost', 12345))
server_socket.listen(1)
print("Server ootab ühendusi...")
while True:
client_socket, addr = server_socket.accept()
print(f"Ühendus aadressilt: {addr}")
data = client_socket.recv(1024)
message_type = data[0]
if message_type == 1: # UPLOAD
filename = data[1:].decode('utf-8')
with open(filename, 'wb') as f:
f.write(client_socket.recv(1024)) # Salvestab faili
client_socket.send(b'\x03') # ACK
elif message_type == 2: # DOWNLOAD
filename = data[1:].decode('utf-8')
try:
with open(filename, 'rb') as f:
client_socket.send(f.read()) # Saadab faili sisu
except FileNotFoundError:
client_socket.send(b'\x04File not found') # ERROR
client_socket.close()
Kliendi osa:
import socket
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client_socket.connect(('localhost', 12345))
# Näide faili üleslaadimisest
message = b'\x01' + b'failinimi.txt'
client_socket.send(message)
with open('failinimi.txt', 'rb') as f:
client_socket.send(f.read())
# Näide faili allalaadimisest
message = b'\x02' + b'failinimi.txt'
client_socket.send(message)
data = client_socket.recv(1024)
print("Serverilt saadud andmed:", data.decode())
client_socket.close()
8. Kasutusala
- Lihtsad failiserverid: Seda saab kasutada väikestes võrkudes, kus on vaja vahetada faile kiirelt ja lihtsalt.
- Spetsiifilised rakendused: Saab integreerida süsteemidesse, kus on vajalik failide edastamine, näiteks logifailide või konfiguratsioonifailide vahetamine automaatsete protsesside vahel.
9. Laiendused
- Krüpteerimine: Võib lisada turvalisuse taseme, krüpteerides andmed enne nende saatmist.
- Voogude haldamine: Kui failid on suured, võib kasutada tükeldamist ja edastada faile plokkidena.
Seda tüüpi protokolli saab reaalselt kasutada väikestes süsteemides failide edastamiseks, kus keerukamaid lahendusi pole vaja.