HTTP amin'ny UDP - mampiasa tsara ny protocol QUIC

HTTP amin'ny UDP - mampiasa tsara ny protocol QUIC

QUIC (Quick UDP Internet Connections) dia protocole an-tampon'ny UDP izay manohana ny endri-javatra rehetra amin'ny TCP, TLS ary HTTP/2 ary mamaha ny ankamaroan'ny olany. Antsoina matetika hoe protocol vaovao na "andrana" izy io, saingy efa ela be talohan'ny dingana andrana: mitohy ny fampandrosoana nandritra ny 7 taona mahery. Nandritra izany fotoana izany, ny protocol dia tsy nahavita ho lasa fenitra, fa mbola niely patrana. Ohatra, ny QUIC dia ampiasain'ny goavambe toa an'i Google sy Facebook mba hanafainganana ny fifamoivoizana sy hampihenana ny fahatarana amin'ny tambajotra finday, ary ny IETF dia nanambara ny fiforonan'ny protocole ho fototry ny fenitra HTTP/3 (na dia mampiasa HTTP/2 aza) 44.8% ihany sites).

foto-kevitra

QUIC dia novolavolaina ho solon'ny TCP lova, izay natao tany am-boalohany ho an'ny tamba-jotra misy tariby kely very. Ny TCP dia mandefa fonosana araka ny filaharany, ka raha very ny fonosana iray dia mijanona ny filaharana manontolo (fanakanana loha-laharana), izay misy fiantraikany ratsy amin'ny kalitao sy ny fahamarinan'ny fifandraisana. Mba hialana amin'ny fatiantoka be dia be, ny tambajotra finday dia mampiasa buffers lehibe, izay mitarika ho amin'ny tsy fahampiana sy valiny ratsy diso amin'ny protocol (bufferbloat). Ho fanampin'izay, mandany fotoana betsaka amin'ny fametrahana fifandraisana ny TCP: SYN/ACK sy TLS no karakaraina misaraka, mitaky fihodinana telo fa tsy iray, toy ny ataon'ny QUIC.

HTTP amin'ny UDP - mampiasa tsara ny protocol QUIC

Satria ny QUIC dia manambatra ny fanoloana TCP sy ny fampiharana ny TLS 1.3, ny fifandraisana rehetra dia voarakotra foana, ary ny famafana ny fifamoivoizana toy izany dia tsy mora kokoa noho ny mandeha amin'ny HTTPS. Ho fanampin'izany, ny QUIC dia ampiharina amin'ny ambaratonga fampiharana, satria ny fanoloana tanteraka ny TCP stack dia horaisina ny mandrakizay.

Na dia eo aza ny fanohanana ny multiplexing ao amin'ny HTTP/2, ny olana amin'ny fanakanana ny lohan'ny tsipika dia nijanona teo noho ny filana ny fandefasana fonosana. Ny QUIC dia ampiharina eo an-tampon'ny UDP, noho izany dia tsy misy fanakanana amin'ny ankapobeny, ary mba hisorohana ny packet tsy ho very mandrakizay, dia isaina izy ireo ary mety misy ampahany amin'ny "mpifanolo-bodirindrina", manome ny tsy fahampiana. Ankoatr'izay, ny QUIC dia mizara ny filaharana monolithic ho kofehy maromaro ho an'ny karazana fangatahana samihafa ao anatin'ny fifandraisana tokana. Noho izany, raha very ny fonosana iray, dia mety hipoitra ihany ny olana amin'ny filaharana iray (ohatra, amin'ny famindrana rakitra manokana):

HTTP amin'ny UDP - mampiasa tsara ny protocol QUIC

ny fampiasana ny

Tamin'ny voalohany, QUIC dia novolavolaina tao amin'ny Google ary natao indrindra ho an'ny fampiasana ao amin'ny orinasa. Tamin'ny taona 2013, nafindra tany amin'ny IETF ho an'ny manara-penitra (izay mbola mitohy), ary ankehitriny dia afaka mandray anjara amin'ny fampandrosoana ny protocol ny tsirairay amin'ny fanolorana izay tsy hitany. Ny vondrona miasa IETF dia manomana fivoriana isan-taona izay ankatoavina ny fenitra vaovao sy ifanakalozan-kevitra momba ny fanavaozana. Ity fampiharana ny QUIC ity dia heverina ho lehibe indrindra ary mifototra amin'ny fanamarinana ny fenitra HTTP/3.

Hatreto, tsy misy resaka momba ny fampidirana HTTP/3 ho protocole lehibe, satria mbola tsy vita ary saika tsy tohanana:

HTTP amin'ny UDP - mampiasa tsara ny protocol QUIC

Fa ny QUIC dia azo ampiharina ho toy ny fitaterana eo amin'ny fampiharana sy ny mpizara, izay vita soa aman-tsara tao amin'ny Uber:

Ny fanehoan-kevitr'i Uber momba ny fampidirana ny QUIC

Mba hampidirana tsara ny QUIC sy hanatsara ny fampandehanana ny fampiharana amin'ny tontolon'ny fifandraisana ratsy dia nosoloinay ny protocole QUIC ny stack taloha (HTTP/2 mihoatra ny TLS/TCP). Nampiasa ny tranokalan'ny tambajotra izahay Cronet avy amin'ny Tetikasa Chromium, izay misy ny dikan-teny Google tany am-boalohany - gQUIC. Ity fampiharana ity dia hatsaraina hatrany mba hanarahana ny fepetra farany IETF.

Nampiditra Cronet tamin'ny fampiharana Android izahay voalohany mba hanampiana ny QUIC. Ny fampidirana dia natao mba hampihenana ny fandaniana amin'ny fifindra-monina araka izay azo atao. Raha tokony hanolo tanteraka ny tambazotran'ny tambajotra taloha izay nampiasa ny tranomboky OkHttp, dia nampiditra Cronet teo ambanin'ny rafitra OkHttp API. Amin'ny fanaovana ny fampidirana amin'ity fomba ity, dia nisoroka ny fiovan'ny antso an-tambajotra izahay (izay ampiasain'ny Famerenana) amin'ny ambaratonga API.

