Foydalanuvchi Datagram protokoli - User Datagram Protocol

Yilda kompyuter tarmog'i, Foydalanuvchi Datagram protokoli (UDP) ning asosiy a'zolaridan biridir Internet protokoli to'plami. Protokol tomonidan ishlab chiqilgan Devid P. Rid 1980 yilda va rasmiy ravishda belgilangan RFC  768. UDP yordamida kompyuter dasturlari xabarlarni yuborishlari mumkin, bu holda ular shunday deyiladi ma'lumotlar jadvallari, boshqa xostlarga Internet protokoli (IP) tarmoq. O'rnatish uchun avvalgi aloqa talab qilinmaydi aloqa kanallari yoki ma'lumotlar yo'llari.

UDP oddiy ishlatadi ulanishsiz aloqa minimal protokol mexanizmlari bilan model. UDP beradi soliq summasi ma'lumotlar yaxlitligi uchun va port raqamlari Datagramning manbasi va manzilidagi turli funktsiyalarga murojaat qilish uchun. Unda yo'q qo'l siqish dialoglarni o'rnatadi va shu bilan foydalanuvchi dasturini boshqalarga ta'sir qiladi ishonchsizlik asosiy tarmoq; etkazib berish, buyurtma berish yoki takroriy himoya qilish kafolati yo'q. Tarmoq interfeysi darajasida xatolarni tuzatish moslamalari zarur bo'lsa, ilova ishlatishi mumkin Transmissiyani boshqarish protokoli (TCP) yoki Oqim boshqarishni uzatish protokoli (SCTP) ushbu maqsadlar uchun mo'ljallangan.

UDP xatolarni tekshirish va tuzatish kerak bo'lmagan yoki dasturda bajarilgan maqsadlar uchun javob beradi; UDP bunday ishlov berishning ortiqcha xarajatlaridan qochadi protokol to'plami. Vaqtni sezgir dasturlar ko'pincha UDP dan foydalanadi, chunki paketlarni tashlab yuborish sababli kechiktirilgan paketlarni kutishdan afzalroqdir qayta uzatish, bu a-da variant bo'lmasligi mumkin real vaqt tizimi.[1]

Xususiyatlar

UDP oddiy xabarga yo'naltirilgan transport qatlami hujjatlashtirilgan protokol RFC  768. UDP yaxlitligini tekshirishni ta'minlaydi (orqali summa ) sarlavha va foydali yuk,[2] bu hech qanday kafolat bermaydi yuqori qavat protokoli xabarlarni etkazib berish uchun va UDP qatlami yuborilganidan keyin UDP xabarlarining holatini saqlab qolmaydi. Shu sababli, UDP ba'zan deb nomlanadi Ishonchsiz Datagram protokoli.[3] Agar uzatishning ishonchliligi zarur bo'lsa, uni foydalanuvchi dasturida amalga oshirish kerak.

UDPning bir qator atributlari uni ayniqsa ba'zi ilovalar uchun moslashtiradi.

Portlar

Ilovalardan foydalanish mumkin datagram soketlari xost-xost aloqalarini o'rnatish. Ilova soketni ma'lumotlar uzatishning so'nggi nuqtasiga bog'laydi, bu esa an birikmasi IP-manzil va a port. Shu tarzda, UDP dasturni taqdim etadi multiplekslash. Port - bu tomonidan aniqlangan dasturiy tuzilma port raqami, 0 dan 65535 gacha bo'lgan port raqamlariga ruxsat beruvchi 16 bitli tamsayı qiymati. Port 0 zaxiralangan, ammo agar jo'natish jarayoni javoban xabar kutmasa, ruxsat berilgan manba port qiymati.

The Internet tomonidan tayinlangan raqamlar vakolati (IANA) port raqamlarini uchta diapazonga ajratdi.[4] 0 dan 1023 gacha bo'lgan raqamlar umumiy, taniqli xizmatlar uchun ishlatiladi. Yoqilgan Unix o'xshash operatsion tizimlar, ushbu portlardan birini ishlatishni talab qiladi superuser ishlashga ruxsat. 1024 dan 49151 gacha bo'lgan port raqamlari ro'yxatdan o'tgan portlar IANA tomonidan ro'yxatdan o'tgan xizmatlar uchun ishlatiladi. 49152 dan 65535 gacha bo'lgan portlar har qanday maxsus xizmat uchun rasmiy ravishda belgilanmagan va har qanday maqsadda ishlatilishi mumkin bo'lgan dinamik portlardir. Ular, shuningdek, sifatida ishlatilishi mumkin vaqtinchalik portlar, kompyuterda ishlaydigan dasturiy ta'minot kerak bo'lganda dinamik ravishda aloqa so'nggi nuqtalarini yaratish uchun foydalanishi mumkin.[4]

