TCP is een afkorting van Transmission Control Protocol en wordt uitgesproken als afzonderlijke letters. TCP is een van de belangrijkste protocollen in TCP / IP-netwerken. Terwijl het IP-protocol alleen pakketten behandelt, stelt TCP twee hosts in staat een verbinding tot stand te brengen en gegevensstromen uit te wisselen. TCP garandeert de levering van gegevens en garandeert ook dat pakketten worden afgeleverd in dezelfde volgorde waarin ze zijn verzonden.
Hoe werkt een TCP-verbinding?
Om een TCP-verbinding tot stand te brengen, moet er een gesprek plaatsvinden tussen de client en de server. Dit wordt gewoonlijk de handdruk in drie stappen genoemd:
-
De cliënt legt contact met een SYN (synchronisatie) pakket en een willekeurig getal als een foutcontrolemaatregel. (Daarover later meer.)
-
Zodra de server het pakket heeft ontvangen, retourneert het het signaal om de verbinding te beginnen door een SYN-ACK-pakket te verzenden en het oorspronkelijke willekeurige getal met één te verhogen. De server stuurt ook zijn eigen willekeurige nummer naar de client.
-
De laatste stap is dat de client een ACK-pakket (bevestiging) naar de server verzendt zodra deze de verzending in stap twee heeft ontvangen. De client verhoogt ook beide willekeurige getallen met één en stuurt ze terug naar de server.
Zodra de TCP-verbinding tot stand is gebracht, kunnen de server en de client onmiddellijk beginnen met het verzenden van gegevens. Het is belangrijk op te merken dat als er een vertraging is bij het ontvangen van de bevestigingspakketten (SYN-ACK of ACK), er een proces genaamd time-out voor opnieuw verzenden wordt gebruikt om een pakket automatisch opnieuw te verzenden na een bepaalde tijdsduur.
Hoe lang duurt een TCP-verbinding?
In theorie kunnen TCP-verbindingen voor onbepaalde tijd meegaan als ze eenmaal tot stand zijn gebracht. In de praktijk zullen ze echter meestal alleen duren totdat een externe kracht tussenbeide komt of een onderbreking in de verbinding veroorzaakt, zoals een NAT-router, firewall, bandbreedteproblemen, enz. Een keepalive-signaal wordt in de meeste gevallen gebruikt om regelmatig een inactieve verbinding te valideren en elke onderbreking of breuk te voorkomen. Als het keepalive-signaal niet wordt verzonden of ontvangen na een bepaalde tijd (afhankelijk van de unieke transmissiesnelheid van de verbinding), wordt de verbinding verbroken en moet deze opnieuw tot stand worden gebracht.
Zijn TCP en UDP verschillend?
Ja. Hoewel er overeenkomsten zijn in wat TCP en UDP (user datagram protocol) doen en waar ze werken binnen een IP-stack, is er een duidelijk onderscheid in hoe ze werken en wanneer ze worden gebruikt. Spraak- en videoverkeer wordt doorgaans via UDP verzonden en een aantal internettoepassingen gebruiken het protocol, zoals de Domain Name Service (DNS), SNMP en DHCP.
TCP |
UDP |
Brengt een verbinding tot stand tussen server en client voordat gegevens worden gedeeld |
Begint met het verzenden van gegevens voordat de verbinding tot stand is gebracht |
Biedt foutcontrole tijdens verzending om ervoor te zorgen dat gegevens volledig, in orde en zonder schade worden aangeleverd |
Garandeert geen levering, bestelling of nauwkeurigheid van gegevens |
Gebruikt transmissiebuffers om de gegevensstroom te regelen |
Verzendt continu gegevens of verbreekt mislukte transmissies |
Relatief langzamer dan UDP |
Relatief sneller dan TCP |
Toepassingen: hoge betrouwbaarheidseisen (bijv. HTTP / HTTPS, FTP, e-mail, etc.) |
Toepassingen: hoge snelheid en efficiëntie-eisen (bijv. Videostreaming, DNS, VoIP, etc.) |