why-tcpudp

TCP یا UDP

اگر نتوانیم مشکلِ مسدودکننده‌ سرِ صف را در TCP حل کنیم، در اصول نظری باید قادر به تولید یک لایه‌ انتقال جدید در کنار UDP و TCP در پُشته‌ی شبکه باشیم. و یا حتی از SCTP استفاده کنیم که یک پروتکل انتقالِ استاندارد شده توسط IEEE در RFC 4960 و دارای چندی از مشخصات مورد نیاز است.

هر چند، در سالیان اخیر تلاش‌های موبوط به ساخت و تولید لایه‌ انتقال جدید به دلیل سختی کار برای قرار دادن آن بر روی بستر اینترنت تقریباً به صورت کامل متوقف شده است. استفاده‌ی پروتکل‌های جدید توسط بسیاری از firewall ها، NAT ها، router ها و بسیاری از تجهیزات میانی‌ای که برای ارتباط بین کاربر و سرور عقب داشته و مختل شده است. معرفی یک پروتکل انتقالِ دیگر باعث رد شدن N% از اتصالات خواهد شد، چرا که آنان توسط تجهیزات میانی‌ به دلیل ناشناس بودن و در نتیجه تصور به مخرب و یا اشتباه بودنشان رد خواهند شد. و این N% خطا گاهی بسیار بالاتر از آنی که ارزش پیاده‌سازی و متحمل شدن را داشته باشد تلقی می‌شود.

همچنین، تغییر مسائل در لایه‌ی پروتکل انتقالِ پشته‌ی شبکه معمولاً به معنی پروتوکل‌های راه‌اندازی شده در هسته‌های سیستم عامل (kernel) است. به روز رسانی و به‌کارگیری هسته‌های سیستم عامل روندی آهسته‌ست که مستلزم تلاش و تغییرات قابل توجهی است. بسیاری از بهسازی‌های TCP استاندارد شده توسط IEEE به دلیل عدم پشتیبانی رایج به صورت گسترده استفاده و به کار گرفته نشده‌اند.

چرا SCTP-over-UDP نه

پروتکل انتقال کنترل جریان (SCTP) یک پروتکل لایه انتقال قابل‌اعتماد از جریان‌ها تست، و همچنین برای WebRTC هم پیاده‌سازی‌هایی از این پروتکل بر روی UDP موجود است.

به دلایل متعددی این روش به خوبی QUIC نبود، از جلمه:

  • پروتکل انتقال کنترل جریان (SCTP) مشکل مسدود کننده‌ی سر صف را برای جریان‌ها حل نمی‌کند

  • پروتکل انتقال کنترل جریان (SCTP) برای مرحله‌ی راه‌اندازی نیازمند معین شدن تعداد جریان‌ها است

  • پروتکل انتقال کنترل جریان (SCTP) سابقه محکمی از TLS و امنیت ندارد

  • پروتکل انتقال کنترل جریان (SCTP) مبتنی بر دست‌دهی چهار مرحله‌ای است در حالی که QUIC روش 0-RTT را ارائه می‌دهد

  • پروتکل QUIC همانند TCP یک bytestream است، در حالی که SCTP پروتکلی message-based است

  • اتصالات QUIC می‌توانند بین آدرس‌های IP جابجا شوند در حالی که اتصالات SCTP نمی‌توانند

برای مطالعه‌ی بیشتر در خصوص تفاوت، به مقایسه‌ای بین SCTP و QUIC رجوع شود.