UDP یک پروتکل ارتباطی است که عمدتاً برای ایجاد اتصالات با تاخیر کم و تلرانس پایین بین برنامههای کاربردی در اینترنت استفاده میشود.
پروتکل دیتاگرام کاربر با انجام انتقال دادهها قبل از انجام توافق توسط گیرنده، سرعت انتقال را افزایش میدهد. در نتیجه، UDP در ارتباطات حساس به زمان، از جمله VoIP، جستجوی سیستم نام دامنه (DNS) و پخش ویدیو یا صدا، کارامد خواهد بود.
UDP جایگزینی برای پروتکل کنترل انتقال (TCP) است. UDP و TCP در بالای IP اجرا میشوند و گاهی UDP/IP یا TCP/IP نیز نامیده میشوند. با این حال، تفاوتهای مهمی بین این دو وجود دارد. به عنوان مثال، UDP ارتباط فرآیند به فرآیند را فعال میکند، درحالیکه TCP از ارتباط میزبان به میزبان پشتیبانی میکند.
TCP بستههای مجزا را ارسال میکند و یک رسانه انتقال قابل اعتماد محسوب میشود. از سوی دیگر، UDP پیامهایی را ارسال میکند که دیتاگرام نامیده میشود و بهترین روش ارتباطی به حساب میآید. این بدان معناست که UDP هیچ تضمینی برای تحویل دادهها یا ارائه امکانات ویژه برای ارسال مجدد پیامهای گم شده یا خراب ارائه نمیدهد.
UDP دو سرویس ارائه میدهد که توسط لایه IP ارائه نمیشود. UDP شماره پورتها را برای کمک به تشخیص درخواستهای مختلف کاربر نمایش میدهد. همچنین یک قابلیت جمع کنترلی اختیاری برای تأیید اینکه دادهها دست نخورده رسیدهاند را فراهم میکند.
ویژگیهای پروتکل دیتاگرام کاربر
UDP دارای ویژگیهایی است که آن را برای استفاده با برنامههایی که میتوانند دادههای از دست رفته را تحمل کنند، مفید میسازد. در زیر چند نمونه آورده شده است:
- اجازه میدهد تا بستهها با ترتیبی متفاوت از ترتیبی که ارسال شدهاند رها و دریافت شوند، و آن را برای برنامههای بلادرنگ که تاخیر ممکن است نگران کننده باشد، مناسب میکند.
- میتوان از آن برای پروتکلهای مبتنی بر تراکنش، مانند DNS یا پروتکل زمان شبکه (NTP) استفاده کرد.
- میتوان از آن در جاهایی که تعداد زیادی مشتری متصل هستند و نیازی به اصلاح خطای بلادرنگ نیست، مانند بازی، کنفرانس صوتی یا ویدیویی، و پخش رسانه استفاده کرد.
ترکیب هدر UDP
UDP هنگام بستهبندی داده پیام، برای انتقال از طریق اتصالات شبکه از هدرها استفاده میکند. هدرهای UDP شامل مجموعهای از پارامترها به نام فیلد هستند که توسط مشخصات فنی پروتکل تعریف شدهاند.
هدر پروتکل دیتاگرام کاربر دارای چهار فیلد است که هر کدام 2 بایت هستند و به صورت زیر میباشند:
- شماره پورت مبدا، که شماره فرستنده است.
- شماره پورت مقصد، پورتی که دیتاگرام به آن آدرسدهی شده است.
- طول، طول هدر UDP برحسب بایت و هر دادهی کپسوله شده.
- جمع کنترل، که در بررسی خطا استفاده میشود و استفاده از آن در IPv6 اجباری و در IPv4 اختیاری است.

