You are on page 1of 34

Raunarske mree

PREDAVANJE 6

Transportni sloj TCP / IP modela Transport Layer


Transportni sloj u OSI modelu koristi da omogudi peer entitetima na izvorinom i odredinom hostu
odvijanje konverzacije. Definisana su dva end-to-end protokola.1
TCP, pouzani, konekcijski orjentiran protokol koji omogudava da tok bitka s izvorita do odredita stigne
bez greke preko interneta. Vri segmentiranje bita i proslijeuje ih internet sloju, a na odreditu vri
reasembliranje poruke. TCP vri i kontrolu toka (flow control), kako bi sprijeio da brzi poiljalac ugui
sporog primaoca.
UDP, nepouzdan, nekonekcijski orjentiran protokol kojeg koriste aplikacije koje ne ele TCP
segmentiranje i kontrolu toka, ved pruaju svoje. Koristi se za one-shot, client-server-type request-reply
queries i aplikacije u kojima je vanije da neto stigne na vrijeme nego tanost, kao to je sluaj sa
prenosom videa ili govora.
Osnovna funkcija transportnog sloja je da prihvata podatke sloja iznad sebe, razdvaja ih u manje jedinice
ako je potrebno, proslijeuje ih mrenom sloju, i osigurava da svi dijelovi stignu ispravno na drugi kraj.
Sve ovo mora biti uraeno efikasno i na nain koji izolira vie slojeve od neizbjenih promjena u
hardware-skoj tehnologiji tokom vremena.

Slika. Transportni sloj u OSI modelu2

E. Comer, Douglas, Fifth edition 2009, Computer Networks and Internet, Prentice Hall, str. 419.
Napomena: Slike su preuzete i prevedene sa Cisco Networking Academy [datum pristupa: 01.08.12],
<www.cisco.netacad.net>
2

Transportni sloj, takoer, odluuje koji tip usluge de pruiti sesijskom sloju, i u konanici korisnicima
mree. Najpopularniji tip transportne konkcije je point-to-point (konkcija taka-taka), error-free
(pouzdan) kanal koji dostavlja poruke, odnosno bajte, u onom redu u kojem su poslani. Meutim,
postoje i drugi tipovi transportne usluge, kao to je transport izoliranih poruka bez garancije o
redoslijedu njihovog pristizanja, kao i broadcast poruka na vie odredita. Tip usluge se odreuje pri
uspostavi konekcije.
Transportni sloj je pravi end-to-end sloj jer prenosi podatke od izvora skroz do odredita. Drugim
rijeima, program na izvorinoj maini komunicira sa programom na odredinoj maini, koristedi
zaglavlja poruke i kontrolne poruke. U niim slojevima, svaki protokol je izmeu maine i njenog
direktnog susjeda, a ne izmeu krajnjih izvorinih i odredinih maina koje mogu biti odvojene sa vie
rutera. Transportni sloj ima specifikacije koje kontroliu maksimalnu brzinu kojom primalac moe
prihvatati podatke, te mehanizme za izbjegavanje mrenog zaguenja. Transportni sloj ima zadatak i da
identificira aplikaciju iji se podaci prenose. To se omogudava pomodu polja u zaglavlju koja se zove
port number. Svakom procesu kojem je potreban pristup na mreu dodjeljuje se broj porta jedinstven
za tog hosta. Transportni sloj sadri tu informaciju u zaglavlju da bi se znalo kojoj aplikaciji pripadaju
podaci koji se prenose.3
Podatkovne mree i internet omogudavaju komunikaciju izmeu ljudi, kako na lokalnom, tako i na
globalnom nivou. Na jednom ureaju ljudi mogu koristiti vie usluga, kao to su naprimjer: e-mail, Web,
Instant messaging za razmjenjivanje informacija. Aplikacije kao to su e-mail klijent, Web browser,
Instant messaging klijent, omogudavaju ljudima da koriste raunare i mree za slanje poruka i
informacija. Podaci iz svake od ovih aplikacija su upakovani, transportovani i dostavljeni na odgovarajudi
server ili aplikaciju na odredinom ureaju. Procesi opisani u transportnom sloju OSI modela primaju
podatke sa aplikacijskog sloja i pripremaju ih za adresiranje na mrenom sloju. Transportni sloj je
zasluan za end-to-end transfer aplikacijskih podataka. Transportni sloj ukljuuje i sljedede funkcije:

omogudava vedem broju aplikacija da komuniciraju u mrei u isto vrijeme na jednom ureaju,
osigurava sigurnu dostavu podataka na odredite u odgovarajudem redoslijedu u tano
odreenu aplikaciju,
koristi mehanizme za ispravljanje greaka.4

Protokoli transpotnog sloja su:

TCP, Transmission Control Protocol;


UDP, User Datagram Protocol;
ATP, AppleTalk Transaction Protocol;
CUDP, Cyclic UDP;
DCCP, Datagram Congestion Control Protocol;
FCP, Fiber Channel Protocol;

S. Tannenbaum, Andrew and J. Wetherall, David, Fifth edition 2011, Computer Networks, Prentice Hall, str. 44,47.
Cisco Networking Academy [datum pristupa: 01.08.12], <www.cisco.netacad.net>

NBF, NetBIOS Frames Protocol;


SCTP, Stream Control Transmission Protocol;
SPX, Sequenced Packet Exchange;
SST, Structured Stream Transport.

Uloga transportnog sloja u OSI modelu


Transportni sloj omogudava segmentaciju podataka i potrebnu kontrolu za ponovno spajanje ovih
dijelova podataka (segmenata). Primarne funkcije koje svakog protokola transportnog sloja ukljuuju:

Segmentaciju i reasembliranje vedina mrea ima ogranienu koliinu podataka koja moe biti
ukljuena u jedan PDU (Protocol Data Unit). Transportni sloj dijeli informacije u blokove
podataka odgovarajude veliine. Na odreditu, transportni sloj reasemblira podatke prije nego ih
proslijedi na odgovarajudu odredinu aplikaciju ili uslugu.
Multipleksiranje komunikacija U istoj mrei, na istom voru moe biti pokrenuto vie aplikacija.
Svakoj od ovih aplikacija je dodjeljen broj porta na osnovu kojeg transportni sloj moe odrediti
kojoj aplikaciji je podatak namjenjen.
Kako bi koristili informacije sadrane u zaglavlju, za osnovne funkcije segmentiranja i
reasembliranja podataka, neki protokoli na transportnom sloju omogudavaju:
Konekcijski-orjentiranu komunikaciju,
Pouzdanu isporuku,
Spajanje dijelova podataka tanim redoslijedom i
Kontrolu toka podataka.

Praenje individualne komunikacije, segmentiranje podataka i reasembliranje segmenata

Bilo koji host moe imati vie aplikacija koje komuniciraju kroz mreu. Svaka od ovih aplikacija
komunicira sa jednom ili vie aplikacija na drugom hostu. Uloga transportnog sloja je da odrava
viestruku komunikaciju izmeu ovih aplikacija.
Kao to svaka aplikacija stvara podatke koji se alju na neku udaljenu aplikaciju, ovi podaci moraju biti
spremni da budu poslani preko medija u odgovarajudim dijelovima. Protokoli transportnog sloja opisuju
usluge koje segmentiraju ove podatke sa aplikacijskog sloja. Ovo ukljuuje enkapsuliranje svakog dijela
podataka. Svaki dio podataka zahtjeva dodavanje odgovarajudeg zaglavlja na transportnom sloju da bi se
utvrdilo na koju komunikaciju se odnosi.
Na odredinom voru svaki dio podataka mora biti proslijeen na odgovarajudu aplikaciju. Naravno, svi
ovi dijelovi podataka se moraju spojiti u kompletiran podatak koji de samo takav biti koristan

aplikacijskom sloju. Protokoli transportog sloja opisuju kako se informacije u zaglavlju na transportnom
sloju koriste za reasembliranje (ponovno spajanje) dijelova u kompletiran podatak koji de biti
proslijeen aplikacijskom sloju.

