QUIC (چټک UDP انټرنیټ اتصال) د UDP په سر کې یو پروتوکول دی چې د TCP، TLS او HTTP/2 ټولو ځانګړتیاو ملاتړ کوي او د دوی ډیری ستونزې حل کوي. دا ډیری وختونه د نوي یا "تجربوي" پروتوکول په نوم یادیږي، مګر دا د تجربې مرحله اوږده ده: پراختیا د 7 کلونو څخه زیات دوام لري. د دې وخت په جریان کې، پروتوکول د معیاري کیدو لپاره اداره نه کړه، مګر بیا هم پراخه شوه. د مثال په توګه، QUIC د ګوګل او فیسبوک په څیر لویانو لخوا د ترافیک ګړندی کولو او په ګرځنده شبکو کې ځنډ کمولو لپاره کارول کیږي ، او IETF خپل پروتوکول د HTTP/3 معیاري اساس اعلان کړ (که څه هم HTTP/2 کاروي.
مفهوم
QUIC د میراث TCP لپاره د بدیل په توګه رامینځته شوی ، کوم چې په اصل کې د ټیټ زیان لرونکي تار شبکې لپاره ډیزاین شوی و. TCP پاکټونه په ترتیب سره وړاندې کوي، نو که چیرې یوه کڅوړه ورکه شي، نو ټول قطار ودریږي (
څرنګه چې QUIC د TCP بدیل او د TLS 1.3 پلي کول یوځای کوي، ټولې اړیکې تل کوډ شوي وي، او د دې ډول ټرافیک ډیکریپټ کول د HTTPS په پرتله اسانه ندي. سربیره پردې ، QUIC د غوښتنلیک په کچه پلي کیږي ، ځکه چې د TCP سټیک بشپړ بدیل به واخلي ابدیت.
په HTTP/2 کې د ملټي پلیکسینګ ملاتړ سره سره ، د سر - آف لاین بلاک کولو ستونزه په ترتیب کې د پاکټونو تحویلولو اړتیا له امله پاتې وه. QUIC د UDP په سر کې پلي کیږي، نو دا په اصولو کې هیڅ بلاک نه لري، او د دې لپاره چې پاکټونه د تل لپاره له لاسه ورکړي، دوی شمیرل کیږي او کیدای شي د "ګاونډیانو" برخې ولري، چې بې ځایه کیږي. برسېره پردې، QUIC په یو واحد ارتباط کې د مختلفو ډولونو غوښتنو لپاره په څو تارونو کې واحد قطار ویشي. په دې توګه، که یو پاکټ ورک شي، ستونزې یوازې د یوې کتار لپاره رامینځته کیدی شي (د بیلګې په توګه، د ځانګړي فایل لیږد لپاره):
کارول
په پیل کې، QUIC په ګوګل کې رامینځته شوی او په لویه کچه د شرکت دننه کارولو لپاره مناسب و. په 2013 کې، دا د معیاري کولو لپاره IETF ته لیږدول شوی (کوم چې لاهم دوام لري)، او اوس هرڅوک کولی شي د پروتوکول په پراختیا کې د هغه څه وړاندیز کولو سره برخه واخلي چې دوی یې ورک دي. د IETF کاري ګروپ کلنۍ غونډې تنظیموي چې په ترڅ کې یې یو نوی معیار تصویب شوی او نوښتونه بحث کیږي. د QUIC دا پلي کول اصلي ګڼل کیږي او دا د هغې پر بنسټ د HTTP/3 معیار تصدیق شوی.
تر دې دمه ، د اصلي پروتوکول په توګه د HTTP/3 په شمول هیڅ خبرې شتون نلري ، ځکه چې دا لاهم پای ته نه دی رسیدلی او تقریبا ملاتړ شوی نه دی:
مګر 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 اړیکې نیولي ، کوم چې
دا د حیرانتیا خبره نده چې ګوګل کلاوډ د ګوګل پرمختللي پروتوکول سره عالي کار کوي ، مګر بدیلونه څه دي؟
نګینکس
ډیر وخت دمخه CloudFlare
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/3 پر ځای دا لیکل شوی http2+quic/99
، مګر دا په اصل کې ورته شی دی.
نور ټیکنالوژي
- QUIC هم ملاتړ کوي
لیس سپیډ (کوم چې د HTTP/3 له لارې په خورا مینه سره له فیسبوک سره وصل شوی) او پرمختللیکډی . اپاچي دا کار نه شي کولی، مګر کار روان دیپه بشپړ ډول . - د جنوري 21 تازه شوی
د WebRTC لپاره معیاري مسوده - یوازې بله ورځ مایکروسافټ خلاص شو
د msquic تطبیق کوډ ، په کوم کې چې د IETF معیار ټولې دندې لاهم شتون نلري ، مګر دا دمخه یو لوی پرمختګ دی.
پایلې
په QUIC کې دلچسپي بې ثباته ده، مګر وده کوي، او د دې معیاري کولو لپاره کار روان دی. د پروتوکول نوي پلي کول نږدې هره میاشت څرګندیږي ، او هر کال ډیر او ډیر پراختیا کونکي پدې باور دي چې QUIC راتلونکی دی. دا حتی ممکنه ده چې پروتوکول د TCP سټیک په راتلونکو نسخو کې شامل کړئ، پدې معنی چې ژر یا وروسته ټول انټرنیټ به ډیر باثباته او ګړندي اړیکو ته لاړ شي.
لا دمخه تاسو کولی شئ د خپل زیربنا لپاره د QUIC تعامل تنظیم کړئ یا حتی براوزرونو ته یې ورکړئ - دوی ټول پلان لري چې د پروتوکول لپاره ملاتړ اضافه کړي ، او د کینیوس سره غمجن احصایې به ډیر خوندور شي.
سرچینه: www.habr.com