Skip to content

Latest commit

 

History

History
53 lines (38 loc) · 3.78 KB

why-tcphol.md

File metadata and controls

53 lines (38 loc) · 3.78 KB

مسدود کننده سرِ صف TCP

ارتباطات HTTP/2 بر روی بستر TCP بنا شده و به نسبت نُسَخ قبلی از تعداد اتصالات بسیار کمتری استفاده می‌شود. TCP پروتکلی برای انتقالات قابل اعتماد است و می‌توان آن را اساسا زنجیره‌ای خیالی میان دو ماشین در نظر گرفت. آنچه در انتهایی از شبکه قرار داده شده است به همان ترتیب به انتهای دیگر در شبکه می‌رسد - در نهایت (وگرنه ارتباط قطع می‌شود).

a TCP chain between two computers

به کمک HTTP/2، مرورگرهای عادی ده‌ها و صدها انتقال موازی را بر روی یک اتصال TCP انجام می‌دهند.

در صورتی که یک بسته از بین رفته باشد، و یا جایی در شبکه بین دو نقطه که توسط HTTP/2 صحبت می‌کنند گم شده باشد، به این معناست که کل اتصال TCP متوقف می‌شود تا زمانی که بسته‌ی گم شده دوباره ارسال شود و راه خود را به سمت مقصد نهایی پیدا ‌کند. از آنجایی که TCP این 'زنجیره' است، به این معنی است که اگر یک پیوند به طور ناگهانی از دست رفته باشد، همه چیز پس از آن پیوندِ از دست رفته باید در حالت انتظار باقی بماند.

یک تصویر با استفاده از استعاره زنجیره‌ای هنگام ارسال دو جریان بر روی این اتصال. جریان قرمز و جریان سبز:

the chain showing links in different colors

این یک head-of-line block یا به اختصار HOL block مبتنی بر TCP (مسدود کننده سرِ صفِ TCP) می‌شود.

با افزایش درصد از دست رفتن بسته‌ها، HTTP/2 ضعیف و ضعیف‌تر عمل می‌کند. در شرایطی با ۲٪ packet loss (که نشان‌دهنده‌ی کیفیت بسیار پایین و وحشتناکی از شبکه است) آزمایش‌ ثابت کرده است که کاربران HTTP/1 معمولاً از عملکرد بهتری برخوردار خواهند بود - چرا که آنان ۶ اتصال برای توزیع بسته‌های گم شده دارند. که البته همچنین به این معنی است که در صورت از دست رفتن بسته‌ای، اتصال دیگر می‌تواند همچنان به کار خود ادامه دهد.

حل این مشکل با TCP اصلاً ساده نخواهد بود، البته اگر ممکن باشد.

جریان‌های مستقل از انسداد جلوگیری می‌کنند

به کمک QUIC همچنان اتصالی بین دو نقطه وجود دارد که ارتباط را ایمن و ارسال اطلاعات را معتبر و قابل اطمینان می‌سازد.

a QUIC chain between two computers

زمانی که دو جریان مختلف بر روی این اتصال ایجاد شود، آن دو به صورت مجزا دیده می‌شوند، به گونه‌ای که اگر پیوندی برای یکی از دو جریان از دست رفته باشد، تنها آن جریان، آن زنجیره‌ی مشخص، باید منتظر بماند تا پیوند گم شده دوباره برای انتقال ارسال شود.

در اینجا به واسطه‌ی تصویری با یک جریان زرد و یک جریان آبیِ ارسال شده بین دو نقطه توضیح داده شده است.

two QUIC streams between two computers