UDP diagrammasi tuzilishi

UDP datagram sarlavhasi
OfsetlarOktet0123
OktetBit 0 1 2 3 4 5 6 7 8 910111213141516171819202122232425262728293031
0 0Manba portiBelgilangan port
432UzunlikTekshirish summasi

UDP datagrammasi diagrammadan iborat sarlavha va a ma'lumotlar Bo'lim. UDP datagramma sarlavhasi har biri 2 bayt (16 bit) bo'lgan 4 ta maydondan iborat.[1] Ma'lumotlar bo'limi sarlavhani kuzatib boradi va dastur uchun olib boriladigan foydali yuk hisoblanadi.

Dan foydalanish summa va manba porti maydonlar IPv4-da ixtiyoriy (jadvaldagi pushti fon). IPv6-da faqat manba porti maydon ixtiyoriy.

Manba port raqami
Ushbu maydon foydalanuvchi yuborgan portni aniqlaydi va agar kerak bo'lsa javob beradigan port deb hisoblanishi kerak. Agar ishlatilmasa, u nolga teng bo'lishi kerak. Agar manba xosti mijoz bo'lsa, port raqami vaqtinchalik port raqami bo'lishi mumkin. Agar manba xosti server bo'lsa, port raqami a bo'lishi mumkin taniqli port raqam.[4]
Belgilangan port raqami
Ushbu maydon qabul qiluvchining portini aniqlaydi va talab qilinadi. Manba port raqamiga o'xshash, agar mijoz maqsadli xost bo'lsa, u holda port raqami vaqtinchalik port raqami bo'lishi mumkin va agar manzil xosti server bo'lsa, u holda port raqami taniqli port raqami bo'lishi mumkin.[4]
Uzunlik
Ushbu maydon UDP sarlavhasi va UDP ma'lumotlarining bayt uzunligini belgilaydi. Minimal uzunligi 8 bayt, sarlavha uzunligi. Maydon kattaligi UDP datagrammasi uchun 65,535 bayt (8 bayt sarlavha + 65,527 bayt ma'lumotlar) nazariy chegarasini belgilaydi. Shu bilan birga, ma'lumotlar uzunligining haqiqiy chegarasi, bu asos tomonidan belgilanadi IPv4 protokol, 65.507 baytni tashkil etadi (65.535 - 8 bayt UDP sarlavhasi - 20 bayt IP sarlavhasi ).[4]
IPv6-dan foydalanish jumbogrammalar 65 535 baytdan kattaroq UDP datagrammalariga ega bo'lish mumkin.[5] RFC  2675 UDP sarlavhasi va UDP ma'lumotlarining uzunligi 65,535 dan katta bo'lsa, uzunlik maydoni nolga o'rnatilishini belgilaydi.
Tekshirish summasi
The summa maydon sarlavha va ma'lumotlarni xato tekshirishda ishlatilishi mumkin. Ushbu maydon IPv4 da ixtiyoriy, IPv6 da majburiydir.[6] Agar maydon ishlatilmasa, barcha nollarni tashiydi.[7]

Tekshirish summasini hisoblash

Tekshirish summasini hisoblash uchun ishlatiladigan usul RFC  768:

