QUIC (Quick UDP انٽرنيٽ ڪنيڪشن) UDP جي مٿان ھڪڙو پروٽوڪول آھي جيڪو TCP، TLS ۽ HTTP/2 جي سڀني خصوصيتن کي سپورٽ ڪري ٿو ۽ انھن جا گھڻا مسئلا حل ڪري ٿو. اهو اڪثر ڪري هڪ نئون يا "تجرباتي" پروٽوڪول سڏيو ويندو آهي، پر اهو ڊگهو آهي تجرباتي اسٽيج کان ٻاهر آهي: ترقي جاري آهي 7 سالن کان وڌيڪ. هن عرصي دوران، پروٽوڪول هڪ معياري ٿيڻ جو انتظام نه ڪيو، پر اڃا تائين وسيع ٿي ويو. مثال طور، QUIC استعمال ڪيو ويندو آهي گوگل ۽ فيس بڪ جهڙوڪ گيانٽس پاران ٽرئفڪ کي تيز ڪرڻ ۽ موبائيل نيٽ ورڪن ۾ دير کي گهٽائڻ لاءِ، ۽ IETF پنهنجي پروٽوڪول فورڪ کي HTTP/3 معيار جو بنياد قرار ڏنو (جيتوڻيڪ HTTP/2 استعمال ڪري ٿو. صرف 44.8٪ سائيٽون).
تصور
QUIC کي ترقي يافته TCP جي متبادل طور ٺاھيو ويو، جيڪو اصل ۾ گھٽ نقصان واري وائرڊ نيٽ ورڪن لاءِ ٺاھيو ويو ھو. TCP ترتيب سان پيڪيٽ فراهم ڪري ٿو، تنهنڪري جيڪڏهن هڪ پيڪٽ گم ٿي وڃي ته پوري قطار بند ٿي وڃي ٿي (هيڊ آف لائن بلاڪنگ)، جيڪو منفي طور تي ڪنيڪشن جي معيار ۽ استحڪام کي متاثر ڪري ٿو. وڏي نقصان کان بچڻ لاءِ، سيلولر نيٽ ورڪ استعمال ڪن ٿا وڏن بفرن کي، جنهن جي نتيجي ۾ پروٽوڪول جي بيڪار ۽ غلط منفي ردعمل جو سبب بڻجي ٿو.بفر بلوٽ). ان کان علاوه، TCP هڪ ڪنيڪشن قائم ڪرڻ ۾ گهڻو وقت خرچ ڪري ٿو: SYN/ACK ۽ TLS درخواستن تي الڳ الڳ عمل ڪيو وڃي ٿو، هڪ جي بدران ٽن گول سفرن جي ضرورت آهي، جيئن QUIC ڪندو آهي.
جيئن ته 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 ڪاميابيءَ سان شامل ڪرڻ ۽ خراب ڪنيڪشن واري ماحول ۾ ايپليڪيشن جي ڪارڪردگي کي بهتر ڪرڻ لاءِ، اسان پراڻي اسٽيڪ (HTTP/2 over TLS/TCP) کي QUIC پروٽوڪول سان تبديل ڪيو. اسان نيٽ ورڪ لائبريري استعمال ڪيو ڪرونيٽ کان Chromium پروجيڪٽس، جنهن ۾ شامل آهي اصل، گوگل ورزن جو پروٽوڪول - gQUIC. اهو عمل پڻ مسلسل بهتر ڪيو پيو وڃي IETF جي تازي وضاحتن جي پيروي ڪرڻ لاءِ.
اسان پهريون ڀيرو ڪرنٽ کي اسان جي Android ايپس ۾ شامل ڪيو QUIC لاءِ سپورٽ شامل ڪرڻ لاءِ. انضمام اهڙي طريقي سان ڪيو ويو جيئن ممڪن حد تائين لڏپلاڻ جي خرچن کي گهٽايو وڃي. پراڻي نيٽ ورڪنگ اسٽيڪ کي مڪمل طور تي تبديل ڪرڻ جي بدران جيڪا لائبريري استعمال ڪئي اوڪي ايڇ ٽي پي، اسان ڪرونيٽ کي OkHttp API فريم ورڪ جي تحت ضم ڪيو آهي. انضمام کي هن طريقي سان ڪندي، اسان اسان جي نيٽ ورڪ ڪالن ۾ تبديلين کان پاسو ڪيو (جيڪي استعمال ڪيا ويندا آهن ريٽروف) API سطح تي.
ساڳي طرح Android ڊوائيسز لاءِ، اسان ڪرونيٽ کي iOS تي Uber ايپس ۾ لاڳو ڪيو، نيٽ ورڪ کان HTTP ٽرئفڪ کي روڪيندي APIاستعمال ڪندي NSURL پروٽوڪول. هي خلاصو، iOS فائونڊيشن پاران مهيا ڪيل، پروٽوڪول مخصوص URL ڊيٽا کي سنڀاليندو آهي ۽ انهي ڳالهه کي يقيني بڻائي ٿو ته اسان Cronet کي اسان جي iOS ايپليڪيشنن ۾ ضم ڪري سگهون ٿا بغير اهم لڏپلاڻ جي خرچن جي.
پس منظر تي انهن پڪڙي ورتو QUIC ڪنيڪشن گوگل Cloud lb ذريعي، جيڪو پروٽوڪول کي سپورٽ ڪري ٿو 2018 جي وچ کان وٺي.
اها ڪا تعجب جي ڳالهه ناهي ته گوگل ڪلائوڊ گوگل جي ترقي يافته پروٽوڪول سان وڏو ڪم ڪري ٿو، پر متبادل ڇا آهن؟
نينڪس
گهڻو وقت اڳ نه CloudFlare مون پار ڪرڻ جي ڪوشش ڪئي nginx (جيڪو ڊفالٽ طور HTTP/3 کي سپورٽ نٿو ڪري) ان جي Quiche اوزار سان. عمل درآمد هڪ واحد .patch فائل جي طور تي دستياب آهي، جيڪو انسٽاليشن ٽيوٽوريل سان گڏ اچي ٿو:
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 ذريعي باقاعده برائوزرن ۾ ڳنڍڻ، پر توهان استعمال ڪري سگهو ٿا Chrome ڪيريئر ۽ ان کي پرچم سان هلائي --enable-quicتوھان جي سرور ڏانھن وڃو يا، مثال طور، quic.rocks سائيٽ ۽ ڊولپر ٽولز ۾ ڪنيڪشن جو قسم ڏسو:
HTTP/3 جي بدران اهو لکيل آهي http2+quic/99، پر اهو بنيادي طور تي ساڳيو آهي.
بس ٻئي ڏينهن Microsoft کوليو msquic لاڳو ڪرڻ جو ڪوڊ، جنهن ۾ IETF معيار جا سڀئي ڪم اڃا تائين موجود نه آهن، پر اهو اڳ ۾ ئي هڪ وڏي پيش رفت آهي.
ٿڪل
QUIC ۾ دلچسپي غير مستحڪم آهي، پر وڌندڙ، ۽ ڪم جاري آهي ان کي معياري ڪرڻ لاء. پروٽوڪول جا نوان لاڳو ٿيڻ لڳ ڀڳ هر مهيني ظاهر ٿيندا آهن، ۽ هر سال وڌيڪ ۽ وڌيڪ ڊولپرز کي يقين آهي ته QUIC مستقبل آهي. اهو پڻ ممڪن آهي ته پروٽوڪول کي TCP اسٽيڪ جي مستقبل جي نسخن ۾ شامل ڪيو وڃي، جنهن جو مطلب آهي ته جلد يا بعد ۾ سڄو انٽرنيٽ وڌيڪ مستحڪم ۽ تيز ڪنيڪشن ڏانهن منتقل ٿي ويندو.
اڳي ئي هاڻي توهان پنهنجي انفراسٽرڪچر لاءِ QUIC رابطي کي ترتيب ڏئي سگهو ٿا يا ان کي برائوزرن کي به ڏئي سگهو ٿا - اهي سڀ پروٽوڪول لاءِ سپورٽ شامل ڪرڻ جي منصوبابندي ڪري رهيا آهن، ۽ ڪينيئس سان افسوسناڪ انگ اکر وڌيڪ خوشگوار ٿي ويندا.