قرارداد داده‌نگار کاربر: تفاوت میان نسخه‌ها

محتوای حذف‌شده محتوای افزوده‌شده
جز ویکی‌سازی رباتیک (درخواست کاربر:Amin.micromail)(۷.۶) >یو دی پی، چک سام+تمیز (۱۰.۷)
جز جایگزینی با اشتباه‌یاب: بلادرنگ⟸بی‌درنگ، مربوطه⟸مربوط، داینامیکی⟸دینامیکی
خط ۲:
'''قرارداد بسته دادهٔ کاربر''' یا '''پروتکل بسته دادهٔ کاربر''' {{انگلیسی|UDP یا User Datagram Protocol}} یکی از اجزاء اصلی [[مجموعه پروتکل اینترنت]]، مجموعه‌ای از پروتکل‌های شبکه که در [[اینترنت]] مورد استفاده قرار می‌گیرند، می‌باشد. [[رایانه]]‌ها با استفاده از UDP قادر به ارسال پیغام، که در این مورد آن را [[بسته داده]] یا Datagram می‌نامیم، به دیگر [[میزبان (شبکه)|میزبان‌های]] موجود در [[پروتکل اینترنت]] (IP) می‌باشند. این پروتکل توانایی این را دارد که این کار را بدون برقراری ارتباط قبلی یا ایجاد کانال‌ها یا مسیرهای انتقال داده ویژه انجام دهد. پروتکل مزبور در سال ۱۹۸۰ توسط [[دیوید پی. رید]] ابداع گردیده و به‌طور رسمی در استاندارد RFC 768 تعریف شد.
 
UDP از مدل انتقال ساده بدون استفاده از تکنیک [[دست تکانی]] صریح که برای ایجاد [[قابلیت اطمینان]] (Reliability)، [[مرتب‌سازی]] و یکپارچه‌سازی داده‌ها بکار می‌رود، بهره می‌جوید؛ بنابراین، UDP سرویس غیرمطمئنی را ارائه می‌دهد و ممکن است بسته داده‌ها نامرتب، تکراری بوده یا بدون اطلاع قبلی از دست بروند. UDP تشخیص می‌دهد که بررسی خطا و تصحیح آن با توجه به نوع کاربردی که دارد لازم نبوده یا نباید اجرا شود، بنابراین چنین بار اضافی پردازشی را بر شبکه تحمیل نمی‌کند. برنامه‌هایی که نسبت به زمان حساس هستند از UDP استفاده می‌کنند، زیرا از دست دادن بسته‌ها بهتر از منتظر ماندن برای بسته هاست؛ بنابراین پروتکل UDP بهترین گزینه برای سیستم‌های بلادرنگبی‌درنگ به حساب می‌آید. اگر برنامه‌ای نیاز به امکانات تصحیح خطا در سطح واسط شبکه داشته باشد، می‌تواند از [[قرارداد کنترل انتقال]] {{انگلیسی|TCP یا Transmission Control Protocol}} یا [[پروتکل انتقال کنترل جریان]] {{انگلیسی|SCTP یا Stream Control Transmission Protocol}} استفاده کند که به‌طور خاص برای این منظور طراحی شده‌اند.
 
طبیعت [[پروتکل‌های بدون حالت|بدون حالت]] UDP می‌تواند برای [[سرور (رایانه)|سرورهایی]] که به پرس و جوهای کوچک حجم زیادی از کلاینت‌ها پاسخ می‌دهند نیز مفید واقع شود. UDP بر خلاف TCP، با [[انتشار (رایانه)|شبکه‌های پخشی]] (انتشار بسته در کل شبکه محلی) و [[مالتی‌کست|شبکه‌های چندپخشی]] (ارسال بسته به بخشی از شبکه) سازگاری کامل دارد.
خط ۱۳:
برنامه‌های UDP از [[سوکت بسته داده]] برای برقراری ارتباطات میزبان-به-میزبان استفاده می‌کنند. برنامه یک سوکت را در انتهای بسته انتقال داده اش می‌چسباند، که ترکیبی از [[آدرس آی‌پی]] و شماره پورت سرویس است. پورت یک ساختار نرم‌افزاری است که با یک عدد ۱۶ بیتی به نام [[شماره پورت]] شناسایی می‌شود. شماره پورت عددی بین ۰ تا ۶۵٬۵۳۵ است. پورت ۰ رزرو شده‌است، اما اگر پردازش ارسال‌کننده انتظار دریافت پیام را نداشته باشید مجاز است که از این پورت استفاده کند.
 
[[آیانا]] یا انجمن شماره‌های تخصیص یافته اینترنتی شماره پورتها را به سه دسته تقسیم کرده‌است. پورت‌های بین ۰ تا ۱۰۲۳ برای سرویس‌های شناخته شده و عمومی آزادند. پورتهای بین ۱۰۲۴ و ۴۹٬۱۵۱ [[پورت ثبت شده|پورت‌های ثبت شده]] هستند و برای سرویس‌های مخصوص IANA در نظر گرفته شده‌اند. پورتهای بین ۴۹٬۱۵۲ تا ۶۵٬۵۳۵ پورت‌های داینامیکیدینامیکی هستند که به‌طور رسمی برای سرویس خاصی در نظر گرفته نشده‌اند و می‌توان برای هر منظوری استفاده کرد.
 
== ساختار بسته UDP ==
خط ۴۰:
|}
 
