I computernetværk står UDP for User Datagram Protocol. David P. Reed udviklede UDP-protokollen i 1980. Den er defineret i RFC 768, og den er en del af TCP/IP-protokollen, så det er en standardprotokol over internettet. UDP-protokollen gør det muligt for computerapplikationerne at sende beskederne i form af datagrammer fra en maskine til en anden maskine over Internet Protocol (IP) netværket. UDP er en alternativ kommunikationsprotokol til TCP-protokollen (transmissionskontrolprotokol). Ligesom TCP giver UDP et sæt regler, der styrer, hvordan dataene skal udveksles over internettet. UDP'en fungerer ved at indkapsle dataene i pakken og give sin egen headerinformation til pakken. Derefter indkapsles denne UDP-pakke til IP-pakken og sendes til dens destination. Både TCP og UDP protokoller sender dataene over internetprotokolnetværket, så det er også kendt som TCP/IP og UDP/IP. Der er mange forskelle mellem disse to protokoller. UDP gør det muligt for processen at behandle kommunikation, mens TCP'en giver vært til værtskommunikation. Da UDP sender beskederne i form af datagrammer, anses det for at være den bedste kommunikationsform. TCP sender de enkelte pakker, så det er et pålideligt transportmedium. En anden forskel er, at TCP er en forbindelsesorienteret protokol, hvorimod UDP er en forbindelsesløs protokol, da den ikke kræver noget virtuelt kredsløb for at overføre dataene.
UDP giver også et andet portnummer for at skelne mellem forskellige brugeranmodninger og giver også mulighed for kontrolsum til at verificere, om de komplette data er ankommet eller ej; IP-laget leverer ikke disse to tjenester.
Funktioner i UDP-protokollen
Følgende er funktionerne i UDP-protokollen:
UDP er den enkleste kommunikationsprotokol for transportlag. Den indeholder et minimum af kommunikationsmekanismer. Det betragtes som en upålidelig protokol, og den er baseret på leveringstjenester, der gør den bedste indsats. UDP giver ingen bekræftelsesmekanisme, hvilket betyder, at modtageren ikke sender bekræftelsen for den modtagne pakke, og afsenderen venter heller ikke på bekræftelsen for den pakke, den har sendt.
UDP er en forbindelsesfri protokol, da den ikke opretter en virtuel sti til at overføre dataene. Den bruger ikke den virtuelle sti, så pakker sendes i forskellige stier mellem afsender og modtager, hvilket fører til tab af pakker eller modtaget ude af drift.
Bestilt levering af data er ikke garanteret.
I tilfælde af UDP, sendes datagrammerne i en eller anden rækkefølge vil blive modtaget i samme rækkefølge er ikke garanteret, da datagrammerne ikke er nummererede.
java liste metoder
UDP-protokollen bruger forskellige portnumre, så dataene kan sendes til den korrekte destination. Portnumrene er defineret mellem 0 og 1023.
UDP muliggør hurtigere transmission, da det er en forbindelsesfri protokol, dvs. der kræves ingen virtuel sti for at overføre dataene. Men der er en chance for, at den enkelte pakke går tabt, hvilket påvirker transmissionskvaliteten. På den anden side, hvis pakken går tabt i TCP-forbindelse, vil den pakke blive sendt igen, så den garanterer leveringen af datapakkerne.
UDP'en har en hvilken som helst bekræftelsesmekanisme, dvs. der er ingen håndtryk mellem UDP-afsenderen og UDP-modtageren. Hvis beskeden sendes i TCP, så bekræfter modtageren, at jeg er klar, så sender afsenderen dataene. I tilfælde af TCP sker håndtrykket mellem afsender og modtager, hvorimod der i UDP ikke er noget håndtryk mellem afsender og modtager.
Hvert UDP-segment håndteres individuelt af andre, da hvert segment tager forskellig vej for at nå destinationen. UDP-segmenterne kan gå tabt eller leveres ude af funktion for at nå destinationen, da der ikke er nogen forbindelsesopsætning mellem afsender og modtager.
Det er en statsløs protokol, der betyder, at afsenderen ikke får kvitteringen for den pakke, som er blevet sendt.
Hvorfor kræver vi UDP-protokollen?
Da vi ved, at UDP er en upålidelig protokol, men vi kræver stadig en UDP-protokol i nogle tilfælde. UDP'en er installeret, hvor pakkerne kræver en stor mængde båndbredde sammen med de faktiske data. For eksempel ved videostreaming er det besværligt at anerkende tusindvis af pakker og spilder en masse båndbredde. I tilfælde af videostreaming kunne tabet af nogle pakker ikke skabe et problem, og det kan også ignoreres.
UDP-headerformat
I UDP er headerstørrelsen 8 bytes, og pakkestørrelsen er op til 65.535 bytes. Men denne pakkestørrelse er ikke mulig, da dataene skal indkapsles i IP-datagrammet, og en IP-pakke, headerstørrelsen kan være 20 bytes; derfor ville maksimum af UDP være 65.535 minus 20. Størrelsen af de data, som UDP-pakken kan bære, ville være 65.535 minus 28 som 8 bytes for UDP-pakkens header og 20 bytes for IP-header.
UDP-headeren indeholder fire felter:
Koncept med kø i UDP-protokol
I UDP-protokollen bruges tal til at skelne mellem de forskellige processer på en server og klient. Vi ved, at UDP giver en proces til at behandle kommunikation. Klienten genererer de processer, der har brug for tjenester, mens serveren genererer de processer, der leverer tjenester. Køerne er tilgængelige for begge processer, dvs. to køer for hver proces. Den første kø er den indgående kø, der modtager beskederne, og den anden er den udgående kø, der sender beskederne. Køen fungerer, når processen kører. Hvis processen afsluttes, vil køen også blive ødelagt.
UDP håndterer afsendelse og modtagelse af UDP-pakkerne ved hjælp af følgende komponenter:
katodestrålerørsmonitor
Flere processer ønsker at bruge UDP's tjenester. UDP multiplekser og demultiplekser processerne, så de flere processer kan køre på en enkelt vært.
Begrænsninger
- Det giver en upålidelig forbindelsesleveringstjeneste. Det leverer ingen IP-tjenester, bortset fra at det giver proces-til-proces kommunikation.
- UDP-meddelelsen kan gå tabt, forsinket, duplikeres eller være ude af drift.
- Det giver ikke en pålidelig transportleveringsservice. Det giver ikke nogen anerkendelse eller flowkontrolmekanisme. Det giver dog til en vis grad fejlkontrol.
Fordele
- Det giver et minimalt antal faste omkostninger.