Identificiranje razliitih aplikacija

Kako bi podatak stigao do odgovarajude aplikacije, transportni sloj mora identificirati ciljnu aplikaciju. Da
bi ovo izvrio, transportni sloj svaku aplikaciju identificira brojem porta. Svaki softverski proces koji mora
pristupiti mrei je oznaen brojem porta jedinstvenim u tom hostu. Ovaj broj porta se koristi u zaglavlju
transportnog sloja da ukae na koju aplikaciju se odnosi taj podatak.
Transportni sloj je veza izmeu aplikacijskog sloja i niih slojeva koji su zadueni za transmisiju. Ovaj sloj
prima podatke od razliitih aplikacija i prosljeuje ih na nie slojeve kao manje dijelove koji mogub biti
poslani kroz medij.
Aplikacije ne moraju poznavati operacijske detalje mree koja se koristi. Aplikacije samo generiu
podatke koji su poslani od odreene aplikacije ka nekoj drugoj, bez razmatranja tipa vora na odreditu,
medija preko kojeg se podaci prenose, puta kojim se prenose, zaguenja na linku i bez razmatranja o
veliini mree. Nii slojevi nisu svjesni injenice da vie aplikacija alje podatke kroz mreu. Njihova uloga
je da dostave podatke na odgovarajudi ureaj. Na odredinom ureaju transportni sloj sortira i spaja
podatke prije nego to ih proslijedi ka odgovarajudoj aplikaciji.5

Raznolikost potreba za podacima

Poto razliite aplikacije imaju razliite potrebe, postoji vie protokola transportnog sloja. Za neke
aplikacije, segmenti moraju stidi u tano odreeno vrijeme kako bi bili uspjeno procesirani. U nekim
sluajevima svi podaci moraju biti primljeni kako bi bili korisni aplikaciji. U nekim drugim sluajevima
aplikacije mogu tolerisati gubitak podataka za vrijeme transmisije kroz mreu.

Cisco Networking Academy [datum pristupa: 01.08.12], <www.cisco.netacad.net>

Slika. Prikaz omogudavanja komuniciranja aplikacija na razliitim ureajima


U dananjim konvergiranim mreama, aplikacije sa veoma razliitim transportnim potrebama mogu
komunicirati na istoj mrei. Razliiti transportni protokoli imaju razliita pravila i tako dozvoljavaju
ureajima da savladavaju razliite zahtjeve.
Neki protokoli omogudavaju samo osnovne funkcije za efikasno dostavljanje dijelova podataka izmeu
odgovarajudih aplikacija. Ovi tipovi protokola su korisni za aplikacije iji podaci su osjetljivi na kanjenje.
Drugi protokoli transportnog sloja opisuju procese koji omogudavaju dodatne usluge kao to je
osiguravanje pouzdane isporuke izmeu aplikacija. Ove dodatne usluge omogudavaju robusniju
komunikaciju, ali i dovode do dodatnog zasidenja i stvaraju vede zahtjeve prema mrei.

Razdvajanje podataka iz vie razliitih aplikacija

Neka je raunar koji povezan na mreu i simultantno prima i alje e-mailove, instant messages, pregleda
web stranice i provodi VoIP poziv. Svaka od ovih aplikacija alje i prima podatke preko mree u isto
vrijeme. Meutim, podaci iz poziva nisu usmjereni ka web browseru, niti se tekst iz instant messages
prikazuje u e-mailu.
Nadalje, korisnici zahtjevaju da e-mail i web stranica budu primljene u cjelini kako bi se informacije
mogle na odgovarajudi nain prezentovati i biti korisne. Manja kanjenja su prihvatljiva kako bi se
osiguralo da informacija bude primljena i prikazana u kompletnom obliku. S druge strane, proputanje
manjih dijelova telefonskog razgovora moe biti prihvatljivo. Korisnik moe zakljuiti proputeni dio
razgovora iz konteksta prie ili jednostavno zatraiti od drugog korisnika da ponovi onaj dio koji je

izgubljen. Ovo je mnogo efikasnije od kanjenja koje bi nastalo ukoliko bi se od mree trailo da upravlja
ponovnim slanjem paketa razgovora koji su izgubljeni i upravo zbog toga su odreeni gubici prihvatljivi.6

Slika. Transpotni sloj dijeli podatke u segmente radi lakeg upravljanja i transporta
Kao to je ved opisano, slanje jednog tipa podataka, npr. video podatka preko mree kao jedne
kompletne cjeline podataka bi moglo sprijeiti ostale aplikacije da prenose svoje podatke preko mree u
isto vrijeme. To ,takoer, dovodi do teeg ispravljanja greaka i tee retransmisije otedenih podataka.
Dijeljenje podataka u manje dijelove i slanje ovih dijelova od izvorita ka odreditu omogudava da vie
komunikacija funkcionie istovremeno na istoj mrei.
Segmentiranje podataka, u skladu sa protokolima transportnog sloja, prua sredstva za slanje i primanje
podataka kada je potrebno da vie aplikacija komunicira u isto vrijeme. Bez segmentacije samo jedna
aplikacija, npr. video komunikacija, bi mogla primati i slati podatke. Ne bi bilo mogude primiti e-mail,
instant messages ili pregledati web stranice u isto vrijeme kada je u toku video komunikacija. Na
transportnom sloju svaki posebni dio podataka koji se krede od izvorita ka odreditu predstavlja
komunikaciju. Da bi se identificirao svaki segmenat podataka, transportni sloj dodaje zaglavlje koji sadri
polja bita. Vrijednost ovih bita u odreenim poljima omogudava protokolima transportnog sloja da
izvode razliite funkcije.7

Cisco Networking Academy [datum pristupa: 01.08.12], <www.cisco.netacad.net>


S. Tannenbaum, Andrew and J. Wetherall, David, Fifth edition 2011, Computer Networks, Prentice Hall, str. 496,
497.
7

Slika. Segmentiranje podataka

Uspostavljanje sesije, pouzdana isporuka i dostava u tanom rasporedu

Transportni sloj omogudava konekcijski orjentiranu komunikaciju stvaranjem sesije izmeu aplikacija.
Ove sesije pripremaju aplikacije da komuniciraju meusobno prije nego se bilo kakav podatak poalje.
Unutar ovih sesija mogude je upravljati podacima za komunikaciju izmeu dvije aplikacije.
Iz vie razloga, mogude je da podatak bude oteden ili potpuno izgubljen za vrijeme transmisije kroz
mreu. Transportni sloj osigurava prispjede svih dijelova podataka na njihovo odredite jer vri ponovno
slanje (retransmisiju) podataka koji se izgube.
Poto mree omogudavaju vie ruta za transmisiju od istog izvorita ka istom odreditu, podaci mogu
dolaziti u pogrenom redoslijedu. Numerisanjem i dodjeljivanjem brojeva sekvence svakom segmentu,
transportni sloj osigurava da su ovi segmenti pravilno reasemblirani na odreditu.

Kontrola toka podataka

Mreni ureaji imaju ograniene resurse, kao npr. memoriju ili propusni opseg. Kada transportni sloj
primjeti da su resursi prezasideni, neki protokoli mogu zahtjevati od aplikacije da smanji koliinu

podataka koju alje. Ovo se radi na transportnom sloju regulisanjem koliine podataka. Kontrola toka
podataka moe sprijeiti gubitak segmenata na mrei i izbjegavati potrebu za ponovnom transmisijom.8

Osiguravanje pouzdane komunikacije

Kao to je ved navedeno, primarna svrha transportnog sloja je upravljanje aplikacijskim podacima za
komunikaciju izmeu hostova. Razliite aplikacije imaju i razliite zahtjeve za svoje podatke, a samim
time su razvijeni i razliiti protokoli transportnog sloja da bi se osiguralo zadovoljenje ovih zahtjeva.
Transportni sloj i njegovi protokoli mogu implementirati metode za osiguravanje pouzdane dostave
podataka. U smislu mree, pouzdanost podrazumijeva osiguravanje da svaki dio informacije uspjeno
stigne na odredite.
Na transportnom sloju osnovne operacije vezane za pouzdanost su:

