TCP در مقابل UDP
TCP یک پروتکل اتصالگرا (Connection-oriented) است که با Handshake سهمرحلهای، تضمین تحویل، ترتیب بستهها و کنترل ازدحام کار میکند، در حالی که UDP بدون اتصال و بدون تضمین است و بستهها را با کمترین سربار و سریعترین حالت ممکن ارسال میکند بدون تأیید دریافت.
| ویژگی | TCP | UDP |
|---|---|---|
| نوع اتصال | اتصالگرا | بدون اتصال |
| تضمین تحویل | دارد | ندارد |
| سرعت و سربار | کندتر، سربار بیشتر | سریعتر، سربار کمتر |
| کاربرد نمونه | HTTP، FTP، ایمیل | DNS، استریم زنده، بازی آنلاین |
کِی از TCP استفاده کنیم؟
وقتی صحت و ترتیب داده حیاتی است، مثل انتقال فایل، وب (HTTP) یا ایمیل که از دست رفتن حتی یک بایت غیرقابل قبول است.
کِی از UDP استفاده کنیم؟
وقتی سرعت و تأخیر کم مهمتر از تضمین تحویل کامل است، مثل استریم ویدیو زنده، بازیهای آنلاین یا DNS.
مثال TCP
# TCP: قبل از ارسال داده Handshake انجام میشود
SYN -> SYN-ACK -> ACK
# سپس داده با تضمین ترتیب و تحویل ارسال میشود
مثال UDP
# UDP: بدون Handshake، بسته مستقیم ارسال میشود
# مناسب DNS Query یا استریم ویدیو زنده
[Datagram] --> بدون تأیید دریافت
اشتباه رایج
اشتباه رایج انتخاب TCP برای همه سناریوها بهخاطر "قابل اطمینان بودن" است؛ در برنامههای Real-time مثل تماس تصویری، سربار تضمین تحویل TCP باعث تأخیر (Latency) بیشتر و کیفیت بدتر نسبت به UDP میشود.
جمعبندی
برای دادهای که باید کامل و بهترتیب برسد از TCP و برای سرعت بالا با تحمل از دست رفتن برخی بستهها از UDP استفاده کنید.
