TCP (Transmission Control Protocol) begint met een proces dat de TCP-handshake wordt genoemd. Deze handshake initialiseert en onderhandelt over parameters tussen twee apparaten (meestal een client en een server) voordat de gegevensoverdracht begint. De TCP-handshake omvat drie stappen: SYN, SYN-ACK en ACK. Eerst stuurt de client een SYN-pakket (synchroniseren) naar de server om een verbindingsverzoek te initiëren. De server antwoordt met een SYN-ACK-pakket (synchronize-acknowledgment), waarmee wordt aangegeven dat hij de SYN heeft ontvangen en bereid is een verbinding tot stand te brengen. Ten slotte stuurt de client een ACK-pakket (erkenning) terug naar de server, waarmee de ontvangst van de SYN-ACK wordt bevestigd. Zodra deze handshake voltooid is, zijn beide partijen het eens geworden over de initiële volgnummers, venstergroottes en andere parameters die nodig zijn voor betrouwbare gegevensoverdracht.
TCP wordt gevormd door gegevens in segmenten in te kapselen voor verzending via een netwerk. Wanneer een toepassing gegevens verzendt, verdeelt TCP deze in kleinere eenheden die segmenten worden genoemd. Elk segment bevat een TCP-header die besturingsinformatie bevat, zoals volgnummers, bevestigingsnummers, venstergroottes en controlesommen voor foutdetectie. Deze segmenten worden vervolgens doorgegeven aan de IP-laag voor routering en levering via het netwerk. Na ontvangst voegt TCP aan de ontvangende kant de segmenten opnieuw samen tot de oorspronkelijke datastroom, waardoor een betrouwbare en geordende levering van data wordt gegarandeerd, zelfs als pakketten in de verkeerde volgorde aankomen of verloren gaan.
De drie fundamentele stappen van TCP zijn:
- Verbinding tot stand brengen: Dit omvat het eerder beschreven TCP-handshake-proces, waarbij een client en server SYN-, SYN-ACK- en ACK-pakketten uitwisselen om een betrouwbare verbinding tot stand te brengen voordat de gegevensoverdracht begint.
- Gegevensoverdracht: Zodra een verbinding tot stand is gebracht, beheert TCP de overdracht van gegevens in segmenten. Gegevenssegmenten worden van de afzender naar de ontvanger verzonden, en TCP zorgt ervoor dat ze in de juiste volgorde en zonder fouten aankomen, met behulp van volgnummers voor de volgorde en bevestigingen voor betrouwbaarheid.
- Verbinding beëindigen: Wanneer de gegevensoverdracht voltooid is, initieert TCP een proces voor het beëindigen van de verbinding om de verbinding op een correcte manier te verbreken. Het gaat hierbij om een handshake waarbij beide partijen FIN (finish)-pakketten uitwisselen om de verbinding op een gecoördineerde manier te sluiten. Zodra beide partijen de FIN-pakketten erkennen, wordt de verbinding volledig gesloten en worden de aan de verbinding toegewezen bronnen vrijgegeven.
TCP werkt door een verbindingsgericht communicatiekanaal tot stand te brengen tussen twee hosts via een netwerk. Het zorgt voor een betrouwbare levering van gegevens via mechanismen zoals volgnummers, bevestigingen en stroomcontrole. Wanneer een afzender gegevens verzendt, verdeelt TCP deze in segmenten, voegt headers met besturingsinformatie toe en verzendt deze naar de ontvanger. De ontvanger bevestigt de ontvangst van elk segment en verzoekt om hertransmissie van verloren of beschadigde segmenten. TCP beheert ook de stroomcontrole om te voorkomen dat de ontvanger wordt overspoeld met gegevens, waarbij de transmissiesnelheden worden aangepast op basis van de netwerkomstandigheden. Dankzij deze combinatie van functies kan TCP een foutloze, geordende en betrouwbare gegevensoverdracht over diverse netwerken bieden, waardoor het geschikt is voor toepassingen die gegarandeerde levering en nauwkeurige controle over de gegevensoverdracht vereisen.