pradenje poslanih podataka,


potvrda primljenih podataka,
ponovno slanje podataka za koje nije primljena potvrda.

Zatjeva se od procesa na transportnom sloju na izvoritu da vodi rauna o tome svakom dijelu
komunikacije, kao i da vri retransmisiju svih izgubljenih dijelova za koje nisu stigle potvrde o prijemu.
Na odreditu, uloga procesa transportnog sloja je da isto tako prate svaki dio komunikacije koji prime i
da alju potvrdu o primitku.
Ovi procesi kojima se osigurava pouzdanost,prenosa uzrokuju dodatno opteredenje mrenih resursa
zbog potvrda koje se moraju slati, pradenja komunikacije i retransmisije. Za osiguravanje pouzdanosti
komunikacije alje se vie kontrolnih informacija izmeu izvorita i odredita. To su informacije sadrane
u zaglavljima etvrtog sloja. Strunjaci za razvoj aplikacija moraju izabrati koji je protokol transportnog
sloja prikladan za njihovu aplikaciju bazirano na zahtjevima aplikacije.
Na transportnom sloju postoje protokoli koji ili specifiraju metode za pouzdanu, garantovanu isporuku ili
za best-effort isporuku. U kontekstu mree, best-effort dostava se smatra nepouzdanom dostavom
jer ne postoje potvrde koje garantuju da je dio informacije dostavljen na odredite. Ovakve mogudnosti
dovode do situacije kada je potrebno procijeniti i odmjeriti potrebe za pouzdanosti komunikacije i
opteredenja koji ovakva pouzdanost donosi mrei. 9

S. Tannenbaum, Andrew and J. Wetherall, David, Fifth edition 2011, Computer Networks, Prentice Hall, str. 522.
Cisco Networking Academy [datum pristupa: 01.08.12], <www.cisco.netacad.net>

Slika. Pouzdana i best effort isporuka

Odreivanje potrebe za pouzdanou

Apikacije, kao to su baze podataka, web stranice, e-mail, zahtjevaju da svi podaci koji se alju pristignu
na odredite u normalnom stanju kako bi pristigli podaci imali vrijednost za odredite. Bilo koji podatak
koji se izgubi moe uzrokovati greke u komunikaciji i poruka moe biti nepotpuna ili je mogude da se ne
moe proitati. Zato su ove aplikacije dizajnirane da koriste protokol transportnog sloja koji
implementira pouzdanost. Dodatno opteredenje mree se smatra neophodnim kako bi se osiguralo
uspjeno funkcionisanje ovih aplikacija.
Druge aplikacije su vie tolerantne prema manjim gubicima podataka. Naprimjer, ako jedan ili dva
segmenta video prenosa ne stignu na odredite, to de prouzrokovati samo trenutni, kratkotrajni zastoj
slike. Ovo moe rezultovati degradacijom slike, ali moe i da bude potpuno neprimjedeno ili zanemareno
od strane korisnika koji gleda neki video prenos.
Uvoenje opteredenja mree koje izaziva osiguranje pouzdanosti za ove vrste aplikacija moglo bi da
smanji korisnost aplikacije. Slika u video prenosu bi bila znaajno degradirana kada bi odredini ureaj
morao detektovati izgubljene podatke i odgaati prikazivanje slike ekajudi da izgubljeni dio bude
ponovo poslan. Bolje je prikazati sliku najboljm mogudim kvalitetom koji je mogud u odreenom
trenutku sa segmentima koji su ved pristigli nautrob pouzdanosti. Ako se pouzdanost ipak razmatra iz
nekih razloga, aplikacija ipak moe provjeravati greke i slati zahtjeve za retransmisijom.

Slika. Osobine protokola transportnog sloja


Na slici prikazane su karakteristike razliitih protokola transportnog sloja. U sluaju IP telefonije i video
komunikacije potrebne su sljedede osobine protokola:

Brzina,
Malo zaglavlje,
Ne zahtijeva potvrde o prispjedu,
Ne vri transmisiju izgubljenih podataka i
Dijelove podataka dostavlja aplikaciji onako kako stiu.
U sluaju e-maila i web pretraivanja potrebne su sljedede osobine protokola:
Pouzdanost,
Potvrda o prispjedu podataka,
Ponovno slanje izgubljenih podataka i
Dijelove podataka dostavlja aplikaciji onako kako su poslani.10

Osnovni protokoli transportnog sloja u IP mreama


Dva najede koritena protokola transportnog sloja u TCP/IP slojevitom modelima su Transmission
Control Protocol (TCP) i User Datagram Protocol (UDP). Oba ova protokola upravljaju komunikacijom
vie aplikacija.Razlikuju se u specifinim funkcijama koje implementiraju.

10

Cisco Networking Academy [datum pristupa: 01.08.12], <www.cisco.netacad.net>

10

Slika. TCP i UDP zaglavlja


UDP je jednostavan beskonekcijski protokol opisan u RFC-u 768. Prednost mu je osiguravanje malog
opteredenja mree pri isporuci podataka. Dijelovi komunikacije u UDP-u se nazivaju datagrami. Ovaj
protokol koristi best effort princip za slanje datagrama. Aplikacije koje koriste UDP ukljuuju:

Domain Name System (DNS),


Video Streaming,
Voice over IP (VoIP).

TCP je konekcijski orjentiran protokol opisan u RFCu 793. On moe dovesti do dodatnog opteredenja pri
izvravanju svojih funkcija. Dodate funkcije specificirane u TCP u su: pravilan redoslijed isporuke,
pouzdana isporuka i kontrola toka. Svaki TCP segment ima dodatnih 20 bajta u zaglavlju koja se dodaju u
procesu enkapsulacije, za razliku od UDP segmenta koji ima samo 8 Bajta. Aplikacije koje koriste TCP su:

Web Browsers,
E-mail,
File Transfer.

Razmotrimo primjer kompjutera koji simultano alje i prima e-mail poruke, instan messaging poruke,
pregleda web stranice i obavlja VoIP poziv. Da bi se razlikovali segmenti i datagrami za svaku aplikaciju, i
TCP i UDP zaglavlja sadre polja koja mogu jedinstveno identificirati ove aplikacije. Ovaj jedinstveni
identifikator se naziva broj porta.

11

U zaglavlju svakog segmenta ili datagrama nalazi se broj porta izvorinog i odredinog vora. Izvorini
broj porta je broj za ovu komunikaciju povezan sa izvorinom aplikacijom na lokalnom hostu. Odredini
broj porta je broj za ovu komunikaciju koji predstavlja aplikaciju na odreditu, tj. na udaljenom hostu.
Broj porta se dodjeljuje na razliite naine, zavisno od toga da li je poruka zahtjev ili odgovor. Dok
serverski procesi imaju dodjeljene statine brojeve porta, klijentski port brojevi se dinamiki odreuju za
svaku konverzaciju.
Kada klijentska aplikacija poalje zahtjev ka serverskoj aplikaciji, broj porta sadran u zaglavlju se odnosi
na aplikaciju koja je pokrenuta na izvorinom ureaju. Klijent na izvoritu mora poznavati broj porta na
serveru ili udaljenom voru, tj. odreditu. Broj porta na odreditu je konfigurisan po defaultu ili runo.
Naprimjer, kada web browser aplikacija alje zahtjev prema web serveru, browser koristi TCP i port 80
ukoliko nije drugaije specificirano. To je zato jer je broj porta 80 dodjeljen ovakvoj vrsti web aplikacija.
Mnoge uobiajene aplikacije imaju predefinisan broj porta.
Broj porta izvorine aplikacije se u drugim sluajevima sluajno bira od brojeva iznad 1024. Sve dok se ne
preklapa sa drugim brojevima portova koji se koriste, klijent ima slobodu odreivanja bilo kojeg
sluajnog broja porta za neku aplikaciju, ili se moe koristiti broj porta automatski dodjeljen od strane
koritenog operativnog sistema.Ovaj broj porta se prati, kao i aplikacija koja je pokrenula komunikaciju
kako bi se u sluaju odgovora on mogao poslati na adresu odgovarajude aplikacije. Broj porta se, u
skladu sa ovim, smatra i povratnom adresom.
Kombinacija broja porta i IP adrese identificira tanu aplikaciju koja je pokrenuta na odredinom
ureaju. Ova kombinacija se naziva Socket. Npr., zahtjev za prikazivanjem HTTP web stranice koji se alje
ka web serveru (port 80) koji se pokrede na host raunaru sa IPv4 adresom tredeg sloja 192.168.1.20 de
imati socket 192.168.1.20:80.11

