Transmisioni kontrolni protokol – razlika između verzija

Uklonjeni sadržaj Dodani sadržaj
Dcirovicbot (razgovor | doprinos)
m Dcirovicbot je premjestio stranicu TCP na Transmisioni kontrolni protokol
Dcirovicbot (razgovor | doprinos)
Nema sažetka izmjene
Red 1:
__BEZKN__
'''TCP''' je protokol za kontrolu prijenosa podatka, takođe je dio [[TCP/IP]]-a (Transmission Control Protocol/Internet Protocol) koji je dio svakog računarskog sistema. Njegova je uloga malo drugačija. Dok se IP brine za identifikaciju i vezu sa najvećom od svih mreža, TCP se brine o razmjeni podataka sa mrežom, tako da pod njegom kontrolom leže podprotokoli i usluge koje se nalaze i na računaru korisnika i na serveru kojem pristupa. Među njima su [[FTP]] - file transfer protocol, news, [[gopher]], [[telnet]] i drugi servisi koji se mogu TCP-om ostvarivati.
{{Internet protokoli}}
{{Клица-рачунарство}}
'''Transmisioni kontrolni protokol''' (''TCP'', {{jez-eng|Transmition control protocol}}) je protokol koji pripada [[Transportni sloj|sloju 4]] [[OSI model|OSI]] referentnog modela, ima za ulogu da obezbezbedi pouzdan transfer podataka u [[Internet protokol|IP]] okruženju. Između ostalih servisa koje nudi, neki su: pouzdanost, efikasna kontrola toka podataka, operisanje u ful-dupleksu (istovremeno slanje i primanje podataka) i multipleksiranje koje omogućava istovremen rad niza procesa sa viših slojeva putem jedne konekcije. TCP vrši transver podataka kao nestrukturisan niz bajtova koji se identifikuju sekvencom. Ovaj protokol grupiše bajtove u segmente dodeli im broj sekvence, aplikacijama dodeli broj porta i prosledi ih [[Internet protokol|IP]] protokolu.
{{commonscat|TCP}}
 
TCP obezbeđuje pouzdanost pokretanjem algoritama koji pre razmene podataka prvo uspostave konekciju između korisnika, a potom obezbeđuje i niz mehanizama kao što je slanje ACK broja.
Strana koja prima podatke šalje broj sekvence bajta koje je primio, u slučaju da destinacija ne pošalje ACK da je primio određenu sekvencu bajtova u određenom vremenskom intervalu ona biva naknadno ponovo poslata.
Mehanizmi pouzdanosti kod TCP-a omogućuju uređajima da se nose sa gubicima, kašnjenjima, dupliciranjem ili pogrešnim isčitavanjem paketa. Time-out mehanizam omogućuje uređaju da detektuje izgubljene pakete i da zahteva njihovu ponovnu transimsiju.
 
== TCP zaglavlje ==
 
<center>
<table width="65%" style="BORDER-RIGHT: #aaa 1px
solid;
BORDER-TOP: #aaa 1px solid; BACKGROUND: #f9f9f9; BORDER-LEFT: #aaa
1px solid; BORDER-BOTTOM: #aaa 1px solid; FONT-FAMILY: 'Arial' font-size:'10pt' text-align:center; BORDER-COLLAPSE: collapse; TEXT-ALIGN: center" border="1">
 
<tr bgcolor="#C0C0C0">
<td colspan="4"> <b>bit 0-3 <td colspan="6"> <b>4-10 <td><td><td><td><td><td >
<td colspan="16"> <b>16-31
 
<tr bgcolor=gray style="height:10px">
<td width="2.8%"><td width="2.8%"><td width="2.8%"><td width="2.8%">
<td width="2.8%"><td width="2.8%"><td width="2.8%"><td width="2.8%">
<td width="2.8%"><td width="2.8%"><td width="2.8%"><td width="2.8%">
<td width="2.8%"><td width="2.8%"><td width="2.8%"><td width="2.8%">
<td width="2.8%"><td width="2.8%"><td width="2.8%"><td width="2.8%">
<td width="2.8%"><td width="2.8%"><td width="2.8%"><td width="2.8%">
<td width="2.8%"><td width="2.8%"><td width="2.8%"><td width="2.8%">
<td width="2.8%"><td width="2.8%"><td width="2.8%"><td width="2.8%">
 
