HTTP thar UDP - úsáid mhaith á baint as prótacal QUIC

HTTP thar UDP - úsáid mhaith á baint as prótacal QUIC

Is prótacal é QUIC (Ceangail Idirlín Thapa UDP) ar bharr an UDP a thacaíonn le gnéithe uile TCP, TLS agus HTTP/2 agus a réitíonn formhór a gcuid fadhbanna. Is minic a dtugtar prótacal nua nó “turgnamhach” air, ach tá sé i bhfad níos sine ná an chéim thurgnamhach: tá an fhorbairt ar siúl le breis agus 7 mbliana. Le linn an ama seo, níor éirigh leis an bprótacal a bheith ina chaighdeán, ach tháinig sé go forleathan fós. Mar shampla, úsáideann fathaigh mar Google agus Facebook QUIC chun trácht a bhrostú agus moilleanna i líonraí móibíleacha a laghdú, agus dhearbhaigh an IETF forc an phrótacail mar bhunús don chaighdeán HTTP/3 (cé go n-úsáideann HTTP/2 ach 44.8% suíomhanna).

Coincheap

Forbraíodh QUIC in ionad an TCP oidhreachta, a dearadh ar dtús le haghaidh líonraí sreangaithe ar bheagán caillteanas. Seachadann TCP paicéid in ord, mar sin má chailltear paicéad amháin, stoptar an scuaine iomlán (blocáil ceann-de-líne), a chuireann isteach go diúltach ar chaighdeán agus ar chobhsaíocht an cheangail. Chun caillteanais ollmhóra a sheachaint, téann líonraí ceallacha i muinín maoláin mhóra a úsáid, as a dtagann iomarcaíocht agus freagairt dhiúltach bhréagach an phrótacail (maolán). Ina theannta sin, caitheann TCP go leor ama ag bunú nasc: téann iarratais SYN/ACK agus TLS ar leithligh, a éilíonn trí thurais bhabhta seachas ceann amháin, mar a dhéanann QUIC.

HTTP thar UDP - úsáid mhaith á baint as prótacal QUIC

Ós rud é go nascann QUIC athsholáthar TCP agus cur i bhfeidhm TLS 1.3, tá gach nasc criptithe i gcónaí, agus níl sé níos éasca trácht den sórt sin a dhíchriptiú ná dá mbeadh sé ag dul thar HTTPS. Ina theannta sin, cuirtear QUIC i bhfeidhm ar leibhéal an fheidhmchláir, mar a thógfadh athsholáthar iomlán ar chruach TCP an tsíoraíocht.

In ainneoin tacaíocht don ilphléacsáil i HTTP/2, bhí fadhb na blocála ceannlíne fós ann mar gheall ar an ngá atá le paicéid a sheachadadh in ord. Cuirtear QUIC i bhfeidhm ar bharr an UDP, mar sin níl aon bhac ann i bprionsabal, agus chun paicéid a chosc ó bheith caillte go deo, déantar iad a uimhriú agus is féidir leo codanna de “chomharsana,” a bheith iontu, ag soláthar iomarcaíochta. Ina theannta sin, scoilteann QUIC an scuaine monolithic i snáitheanna iolracha le haghaidh cineálacha éagsúla iarratas laistigh d'aon nasc amháin. Mar sin, má chailltear paicéad, d’fhéadfadh fadhbanna teacht chun cinn i scuaine amháin (mar shampla, chun comhad ar leith a aistriú):

HTTP thar UDP - úsáid mhaith á baint as prótacal QUIC

Úsáid

Ar dtús, forbraíodh QUIC laistigh de Google agus rinneadh é a shaincheapadh den chuid is mó le húsáid laistigh den chuideachta. In 2013, aistríodh é chuig an IETF le haghaidh caighdeánaithe (atá fós ar siúl), agus anois is féidir le gach duine páirt a ghlacadh i bhforbairt an phrótacail trína mholadh cad atá siad ar iarraidh. Eagraíonn meitheal an IETF cruinnithe bliantúla ina bhformheastar caighdeán nua agus ina bpléitear nuálaíochtaí. Meastar gurb é cur i bhfeidhm QUIC an príomhcheann agus is ar an mbonn sin a dheimhnítear an caighdeán HTTP/3.

Go dtí seo, níl aon chaint faoi HTTP/3 a áireamh mar an príomhphrótacal, toisc nach bhfuil sé críochnaithe fós agus nach bhfuil tacaíocht beagnach tugtha dó:

HTTP thar UDP - úsáid mhaith á baint as prótacal QUIC