11

S. Tannenbaum, Andrew and J. Wetherall, David, Fifth edition 2011, Computer Networks, Prentice Hall, str. 501503.

12

Slika. Adresiranje aplikacija brojevima porta


Brojeve porta odreuje Internet Assigned Numbers Authority (IANA). To je tijelo koje propisuje standare
vezane za adresiranje portova.
Postoje razliite vrste brojeva porta:
Well Known (dobro poznati) port-ovi od 0 do 1023 ovi brojevi su rezervisani za servise i aplikacije.
Najedce se koriste za aplikacije kao to su: HTTP (web server), POP3/SMTP (e-mail server) i Telnet.
Definisanjem ovih well-known portova za serverske aplikacije, klijentske aplikacije mogu biti
programirane da zahtijevaju konekciju ka tom specificiranom portu i povezanoj usluzi.
Registrovani portovi (od 1024 do 49151) ovi brojevi portova se dodjeljeni korisnikim procesima ili
aplikacijama. Ovi procesi su primarno individualne aplikacije koje je korisnik izabrao da instalira radije
nego uobiajene aplikacije koje imaju well-known portove. Kada se ne koriste za serverske resurse, ovi
brojevi portova mogu se ,takoer, izabrati dinamiki od strane klijenta kao njegov izvorini port.

13

Slika. Registrovani i well-known TCP i UDP portovi

Dinamiki ili privatni portovi od 49152 do 65535 takoer poznati i kao ephemeral ports. Ovi brojevi
porta se dinamiki dodjeljuju korisnikim procesima ili aplikacijama koje iniciraju konekciju. Nije previe
esta situacija da se klijent konektuje na uslugu koristedi dinamiki ili privatni port, iako postoje neki
peer-to-peer programi koji to rade.12
Vrijednost portova obino je u skladu s preporukama meunarodne organizacije za standarde IANA
(Internet Assigned Numbers Authority). Dio preporuka prikazan je u narednoj tabeli. Uz vrijednost porta
prikazan je i protokol koji ga podrava, te u nastavku pojam i opis pojma na koji se port odnosi.
Ponekad je potrebno poznavati koje su aktivne TCP konekcije na odreenom hostu. Netstat je vana
mrena mogudnost koja se koristi za verificiranje tih konekcija. Netstat izlistava protokole u upotrebi,
lokalnu adresu i broj porta, adresu udaljenog raunara i broja porta, kao i stanje konekcije.

12

Cisco Networking Academy [datum pristupa: 01.08.12], <www.cisco.netacad.net>

14

Neobjanjene TCP konekcije mogu predstavljati vede sigurnosne prijetnje. To moe indicirati da je neko
ili neto konektovano nelegitimno na lokalni host. Dodatno, nepotrebne TCP konekcije mogu troiti
vrijedne sistemske resurse i tako usporavati performanse host ureaja. Netstat bi se trebao koristiti da
se ispitaju otvorene konekcije na hostu kada se ini da su performanse kompromitovane.

Slika. Rezultat komande netstat u command prompt-u


Neke aplikacije alju velike koliine podataka, u nekim sluajevima i vie gigabajta. Bilo bi nepraktino
slati ove podatke u jednom velikom dijelu. Ovaj veliki dio bi onemogudio slanje bilo kakvog drugog
podataka u isto vrijeme. Samo slanje bi trajalo nekoliko minuta ili ak sati. U sluaju greke cijeli podatak
bi se izgubio, a ponovno slanje bi zahtjevalo vie vremena i stvaralo bi ponovno zaguenje. Mreni
ureaji ne bi imali dovoljno memorije da pohrane ovolike koliine podataka dok se prenose ili primaju.

Slika. Funkcije transportnog sloja

15

Djeljenje podataka u dijelove omogudava da se podaci alju u skladu sa granicama medija i


multipleksiranje podataka razliitih aplikacija. TCP i UDP protokoli segmentiraju podatke na razliite
naine. 13
U TCP u svako zaglavalje segmenta sadri broj sekvence. Ovaj broj sekvence slui za reasembliranje
segmenata u pravilnom redoslijedu na odreditu. Ovo osigurava da odredina aplikacija primi podatak
tano onako kako ga je izvorina aplikacija poslala.
Iako aplikacije koje koriste UDP takoer prate komunikaciju izmeu aplikacija, nisu osjetljive na
redoslijed informacija ili na odravanje konekcije. Ne postoji broj sekvence u UDP zaglavlju. UDP je
jednostavniji i stvara manje zasidenja od TCP-a, to rezultira brom razmjenom podataka.
Informacije mogu stidi u nepravilnom redoslijedu jer postoje razliiti putevi u mrei od izvorita do
odredita, na to aplikacije koje koriste UDP nisu osjetiljive.

TCP (Transmition Control Protocol)


Usluga koju TCP (Transmission Control Protocol) protokol daje aplikaciji ima sedam osnovnih osobina:

13

Konekcijski orjentisana usluga. TCP prua konekcijski orjentisanu usluga u kojoj aplikacija mora
prvo uspostaviti konekciju sa aplikacijom na odreditu, a zatim koristiti tu konekciju za slanje
podataka. Uspostavljanje konekcije se vri pomodu procesa koji se zove three way handshake.
Point to point komunikacija. Svaka TCP konecija ima tano dvije krajnje take.
Potpuna pouzdanost. TCP garantuje da de podaci poslani preko uspostavljene konekcije biti
dostavljeni tano onako kako su poslani, kompletni i tano onim redoslijedom kojim su poslani.
TCP trai potvrdu o prijemu paketa od strane odredita. Ta potvrda se zove acknowledgement.
Full Duplex komunikacija. TCP konekcija dozvoljava podacima da idu u oba smijera, i dozvoljava
za oba aplikacijska programa slanje u bilo kojem trenutku.
Stream interface. TCP prua stream interface u kojem aplikacija alje kontinualnu sekvencu
okteta preko konekcije. TCP ne grupira podatke u zapise ili poruke, i ne garantuje da de dostaviti
podatke u dijelovima iste veliine kako su poslani od strane aplikacije.
Pouzdano uspostavljanje konekcije.
Raskidanje konekcije se vri nakon to se utvrdi da su svi podaci ispravno primljeni i da obje
strane ele raskinuti konekciju. 14
TCP je zaduen i za kontrolu toka podataka. Pomodu mehanizma kliznog prozora (sliding
window), TCP odreuje window size koji su poiljalac i primalac programirani da koriste.

S. Tannenbaum, Andrew and J. Wetherall, David, Fifth edition 2011, Computer Networks, Prentice Hall, str. 527.
E. Comer, Douglas, Fifth edition 2009, Computer Networks and Internet, Prentice Hall, str. 430.

14

16

Window size je veliina prozora, odnosno maksimalni broj paketa koje poiljalac moe da poalje
bez prijema potvrde o njihovom prispjedu na odredite.
TCP podrava i kontrolu zaguenja. Koristi kanjenje kao mjeru zaguenja i odgovara na
zaguenje smanjujudi brzinu kojom alje podatke podeavajudi veliinu prozora.

Zaglavlje TCP protokola

Polja TCP zaglavlja su:

