HTTP sou UDP - fè bon itilizasyon pwotokòl QUIC la

HTTP sou UDP - fè bon itilizasyon pwotokòl QUIC la

QUIC (Quick UDP Internet Connections) se yon pwotokòl sou tèt UDP ki sipòte tout karakteristik TCP, TLS ak HTTP/2 epi rezoud pifò pwoblèm yo. Li souvan rele yon nouvo oswa "eksperimantal" pwotokòl, men li te depase etap eksperimantal la depi lontan: devlopman te kontinye pou plis pase 7 ane. Pandan tan sa a, pwotokòl la pa t 'jere yo vin yon estanda, men yo toujou te vin gaye toupatou. Pou egzanp, gran tankou Google ak Facebook itilize QUIC pou akselere trafik ak diminye reta nan rezo mobil yo, e IETF te deklare pwotokòl li yo fouchèt baz pou estanda HTTP/3 (menm si HTTP/2 itilize sèlman 44.8% sit).

Konsèp

QUIC te devlope kòm yon ranplasman pou eritaj TCP a, ki te okòmansman fèt pou rezo filè ki pa gen anpil pèt. TCP delivre pake yo nan lòd, kidonk si yon pake pèdi, tout keu la sispann (tèt-de-liy bloke), ki afekte negatif bon jan kalite a ak estabilite koneksyon an. Pou evite pèt masiv, rezo selilè yo itilize gwo tanpon, ki an vire mennen nan redondance ak fo repons negatif nan pwotokòl la (bufferbloat). Anplis de sa, TCP pase anpil tan pou etabli yon koneksyon: demann SYN/ACK ak TLS yo trete separeman, sa ki mande twa ale/retounen olye pou yo youn, jan QUIC fè sa.

HTTP sou UDP - fè bon itilizasyon pwotokòl QUIC la

Depi QUIC konbine yon ranplasman TCP ak yon aplikasyon TLS 1.3, tout koneksyon yo toujou chiffres, epi dechifre trafik sa a pa pi fasil pase si li ta ale sou HTTPS. Anplis de sa, QUIC aplike nan nivo aplikasyon an, kòm yon ranplasman konplè nan pil TCP a ta pran letènite.

Malgre sipò pou multiplexing nan HTTP / 2, pwoblèm nan nan tèt-of-liy bloke rete la akòz bezwen nan delivre pake nan lòd. QUIC aplike sou tèt UDP, kidonk li pa gen okenn bloke nan prensip, epi pou anpeche pake yo pèdi pou tout tan, yo nimewote epi yo ka genyen pati nan "vwazen," bay redondance. Anplis de sa, QUIC divize keu monolitik la nan plizyè fil pou diferan kalite demann nan yon sèl koneksyon. Kidonk, si yon pake pèdi, pwoblèm yo ka parèt sèlman pou yon sèl keu (pa egzanp, pou transfere yon dosye espesifik):

HTTP sou UDP - fè bon itilizasyon pwotokòl QUIC la

Sèvi ak

Okòmansman, QUIC te devlope nan Google e li te lajman pwepare pou itilize nan konpayi an. An 2013, li te transfere nan IETF pou normalisation (ki toujou ap kontinye), e kounye a, tout moun ka patisipe nan devlopman pwotokòl la lè yo pwopoze sa yo manke. Gwoup travay IETF la òganize reyinyon anyèl kote yo apwouve yon nouvo estanda epi diskite sou inovasyon yo. Aplikasyon sa a nan QUIC konsidere kòm youn nan prensipal epi li se sou baz li yo ki estanda HTTP/3 sètifye.

Jiskaprezan, pa gen okenn pale sou enkli HTTP/3 kòm pwotokòl prensipal la, paske li poko fini epi li prèske pa sipòte:

HTTP sou UDP - fè bon itilizasyon pwotokòl QUIC la

