Docstoc

UVOD

Document Sample
UVOD Powered By Docstoc
					TCP I UDP PROTOKOLI




                              Ana Čaić
                          Ana Kišurek
                        Dino Dušanić
          Slobodan Cvijović – Gorša
UVOD
Sve mrežne komunikacije su izgrađene na prijenosu kratkih poruka zvanih ''paketi'' koji
obično nisu veći od nekoliko tisuća byte-a. Paketi se kreću mrežom nezavisno i različitim
putovima putuju prema istom odredištu. To znači da paketi mogu doći u pomiješanom
poretku. Ako su mrežni uvjeti loši zna doći i do potpunog gubitka paketa.

Tri načina prijenosa paketa preko IP-a:
1. Većina današnjih aplikacija su izgrađene na TCP-u ( Transmission Control Protocol). On
nudi pouzdan protok podataka između IP aplikacija.
2. Nekoliko servera, obično s kratkim, samostalnim zahtjevima i odgovorima, i jednostavnim
klijentima kojima neće smetati gubitak zahtjeva i njegovo ponavljanje, odabire UDP ( User
datagram protocol ).
3. Rijetki programeri izbjegavaju prve dvije opcije, i stvaraju potpuno novi IP protokol za
komunikaciju diljem IP mreže.

Normalni operacijski sustavi korisnicima ni ne dozvoljavaju komunikaciju na mreži bez
korištenja TCP-a ili UDP-a. Korištenje UDP-a može biti kompliciranije od korištenja TCP-a
jer sami moramo paziti na nestale ili regrupirane pakete, no programersko sučelje je mnogo
jednostavnije.
UDP
ADRESE I PORTOVI

IP adrese omogućuju velikom broju različitih računala korištenje različitih vrsta mrežnih
komponenti za protok paketa diljem IP mreže.
Današnja računala mogu u bilo koje vrijeme imati pokrenuto nekoliko desetaka programa i
mnogi od tih programa žele koristiti mrežu u isto vrijeme. Sve te različite, istovremene
komunikacije se trebaju događati bez međusobnog ometanja. To je opći problem računalnog
umrežavanja koji je poznat kao multiplexing. To je potreba da se jedan kanal koristi
neometano za više različitih komunikacija. 16-bitni broj ( dakle, raspon mu je od 0 do 65535 )
koji je dodijeljen svakom UDP paketu označava port na koji se aplikacija može spojiti.

Na primjer, postavimo server na jedan od naših računala s IP adresom 192.125.30.6. Kako bi
omogućili drugim računalima da pronađu uslugu, server će zatražiti od operacijskog sustava
dozvolu da preuzme kontrolu nad UDP portom 1460. Pod uvjetom da nijedan proces ne
koristi taj port, on će serveru biti dodijeljen. Nadalje, neka klijent se IP adresom 192.125.25.3
posjeduje adresu tog novog servera i želi s njim komunicirati. Klijent će napisati upit u
memoriji i zatražiti od operacijskog sustava da taj upit pošalje kao UDP paket. Kako bi server
mogao nastaviti komunikaciju s klijentom i pošto klijent nije eksplicitno zatražio port,
operacijski sustav će mu dodijeliti slučajni port npr. 44137. Paket će tada putovati prema
portu 1460 zajedno sa IP adresom i portom klijenta koji ga je poslao. Uređeni par adrese i
porta je sve što je potrebno IP mreži da taj paket usmjeri na njegovo odredište. Server će
preuzeti zahtjev od svog operacijskog sustava zajedno s IP adresom i portom pošiljatelja.
Nakon što je formulirao odgovor, server će zatražiti od operacijskog sustava da pošalje taj
odgovor kao UDP paket na adresu i port s kojeg je zahtjev došao.