Source port Number: Broj TCP sesije otvorene na izvorinom raunara koja oznaava kojoj
aplikaciji pripadaju podaci koji se prenose. Obino je sluajan broj preko 1024.
Destination Number: Identificira protokol vieg sloja ili aplikaciju na odredinoj strani.
Sequence Number: Specificira broj posljednjeg okteta u segmentu.
Acknowledgement Number: Specificira broj slijededeg oktetakoji prijemnik oekuje da primi.

Header Length: Duina zaglavlja u bajtima.

Flags: Koristi se u upravljanju sesijom i tretiranju segmenata.


Window size: Koliko okteta moe biti poslano prije nego se primi potvrda.
TCP Checksum: Kontrolni zbroj; rauna se kao 16-bitni komplement jedinice komplementa zbira
svih 16-bitnih rijei u zaglavlju i podacima; pokriva i 96 bitova pseudozaglavlja koje sadri
izvorinu i odredinu adresu, protokol i duinu TCP zaglavlja i podataka. Koristi se za provjeru
greaka u zaglavlju i podacima.
Urgent Pointer: Koristi se samo sa URG (urgent) zastavicom.
Options: Options mogu, a ne moraju biti ukljuene; ako postoje, veliine su x8 bita, Padding je
dopuna nulama do 32 bita. Izbori (vie njih) prenose se na kraju TCP-a zaglavlja i uvijek imaju
duinu koja je sastavljena od broja pomnoenog sa 8 bita. Svi izbori ukljueni su u kontrolni zbir.
Svaki pojedini izbor mora zapoeti na granici izmeu okteta. Dvije su mogude forme za neki od
izbora: Opcija veliine jednog okteta i izbor znaaja okteta, izbor duine okteta i izbor podataka
u oktetu. U duini okteta ukljuuje se tip okteta i podaci koji mu pripadaju. Ako su izbori kradi od
vrijednosti koja je proizvod skupine jednog redka zaglavlja, ostatak po izboru mora se ispuniti
nulama. TCP mora sadravati sve raspoloive opcije.
Data: Aplikacijski podaci.15

15

S. Tannenbaum, Andrew and J. Wetherall, David, Fifth edition 2011, Computer Networks, Prentice Hall, str. 557560.

17

16

32

Source port

Destination port

Sequence number
Acknowledgement number
Offset

Resrvd

Checksum

Window
Urgent pointer

Option + Padding
Data
Struktura TCP zaglavlja u 32b redovima

Slika. Zaglavlje TCP protokola


Pouzdana komunikacija

Osnovna razlika izmeu TCP-a i UDP-a je pouzdanost. Pouzdanost TCP-a se osigurava koristedi
konekcijski orjetirane sesije. Prije nego host koji koristi TCP poalje podatke drugom hostu, transportni
sloj inicira proces koji uspostavlja konekciju sa odreditem. Ova konekcija omogudava pradenje sesije, ili
toka komunikacije izmeu hostova. Ovo znai da je svaki host svjestan komunikacije i pripremljen.
Kompletna TCP komunikacja zahtjeva uspostavljanje sesije izmeu hostova u oba smjera.16
Nakon to je sesija uspostavljena, odredite alje potvrdu poiljaocu za one segmente koji su primljeni.
Ove potvrde ine osnovu pouzdanosti jedne TCP sesije. Kada izvorite primi potvrdu, zakljuuje kako je
odreeni segment podataka primljen i ne mora vie da ga prati. Ako izvor ne primi potvrdu unutar nekog
predefinisanog vremenskog perioda, ponovo alje taj podatak odreditu.17
Dio dodatnog opteredenja i nekorisnog dijela informacije koji TCP generie na mrei otpada na potvrde i
ponovna slanja izgubljenih podataka. Uspostavljanje sesije ,takoer, dodatno optereduje mreu u vidu
novih segmenata koji se razmjenjuju. Dodatno opteredenje se manifestira i u vidu potrebe da se prate
koji segmenti ekaju na potvrdu i retransmisijske procese. Pouzdanost je postignuta poljima u TCP
segmentu, od kojih svako ima posebnu funkciju.

16
17

S. Tannenbaum, Andrew and J. Wetherall, David, Fifth edition 2011, Computer Networks, Prentice Hall, str. 522.
Cisco Networking Academy [datum pristupa: 01.08.12], <www.cisco.netacad.net>

18

Serverski procesi

Kao to je ved opisano u radu, aplikacijski procesi rade na serveru. Ovi procesi ekaju da klijent inicira
komunikaciju zahtjevom za informacijom ili uslugom.
Svaki aplikacijski proces koji je radi na serveru je konfigurisan port brojem, automatski ili manuelno od
strane administratora sistema. Jedan server ne moe imati dvije usluge dodjeljene istom port broju u
istoj usluzi transportnog sloja. Host koji ima pokrenutu web server aplikaciju i aplikaciju razmjene
podataka ne moe biti konfigurisan da koristi isti broj porta (npr. TCP port 8080). Kada se aktivnoj server
aplikaciji dodjeli odreeni broj porta, taj broj se smatra otvorenim na serveru. Ovo znai da transportni
sloj prima i procesira segmente adresirane na taj port. Bilo koji dolazedi klijentski zahtjev, adresiran na
taan socket se prihvata i podaci se proslijeuju serverskoj aplikaciji. Mogude je da simultano bude
otvoreno vie portova na serveru, po jedan za svaku aktivnu serversku aplikaciju. Uobiajano je da
server nudi vie od jedne usluge, kao to je web server i FTP server u isto vrijeme.
Jedan nain za poboljanje sigurnosti na severu je da se zabrani pristup, osim onim portovima koji su
dodijeljeni aplikacijama koje se mogu koristiti od strane autorizovanih korisnika.
Slika ispod prikazuje tipinu alokaciju izvorinog i odredinog porta u TCP klijent/server operacijama.

Slika. Klijentski zahtjevi i brojevi portova

Uspostavljanje i prekid konekcije


Kada dva hosta komuniciraju koristedi TCP, konekcija se uspostavlja prije nego se podaci razmjene.
Nakon to se zavri komunikacija, sesija se zatvori i konekcija prekine. Konekcijski i sesijski mehanizmi
omogudavaju TCP-u funkciju poudanosti.

19

Host prati svaki segment podataka u sesiji i razmjenjuje informacije o tome koji je podatak primljen na
svakom hostu koristedi informacije sadrane u TCP zaglavlju.18
Svaka konekcija ukljuuje jednosmjernu komunikaciju, ili sesiju za uspostavljanje i raskidanje TCP
procesa izmeu kranjih ureaja. Za uspostvljanje ove konekcije, host izvrava proces three-way
handshake. Kontrolni biti u TCP zaglavlju indiciraju status i odvijanje konekcije. Three-way handshake:
Ustanovljava da je odredini ureaj u mrei.
Verificira da odredini ureaj ima aktivnu usluga i prihvata zahtjeve na odredini broj porta koji klijent
koji inicira komunikaciju namjerava koristiti za sesiju.
Informie odredini ureaj da izvorini klijent namjerava uspostaviti konekciju sa tim brojem porta.
U TCP konekcijama, host koji je klijent inicira sesiju prema serveru. Za razumijevanje procesa three-way
handshake i njegovog funkcionisanja u TCP-u, bitno je razmotriti razliite vrijednosti koje dva hosta
razmjenjuju. Tri koraka u uspostavljanju TCP konekcije su:
1. Klijent koji inicira konekciju alje segment koji sadrava inicijalnu vrijednost sekvence, to slui
kao zahtjev serveru za zapoinjanje komunikacijske sesije.
2. Server odgovara segmentom koji sadri vrijednost potvrde koja je jednaka zbiru primljnog broja
sekvence i broja jedan, kao i svoju vlastitu vrijednost sinhronizacijske sekvence. Vrijednost je za
jedan veda od broja sekvence jer je potvrda uvijek sljededi byte ili oktet. Vrijednost potvrde
omogudava klijentu da povee odgovor sa originalnim segmentom koji je poslan na server.
3. Klijent koji je inicirao konekciju odgovara vrijednodu potvrde jednakom vrijednosti sekvence
koju je primio plus jedan. Ovo okonava proces uspostavljanja konekcije.19

