You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 38 Next »

1. Innledning

Hvor hører det valgte tema hjemme i lagmodellen. Hvilke standarder eller bestemmelser gjelder for dette temaet.

UDP, User Data Protocol, er en simpel protokoll som hører til i transportlaget. Den legger til rette for sending av meldinger, eller mer spesifikt: datagram, til andre tjenere på et IP-nettverk. 

Protokollen ble formelt definert i 1980 i RFC 768.

Andre bestemmelser som er relevante for UDP er:

  • RFC 2460 – Internet Protocol, Version 6 (IPv6) Specification*
  • RFC 2675 – IPv6 Jumbograms
  • RFC 4113 – Management Information Base for the UDP
  • RFC 5405 – Unicast UDP Usage Guidelines for Application Designers

Denne bestemmelsen er egentlig for IPv6, men på grunn av psudo-headeren som skal inkluderes i utregninga av checksum påvirker RFC 2675 også UDP.

2. Ønsket funksjonalitet  

Hva er det man ønsker å oppnå, hvilke funksjonelle mangler vil man bøte på, hvorfor har man denne tjenesten eller dette systemet.

2.1 Forsinkelsessensitive applikasjoner

UDP gir ingen garantier for at pakker blir levert, ved at om de ikke kommer frem, blir de ikke gjensendt. Dette er ideelt for strømming, da ting gjerne går så fort det ikke er noen vits i å gjensende tapte pakker. Tiden de var nødvendige har mest sannsynelig allerede gått over.

 

2.2 Applikasjoner som ønsker finkontroll

 Enkelte applikasjoner ønsker å selv ha all kontroll over bekreftelse, gjensending og timeout av pakker. Dette er gjengående i for eksempel multiplayer-spill, der egne system blir tatt i bruk for å holde et konsistent syn på spillverden. Siden UDP overlater gjensending til applikasjonen, vil det ikke forstyrre applikasjonens system.

 

 2.3 Applikasjoner med kort levetetid

For å spare tid er det enkelt å bruke UDP når vi skal bruke applikasjoner med kort levetid, for eksempel DNS. Til forskjell fra TCP der man måtte ha opprettet et "handshake", vil UDP i stedet gå rett på sak og hente eller sende den informasjonen man ønsker med en gang. 

3. Virkemåte

3.1 Pakke-header

Pakke-headeren er første delen av UDP-pakken, den er alltid 8 bytes lang og inneholder 4 felt hvorav 2 er valgfrie. Hvert felt inneholder 2 bytes.

Bit0                    1516                   3132                   4748                   63
    Source port Destination port       Length     Checksum

3.2 Source port

Dette feltet kan spesifisere et portnummer hos senderen av pakken, dette feltet er valgfritt. Når det ikke er i bruk skal verdien være 0.

3.3 Destination port

Dette feltet angir portnummeret på tjeneren som mottar pakken.

3.4 Length

Feltet spesifiserer lengden i bytes på pakken, inklusivt pakke-headeren og selve payload-en. Pakke-headeren er alltid 8 bytes, det vil si at 8 er minsteverdien til feltet. Siden feltet er 16-bits og beskriver lengden på pakken, er det en teoretisk øvre grense på størrelsen til en UDP melding – nemlig 2^16 - 1 bytes –.

IPv6 jumbograms

3.5 Checksum

Checksum-feltet er brukt til å sjekke at all informasjon i UDP-pakken er tilstedet og ikke har blitt korrupt. Dette feltet er valgfritt for IPv4, men obligatorisk for IPv6. Hvis ubrukt skal verdien 0 brukes.

Checksum fungerer ved å utføre en matematisk operasjon på alle bytes i pakken. Hvordan checksummen kan verifiseres og regnes ut står i neste kapittel.

3.6 Payload

Payload-feltet er selve innholdet som skal transporteres med UDP, størrelsen på payload-feltet i bytes er lik length-feltet sin verdi minus størrelsen på pakke-headeren.

4. Referanser

Når man i den løpende teksten omtaler standarder, organisasjoner eller annet skal dette refereres. Referanselisten føres her (ikke URL i den løpende teksten)

User Datagram Protocol (Wikipedia)

RFC768 (x)

Purpose of pseudo header in TCP checksum (postel)

UDP, User Datagram Protocol (networksorcery)

 


  • No labels