Portovi su razvrstani u tri kategorije:
   1. '' opće poznati portovi '' (0-1023) su najvažniji i najviše korišteni. Normalni korisnički
       programi ne mogu koristiti te portove.
   2. ''registrirani portovi'' (1024-49151) se inače mogu normalno koristiti, osim ako ih
       netko posebno ne rezervira. Preporuka je da ih izbjegavate.
   3. preostali port brojevi (49152-65535) su slobodni za uporabu. Iz tog skupa brojeva
       operacijski sustavi generiraju slučajne portove koje dodjeljuju klijentima.

SOCKETI

Komunikacija servera i klijenta se odvija preko socketa- to je mehanizam za prijenos paketa
baziran na kombinaciji IP adrese i porta. Svaki socket u uporabi je registriran od strane OS-a.
Kada zatražimo pristup liniji za komunikaciju stvorimo jedan od tih socketa i zatražimo da on
bude vezan za port koji želimo koristiti. Ako je to povezivanje uspješno, socket pamti taj port
i zadržava ga u svom posjedu dokle god ne zatvorimo taj socket i na taj način oslobodimo
port. Nakon što smo uspješno povezali socket sa portom, server ulazi u beskonačnu petlju
gdje je spreman primati zahtjeve maksimalne veličine 65535 byte-a. Taj broj označava
najveću veličinu koju UDP paket može imati.
                                            Slika 1. Socket1

NEPOUZDANOST

UDP klijent mora biti svjestan činjenice da se paketi mogu putem izgubiti. Nepouzdanost
UDP-a povlači da klijent svoj zahtjev mora izvršavati unutar petlje, procijeniti kada je čekao
predugo na odgovor i potom ponovno poslati zahtjev. To je nužno napraviti jer klijent ne
može razlikovati sljedeća tri događaja:
    1. odgovoru treba dugo vremena da dođe, ali će uskoro doći
    2. odgovor nikad neće doći, jer se ili on ili zahtjev izgubio
    3. server je pao i neće odgovarati nikome
Novi zahtjev može biti nepotreban u slučaju da odgovor samo kasni. No, s druge strane klijent
mora odlučiti ili ponovno poslati ili zauvijek čekati na odgovor. Klijent koristi tehniku
poznatu kao exponential backoff gdje njegovi pokušaji slanja zahtjeva postaju sve rjeđi i rjeđi.
Nažalost, preko UDP-a ne možemo razlikovati slučaj kada je server pao, a kada je mreža u
jako lošem stanju, pa jednostavno gubi sve naše pakete. Najbolji način je da klijent odustane
nakon dovoljno pokušaja, prekine proces i pokuša ga ponovno pokrenuti. Postoje programi
kod kojih prekidanje procesa nema smisla jer se ionako odvijaju kontinuirano. Npr. ikonica
koja nam prikazuje vremensku prognozu.

POVEĆANJE POUZDANOSTI

Pri slanju zahtjeva poželjno je dodati niz brojeva svakom zahtjevu i provjeravati da odgovor
sadrži isti niz brojeva. Na strani servera taj se broj samo kopira iz zahtjeva u odgovor i vraća
nazad. Taj postupak ćemo nazvati numeriranje paketića. To ima barem dvije velike prednosti.
Štiti od mogućnosti višestrukih odgovora na zahtjeve koji su više puta ponovljeni. Lako je
vidjeti kako se to može dogoditi: pošaljemo zahtjev A, dosadi nam čekati odgovor, pa ponovo
pošaljemo zahtjev A i napokon dobijemo odgovor A. Pretpostavimo da se prvi zahtjev
izgubio. No, postoji mogućnost da je dolazak odgovora samo usporen. Ako potom pošaljemo
zahtjev B serveru može se dogoditi da nam dođe odgovor na ponovljeni zahtjev A umjesto na
B što može biti jako zbunjujuće. Numeriranje paketića nas štiti od toga. To nas štiti od
višestrukih odgovora, koji se pojavljuju ne samo zbog ponovljenih zahtjeva, već i zbog
redundancije u strukturi mreže.




1
    Predavanje 2, prof.dr.sc D. Matijević
Numeriranje paketića služi kao zaštita od napada na mrežu, barem u slučaju kada napadač ne
može pročitati sadržaj paketića. Naravno, ako može, vidjet će IP adresu i port i broj bilo kojeg
paketića kojeg pošaljemo i pokušat će slati lažne odgovore – nadajući se da će stići prije
serverovog odgovora. U svrhu numeriranja koristimo nasumično izabrane velike cijele
brojeve.
Naravno, numeriranje paketića ne predstavlja pravu sigurnost, ono samo štiti od napada ljudi
koji ne mogu promatrati mrežni promet. Prava zaštita štiti i od napadača koji mogu promatrati
promet i ubacivati, kad god požele, vlastite poruke.

RASCJEPKANOST PAKETIĆA

IP šalje male UDP pakete u komadu, ali veće pakete rascjepka na nekoliko manjih paketića.
To znači da je veća mogućnost da se izgube veći paketi. Gubitak jednog dijela velikog paketa
uzrokuje nemogućnost ponovnog sastavljanja cijelog paketa.
Prednosti rascjepkanosti paketića:
     zbog efikasnosti bolje je ograničiti svoj protokol na male paketiće kako bi izbjegli
        ponovni prijenos i kako bi ograničili koliko dugo je potrebno da se UDP paket
        ponovno spoji
     neki primatelji ograničavaju veličinu paketa koje žele prihvatiti, pa fragmentacija
        omogućuje siguran prihvat paketa od strane primatelja
     pojedini operacijski sustavi (npr. Linux) primaju pogrešku ako je UDP paket velik.To
        omogućuje ponovno slanje tog paketa rascjepkanog na više paketića



STRUKTURA UDP PAKETA



                            |------------ 32 bita ---------------|
                             Port pošiljatelja    Port primatelja
                                 Duljina          Kontrolni zbroj


                                            Podaci

                                Slika 2. Struktura UDP paketa



Polje podaci sadržava ili poruku zahtjeva ili poruku odgovora. Preostala 4 polja sadrže 4
byte-a podataka. Portovi služe za pravilan proces slanja i primanja poruka. Kontrolni zbroj
služi kako bi provjerili da li su svi mali paketići uredno stigli na cilj.
Kontrolni zbroj (Checksum)

UDP na strani pošiljatelja provodi komplementiranje sume svih 16-bitnih riječi u paketu. Taj
rezultat se stavlja u polje kontrolni zbroj. Kada paket dođe (ako dođe) do primatelja, sve
16-bitne riječi se zbrajaju, uključujući kontrolni zbroj. Ako je suma jednaka
1111111111111111, tada u paketu nema registriranih pogrešaka. Ako je jedan bit 0, znamo da
se dogodila pogreška.
Primjerice, ako imamo tri 16-bitne riječi : 0110011001100110
                                             0101010101010101
                                             0000111100001111
Njihov zbroj daje 1100101011001010.
Tada taj broj komplementiramo i dobijemo 0011010100110101 što postaje kontrolni zbroj.
Kod primatelja sve četiri 16-bitne riječi se zbroje i ako nije došlo do pogreške dobivamo
111111111111111.
No, ako i dobijemo 1111111111111111, i dalje postoji mogućnost pogrešaka koje nisu
registrirane. Zbog tog razloga, mnogi drugi protokoli koriste puno bolje metode. Usprkos
tome, UDP ne čini ništa kako bi došlo do ispravljanja pogreške. Neke implementacije UDP-a
jednostavno odbace oštećeni paket; dok ga druge pošalju uz upozorenje.


BROADCAST I MULTICAST

Najveća prednost UDP-a je mogućnost broadcast-a: umjesto pojedinačnog slanja paketa,
možemo jedan paket poslati svim korisnicima u mreži. Broadcast se smatra zastarjelim zbog
naprednije tehnike koja se zove multicast. Preko multicasta se paket dostavlja samo
odabranim korisnicima, odnosno primateljima s unaprijed pripremljenog popisa. Prednost
multicasta je što može slati pakete i ljudima koji nisu na lokalnoj podmreži što broadcast
većinom ne može. Broadcast najčešće služi za igrice.


