احتمالا واژههای TCP و UDP را به هنگام تنظیم کردن روتر و نرم افزار فایروال شنیده باشید. قبل از پرداختن به تفاوتهای بین آنها، ابتدا باید بدانید هر کدام دقیقا چه چیزی هستند و چه عملکردی دارند؟
TCP چیست؟
پروتکل کنترل انتقال یا TCP، یک پروتکل connection-oriented است که کامپیوترها برای برقراری ارتباط از طریق اینترنت، از آن استفاده میکنند. یکی از اصلیترین پروتکلها، در شبکههای TCP/IP است. TCP، امکان بررسی خطا، تضمین تحویل دادهها و همچنین تحویل packetها به همان روشی که ارسال میشوند را فراهم میکند.
UDP چیست؟
User Datagram Protocol (UDP)، یک پروتکل connectionless است که درست مانند TCP کار میکند اما فرض میکند بررسی خطاها و خدمات recovery نیاز نیستند. در عوض، UDP به صورت مداوم، datagramها را برای کاربران ارسال میکند تا مطمئن شود که آنها را دریافت کردهاند.
تفاوت TCP و UDP
تفاوتها و شباهتهای زیادی بین TCP و UDP وجود دارد. هر دو متداولترین روش برای ارسال packet از طریق اینترنت هستند و هر دو آنها روی لایه Transport layer پروتکل کار میکنند، در ضمن هر دو از پروتکل IP استفاده میکنند.
تفاوتهای آنها به شرح زیر است:
1- Connection and connection-less
TCP یک پروتکل connection-oriented و UDP یک پروتکل connection-less است. TCP قبل از ارسال اطلاعات، ارتباطی بین فرستنده و گیرنده برقرار میکند در صورتی که UDP قبل از ارسال دادهها، اتصال برقرار نمیکند.
2- Reliability
TCP قابل اعتماد است به طوری که تضمین میکند دادههای ارسال شده را به گیرنده تحویل دهد. چنانچه قسمتی از اطلاعات در فرایند ارسال از بین برود، آن را بازیابی و مجددا ارسال میکند. TCP مدام در حال بررسی پکت دادهها جهت احتمال خطا است و آنها را ردیابی میکند تا اطلاعاتی از بین نرود و یا خراب نشود.
UDP قابل اعتماد نیست، تحویل دادههای ارسال شده را توسط گیرنده، تضمین نمیکند و حتی اطلاعات ارسال شده، ممکن است از بین برود و یا خراب شود.
3- Flow control
TCP از مکانیزم کنترل جریان استفاده میکند تا مطمئن شود، فرستنده به یکباره حجم زیادی از اطلاعات را ارسال نکند. عملکرد TCP برای حل این مسئله به این شکل است که مقداری از دادهها را در یک Send Buffer و Receive Buffer نگهداری میکند و در زمان مناسب ارسال و یا دریافت میکند.
زمانی که برنامه، آماده دریافت داده باشد، اطلاعات را از Receive Buffer میخواند و دریافت میکند، چنانچه Receive Buffer پر باشد، دریافت کننده قادر به دریافت اطلاعات نیست پس منجر به از دست رفتن اطلاعات میشود. بنابراین جهت حفظ و نگهداری دادهها، دریافت کننده میزان فضای خالی Receive Buffer را برای فرستنده مشخص میکند. گیرنده، با هر بار دریافت packet، میزان فضای خالی را برای فرستنده مشخص میکند.
UDP از جریان کنترل استفاده نمیکند؛ بنابراین، packet ها در فرایند جریان مداوم، یا ارسال میشوند و یا از بین میروند.
4- Ordering
TCP تضمین میکند پکتها، به ترتیب و بر اساس تاریخ ارسال شوند، در صورتی که ترتیب ارسال UDP بر هیچ مبنای خاصی قرار ندارد.
5- Speed
سرعت TCP، به این دلیل که عملکرد گستردهای دارد، خیلی کندتر از UDP است. TCP میبایست یک connection ایجاد کند، خطاهای احتمالی را بررسی کند و همچنین فایلها را، همان طور که ارسال شده، دریافت کند.
6- Usage
از TCP برای برنامههایی استفاده میشود که نیاز به قابلیت اطمینان بالایی وجود داشته باشد و سرعت در آنها خیلی اهمیت نداشته باشد:
از UDP برای برنامههایی استفاده میشود که نیاز به سرعت و کارایی داشته باشند:
- Streaming videos
- Online games
- Live broadcasts
- Domain Name System (DNS)
- Voice over Internet Protocol (VoIP)
- Trivial File Transfer Protocol (TFTP)
5 دیدگاه برای “تفاوت TCP و UDP چیست؟”
ali
می گوید:ممنون
Peyman
می گوید:مفید و مختصر
Shayan
می گوید:بسیار عالی
علی
می گوید:ممنون مفيد و مختصر بود..
حامد بیگلری
می گوید:ممنون
مختصر و مفید