احتمالا کلمه پروتکل را بارها و بارها توسط افراد مختلف، به خصوص هنگام کانفیگ مودم خانگی خود، شنیدهاید. پروتکل به طور کلی، به معنای قرارداد است. برای انتقال اطلاعات بین کامپیوترها از طریق اینترنت، باید از قوانینی پیروی کرد که برای استفاده از اینترنت، تعریف شدهاند. آشنایی با این قراردادها میتواند به ما کمک کند، بدانیم در چه مواقعی، استفاده از کدام پروتکل، به نفع ما بوده و برای فعالیتی که داریم، مناسبتر است.
آنچه در این مقاله خواهید خواند
Toggleزمانی که قصد داریم از کامپیوتری در شهر A، اطلاعاتی را به کامپیوتری در شهر B ارسال کنیم، باید آدرس IP کامپیوتر مقصد را داشته باشیم. سپس میتوانیم از یکی از دو پروتکل معروف TCP یا UDP استفاده کرده و دادههای خود را در قالب بستههایی از دادهها (packet) به کامپیوتر مقصد ارسال کنیم.
هر دوی این پروتکلها از پورت های TCP و UDP برای برقراری ارتباط بین برنامهها استفاده میکنند تا بدانند، هر داده به کدام سرویس در کامپیوتر مقصد باید ارسال شود. در این مطلب از کامیتل شاپ، با بررسی تفاوت پروتکل TCP و UDP، قصد داریم درباره مزایا و معایب هر کدام صحبت کرده و به سوال «TCP بهتر است یا UDP؟» پاسخ مناسب و جامعی بدهیم.
پروتکل TCP
پروتکل TCP (Transmission Control Protocol) یا پروتکل کنترل انتقال، یکی از اصلیترین پروتکل های اینترنت است. با استفاده از این پروتکل، کامپیوتری که داده را ارسال میکند، مستقیما به کامپیوتر مقصد متصل است و تا زمانی که انتقال داده به پایان نرسیده، متصل باقی میماند؛ به همین دلیل انتقال دادهها به این روش، مطمئنتر است؛ زیرا کامپیوترها تا زمان پایان انتقال، متصل مانده و دادهها را ردیابی میکنند تا مطمئن شوند، به مقصد رسیدهاند.
ویژگی های پروتکل TCP
این پروتکل، connection-oriented است؛ یعنی کاربر، ابتدا یک ارتباط را برقرار میکند، از ارتباط استفاده کرده و سپس ارتباط را قطع میکند. همچنین، مانند یک لوله عمل کرده و دادهها از یک سر لوله وارد شده و از سر دیگر لوله خارج میشوند؛ به همین دلیل ترتیب دادهها کاملا رعایت میشود.
ویژگی دیگر پروتکل TCP، قابل اطمینان بودن یا Reliability آن است که مطمئن میشود، دادهها از فرستنده به دست گیرنده میرسند. در صورتی که بخشی از دادهها، ناقص بوده و دریافت نشوند، مجددا ارسال شده تا همه دادهها کامل به دست گیرنده برسند؛ به همین دلیل سرعت انتقال نیز کندتر میشود.
مطلب پیشنهادی: نحوه پیدا کردن رمز وای فای در انواع گوشی و کامپیوتر
مزایای پروتکل TCP
پروتکل TCP مزایای مختلفی دارد؛ مانند:
- قابل اعتماد بوده و ارتباط بین فرستنده و گیرنده مطمئن است.
- دادهها به ترتیب ارسال میشوند.
- مطمئن میشود همه دادهها به دست گیرنده رسیده باشند.
- میتواند از تعداد زیادی از پروتکلهای مسیریابی، پشتیبانی کند.
معایب پروتکل TCP
در کنار مزایای گفته شده، معایبی نیز دارد که عبارتند از:
- به دلیل اطمینان از رسیدن همه دادهها از فرستنده به گیرنده، سرعت پایینی دارد.
- برای شبکههای PAN و LAN مناسب نیست.
- پیادهسازی این پروتکل پیچیده است.
- مدیریت این پروتکل سخت است.
پروتکل UDP
پروتکل UDP (User Datagram Protocol)، یکی دیگر از پروتکل های معروف در دنیای اینترنت است. در این پروتکل، کامپیوتر فرستنده، دادهها را در بستههای کوچکی قرار داده و در شبکه، آزاد میکند؛ به این امید که توسط گیرندههای مورد نظر دریافت شود؛ بنابراین بر خلاف پروتکل TCP، اتصالی بین دو کامپیوتر برقرار نمیشود؛ به همین دلیل این پروتکل، نمیتواند تضمینی بابت رسیدن دادههای انتقالی، بدهد و ممکن است برخی از دادهها در این بین، گم شده یا ناقص برسند.
مطلب پیشنهادی: آشنایی با چراغ های مودم
ویژگی های پروتکل UDP
این پروتکل، connectionless است؛ یعنی مانند یک سیستم پستی عمل میکند. هر بسته و نامه، آدرس مقصد را با خود به همراه دارد و هر کدام به صورت مستقل، به مقصد ارسال میشوند. طبیعتا دادهای که زودتر ارسال شده است، زودتر به مقصد میرسد، اما در مواردی ممکن است انتقال دادههای قبلی، با تاخیر مواجه شده و باعث شود، ترتیب دادهها رعایت نشود.
یکی دیگر از ویژگی های پروتکل UDP، سرعت بالای انتقال آن است. این سیستم، مجبور به بررسی دریافت شدن دادهها نیست؛ به همین دلیل سرعت بالاتری دارد، البته این عدم بررسی، ممکن است باعث شود، برخی از دادهها در این بین، گم شده یا ناقص برسند. هدف در پروتکل UDP، سرعت بالای انتقال اطلاعات است، نه دقت در ارسال و دریافت دادهها.
مزایای پروتکل UDP
پروتکل UDP از مزایای متعددی برخوردار است. برخی از این مزایا عبارتند از:
- برای انتقال اطلاعات، نیازی به برقراری اتصال بین دو کامپیوتر است.
- میتواند در طیف وسیعی از شبکهها استفاده شود.
- دادهها به صورت real-time منتقل میشوند.
- انتقال اطلاعات، سرعت بالاتری دارد.
معایب پروتکل UDP
پروتکل UDP در کنار مزایای متعددی که دارد، میتواند معایبی نیز داشته باشد. مانند:
- از رسیدن دادهها از فرستنده به گیرنده، نمیتواند اطمینان حاصل کند.
- ترتیب دادههای ارسالی را رعایت نمیکند.
- مکانیزمی برای ردیابی دادهها ندارد.
تفاوت پروتکل TCP و UDP
| تفاوتها | TCP | UDP |
| نوع سرویس | اتصال گرا (connection-oriented) | بدون اتصال (Datagram-oriented) |
| قابلیت اطمینان | ✅ | ❌ |
| مکانیزم بررسی خطا | مکانیسمهای گستردهای برای بررسی خطا ارائه می دهد. چون کنترل جریان و تأیید دادهها را فراهم می کند. | UDP تنها مکانیزم اصلی بررسی خطا را با استفاده از جمعهای کنترلی دارد. |
| Acknowledgment | یک بخش acknowledgment وجود دارد | بدون acknowledgment |
| Sequence | توالی داده ها یکی از ویژگی های کنترل انتقال است | توالی داده ها در UDP وجود ندارد |
| سرعت | TCP کندتر از UDP است. | UDP سریعتر، سادهتر و کارآمدتر از TCP است. |
| Retransmission | ارسال مجدد بستههای گم شده در TCP امکان پذیر است. | در UDP هیچ گونه ارسال مجدد بسته های گم شده وجود ندارد. |
| Header Length | TCP دارای هدر با طول متغیر (۲۰-۶۰) بایت است. | UDP دارای هدر ۸ بایتی با طول ثابت است. |
| Weight | TCP سنگین وزن (heavy-weight) است. | UDP سبک وزن (lightweight) است. |
| Handshaking Techniques | از دست دادنهایی مانند SYN، ACK، SYN-ACK استفاده میکند | پروتکل بدون اتصال، یعنی بدون دست دادن |
| Broadcasting | پشتیبانی نمیکند. | پشتیبانی میکند |
| Protocols | TCP توسط HTTP، FTP، SMTP و Telnet استفاده میشود. | UDP توسط DNS، DHCP، TFTP، SNMP، RIP و VoIP استفاده میشود. |
| Stream Type | اتصال TCP یک جریان بایتی است. | اتصال UDP یک جریان پیام است. |
| Overhead | سربار (Overhead) پایین، اما بالاتر از UDP | خیلی کم |
| Applications | این پروتکل در درجه اول در شرایطی استفاده میشود که یک روش ارتباطی ایمن و قابل اعتماد لازم است، مانند ایمیل، وبگردی و در خدمات نظامی. | این پروتکل در مواقعی استفاده میشود که ارتباط سریع ضروری است اما قابل اطمینان بودن نگرانی نیست، مانند VoIP، پخش بازی، پخش ویدیو و موسیقی و غیره. |
TCP بهتر است یا UDP؟
پاسخ به این سوال که: «TCP بهتر است یا UDP؟» باید به تفاوت پروتکل TCP و UDP توجه کرد. در مرحله بعد، با توجه به کاری که نیاز داریم انجام شود و نوع دادهای که قصد انتقال آن را داریم، تصمیم میگیریم که کدام پروتکل بهتر است؛ برای مثال، UDP به دلیل داشتن سرعت بالاتر، در پخش ویدیوها و بازیهای آنلاین، کاربرد داشتهو میتواند دادهها را بدون تاخیر، منتقل کند.
اما در صورتی که قصد داریم دادههای مهمتر، مانند عکس و فیلم را برای کامپیوتر دیگری ارسال کنیم، نیاز به اطمینان از دریافت دادهها داریم؛ بنابراین از پروتکل TCP استفاده میکنیم. همچنین، زمانی که ترتیب دریافت دادهها، مهمتر از سرعت انتقال آنها است نیز استفاده از TCP توصیه میشود.
به طور خلاصه، میتوان موارد کاربرد پروتکل های TCP و UDP را به صورت زیر بیان کرد:
TCP:
- انتقال فایل
- ارسال ایمیل
- وبگردی
- خدمات نظامی
UDP:
- بازی آنلاین
- پخش ویدیو و استریم
- ویدیوکالهای آنلاین
جمع بندی
در این مقاله، درباره ویژگیها و انواع مزایا و معایب هر دو پروتکل TCP و UDP توضیح دادیم و بیان کردیم، مهمترین تفاوت پروتکل TCP و UDP، در سرعت و اطمینان از انتقال دادهها است. همچنین در این مطلب، به پرسش مهم «TCP بهتر است یا UDP؟» پاسخ دادیم.
توضیح دادیم که برتری هر کدام از این پروتکلها، در کاربرد و استفادهای که از آنها داریم، مشخص میشود؛ برای مثال، هنگام پخش ویدیوهای آنلاین، استفاده از پروتکل UDP توصیه میشود، در صورتی که هنگام انتقال فایلهایی که باید از رسیدن آنها اطمینان حاصل کنیم، استفاده از پروتکل TCP الزامی است.