Tekshirish summasi 16-bit birini to'ldiruvchi IP-sarlavhasi, UDP sarlavhasi va ma'lumotlarning psevdo sarlavhasini to'ldiruvchi yig'indisining oxirida (agar kerak bo'lsa) ikkita sakkizli sonni ko'paytirish uchun nol sekretlar bilan to'ldirilgan.[7]

Boshqacha qilib aytganda, barcha 16-bitli so'zlar bir-birini to'ldiruvchi arifmetikasi yordamida yig'iladi. 16-bitli qiymatlarni qo'shing. Agar har qanday qo'shimcha (17-bit) ishlab chiqarilsa, 17-chi bitni aylantirib, uni ishlayotganlarning eng kichik qismiga qo'shing.[8] Nihoyat, UDP checksum maydonining qiymatini berish uchun yig'indiga to'ldiriladi.

Agar summani hisoblash nol qiymatiga olib kelsa (barcha 16 bit 0), uni to'ldiruvchi sifatida yuborish kerak (barcha 1lar) nol qiymatli yig'indilar hech qanday summa hisoblanmaganligini bildiradi.[7] Bunday holda, qabul qilgichda har qanday aniq ishlov berish talab qilinmaydi, chunki barcha 0 va barcha 1lar 1 ning komplement arifmetikasida nolga teng.

Orasidagi farq IPv4 va IPv6 nazorat summasini hisoblash uchun ishlatiladigan pseudo header-da joylashgan va IPv6-da checksum ixtiyoriy emas.[9]

IPv4 psevdo header

UDP IPv4 orqali ishlaganda, nazorat summasi haqiqiy IPv4 sarlavhasidan bir xil ma'lumotlarni o'z ichiga olgan "psevdo header" yordamida hisoblanadi.[7]:2 Soxta sarlavha IP paketini yuborish uchun ishlatiladigan haqiqiy IPv4 sarlavhasi emas, u faqat summani hisoblash uchun ishlatiladi.

IPv4 pseudo header formati
OfsetlarOktet0123
OktetBit012345678910111213141516171819202122232425262728293031
00Manba IPv4 manzili
432Belgilangan manzil IPv4
864NolProtokolUDP uzunligi
1296Manba portiBelgilangan port
16128UzunlikTekshirish summasi
20160+Ma'lumotlar

Manba va manzil manzillari IPv4 sarlavhasidagi manzillar. Protokol UDP uchun (qarang. Qarang) IP-protokol raqamlari ro'yxati ): 17 (0x11). UDP uzunlik maydoni UDP sarlavhasi va ma'lumotlarining uzunligi. Dala ma'lumotlari uzatilgan ma'lumotlarni anglatadi.

UDP summasini hisoblash IPv4 uchun majburiy emas. Agar summa ishlatilmasa, uni nol qiymatiga qo'yish kerak.

IPv6 pseudo header

UDP IPv6 orqali ishlaganda, nazorat summasi majburiydir. Uni hisoblash uchun ishlatiladigan usul hujjatlashtirilgan tarzda o'zgartiriladi RFC  2460:

IP-sarlavhadan manzillarni nazorat summasini hisoblashda o'z ichiga olgan har qanday transport yoki boshqa yuqori qavat protokoli, 128-bitli IPv6-manzillarni kiritish uchun IPv6 orqali foydalanish uchun o'zgartirilishi kerak.[6]

Tekshirish summasini hisoblashda yana IPv6 sarlavhasini taqlid qiluvchi yolg'on sarlavha ishlatiladi:

IPv6 pseudo header formati
OfsetlarOktet0123
OktetBit012345678910111213141516171819202122232425262728293031
00Manba IPv6 manzili
432
864
1296
16128Belgilangan manzil IPv6
20160
24192
28224
32256UDP uzunligi
36288NolKeyingi sarlavha = Protokol[10]
40320Manba portiBelgilangan port
44352UzunlikTekshirish summasi
48384+Ma'lumotlar

Manba manzili IPv6 sarlavhasidagi manzildir. Belgilangan manzil - yakuniy manzil; agar IPv6 paketida Routing sarlavhasi bo'lmasa, bu IPv6 sarlavhasidagi manzil bo'ladi; aks holda, boshlang'ich tugunda, u Routing sarlavhasining oxirgi elementidagi manzil bo'ladi va qabul qiluvchi tugunda IPv6 sarlavhasidagi manzil bo'ladi. Next Header maydonining qiymati UDP uchun protokol qiymatidir: 17. UDP uzunligi maydoni UDP sarlavhasi va ma'lumotlarining uzunligi.

Ishonchlilik va tirbandlikni nazorat qilish echimlari

Ishonchliligi yo'qligi sababli, UDP dasturlari paketlarning yo'qolishi, qayta tartiblash, xatolar yoki takrorlanishlarni qabul qilishga tayyor bo'lishi kerak. Agar UDP dan foydalansangiz, oxirgi foydalanuvchi dasturlari xabar qabul qilinganligini real vaqtda tasdiqlash kabi har qanday kerakli qo'l uzatishni ta'minlashi kerak. TFTP, kerak bo'lganda dastur darajasiga dastlabki ishonchlilik mexanizmlarini qo'shishi mumkin.[4] Agar dastur yuqori darajadagi ishonchliligini talab qilsa, kabi protokol Transmissiyani boshqarish protokoli o'rniga ishlatilishi mumkin.

Ko'pincha, UDP dasturlarida ishonchlilik mexanizmlari ishlamaydi va hatto ularga to'sqinlik qilishi mumkin. Oqimli ommaviy axborot vositalari, real vaqtda multiplayer o'yinlari va IP orqali ovoz (VoIP) ko'pincha UDP dan foydalanadigan dasturlarning namunalari. Ushbu maxsus dasturlarda paketlarni yo'qotish odatda o'lik muammo emas. Masalan, VoIP-da kechikish va titrash birinchi navbatda tashvishga soladi. TCP-ning ishlatilishi, agar biron bir paket yo'qolsa, jitterni keltirib chiqaradi, chunki TCP etishmayotgan ma'lumotlarni qayta jo'natishni talab qilganda dasturga keyingi ma'lumotlarni taqdim etmaydi.

Ilovalar

Ko'p sonli Internet-dasturlarda UDP ishlatiladi, jumladan: Domen nomlari tizimi (DNS), bu erda so'rovlar tez bo'lishi kerak va faqat bitta so'rovdan iborat bo'lib, keyin bitta javob to'plami, Oddiy Tarmoqni boshqarish protokoli (SNMP), Yo'nalish bo'yicha ma'lumot protokoli (JOYI JANNATDA BO'LSIN)[1] va Dinamik xost konfiguratsiyasi protokoli (DHCP).