TCP three-way handshake

Koristedi program wireshark i analiziranjem paketa moemo ispitati i objasniti proces three-way
handshake uspostavnja konekcije u TCP protokolu.

18

S. Tannenbaum, Andrew and J. Wetherall, David, Fifth edition 2011, Computer Networks, Prentice Hall, str. 560562.
19
E. Comer, Douglas, Fifth edition 2009, Computer Networks and Internet, Prentice Hall, str. 442, 443.

20

Slika. Uspostavljanje TCP konekcije


Korak 1.
TCP klijent zapoinje three-way handshake slanjem segmenta sa SYN (Synchronize Sequence Number)
postavljenom zastavicom, indiciraju inicijalnu vrijednost polja broja sekvence u zaglavlju. Ova inicijalna
vrijednost broja sekvence, poznata kao ISN (Initial Sequence Number), se bira sluajno i koristi se za
zapoinjanje pradenja toka podataka od klijanta ka serveru za ovu sesiju. ISN u u zaglavlju svakog
segmenta se poveda za jedan za svaki byte podatak koji klijent alje na server dok se komunikacija
odvija.
Kao to je prikazano na slici iz programa Wireshark, output iz analize protokola pokazuje SYN kontrolnu
zastavicu i povezani broj sekvence.
SYN kontrolna zastavica je postavljena, a broj sekvence je 0. Iako je u analizi protokola vrijednost
sekvence i potvrde prikazana kao decimalni, stvarna vrijednost je 32-bitni binarni broj.

Korak 2.
TCP server mora da potvrdi prijem SYN segmenta od klijenta da bi se uspostavila sesija izmeu klijenta i
servera. Da bi to uradio, server alje segment nazad do klijenta sa ACK postavljenom ACK zastavicom i
tako ukazuje da je broj potvrde znaajan. Sa ovom zastavicom postavljenom u segmentu, klijent
prepoznaje segment kao potvrdu da je server primio njegov segment sa SYN zastavicom.
Vrijednost polja u kome se nalazi broj potvrde je jednak inicijalnoj vrijednosti klijentskog broja sekvence
uvedanog za jedan. Sesija izmeu klijenta i servera je na ovaj nain uspostavljena. ACK zastavica de ostati
postavljena za potrebe sesije. Razgovor izmeu klijenta i servera je dvosmjerna sesija, od klijenta do
servera i od servera do klijenta. U drugom koraku three-way handshake uspostave konekcije, server
mora inicirati odgovor od servera prema klijentu. Za zapoinjanje ove sesije, server koristi SYN zastavicu
na isti nain kako je to radio i klijent. Postavlja SYN kontrolnu zastavicu u zaglavlje kako bi uspostavio

21

sesiju od servera ka klijentu. SYN zastavica indicira da je se u zaglavlju nalazi inicijalna vrijednost broja
sekvence. Vrijednost de biti koritena za pradenje toka podataka u ovoj sesiji od servera nazad ka
klijentu.
Kao to je pikazano na slici, analiza protokola pokazuje da su ACK i SYN kontrolne zastavice postavljene i
prikazani su brojevi sekvence i potvrde.

Korak 3.
Konano, TCP klijent odgovara segmentom koji sadri ACK koji je odgovor na TCP SYN poslan od strane
servera. Nema korisnikih podataka u segmentu. Vrijednost u polju koje sadri broj sekvence je za jedan
veda od inicijalnog broja sekvence primljenog od servera. Jednom kada su obje sesije uspostavljene
izmeu klijeta i servera, svi dodatni segmenti razmjenjeni u ovoj komunikaciji de imati postavljenu ACK
zastavicu.
Za zatvaranje konekcije potrebno je postaviti FIN kontrolnu zastavicu u zaglavlju segmenta. Za zatvaranje
svake jednosmjerne TCP sesije, koristi se two-way handshake koji se sastoji od FIN segmenta i ACK
segmenta. Stoga, za prekidanje jednog razgovora podranog TCP-om, potrebno je da se izvre etiri
razmjene segmenta.

Slika. Rasidanje TCP konekcije


Pri objaanjavanju koriste se pojmovi klijent i server radi pojednostavljivanja, ali prekidanje sesije moe
biti inicirano od strane bilo koja dva hosta koja su zavrila sesiju:

Kada klijent nema vie podataka za slanje on alje segment sa postavljenom FIN zastavicom.
Server alje ACK kako bi potvrdio prijem FIN segmenta za prekidanje sesije od klijenta ka
serveru.
Server alje FIN klijentu kako bi prekinuo sesiju od servera ka klijentu.
Klijent odgovara ACK potvrdom kako bi potvrdio serveru prijem njegovog FIN segmenta.
Kao to je prikazano na slici, FIN i ACK kontrolne zastavice su postavljene u zaglavlju segmenta,
tako zatvarajudi HTTP sesiju.

22

Mogude je i zatvoriti sesiju pomodu procesa three-way handshake. Kada klijent nema vie podataka za
poslati, on alje FIN serveru. Ako server takoer nema vie podataka za poslati, mogude je da odgovori i
sa FIN i sa ACK postavljenim zastavicama, tako kombinirajudi dva koraka u jedan. Jo je samo ostalo da
klijent odgovori sa ACK.

TCP reasembliranje (ponovno spajanje) segmenata

Kada usluge alju podatke koristedi TCP, segmenti mogu stidi na odredite u nepravilnom redoslijedu.
Kako bi primatelj mogao da razumije originalnu poruku, podaci u ovim segmentima se reasembliraju u
originalan raspored. Brojevi sekvence su dodjeljeni u zaglavlju svakog paketa kako bi vradanje u
originalni redoslijed bilo mogude.
Tokom uspostavljanja sesije, postavlja se ISN (Initial Sequence Number). ISN predstavlja poetnu
vrijednost za ovu sesiju za bajtekoji de biti preneeni do aplikacije koja prima podatke. Dok se podaci
alju tokom trajanja sesije, broj sekvence se povedava za broj bita koji su bili preneeni. Ovo pradenje
podataka omogudava da se svaki segmet moe jedinstveno identificirati i potvrditi, samim tim se mogu
ustanoviti i segmenti koji su izgubljeni.
Brojevi sekvence segmenta omogudavaju pouzdanost tako to pokazuju kako reasemblirati i poredati
segmente u pravilan red, to je prikazano na slici. 20

Slika. TCP vrada segmente u originalni redoslijed

20

E. Comer, Douglas, Fifth edition 2009, Computer Networks and Internet, Prentice Hall, str. 432, 433.

23

TCP proces na prijemnoj strani stavlja podatke iz segmena u prijemni buffer. Segmenti se pomodu
brojeva sekvecne stavljaju u pravilan redoslijed i nakon reasembliranja proslijeuju aplikacijskom sloju.
Svi segmenti koji dolaze sa brojem sekvence koji nije kontinualan (ne moe se nastaviti na segmente koji
su do tada pristigli) zadrava se radi kasnijeg procesiranja. Onda, kada segmenti sabajtima koji su
nedostajali pristignu, ti segmenti se procesiraju na odgovarajudi nain.

TCP potvrde (acknowledgement) i prozori

Jedna od funkcija TCP-a je da se pobrine da svaki segment stigne do svog odredita. TCP usluge na
odredinom hostu potvruju prijem podataka.
Broj sekvence segmenta u zaglavlju i broj potvrde se koriste za potvrdu prijema bajta podatka sadranih
u segmentu. Broj sekvence je broj bita koji su preneeni u sesiji uvedan za jedan (to predstavlja broj
prvog bajt podataka u trenutnom segmentu). TCP koristi broj potvrde u segmentima poslanim natrag ka
izvoritu da ukae na slijededi bajt u ovoj sesiji koji primatelj oekuje da primi. Ovo se naziva oekivana
potvrda.
Izvorite se informie da je odredite primilo sve bajte u ovom toku podatka do, ali ne i ukljuujudi bajte
na koje ukazuje broj potvrde. Svaka konekcija je, kao to je ved ranije reeno, dvosmjerna sesija. Brojevi
sekvence i potvrde se razmjenjuju u oba smjera.

