TCP-protocol

Het TCP-protocol (Tansmission Control Protocol) biedt, op bases van het IP-protocol, betrouwbare verbindingen aan, in de vorm van bytestromen in beide richtingen.
Dit protocol vormt de basis voor veel van de toepassingen op het internet, bijvoorbeeld e-mail en het web.

Hoe kun je op basis van een best-effort pakketcommunicatie betrouwbare bytestroom-verbindingen realiseren?

Deze vraag is een voorbeeld van een probleem dat veel vaker in de informatica voorkomt: hoe kun je op basis van onbetrouwbare onderdelen, een betrouwbaar systeem maken?

Bij het realiseren van een betrouwbare bytestroom-verbinding hebben we te maken met verschillende deelproblemen, die door verschillende onderdelen van het protocol opgelost worden.

Deelprobleem

Onderdeel van het protocol

Betrouwbaar transport van pakketten

Checksum, ontvangstbevestiging, time-out, hertransmissie

Van bytestroom naar pakketten v.v.

Genummerde segmenten

Efficiƫnt gebruik van het transportkanaal

Sliding window protocol

Opzetten van een verbinding

3-way handshake

We zullen deze verschillende deelproblemen en de manier waarop deze in TCP opgelost worden kort bespreken.
Voor een uitgebreidere bespreking verwijzen we naar het achtergrondmateriaal.

De computers in de eindpunten die het TCP-protocol uitvoeren, moeten de toestand hiervan bijhouden.
Naast de complexiteit die dit met zich meebrengt, moeten ook de nodige middelen hiervoor gereserveerd worden, bijvoorbeeld voor bufferruimte.
Als een TCP-verbinding niet volgens de regels afgesloten wordt, moet voorkomen worden dat deze middelen gereserveerd blijven, want dat vereist weer de nodige extra administratie en activiteiten.