KADA KORISTITI UDP ?

UDP je efikasan samo u slučaju kada je proces tipa poruka – odgovor, poruka – odgovor …
No, ako bi htjeli poslati više poruka odjednom ne preporuča se koristiti UDP.
Postoje dva dobra razloga za korištenje UDP-a:
   1. u slučaju implementacije već postojećeg protokola koji koristi UDP
   2. postoji mogućnost gubitka paketića, ali je njihov prijenos znatno brži
TCP
TCP ( Transmission Control Protocol ) je nastao 1974. godine. Omogućuje kontinuirano
slanje podataka, koji ako stignu (tj. ako veza ne pukne zbog mrežnih problema) su zasigurno
poredani i netaknuti. Protokoli koji prenose dokumente i datoteke skoro uvijek koriste TCP,
uključujući HTTP. TCP se gotovo uvijek koristi za prijenos duge komunikacije između ljudi
ili računala.

PRINCIP RADA TCP-A

Kada koristimo TCP, paketi su skriveni i podaci mogu slobodno putovati do odredišta, sigurni
da u slučaju nedolaska će biti ponovo poslani. TCP kombinira dva ugrađena mehanizma kako
bi osigurao sigurnu komunikaciju. Prvo, svakom paketu je pridružen broj, kako bi sustav koji
ga prima, paket mogao ponovno sastaviti i na taj način primijetiti nestanak pojedinog dijela
paketa i zatražiti njegovo ponovno slanje. Umjesto korištenja uzastopnih cijelih brojeva za
označavanje paketa, TCP koristi brojač koji računa broj poslanih byte-a. Primjerice, nakon
paketa od 100 byte-a s brojem 1872 biti će poslan paket s brojem 1972. To znači da mreža ne
mora pamtiti na koji način je razbila podatke u male pakete; ako je potrebno ponovno poslati
paket, može ga se razbiti na manje pakete na neki drugi način i primatelj će svejedno znati
ponovno sastaviti pakete. Početni broj je izabran tako da napadači ne mogu lako krivotvoriti
pakete.
TCP šalje gomilu paketa u određenom vremenu prije nego što očekuje odgovor. Količina
podataka koje je pošiljatelj spreman imati na mreži u određenom trenutku se zove veličina
TCP ''prozora''. Primatelj također može regulirati veličinu prozora i na taj način usporiti ili
pauzirati komunikaciju. To se naziva kontrola toka podataka. To omogućuje zabranu
prijenosa dodatnih podataka u slučaju kada je ulazni međuspremnik (buffer) pun i dodatni
podaci bi se pri dolasku morali odbaciti. Ako TCP primijeti gubitak paketa, pretpostavlja da je
mreža postala pretrpana i prestaje slati toliku količinu podataka svake sekunde i nakon nekog
vremena potpuno odustane.
Komunikacija TCP-om omogućuje obosmjeran prijenos podataka koji se može odvijati
istovremeno. Također, TCP komunikacija je uvijek point-to-point, tj. između jednog
pošiljatelja i jednog primatelja. Dakle, multicasting - prijenos podataka od jednog pošiljatelja
do više primatelja odjednom - je nemoguć.

KADA KORISTITI TCP ?

Većina mrežnih komunikacija se koristi TCP-om. No, postoje određene situacije u kojima se
ne preporuča korištenje TCP-a. Nema smisla koristiti TCP u slučaju kada klijenti šalju
pojedinačne male zahtjeve serveru i nakon toga prekidaju komunikaciju. Potrebna su tri
paketa da bi se uspostavila TCP komunikacija i još barem tri ili četiri da bi se ta komunikacija
prekinula. Taj postupak se naziva rukovanje (handshake). Prva dva paketa ne sadržavaju
korisne podatke, dok treći može sadržavati. TCP je poželjno koristiti za dulju komunikaciju,
ali nije pri korištenju aplikacija kod kojih je zanemariv pojedini gubitak paketa, npr. u slučaju
auditorne komunikacije.
STRUKTURA TCP PAKETA

