HTTP i luga ole UDP - fa'aoga lelei ole QUIC protocol

HTTP i luga ole UDP - fa'aoga lelei ole QUIC protocol

QUIC (Quick UDP Internet Connections) o se faʻasalalauga i luga o le UDP e lagolagoina uma foliga o TCP, TLS ma HTTP / 2 ma foia le tele o latou faʻafitauli. E masani ona taʻua o se faʻataʻitaʻiga fou poʻo se "faʻataʻitaʻiga", ae ua leva ona ola i le faʻataʻitaʻiga faʻataʻitaʻiga: atinaʻe ua faʻaauau mo le sili atu i le 7 tausaga. I le taimi lea, o le protocol e leʻi mafai ona avea ma faʻataʻitaʻiga, ae na faʻalauteleina. Mo se faʻataʻitaʻiga, o le QUIC o loʻo faʻaaogaina e tagata tetele e pei o Google ma Facebook e faʻavavevave ai fefaʻatauaiga ma faʻaitiitia le tuai i luga o fesoʻotaʻiga feaveaʻi, ma na faʻaalia e le IETF lona tui o le protocol le faʻavae mo le HTTP / 3 standard (e ui lava e faʻaaoga e HTTP / 2). na'o le 44.8% nofoaga).

Manatu

QUIC na fausia e fai ma sui o le TCP talatuu, lea na muai fuafuaina mo fesoʻotaʻiga uaea maualalo maualalo. TCP e tu'uina atu pepa i le faasologa, o lea afai e tasi le afifi e leiloa, o le laina atoa e taofi (polokaina ulu-o-laina), lea e afaina ai le lelei ma le mautu o le sootaga. Ina ia aloese mai le tele o gau, o fesoʻotaʻiga feaveaʻi e faʻaogaina le faʻaogaina o paʻu tetele, lea e oʻo atu ai i le toe faʻaaogaina ma le tali sese o le protocol (fa'afefete). E le gata i lea, o le TCP e faʻaalu le tele o le taimi e faʻavae ai se fesoʻotaʻiga: SYN / ACK ma TLS talosaga e faʻagasolo ese, e manaʻomia ai ni taʻavale se tolu nai lo le tasi, e pei ona faia e QUIC.

HTTP i luga ole UDP - fa'aoga lelei ole QUIC protocol

Talu ai ua tu'ufa'atasia e le QUIC se sui o le TCP ma le fa'atinoina o le TLS 1.3, o feso'ota'iga uma e fa'ailogaina i taimi uma, ma o le fa'amamaina o ia fefa'ataua'iga e le faigofie nai lo le alu i luga ole HTTPS. E le gata i lea, o le QUIC o loʻo faʻatinoina i le tulaga o talosaga, ona o le sui atoatoa o le TCP stack e manaʻomia e faavavau.

E ui lava i le lagolago mo le multiplexing i le HTTP / 2, o le faʻafitauli o le poloka o le ulu-o-laina na tumau pea iina ona o le manaʻoga e tuʻuina atu pusa i le faasologa. QUIC o loʻo faʻatinoina i luga o le UDP, o lea e leai se poloka i le mataupu faavae, ma e puipuia ai pusa mai le leiloa e faʻavavau, e faʻanumeraina ma e mafai ona aofia ai vaega o "tuaoi," tuʻuina atu le toe faʻaaogaina. E le gata i lea, QUIC vaevae le laina monolithic i le tele o filo mo ituaiga eseese o talosaga i totonu o se fesoʻotaʻiga e tasi. O lea la, afai e leiloa se afifi, e ono tulai mai faafitauli mo na o le tasi le laina (mo se faataitaiga, mo le fesiitaiga o se faila patino):

HTTP i luga ole UDP - fa'aoga lelei ole QUIC protocol

Faaaoga

I le taimi muamua, QUIC na atiae i totonu o Google ma sa tele na faʻatulagaina mo le faʻaaogaina i totonu o le kamupani. I le 2013, na tuʻuina atu i le IETF mo faʻasalalauga (lea o loʻo faʻaauau pea), ma o lea ua mafai e tagata uma ona auai i le atinaʻeina o le feagaiga e ala i le tuʻuina atu o mea o loʻo latou misia. O le vaega galue IETF latou te fa'atulagaina fonotaga fa'aletausaga e fa'amaonia ai se tulaga fou ma fa'atalanoaina ai mea fou. O lenei faʻatinoga o le QUIC ua manatu o le autu autu ma o loʻo i luga o lona faʻavae e faʻamaonia ai le tulaga HTTP / 3.

E oʻo mai i le taimi nei, e leai se tala e uiga i le aofia ai o le HTTP / 3 o le faʻatonuga autu, aua e leʻi maeʻa ma e toetoe lava a le lagolagoina:

HTTP i luga ole UDP - fa'aoga lelei ole QUIC protocol

Ae o le QUIC e mafai ona faʻatinoina o se felauaiga i le va o le talosaga ma le 'auʻaunaga, lea na faia ma le manuia i Uber:

Fa'amatalaga a Uber ile fa'aofiina ole QUIC

