مایکروسافت اجرای پروتکل QUIC مورد استفاده در HTTP/3 را باز کرده است

مایکروسافت اعلام کرد درباره باز کردن کد کتابخانه msquic با پیاده سازی پروتکل شبکه QUIC. کد به زبان C و نوشته شده است توزیع شده توسط تحت مجوز MIT این کتابخانه کراس پلتفرم است و نه تنها در ویندوز، بلکه در لینوکس نیز قابل استفاده است شنل یا OpenSSL برای TLS 1.3. در آینده قرار است از پلتفرم های دیگر نیز پشتیبانی شود.

این کتابخانه بر اساس کد درایور msquic.sys ارائه شده در هسته ویندوز 10 (پیش نمایش Insider) برای فعال کردن HTTP و SMB در بالای QUIC این کد همچنین برای پیاده سازی HTTP/3 در پشته داخلی ویندوز و در NET Core استفاده می شود. توسعه کتابخانه MsQuic به طور کامل در GitHub با استفاده از بررسی همتایان عمومی، درخواست‌های کششی و مشکلات GitHub انجام خواهد شد. زیرساختی آماده شده است که هر درخواست commit و pull را در مجموعه ای از بیش از 4000 آزمایش بررسی می کند. پس از تثبیت محیط توسعه، قرار است تغییراتی از سوی توسعه دهندگان شخص ثالث پذیرفته شود.

از MsQuic می‌توان برای ایجاد سرورها و کلاینت‌ها استفاده کرد، اما همه عملکردهای تعریف‌شده در مشخصات IETF در حال حاضر در دسترس نیستند. برای مثال، هیچ پشتیبانی از 0-RTT، انتقال کلاینت، Path MTU Discovery یا کنترل آدرس ترجیحی سرور وجود ندارد. در میان ویژگی های پیاده سازی شده، بهینه سازی برای دستیابی به حداکثر توان و حداقل تاخیر، پشتیبانی از ورودی/خروجی ناهمزمان، RSS (Receive Side Scaling) و توانایی ترکیب جریان های ورودی و خروجی UDP اشاره شده است. پیاده سازی MsQuic برای سازگاری با نسخه های آزمایشی مرورگرهای کروم و اج آزمایش شده است.

به یاد بیاورید که HTTP/3 استفاده از پروتکل QUIC را به عنوان یک انتقال برای HTTP/2 استاندارد می کند. پروتکل QUIC (اتصالات اینترنت سریع UDP) از سال 2013 توسط گوگل به عنوان جایگزینی برای ترکیب TCP+TLS برای وب توسعه داده شده است که مشکلات مربوط به راه اندازی و زمان مذاکره طولانی برای اتصالات در TCP را حل می کند و تاخیر زمانی که بسته ها در حین انتقال داده گم می شوند را حذف می کند. QUIC توسعه پروتکل UDP است که از مالتی پلکس شدن چندین اتصال پشتیبانی می کند و روش های رمزگذاری معادل TLS/SSL را ارائه می دهد.

اصلی ویژگی های QUIC:

  • امنیت بالا مشابه TLS (در اصل QUIC امکان استفاده از TLS 1.3 را بر روی UDP فراهم می کند).
  • کنترل یکپارچگی جریان، جلوگیری از از دست دادن بسته.
  • توانایی برقراری فوری اتصال (0-RTT، تقریباً در 75٪ موارد داده ها را می توان بلافاصله پس از ارسال بسته راه اندازی اتصال منتقل کرد) و حداقل تاخیر بین ارسال درخواست و دریافت پاسخ (RTT، زمان رفت و برگشت) را فراهم می کند.
    مایکروسافت اجرای پروتکل QUIC مورد استفاده در HTTP/3 را باز کرده است

  • عدم استفاده از شماره توالی یکسان در هنگام ارسال مجدد بسته، که از ابهام در شناسایی بسته های دریافتی جلوگیری می کند و از وقفه های زمانی خلاص می شود.
  • از دست دادن یک بسته فقط بر تحویل جریان مرتبط با آن تأثیر می گذارد و تحویل داده ها را در جریان های موازی که از طریق اتصال فعلی منتقل می شود متوقف نمی کند.
  • ویژگی های تصحیح خطا که تاخیرهای ناشی از ارسال مجدد بسته های گم شده را به حداقل می رساند. استفاده از کدهای تصحیح خطای ویژه در سطح بسته برای کاهش موقعیت هایی که نیاز به ارسال مجدد داده های بسته از دست رفته دارند.
  • مرزهای بلوک رمزنگاری با مرزهای بسته QUIC تراز شده است، که تأثیر تلفات بسته در رمزگشایی محتویات بسته های بعدی را کاهش می دهد.
  • بدون مشکل با مسدود کردن صف TCP.
  • پشتیبانی از شناسه اتصال، که زمان لازم برای برقراری اتصال مجدد برای مشتریان تلفن همراه را کاهش می دهد.
  • امکان اتصال مکانیزم های پیشرفته کنترل تراکم اتصال.
  • از تکنیک‌های پیش‌بینی توان عملیاتی در هر جهت استفاده می‌کند تا اطمینان حاصل کند که بسته‌ها با نرخ بهینه ارسال می‌شوند و از شلوغ شدن آنها و از دست دادن بسته‌ها جلوگیری می‌کند.
  • محسوس رشد عملکرد و توان عملیاتی در مقایسه با TCP برای سرویس‌های ویدیویی مانند YouTube، QUIC نشان داده است که عملیات بافر مجدد را هنگام تماشای ویدیو تا 30 درصد کاهش می‌دهد.

منبع: opennet.ru

اضافه کردن نظر