HTTP په UDP کې - د QUIC پروتوکول ښه کارول

HTTP په UDP کې - د QUIC پروتوکول ښه کارول

QUIC (چټک UDP انټرنیټ اتصال) د UDP په سر کې یو پروتوکول دی چې د TCP، TLS او HTTP/2 ټولو ځانګړتیاو ملاتړ کوي او د دوی ډیری ستونزې حل کوي. دا ډیری وختونه د نوي یا "تجربوي" پروتوکول په نوم یادیږي، مګر دا د تجربې مرحله اوږده ده: پراختیا د 7 کلونو څخه زیات دوام لري. د دې وخت په جریان کې، پروتوکول د معیاري کیدو لپاره اداره نه کړه، مګر بیا هم پراخه شوه. د مثال په توګه، QUIC د ګوګل او فیسبوک په څیر لویانو لخوا د ترافیک ګړندی کولو او په ګرځنده شبکو کې ځنډ کمولو لپاره کارول کیږي ، او IETF خپل پروتوکول د HTTP/3 معیاري اساس اعلان کړ (که څه هم HTTP/2 کاروي. یوازې ۷۰٪ سایټونه).

مفهوم

QUIC د میراث TCP لپاره د بدیل په توګه رامینځته شوی ، کوم چې په اصل کې د ټیټ زیان لرونکي تار شبکې لپاره ډیزاین شوی و. TCP پاکټونه په ترتیب سره وړاندې کوي، نو که چیرې یوه کڅوړه ورکه شي، نو ټول قطار ودریږي (د سر په لیکه کې بندول)، کوم چې د ارتباط کیفیت او ثبات منفي اغیزه کوي. د لوی زیانونو څخه مخنیوي لپاره ، ګرځنده شبکې د لوی بفرونو کارولو ته لاره هواروي ، کوم چې په پایله کې د پروتوکول د بې ځایه کیدو او غلط منفي ځواب لامل کیږي (bufferbloat). برسېره پردې، TCP د پیوستون په جوړولو کې ډیر وخت لګوي: د SYN/ACK او TLS غوښتنې په جلا توګه ځي، د یو پرځای درې دورې ته اړتیا لري، لکه څنګه چې QUIC کوي.

HTTP په UDP کې - د QUIC پروتوکول ښه کارول

څرنګه چې QUIC د TCP بدیل او د TLS 1.3 پلي کول یوځای کوي، ټولې اړیکې تل کوډ شوي وي، او د دې ډول ټرافیک ډیکریپټ کول د HTTPS په پرتله اسانه ندي. سربیره پردې ، QUIC د غوښتنلیک په کچه پلي کیږي ، ځکه چې د TCP سټیک بشپړ بدیل به واخلي ابدیت.

په HTTP/2 کې د ملټي پلیکسینګ ملاتړ سره سره ، د سر - آف لاین بلاک کولو ستونزه په ترتیب کې د پاکټونو تحویلولو اړتیا له امله پاتې وه. QUIC د UDP په سر کې پلي کیږي، نو دا په اصولو کې هیڅ بلاک نه لري، او د دې لپاره چې پاکټونه د تل لپاره له لاسه ورکړي، دوی شمیرل کیږي او کیدای شي د "ګاونډیانو" برخې ولري، چې بې ځایه کیږي. برسېره پردې، QUIC په یو واحد ارتباط کې د مختلفو ډولونو غوښتنو لپاره په څو تارونو کې واحد قطار ویشي. په دې توګه، که یو پاکټ ورک شي، ستونزې یوازې د یوې کتار لپاره رامینځته کیدی شي (د بیلګې په توګه، د ځانګړي فایل لیږد لپاره):

HTTP په UDP کې - د QUIC پروتوکول ښه کارول

کارول