Slika. TCP prozor i moguda stanja segmenata pri slanju21

U primjeru na slici ispod, host sa lijeve strane alje podatke hostu sa desne strane. alje segment koji
sadri 10 bajta podataka ove sesije i broj sekvence jednak broju u zaglavlju. Host na desnoj strani prima
segmente na sloju 4 i zakljuuje da je broj sekvence 1 i da ima 10 bajta podataka. Host zatim alje
segment natrag do hosta na lijevoj stranida bi potvrdio prijem podataka. U ovom segmentu host
21

E. Comer, Douglas, Fifth edition 2009, Computer Networks and Internet, Prentice Hall, str. 435.

24

postavlja broj potvrde na vrijednost 11 da bi ukazao kako je sljededi broj bajta koji oekuje da de primiti
11. Primjedujemo da vrijednost ACK potvrde na izvoritu ostaje 1 da bi ukazala da je segment dio
konverzacije koja se trenutno odvija i broj u polju Acknowledgment Number je validno. Kada host na
lijevoj strani koji alje podatke primi ovu potvrdu, moe poslati slijededi segment koji sadri podatke ove
sesije poevi sa brojem bajta 11.
Gledajudi kroz ovaj primjer, kada bi host koji alje podatke morao ekati na potvrdu prijema svakih 10
bajta, mrea bi imala mnogo dodatnog opteredenja. Kako bi se smanjila koliina potvrda koje se alju,
vie segmenata moe biti poslano u jednom smjeru, a samo jedan segment sa potvrdom o prijemu tih
segmenata u drugom smjeru. Ova potvrda sadri broj potvrde koji predstavlja konanu sumu
bajtaprimljenih u sesiji. Npr., ako je poetni broj sekvence 2000, i ako ima 10 segmenata po 1000 bajta
od kojih su svi ispravni primljeni, broj potvrde 12000 bi bio poslan ka izvoritu. 22
Koliina podataka koju izvor moe da prenese prije nego to se primi potvrda o njihovom prijemu na
odredituse naziva veliina prozora (window size).

Slika. Potvrde o prijemu TCP segmenata

TCP retransmisija rjeavanje problema izgubljenih segmenata

Bez obzira koliko je dobro mrea dizajnirana gubici podataka de se svejedno povremeno deavati. Zbog
toga TCP prua metode upravljanja ovim izgubljenim segmentima. Meu tim metodama je i mehanizam
retransmisije segmenata za koje nije primljena potvrda.
22

Cisco Networking Academy [datum pristupa: 01.08.12], <www.cisco.netacad.net>

25

Usluga na odredinom hostu koja koristi TCP obino potvruje podatke za kontinualne sekvence bajta.
Ukoliko jedan ili vie segmenata izostane, odnosno izgubi se, samo se potvruju prijemi podataka koji
kompletiraju kontinualan tok podatka.
Npr., ako su segmenti sa brojem sekvence 1500 do 3000 i 3400 do 3500 primljeni, broj potvrde bi bio
3001, zato to segmenti sa brojem sekvence od 3001 do 3399 nisu primljeni.
Kada TCP na izvorinom hostu ne primi potvrdu nakon nekog predefinisanog vremenskog perioda, vratiti
de se na broj posljednje primljene potvrde i poslati ponovo podatke od te take pa nadalje.
Ponovno slanje podataka (retransmisija) je proces koji nije secificiran u RFC-u, nego je ostavljno da se
prilagoava razliitim implementacijama TCP-a.
Za tipinu TCP implementaciju, host moe prenositi segment, staviti kopiju segmenta u retransmisijski
red i startovati vremenski tajmer. Kada se primi potvrda segment se brie iz reda. Ako potvrda nije
primljena prije nego istekne definisano vrijeme, segment se ponovo alje.23
Dananji host ureaji mogu, takoer, imati i opciju zvanu selektivne potvrde (Selective
Acknowledgements).24 Ako oba hosta podravaju selektivne potvrde, mogude je da odredite potvrdi
prijem nekontinuiranih segmenata i host koji alje bi u ovom sluaju mogao da poalje samo one
segmente koji nedostaju.

TCP kontrola zaguenja minimiziranje gubitka segmenata

TCP prua, takoer, i mehanizme kontrole toka. Kontrola toka asistira pouzdanosti TCP prenosa
podeavajudi efektivnu brzinu protoka podataka izmeu dvije usluge u sesiji. Kada je izvor obavijeten
da je odreena koliina segmenata primljena, moe nastaviti slati vie podataka za ovu sesiju.
Polje window size (veliina prozora) u TCP zaglavlju oznaava koliinu podataka koja moe biti preneena
prije nego se primi potvrda. Inicijalna veliina prozora se odreuje tokom zapoinjanja sesije kroz proces
25
three-way handshake.
TCP feedback mehanizam podeava efektivnu brzinu prenosa podataka do maksimalnog toka koji mrea
i odredini ureaj mogu podrati bez gubitaka. TCP pokuava upravljati brzinom prenosa tako da svi
podaci budu primljeni i retransmisije budu minimizirane.26
Na slici je prikazana pojednostavljena reprezentacija veliine prozora i potvrda. U ovom primjeru,
inicijalna veliina prozora za TCP sesiju koja je predstavljena na slici je postavljena na 3000 bajta. Kada je
23

Cisco Networking Academy [datum pristupa: 01.08.12], <www.cisco.netacad.net>


S. Tannenbaum, Andrew and J. Wetherall, David, Fifth edition 2011, Computer Networks, Prentice Hall, str. 580.
25
E. Comer, Douglas, Fifth edition 2009, Computer Networks and Internet, Prentice Hall, str. 434.
26
E. Comer, Douglas, Fifth edition 2009, Computer Networks and Internet, Prentice Hall, str. 438, 439.
24

26

poiljalac poslao 3000 bajta on eka na potvrdu prijema ovih bajta prije nego poalje jos podataka u toj
sesiji. Kada poiljac dobije potvrdu od primaoca on moe slati slijededih 3000 bajta.27
Tokom kanjenja u ekanju potvrde, poiljac nede slati dodatne segmente za ovu sesiju. U periodima
mrenog zaguenja ili kada su iscrpljeni resursi primatelja, kanjenje se moe povedati. Kako ovo
kanjenje raste, efektivna brzina prenosa podataka se smanjuje. Usporavanje brzine podataka pomae u
28
smanjivanju nadmetanja za resursima.

Slika. TCP potvde o prijemu i veliina prozora

UDP (User Datagram Protocol)


UDP Odmjeravanje izmeu optereenja i pouzdanosti

UDP je jednostavan protokol koji prua osnovne funkcije protokola transportnog sloja. Ima mnogo
manje podataka koji nisu korisni dio informacije, a prenose se u segmentu, nego to je to sluaj kod TCP
protokola. UDP nije konekcijski orjetiran i ne prua sofisticiranu retransmisiju, sekvenciranje i
mehanizme kontrole toka.29

27

Cisco Networking Academy [datum pristupa: 01.08.12], <www.cisco.netacad.net>


S. Tannenbaum, Andrew and J. Wetherall, David, Fifth edition 2011, Computer Networks, Prentice Hall, str. 523527.
29
S. Tannenbaum, Andrew and J. Wetherall, David, Fifth edition 2011, Computer Networks, Prentice Hall, str. 541,
542.
28

27