UDP داده‌ها را در قالب قطعاتی (Segment) ارسال می‌کند، که در ابتدای آن‌ها ۸ بایت سرآیند و سپس داده‌های [[لایه کاربرد]] قرار می‌گیرد. این سرآیند در جدول بالا نشان داده شده‌است. دو فیلد [[شماره پورت]] به منظور شناسایی نقاط پایانی (پروسه‌های نهایی) در ماشینهای مبدأ و مقصد به کار می‌آیند. وقتی یک بسته UDP از راه می‌رسد، محتوای آن به پروسه متصل به شماره پورت مقصد، تحویل داده می‌شود. عمل اتصال پروسه به یک پورت از طریق تابع اولیه BIND انجام می‌شود. (فرایند مقیدسازی پروسه به یک پورت در TCP و UDP تفاوتی ندارد) در حقیقت، آنچه که UDP در مقایسه با IP معمولی اضافه‌تر دارد پورتهای مبدأ و مقصد هستند. بدون فیلدهای مربوط به پورت، [[لایه انتقال]] نمی‌داند که با یک بسته چه کار کند. با این فیلدها، داده به درستی تحویل پروسه مربوطهمربوط خواهد شد.
 
برای آنکه بتوان برای پروسه مبدأ پاسخی برگرداند، به شماره پورت مبدأ نیاز است. بدین منظور محتوای فیلد پورت مبدأ از بسته ورودی، در فیلد پورت مقصد از بسته خروجی، کپی و ارسال می‌شود. بدین ترتیب فرستنده پاسخ، پروسه تحویل گیرنده بسته را مشخص می‌نماید.<ref>{{یادکرد
خط ۱۵۸:
 
== قابلیت اطمینان و راه‌حل‌هایی برای کنترل ازدحام ==
فقدان قابلیت اطمینان بدین معناست که برنامه‌هایی که از UDP استفاده می‌کنند کلاً می‌توانند مقداری خطا یا افزونگی را بپذیرند. برخی پروتکلها نظیر TFTP می‌توانند مکانیزم‌های ابتدایی برای برقراری قابلیت اطمینان را در لایه کاربرد به کار گیرند. در اغلب اوقات برنامه‌هایی که از UDP استفاده می‌کنند از مکانیزم‌های برقراری قابلیت اطمینان استفاده نمی‌کنند و حتی مانع از اجرای آن‌ها می‌شوند. رسانه‌های جویباری، بازی‌های چندبازیکنه بلادرنگبی‌درنگ و VoIP مثالهایی از برنامه‌هایی هستند که از UDP بهره می‌برند. در این برنامه‌های خاص از دست دادن بسته‌ها معمولاً مشکل حادی نیست. اگر برنامه‌ای احتیاج به برقراری قابلیت اطمینان بالا داشته باشد، باید از پروتکلی نظیر TCP استفاده کند.
 
در مورد UDP بر خلاف TCP مورد مهم و قابل توجهی وجود دارد که برنامه‌های مبتنی بر این پروتکل قابلیت جلوگیری از ازدحام و مکانیزم کنترلی خوبی نیستند. برنامه‌های UDP ای که به مسئله ازدحام توجهی نمی‌کنند و میزان قابل توجهی از [[پهنای باند]] را نیز اشغال می‌کنند، می‌توانند ثبات اینترنت را به مخاطره بیندازند. مکانیزم‌های مبتنی بر شبکه‌ای وجود دارد که برای به حداقل رساندن تأثیرات مخرب، ترافیک‌های کنترل نشده UDP ارائه شده‌اند. اجزاء مبتنی بر شبکه نظیر روترها که از تکنیک‌های صف بندی و حذف بسته‌ها استفاده می‌کنند، تنها ابزار موجود برای کاهش دادن ترافیک حجیم برنامه‌های مبتنی بر UDP می‌باشند. [[پروتکل کنترل ازدحام بسته داده]] {{انگلیسی|DCCP یا Datagram Congestion Control Protocol}} راه حلی نسبی برای حل این مشکل بالقوه‌است. این پروتکل با افزودن رفتار کنترلی مشابه TCP در سیستم میزبان، جریان‌های شدید UDP را کنترل می‌کند.
خط ۱۶۹:
* [[پروتکل پیکربندی پویای میزبان]] (DHCP)
 
انتقال صدا و تصویر معمولاً از طریق UDP صورت می‌گیرد. پروتکل‌های پخش زنده صدا و تصویر برای مدیریت از دست رفتن بسته‌ها طراحی شده‌اند تا تنها افت کیفیت ناچیزی رخ دهد، تا اینکه زمان زیادی برای ارسال دوباره بسته‌های از دست رفته صرف شود. به این دلیل که TCP و UDP هر دو در یک شبکه کار می‌کنند، بسیاری از کسب و کارها به این نتیجه رسیده‌اند که افزایش اخیر در ترافیک UDP از این برنامه‌های بلادرنگبی‌درنگ بر کارایی برنامه‌هایی نظیر [[پایانه‌های فروش]] (POS)، سیستم‌های حسابداری و [[پایگاه داده]] که از TCP استفاده می‌کنند، آسیب می‌رسانند. زمانی‌که TCP متوجه از دست رفتن بسته‌ای می‌شود، نرخ انتقال داده‌هایش را کاهش می‌دهد. از آنجاییکه، برنامه‌های تجاری و بلادرنگبی‌درنگ برای کسب و کارها مهم می‌باشند، بر اهمیت توسعه راه حل‌های [[کیفیت خدمات]] (QoS) روز به روز افزوده می‌شود.
 
== مقایسه UDP و TCP ==