QUIC (ඉක්මන් UDP අන්තර්ජාල සම්බන්ධතා) යනු TCP, TLS සහ HTTP/2 හි සියලුම විශේෂාංග සඳහා සහය දක්වන සහ ඔවුන්ගේ ගැටළු බොහොමයක් විසඳන UDP මත ඇති ප්රොටෝකෝලයකි. එය බොහෝ විට නව හෝ "පර්යේෂණාත්මක" ප්රොටෝකෝලයක් ලෙස හැඳින්වේ, නමුත් එය පර්යේෂණාත්මක අදියර දිගු කලක් ඉක්මවා ඇත: සංවර්ධනය වසර 7 කට වඩා වැඩි කාලයක් පවතී. මෙම කාලය තුළ, ප්රොටෝකෝලය සම්මතයක් බවට පත් කිරීමට සමත් නොවූ නමුත් තවමත් පුළුල් ලෙස පැතිර ගියේය. උදාහරණයක් ලෙස, ගමනාගමනය වේගවත් කිරීමට සහ ජංගම ජාල වල ප්රමාදයන් අඩු කිරීමට Google සහ Facebook වැනි දැවැන්තයින් විසින් QUIC භාවිතා කරන අතර, IETF විසින් HTTP/3 ප්රමිතිය සඳහා (HTTP/2 භාවිතා කළත්) එහි ප්රොටෝකෝලයේ දෙබල ප්රකාශ කළේය.
සංකල්පය
QUIC නිපදවන ලද්දේ පැරණි TCP වෙනුවට ආදේශකයක් ලෙස වන අතර එය මුලින් නිර්මාණය කර ඇත්තේ අඩු පාඩු සහිත රැහැන්ගත ජාල සඳහාය. TCP පිළිවෙළට පැකට් ලබා දෙයි, එබැවින් එක් පැකට්ටුවක් නැති වුවහොත්, සම්පූර්ණ පෝලිම නතර වේ (
QUIC TCP ප්රතිස්ථාපනයක් සහ TLS 1.3 ක්රියාත්මක කිරීමක් ඒකාබද්ධ කරන බැවින්, සියලුම සම්බන්ධතා සෑම විටම සංකේතනය කර ඇති අතර, එවැනි ගමනාගමනය විකේතනය කිරීම HTTPS හරහා යනවාට වඩා පහසු නොවේ. ඊට අමතරව, TCP තොගය සම්පූර්ණයෙන් ප්රතිස්ථාපනය කිරීම සඳහා QUIC යෙදුම් මට්ටමින් ක්රියාත්මක වේ සදහටම.
HTTP/2 හි මල්ටිප්ලෙක්සිං සඳහා සහය තිබියදීත්, පැකට් පිළිවෙලට බෙදා හැරීමේ අවශ්යතාවය හේතුවෙන් ප්රධාන මාර්ගය අවහිර කිරීමේ ගැටලුව පවතී. QUIC UDP මත ක්රියාත්මක වේ, එබැවින් එයට ප්රතිපත්තිමය වශයෙන් අවහිරයක් නොමැති අතර, පැකට් සදහටම නැතිවීම වැළැක්වීම සඳහා, ඒවා අංකනය කර ඇති අතර අතිරික්තය සපයන "අසල්වැසියන්ගේ" කොටස් අඩංගු විය හැක. මීට අමතරව, QUIC විසින් තනි සම්බන්ධතාවයක් තුළ විවිධ ආකාරයේ ඉල්ලීම් සඳහා මොනොලිතික් පෝලිම බහු නූල් වලට බෙදයි. මේ අනුව, පැකට්ටුවක් නැති වුවහොත්, ගැටළු මතු විය හැක්කේ එක් පෝලිමක් සඳහා පමණි (උදාහරණයක් ලෙස, විශේෂිත ගොනුවක් මාරු කිරීම සඳහා):
භාවිතා කරන්න
මුලදී, QUIC Google තුළ සංවර්ධනය කරන ලද අතර එය බොහෝ දුරට සමාගම තුළ භාවිතය සඳහා සකස් කර ඇත. 2013 දී, එය ප්රමිතිකරණය සඳහා IETF වෙත මාරු කරන ලදී (එය තවමත් සිදුවෙමින් පවතී), දැන් සෑම කෙනෙකුටම අතුරුදහන් වූ දේ යෝජනා කිරීමෙන් ප්රොටෝකෝලය සංවර්ධනය කිරීමට සහභාගී විය හැකිය. IETF ක්රියාකාරී කණ්ඩායම වාර්ෂික රැස්වීම් සංවිධානය කරන අතර එහිදී නව ප්රමිතියක් අනුමත කර නවෝත්පාදන සාකච්ඡා කෙරේ. QUIC හි මෙම ක්රියාත්මක කිරීම ප්රධාන එකක් ලෙස සලකනු ලබන අතර HTTP/3 ප්රමිතිය සහතික කර ඇත්තේ එහි පදනම මතය.
මෙතෙක්, HTTP/3 ප්රධාන ප්රොටෝකෝලය ලෙස ඇතුළත් කිරීම ගැන කතා කර නැත, මන්ද එය තවමත් අවසන් වී නැති අතර සහය නොදක්වයි:
නමුත් Uber හි සාර්ථකව සිදු කරන ලද යෙදුම සහ සේවාදායකය අතර ප්රවාහනයක් ලෙස QUIC ක්රියාත්මක කළ හැක:
QUIC හඳුන්වාදීම පිළිබඳ Uber හි අදහස
QUIC සාර්ථකව කාවැද්දීමට සහ දුර්වල සම්බන්ධතා පරිසරයන් තුළ යෙදුම් ක්රියාකාරිත්වය වැඩි දියුණු කිරීමට, අපි පැරණි තොගය (TLS/TCP හරහා HTTP/2) QUIC ප්රොටෝකෝලය සමඟ ප්රතිස්ථාපනය කළෙමු. අපි ජාල පුස්තකාලය භාවිතා කළා
ක්රොනෙට් සිටChromium ව්යාපෘති , ප්රොටෝකෝලයේ මුල්, ගූගල් අනුවාදය අඩංගු වේ - gQUIC. නවතම IETF පිරිවිතරයන් අනුගමනය කිරීම සඳහා මෙම ක්රියාත්මක කිරීම ද නිරන්තරයෙන් වැඩිදියුණු කරනු ලැබේ.QUIC සඳහා සහය එක් කිරීමට අපි මුලින්ම Cronet අපගේ Android යෙදුම් වෙත ඒකාබද්ධ කළෙමු. සංක්රමණ වියදම් හැකිතාක් අඩු වන ආකාරයට ඒකාබද්ධ කිරීම සිදු කරන ලදී. පුස්තකාලය භාවිතා කළ පැරණි ජාලකරණ තොගය සම්පූර්ණයෙන්ම ප්රතිස්ථාපනය කරනවා වෙනුවට
OkHttp , අපි OkHttp API රාමුව යටතේ Cronet ඒකාබද්ධ කර ඇත. මේ ආකාරයෙන් ඒකාබද්ධ කිරීම සිදු කිරීමෙන්, අපි අපගේ ජාල ඇමතුම්වල වෙනස්කම් වළක්වා ගත්තෙමු (ඒවා භාවිතා කරන්නේනැවත සකස් කිරීම ) API මට්ටමින්.Android උපාංග සඳහා වන ප්රවේශයට සමානව, අපි ජාලයෙන් HTTP ගමනාගමනයට බාධා කරමින් iOS මත Uber යෙදුම් වෙත Cronet ක්රියාත්මක කළෙමු
API භාවිතා කිරීමNSURLProtocol . iOS පදනම විසින් සපයන ලද මෙම සාරාංශය, ප්රොටෝකෝල-විශේෂිත URL දත්ත හසුරුවන අතර සැලකිය යුතු සංක්රමණ පිරිවැයකින් තොරව අපගේ iOS යෙදුම් වෙත Cronet ඒකාබද්ධ කළ හැකි බව සහතික කරයි.
වෙතින් ගන්නා ලදී
පසු අන්තයේ ඔවුන් Google Cloud lb හරහා QUIC සම්බන්ධතා අල්ලා ගත්හ
Google-සංවර්ධිත ප්රොටෝකෝලය සමඟ Google Cloud විශිෂ්ට ලෙස ක්රියා කිරීම පුදුමයක් නොවේ, නමුත් විකල්ප මොනවාද?
Nginx
බොහෝ කලකට පෙර 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 හරහා Facebook වෙත සම්බන්ධ වූ) සහ ප්රගතිශීලීකැඩී . Apache ට තවම එය කළ නොහැකි නමුත් වැඩ සිදුවෙමින් පවතීපූර්ණ පැද්දීම . - ජනවාරි 21 යාවත්කාලීන කරන ලදී
WebRTC සඳහා සම්මත කෙටුම්පත - පසුගිය දිනක මයික්රොසොෆ්ට් විවෘත විය
msquic ක්රියාත්මක කිරීමේ කේතය , IETF ප්රමිතියෙන් සියලුම කාර්යයන් තවමත් ලබා ගත නොහැකි නමුත් මෙය දැනටමත් විශාල ඉදිරි ගමනකි.
නිගමනය
QUIC සඳහා ඇති උනන්දුව අස්ථායී, නමුත් වර්ධනය වන අතර එය ප්රමිතිකරණය කිරීමට කටයුතු කරමින් පවතී. ප්රොටෝකෝලයේ නව ක්රියාත්මක කිරීම් සෑම මසකම පාහේ දිස්වන අතර සෑම වසරකම වැඩි වැඩියෙන් සංවර්ධකයින් QUIC යනු අනාගතය බව ඒත්තු ගන්වයි. TCP තොගයේ අනාගත අනුවාදවල ප්රොටෝකෝලය ඇතුළත් කිරීමට පවා හැකිය, එයින් අදහස් කරන්නේ ඉක්මනින් හෝ පසුව මුළු අන්තර්ජාලයම වඩාත් ස්ථාවර සහ වේගවත් සම්බන්ධතා වෙත ගමන් කරන බවයි.
දැනටමත් දැන් ඔබට ඔබේ යටිතල පහසුකම් සඳහා QUIC අන්තර්ක්රියා වින්යාස කිරීමට හෝ බ්රවුසරවලට පවා ලබා දීමට හැකිය - ඔවුන් සියල්ලෝම ප්රොටෝකෝලය සඳහා සහය එක් කිරීමට සැලසුම් කරමින් සිටින අතර, කැනියුස් සමඟ දුක්ඛිත සංඛ්යාලේඛන වඩාත් ප්රීතිමත් වනු ඇත.
මූලාශ්රය: www.habr.com