UDP چگونه کار میکند؟
UDP از IP برای دریافت دیتاگرام از یک کامپیوتر به کامپیوتر دیگر استفاده میکند. UDP دادهها را در یک بسته UDP جمعآوری کرده و اطلاعات هدر خود را به آن میافزاید.
این دادهها شامل پورتهای مبدأ و مقصد، طول بسته و جمع کنترلی است. پس از اینکه بستههای UDP در یک بسته IP قرار داده شدند، به مقصد ارسال میشوند.
UDP برعکس TCP، تضمین نمیکند که بستهها به مقصد مناسب برسند. این بدان معنی است که UDP برخلاف TCP مستقیماً به رایانه گیرنده متصل نمیشود. بلکه دادهها را به بیرون ارسال کرده و متکی به دستگاههای بین کامپیوتر فرستنده و گیرنده خواهد بود تا به درستی دادهها را به مقصد مور نظر برسانند.
اکثر برنامهها منتظر دریافت پاسخ مورد نظر هستند در نتیجه بستههای ارسال شده با استفاده از UDP را دریافت میکنند. اگر برنامهای در بازه زمانی مشخص پاسخی دریافت نکند، برنامه دوباره بسته را ارسال کرده و یا تلاش برای ارسال مجدد را متوقف میکند.
UDP از یک مدل انتقال ساده استفاده میکند که شامل مکالمات دست تکانی برای داشتن قابلیت اطمینان، مرتبسازی یا یکپارچگی داده نمیشود. در نتیجه سرویس UDP غیرقابل اعتماد است. بستهها ممکن است نامنظم دریافت شوند، تکراری باشند یا بدون هشدار گم شوند.
اگرچه این روش انتقال تضمین نمیکند که دادههای ارسال شده به مقصد برسند، اما سربار کمی دارد و برای سرویسهایی که قطعاً لازم نیست بار اول کار کنند، مناسب است.
کاربردهای UDP
1- انتقال داده بدون از دست رفتن
UDP را میتوان در برنامههایی که نیاز به انتقال داده بدون از دست رفتن دارند استفاده کرد. مثلا برنامهای که برای مدیریت فرآیند ارسال مجدد بستههای گم شده و ترتیب صحیح بستههای دریافتی پیکربندی شده، میتواند از UDP استفاده کند. این رویکرد میتواند به بهبود سرعت انتقال داده فایلهای حجیم در مقایسه با TCP کمک کند.
در مدل ارتباطی OSI، پروتکل UDP در لایه 4 (لایه انتقال) است. UDP در ارتباط با پروتکلهای سطح بالاتر برای کمک به مدیریت خدمات انتقال داده، از جمله پروتکل انتقال فایل بیاهمیت (TFTP)، پروتکل جریان بلادرنگ (RTSP) و پروتکل مدیریت شبکه ساده (SNMP) کار میکند.
2- بازی، صدا و ویدئو
UDP یک پروتکل ایدهآل برای برنامههای شبکهای است که در آنها تأخیر موجود بسیار مهم است، مانند ارتباطات صوتی، صوتی و تصویری.
این نمونهها میتوانند مقداری از دادهها را از دست بدهند بدون اینکه بر کیفیت دریافتی تأثیر منفی بگذارند. با این حال، در برخی موارد، تکنیکهای تصحیح خطای ارسال (علاوه بر UDP) برای بهبود کیفیت صدا و تصویر، استفاده میشود.
3- خدماتی که نیازی به انتقال بسته ثابت ندارند
UDP میتواند برای برنامههایی استفاده شود که به تبادل مطمئن اطلاعات وابسته هستند اما باید روشهای خاص خود را برای پاسخگویی به بستهها داشته باشند.
این خدمات سودمند هستند زیرا آنها به الگوهای ثابتی برای تضمین کامل بودن و صحت بستههای داده ارسال شده ملزم نیستند. کاربران میتوانند تصمیم بگیرند که چگونه و چه زمانی به اطلاعاتی که صحیح یا مرتب نشدهاند پاسخ دهند.
4- پروتکلهای بهروزرسانی چندپخشی و مسیریابی
UDP میتواند برای پخش چندگانه استفاده شود زیرا از سوئیچینگ بسته پشتیبانی میکند. علاوه بر این، UDP برای برخی از پروتکلهای بروزرسانی مسیریابی، مانند پروتکل اطلاعات مسیریابی (RIP) نیز استفاده میشود.
5- برنامههای سریع
UDP را میتوان در برنامههایی که سرعت به جای قابلیت اطمینان بسیار مهم است استفاده کرد. به عنوان مثال، ممکن است عاقلانه باشد در جایی که از دست دادن برخی از نقاط داده اشکالی ندارد، از UDP در برنامهای که دادهها را از یک واحد تامین سریع ارسال میکند، استفاده کنیم.
مقایسه TCP و UDP
TCP و UDP بخشی از مجموعه پروتکل TCP/IP هستند که شامل پروتکلهایی برای انجام ارتباطات شبکه میباشند.
TCP به دلیل توانایی آن در تفکیک مجموعه دادههای بزرگ به بستههای مجزا، بررسی و ارسال مجدد بستههای گم شده و جمعآوری مجدد بستهها به ترتیب صحیح؛ به عنوان پروتکل رایج برای بخش عمدهای از اتصالات اینترنتی مورد استفاده قرار میگیرد. اما این خدمات اضافی از نظر سربار داده اضافی و تأخیر، هزینهبر هستند.
در مقابل، UDP یک پروتکل بدون اتصال است، زیرا قبل از انتقال داده نیازی به ایجاد مدار مجازی ندارد. پروتکل ارتباطی فقط بستهها را ارسال میکند، و این یعنی اینکه پهنای باند سربار و تاخیر بسیار کمتری دارد.
با UDP، بستهها ممکن است مسیرهای مختلفی را بین فرستنده و گیرنده طی کنند. در نتیجه، ممکن است برخی از بستهها گم شوند و یا نامنظم دریافت شوند.
ویژگیهای UDP عبارتند از:
- یک پروتکل بدون اتصال است.
- برای VoIP، پخش ویدئو، بازی و پخش زنده استفاده میشود.
- سریعتر است و به منابع کمتری نیاز دارد.
- بستهها الزاماً به ترتیب دریافت نمیشوند.
- بستههای گم شده مجاز هستند. فرستنده نمیتواند بداند بستهای دریافت شده است یا خیر.
- برای برنامههایی که نیاز به انتقال سریع و کارآمد دارند، مانند بازیها، بهتر است.
ویژگیهای TCP عبارتند از:
- یک پروتکل اتصالگرا است.
- پرکاربردترین پروتکل در اینترنت است.
- تضمین میکند که هیچ بستهای گم نمیشود و تمام دادههای ارسال شده آن را به دست گیرنده مورد نظر میرساند.
- بستهها را به ترتیب میفرستد تا به راحتی به هم وصل شوند.
- کندتر است و به منابع بیشتری نیاز دارد.
- هدر بزرگتری نسبت به UDP دارد.
- برای برنامههایی که به قابلیت اطمینان بالایی نیاز دارند، مناسب است، و زمان انتقال نسبتاً حیاتیتر است.
TCP و UDP بخشی از مجموعه پروتکل TCP/IP هستند که شامل تعدادی پروتکل برای انجام ارتباطات شبکه است.