UDP و انتقال بدون اتصال
پروتکل دادهنگار کاربر (User Datagram Protocol) پروتکل انتقال سبکوزن و بدون اتصال اینترنت است که تنها کمی بیشتر از مالتیپلکسینگ فرآیند و یک جمع کنترل اختیاری به سرویس «بهترین تلاش» IP اضافه میکند. بنابراین، برنامهها با هزینه از دست دادن تضمینهای قابلیت اطمینان، سربار و تأخیر حداقلی به دست میآورند.
Definition
پروتکل دادهنگار کاربر (User Datagram Protocol) یک پروتکل لایه انتقال بدون اتصال است که تحویل پیاممحور و «بهترین تلاش» را بین فرآیندها فراهم میکند، مالتیپلکسینگ مبتنی بر پورت و یک جمع کنترل اختیاری را به لایه شبکه اضافه میکند اما هیچ قابلیت اطمینان، ترتیب، کنترل جریان یا کنترل ازدحامی را ارائه نمیدهد.
Scope
این موضوع به انتقال بدون اتصال میپردازد: قالب سگمنت UDP، مالتیپلکسینگ و دمالتیپلکسینگ آن از طریق شماره پورتها، جمع کنترل اختیاری آن، و دلایلی که یک برنامه ممکن است آن را به TCP ترجیح دهد — عدم تأخیر در راهاندازی اتصال، عدم محدودیت کنترل ازدحام، کنترل دقیقتر بر روی چه چیزی و چه زمانی ارسال شود، و سربار کم در هر بسته. این موضوع به بررسی برنامههای کاربردی معمول مبتنی بر UDP و مسئولیتهایی (مانند قابلیت اطمینان یا کنترل نرخ) که به برنامه منتقل میشوند، میپردازد. این موضوع شامل مکانیزمهای قابلیت اطمینان و کنترل ازدحام TCP نمیشود.
Core questions
- UDP چه خدمات حداقلی را علاوه بر IP ارائه میدهد؟
- UDP چگونه با استفاده از شماره پورتها دادهها را مالتیپلکس و دمالتیپلکس میکند؟
- چرا یک برنامه UDP را به TCP ترجیح میدهد؟
- چه مسئولیتهایی، مانند قابلیت اطمینان و کنترل نرخ، با UDP به برنامه منتقل میشوند؟
- کدام انواع برنامهها معمولاً از UDP استفاده میکنند؟
Key concepts
- سرویس بدون اتصال
- جهتگیری دادهنگار (پیام)
- قالب سگمنت UDP
- مالتیپلکسینگ/دمالتیپلکسینگ مبتنی بر پورت
- جمع کنترل اختیاری
- سربار و تأخیر کم
- عدم کنترل ازدحام
- قابلیت اطمینان در لایه کاربرد
Key theories
- سرویس حداقلی بدون اتصال
- UDP سرویس دادهنگار «بهترین تلاش» IP را تقریباً بدون تغییر در اختیار برنامهها قرار میدهد و تنها مالتیپلکسینگ بر اساس پورت و یک جمع کنترل اختیاری را اضافه میکند، بنابراین هیچ راهاندازی، هیچ حالتی، و هیچ بازیابی خودکاری ندارد — تضمینها را با سادگی و تأخیر کم مبادله میکند.
- انتقال کنترلشده توسط برنامه
- با اجتناب از کنترل ازدحام و قابلیت اطمینان TCP، UDP به برنامه کنترل مستقیمی بر زمانبندی و آنچه که باید دوباره ارسال شود، میدهد که برای پروتکلهای بلادرنگ و سفارشی مناسب است، اما برنامه را موظف میکند که از دست رفتن دادهها را مدیریت کرده و از اشباع شبکه جلوگیری کند.
Clinical relevance
UDP زیربنای خدماتی است که در آنها تأخیر کم یا کنترل دقیق اهمیت بیشتری نسبت به تحویل تضمینشده دارد: جستجوهای DNS، صدا و تصویر بلادرنگ، بازیهای آنلاین، و مدیریت شبکه. پروتکلهای انتقال جدیدتر مانند QUIC دقیقاً برای به دست آوردن کنترل بر روی انتقال و در عین حال دور زدن محدودیتهای TCP، بر روی UDP ساخته شدهاند، که انتقال بدون اتصال را به عنصری مرکزی در شبکهسازی مدرن با تأخیر کم تبدیل میکند.
History
UDP در RFC 768 (1980) به عنوان یک پروتکل انتقال حداقلی برای برنامههایی که به مکانیزمهای TCP نیاز نداشتند، زمانی که TCP و IP به پروتکلهای مجزا تقسیم شدند، مشخص شد. این پروتکل اساساً بدون تغییر باقی مانده است و نقش آن با گسترش برنامههای حساس به تأخیر و با توسعه ویژگیهای انتقال جدید، از جمله پروتکل QUIC، بر روی آن، افزایش یافته است.
Key figures
- Jon Postel
- James F. Kurose
- Keith W. Ross
Related topics
Seminal works
- rfc768
- kurose2021
Frequently asked questions
- اگر UDP غیرقابل اعتماد است، چرا از آن استفاده میشود؟
- برای بسیاری از برنامهها، تحویل سریع مهمتر از تحویل کامل است. صدا و تصویر بلادرنگ میتوانند از دست رفتن گاه به گاه را تحمل کنند اما تأخیر را نه، DNS از یک پرس و جوی سریع تکمبادلهای بهره میبرد، و برخی برنامهها قابلیت اطمینان خود را پیادهسازی میکنند. عدم راهاندازی و محدودیت ازدحام UDP به آنها تأخیر کمتر و کنترل بیشتری میدهد.
- آیا UDP کاری فراتر از IP انجام میدهد؟
- بله، اما کم. UDP شماره پورتها را اضافه میکند تا دادهها به فرآیند برنامه صحیح در یک میزبان برسند (مالتیپلکسینگ و دمالتیپلکسینگ)، و یک جمع کنترل اختیاری برای تشخیص خرابی. فراتر از آن، تحویل بدون اتصال و «بهترین تلاش» IP را بدون تغییر باقی میگذارد.