Wat is TCP (Transmission Control Protocol)?
Verbindingsgericht protocol van de transportlaag. Het bouwt een verbinding op met een three-way handshake en levert gegevens met volgnummers, ontvangstbevestigingen (ACK's) en hertransmissie in de juiste volgorde af, zonder gaten of duplicaten. Flowcontrol en congestiebeheersing regelen hoeveel het verstuurt. Het draagt onder meer webverkeer via HTTP/1.1 en HTTP/2, e-mail en SSH.
Japanse benaming: TCP
“TCP (Transmission Control Protocol)” komt voor in 21 oefenvragen uit 3 onderwerpen, bijv. Basis van computernetwerken, Netwerkontwerp en -beheer, Basis van webtechnologie.
Vakgebied: Basis van computernetwerken
Header en verbindingsbeheer
Een TCP-header is zonder opties 20 bytes. Hij bevat het bron- en bestemmingspoortnummer, het volgnummer, het bevestigingsnummer, vlaggen zoals SYN, ACK, FIN en RST, de venstergrootte en een checksum. Een verbinding wordt geïdentificeerd door vier waarden: het bron- en bestemmings-IP-adres en de bijbehorende poortnummers. Ze begint met een three-way handshake en wordt gesloten wanneer elke richting een FIN verstuurt. Gaat één segment verloren, dan kunnen latere gegevens niet aan de applicatie worden doorgegeven, ook al zijn ze aangekomen (head-of-line blocking), wat een van de redenen is dat HTTP/3 in plaats daarvan QUIC over UDP gebruikt.
Veelgestelde vragen
Wat is het verschil tussen TCP en UDP?
TCP bouwt een verbinding op en levert gegevens betrouwbaar af met ontvangstbevestigingen, hertransmissie en volgorderegeling. UDP heeft geen verbindingsopbouw en geen hertransmissie en verstuurt eenvoudig datagrammen, zodat de header kleiner is en er minder vertraging bijkomt. TCP wordt gebruikt waar volledigheid telt, zoals bij het web en bestandsoverdracht; UDP waar weinig vertraging belangrijker is dan af en toe een verlies, zoals bij spraakgesprekken, en voor korte uitwisselingen zoals DNS-query's.
Wanneer verstuurt TCP gegevens opnieuw?
Er zijn twee aanleidingen: er komt geen ACK binnen de hertransmissietime-out, die wordt berekend uit gemeten RTT's, of er komen drie dubbele ACK's met hetzelfde bevestigingsnummer achter elkaar, wat fast retransmit in gang zet. Blijven hertransmissies mislukken, dan wordt de time-out telkens verdubbeld.
Waarom is de doorvoer van TCP lager dan de snelheid van de verbinding?
Per rondgangstijd kan hooguit één venster aan gegevens worden verzonden, dus de doorvoer daalt naarmate de afstand tot de andere kant groeit of het venster krimpt. Ze daalt ook wanneer pakketverlies de congestiebeheersing het venster laat verkleinen, of wanneer de ontvangende applicatie de gegevens traag leest.