په پیل کې، QUIC په ګوګل کې رامینځته شوی او په لویه کچه د شرکت دننه کارولو لپاره مناسب و. په 2013 کې، دا د معیاري کولو لپاره IETF ته لیږدول شوی (کوم چې لاهم دوام لري)، او اوس هرڅوک کولی شي د پروتوکول په پراختیا کې د هغه څه وړاندیز کولو سره برخه واخلي چې دوی یې ورک دي. د IETF کاري ګروپ کلنۍ غونډې تنظیموي چې په ترڅ کې یې یو نوی معیار تصویب شوی او نوښتونه بحث کیږي. د QUIC دا پلي کول اصلي ګڼل کیږي او دا د هغې پر بنسټ د HTTP/3 معیار تصدیق شوی.

تر دې دمه ، د اصلي پروتوکول په توګه د HTTP/3 په شمول هیڅ خبرې شتون نلري ، ځکه چې دا لاهم پای ته نه دی رسیدلی او تقریبا ملاتړ شوی نه دی:

HTTP په UDP کې - د QUIC پروتوکول ښه کارول

مګر QUIC د غوښتنلیک او سرور ترمنځ د ټرانسپورټ په توګه پلي کیدی شي، کوم چې په بریالیتوب سره په اوبر کې ترسره شوی:

د QUIC معرفي کولو په اړه د اوبر تبصره

د دې لپاره چې QUIC په بریالیتوب سره ځای په ځای کړي او په ضعیف ارتباط چاپیریال کې د غوښتنلیک فعالیت ښه کړي، موږ د QUIC پروتوکول سره زوړ سټیک (HTTP/2 over TLS/TCP) بدل کړ. موږ د شبکې کتابتون کارولی کرونټ د د کرومیم پروژې، کوم چې د پروتوکول اصلي ، د ګوګل نسخه لري - gQUIC. دا تطبیق هم په دوامداره توګه ښه کیږي ترڅو د IETF وروستي مشخصات تعقیب کړي.

موږ لومړی د QUIC لپاره ملاتړ اضافه کولو لپاره زموږ د Android ایپسونو کې کرونیټ مدغم کړ. ادغام په داسې ډول ترسره شو چې د مهاجرت لګښتونه څومره چې امکان ولري کم کړي. د دې پرځای چې په بشپړ ډول د زاړه شبکې سټیک ځای په ځای کړي چې کتابتون یې کارولی OkHttp، موږ د OkHttp API چوکاټ لاندې Cronet مدغم کړی دی. د دې ډول ادغام په کولو سره ، موږ زموږ د شبکې تلیفونونو کې د بدلونونو څخه مخنیوی وکړ (کوم چې کارول کیږي بیرته راستنیدنه) د API په کچه.

د Android وسیلو لپاره ورته چلند ته ورته ، موږ په iOS کې د اوبر ایپسونو کې کرونیټ پلي کړ ، له شبکې څخه د HTTP ترافیک مداخله APIکارول NSURL پروتوکول. دا خلاصون، د iOS بنسټ لخوا چمتو شوی، د پروتوکول ځانګړي URL ډیټا اداره کوي او ډاډ ورکوي چې موږ کولی شو د مهاجرت مهم لګښتونو پرته زموږ د iOS غوښتنلیکونو کې Cronet مدغم کړو.

څخه اخیستل شوی دا ژباړه د اوبر مقالې

په شالید کې دوی د ګوګل کلاوډ lb له لارې QUIC اړیکې نیولي ، کوم چې پروتوکول ملاتړ کوي د 2018 له نیمایي راهیسې.

دا د حیرانتیا خبره نده چې ګوګل کلاوډ د ګوګل پرمختللي پروتوکول سره عالي کار کوي ، مګر بدیلونه څه دي؟

نګینکس

ډیر وخت دمخه CloudFlare ما د تیریدو هڅه وکړه nginx (کوم چې د ډیفالټ لخوا HTTP/3 ملاتړ نه کوي) د دې Quiche وسیلې سره. تطبیق د یو واحد پیچ ​​فایل په توګه شتون لري، کوم چې د نصب کولو لارښوونې سره راځي:

curl -O https://nginx.org/download/nginx-1.16.1.tar.gz
tar xvzf nginx-1.16.1.tar.gz
git clone --recursive https://github.com/cloudflare/quiche
cd nginx-1.16.1
patch -p01 < ../quiche/extras/nginx/nginx-1.16.patch

دلته تاسو کولی شئ خپل ماډلونه د اړتیا په صورت کې وصل کړئ

./configure                          	
   	--prefix=$PWD                       	
   	--with-http_ssl_module              	
   	--with-http_v2_module               	
   	--with-http_v3_module               	
   	--with-openssl=../quiche/deps/boringssl 
   	--with-quiche=../quiche
 make

ټول هغه څه چې پاتې دي د HTTP/3 ملاتړ فعالول دي

events {
    worker_connections  1024;
}

http {
    server {
        # Enable QUIC and HTTP/3.
        listen 443 quic reuseport;

        # Enable HTTP/2 (optional).
        listen 443 ssl http2;

        ssl_certificate      cert.crt;
        ssl_certificate_key  cert.key;

        # Enable all TLS versions (TLSv1.3 is required for QUIC).
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;

        # Request buffering in not currently supported for HTTP/3.
        proxy_request_buffering off;

        # Add Alt-Svc header to negotiate HTTP/3.
        add_header alt-svc 'h3-27=":443"; ma=86400';
    }
}

دا لاهم امکان نلري چې په منظم براوزرونو کې د HTTP/3 له لارې وصل شئ ، مګر تاسو یې کارولی شئ کروم کینری او د بیرغ سره یې چلوي --enable-quic، خپل سرور ته لاړ شئ یا د مثال په توګه د quic.rocks سایټ او د پراختیا کونکي وسیلو کې د پیوستون ډول وګورئ:
HTTP په UDP کې - د QUIC پروتوکول ښه کارول
د HTTP/3 پر ځای دا لیکل شوی http2+quic/99، مګر دا په اصل کې ورته شی دی.

نور ټیکنالوژي

  • QUIC هم ملاتړ کوي لیس سپیډ (کوم چې د HTTP/3 له لارې په خورا مینه سره له فیسبوک سره وصل شوی) او پرمختللی کډی. اپاچي دا کار نه شي کولی، مګر کار روان دی په بشپړ ډول.
  • د جنوري 21 تازه شوی د WebRTC لپاره معیاري مسوده
  • یوازې بله ورځ مایکروسافټ خلاص شو د msquic تطبیق کوډ، په کوم کې چې د IETF معیار ټولې دندې لاهم شتون نلري ، مګر دا دمخه یو لوی پرمختګ دی.

پایلې

HTTP په UDP کې - د QUIC پروتوکول ښه کارول

په QUIC کې دلچسپي بې ثباته ده، مګر وده کوي، او د دې معیاري کولو لپاره کار روان دی. د پروتوکول نوي پلي کول نږدې هره میاشت څرګندیږي ، او هر کال ډیر او ډیر پراختیا کونکي پدې باور دي چې QUIC راتلونکی دی. دا حتی ممکنه ده چې پروتوکول د TCP سټیک په راتلونکو نسخو کې شامل کړئ، پدې معنی چې ژر یا وروسته ټول انټرنیټ به ډیر باثباته او ګړندي اړیکو ته لاړ شي.

لا دمخه تاسو کولی شئ د خپل زیربنا لپاره د QUIC تعامل تنظیم کړئ یا حتی براوزرونو ته یې ورکړئ - دوی ټول پلان لري چې د پروتوکول لپاره ملاتړ اضافه کړي ، او د کینیوس سره غمجن احصایې به ډیر خوندور شي.

HTTP په UDP کې - د QUIC پروتوکول ښه کارول

سرچینه: www.habr.com

Add a comment