Ovo ne znai da su aplikacije koje koriste UDP protokol nepouzdane, ved samo da ove funkcije nisu
pruene od strane protokola transportnog sloja i da se moraju implementirati negdje drugo ako je to
potrebno.
Iako je koliina saobradaja koji se prenosi mreom, a koji koristi UDP protokol relativno mala, kljuni
protokoli aplikacijskog sloja koji koriste usluge UDP protokola su:

Domain Name System (DNS);


Simple Network Management Protocol (SNMP);
Dynamic Host Configuration Protocol (DHCP);
Routing Information Protocol (RIP);
Trivial File Transfer Protocol (TFTP);
Online igre.

Slika. UDP beskonekcijski protokol

Neke aplkacije, kao to su online igre ili VoIP, mogu tolerisati manje gubitke nekih podataka. Ako bi ove
aplikacije koristile TCP, moglo bi dodi do vedih kanjenja jer TCP mora vriti detekciju izgubljenih
podataka i vriti retransmisiju. Ova kanjenja bi bila mnogo vie neprihvatljiva za aplikaciju nego to su
to mali gubici informacija. Neke aplikacije, kao to je DNS, de jednostavno ponovo poslati zahtjev za koji
nisu dobile odgovor, i zato ne moraju imati TCP garanciju o pristizanju poruke.
Malo dodatno opteredenje koje UDP pravi ini ga veoma poeljnim nekim vrstama aplikacija.

Zaglavlje UDP datagrama

Znaenja polja zaglavlja UDP datagrama su:

28

Source port - Izvorini broj porta usluge je opcionalno polje. Kada se koristi, oznaava broj porta
procesa koji alje podatke. Na nju de dodi odgovor kada ne postoji druga informacija. Ako se
polje ne koristi popuni se nulama.
Destination port Odredini broj porta usluge.
Length - Duina UDP datagrama u oktetima ukljuujudi zaglavlje i podatke. Minimalna duina
UDP datagrama je 8 okteta.
Checksum - Kontrolni zbroj zaglavlja, rauna se na osnovu pseudo zaglavlja iz IP i UDP zaglavlja i
podataka. Ako je polje ispunjeno nulama znai da predajnik nije raunao zbir, a ako je zbir
jednak nuli, prenosi se kao niz jedinica
Data Podaci.30

16

32

Source port

Destination port

Length

Checksum

Data
Struktura UDP zaglavlja u 32b redovima

Slika 21. UDP zaglavlje

31

Multipleksiranje podataka razliitih aplikacija

UDP omogudava aplikacijama direktno koritenje usluga mrenog sloja, multipleksira promet razliitih
aplikacija. Demultipleksiranje na granici transportne i aplikacijske razine prikazano je na slici.

30

S. Tannenbaum, Andrew and J. Wetherall, David, Fifth edition 2011, Computer Networks, Prentice Hall, str. 542,
543.
31
E. Comer, Douglas, Fifth edition 2009, Computer Networks and Internet, Prentice Hall, str. 424.

29

Slika. Demultipleksiranje UDP prometa pojedinih aplikacija


Demultipleksiranje se obavlja pomodu sljedede etvorke:
(, , , )
gdje je:
,
,
,
.
Pomodu IP adrese izvorita i broja porta izvorita identificirana je jedna aplikacija (npr. APP2), dok je
pomodu IP adrese odredita i broja porta odredita omogudeno paralelno ostvarivanje vie UDP veza na
istu aplikaciju. Drugim rijeima, neka aplikacija, preko jednog broja porta moe istovremeno
komunicirati s vie aplikacija na udaljenim raunarima.

Reasembliranje UDP datagrama

Zato to je beskonekcijski protokol, UDP sesije se ne uspostavljaju prije poetka komunikacije kao to je
to sluaj sa TCP-om. UDP se jo naziva i prenosno orjetiranim protokolom. Drugim rijeima, kada
aplikacija ima podatke za slanje, ona jednostavno odmah poalje te podatke.
Mnoge aplikacije koje koriste UDP alju male koliine podataka koje mogu da stanu u jedan segment.
Meutim, neke aplikacije de poslati vede koliine podataka koji moraju biti podjeljeni u vie segmenata.
Osnovna jedinici transpotnog sloja kada je u upotrebi UDP protkol naziva se datagram, iako se ponekad
oba termina i datagram i segment koriste za opis bilo koje osnovne jedinice transportnog sloja.

30

Kada se poalje vie datagrama na odredite, mogude je da do njega dou razliitim putevima kroz
mreu i tako stignu u pogrenom redoslijedu. UDP nema nain za ponovno vradanje prvobitnog
redoslijeda datagrama.

Slika. UDP kao nepouzdan i beskonekcijski protokol


Zbog te injenice, UDP jednostavno reasemblira podatke redoslijedom kojim su stigli i takve proslijeuje
aplikaciji. Ako je redoslijed podataka bitan aplikaciji, ona de morati da odredi pravilan redoslijed
podataka i da odredi kako podaci trebaju biti procesirani.32

UDP serverski procesi i zahtjevi

Kao i TCP bazirane aplikacije, i UDP bazirane aplikacije imaju dodjeljene well-known ili registrovane
brojeve porta. Kada ove aplikacije ili procesi rade, oni de prihvatati podatke koji su adresirani na broj
porta koji im je pridruen. Kada UDP primi datagram za neki od ovih portova, proslijeuje aplikacijske
podatke odgovarajudoj aplikaciji bazirano na broju porta.

32

E. Comer, Douglas, Fifth edition 2009, Computer Networks and Internet, Prentice Hall, str. 422, 423.

31

Slika. UDP zahtjevi prema serveru

UDP klijentski procesi

Kao i TCP, klijent/server komunikacija je inicirana od strane klijentske aplikacije koja trai podatke od
serverskog procesa. UDP klijentski proces odabire sluajni broj porta unutar dinamikog opsega brojeva
potrova i koristi taj broj kao izvorini broj porta za komunikaciju. Odredini port de obino biti wellknown port ili registrovani broj porta dodjeljen serverskom procesu.

32

Slika. Slanje zahtjeva na odgovarajudi port i odgovor servera

Sluajni brojevi porta, takoer, su dobri i za sigurnost na mrei. Ako postoji predvidiva shemanaina na
koji se izabiraju brojevi portova, napada moe lako simulirati pristup klijentu pokuavajudi povezivanje
na broj porta za koji postoji dobra vjerovatnoda da je ispravan.
Kako nema uspostavljana sesije ukoliko se koristi UDP, im podaci budu spremni za slanje i brojevi
portova budu definisani, UDP moe formirati datagram i proslijediti ga mrenom sloju na adresiranje i
slanje na mreu.33
Treba ima na umu da jednom kada su brojevi izvorinog i odredinog porta izabrani, isti par portova de
se koristi u zaglavljima svih datagrama koritenih u transakciji. Za podatke koji se vradaju od servera ka
klijentu, brojevi porta izvorita i odredita su obrnuti.

Pogodnosti UDP-a

Nekada je bolje za prenos poruka koristiti UDP protokol umjesto TCP protokola. Neki od tih sluajeva su:

Prenos podataka aplikacija koje same osiguravaju pouzdani prenos, ili kada aplikacija doputa
manje gubitke.
Slanje upita jednog raunara drugom raunaru, uz mogudnost ponavljanja upita ako odgovor ne
stigne nakon isteka odreenog vremenskog intervala.

33

E. Comer, Douglas, Fifth edition 2009, Computer Networks and Internet, Prentice Hall, str. 421.

33

Kada je potrebno poslati manji blok podataka, veliine jednog paketa pa je jednostavnije i bre
prenositi samo podatke, bez dodatnih kontrola, a u sluaju pogrenog prijema podatke poslati
ponovno.

Neke aplikacije koriste i TCP i UDP. Npr., malo dodatnih podataka omogudava DNS-u da poslui mnoge
klijentske zahtjeve vrlo brzo. Ponekad ipak slanje traene informacije moe zahtjevati pouzdanost TCP-a.
U ovom sluaju, well-known broj porta 53 se koristi od strane oba protokola sa ovom uslugom.

34

You might also like