Uloga transportnog sloja

Transportni sloj (engl. Transport Layer) četvrti je sloj OSI modela. Definisan je takođe i unutar TCP/IP modela, ali kao treći sloj. Transportni sloj definiše funkcije i metode za uspostavljanje krajnje komunikacije između procesa pokrenutih na uređajima u mreži.


Zadaci transportnog sloja su:

- da omogući većem broju aplikacija da komuniciraju preko zajedničkog mrežnog sloja,

- da segmentira (podeli) podatke na manje celine,

- da obezbedi kontrolu toka podataka.

Podela veće poruke na manje delove naziva se segmentacija. Transportni sloj prima podatke iz sloja sesije, segmentira ih, enkapsulira sa zaglavljem protokola transportnog sloja i prosleđuje na mrežu. Na strani primaoca transportni sloj spaja segmente ponovno u celinu i prosleđuje podatak  procesu na narednom sloju (sesije).

Kako na računaru može biti pokrenuto više procesa i kako ti procesi mogu istovremeno komunicirati na mreži, zadatak transportnog sloja je i adresiranje procesa u svrhu tačnog prosleđivanja segmenata procesima za koje su ti segmenti namenjeni. Ovaj postupak naziva se multipleksiranje, odnosno demultipleksiranje. Na primer, klijentska aplikacija za elektronsku poštu iz aplikacijskog sloja šalje poruke elektronske pošte na transportni sloj. Transportni sloj te poruke deli na manje delove koji se zovu segmenti ili datagrami (tačan naziv zavisi od toga koji protokol se koristi na transportnom sloju: UDP "paketi" nazivaju se datagrami, a TCP "paketi" su segmenti, U opštem slučaju se za svaki oblik informacije na pojedinom sloju može koristiti naziv paket, a specifični nazivi pojedinog sloja koriste se samo u opisima enkapsulacije, slojevitog modela prilikom definisanja nekih mehanizmima sloja). Segment ili datagram je naziv za enkapsulirani oblik podatka na transportnom sloju. Taj naziv uključuje i zaglavlje protokola transportnog sloja, ali i podatke omotane u zaglavlje (podatke koji su stigli iz sloja iznad). Unutar paketa podataka transportnog sloja mora biti definisana identifikacija procesa kojem se pristupa na višem sloju. Ta identifikacija je delimično prikazana u obliku porta. Port je 16-bitni podatak zapisan u zaglavlju TCP i UDP paketa. Identifikuje pokrenuti servis. S obzirom na to da je komunikacija na mreži raznolika i da računar koji  učestvuje u toj mreži obično radi više procesa odjednom, na transportnom sloju definišu se vrata (engl. Socket). Socket identifikuje proces koji dolazi iz viših slojeva. Transportni sloj kroz ta vrata (engl. Socket) prosleđuje podatke procesu na na gornjem sloju.

Portovi su samo jedan dio informacije koje čine vrata (engl. Socket). Kako je svaki proces potrebno adresirati, portovi bi mogli biti i interne adrese procesa u računaru. Ovakvo rešenje bilo bi jednostavno, ali ne bi bilo izvedivo na mreži. Interprocesna komunikacija koristi ovakav oblik adresiranja, jer interprocesna komunikacija definiše razmenu informacija između dva ili više procesa koji su pokrenuti na jednom uređaju. Kada bi se ovakav sistem adresiranja koristio na nivou mrežne, ne bi postojao način da aplikacije na udaljenim računarima znaju koju adresu procesa moraju pozvati kako bi pristupili željenim mrežnim servisima. Iz tog razloga pojam porta vezan je isključivo za procese računarskih mreža i iz tog razloga i postoji. Internet Assigned Numbers Authority – IANA - organizacija koja se bavi standardima adresiranja na Internetu. Između ostalog, zadaci ove organizacije su i dodela i organizacija IP adresnog prostora. IANA definiše portove i njihove veze sa servisima gornjih slojeva. Portovi su podeljeni u tri grupe:

  1. Standardni portovi (engl. Well Known Ports)
  2. Rezervisani portovi (engl. Reserved Ports)
  3. Dinamički portovi (engl. Dynimic Ports)

Standardni portovi (engl. Well Known Ports) su u rasponu 0 – 1023. Namenjeni su standardnim servisima Interneta. U ovom rasponu definisani su portovi HTTP, FTP, SMTP, POP, IMAP, Telnet i mnogih drugih poznatih protokola.

Rezervisani portovi (engl. Reserved Ports) su unutar raspona 1024 – 49151. Ovi su portovi namenjeni korisničkim servisima, kojima se nudi mogućnost registracije. Primeri bi bili aplikacijski protokoli pojedinih programa i servisa na Internetu koji su kreirani i objavljeni od strane privatne kompanije. Preporuka IANA-e je da se ovaj raspon portova kod provajdera sme koristiti isključivo ako su organizacije ili pojedinci koji su vlasnik servisa registrovale taj servis i port pri IANA-i. Postupak registracije opisan je u RFC4340, članak 19.9

Dinamički portovi (engl. Dynimic Ports) su portovi unutar raspona 49152 – 65535. Ovi se portovi ne mogu registrovati i namenjeni su za slobodno korišćenje po potrebi.

Maksimalna vrednost koju neki port može dobiti je 65535. To je iz razloga što je u zaglavljima paketa transportnog sloja definisana veličina polja za upis porta od 16 bita. To čini 216 mogućih kombinacija i iznosi 65536 kombinacija. Kako i port tehnički može imati vrednost 0, ukupan raspon
svih portova je 0 – 65535.

Podaci o portovima za pojedini protokol mogu se pronaći unutar dokumenta na internet adresi: http://www.iana.org/assignments/port-numbers.