Ovozli va video trafik odatda UDP yordamida uzatiladi. Haqiqiy vaqtda video va audio oqim protokollari vaqti-vaqti bilan yo'qolgan paketlarni boshqarish uchun mo'ljallangan, shuning uchun yo'qolgan paketlar qayta uzatilganda katta kechikishlar emas, balki sifat jihatidan biroz pasayish yuz beradi. TCP ham, UDP ham bir xil tarmoq orqali ishlayotganligi sababli, ko'plab korxonalar ushbu real vaqtda qo'llaniladigan dasturlardan so'nggi paytlarda UDP trafigining ko'payishi TCP dan foydalanadigan dasturlarning ishlashiga to'sqinlik qilayotganini aniqlaydilar, masalan. savdo nuqtasi, buxgalteriya hisobi va ma'lumotlar bazasi tizimlar. TCP paketlarning yo'qolishini aniqlaganda, u ma'lumotlarni uzatish tezligini kamaytiradi. Haqiqiy vaqtda ham, ishbilarmonlik dasturlari ham rivojlanayotgan korxonalar uchun muhimdir xizmat ko'rsatish sifati echimlar ba'zilar tomonidan hal qiluvchi deb qaraladi.[11]

Biroz VPN kabi tizimlar OpenVPN ishonchli ulanishlarni amalga oshirishda UDP dan foydalanishi va dastur darajasida xatolarni tekshirishni amalga oshirishi mumkin.

UDP va TCP ni taqqoslash

Transmissiyani boshqarish protokoli bu ulanishga yo'naltirilgan protokol bo'lib, uchidan uchigacha aloqalarni o'rnatish uchun qo'l uzatishni talab qiladi. Aloqa o'rnatilgandan so'ng, foydalanuvchi ma'lumotlari ulanish orqali ikki tomonlama yuborilishi mumkin.

  • Ishonchli - TCP xabarlarni tasdiqlash, qayta uzatish va vaqt tugashini boshqaradi. Xabarni etkazish uchun bir nechta urinishlar amalga oshiriladi. Agar ma'lumotlar yo'lda yo'qolsa, ma'lumotlar qayta yuboriladi. TCP-da etishmayotgan ma'lumotlar yo'q, yoki bir necha marta takrorlanganda ulanish to'xtatiladi.
  • Buyurtma berildi - Agar ikkita xabar ketma-ket ulanish orqali yuborilsa, birinchi xabar qabul qiluvchi dasturga birinchi bo'lib etib boradi. Ma'lumotlar segmentlari noto'g'ri tartibda kelganda, TCP barcha ma'lumotlarni to'g'ri ravishda buyurtma qilish va dasturga etkazish mumkin bo'lmaguncha, buyurtmadan tashqaridagi ma'lumotlarni buferlaydi.
  • Og'ir vazn - TCP foydalanuvchi ma'lumotlarini yuborishdan oldin rozetkaga ulanishni o'rnatish uchun uchta paketni talab qiladi. TCP ishonchliligi va tirbandlikni nazorat qilish.
  • Oqim - Ma'lumotlar a sifatida o'qiladi bayt oqim, hech qanday farqlovchi ko'rsatkichlar signal xabari (segment) chegaralariga uzatilmaydi.

