
Table of Contents
چه پروتکلی است؟
هنگامی که کامپیوترها با دستگاههای شبکه ارتباط برقرار میکنند، همانطور که انسانها با یکدیگر ارتباط برقرار میکنند، نیاز دارند از همان زبان استفاده کنند تا ارتباط بدون مشکلی برقرار شود.
قوانینی مانند چگونگی شروع ارتباط، کدام زبان را باید استفاده کرد و چگونه ارتباط را به پایان برد باید به طور پیش فرض تعیین شود. علاوه بر این، این روشهای ارتباطی باید قانونی به نام پروتکل را دنبال کنند.
TCP/IP نام عمومی برای پروتکلهای مرتبط با اینترنت است، مانند TCP، UDP، IP، FTP، HTTP و ICMP.
TCP/IP در دهه 1970 اختراع شد. اصلاحاً، TCP/IP مفهوم لایهبندی را پیشنهاد داد، شبکههای پیچیده را به چندین لایه تقسیم کرد، هر کدام با مسئولیتهای مختلف، به طوری که هنگامی که یک مشکل در یک لایه رخ میدهد، تنها مشکل در آن لایه باید حل شود، به جای اینکه کل چیز تغییر کند.
بهبود قابل توجهی در مدیریت و نگهداری محیط ارتباط شبکه ایجاد می کند. پروتکل چهار لایه دارد که هر یک از این لایه ها با یکدیگر ارتباط دارند و هر یک نیاز به پشتیبانی لایه پایین تر و پشتیبانی لایه بالاتر دارند.
در آن زمان، بسیاری از پروتکلهای شبکه دیگر وجود داشتند. OSI (مدل مرجع ارتباطات سیستم باز) یک مدل پروتکل سلسله مراتبی شبکه یکپارچهتر است. OSI به چندین پروتکل مانند TCP/IP در ابتدای طراحی خود ارجاع داده است که انجام مکاتبات نسبتاً آسان میکند.
مدل OSI شامل هفت لایه است، برخی از آنها بسیار شبیه به TCP/IP هستند:

در لایه حمل و نقل، دو پروتکل به نام TCP و UDP وجود دارند که نمیتوان آنها را نادیده گرفت. تفاوتهای بین این دو پروتکل چیست و چگونه باید انتخاب کنیم؟
TCP چگونه کار می کند؟
همانطور که قبلاً اشاره کردیم، هدف اصلی لایه بندی پروتکل، تقسیم مسئولیت هر لایه است. به عنوان مثال، TCP (پروتکل کنترل انتقال) یک پروتکل لایه انتقال است که امکان انتقال داده از یک دستگاه دیجیتال به دستگاه دیگر را فراهم می کند. وظیفه اصلی TCP جمع آوری داده ها از لایه برنامه است. سپس، داده ها را به بسته ها تقسیم می کند، به هر بسته یک شماره اختصاص می دهد و بسته ها را به مقصد ارسال می کند.

