TCP/IP protokoll puust ja punaseks

Allikas: Kuutõrvaja

Taustinfo

Arvutite võrku ühendamiseks on mitmeid võimalusi: otsekaabliga, raadiolingiga või millega iganes. Samamoodi on tohutult palju erinevaid võimalusi juba kokku ühendatud arvutite vaheliseks suhtluseks. Tehniliselt lihtsaim sellistest meetoditest on muidugi ühendada kaks arvutit omavahel kaabliga ja kirjutada spetsiaalsed programmid just selle ühenduse tarbeks. Ilmselgelt aga selline ülesehitus ei suuda rahuldada inimeste arengust tekkivaid vajadusi. Praeguseks on internetiga ühendatud juba umbes 150 miljonit arvutit ja seega oleks vaja iga paari vahele neist juhe tõmmata – ilmvõimatu üritus.

OSI

Seetõttu asutigi välja töötama erinevaid võimalusi võrkude loomiseks (nendest võib lähemalt lugeda Interneti loengumaterjalidest). Kui aga füüsiline ühendus on olemas, siis tuleb ka tarkvaralise poole pealt universaalseid lahendusi pakkuda. Selliseks ideeks ongi OSI (Open System Interconnection) standard, kus on kogu ühenduse pidamine jaotatud kihtideks (kokku 7), millest igaüks tegeleb oma ülesandega, teadmata, et eksisteerivad ka teised kihid.

Osi model.jpg

Selline lahendus pakub rakenduse (tarkvaraprogrammi) kirjutajale teegid (standardsed käsud) ühenduse pidamiseks välismaailmaga – rakenduskiht (Application layer). Nende teekide kasutamisel siirdutakse järjest läbi kõikide kihtide füüsilise kihini (Physical layer). Sellest kihist edastatakse andmed füüsilisse meediumi (andmesidekanalisse), mille erinevustest tuleneb ka vajadus eraldi kihi jaoks. Kahjuks aga formeeriti OSI mudel liiga üldsõnaliselt, mistõttu tänapäeval on OSI vaid põhiideeks protokollide komplekti väljatöötamisel, mitte standard ise.

Protokollid

TCP/IP (Transmission Control Protocol / Internet Protocol) on kihiline protokollide komplekt, mis töötati välja ARPANeti jaoks ning levis sealt edasi ka teistesse võrgutüüpidesse, kaasaarvatud Ethernet, mis on tänapäeval üks levinuimaid. TCP/IP protokolli nimes on küll ainult kaks protokolli, kuid tegelikult koosneb ta neljast protokollist: TCP, IP, UDP ja ICMP. UDP

  • TCP - Transmission Control Protocol – transpordiprotokoll, mis tegeleb rakenduse tasemel andmete vahetusega (Application layer). Sellise protokolli ülesandeks on korrastada IP kihi poolt vastu võetud paketid õigesse järjekorda (loe: IP protokoll) ja edastada need rakendusele, millele need mõeldud olid. Kui esineb mingeid vigu, siis TCP ülesandeks on ka nende lahendamine ja korrigeerimine (kui mitte muud, siis rakendusele veast teatamine). TCP üritab ka võrguühendust optimeerida, aeglustades oma tööd, kui ühendus hakkab umbe minema.
  • UDP - User Datagram Protocol – ehk siis protokoll, mille töö sarnaneb paljuski TCP-ga, ehkki ei paku nii keerukat vigade vältimist ja parandust, kuid selle eest võimaldab võimsamat andmevahetust kahe masina vahel.
  • ICMP - Internet Control Message Protocol – IP protokolli laiendus, mille abil on võimalik mitmet interneti teenused seal hulgas ping (teenus, mille abil testitakse ühenduse olemasolu kahe masina vahel). ICMP võimaldab saata pakette, mis sisaldavad vea-, kontrolli- ja infoteateid.
  • IP – Internet Protocol – selle protokolli ülesandeks on andmevahetus arvutite vahel. Seda protokolli nimetatakse ühenduseta protokolliks, sest IP protokoll ei loo ühendust arvutite vahel, vaid lihtsalt tükeldab edastatava (suure) andmehulga pakettideks, mis peavad ise oma tee ühest arvutist teise leidma. Selline süsteem sarnaneb paljuski meie postisüsteemile, kus kiri pannakse

teele ja igas postijaamas sorteerija otsustab, millise autoga see edasi saadetakse. Kui näiteks Tartu-Tallinn marsruudil on auto täis, siis võidakse kiri saata hoopis Viljandisse (seal tehakse sarnane otsustus jne.), lootuses, et küll ta ükskord ikka kohale jõuab. Tavaolukordades sellist erinevate teede kasutamist arvutisides ei märka (sest elektri kiirus on ikkagi päris suur), küll aga sellisel juhul, kus mõni server on rivist väljas ja edastatav info koormab teisi servereid liiga (nad lihtsalt ootavad järjekorras, et neid edasi saadetaks).

Aadressid