Men, QUIC ka aplike kòm yon transpò ant aplikasyon an ak sèvè a, ki te fè avèk siksè nan Uber:

Kòmantè Uber sou entwodiksyon QUIC

Pou byen entegre QUIC ak amelyore pèfòmans aplikasyon an nan anviwònman koneksyon pòv yo, nou ranplase ansyen pil (HTTP/2 sou TLS/TCP) ak pwotokòl QUIC la. Nou itilize bibliyotèk rezo a Cronet nan Chromium Pwojè, ki gen vèsyon orijinal Google pwotokòl la - gQUIC. Aplikasyon sa a tou toujou ap amelyore pou swiv dènye spesifikasyon IETF la.

Nou premye entegre Cronet nan aplikasyon android nou yo pou ajoute sipò pou QUIC. Entegrasyon te fèt nan yon fason pou diminye depans migrasyon yo otank posib. Olye pou yo konplètman ranplase ansyen pile rezo ki te itilize bibliyotèk la OkHttp, nou te entegre Cronet ANBA fondasyon API OkHttp. Lè nou fè entegrasyon an nan fason sa a, nou evite chanjman nan apèl rezo nou yo (ki itilize pa Renovasyon) nan nivo API.

Menm jan ak apwòch la pou aparèy android, nou aplike Cronet nan aplikasyon Uber sou iOS, entèsepte trafik HTTP soti nan rezo a. APIlè l sèvi avèk NSURLProtocol. Abstraksyon sa a, ki ofri pa iOS Fondasyon an, okipe done URL espesifik pwotokòl epi asire ke nou ka entegre Cronet nan aplikasyon iOS nou yo san yo pa depans enpòtan pou migrasyon.

pran nan men tradiksyon sa a Atik Uber

Sou backend la yo kenbe koneksyon QUIC atravè Google Cloud lb, ki sipòte pwotokòl depi mitan 2018.

Li pa etone ke Google Cloud travay byen ak pwotokòl Google devlope a, men ki altènativ yo?

Nginx

Pa gen lontan CloudFlare Mwen te eseye travèse nginx (ki pa sipòte HTTP/3 pa default) ak zouti Quiche li yo. Aplikasyon an disponib kòm yon sèl fichye .patch, ki vini ak yon leson patikilye enstalasyon:

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

Isit la ou ka konekte modil ou yo si sa nesesè

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

Tout sa ki rete se pèmèt sipò 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';
    }
}

Li poko posib pou konekte via HTTP/3 nan navigatè regilye yo, men ou ka itilize Chrome Canary epi kouri li ak drapo a --enable-quic, ale nan sèvè ou oswa, pou egzanp, sit la quic.rocks epi gade nan kalite koneksyon an nan Zouti Developer:
HTTP sou UDP - fè bon itilizasyon pwotokòl QUIC la
Olye de HTTP/3 li ekri http2+quic/99, men se esansyèlman menm bagay la.

Lòt teknoloji

Konklizyon

HTTP sou UDP - fè bon itilizasyon pwotokòl QUIC la

Enterè nan QUIC se enstab, men ap grandi, epi travay ap sou pye pou estandadize li. Nouvo aplikasyon pwotokòl la parèt prèske chak mwa, epi chak ane pi plis ak plis devlopè yo konvenki ke QUIC se tan kap vini an. Li menm posib pou mete pwotokòl la nan pwochen vèsyon pile TCP a, ki vle di ke pi bonè oswa pita tout entènèt la ap deplase nan koneksyon ki pi estab ak pi vit.

Deja kounye a ou ka configured entèraksyon QUIC pou enfrastrikti ou oswa menm bay li nan navigatè - yo tout ap planifye ajoute sipò pou pwotokòl la, ak estatistik yo tris ak caniuse ap vin pi lajwa.

HTTP sou UDP - fè bon itilizasyon pwotokòl QUIC la

Sous: www.habr.com

Add nouvo kòmantè