logo

UDP protokolas

Kompiuterių tinkle UDP reiškia vartotojo duomenų gramų protokolą. David P. Reed sukūrė UDP protokolą 1980 m. Jis apibrėžtas RFC 768 ir yra TCP/IP protokolo dalis, todėl tai yra standartinis protokolas internetu. UDP protokolas leidžia kompiuterio programoms siųsti pranešimus datagramų pavidalu iš vieno įrenginio į kitą įrenginį per interneto protokolo (IP) tinklą. UDP yra TCP protokolo (perdavimo valdymo protokolo) alternatyvus ryšio protokolas. Kaip ir TCP, UDP pateikia taisyklių rinkinį, kuris reglamentuoja, kaip turėtų būti keičiamasi duomenimis internetu. UDP veikia įtraukdamas duomenis į paketą ir pateikdamas paketui savo antraštės informaciją. Tada šis UDP paketas inkapsuliuojamas į IP paketą ir išsiunčiamas į paskirties vietą. Tiek TCP ir UDP protokolai siunčia duomenis per interneto protokolų tinklą, todėl jis taip pat žinomas kaip TCP/IP ir UDP/IP. Tarp šių dviejų protokolų yra daug skirtumų. UDP įgalina procesą apdoroti ryšį, o TCP suteikia pagrindinio kompiuterio ryšį. Kadangi UDP pranešimus siunčia datagramų pavidalu, jis laikomas geriausiu ryšio būdu. TCP siunčia atskirus paketus, todėl tai yra patikima perdavimo terpė. Kitas skirtumas yra tas, kad TCP yra į ryšį orientuotas protokolas, o UDP yra be ryšio protokolas, nes duomenims perduoti nereikia jokios virtualios grandinės.

UDP taip pat suteikia skirtingą prievado numerį, kad būtų galima atskirti skirtingas vartotojų užklausas, taip pat suteikia kontrolinės sumos galimybę patikrinti, ar gauti visi duomenys, ar ne; IP sluoksnis šių dviejų paslaugų neteikia.

UDP protokolo ypatybės

Toliau pateikiamos UDP protokolo savybės:

    Transporto sluoksnio protokolas

UDP yra paprasčiausias transporto lygmens ryšio protokolas. Jame yra minimalus komunikacijos mechanizmų kiekis. Jis laikomas nepatikimu protokolu ir pagrįstas geriausiomis pastangomis teikiamomis pristatymo paslaugomis. UDP nenumato patvirtinimo mechanizmo, o tai reiškia, kad gavėjas nesiunčia patvirtinimo už gautą paketą, o siuntėjas taip pat nelaukia, kol bus patvirtintas išsiųstas paketas.

    Be ryšio

UDP yra be ryšio protokolas, nes jis nesukuria virtualaus kelio duomenims perduoti. Jis nenaudoja virtualaus kelio, todėl paketai siunčiami skirtingais keliais tarp siuntėjo ir gavėjo, dėl ko paketai prarandami arba gaunami netvarkingai.

Užsakytas duomenų pristatymas negarantuojamas.

UDP atveju datagramos siunčiamos tam tikra tvarka bus gautos ta pačia tvarka, negarantuojama, nes datagramos nėra sunumeruotos.

    Uostai

UDP protokolas naudoja skirtingus prievadų numerius, kad duomenis būtų galima siųsti į tinkamą paskirties vietą. Prievadų numeriai apibrėžiami nuo 0 iki 1023.

    Greitesnis perdavimas

UDP įgalina greitesnį perdavimą, nes tai yra be ryšio protokolas, t. y. duomenims perduoti nereikia virtualaus kelio. Tačiau yra tikimybė, kad atskiras paketas bus prarastas, o tai turi įtakos perdavimo kokybei. Kita vertus, praradus paketą TCP ryšiu, tas paketas bus išsiųstas iš naujo, taigi tai garantuoja duomenų paketų pristatymą.

    Pripažinimo mechanizmas

UDP turi bet kokį patvirtinimo mechanizmą, t. y. tarp UDP siuntėjo ir UDP imtuvo nėra rankų paspaudimo. Jei pranešimas išsiųstas TCP, tada gavėjas patvirtina, kad esu pasiruošęs, tada siuntėjas siunčia duomenis. TCP atveju rankų paspaudimas vyksta tarp siuntėjo ir gavėjo, o UDP atveju tarp siuntėjo ir gavėjo rankų paspaudimas nėra.

    Segmentai tvarkomi nepriklausomai.

Kiekvienas UDP segmentas tvarkomas atskirai nuo kitų, nes kiekvienas segmentas eina skirtingu keliu, kad pasiektų tikslą. UDP segmentai gali būti prarasti arba pristatyti netvarkingai, kad pasiektų paskirties vietą, nes nėra ryšio tarp siuntėjo ir gavėjo.

    Be pilietybės

Tai protokolas be statuso, reiškiantis, kad siuntėjas negauna patvirtinimo už išsiųstą paketą.

