9.3     Basisprotocollen

9.3.4       TCP en UDP

TCP staat voor Transmission Control Protocol en is een OSI laag 4 (Transport) protocol. Kort samengevat zorgt het voor opzetten en onderhouden van een softwarematige verbinding tussen twee toestellen (client en server). Bovendien zorgt het TCP protocol dat de data verzonden via deze verbinding betrouwbaar is. Dit gebeurt o.a. via een handshake procedure voor het opstellen van de verbinding, foutdetectie en opnieuw zenden data indien nodig. TCP kan op die manier bijvoorbeeld een betrouwbare verbinding garanderen zelfs indien IP pakketten op de onderliggende laag verloren zouden gaan. Dit resulteert wel in een grotere vertraging (‘latency’). TCP wordt gebruikt door allerhande protocollen in de applicatielaag waaronder HTTPS (gebruikt voor websites).

De data-eenheid bij TCP is een zogenaamd segment. Bij de zender wordt de data die komt van de applicatielaag opgesplitst en ingepakt in segmenten. Deze segmenten worden vervolgens ingepakt in een IP pakket en gaan verder naar beneden in de protocol stack om vervolgens verzonden te worden over het medium (laag 1: fysieke laag) en bij de ontvanger terug naar boven te gaan in de protocol stack tot aan de applicatielaag in de ontvanger.

In bepaalde gevallen is het minder belangrijk om betrouwbare transmissie te hebben in de transportlaag. In deze gevallen kan gekozen worden voor het User Datagram Protocol of UDP. Dit protocol stelt geen verbinding op zoals bij TCP en voorziet ook niet in betrouwbare transmissie. Door het ontbreken van deze functies, is de header van een UDP datagram veel kleiner in vergelijking met deze van een TCP segment. Hierdoor is er dus minder extra data door te sturen, wat het protocol efficiënter maakt. Door het ontbreken van herverzending is er bovendien ook beduidend minder vertraging in geval van dataverlies.

Toepassingen van UDP zijn onder andere real-time communicatietoepassingen zoals videogesprekken. Hierbij is een lage latency van groot belang om een kwalitatieve dienst te kunnen aanbieden. Het permanent verlies van enkele pakketten doorheen de tijd heeft meestal geen al te hoge impact op de dienst. Ook in niet-real-time toepassingen zoals een VPN tunnel wordt vaak UDP gebruikt. Hier is dataverlies natuurlijk wel een probleem, maar dit wordt dan aangepakt via mechanismen in de applicatielaag.

Om de verschillende datastromen via TCP en UDP te kunnen onderscheiden, wordt gebruik gemaakt van zogenaamde poorten. Dit is een logisch concept dat softwareapplicaties toelaat om verbindingen op te zetten tussen applicatielaag protocollen (bv. HTTPS) op client en server toestellen. Poorten krijgen een nummer tussen 0 en 65535. Het beheer van de poortnummers valt onder de bevoegdheid van IANA (Internet Assigned Numbers Authority). Voorbeelden van vast toegekende poortnummers voor applicatielaag protocollen op servers zijn 67 (DHCPv4), 443 (HTTPS) en 53 (DNS).

Keer terug naar de inhoudsopgave