|--------------------------------------------------- 32 bita ---------------------------------------------|
                 Port pošiljatelja                                         Port primatelja
                                     Redni broj(Sequence number)
                                         Acknowledgement broj
  Duljina          Nekorišteno          Zastavica                        Veličina prozora
                 Kontrolni zbroj                                   Pokazivač na hitne podatke
                                                   Opcije
                                                   Podaci
                                  Slika 3. Struktura TCP paketa

       portovi i kontrolni zbroj imaju istu svrhu kao i kod UDP-a.
       polja redni i acknowledgement broj imaju 32 bita i služe za pouzdan prijenos podataka
       polje veličina prozora ima 16 bita i koristi se za kontrolu prijenosa podataka, tj. govori
        nam koliko byte-a je primatelj spreman primiti
       polje duljina ima 4 bita i specificira duljinu zaglavlja. Duljina zaglavlja ovisi o polju
        opcije koje je obično prazno što znači da je uobičajena duljina zaglavlja 20 byte-a
       polje opcije se koristi kada je već unaprijed dogovorena maksimalna veličina
        segmenta ( MSS )
       polje zastavica ima 6 bita : ACK, RST, SYN, FIN, PSH, URG
            o ACK – se koristi kako bi naznačili da je vrijednost u polju Acknowledgement
                broj valjana
            o RST, SYN, FIN – se koriste za uspostavu i prekid komunikacije
            o PSH – naznačuje primatelju da podatke pošalje odmah u glavni proces
            o URG – naznačuje da postoje podaci koje je pošiljatelj označio kao hitne

    Ako se niz podataka sastoji od 500 000 byte-a, MSS je 1000 byte-a i prvi byte niza je
    numeriran s 0. TCP će izgraditi 500 paketa podataka. Prvi paket će imati redni broj
    0, idući će imati 1000, treći 2000 itd.

    |-------------------------------------------podatak-----------------------------------------------|
    0              1            …            1000           …            2000               …              499 999
     |---------- prvi paket-------||----drugi paket-----|

                                            Slika 4. Redni broj
POČETAK I KRAJ KOMUNIKACIJE

Kao što smo već ranije naveli, komunikacija započinje rukovanjem koje ima tri koraka:
   1. klijent prvi pošalje posebni paket serveru. Taj paket, kao što smo ranije naveli, ne
       sadržava podatke. No, sadržava u zaglavlju paketa jedan bit zastavice koji se zove
       SYN postavljen na 1. Klijent također bira početni redni broj i smješta taj broj u
       početni paket.
   2. kada taj paket dođe do servera ( ako dođe ), server dodjeljuje TCP međuspremnike i
       varijable konekciji, i šalje potvrdu klijentu da se može spojiti. Taj paket u svom
       zaglavlju sadrži tri bitne informacije. Prvo, SYN bit je stavljen na 1. Drugo, polje
       acknowledgement broj je postavljeno na isn+1. Na kraju, server bira svoj početni redni
       broj (server_isn). Pomoću tog paketa server poručuje klijentu da je primio njegov
       paket i da započinje komunikaciju. Taj paket se zove SYNACK.
   3. nakon što je primio SYNACK paket od servera, klijent dodjeljuje međuspremnike i
       varijable konekciji. Klijent tada šalje serveru još jedan paket; taj zadnji paket priznaje
       serverov SYNACK paket. U tom paketu klijent u polju acknowledgement broj
       postavlja vrijednost server_isn+1. SYN bit je postavljen na 0 jer je komunikacija
       uspostavljena.




                                 Slika 5. Handshake2


Obje strane unutar komunikacije mogu prekinuti konekciju. Kad se konekcija prekine,
međuspremnici i varijable se oslobode. Primjera radi, pretpostavimo da je klijent odlučio
prekinuti komunikaciju. Klijent pošalje poseban paket serveru. Taj paket u svom zaglavlju
ima jedan bit zastavice koji se zove FIN bit. Kad server primi taj paket, klijentu pošalje
priznanje tog paketa. Server tada šalje vlastiti paket gašenja, koji ima FIN bit namješten na 1.
Na kraju, klijent priznaje serverov paket gašenja i sve varijable i međuspremnici se oslobode.