Portovi su samo jedan dio priče o adresiranju na transportnom sloju. Port je definisan na nivou servisa, odnosno protokola višeg sloja. Vrata (engl. Socket) definišu tačno određeni proces na uređaju i kombinacija su IP adrese i porta.

Na primer, HTTP server, na koji se povezuje ponekad i po nekoliko hiljada klijenata, pokreće proces za svakog tog klijenta. Svi ti procesi rade na portu 80, što je standardni serverski port za HTTP protokol, no HTTP server će svakom tom procesu dodeliti zasebna vrata (engl. Socket) koja će u
ovom slučaju, s obzirom na to da se radi o TCP prometu, biti definisana s četiri podataka: izvorišnom i odredišnom adresom i izvorišnim i odredišnim portom.

Novije serverske aplikacije ne otvaraju posebne procese za svaku pojedinu vezu, već to rešavaju putem višestruko nitnih procesa (eng.Multithread Process) .


User Datagram Protocol - UDP

User Datagram Protocol, UDP, vrlo je jednostavan protokol opisan RFC768 dokumentom. UDP je protokol transportnog sloja koji ne uspostavlja vezu (engl. Conectionless) i ne garantira isporuku (engl. Unreliable), što ga nikako ne čini manje vrednim od TCP-a. Naprotiv, mrežni promet kao što je video prenos uživo, internet telefonija, audio/video konferencije i sl., zahtevaju brz prenos i mogu podneti određene gubitke. Širokopojasna (engl. Broadcast) komunikacija oblik je komunikacije gde jedan računar ili mrežni uređaj šalje informacije svima u svojoj mreži. Bilo bi vrlo nepraktično uspostavljati komunikacionu vezu sa svakim, što TCP traži, pa se stoga u takvoj komunikaciji koristi UDP.

Zadatak UDP-a su segmentacija i multipleksiranje/demultipleksiranje. Segmentacija se događa u trenutku prelaska sadržaja sa gornjeg sloja na transportni. Sadržaj se razdeljuje na manje delove, odnosno datagrame. Takvim datagramima dodaje se UDP zaglavlje koje sadrži informaciju o polaznom i odredišnom portu, dužinu UDP datagrama i polje provere.

Na drugoj strani komunikacionog kanala UDP prihvata pakete koje dobija sa nižeg, mrežnog sloja i prosleđuje datagram prema navedenom portu odgovarajućem procesu gornjeg sloja koji sluša na tom portu.

UDP definiše UDP vrata (engl. UDP Socket) kao kombinaciju odredišne adrese i porta. UDP vrata identifikuju proces koji je pokrenut na gornjem slojevima. Transportni sloj "gura" datagrame, kroz UDP vrata, ka procesu na aplikacijskom sloju. Kako su UDP vrata definisana kao odredišna IP adresa i odredišni UDP port, jasno je da se događa da datagrami iz različitih izvora završavaju na istom procesu.


Transmission Control Protocol - TCP

Transmission Control Protocol - TCP jedan je od najčešće korišćenih protokola transportnog sloja. Osnovni zadatak mu je uspostavljanje krajnje komunikacije između aplikacija, odnosno servisa gornjih slojeva. Podaci koji su kreirani na aplikacijskom sloju i koje je programer definisao stižu do  transportnog sloja. Na transportnom sloju dolazi do deljenja podataka na manje celine. Ovo deljenje može se izbeći ako je na gornjim slojevima došlo do podele.

Na tako podeljen podatak, protokol transportnog sloja dodaje svoje zaglavlje. Ovo zaglavlje definisano je u zavisnosti od odabranog transportnog protokola. Naime, programeri mogu da definišu koji će se niži protokol koristiti, na primer mogu odabrati TCP ili UDP, u zavisnosti od toga koje im mogućnosti za samu aplikaciju i prenos podataka trebaju.

TCP protokol nudi nekoliko mehanizama:

  1.  Pouzdan prenos podataka
  2.  Kontrolu toka (engl. Flow Control)
  3.  Upravljanje zagušenjima (engl. Congestion Control)
  4.  Segmentacija
  5.  Multipleksiranje/Demultipleksiranje.

Za razliku od TCP-a, UDP nudi samo segmentaciju i Multipleksiranje/Demultipleksiranje, no to ga nikako ne čini manje važnim. Aplikacije kao što su prenos slike i zvuka u realnom vremenu mogu podnositi manje gubitke, te im stoga pouzdan prenos podataka nije potreban. Ovakav tip aplikacija sve podređuje brzini prenosa. Traži se protokol koji ima malo zaglavlje, koji omogućava veće brzine i koji ima mala kašnjenja. Mehanizmi kao što su kontrola toka (engl. flow control) i upravljanje zagušenjima (engl. congestion control) pomažu u radu uređaja kojima su ti podaci namenjeni i zagušenosti mreže kojom putuju, ali isto tako i usporavaju prenos.

TCP je konekciono orijentisan protokol, UDP nije (UDP je connectionless, engl.). U komunikacijama u kojima se pojavljuje više istovremenih primaoca (engl. broadcast i/ili multicast) uspostavljanje konekcije sa svakim primaocem bilo bi vrlo nespretno. S druge strane, uspostava konekcije između dvije strane nužno je potrebna kako bi se mogli ostvariti mehanizmi TCP-a.
Sve ovo navedeno čini TCP izborom broj jedan u aplikacijama i servisima kao što su:

  •  E-mail (POP, IMAP, SMTP)
  •  Internet (HTTP)
  •  Prenos datoteka (FTP)
  •  Udaljeni pristup uređajima (Telnet)

što je najviše i doprinelo njegovoj današnjoj popularnosti.

Last modified: Monday, 28 January 2019, 1:20 PM