User Datagram Protocol - bu oddiy xabarlarga asoslangan ulanishsiz protokol. Ulanishsiz protokollar maxsus uchidan uchiga ulanishni o'rnatmaydi. Aloqa qabul qiluvchining tayyorligi yoki holatini tekshirmasdan ma'lumotni manbadan manzilga bir yo'nalishda uzatish orqali amalga oshiriladi.

  • Ishonchsiz - UDP xabari yuborilganda, uning belgilangan manzilga etib borishini bilish mumkin emas; yo'lda adashib qolishi mumkin edi. E'tirof etish, qayta uzatish yoki kutish vaqti tushunchasi yo'q.
  • Buyurtma berilmagan - Agar bitta xabar oluvchiga ikkita xabar yuborilsa, ularning kelish tartibiga kafolat berilmaydi.
  • Engil - Xabarlarni buyurtma qilish, kuzatuv aloqalari va boshqalar yo'q. Bu IP-ning yuqori qismida yaratilgan juda oddiy transport qatlami.
  • Ma'lumotlar diagrammasi - Paketlar alohida-alohida jo'natiladi va etib borishi bilan yaxlitligi tekshiriladi. Paketlarning aniq chegaralari bor, ular qabul qilingandan keyin sharaflanadi; qabul qiluvchining rozetkasida o'qish jarayoni dastlab yuborilganidek butun xabarni beradi.
  • Tiqilish nazorati yo'q - UDP o'zi tiqilinchdan qochmaydi. Tiqilinchni nazorat qilish choralari dastur darajasida yoki tarmoqda amalga oshirilishi kerak.
  • Eshittirishlar - ulanishga ulanmagan holda, UDP translyatsiya qilingan yuborilgan paketlarni pastki tarmoqdagi barcha qurilmalar tomonidan olinishi mumkin.
  • Multicast - bitta multimastastli ishlash tartibi qo'llab-quvvatlanadi, bunda bitta datagramma to'plami abonentlar guruhiga takrorlanmasdan avtomatik ravishda yo'naltirilishi mumkin.

Shuningdek qarang

Izohlar va ma'lumotnomalar

Izohlar

  1. ^ a b v Kurose, J. F .; Ross, K. V. (2010). Kompyuter tarmog'i: yuqoridan pastga yondashuv (5-nashr). Boston, MA: Pearson Ta'lim. ISBN  978-0-13-136548-3.
  2. ^ Klark, M.P. (2003). Ma'lumot tarmoqlari IP va Internet, 1-nashr. G'arbiy Sasseks, Angliya: John Wiley & Sons Ltd.
  3. ^ [email protected]. "UDP protokoliga umumiy nuqtai". IPv6.com. Olingan 17 avgust 2011.
  4. ^ a b v d e f Foruzan, B.A. (2000). TCP / IP: Protocol Suite, 1-nashr. Nyu-Dehli, Hindiston: Tata McGraw-Hill Publishing Company Limited.
  5. ^ RFC  2675
  6. ^ a b Deering S. & Hinden R. (dekabr 1998). "Internet-protokol, 6-versiya (IPv6) spetsifikatsiyasi". Internet muhandisligi bo'yicha maxsus guruh. RFC  2460.
  7. ^ a b v d Postel, J. (1980 yil avgust). Foydalanuvchi Datagram protokoli. Internet muhandisligi bo'yicha maxsus guruh. doi:10.17487 / RFC0768. RFC 768.
  8. ^ "Hisoblashni 16-bitli bittasining qo'shimcha summasi" (elektron pochta ). mathforum.org. Jon. 20 mart 2002 yil. Olingan 5 noyabr 2014.
  9. ^ Internet protokoli, 6-versiya (IPv6) spetsifikatsiyasi. p. 27-28. doi:10.17487 / RFC8200. RFC 8200.
  10. ^ Keyingi sarlavha maydonining qiymati UDP uchun protokol qiymatidir
  11. ^ "UDP-ning ma'lumot dasturlariga ta'siri". Networkperformancedaily.com. Arxivlandi asl nusxasi 2007 yil 31-iyulda. Olingan 17 avgust 2011.

RFC ma'lumotnomalari

  • RFC  768 - foydalanuvchi Datagram protokoli
  • RFC  2460 - Internet protokoli, 6-versiya (IPv6) spetsifikatsiyasi
  • RFC  2675 - IPv6 jumbogrammalari
  • RFC  4113 - UDP uchun boshqaruv ma'lumotlari bazasi
  • RFC  8085 - UDPdan foydalanish bo'yicha ko'rsatmalar

Tashqi havolalar