SOCKET

TCP također koristi portove na potpuno isti način kao što smo opisali kod UDP-a. Za
komunikaciju UDP-om potreban je samo jedan socket, dok za komunikaciju TCP-om trebamo
dvije vrste socketa: pasivni koji sluša i aktivni koji služi za komunikaciju s klijentom.
Pasivni socket sadrži adresu i port na kojem server prima konekcije. Nikakvi podaci se ne
mogu primati niti biti poslani preko tog socketa jer on ne predstavlja pravi mrežni razgovor.
Služi kao upozorenje operacijskom sustavu koje kaže da li je server spreman za konekciju.

2
    Foundations of Python Network Programming 2ed, Brandon Rhodes and John Goerzen
Aktivni socket se koristi za komunikaciju sa jednim klijentom koji ima vlastitu IP adresu i
port. Preko njega čitamo i pišemo podatke bez razmišljanja o načinu na koji će ti podaci biti
rascjepkani u male pakete.
Pasivni socket je jedinstveno određen adresom i portom na kojem sluša (tako da nitko ne
može zauzeti istu adresu i port). Može postojati mnogo aktivnih socketa koji dijele istu
lokalnu adresu i port, odnosno, broj aktivnih socketa je jednak broju spojenih klijenata.
Aktivni socket je jedinstveno određen s četiri komponente: (local_ip, local_port, remote_ip,
remote_port). Prema tome, operacijski sustav imenuje svaku aktivnu TCP konekciju i
dolazeći TCP paketi se na taj način provjeravaju kako bi se utvrdilo da li je njihov cilj jedan
od aktivnih socketa na tom operacijskom sustavu.

Pasivni socket je moguće u bilo kojem trenutku zatvoriti, ali aktivni socket ne može odmah
nestati kad su obje strane završile razgovor ( tj. zatvorile konekciju) i započele završno
rukovanje. To se događa jer nakon što je poslan zadnji paket, sustav ne može biti siguran da je
taj paket primljen. Ako je slučajno izgubljen, druga strana se može zapitati zašto taj paket nije
još došao, te ponovo poslati predzadnji paket u nadi da će odgovor doći. Nakon slanja zadnjeg
paketa, aktivni socket pričeka još četiri minute kako bi ispravno odgovorio na predzadnji
paket te ustanovio da li je komunikacija završena.


POUZDANOST

TCP koristi pouzdan način prijenosa podataka što osigurava da se podaci prenose
nepromijenjeni, bez ponavljanja i nepomiješani. Ponovni prijenos (retransmission) izgubljenih
i promijenjenih podataka je presudan za očuvanje pouzdanosti prijenosa podataka. TCP ne
može biti siguran da li je nešto izgubljeno ili samo kasni, pa se u tim situacijama koristi
ponovni prijenos. TCP također koristi pipelining što omogućuje slanje više paketa bez
saznanja o njihovom dolasku. Broj paketa koje je moguće na taj način poslati ovisi o kontroli
protoka podataka i zakrčenosti mreže. TCP koristi kontrolu protoka podataka kako bi
eliminirao mogućnost da pošiljatelj prepuni primateljev međuspremnik. Kontrola protoka
podataka uspoređuje brzinu slanja i čitanja podataka. TCP provodi kontrolu protoka podataka
na način da pošiljatelj održava varijablu koja se naziva prozor za primanje. Ta varijabla se
koristi kako bi pošiljatelj shvatio koliko ima slobodnog mjesta u međuspremniku primatelja.
Očito je ta varijabla dinamička.

