TCP vs UDP

پروتکل­ های transmission control protocol) TCP) و user datagram protocol) UDP) برای انتقال داده هایی به نام packet از طریق شبکه اینترنت مورد استفاده قرار می گیرد. زمانی که سیستم شما اطلاعاتی را به سمت سرور ارسال می کند، وب سرور پاسخی را در قالب دسته ای از packetهای TCP به سمت مرورگر می فرستد، تا در نهایت محتوای صفحه وب، به کاربر نشان داده شود. در اتصال به روش TCP قبل از ارسال دیتا نیاز به ایجاد سوکت TCP است. برای ایجاد یک سوکت TCP نیاز به ارسال و هماهنگی با سرور وجود دارد که اصطلاحا به آن three way handshaking می گویند. به این صورت که درخواست ایجاد سوکت تحت عنوان SYN از سمت کاربر برای سرور فرستاده می شود، سپس SYN,ACK یا تایید ایجاد اتصال از جانب سرور به کاربر ارسال می شود و در نهایت کاربر پیامی جهت تصدیق دریافت تاییدیه سرور، می فرستد و به این صورت سوکت TCP ایجاد می شود.

بعد از ایجاد سوکت TCP می توان شروع به ارسال دیتا کرد. TCP فرآیند ارسال را در دو مرحله انجام می­ دهد:

۱) مرتب سازی و شمارش بسته ها

۲) بررسی خطا با توجه به پاسخی که از سمت گیرنده ارسال می شود.

پروتکل TCP یک پروتکل مبتنی بر اتصال است به عبارتی قبل از ارسال داده ها مسیر باید مشخص شود چرا که هدف اصلی TCP اطمینان از ارسال درست و بدون نقص داده ها است. پروتکل TCP دارای قابلیت تشخیص و تصحیح خطا است و همین امر موجب می شود تا یک پروتکلی قابل اطمینان باشد.

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

بطور خلاصه می توان تفاوت های TCP و UDP را در شکل زیر بیان کرد: