Professional Documents
Culture Documents
Transportni Sloj TCP-IP Modela
Transportni Sloj TCP-IP Modela
PREDAVANJE 6
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
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>
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.
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.
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
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.
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
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.
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
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:
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>
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.
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
10
10
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
13
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
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.
15
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.
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.
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
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.
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
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
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.
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.
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
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.
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.
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).
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
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 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
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.
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
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:
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.
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
31
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
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.
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
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
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