UDP

Vikipēdijas raksts
Pārlēkt uz: navigācija, meklēt

UDP (angļu: User Datagram Protocol — lietotāja datagrammu protokols) 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ā, var dublēties vai var 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.

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

UDP nodrošina ļoti vienkāršu intefeisu 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 Source Port Destination Port
32 Garums Kontrolsumma
64  
Dati
 

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

  • Source port - šis lauks norāda no kura porta pakete ir tikusi nosūtīta (ja to lieto), ja to nelieto, tur jāieliek 0.
  • Destination port - š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 hedera 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 hederī) pārsūtīšanas laikā nav radušās kļūdas. To aprēķina blokam, kas sastāv no IP hedera, UDP hedera 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 hedera, ja lieto routing hederus ir pēdējā adrese no routing hedera, ja nelieto tad tā ir destination adress no IP hedera (tāpat kā IPv4 gadījumā).

UDP lieto programmas, kurām ir nepieciešama vismazākā iespējamā latency (pat uz datu zuduma rēķina, tīkla traucējumu gadījumos) (VoIP, datorspēles (RTS, FPS 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 konnekciju 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 OS no tīkla).