Događaj                                          Odgovor TCP-a
Dolazak nepromijenjenog paketa s                 Pričekati 500 ms za dolazak idućeg pravilnog
odgovarajućim rednm brojem. Svi podaci           paketa. Ako taj paket ne stigne u tom
osim rednog broja su već priznati. Nema          intervalu, pošalji ACK.
praznina u primljenim podacima.
Dolazak nepromijenjenog paketa s                 Odmah poslati jedan cjelokupan ACK, i na
odgovarajućim rednim brojem. Još jedan           taj način obuhvatiti oba paketa.
pravilan paket čeka prijenos ACK-a. Nema
praznina u primljenim podacima.
Dolazak pomiješanog paketa s većim rednim        Odmah poslati kopiju ACK-a. Na taj način
brojem od očekivanog. Primijećena praznina.      ćemo ukazati koji redni broj ima sljedeći byte
                                                 kojeg očekujemo.
Dolazak paketa koji potpuno ili djelomično       Odmah poslati ACK, pod pretpostavkom da
popunjuje prazninu u primljenim podacima.        paket počinje na donjem kraju praznine.
DEADLOCK

Izraz deadlock se koristi ukoliko dva računala ''zapnu'' čekajući jedan drugog što je vrlo
moguće pri korištenju TCP-a. TCP koristi međuspremnike, kako bi imali gdje spremiti
dolazeće pakete dok ih program nije spreman pročitati, i kako bi mogli spremati izlazne
pakete dok ih mreža nije spremna poslati. Međuspremnici su određene veličine i ta veličina ne
mora nužno biti jednaka na obje strane komunikacije. Može se dogoditi da se klijentov ulazni
međuspremnik, a serverov izlazni međuspremnik prepunio. Serverov ulazni međuspremnik se
prepunio jer više ne može slati poruke, a klijentov izlazni međuspremnik se prepunio jer
server više ne prima pakete.
Problem deadlocka je moguće riješiti na dva načina:
    1. korištenjem thread-ova ili više zasebnih procesa
    2. korištenjem blokiranja tj. da prilikom korištenja operacije slanja podataka odmah
        dobijemo upozorenje da se podaci ne mogu poslati.


UDP vs. TCP

Prednosti:

                     UDP                                            TCP
   -   nema uspostave veze                         -    sigurnost
   -   brži prijenos podataka                      -    pouzdanost
   -   manja veličina paketa (bez zaglavlja)       -    ovisnost o mrežnoj zakrčenosti
   -   neograničenost mrežnom zakrčenosti          -    kontrola protoka podataka
   -   periodičko slanje nadogradnje
   -   jednostavnost
   -   broadcast

Primjeri aplikacija:

Aplikacija                      Aplikacijski protokol           TCP/UDP
E-mail                          SMTP                            TCP
Pristup udaljenim terminalima   Telnet                          TCP
Web                             HTTP                            TCP
Prijenos datoteka               FTP                             UDP
Udaljeni podatkovni server      NFS                             UDP
Multimedija                     /                               UDP
Internet komunikacija           /                               UDP
Mrežni menadžment               SNMP                            UDP
Protokol usmjeravanja           RIP                             UDP
Prevoditelj imena               DNS                             UDP
ZAKLJUČAK

Dakle, odabir protokola ovisi o potrebama korisnika. Želimo li brži, ali nepouzdaniji, prijenos
podataka, koristit ćemo UDP, a za sigurniji, ali sporiji, koristit ćemo TCP.Vještiji programeri
bi UDP protokol mogli učiniti pouzdanijim te time imati i brz i pouzdan prijenos podataka.
Smatramo, da postoji potreba za novim protokolom koji će ujediniti prednosti oba navedena
protokola i time osigurati najbolju moguću komunikaciju.
LITERATURA:

 1. Computer Networking: a Top-Down Approach, Kurose J.F., Ross K.W.
 2. Foundations of Python Network Programming 2ed, Brandon Rhodes and John
    Goerzen
 3. Informatički rječnik, Željko Panian
 4. Predavanja, prof.dr.sc D. Matijević

				
DOCUMENT INFO
Shared By:
Categories:
Tags:
Stats:
views:0
posted:4/8/2013
language:Unknown
pages:13