Ach is féidir QUIC a chur i bhfeidhm mar iompar idir an feidhmchlár agus an freastalaí, rud a rinneadh go rathúil ag Uber:

Trácht Uber ar thabhairt isteach QUIC

Chun QUIC a leabú go rathúil agus feidhmíocht feidhmchláir a fheabhsú i dtimpeallachtaí laga nascachta, chuireamar prótacal QUIC in ionad an tseanstack (HTTP/2 thar TLS/TCP). Bhaineamar úsáid as an leabharlann líonra Cronet de Tionscadail Cróimiam, ina bhfuil an bunleagan, Google den phrótacal - gQUIC. Tá an cur chun feidhme seo á fheabhsú i gcónaí freisin chun an tsonraíocht IETF is déanaí a leanúint.

Rinneamar Cronet a chomhtháthú lenár n-aipeanna Android ar dtús chun tacaíocht a chur leis do QUIC. Rinneadh an comhtháthú ar bhealach a laghdódh costais imirce a oiread agus ab fhéidir. In ionad an tseanstack líonraithe a d'úsáid an leabharlann a athsholáthar go hiomlán OKHttp, ní mór dúinn Cronet a chomhtháthú FAOI chreat OkHttp API. Tríd an gcomhtháthú a dhéanamh ar an mbealach seo, sheachaineamar athruithe ar ár nglaonna líonra (a úsáideann iarfheistithe) ag an leibhéal API.

Cosúil leis an gcur chuige maidir le feistí Android, chuireamar Cronet i bhfeidhm ar apps Uber ar iOS, ag idircheapadh trácht HTTP ón líonra APIag baint úsáide as Prótacal NSURL. Láimhseálann an t-astarraingt seo, arna sholáthar ag Fondúireacht iOS, sonraí URL prótacail-shonracha agus cinntíonn sé gur féidir linn Cronet a chomhtháthú inár bhfeidhmchláir iOS gan costais imirce suntasacha.

tógtha ó an t-aistriúchán seo earraí Uber

Ar an inneall fuair siad naisc QUIC trí Google Cloud lb, rud a Tacaíonn prótacal ó lár 2018.

Ní haon iontas é go n-oibríonn Google Cloud go hiontach leis an bprótacal forbartha ag Google, ach cad iad na roghanna eile?

Nginx

Ní fada ó shin CloudFlare Rinne mé iarracht trasnú nginx (nach dtacaíonn HTTP/3 de réir réamhshocraithe) lena uirlis Quiche. Tá an cur i bhfeidhm ar fáil mar chomhad .patch amháin, a thagann le teagasc suiteála:

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

Anseo is féidir leat do mhodúil a nascadh más gá

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

Níl fágtha ach tacaíocht HTTP/3 a chumasú

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

Ní féidir ceangal a dhéanamh trí HTTP/3 i mbrabhsálaithe rialta go fóill, ach is féidir leat é a úsáid Chrome Chanáracha agus é a rith leis an bhratach --enable-quic, téigh chuig do fhreastalaí nó, mar shampla, an suíomh quic.rocks agus féach ar an gcineál ceangail in Uirlisí Forbróirí:
HTTP thar UDP - úsáid mhaith á baint as prótacal QUIC
In ionad HTTP/3 tá sé scríofa http2+quic/99, ach go bunúsach is é an rud céanna é.

Teicneolaíochtaí eile

Conclúid

HTTP thar UDP - úsáid mhaith á baint as prótacal QUIC

Tá an spéis in QUIC éagobhsaí, ach tá sé ag dul i méid, agus tá obair ar bun chun é a chaighdeánú. Tagann feidhmiúcháin nua an phrótacail beagnach gach mí, agus gach bliain tá níos mó agus níos mó forbróirí cinnte gurb é QUIC an todhchaí. Is féidir an prótacal a chur san áireamh i leaganacha amach anseo den chruach TCP, rud a chiallaíonn go n-aistreoidh an tIdirlíon ar fad go luath nó go mall chuig naisc níos cobhsaí agus níos tapúla.

Cheana féin anois is féidir leat idirghníomhaíocht QUIC a chumrú do do bhonneagar nó fiú é a thabhairt do bhrabhsálaithe - tá siad go léir ag pleanáil tacaíocht a chur leis an bprótacal, agus éireoidh na staitisticí brónach le caniuse níos aoibhne.

HTTP thar UDP - úsáid mhaith á baint as prótacal QUIC

Foinse: will.com

Add a comment