Lietotāja datogrammu protokols

(Pāradresēts no UDP protokols)

Lietotāja datogrammu protokols jeb UDP (no angļu: User Datagram Protocol)[1] ir transporta slāņa protokols, kas nodrošina īsu ziņojumu (datagrammu) pārsūtīšanu no vienas sistēmas uz otru. UDP atšķirībā no TCP nenodrošina drošu un secīgu datu nogādi līdz galam. Datagrammas var pienākt sajauktā secībā, dublēties vai pat pazust. Šī iemesla dēļ UDP ir ātrāks un efektīvāks (vismaz programmām, kurām nevajag garantētu piegādi). UDP parasti lieto DNS, DHCP, VoIP un tīkla spēles.

Lietotāja datogrammu protokols, tāpat kā TCP, lieto portus, lai vienā datorā varētu darbināt vairākas programmas, kas lieto UDP. Portu lauku garums UDP paketes galvenē ir 16 biti (tāpat kā TCP). Tas nozīmē, ka ir pieejami porti no 0 līdz 65535. Uz 0. portu neko nevar aizsūīt, to lieto tad, ja process, kas sūta paketi, negaida atbildi.

UDP nodrošina ļoti vienkāršu saskarni starp tīkla slāni un augšējā līmeņa protokoliem. UDP tikai nodrošina kontrolsummu (visai paketei), bet tā nav obligāta. Paketes struktūra:

+ Biti 0 — 15 16 — 31
0 Avota ports Mērķa ports
32 Garums Kontrolsumma
64  
Dati
 

Paketes galvenē ir tikai 4 lauki, no kuriem divi nav obligāti (rozā).

  • Avota ports — šis lauks norāda no kura porta pakete ir tikusi nosūtīta (ja to lieto), ja to nelieto, tur jāieliek 0.
  • Mērķa ports — šis lauks norāda uz kuru portu attālinātajā sistēmā paketi jāpiegādā. Šis lauks ir obligāts.
  • Garums — tas ir 16 bitu lauks, kas apraksta visas paketes garumu (baitos). Minimālais paketes garums ir 8 baiti, jo tas ir galvenes garums. Šis lauks nosaka maksimālo teorētisko UDP datagrammas izmēru (65527).
  • Kontrolsumma — šo 16 bitu lauku lieto lai pārbaudītu vai paketē (un galvenē) pārsūtīšanas laikā nav radušās kļūdas. To aprēķina blokam, kas sastāv no IP galvenes, UDP galvenes un UDP datiem. Ja aprēķinātā kontrolsumma ir visas 0, tad to nosūta kā visus 1. Ja kontrolsummu nelieto (šis nav obligāts lauks), tad to norāda kā visas 0. IPv6 gadījumā destination adress no IP galvenes, ja lieto routing headeru, ir pēdējā adrese no routing header, ja nelieto tad tā ir destination adress no IP galvenes (tāpat kā IPv4 gadījumā).

UDP lieto programmas, kurām ir nepieciešams vismazākais iespējamais latentums (pat uz datu zuduma rēķina, tīkla traucējumu gadījumos) (VoIP, datorspēles (reāllaika stratēģijas, pirmās personas šaujamspēles un citas ātras spēles)), programmas, kurām jāapkalpo liels skaits maza izmēra pieprasījumu no liela daudzuma klientu (DNS, DHCP), jo, lai atvērtu TCP savienojumu ir nepieciešamas 3 paketes (lai korekti aizvērtu vajag vēl dažas), UDP visām komunikācijām pietiek ar vienu ienākošo un vienu izejošo paketi. Vēl UDP lieto programmas, kas darbojas ar ļoti ierobežotiem resursiem, (UDP vajag mazāk kā TCP) (TFTP, daļēji DHCP)(kad tos lieto lai ielādētu operētājsistēmu no tīkla).

Lietotāja datogrammu protokola trūkumi.

  • UDP nodrošina pamatfunkcijas, kas vajadzīgas pārraides pilnīgai piegādei.
  • Tas nenodrošina nekādas secības noteikšanas vai pārkārtošanas funkcijas un nenorāda bojāto paketi, ziņojot par kļūdu.
  • UDP var atklāt, ka ir notikusi kļūda, taču tajā nav norādīts, kura pakete ir nozaudēta, jo tajā nav noteikta datu segmenta ID vai kārtas numura.