User Datagram Protocol (UDP) werd in 1980 geïntroduceerd en is een van de oudste netwerkprotocollen die er zijn. Het is een eenvoudig OSI-transportlaagprotocol voor client / server-netwerktoepassingen, is gebaseerd op Internet Protocol (IP) en is het belangrijkste alternatief voor TCP.
Een korte uitleg van UDP kan verklaren dat het een onbetrouwbaar protocol is in vergelijking met TCP. Hoewel dat klopt, omdat er geen foutcontrole of correctie is betrokken bij datatransmissies, klopt het ook dat er zeker toepassingen zijn voor dit protocol die TCP niet kan evenaren.
UDP (ook wel UDP / IP genoemd) wordt vaak gebruikt in videoconferentietoepassingen of computerspellen die speciaal zijn gemaakt voor real-time prestaties. Om hogere prestaties te bereiken, staat het protocol toe dat afzonderlijke pakketten worden verwijderd (zonder nieuwe pogingen) en dat UDP-pakketten in een andere volgorde worden ontvangen dan waarvoor ze waren verzonden, afhankelijk van de toepassing.
Deze transmissiewijze, in vergelijking met TCP, zorgt voor minder overhead en vertraging van gegevens. Omdat de pakketten ongeacht wat verzonden worden en er geen foutcontrole plaatsvindt, resulteert dit in het gebruik van minder bandbreedte.
Is UDP beter dan TCP?
Het antwoord op deze vraag is afhankelijk van de context, omdat UDP betere prestaties mogelijk maakt, maar mogelijk een slechtere kwaliteit dan TCP.
Een goed voorbeeld van wanneer UDP de voorkeur heeft boven TCP, is als het gaat om een toepassing die beter presteert met minder vertraging, zoals online gamen, videochats of spraakverzendingen. Pakketten kunnen verloren gaan, maar met minder algehele vertragingen om de kwaliteit te temperen, wordt er niet veel kwaliteitsverlies waargenomen.
Bij online gamen laat het UDP-verkeer het spel doorgaan, zelfs als de verbinding tijdelijk wordt verbroken, of als sommige van de pakketten om welke reden dan ook worden verwijderd. Als er sprake was van een foutcorrectie, zou de verbinding tijdverlies lijden omdat de pakketten proberen opnieuw in te voeren waar ze gebleven waren om de fouten goed te maken, maar dat is niet nodig in live videogames. Hetzelfde geldt voor live streaming.
De reden dat UDP niet zo geweldig is als het gaat om bestandsoverdrachten, is dat je het volledige bestand wel nodig hebt om het goed te kunnen gebruiken. Je hebt echter niet elk afzonderlijk pakket van een videogame of video nodig om ervan te genieten.
Zowel TCP als UDP in laag 4 van het OSI-model en werken met services zoals TFTP, RTSP en DNS.
UDP-datagrammen
UDP-verkeer werkt via zogenaamde datagrammen, waarbij elk datagram bestaat uit een enkele berichteenheid. De koptekstgegevens worden opgeslagen in de allereerste acht bytes, maar de rest is wat het eigenlijke bericht bevat.
Elk deel van een UDP-datagramkop, hier weergegeven, is twee bytes:
- Bron poortnummer
- Bestemmingspoortnummer
- Datagram grootte
- checksum
Met UDP-poortnummers kunnen verschillende applicaties hun eigen kanalen voor gegevens onderhouden, vergelijkbaar met TCP. UDP-poortkoppen zijn twee bytes lang; daarom gelden geldige UDP-poortnummers van 0 tot 65535.
De UDP-datagramgrootte is een telling van het totale aantal bytes in de kop- en gegevenssecties. Omdat de headerlengte een vaste grootte is, volgt dit veld effectief de lengte van het datagedeelte met variabele grootte (soms payload genoemd).
De grootte van datagrammen varieert afhankelijk van de besturingsomgeving, maar heeft een maximum van 65535 bytes.
UDP-controlesommen beschermen berichtgegevens tegen manipulatie. De controlesomwaarde vertegenwoordigt een codering van de datagramgegevens die eerst door de verzender en later door de ontvanger zijn berekend. Als een individueel datagram wordt gemanipuleerd of beschadigd raakt tijdens verzending, detecteert het UDP-protocol een fout in de controlesomberekening.
In UDP is checksumming optioneel, in tegenstelling tot TCP waarbij controlesommen verplicht zijn.