User Datagram Protocol (UDP) är ett förbindelselöstprotokoll itransportskiktet för att skicka datagram över ettIP-nätverk.
Med förbindelselöst (en.stateless ellerconnectionless) menas att ingensession upprättas mellan sändare och mottagare av protokollet i sig. Härvid kan inte sändare (på UDP-nivå) garantera att mottagaren får paketet. Mottagaren kan heller inte veta att den fått alla paket, eller att den fått paketen i rätt ordning. Jämför medTCP som är ett förbindelseorienterat (en.stateful ellerconnection oriented) protokoll. Således bidrar alltså UDP, till skillnad mot TCP, inte i större utsträckning med några funktioner mellannätverksskiktet ochapplikationsskiktet förutom portnummer och lite enklare undersökning på mottagarsidan av eventuella fel (error checking) på segmentet, vilket sker genom undersökning av kontrollsumman. Om mottagaren (på UDP-nivå) upptäcker ett trasigt UDP-segment kastas vanligtvis segmentet bort eller skickas vidare till applikationsskiktet med en varning. Mottagaren begär alltså i detta fall inte en återsändning av segmentet vilket hade varit fallet i TCP. Återsändning kan begäras av det program i applikationsskiktet som utnyttjar UDP.
Den som skapar ett protokoll som bygger på UDP måste separat sköta om att hantera eventuella sessioner och försenade eller borttappade paket, i den mån sådan hantering behövs. UDP lämpar sig för tillämpningar med krav på låglatens och där ett förlorat paket eller omkastad ordning spelar mindre roll. Exempel på sådana tillämpningar ärIP-telefoni,P2P-nätverk ochdatorspel. Protokollet kan också användas då sessionshanteringen i TCP inte räcker och ändå måste hanteras på en högre nivå.
Ett UDP-paket består av en header som efterföljs av data. UDP-headerns uppbyggnad kan ses i nedanstående tabell:
UDP HeaderOffset | Oktett | 0 | 1 | 2 | 3 |
---|
Oktett | Bit | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
---|
0 | 0 | Avsändarport | Destinationsport |
---|
4 | 32 | Längd | Kontrollsumma |
---|
- Avsändarport
- Anger vilken port datan skickades från.
- Destinationsport
- Anger vilken port datan skickas till.
- Längd
- Längd inklusive UDP-header, dvs det lägsta tillåtna värdet är 8 (då finns det ingen payload).
- Kontrollsumma
- Används för att kontrollera att paketet inte har blivit korrupt. Sätts till noll om den inte används.
James F. Kurose, Ross, Keith W,Computer Networking: A Top-Down Approach
Tanenbaum,Andrew S;Computer networks