TCP i UDP (Osnove)
#1
TCP/UDP
***
Autor: Zlatan Vasovic (ZDroid) - Autor clanka u Dinovom Zabavniku.

TCP i UDP mrežni protokoli

Da bi prenos podataka funkcionisao putem interneta, neophodno je da pet slojeva svakog paketa podataka funkcioniše bez greške. Tih pet slojeva su aplikacioni (HTTP), transportni (TCP i UDP), mrežni (IP), link (Ethernet i WiFi) i fizički (npr. koaksijalni kabl za Ethernet). Postoje veoma bitne razlike između dva najpoznatija rešenja za transportni sloj, TCP­a i UDP­a.

TCP

TCP je skraćenica od Transmission Control Protocol (transmisioni kontrolni protokol). On garantuje prenos svih paketa od servera do klijenta, bez ikakvih gubitaka. Njegov mehanizam podrazumeva efikasnu proveru dostave paketa i zahtevanje od klijenta (tj. softvera i hardvera koji primaju podatke ­ to su najčešće računar i pregledač) da ponovo pokuša razmenu, u slučaju da neki paket nedostaje. Njegova glavna primena je u svim većim aplikacijama, poput WWW, email­a, prenosa datoteka i daljinskog upravljanja, jer im je neophodan uređen i pouzdan prenos paketa. S obzirom da čini glavni deo Internet protokola (IP­a), često se spominje i kao TCP/IP).

TCP poseduje nekoliko veoma značajnih funkcija za prenos podataka:

organizovan, uređen prenos podataka ponovni prenos izgubljenih paketa prenos podataka bez grešaka kontrola protoka kontrola “zapušenosti” mreže

Paketi se ne šalju redom putem TCP­a, jer ako bi jedan kasnio, to bi usporilo sve pakete nakon njega. Zato svaki paket poseduje informaciju koji on po redu treba da bude nakon što dođe do klijenta. Klijent čita informacije i ređa pakete, pa je krajnji rezultat dobar poredak paketa.

Ponovni prenos izgubljenih paketa podrazumeva mehanizam gde server od klijenta zahteva potvrdu da je dobio svaki paket. Ukoliko ne dobije tu potvrdu, on je ponovo zahteva.

U većini slučajeva to funkcioniše kao trosistemsko rukovanje, odnosno u tri koraka se razmenjuje informacija provere.

U prva dva koraka server i klijent razmenjuju redne brojeve, a zatim se vrši potvrda. Razmena rednih brojeva bi trebala da bude nepredvidljiva da bi potencijalni napadač imao manje šansi da pogodi broj.

Mehanizam provere grešaka proverava da li ima duplikata paketa, da li su svi paketi dobro označeni i sl.

Postoji dodatan brojevni podatak, checksum, koji služi za sigurniju proveru grešaka.

Ipak, smatra se veoma slabim za novije standarde jer se tehnologija provere grešaka nije menjala, a ranjivost redovno raste.

TCP ne dopušta neograničen protok podataka na uređajima sa velikom razlikom između brzina prenosa podataka

Primer za to je PC sa brzom konekcijom i smartfon sa sporom konekcijom.

Da računar ne bi poslao podatke smartfonu prebrzo tako da smartfon ne može da odradi provere na vreme, protok se ograničava.

Ipak, mehanizam koji TCP koristi nije praktičan za sve aplikacije iz prostog razloga: TCP provere zahtevaju vreme

Zato mnoge aplikacije kojima je kašnjenje nedopustivo poput video telefonije (VoIP), DNS­a, servera za računarske igre i nekih protokola koriste UDP (User Datagram Protocol).


UDP

Ipak, mehanizam koji TCP koristi nije praktičan za sve aplikacije iz prostog razloga: TCP provere zahtevaju vreme. Zato mnoge aplikacije kojima je kašnjenje nedopustiljivo poput video telefonije (VoIP), DNS­a, servera za računarske igre i nekih protokola koriste UDP (User Datagram Protocol). UDP, za razliku od TCP­a, akcenat stavlja na efikasnost prenosa paketa uz minimalnu strukturu protokola. Zbog nedostatka provera često se pogrešno navodi i kao Unreliable Datagram Protocol (nepouzdan datagram protokol).

UDP poseduje jednostavnu strukturu paketa. On ne garantuje da će svi paketi doći od servera do klijenta i nema kontrole protoka i zapušenosti mreže. Zahteva vrlo mali broj podataka od servera i klijenta ali može da izvrši sve osnovne mrežnje radnje. Poseduje i jednostavnu verifikaciju integriteta (celosti) koja ne zahteva mnogo vremena u poređenju sa TCP­ovim proverama

Ipak, postoji par problema. Nepoznato je da li su paketi stigli do klijenta — možda su stigli a možda su izgubljeni na mreži. Takođe, red paketa je nepredvidljiv, tako da ne znamo koji će paket stići prvi.

Ti problemi se rešavaju efikasnošću prenosa podataka, što je veoma značajno za aplikacije poput Skype­a i računarskih igara kojima je neophodna stalna veza sa serverom. Njima nije bitno ako se nije videlo šta se desilo nekoliko sekundi ranije (taj podatak nije stigao do klijenta), jer bi provere da li su paketi stigli oduzeli vreme pa ne bismo mogli da vidimo ni šta se dešava sada, a kamoli šta se desilo pre nekoliko sekundi.

I TCP i UDP imaju prednosti i mane. Izbor između njih u većini slučajeva nije težak, jer skoro svaka aplikacija zahteva ili pouzdanost, mali broj grešaka i određene kontrole ili efikasnost i minimalnost. Ukoliko je aplikaciji neophodan pouzdan prenos podataka, TCP je bolji izbor. Ukoliko je aplikaciji potrebna efikasnost, UDP je bolji izbor.

Literatura
Tanenbaum, Andrew S. (17. mart 2003). ”Computer”
Vinton G. Cerf, Robert E. Kahn, (maj 1974). "A Protocol for Packet Network Intercommunication"
Forouzan, B.A. (2000). TCP/IP: Protocol Suite, 1st ed.
UDP and TCP: Comparison of Transport Protocols (24. jul 2013).
https://www.youtube.com/watch?v=Vdc8TCESIg8
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)