Wat is UDP?
UDP (User Datagram Protocol) is een lichtgewicht, verbindingsloos transportprotocol dat losse datapakketjes (datagrammen) over een IP-netwerk verstuurt zonder vooraf een verbinding op te bouwen en zonder ontvangstbevestiging, herverzending of volgordegarantie. UDP is vastgelegd in RFC 768 uit augustus 1980 en werkt op laag 4, de transportlaag, van het OSI-model, naast TCP. Omdat er geen handshake en geen wachttijd op bevestigingen is, kiest u UDP waar snelheid, lage latency en multicast belangrijker zijn dan gegarandeerde aflevering.
In OT-netwerken draait veel infrastructuur- en procesverkeer over UDP: SNMP, Syslog, NTP, PTP, cyclische I/O van IP en gebouwprotocollen als BACnet en KNX.
🧠 Hoe werkt UDP?
UDP voegt aan een IP-pakket alleen een header van 8 bytes toe, met vier velden van elk 2 bytes:
| Veld | Grootte | Functie |
|---|---|---|
| Bronpoort | 16 bits | Poort van de afzender (optioneel, mag 0 zijn) |
| Doelpoort | 16 bits | Bepaalt welke applicatie het datagram ontvangt |
| Lengte | 16 bits | Lengte van header plus data, maximaal 65.535 bytes |
| Checksum | 16 bits | Detecteert beschadigde data; optioneel bij IPv4, verplicht bij IPv6 |
De werking in het kort:
- Geen verbindingsopbouw - de zender stuurt direct, zonder de drieweg-handshake van TCP
- Geen bevestiging of herverzending - een verloren datagram blijft verloren; pakketverlies moet de applicatie zelf opvangen
- Geen volgordegarantie - datagrammen kunnen in een andere volgorde aankomen dan ze zijn verstuurd
- Wel foutdetectie - de checksum laat de ontvanger beschadigde datagrammen weggooien, maar herstelt ze niet
- Unicast, broadcast en multicast - UDP kan één bericht tegelijk naar veel ontvangers sturen, wat TCP niet kan
Een UDP-datagram mag theoretisch 65.535 bytes groot zijn (65.507 bytes data over IPv4), maar grote datagrammen worden gefragmenteerd en raken dan sneller verloren: gaat één fragment verloren, dan is het hele datagram weg. Veel industriële protocollen houden hun berichten daarom binnen één Ethernet-frame: bij een MTU van 1.500 bytes is dat maximaal 1.472 bytes data over IPv4 en 1.452 bytes over IPv6.
🔄 Wat is het verschil tussen UDP en TCP?
| Aspect | UDP | TCP |
|---|---|---|
| Verbinding | Verbindingsloos | Verbindingsgericht (handshake) |
| Aflevering | Best effort, geen bevestiging | Gegarandeerd, met bevestiging en herverzending |
| Volgorde | Niet gegarandeerd | Gegarandeerd |
| Headergrootte | 8 bytes | Minimaal 20 bytes |
| Multicast/broadcast | Ja | Nee, alleen één-op-één |
| Gedrag bij verlies | Volgende datagram gaat gewoon door | Wacht en verstuurt opnieuw, wat jitter geeft |
| Voorbeelden in OT | SNMP, Syslog, NTP, PTP, BACnet | Modbus TCP, OPC UA client/server, IEC 60870-5-104, HTTP |
Voor cyclische procesdata is herverzending vaak zinloos: een meetwaarde van een sensor die te laat aankomt, is al achterhaald door de volgende. Daarom gebruiken Real-time-protocollen die over IP lopen meestal UDP en bewaken ze zelf of er op tijd data binnenkomt, bijvoorbeeld met een timeout of volgnummer. Voor configuratie, bestandsoverdracht en schrijfopdrachten naar een besturing is TCP juist de betere keuze.
🏭 Welke industriële protocollen gebruiken UDP?
| Protocol | Standaard UDP-poort | Gebruik |
|---|---|---|
| SNMP | 161 (polling), 162 (traps) | Statusbewaking van switches, routers en UPS’en |
| Syslog | 514 | Logberichten naar een SIEM of logserver |
| NTP | 123 | Tijdsynchronisatie van servers en besturingen |
| PTP (IEEE 1588) | 319 (event), 320 (general) | Tijdsynchronisatie op microsecondeniveau; kan ook direct over Ethernet |
| IP | 2222 | Cyclische I/O (implicit messaging); configuratie via TCP 44818 |
| ProfiNET | 34964 | Verbindingsopbouw via DCE/RPC; de cyclische RT-data loopt direct over Ethernet |
| BACnet/IP | 47808 | Gebouwautomatisering |
| KNXnet/IP | 3671 | Koppeling van KNX-installaties met IP-netwerken |
| OPC UA PubSub (UADP) | 4840 | Multicast van procesdata tussen controllers en edge |
| DNP3 | 20000 | Telemetrie in water en energie; meestal TCP, UDP is optioneel |
| DNS / DHCP | 53 / 67–68 | Naamresolutie en adresuitgifte |
Twee belangrijke nuances voor de energiesector: klassieke GOOSE- en Sampled Values-berichten uit IEC 61850 gebruiken geen UDP, maar lopen direct over Ethernet (laag 2, EtherType 0x88B8 voor GOOSE en 0x88BA voor Sampled Values) en blijven daardoor binnen één VLAN. Pas de routeerbare varianten R-GOOSE en R-SV uit IEC 61850-90-5 verpakken die berichten in UDP/IP-multicast, zodat ze tussen onderstations over een gerouteerd netwerk kunnen. Ook PTP-profielen voor de energiesector draaien meestal op laag 2.
🔐 Welke beveiligingsrisico’s heeft UDP?
Omdat UDP geen sessie en geen handshake kent, controleert het protocol niet wie de afzender is. Dat levert drie typische risico’s op:
- Spoofing - een aanvaller vervalst eenvoudig het bron-IP-adres, omdat er geen handshake is die het adres bevestigt
- Flooding - een UDP-flood vult bandbreedte en buffers van een apparaat; eenvoudige veldapparatuur met een beperkte netwerkstack kan daardoor uitvallen
- Amplificatie - bij een DDoS-aanval stuurt de aanvaller kleine verzoeken met het vervalste adres van het slachtoffer naar open UDP-diensten, die veel grotere antwoorden terugsturen
CISA noemt in zijn advies over UDP-amplificatie onder meer deze versterkingsfactoren:
| Dienst | Versterkingsfactor (bandbreedte) |
|---|---|
| SNMPv2 | 6,3× |
| DNS | 28 tot 54× |
| TFTP | 60× |
| NTP | 556,9× |
| Memcached | 10.000 tot 51.000× |
Daarnaast zijn veel OT-protocollen op UDP van oudsher onversleuteld en zonder authenticatie: SNMPv1/v2c stuurt de community string als platte tekst, Syslog over UDP kan ongemerkt worden vervalst en BACnet/IP en KNXnet/IP accepteren in de basisvorm commando’s van elk apparaat in het netwerk.
🔧 Hoe beveiligt u UDP-verkeer in een OT-netwerk?
Een praktische aanpak in vijf stappen:
- Inventariseer - breng met passieve monitoring of Wireshark in kaart welke UDP-poorten werkelijk in gebruik zijn, per zone en per apparaat
- Segmenteer - plaats systemen in zones volgens het zone- en conduitmodel van IEC 62443 en laat broadcast en multicast niet buiten de eigen VLAN komen; gebruik netwerksegmentatie en IGMP-snooping op switches om multicast te beperken
- Filter - sta op een firewall, bij voorkeur een industriële firewall, alleen de benodigde UDP-poorten toe tussen bekende adressen; gebruik ACL’s op switches en blokkeer UDP vanaf internet volledig, ook SNMP, NTP en DNS
- Kies veilige varianten - SNMPv3 met authenticatie en encryptie, Syslog over TLS (RFC 5425), NTP met Network Time Security (RFC 8915) en CIP Security voor EtherNet/IP, dat TLS en DTLS gebruikt, en KNX IP Secure voor KNXnet/IP; voor verbindingen tussen locaties een VPN
- Monitor - laat een IDS of netwerkmonitoring afwijkingen in UDP-verkeer signaleren, zoals nieuwe poorten, onverwachte multicastgroepen of plotselinge pieken, en stuur de logging naar het SIEM
Deze maatregelen sluiten aan op de eisen voor netwerksegmentatie en het beperken van onnodige diensten in IEC 62443-3-3, en op de zorgplicht voor netwerk- en informatiesystemen onder NIS2.
❓ Veelgestelde vragen
Is UDP onbetrouwbaar?
UDP garandeert niet dat een datagram aankomt of in de juiste volgorde binnenkomt, maar detecteert met de checksum wel beschadigde data. In een goed ontworpen, niet-overbelast industrieel netwerk gaan weinig UDP-pakketten verloren. Protocollen die op UDP draaien, regelen betrouwbaarheid zelf met volgnummers, timeouts of het herhaald versturen van de actuele waarde.
Waarom gebruiken real-time protocollen UDP in plaats van TCP?
Real-time protocollen gebruiken UDP omdat TCP bij pakketverlies wacht en opnieuw verstuurt, wat vertraging en jitter veroorzaakt. Bij cyclische procesdata is de volgende waarde al onderweg, dus herverzending van een oude waarde heeft geen zin. UDP ondersteunt bovendien multicast, zodat één zender veel ontvangers tegelijk kan bedienen.
Welke UDP-poorten zijn belangrijk in OT-netwerken?
Veelvoorkomende UDP-poorten in OT zijn 161/162 voor SNMP, 514 voor Syslog, 123 voor NTP, 319/320 voor PTP, 2222 voor EtherNet/IP-I/O, 47808 voor BACnet/IP, 3671 voor KNXnet/IP en 4840 voor OPC UA PubSub. Fabrikanten kunnen afwijkende poorten gebruiken, dus controleer altijd de documentatie van het apparaat. Een firewall hoort alleen de poorten door te laten die per verbinding nodig zijn.
Gebruikt GOOSE in IEC 61850 UDP?
Klassiek GOOSE in IEC 61850 gebruikt geen UDP, maar loopt direct over Ethernet op laag 2 met EtherType 0x88B8. Daardoor is GOOSE niet routeerbaar en blijft het binnen één VLAN of onderstation. Alleen R-GOOSE uit IEC 61850-90-5 verpakt GOOSE-berichten in UDP/IP-multicast om ze over gerouteerde netwerken te sturen.
Kan UDP-verkeer versleuteld worden?
UDP-verkeer kan worden versleuteld met DTLS, de datagramvariant van TLS, of door het via een IPsec- of andere VPN-tunnel te sturen. Ook QUIC, de basis van HTTP/3, draait versleuteld over UDP. In OT ondersteunen veel oudere apparaten geen encryptie, waardoor segmentatie en filtering de belangrijkste maatregelen blijven.
Hoe herkent u een UDP-flood of amplificatie-aanval?
Een UDP-flood of amplificatie-aanval herkent u aan een plotselinge piek in UDP-verkeer naar één doel, vaak met grote antwoordpakketten van diensten als DNS, NTP of SNMP. Netwerkmonitoring en een IDS tonen dit als afwijking ten opzichte van het normale, voorspelbare OT-verkeerspatroon. Voorkom misbruik van uw eigen systemen door deze diensten nooit vanaf internet bereikbaar te maken.
📌 Samengevat
UDP is het snelle, eenvoudige transportprotocol onder veel OT-diensten: van SNMP en Syslog tot PTP, EtherNet/IP-I/O en OPC UA PubSub. Het mist bevestigingen, volgorde en afzendercontrole, en daarom vraagt UDP-verkeer om segmentatie, strikte poortfilters, veilige protocolvarianten en monitoring.
UDP ruilt betrouwbaarheid in voor snelheid en multicast, en is daardoor ideaal voor real-time OT-verkeer, maar alleen veilig binnen een goed gesegmenteerd en bewaakt netwerk.
