ارتباط سیستم ها در شبکه های محلی خانگی و شرکتی و همچنین شبکه های عمومی مانند اینترنت به طور پیش فرض بر اساس خانواده پروتکل اینترنت انجام می شود. شناخته شده ترین مولفه این پروتکل، بدون شک پروتکل اینترنت (IP) است که نه تنها مسئولیت آدرس دهی و تقسیم بندی بسته های داده را دارد، بلکه نحوه توصیف اطلاعات مربوط به منبع و مقصد را نیز تعریف می کند.
با این حال، انتقال داده ها معمولاً توسط پروتکل کنترل انتقال اتصال (TCP) انجام می شود، به همین دلیل است که شبکه ها اغلب به عنوان شبکه های TCP / IP شناخته می شوند. از آنجا که TCP امنیت را تأمین می کند اما انتقال را نیز به تأخیر می اندازد، دیوید پاتریک رید مفهوم User Datagram Protocol (UDP) خود را در سال 1980 به عنوان گزینه ساده تر و سریع تر پروتکل استاندارد منتشر کرد.
در این مقاله قصد داریم یکی از انواع پروتکل های شبکه که پروتکل UDP می باشد و مخف عبارت User Datagram Protocol است را به شما معرفی کنیم.
UDP بخشی از مجموعه پروتکل اینترنت است که به آن مجموعه UDP / IP می گویند. برخلاف TCP، این پروتکل غیر قابل اعتماد و بدون اتصال است. بنابراین، نیازی به برقراری ارتباط قبل از انتقال داده نیست.
اگرچه پروتکل کنترل انتقال (TCP) پروتکل اصلی لایه حمل و نقل است و در بیشتر سرویس های اینترنتی استفاده می شود و تحویل مطمئن، قابلیت اطمینان و موارد دیگر را فراهم می کند اما همه این خدمات با هزینه اضافی و تأخیر اضافی برای ما خواهد بود.
در اینجا، UDP وارد می شود و برای خدمات بی درنگ مانند بازی های رایانه ای، ارتباط صوتی یا تصویری و کنفرانس های زنده مورد استفاده قرار می گیرد. در UDP هیچ خطایی وجود ندارد، بنابراین باعث پهنای باند نیز می شود. پروتکل اطلاعات کاربر (UDP) از نظر تأخیر و پهنای باند کارآمدتر است.
(UDP) User Datagram Protocol یک استاندارد ارتباطی برای تبادل داده از طریق اینترنت است. UDP با استفاده از یک فرایند بدون اتصال برای ارسال بسته های داده به مقصد، سرعت را بر قابلیت اطمینان اولویت می دهد. به دلیل تأخیر کم، UDP برای موارد استفاده حساس به زمان مانند پخش ویدئو، پروتکل Voice over Internet (VoIP)، بازی های ویدیویی و جستجوی سیستم نام دامنه (DNS) مناسب است.
وقتی پروتکل های سطح بالاتر نیاز به انتقال سریع داده ها دارند، برای بسته بندی و توزیع این داده ها از طریق پروتکل اینترنت (IP) به UDP اعتماد می کنند.
مانند بسیاری از پروتکل های شبکه دیگر ، UDP نیز به خانواده پروتکل های اینترنتی تعلق دارد، جایی که به عنوان واسطه بین لایه شبکه و لایه برنامه در سطح حمل و نقل طبقه بندی می شود.
با استفاده از پروتکل User Datagram، یک برنامه کاربردی می تواند اطلاعات را خیلی سریع ارسال کند، زیرا نه باید ارتباطی با مخاطب برقرار شود و نه اینکه منتظر پاسخ باشید. با این وجود هیچ تضمینی وجود ندارد بسته ها به صورت کامل و به همان ترتیب ارسال شده وارد شوند.
علاوه بر این، پروتکل محافظت خود را در برابر دستکاری یا دسترسی اشخاص ثالث فراهم نمی کند. با این حال، بسته های معیوب را می توان با یک چک کنترل قابل استفاده اختیاری (در ترکیب با IPv6 اجباری) تشخیص داد.
مانند UDP ،TCP بسته های داده را با یک سربرگ برچسب گذاری می کند. اما هدر های UDP بسیار ساده تر هستند. فقط چهار زمینه وجود دارد:
پورت منبع نشان می دهد که انتقال از کجا انجام می شود. بندر مقصد نشان می دهد که کجا می رود. طول UDP مشخص می کند که چند بایت عنوان و داده ها را نشان می دهد و checksum فیلدی است که می تواند برای بررسی خطاهای موجود در هدر یا جریان داده مورد استفاده قرار گیرد.
TCP دارای قسمت های اضافی متعددی در عنوان است که به شما کمک می کند بسته های داده سالم بمانند و در صورت لزوم می توانند دوباره مرتب شوند. این قسمت های اضافی به طور قابل توجهی اندازه هدر را افزایش می دهند.
برای درک دقیق نحوه کار انتقال بسته با این پروتکل به طور مفصل، نگاهی دقیق به خصوصیات پروتکل کاربر دیتاگرام بیاندازیم:
همانطور که برای پروتکل ها معمول است، بسته های UDP از یک سرآیند و اطلاعات واقعی کاربر تشکیل می شوند.
هدر UDP شامل تمام اطلاعات مورد نیاز برای انتقال داده ها با استفاده از پروتکل حمل و نقل است و باعث می شود یک بسته UDP به همین ترتیب قابل شناسایی باشد.
به دو بلوک 32 بیتی با چهار قسمت داده مختلف تقسیم شده است، ساختار به شرح زیر است:
بیت 0 – 15 | بیت 16 – 31 | |
0 | پورت منبع | بندر هدف |
32 | طول | checksum |
✔ 16 بیت اول ناحیه هدر، پورت منبع را نشان می دهد که بسته داده مربوطه از طریق آن ارسال می شود. گیرنده به این اطلاعات نیاز دارد تا بتواند به بسته پاسخ دهد. از آنجا که UDP بدون اتصال است و بین مخاطب و گیرنده مبادله ای انجام نمی شود، این قسمت اختیاری است. بنابراین، مقدار “0” معمولاً در اینجا تنظیم می شود.
✔ در قسمت بعدی، پورت هدف و بنابراین سرویس قابل دسترسی مشخص شده است. بر خلاف پورت منبع، این اطلاعات اجباری است، در غیر این صورت نمی توان به طور صحیح داده را تعیین کرد.
نکته: اگر یک برنامه سمت مشتری باشد، شماره پورت اختصاص داده شده احتمالاً بی ثبات است. اگر پورت به یک فرآیند سرور اختصاص داده شود، شماره پورت معمولاً یکی از “پورت های شناخته شده” (پورت های استاندارد) است.
✔ قسمت length طول دیتاگرام را مشخص می کند. این شامل طول هدر: (8 بایت) و اندازه داده های کاربر است (حداکثر تئوری: 65،535 بایت). هنگام استفاده از IPv4، حد واقعی برای داده های کاربر 65507 بایت است. در IPv6 بسته هایی (به اصطلاح ژامبوگرام) که از حداکثر بیشتر باشند نیز امکان پذیر است. طبق RFC 2675، در چنین حالتی مقدار فیلد طول روی “0” تنظیم می شود.
✔ هدر UDP توسط checksum خاتمه می یابد که برای تشخیص خطا در هنگام انتقال استفاده می شود. به این ترتیب می توان هرگونه دستکاری داده های ارسالی را تشخیص داد.
پروتکل کاربر دیتاگرام دارای ساختار حداقل گرایانه و سازوکارهای از دست رفته به منظور تضمین انتقال کامل و موفقیت آمیز است، اما نمی تواند به عنوان یک پروتکل حمل و نقل جهانی مورد استفاده قرار گیرد. بلکه از همان ابتدا برای برنامه هایی طراحی شده است که هنوز نیازی به سرویس انتقال مطمئن ندارند. زمینه استفاده از UDP محدود است، اما با این وجود ارزش عظیم پروتکل را نشان می دهد.