TCP یک پروتکل قابل اعتماد است. گیرنده همیشه پیام تأییدیه را درباره بسته داده به فرستنده ارسال می کند. در همین حال، فرستنده همیشه می داند که آیا بسته به سمت دیگر رسیده است یا خیر. در صورت عدم توانایی در انتقال اطلاعات در طول فرآیند انتقال، درخواست برگشت داده می شود.
این پروتکل بستهها را قبل از ارسال به لایه برنامه مجدداً ترکیب میکند. از آنجایی که TCP یک پروتکل مبتنی بر اتصال است، اتصال تا زمانی که فرستنده و گیرنده انتقال داده را به پایان رساندهاند، حفظ میشود.
چگونه UDP کار می کند؟
UDP (پروتکل دیتاگرام کاربر) نسبت به پروتکل قابل اعتماد TCP به عنوان یک پروتکل انتقال ناقص در نظر گرفته میشود. با این حال، با استفاده از خدمات IP، یکی از بهترین روشهای ارسال را فراهم میکند.
در UDP، گیرنده تأییدیه بسته را تولید نمیکند و فرستنده منتظر افشای بسته نمیماند. این نقص باعث ایجاد یک پروتکل ناقص اما قابل مدیریت میشود.
اگر تأیید دادههای دریافت شده مهم نباشد، در این صورت از UDP استفاده میکنیم. این مناسب برای یک جریان داده یکطرفه است و برای ارتباط بر اساس پرس و جو مناسبترین است.
UDP تضمین نمیکند که بستهها به ترتیب ارسال میشوند. این برنامه بیحالت است و هیچ مکانیزم کنترل شلوغی ارائه نمیدهد.
تفاوتهای بین TCP و UDP چیست؟
ما میتوانیم تفاوتها بین TCP/UDP را از این جوانب مشاهده کنیم:
اتصال
TCP یک پروتکل مبتنی بر اتصال است. از آنجا که ما از این پروتکل به همراه پروتکل IP استفاده می کنیم، به طور کلی آن را TCP/IP می نامیم.
ارسال و دریافت دادهها باید ارتباط قابل اعتمادی بین دو طرف برقرار کنند. 3 “دستدهی” برای برقراری ارتباط، 4 “موج” برای قطع اتصال، پایهی قابل اعتمادی برای انتقال داده فراهم میکند.
یک اتصال خوب قبل از شروع انتقال داده برقرار شده است و گیرنده بستههای داده را به ترتیبی منظم پذیرفته و از صحت داده اطمینان حاصل میکند.
UDP یک پروتکل بدون اتصال است. قبل از انتقال داده، فرستنده و گیرنده اتصالی برقرار نمی کنند. به جای آن، فرستنده داده را به سرعت به شبکه ارسال می کند و گیرنده بخش های پیام را از صف پیام می خواند. از آنجا که فرستنده و گیرنده اتصال خوبی ندارند، گیرنده بسته ها را به ترتیب دریافت می کند.

قابلیت اعتماد
TCP ارائه خدمات انتقال قابل اعتماد را فراهم می کند و اطمینان می حاصل کند که دریافت داده ها قابل اعتماد و مرتب است. در فرآیند انتقال از روش های متعددی استفاده می شود تا خدمات انتقال قابل اعتماد را در ارتباط فراهم کند، مانند شماره گذاری و تأیید، کنترل جریان، تایمرها و غیره، تا اطمینان حاصل شود که داده ها بدون خطا، گم شده، تکراری و به ترتیب می رسند. در صورت عدم موفقیت در انتقال، درخواست بازارسانی می شود.
UDP ارسال قطعی و قطعی را تضمین نمیکند. به جای اینکه به پروتکلهای لایهی بالاتر اعتماد کند تا اطمینان از قطعیت را فراهم کند. روشهای انتقال نامنظم و نا دقیق برای برخی از نیازها که نیازی به فساد دادههای بالا ندارند، مناسبتر هستند.
چگونه بین TCP و UDP انتخاب کنیم؟
با توجه به مزایا و معایب پروتکل های TCP و UDP، می توانیم پروتکل مناسب تر را برای برآورده کردن نیازهای مختلف انتخاب کنیم.

پروتکل TCP قابل اعتماد است و مکانیزم های پیچیده ای مانند چکسازی مجموعه، شناسایی شماره سریال، پنجره لغزان، پاسخ تأیید، کنترل شلوغی و غیره را اضافه می کند. این پروتکل یک فرآیند هماهنگی طاقت فرسا را برقرار می کند و مصرف منابع سیستم را افزایش می دهد. بنابراین، تأخیر خاصی در انتقال داده ها ایجاد می کند و کارایی انتقال را کاهش می دهد.
TCP برای برنامه های معمولی که نیاز به کارایی انتقال پایین و دقت بالا دارند مناسب است، مانند HTTPS (پروتکل انتقال ابرمتن امن)، HTTP (پروتکل انتقال ابرمتن)، SMTP (پروتکل انتقال پست ساده) و FTP (پروتکل انتقال فایل) و غیره.
UDP بدون اتصال است، انتقال ناپایدار دارد، ارسال داده ها به زودی ترین زمان ممکن، پروتکل ساده، نیازهای منابع کمتر، سرعت انتقال سریع و عملکرد بالای زمان واقعی دارد. بنابراین، برای برنامه های معمولی که به کارایی انتقال بالا اما دقت پایین نیاز دارند مناسب است. این بورای استریمینگ ویدیو، تلفنی ویدیو، خدمات صوتی بر روی IP (تماس های اینترنتی)، DNS (سیستم نام دامنه) و غیره استفاده می شود.