Definicija osnovnih pojmova merežnog adresiranja

 

TCP

TCP protokol

TCP portovi

Za specifične namjene pojedinih aplikacija ili drugih potreba koriste se brojni drugi protokoli, koji se jednim imenom često nazivaju IP grupa protokola (IP Protocol suite) i označavaju kraticom TCP/IP, i to prema dva najvažnija protokola.

Vidi više o protokolima i TCP/IP modelu

TCP
TCP (Transmission Control Protocol) je pouzdan (reliable) konekciono orijentisan protokol koji dozvoljava da se niz bajtova sa jednog računara isporuči bez greške bilo kom drugom računaru na Internetu.

Ovaj protokol se bavi stvarima kao što su:

  • Podjela podataka koji su mu prosleđeni iz sloja aplikacije na dijelove čija veličina odgovara sloju ispod tj internet sloju

  • Potvrđivanje prijema paketa

  • Postavljanje časovnika (time out) kako bi se osiguralo da drugi kraj potvrdi pakete koji su mu poslati

Pošto je sloj transporta zadužen za pouzdan protok podataka, to nema potrebe da sloj aplikacije zna za sve ove detalje. Na odredištu prijemni TCP proces ponovo sakuplja (sjedinjuje) primljene poruke u prvobitni niz.
TCP takođe rukuje upravljanjem protokom da bi osigurao da brzi pošiljalac ne bi zagušio sporiji prijemnik većim brojem poruka od onog broja sa kojim prijemnik može da izađe na kraj.

Korišćenjem protokola TCP aplikacija na nekom od hostova kreira virtualnu konekciju prema drugom hostu, te putem te ostvarene konekcije zatim prenosi podatke. Stoga ovaj protokol spada u grupu tzv. spojnih protokola (za razliku od bespojnih protokola kakav je npr. UDP.)
TCP podržava neke od najčešće korištenih aplikacijskih protokola na Internetu, kao što su HTTP (protokol za pregled web stranica), SMTP (protokol za razmjenu elektronske pošte), telnet i SSH (protokole za rad na udaljenom računaru) i brojne druge.
U IP grupi protokola TCP se u slojevitom prikazu nalazi između samog IP protokola ispod, te aplikacijskih protokola na sloju iznad.

TCP protokol

Prilikom korištenja TCP usluge entiteti prolaze kroz tri faze:
1. Uspostava veze - konekcija
2. Razmjena podataka
3. Prekid veze

1. Uspostava veze - Proces koji se izvodi na jednom računaru želi uspostaviti vezu s procesom na nekom drugom računaru.
Računar koje traži uspostavu veze naziva se klijent, a drugi računar se naziva server (poslužilac).

Klijentski proces informira klijentski TCP da želi uspostaviti vezu sa serverom.
Klijentski računar šalje serveruprvi specijalni segment.
Server odgovara drugim specijalnim TCP segmentom i konačno klijent odgovara trećim specijalnim segmentom.
Ova procedura se naziva "three-way handshake".

Prvi specijalni segment klijenta ne sadrži podatke aplikacijskog  nivoa. Ima jedan od bitova zastavica u zaglavlju segmenta. To je tzv. SYN bit, postavljen na 1 i naziva se  SYN segment. Nadalje, klijent odabire inicijalni redni broj (client_isn) i stavlja ga u polje za redni broj inicijalnog TCP SYN segmenta. Taj segment je uhvaćen u IP datagramu i poslan na internet.
Pod pretpostavkom da IP datagram koji sadrži TCP SYN segment stigne do servera on izdvaja TCP SYN segment iz datagrama, alocira TCP registar i varijable i šalje segment kojim odobrava uspostavu veze klijentu.
Taj segment odobravanja veze također ne sadrži podatke aplikacijskog nivoa, ali sadrži tri važne informacije u zaglavlju segmenta. Prvo, SYN bit je postavljen na 1. Drugo, Acknowledgment polje zaglavlja TCP segmenta se namješta na

. Na kraju, server odabire svoj inicijalni redni broj (server_isn) i stavlja vrijednost u polje zaglavlja TCP segmenta.
Kada klijent primi segment odobravanja veze, također alocira registar i varijable u vezi. Klijent tada šalje poslužitelju još jedan segment koji potvrđuje da je dobio segment odobravanja veze. To radi tako da stavi vrijednost server_isn+1 u acknowledgement polje zaglavlja. SYN bit postavlja se u 0 budući da je veza uspostavljena.
Nakon ovoga klijent i server su spremni jedan drugome slati segmente koji sadrže podatke.
U svakom budućem segmentu SYN će biti postavljen na 0.

 

2 .Razmjena podataka

TCP entiteti razmjenjuju podatke u obliku segmenata. Segment se sastoji od zaglavlja koje ima 20 okteta (uz opcionalni dio) za kojim slijedi nula ili više okteta podataka, a nastaje skupljanjem podataka od nekoliko upisivanja ili razbijanjem podataka od jednog upisivanja. Veličina segmenta je varijabilna uz dva ograničenja:

  • Svaki segment uključujući i TCP zaglavlje mora stati u 65 535 okteta IP paketa

  • Svaka mreža ima svoj MTU (Maximum Transmission Unit), a to je najveća dopuštena jedinica za prenos koja definiše gornju granicu veličine segmenta.

Ako je segment prevelik za mrežu kroz koju mora proći, čvor vrši fragmentaciju u više manjih segmenata od kojih svaki dobiva svoje IP zaglavlje.

