Transmission Control Protocol (TCP) är ett förbindelseorienterat dataöverföringsprotokoll som används för huvuddelen av all kommunikation över Internet. TCP tillhandahåller en relativt pålitlig dataström mellan två datorer och används för exempelvis HTTP, FTP och e-post (SMTP, IMAP och POP3). TCP är mindre lämpligt i situationer där dess felkorrigerande egenskaper kan orsaka oönskade fördröjningar, exempelvis i datorspel eller videoströmmar. Där används ofta istället transportprotokollet UDP.

TCP använder sig av det underliggande protokollet IP. IP skickar data i form av paket. Varje paket innehåller en liten mängd data (ofta 1480 bytes), samt information om vilken dator som skickade paketet, och vilken dator som ska ta emot det. IP ger inga garantier för att paket som skickas över nätverket kommer fram, och paket som skickas behöver inte komma fram i samma ordning som de skickades.

När TCP skickar data så delas det upp i lämpliga stycken (så kallade segment), och varje segment skickas i ett eget IP-paket. När IP-paketet kommer fram till mottagaren skickar denna ett ACK-segment tillbaka till sändaren för att bekräfta att data kommit fram. Om sändaren inte fått ett sådant ACK-segment inom en viss tid så antas att datapaketet har försvunnit på nätet och datapaketet skickas om. På så sätt uppnås pålitligheten hos TCP.

För att hantera att IP-paket kan komma fram i oordning använder TCP sekvensnummer. Varje paket som skickas tilldelas ett 32-bitars nummer, och detta används av mottagaren för att sortera de mottagna datapaketen.

TCP innehåller mekanismer som begränsar hur fort data skickas för att inte överbelasta nätet. Varje gång nätverket förlorar ett datapaket så antas detta bero på att det ligger på gränsen för att överbelastas. TCP drar då ned på sändningstakten till hälften av den nuvarande för att undvika att lasta ned nätet ytterligare. När inga datapaket går förlorade ökar protokollet takten igen.

Förenklat kan TCP liknas vid ett telefonsamtal. Man ringer, väntar och lyssnar på signalen och när någon svarar börjar parterna kommunicera, annars får man försöka senare.

tcpochudp

Mer infomation:

https://sv.wikipedia.org/wiki/Transmission_control_protocol