Wat is UDP en hoe verschilt het van TCP?

Auteur: Gepubliceerd

In het kort: UDP is een netwerkprotocol dat kleine hoeveelheden gegevens verstuurt zonder eerst een verbinding tot stand te brengen. Het protocol bevestigt zelf geen ontvangst, verstuurt verloren pakketten niet opnieuw en garandeert niet dat ze in de juiste volgorde aankomen. Het is nuttig wanneer actuele gegevens en een lage vertraging belangrijker zijn dan het terughalen van elk ontbrekend stukje gegevens — bijvoorbeeld bij spraakgesprekken en online games.

Hoe werkt UDP en wat is een datagram?

UDP, voluit User Datagram Protocol, is een transportlaagprotocol: het bepaalt hoe applicaties via het netwerk gegevens uitwisselen. Het werkt boven op IP, het protocol dat verantwoordelijk is voor de adressering en verzending van pakketten tussen apparaten. IP helpt de juiste host te bereiken, terwijl UDP poortnummers gebruikt om de gegevens naar de juiste dienst of applicatie te sturen.

Een afzonderlijk UDP-bericht heet een datagram. Het bevat applicatiegegevens en een header met informatie zoals de bronpoort, de doelpoort en de lengte van het bericht. De UDP-header is 8 bytes groot; voor verzending via het netwerk zijn ook headers van andere lagen nodig, waaronder IP.

De afzender verstuurt een datagram naar een gekozen IP-adres en poortnummer. UDP stemt de verbinding niet vooraf af met de ontvanger via een zogenoemde handshake. Dat betekent echter niet dat een applicatie die UDP gebruikt geen aanmelding, sessies of een eigen procedure voor het afstemmen van de communicatie kan hebben.

UDP houdt berichten afzonderlijk: twee verzonden datagrammen worden niet samengevoegd tot één stroom bytes. De ontvanger kan ze echter in omgekeerde volgorde ontvangen, een duplicaat krijgen of geen van beide ontvangen.

Wat garandeert UDP niet?

Als een applicatie een datagram succesvol verstuurt, bewijst dat niet dat de ontvanger het heeft ontvangen. Een pakket kan onder meer verloren gaan door netwerkoverbelasting, een firewall of het ontbreken van een programma dat op de betreffende poort luistert. UDP zelf lost zo’n situatie niet op.

Het protocol biedt ook geen stroomregeling, waarbij de verzendsnelheid wordt afgestemd op wat de ontvanger aankan, en geen congestiecontrole om netwerkoverbelasting te beheersen. Als een applicatie die functies nodig heeft, moet ze aanvullende mechanismen gebruiken. Steeds meer gegevens versturen zonder op verliezen te reageren, kan de communicatie verslechteren in plaats van versnellen.

UDP versleutelt geen gegevens en verifieert de identiteit van de afzender niet. Protocollen die boven op UDP werken, zoals DTLS of QUIC, kunnen vertrouwelijkheid en authenticatie bieden. Het ontbreken van deze functies in UDP zelf betekent dus niet dat elke dienst die UDP gebruikt informatie onbeveiligd verstuurt.

UDP tegenover TCP: wanneer doet het verschil ertoe?

TCP, voluit Transmission Control Protocol, is een ander veelgebruikt transportprotocol. Het brengt een verbinding tot stand en biedt de applicatie een geordende stroom bytes, waarbij verloren gegevens automatisch opnieuw worden verzonden. Als de communicatie niet kan worden voortgezet, kan die eindigen met een fout — ook TCP garandeert niet dat een volledige bedrijfsactie slaagt, zoals het opslaan van een bestelling.

EigenschapUDPTCP
Verbinding tot stand brengenNiet in het protocol zelfVereist
Manier van gegevensoverdrachtAfzonderlijke datagrammenStroom bytes
Verloren gegevens opnieuw verzendenNiet automatischIngebouwd
Volgorde van gegevensNiet gegarandeerdBehouden in de stroom
CongestiecontroleNiet in UDP zelfIngebouwd

De uitspraak ‘UDP is sneller dan TCP’ is een vereenvoudiging. UDP heeft een kleinere header en wacht niet op ontvangstbevestigingen, maar de werkelijke vertraging hangt ook af van het netwerk en het ontwerp van de applicatie. Als het programma zelf de ontvangst moet bevestigen en elk bericht opnieuw moet kunnen versturen, kan een deel van dat voordeel verdwijnen.

Stel je een game voor waarin de client regelmatig de positie van een tegenstander ontvangt. Als één update verloren gaat, kan een nieuwere update nuttiger zijn dan het opnieuw versturen van de oude. Informatie over de aankoop van een voorwerp vereist daarentegen een bevestiging en bescherming tegen dubbele uitvoering — UDP alleen biedt dat niet.

Waar kom je UDP in de praktijk tegen?

UDP wordt in veel diensten gebruikt, al hangen de details af van het specifieke programma en de netwerkomstandigheden:

HTTP/3 laat zien dat ‘werkt boven op UDP’ niet betekent dat ‘inhoud van een webpagina zonder gevolgen verloren mag gaan’. Garanties die UDP niet biedt, kunnen worden geleverd door de laag erboven.

Hoe controleer je of een applicatie UDP nodig heeft?

Als je een router of firewall configureert, controleer dan in de documentatie van de applicatie welk protocol, welke poort en welke verkeersrichting vereist zijn. Een TCP-poort en een UDP-poort met hetzelfde nummer zijn afzonderlijke communicatiepunten: TCP toestaan geeft UDP niet automatisch toegang.

Stel niet beide protocollen open ‘voor de zekerheid’. Een gewone uitgaande verbinding vereist doorgaans geen handmatige poortdoorsturing, maar die kan wel nodig zijn als je een server vanuit je thuisnetwerk beschikbaar stelt. Bepaal eerst of het programma alleen verbinding maakt met een dienst of ook verkeer vanaf internet moet ontvangen — daarvan hangt de juiste configuratie af.

Zie ook: Wat is GitLab?

Lees ook

Lees hoe PHP-FPM PHP-verzoeken verwerkt, verschilt van een webserver en hoe je processen afstemt op verkeer en hostingcapaciteit.
Ontdek hoe BIND als open DNS-serversoftware domeinen beheert, welke rollen het vervult en wanneer zelf beheren zinvol is.
Lees wat het Poolse REGON-register en -nummer betekenen, hoe ze verschillen van NIP en KRS en hoe je bedrijfsgegevens controleert.