Kodėl mums reikia UDP protokolo?

Kaip žinome, UDP yra nepatikimas protokolas, tačiau kai kuriais atvejais vis tiek reikalaujame UDP protokolo. UDP naudojamas ten, kur paketams kartu su faktiniais duomenimis reikalingas didelis pralaidumas. Pavyzdžiui, vaizdo transliacijos metu tūkstančius paketų patvirtinti yra sunku ir eikvojama daug pralaidumo. Vaizdo įrašų srautinio perdavimo atveju kai kurių paketų praradimas negalėjo sukelti problemų ir į tai taip pat gali būti nepaisoma.

sąrašo mazgas java

UDP antraštės formatas

UDP protokolas

UDP antraštės dydis yra 8 baitai, o paketo dydis yra iki 65 535 baitų. Bet toks paketo dydis neįmanomas, nes duomenis reikia įterpti į IP datagramą ir IP paketą, antraštės dydis gali būti 20 baitų; todėl didžiausias UDP dydis būtų 65 535 minus 20. Duomenų, kuriuos gali nešti UDP paketas, dydis būtų 65 535 minus 28, nes 8 baitai UDP paketo antraštei ir 20 baitų IP antraštei.

UDP antraštėje yra keturi laukai:

    Šaltinio prievado numeris:Tai 16 bitų informacija, kuri identifikuoja, kuris prievadas nesiunčia paketo.Paskirties prievado numeris:Jis identifikuoja, kuris prievadas priims informaciją. Tai 16 bitų informacija, kuri naudojama programos lygio paslaugai nustatyti paskirties kompiuteryje.Ilgis:Tai 16 bitų laukas, nurodantis visą UDP paketo ilgį, kuriame taip pat yra antraštė. Mažiausia reikšmė būtų 8 baitai, nes antraštės dydis yra 8 baitai.Kontrolinė suma:Tai yra 16 bitų laukas ir pasirenkamas laukas. Šis kontrolinės sumos laukas patikrina, ar informacija yra tiksli, ar ne, nes yra tikimybė, kad informacija gali būti sugadinta perdavimo metu. Tai yra neprivalomas laukas, o tai reiškia, kad tai priklauso nuo programos, ar ji nori įrašyti kontrolinę sumą, ar ne. Jei jis nenori rašyti kontrolinės sumos, tada visi 16 bitų yra lygūs nuliui; kitu atveju jis įrašo kontrolinę sumą. UDP kontrolinės sumos laukas taikomas visam paketui, ty antraštei ir duomenų daliai, o IP kontrolinės sumos laukas taikomas tik antraštės laukui.

Eilių samprata UDP protokole

UDP protokolas

UDP protokole skaičiai naudojami skirtingiems serverio ir kliento procesams atskirti. Žinome, kad UDP yra komunikacijos apdorojimo procesas. Klientas generuoja procesus, kuriems reikia paslaugų, o serveris generuoja procesus, kurie teikia paslaugas. Eilės yra prieinamos abiem procesams, ty po dvi eiles kiekvienam procesui. Pirmoji eilė yra įeinanti eilė, kuri gauna pranešimus, o antroji yra išeinančių eilė, kuri siunčia pranešimus. Eilė veikia, kai procesas vyksta. Jei procesas bus nutrauktas, eilė taip pat bus sunaikinta.

UDP tvarko UDP paketų siuntimą ir gavimą naudodamas šiuos komponentus:

    Įvesties eilė:UDP paketai kiekvienam procesui naudoja eilių rinkinį.Įvesties modulis:Šis modulis paima vartotojo datagramą iš IP, o tada suranda informaciją iš to paties prievado valdymo bloko lentelės. Jei jis randa įrašą valdymo bloko lentelėje su tuo pačiu prievadu kaip ir vartotojo datagrama, jis įrašo duomenis į eilę.Valdymo bloko modulis:Jis valdo valdymo bloko lentelę.Valdymo bloko lentelė:Valdymo bloko lentelėje yra atvirų prievadų įvedimas.Išvesties modulis:Išvesties modulis sukuria ir siunčia vartotojo datagramą.

Keli procesai nori naudotis UDP paslaugomis. UDP multipleksuoja ir demultipleksuoja procesus, kad keli procesai galėtų veikti viename pagrindiniame kompiuteryje.

Apribojimai

  • Ji teikia nepatikimo ryšio pristatymo paslaugą. Ji neteikia jokių IP paslaugų, išskyrus tai, kad užtikrina ryšį tarp procesų.
  • UDP pranešimas gali būti prarastas, uždelstas, pasikartojantis arba gali būti netinkamas.
  • Ji neteikia patikimos transporto pristatymo paslaugos. Jame nėra jokio patvirtinimo ar srauto valdymo mechanizmo. Tačiau tai tam tikru mastu užtikrina klaidų valdymą.

Privalumai

  • Tai sukuria minimalų pridėtinių išlaidų skaičių.