Mitovy amin'ny fomba fiasa ho an'ny fitaovana Android, nampiharinay tamin'ny fampiharana Uber amin'ny iOS ny Cronet, manakana ny fifamoivoizana HTTP avy amin'ny tambajotra. APImampiasa NSURLProtocol. Ity abstraction ity, nomen'ny iOS Foundation, dia mitantana ny angon-drakitra URL manokana momba ny protocol ary manome antoka fa afaka mampiditra Cronet ao amin'ny rindranasa iOS izahay nefa tsy misy vidim-pifindra-monina.

nalaina avy ity dikanteny ity Lahatsoratra Uber

Eo amin'ny backend dia nahazo fifandraisana QUIC tamin'ny alàlan'ny Google Cloud lb izy ireo, izay manohana ny protocol nanomboka tamin'ny tapaky ny taona 2018.

Tsy mahagaga raha miasa tsara ny Google Cloud miaraka amin'ny protocol novolavolain'ny Google, fa inona no safidy hafa?

Nginx

Tsy ela akory izay CloudFlare Niezaka niampita aho nginx (izay tsy manohana ny HTTP/3 amin'ny alàlan'ny default) miaraka amin'ny fitaovana Quiche. Ny fampiharana dia azo alaina amin'ny rakitra .patch tokana, izay miaraka amin'ny fampianarana fametrahana:

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

Eto ianao dia afaka mampifandray ny modules raha ilaina

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

Ny hany sisa tavela dia ny mamela ny fanohanana 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';
    }
}

Tsy mbola azo atao ny mifandray amin'ny HTTP/3 amin'ny navigateur mahazatra, fa azonao ampiasaina Chrome Canary ary asio azy amin'ny saina --enable-quic, mandehana any amin'ny lohamilinao na, ohatra, ny tranokala quic.rocks ary jereo ny karazana fifandraisana ao amin'ny Developer Tools:
HTTP amin'ny UDP - mampiasa tsara ny protocol QUIC
Raha tokony HTTP/3 no voasoratra http2+quic/99, fa mitovy ihany ny tena izy.

Teknolojia hafa

  • QUIC koa manohana LiteSpeed (izay mifandray amin'ny Facebook amin'ny alàlan'ny HTTP/3 miaraka amin'ny fanfafa lehibe) ary mandroso Caddy. Mbola tsy afaka manao izany i Apache, fa efa mandeha ny asa feno savily.
  • 21 Janoary nohavaozina drafitra fenitra ho an'ny WebRTC
  • Vao indray andro nisokatra i Microsoft code fampiharana msquic, izay tsy mbola misy ny fiasa rehetra avy amin'ny fenitra IETF, saingy efa fandrosoana lehibe izany.

famaranana

HTTP amin'ny UDP - mampiasa tsara ny protocol QUIC

Ny fahalianana amin'ny QUIC dia tsy miovaova, saingy mitombo, ary efa mandeha ny asa hanara-penitra azy. Ny fampiharana vaovao momba ny protocole dia miseho saika isam-bolana, ary isan-taona dia mihamaro hatrany ireo mpamorona resy lahatra fa ny QUIC no ho avy. Azo atao mihitsy aza ny mampiditra ny protocol amin'ny dikan-tsarin'ny TCP ho avy, izay midika fa na ho ela na ho haingana dia hifindra any amin'ny fifandraisana milamina sy haingana kokoa ny Internet manontolo.

Efa azonao atao izao ny manamboatra ny fifandraisana QUIC ho an'ny fotodrafitrasanao na manome izany ho an'ny navigateur - samy mikasa ny hanampy ny protocol izy rehetra, ary ny antontan'isa mampalahelo miaraka amin'ny caniuse dia ho falifaly kokoa.

HTTP amin'ny UDP - mampiasa tsara ny protocol QUIC

Source: www.habr.com

Add a comment