Ina ia manuia le faʻapipiʻiina o le QUIC ma faʻaleleia le faʻatinoga o le faʻaogaina i siosiomaga le lelei o fesoʻotaʻiga, na matou suia le faaputuga tuai (HTTP/2 i luga o TLS/TCP) i le QUIC protocol. Sa matou fa'aogaina le faletusi feso'ota'iga Cronet mai Poloketi Chromium, lea o lo'o iai le ulua'i, Google version of the protocol - gQUIC. O lenei fa'atinoga o lo'o fa'aleleia pea lava pea ina ia mulimulita'i i fa'amatalaga lata mai a le IETF.

Na matou tu'ufa'atasia muamua le Cronet i a matou polokalama Android e fa'aopoopo le lagolago mo QUIC. Sa fa'atinoina le tu'ufa'atasiga i se auala e fa'aitiitia ai tau o femalaga'iga i le tele e mafai ai. Nai lo le suia atoa o le upega o upegatafa'ilagi tuai na fa'aogaina le faletusi OkHttp, ua matou tuʻufaʻatasia Cronet I LALO o le OkHttp API faʻavae. I le faia o le tuʻufaʻatasia i lenei auala, matou te aloese mai suiga i a matou fesoʻotaʻiga telefoni (lea e faʻaaogaina e Faʻafoʻi) i le tulaga API.

E tutusa ma le auala mo masini Android, na matou faʻatinoina Cronet i Uber apps i luga o iOS, faʻalavelaveina fefaʻatauaʻiga HTTP mai fesoʻotaiga. APIfaʻaaogaina NSURLProtocol. O lenei va'aiga, saunia e le iOS Foundation, e fa'atautaia fa'amaumauga URL fa'apitoa ma fa'amautinoa e mafai ona matou tu'ufa'atasia le Cronet i totonu oa tatou talosaga iOS e aunoa ma se tau tele o femalagaiga.

ave mai lenei faaliliuga Uber tala

I le pito i tua na latou maua ai fesoʻotaʻiga QUIC e ala i Google Cloud lb, lea lagolago protocol talu mai le ogatotonu o le 2018.

E le o se mea e ofo ai le Google Cloud e galue lelei ma le Google-developed protocol, ae o a isi mea?

Nginx

E leʻi leva atu CloudFlare Sa ou taumafai e sopoia nginx (lea e le lagolagoina HTTP / 3 ona o le faaletonu) ma lana meafaigaluega Quiche. O loʻo avanoa le faʻatinoga o se faila .patch e tasi, lea e sau ma se faʻatonuga faʻapipiʻi:

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

O iinei e mafai ona e faʻafesoʻotaʻi au modules pe a manaʻomia

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

Pau lava le mea o loʻo totoe o le mafai lea o le HTTP/3 lagolago

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';
    }
}

E leʻi mafai ona faʻafesoʻotaʻi e ala i le HTTP/3 i suʻesuʻega masani, ae mafai ona e faʻaogaina Chrome Canary ma tamomoe i le fu'a --enable-quic, alu i lau 'auʻaunaga poʻo, mo se faʻataʻitaʻiga, le quic.rocks site ma vaʻai i le ituaiga fesoʻotaʻiga i Developer Tools:
HTTP i luga ole UDP - fa'aoga lelei ole QUIC protocol
Nai lo le HTTP / 3 ua tusia http2+quic/99, ae o le mea moni lava e tasi.

Isi tekinolosi

  • QUIC lagolago foi Lelei Saʻo (lea e fesoʻotaʻi i le Facebook e ala i le HTTP/3 ma le fiafia tele) ma le alualu i luma Caddy. E le mafai e Apache ona fai, ae o loʻo faʻagasolo galuega ta'amilosaga atoa.
  • Ianuari 21 faafou ata faataitai mo WebRTC
  • Na'o le isi aso na tatala ai Microsoft msquic faʻatinoga code, lea e le'o avanoa uma galuega mai le tulaga IETF, ae o lenei ua avea ma se fa'alavelave tele.

iʻuga

HTTP i luga ole UDP - fa'aoga lelei ole QUIC protocol

O le fiafia i le QUIC e le mautu, ae o loʻo faʻatupulaia, ma o loʻo faʻagasolo galuega e faʻavasegaina. O faʻatinoga fou o le faʻataʻitaʻiga e foliga mai e toetoe o masina uma, ma o tausaga taʻitasi e sili atu ma sili atu le au atinaʻe e talitonuina o le QUIC o le lumanaʻi. E mafai foʻi ona faʻapipiʻi le faʻasalalauga i le lumanaʻi lomiga o le TCP stack, o lona uiga e le o toe mamao pe mulimuli ane o le a alu le Initaneti atoa i fesoʻotaʻiga mautu ma vave.

O lea ua mafai nei ona e fa'atulagaina fegalegaleaiga QUIC mo au atina'e po'o le tu'uina atu foi i tagata su'esu'e - o lo'o latou fuafua uma e fa'aopoopo le lagolago mo le protocol, ma o fa'amaumauga fa'anoanoa fa'atasi ma caniuse o le a sili atu le fiafia.

HTTP i luga ole UDP - fa'aoga lelei ole QUIC protocol

puna: www.habr.com

Faaopoopo i ai se faamatalaga