Selline “postisüsteem” nõuab ilmselgelt ka aadresse, mille järgi pakette teele saadetakse. Neid aadresse nimetataksegi IP aadressideks. IP aadressitest on kasutusel olnud mitmeid versioone, praegu on levinuimaks versioon 4 ehk IPv4, mille väljanägemine on järgmine: neli üksteisest punktiga eraldatud arvu 0..255, näiteks: 30.25.126.8. Sellised aadressid on klassifitseeritud neile sisemise struktuuri andmiseks 5-e klassi, millest ainult 3 on kasutusel:

Klassid.jpeg

Kuna arvud 0..255 on täpselt ühe baidi ehk 8 biti pikkused, siis on kogu IP aadressi pikkuseks 32 bitti, mis jaguneb kaheks:

  1. võrguaadress
  2. arvuti aadress

Nende erinevate osade pikkuste järgi ongi IP aadressid klassifitseeritud: A-klass: 8 bitti võrguaadress B-klass: 16 bitti võrguaadress C-klass: 24 bitti võrguaadress.

Iga klassi kõige viimane aadress (C-klassis siis näiteks 211.216.23.255) on eriline aadress, millele saadetud paketid võetakse vastu iga arvuti poolt selles võrgus. Seda nimetatakse broadcast-aadressiks. Esimene aadress (211.216.23.0) seevastu viitab tervele võrgule (network). Selle aadressi järgi käib marsruutimine. Ühtki IP aadressidest ei tohi kastuada korraga mitmele arvutile osutamiseks, sest siis tekiks segadus, millisele arvutile pakett oli mõeldud. Siiski ei tohi unustada aadressiruumi algusega 192.168, mis on jäetud, kohtvõrgus internetiga otseselt mitteühendatud arvutite adresseerimiseks. Ja ka erilist aadressi 127.0.0.1 (loopback), mis on absoluutselt ilma füüsilise tagaplaanita aadress pelgalt tarkvaralistel kaalutlustel (sellest aadressist hakkab kogu andmevahetus üldse). Neid kahte tüüpi aadresse on kasutusel praktiliselt igas arvutis (loopback aadress on igas arvutis, kohtvõrk igas arvutis, milles esineb võrgukaart).

Administraatoritele suurema paindlikuse andmiseks on juurde lisatud veel võimalud defineerida ka alamvõrke (subnet), mis tähendab seda, et võimaldatakse grupeerida arvuteid omavahel erinevatesse võrkudesse. Selline teguviis vähendab aga kasutatavaid aadresse veelgi, sest iga grupi kohta tuleb oma broadcast ja network aadress ja kõikide gruppide kohta kokku veel üks paar.

Marsruutimine

TCP/IP võrgus pakettide vahetust nimetatakse marsruutimiseks (routing), ning see toimib järgmiselt: Arvutist saadetakse teele pakett 1, see reisib läbi kolme marsruuteri (nendeks nimetatakse vahepeale jäävaid server-masinaid või switche) soovitud adressaadini, kelleks antud juhul on veebiserver. Sealt saadetakse tagasi pakett 2 infoga, mis reisib arvutini 1 tagasi, aga üks marsruuteritest otsustas, et on parem saata pakett otse viimasesse marsruutimine TCP/IP võrgus marsruuterisse, mitte sama teed tagasi, kust tuli esimene pakett. Sellise süsteemi korral on võimalik olukord, kus osa sideliinidest on purunendud, kuid võrk toimib siiski edasi (algne põhjus, miks Internet välja töötati), sest kui üks marsruuter kaotab ühenduse teisega, siis hakkab ta automaatselt pakette edastama kolmandasse marsruuterisse.

IPv6

Viimaste aastate jooksul kiirenenud arvutite internetiga ühendamine on viinud sellisesse punkti, kus IP aadressid hakkavad otsa lõppema. Seetõttu on väljatöötatud IPv6, mis on 128-bitise adresseerimisega, pakkudes IPv4 232 aadressi asemel 2128 aadressi, ehk siis: IPv4: 4’294’967’296 aadressi IPv6: 340’282’366’920’938’463’463’374’607’431’768’211’456 aadressi, mis teeb 665’570’793’348’866’943’898’599 aadressi Maa iga ruutmeetri kohta.

Marsruut.jpeg

Kokkuvõte

TCP/IP protokoll on tegelikult protokollide komplekt, mis vastab OSI mudelile ja millel põhineb enamus tänapäevastest võrkudest, kaasaarvatud Ethernet ja Internet. TCP/IP protokoll on kihiline ning võimaldab paindlikku infovahetust erinevate masinatega, pakkudes samas lihtsat ja arusaadavat süsteemi programmeerijatele ja isegi tavakasutajatele, kellel tuleb protokolli kasutada kahe arvuti omavahelise suhtluse võimaldamiseks.

Lingid

Algupärane tekst võetud http://www.laaz.org/et/oppematerjalid-2/

Lisalugemist QTst

  • Ruutimise KT Kuidas Linuxi tööjaamadest väljuvad ja sinna suunduvad IP paketid leiavad võrgus õige tee Linuxi marsruuterite abil.

Kasutatud materjalid

Soovitan