Kurs: -- Računarske mreže Materijali vezani uz ovu lekciju: - Test tcp protokol - TCP protokol (PDF dokument) Prva i osnovna funkcija TCP (Transmission Control Protocol) protokola je uspostavljanje i održavanje komunikacione sesije između dva računara. Komunikaciona sesija u TCP protokolu se uspostavlja u tri koraka: zahtev za uspostavljanje sesije, potvrdu o prijemu zahteva i potvrdu o pokretanju sesije. Tek nakon završetka sva tri koraka dva računara uspostavljaju viruelno komunikaciono kolo i počinju sa razmenom korisnih podataka. Kada je TCP protokol u pitanju treba zapamtiti da nema komunikacije bez uspostavljanja sesije. Tu leži i osnovni problem TCP protokola odnosno problem nastaje pri izbegavanju trećeg koraka, tj. potvrde o pokretanju sesije. Zbog toga je vrlo važno fino podešavanje vremena između drugog i trećeg koraka da bi se na taj način sprečili hakerski napadi, preciznije DoS ili DDoS napadi. DoS (Deny of Service) napadi se izvode tako što se pokreće veliki broj (nekad i preko 10 000) zahteva za komunikacionim sesijama ka nekom računaru (serveru) ali bez trećeg koraka TCP protokola. Praktično se blokira rad tog računara ili servera jer će oni čekati na treći korak odnosno na potvrde o pokretanju sesija. Samim tim njihovi resursi su iscrpljeni i ne mogu odgovoriti svim ostalim korektnim zahtevima za pokretanje sesija. Sam proces uspostavljanja komunikacionih sesija u TCP protokolu se naziva Three-Way Handshake (srp. trostruko rukovanje). Na slici je dat primer uspostavljanja komunikacione sesije između dva računara:
Slika 46: Three-way handshake
Još jedna bitna funkcija TCP protokola je garantovanje isporuke paketa. Kako TCP može garantovati isporuku paketa? Ideja se sastoji u sledećem: Pošiljalac pošalje određenu količinu podataka primaocu onoliko koliko je određeno TCP Windows Size parametrom. Windows Size parametar definiše nakon kog broja poslatih paketa kreću da stižu potvrde o prispeću paketa na destinaciju. Ideja je da nakon što se isporuči određena količina podataka primaoc za svaki sledeći paket počinje da šalje potvrdu o prispeću paketa. Dakle, ako pošiljalac ne primi potvrdu o prispeću u nekom predefinisanom vremenskom intervalu koji se naziva Acknowledgment Time Out smatra se da primalac nije primio poslate pakete i kreće da šalje ponovo. Ovaj način je vrlo efikasan način rešavanja grešaka prilikom slanja paketa i nijedan drugi protokol u TCP/IP kolekciji se ne bavi ovim poslom. Poređenja radi evropski x25 protokol stek na svakom sloju radi proveru greške što je krajnje neefikasno u poređenju sa TCP/IP protokol stekom jer se troši mnogo više mrežnih resursa na ovu vrstu provere. Iz svega ovoga možemo reći da je TCP connection oriented (srp. orjentisan ka konekcijama) protokol jer ne radi bez uspostavljanja sesije, protokol sa garantovanom isporukom paketa odnosno pouzdan. Za sve protokole transportnog sloja, bilo da je TCP ili UDP protokol, se asocira pojam broja porta. Ovaj pojam je vrlo važan jer on definiše kojoj aplikaciji na aplikativnom sloju transportni sloj šalje podatke. Protokoli aplikativnog sloja su ti kojima se asociraju brojevi portova ali je transportni sloj taj koji isporučuje podatke na odgovarajući port odnosno definiše broj porta na koji se šalje podatak. Inače, broj porta je parametar za koji je rezervisano 16 bita u Header-u paketa TCP i UDP protokola i brojevi se kreću u granicama od 0 do 65 534. U radu sa brojevima portova uvek se mora naglasiti koji je transportni protokol u pitanju jer nije isto UDP port 80 i TCP port 80. Naravno, postoje aplikacije koje koriste i UDP i TCP iste portove kao što postoje aplikacije koje koriste samo jedan ili samo drugi protokol. Da sumiramo, broj porta izvora i broj porta destinacije je jedan od najvažnijih parametara transportnih protokola i kao podatak se uvek nosi u Header-u paketa transportnog protokola.
|