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.
Ó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ú):
Ú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ó:
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.
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í:
In ionad HTTP/3 tá sé scríofa http2+quic/99, ach go bunúsach is é an rud céanna é.
Teicneolaíochtaí eile
Tacaíonn QUIC freisin LiteSpeed (a cheangail le Facebook trí HTTP/3 le údar mór) agus forásach Caddy. Ní féidir le Apache é a dhéanamh go fóill, ach tá obair ar siúl faoi lánseol.
Díreach an lá eile d'oscail Microsoft cód forfheidhmithe msquic, nach bhfuil gach feidhm ón gcaighdeán IETF ar fáil fós, ach is dul chun cinn mór é seo cheana féin.
Conclúid
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.