<tr style="height:60px">
<td colspan="16"> Izvorišni [[TCP i UDP port|port]] <td colspan="16"> Odredišni port
<tr style="height:60px">
<td colspan="32"> Broj segmenta (SEQ)
<tr style="height:60px">
<td colspan="32"> Broj sledećeg bajta (ACK)
<tr style="height:60px">
<td colspan="4"> Dužina <td colspan="6"> Rezervisano
<td>
<P>U
R
G
</P>
<td>
<P>A
C
K
</P>
<td>
<P>P
S
H
<td>
<P>R
S
T
</P>
<td>
<P>S
Y
N
</P>
<td>
<P>F I&nbsp;
N
</P>
<td colspan="16"> Veličina dinamičkog prozora
<tr style="height:60px">
<td colspan="16"> Čeksuma (Provera bitskih grešaka)
<td colspan="16"> Pokazivač prioriteta (URG)
<tr style="height:60px">
<td bgcolor="#FFF8E7" colspan="32"> Opcije
<tr style="height:120px">
<td colspan="32"> Podatak
 
</table>
</center>
 
Polja:
* Izvorišni port - dodeljen broj (32 bita) ~ 65000, identifikuje aplikaciju koja je inicijator komunikacije
* Odredišni port - port koji identifikuje serversku aplikaciju
* Broj segmenta (SEQ) - redni broj segmenta u odnosu na početni (broj bajta u odnosu na inicijalni)
* Broj sledećeg bajta (ACK) - redni broj bajta poslat predajnoj strani koji očekuje da primi
* Dužina - Dužina zaglavlja
* Rezervisana polja
* URG, ACK, PSH, RST, SYN, FIN predstavljaju kontrolne bite
* Veličina dinamičkog prozora - broj okteta koje je moguće slati bez potvrde o njihovom prijemu
* Čeksuma - Provera bitskih grešaka, komplement sume TCP zaglavlja
* Pokazivač prioriteta (URG) - pokazuje važnost poruke koja se šalje
* Opcije - Opciona informacija
* Podatak - ako postoji opciona informacija bitovi počevši sa 192 predtavljaju poratak, inače od 160. bita
 
== Uspostavljanje konekcije ==
Komunikacija između aplikacija uz pomoć TCP protokola se odvija tako što se prvo između klijenta i servera uspostavi veza (usluga sa konekciojm), za razliku od komunikacije UDP protokolom koji je ne zahteva. Konekcija se uspostavlja tako što se između prijemne i predajne strane iz tri puta razmene poruke sa podešenim odgovarajućim kontrolnim bitima.
# Predajna strana A šalje poruku sa podešenim kontrolnim bitom SYN=1 ({{jez-eng|'''SYN'''chronize Sequence Number}}), ostali su podešeni na 0, pri čemu nasumično izabere redni broj segmenta (SEQ<sub>A</sub>).
# Prijemna strana B odgovara porukom sa kontrolnim bitima SYN i ACK=1, svoj broj segmenta bira takođe nasumično (SEQ<sub>B</sub>), a za ACK broj uzima ACK=(SEQ<sub>A</sub>)+1, ovim je uspostavljena veza na liniji od predajne ka prijemnoj strani.
# Slanjem poruke sa podešenim kontrolnim bitom SYN=1 od pijemne strane, ona zahteva da predajna strana potvrdi uspostavljanje veze od prijmne ka predajnoj strani. Što ona i čini tako što odgovara porukom sa podešenim kontrolnim bitom ACK=1 ({{jez-eng|'''ACK'''nowledgment number }}), dok uz to uzima vrednost ACK broja ACK=(SEQ<sub>B</sub>)+1. Ovim je uspostavljena obostrana konekcija između klijenta i servera.
 
== Prekidanje konekcije ==
Pri završetku slanja podataka, server šalje poruku sa podešenim kontrolnim bitom FIN=1 ({{jez-eng|'''FIN'''ish}}). Veza od servera ka klijentu se prekida time što klijent na slanje ovakve poruke odgovara sa porukom sa podešenim kontrolnim bitom ACK=1 (potvrda o prijemu). Ukoliko i klijent želi zatvoriti konekciju on isto tako šalje poruku sa podešenim bitom FIN=1. Konačno obostrano prekidanje veze se potvrđuje od strane servera koji odgovara sa porukom u čijem je zaglavlju podešen bit ACK=1.
 
== Vidi još ==
{{Commonscat}}
* [[UDP]]
* [[Internet protokol]]
* [[Spisak internet protokola]]
 
[[Kategorija:Računarstvo]]
[[Kategorija:Internet]]
[[Kategorija:Internet protokoli]]