Osnovni protokol kojeg koriste TCP entiteti je protokol s klizajućim prozorom (Sliding Window):

  1. Nakon slanja segmenta predajnik pokreće brojač (timer)

  2. Kad segment stigne na odredište, prijemnik šalje u segmentu potvrdu s brojem jednakim slijedećem broju segmenta kojeg očekuje

  3. Ako brojač istekne prije nego što je primljena potvrda, segment se šalje ponovno


Zaglavlje TCP paketa

Značenja polja:

  • Source Port - Broj priključne tačke usluge izvorišta.

  • Destination Port - Broj priključne tačke usluge odredišta.

  • Sequence Number - Redni broj prvog okteta podataka u tom segmentu; ako je postavljena zastavica S (SYN), onda je to početni redni broj (ISN - Initial Sequence Number), a prvi oktet podataka ima broj ISN+1.

  • Acknowledgment Number - Broj potvrde; ako je postavljen A (ACK) bit, polje sadrži redni broj sljedećeg okteta kojeg primatelj očekuje.

  • Offset - Pomak podataka, pokazuje na početak podataka u TCP segmentu, izraženo u 32-bitnim riječima (TCP zaglavlje je uvijek višekratnik 32-bitne riječi).

  • Reserved – Polje je rezervirano za buduće potrebe; popunjeno je nulama.

  • Kontrolni bitovi:

    • URG - Indikator hitnih podataka

    • ACK - Indikator paketa potvrde

    • PSH - Inicira prosljeđivanje svih do tada neproslijeđenih podataka korisniku

    • RST - Ponovna inicijalizacija veze

    • SYN - Sinkronizacija rednih brojeva

    • FIN - Izvorište više nema podataka za slanje

  • Window – Prozor, označava koliko je okteta prijemnik spreman primiti

  • Checksum - Kontrolni zbroj; računa se kao 16-bitni komplement jedinice komplementa zbroja svih 16-bitnih riječi u zaglavlju i podacima; pokriva i 96 bitova pseudozaglavlja koje sadrži izvorišnu i odredišnu adresu, protokol i duljinu TCP zaglavlja i podataka.

  • Urgent Pointer - Pokazivač na redni broj okteta gdje se nalaze hitni podaci; polje se gleda jedino ako je postavljena zastavica URG.

  • Options + Padding - Options mogu, a ne moraju biti uključene; ako postoje, veličine su x×8 bita, Padding je dopuna nulama do 32 bita.

  • Data - Podaci aplikacijskog nivoa.

3. Prekid veze

Kada klijentska aplikacija odluči prekinuti vezu s serverom šalje TCP segment sa FIN bitom postavljenim u 1 i uđe u FIN_WAIT_1 stanje.

Dok je u FIN_WAIT stanju, klijentski TCP čeka TCP segment potvrde od strane servera.

Kada primi navedeni segment, klijentski TCP ulazi u FIN_WAIT_2 stanje. Dok je u FIN_WAIT_2 stanju, klijent čeka sljedeći segment od strane servera s FIN bitom postavljenim u 1.

Nakon što primi taj segment klijentski TCP ulazi u TIME_WAIT stanje. TIME_WAIT stanje dopušta TCP klijentu da pošalje finalnu potvrdu u slučaju da je ACK izgubljen.

Vrijeme provedeno u TIME-WAIT stanju zavisi o implementaciji, ali tipične vrijednosti su trideset sekundi, jedna minuta i dvije minute. Nakon čekanja veza se formalno zatvori.

 

TCP portovi

 

TCP upotrebljava određen raspon portova kojima dodjeljuje namjenske programe na strani pošiljatelja i primatelja. Svaka strana TCP konekcije ima dodijeljenu 16-bitnu oznaku za obje strane aplikacije (slanje, primanje).
 Portovi su u osnovi podijeljeni u 3 kategorije: poznati portovi, registrirani portovi i dinamički/privatni portovi.
Opšte poznati portovi (well known ports) su dodijeljeni od strane Internet Assigned Numbers Authority,organizacije koja se brine za IP adresni prostor i druge detalje vezane uz IP protokol. Ovi portovi su najčešće korišteni od strane sistemskih procesa, koje koriste poznate aplikacije kada primaju konekcije pasivno slušajući promet na tim portovima.

Neki primjeri opšte poznatih portova su: FTP (TCP port 21), Telnet (23), SMTP (25) i HTTP (80).


Slanje i prijem podataka na neke od poznatih portova

Registrirani portovi se koriste kod aplikacija krajnjih korisnika kao izvorišni portovi prilikom konekcije servera, kao i za identifikaciju servisa registrovanih od trećih strana.

Dinamički /privatni portovi se koriste i na strani aplikacija krajnjih korisnika, ali nešto rjeđe. Dinamički/privatni protovi imaju samo lokalno značenje za određenu TCP konekciju.

TCP protokol koristi portove od 1 do 65535, tj. ukupno ima 65535 mogućih različitih portova.

TCP je vrlo kompleksan protokol. Ovdje su samo dijelom objašnjene procedure koje se koriste kod TCP protokola.
 
Pozicija TCP u TCP/IP protokolu (zmeđu Internet i aplikacijskog nivoa) i ilustracija razmjene podataka kod TCP protokola
Bitno je da se razumije princip slanja i provjere paketa na prijemnoj i predajnoj strani.

vidi podešavanje mrežnog protokola kod Windowsa