تالار گفتگوی کیش تک/ kishtech forum
آشنایی با پروتکل UDP - نسخه‌ی قابل چاپ

+- تالار گفتگوی کیش تک/ kishtech forum (http://forum.kishtech.ir)
+-- انجمن: پردیس فناوری کیش (http://forum.kishtech.ir/forumdisplay.php?fid=1)
+--- انجمن: فناوری اطلاعات و ارتباطات (http://forum.kishtech.ir/forumdisplay.php?fid=6)
+--- موضوع: آشنایی با پروتکل UDP (/showthread.php?tid=52461)



آشنایی با پروتکل UDP - myou - 01-05-2021


یکی از اجزاء اصلی مجموعه پروتکل اینترنت، مجموعه‌ای از پروتکل‌های شبکه که در اینترنت مورد استفاده قرار می‌گیرند، می‌باشد. رایانه‌ها با استفاده از UDP قادر به ارسال پیغام، که در این مورد آن را بسته داده یا Datagram می‌نامیم، به دیگر میزبان‌های موجود در پروتکل اینترنت (IP) می‌باشند. این پروتکل توانایی این را دارد که این کار را بدون برقراری ارتباط قبلی یا ایجاد کانال‌ها یا مسیرهای انتقال داده ویژه انجام دهد. پروتکل مزبور در سال ۱۹۸۰ توسط دیوید پی. رید ابداع گردیده و به‌طور رسمی در استاندارد RFC 768 تعریف شد.
UDP از مدل انتقال ساده بدون استفاده از تکنیک دست تکانی صریح که برای ایجاد قابلیت اطمینان (Reliability)، مرتب‌سازی و یکپارچه‌سازی داده‌ها بکار می‌رود، بهره می‌جوید؛ بنابراین، UDP سرویس غیرمطمئنی را ارائه می‌دهد و ممکن است بسته داده‌ها نامرتب، تکراری بوده یا بدون اطلاع قبلی از دست بروند. UDP تشخیص می‌دهد که بررسی خطا و تصحیح آن با توجه به نوع کاربردی که دارد لازم نبوده یا نباید اجرا شود، بنابراین چنین بار اضافی پردازشی را بر شبکه تحمیل نمی‌کند. برنامه‌هایی که نسبت به زمان حساس هستند از UDP استفاده می‌کنند، زیرا از دست دادن بسته‌ها بهتر از منتظر ماندن برای بسته هاست؛ بنابراین پروتکل UDP بهترین گزینه برای سیستم‌های بی‌درنگ به حساب می‌آید. اگر برنامه‌ای نیاز به امکانات تصحیح خطا در سطح واسط شبکه داشته باشد، می‌تواند از قرارداد کنترل انتقال (به انگلیسی: TCP یا Transmission Control Protocol) یا پروتکل انتقال کنترل جریان (به انگلیسی: SCTP یا Stream Control Transmission Protocol) استفاده کند که به‌طور خاص برای این منظور طراحی شده‌اند.
طبیعت بدون حالت UDP می‌تواند برای سرورهایی که به پرس و جوهای کوچک حجم زیادی از کلاینت‌ها پاسخ می‌دهند نیز مفید واقع شود. UDP بر خلاف TCP، با شبکه‌های پخشی (انتشار بسته در کل شبکه محلی) و شبکه‌های چندپخشی (ارسال بسته به بخشی از شبکه) سازگاری کامل دارد.

سؤالی که اینک پیش می‌آید این است که ما چرا باید به یک پروتکل غیر قابل اتکا برای انتقال داده نیاز داشته باشیم؟ ما از UDP جایی استفاده می‌کنیم که تأیید وصول بسته‌ها پهنای باند قابل توجهی را به همراه داده‌های واقعی اشغال می‌کند. برای نمونه در مورد استریم کردن ویدئو، هزاران بسته به سمت کاربران فوروارد می‌شوند. تأیید وصول همه این بسته‌ها دشوار است و می‌تواند موجب هدررفت پهنای باند زیادی شود.بهترین مکانیسم تحویل پروتکل IP زیرین، نهایت تلاش را برای تحویل بسته‌هایش تضمین می‌کند، اما حتی اگر برخی بسته‌ها در جریان استریم کردن ویدئو از دست بروند، تأثیر آن زیاد نیست و می‌توان آن را به سادگی نادیده گرفت. فقدان چند بسته در ترافیک ویدئویی و صوتی در اغلب موارد اصلاً قابل تشخیص نیست.

موارد کاربرد UDP :

مناسب برای ارتباطات یکسو و همچنین برای پخش اطلاعات
برای راه اندازی خودکار (bootstrapping) یا دیگر اهداف بدون استفاده از پشته کامل پروتکل مناسب است مانند DHCP و FTP
Datagram به وجود می آورد که برای دیگر مدل های پروتکل مثل IP tunneling و Remote Procedure Call و NFS مناسب است
سرویس معامله گرایی (انتقال گرایی) است که برای مواردی مثل DNS و Network Time Protocol استفاده می شود
مناسب برای مشتریان به تعداد زیاد ، مانند برنامه های streaming media مثل IPTV


تفاوت پروتکل UDP و TCP:

به طور کلی، TCP، رایج‌ترین پروتکل اتصال در اینترنت است، چرا که از اصلاح-خطا ( Error Correction ) پشتیبانی می‌کند. بنابراین به‌عنوان یک پروتکل قانونی شناخته می‌شود.ویژگی تصحیح-خطا یا Error Correction به این صورت است که هر بار یک دستگاه داده را با پروتکل TCP به شبکه ارسال کند، منتظر دریافت تأییدیه رسیدن بسته می‌ماند، پیش از آن که بسته‌ی دیگر را مجدد ارسال کند. به این معنی که تحویل تضمینی تمام اطلاعات وجود دارد و این پروتکل بسیار قابل‌اعتماد است، اما در داده‌های ارسالی، پروسه‌ی تأیید و ارسال دوباره ، آن را کندتر می‌کند.UDP به‌عنوان یک پروتکل بدون استرداد شناخته می‌شود، زیرا چنین تصحیح-خطایی را انجام نمی‌دهد، به‌آسانی بسته‌ها را بدون تأیید یا تکرار می‌پذیرد. این باعث می‌شود خیلی سریع‌تر، اما با امنیت پایین‌تر عمل کند.


از کدام یک استفاده کنیم؟؟

[font=Verdana][font=Sans-serif]ما به هر دو نياز داريم چون TCP قابل اعتمادتر ولي از طرفي کندتر است و UDP غيرقابل اعتمادتر است ولي از طرفي سريعتر است در بيشتر مواقع به دليل ماهيت عملکرد UDP نسبت به TCP در بيشتر مواقع انتخاب بهتري براي انتقال بدون تاخير صدا و تصوير می باشد. براي استفاده بستگي به اين دارد که امنيت براي ما مهم است يا سرعت ولي بطور کلي UDP براي شبکه ها اجتماعي و بازي هاي آنلاين بهتر است اما براي کار هاي بانکي توصيه نميشود.[/font]
[/font]