UDP

UDP () on ns. yhteydetön tietoliikenneprotokolla, joka ei vaadi yhteyttä laitteiden välille, mutta mahdollistaa tiedon siirron. UDP on yksinkertainen datagram-pohjainen (tietosähke) kuljetuskerroksen protokolla. UDP ei sisällä virheen korjausta mutta voi sisältää virheen havaitsemisen tarkistussummalla. UDP ei sisällä sekvenssejä (järjestys), kaksoiskappaleiden poistoa, vuon- tai ruuhkanhallintamekanismeja, mutta siihen perustuvat sovellukset voivat niitä itse lisätä. UDP eroaa TCP:stä monin tavoin. Muun muassa paketin perillemenoa ei varmisteta päästä päähän (alempi taso kyllä varmistaa seuraavaan solmuun asti). UDP:ta käytetään esimerkiksi DNS-pyyntöjen lähettämiseen, verkkopeleissä ja reaaliaikaisen videon ja äänen välittämiseen. UDP:n yleisrasite on pienempi kuin TCP:n, siinä ei suoriteta alkukättelyä, pakettien kuittausta eikä yhteyden lopettamista. Se ei silti välttämättä ole nopeampi kuin TCP, koska TCP:n liukuva ikkuna (sliding window) kompensoi tehokkaasti kuittausten viemää aikaa. UDP:n käyttöön TCP:n asemasta viitataan toisinaan termillä UDP/IP. UDP:tä käytetään myös perustana HTTP/3-protokollassa jossa aiemmista HTTP-versioista poiketen ei käytetä TCP:tä lainkaan, vaan UDP:hen perustuvaa QUIC:iä. == UDP-datapaketti == \+ Bitit 0 - 15 16 - 31 0 Lähdeosoitteen portti Kohdeosoitteen portti 32 Datan koko Tarkistussumma 64 Data Vaaleanpunaisella taustalla näkyvät kohdat eivät ole pakollisia. Data-osion teoreettinen maksimikoko on 65,527 tavua. UDP-paketti on kapseloinnin johdosta läpinäkymätön kuorma IPv4 / IPv6 -paketeille ja siinä itsessään ei ole eroa. Koska IPv6-paketissa itsessään ei ole tarkistussummaa on se oltava pseudoheader-osiossa UDP-paketin yhteydessä. === UDP-paketti IPv4 verkossa === IPv4 pseudoheader-muoto Offsetit Oktetti 0 1 2 3 Oktetti Bitti 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 Lähdeosoite (IPv4) 4 32 Kohdeosoite (IPv4) 8 64 Nollaa Protokolla UDP-pituus 12 96 Lähdeportti Kohdeportti 16 128 Pituus Tarkistussumma 20 160+ Data === UDP-paketti IPv6-verkossa === IPv6 pseudoheader-muoto Offsetit Oktetti 0 1 2 3 Oktetti Bitti 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 Lähdeosoite (IPv6) 4 32 8 64 12 96 16 128 Kohdeosoite (IPv6) 20 160 24 192 28 224 32 256 UDP-pituus 36 288 Nollaa Seuraava otsikko 40 320 Lähdeportti Kohdeportti 44 352 Pituus Tarkistussumma 48 384+ Data Hyötykuorma tarkoittaa datan pituutta IPv6-paketin otsakkeen jälkeen, siihen lasketaan pakettiin lisänä tulevat ylimääräiset otsakkeet. == Standardointi == * , User Datagram Protocol (1980) * , Management Information Base for the User Datagram Protocol (UDP) * , UDP Usage Guidelines UDP on IP-protokolla numero 17. UDP-porttien numerointi löytyy artikkelista portti. == Käyttö == === Sovellustasolla === * CoAP on vähävirtaisille laitteille sekä muihin rajattuihin oloihin luotu sovellustason protokolla. * DNS välittää verkko-osoitteita verkkoon kytkettyjen laitteiden välillä. * HTTP/3 on HTTP-protokollaperheen kolmas täysi versio, joka perustuu HTTP/2:een ja QUIC:iin parilla muutoksella. Sitä tukee ainakin 78% selaimista ja yli 30% verkkosivustoista. === Kuljetustasolla === Vaikka UDP onkin kuljetustason protokolla, se on yksinkertaisiin tietosähkeisiin perustuva. Siitä syystä se on osoittautunut hyväksi alustaksi, joten siihen perustuu moni muukin kuljetustason protokolla, kuten SCTP, UDT ja QUIC. * QUIC on viime vuosien aikana internetin jättiyritysten kesken suosioon noussut kuljetuskerroksen protokolla, joka on monin paikoin syrjäyttänyt TCP/IP:n käytön. Niiden ulkopuolella QUIC-teknologia vaikuttaa kuitenkin vielä olevan marginaalissa, kun kesäkuussa 2024 vain 8% sivustoista tuki kyseistä protokollaa. Se on hiemainen nousu vuodesta 2020 mutta eniten sivuja tuki sitä huhtikuussa 2023. == Katso myös == * IP-osoite * UDP Lite * QUIC * OSI-malli vs TCP/IP-viitemalli == Lähteet == == Aiheesta muualla == Luokka:TCP/IP Luokka:OSI-kuljetuskerros Luokka:Seulonnan keskeiset artikkelit