I-QUIC (i-Quick UDP Internet Connections) yiprotocol ephezulu ye-UDP exhasa zonke iimpawu ze-TCP, i-TLS kunye ne-HTTP / 2 kwaye ixazulula ezininzi iingxaki zabo. Idla ngokubizwa ngokuba yiprotocol entsha okanye "yovavanyo", kodwa sele idlule ixesha elide kwisigaba sovavanyo: uphuhliso luqhubekile ngaphezulu kweminyaka eyi-7. Ngeli xesha, iprotocol ayizange ikwazi ukuba ngumgangatho, kodwa yasasazeka. Umzekelo, i-QUIC isetyenziswa zizigebenga ezifana ne-Google kunye ne-Facebook ukukhawulezisa i-traffic kunye nokunciphisa ukulibaziseka kuthungelwano oluphathwayo, kwaye i-IETF yabhengeza ifolokhwe yayo yeprotocol isiseko somgangatho we-HTTP/3 (nangona i-HTTP/2 isebenzisa.
Umxholo
I-QUIC yaphuhliswa njengokutshintshwa kwe-TCP yelifa, eyayiyilelwe ekuqaleni ilahleko ephantsi yothungelwano lweengcingo. I-TCP ihambisa iipakethi ngokulandelelana, ngoko ke ukuba ipakethi enye ilahleka, umgca uphela umisiwe (
Ekubeni i-QUIC idibanisa ukutshintshwa kwe-TCP kunye nokuphunyezwa kwe-TLS 1.3, zonke iidibansi zihlala zifihliwe, kwaye ukucima i-traffic enjalo akukho lula kunokuba bekuhamba nge-HTTPS. Ukongeza, i-QUIC iphunyezwa kwinqanaba lesicelo, njengoko ukutshintshwa okupheleleyo kwesitaki se-TCP kuya kuthatha ngonaphakade.
Nangona ukuxhaswa kwe-multiplexing kwi-HTTP / 2, ingxaki ye-head-line blocking yahlala ikhona ngenxa yesidingo sokuhambisa iipakethi ngokulandelelana. I-QUIC iphunyezwe phezu kwe-UDP, ngoko ayinayo i-blocking in principle, kwaye ukukhusela iipakethi ukuba zilahleke ngonaphakade, zibalwe kwaye zingaqukatha iinxalenye "zabamelwane," ezinikezela ngokuphindaphindiweyo. Ukongeza, i-QUIC yahlula umgca we-monolithic ibe yimisonto emininzi kwiindidi ezahlukeneyo zezicelo ngaphakathi koqhagamshelwano olulodwa. Ke, ukuba ipakethi ilahlekile, iingxaki zinokuvela kuphela kumgca omnye (umzekelo, ukuhambisa ifayile ethile):
Sebenzisa
Ekuqaleni, i-QUIC yaphuhliswa ngaphakathi kuGoogle kwaye yayilungiselelwe ukusetyenziswa ngaphakathi kwenkampani. Kwi-2013, idluliselwe kwi-IETF yokulinganisa (esaqhubekayo), kwaye ngoku wonke umntu unokuthatha inxaxheba ekuphuhlisweni kweprotocol ngokuphakamisa oko balahlekileyo. Iqela elisebenzayo le-IETF liququzelela iintlanganiso zonyaka apho umgangatho omtsha uvunyiwe kwaye izinto ezintsha zixoxwa. Oku kuphunyezwa kwe-QUIC kuthathwa njengeyona nto iphambili kwaye kusekelwe ekubeni umgangatho we-HTTP / 3 uqinisekisiwe.
Ukuza kuthi ga ngoku, akukho ntetho malunga nokubandakanya i-HTTP/3 njengeyona ndlela iphambili yomthetho, kuba ayikagqitywa kwaye ayixhaswanga:
Kodwa i-QUIC inokuphunyezwa njengothutho phakathi kwesicelo kunye neseva, eyenziwe ngempumelelo e-Uber:
Izimvo zika-Uber malunga nokwaziswa kwe-QUIC
Ukuzinzisa ngempumelelo i-QUIC kunye nokuphucula usetyenziso lwenkqubo kwiindawo zoqhagamshelo olulambathayo, sitshintshe isitaki esidala (HTTP/2 ngaphezulu kwe-TLS/TCP) nge-QUIC protocol. Sasebenzisa ithala leencwadi lenethiwekhi
I-Cronet ΠΈΠ·IiProjekthi zeChromium , equlethe imvelaphi, inguqulelo kaGoogle yeprotocol - gQUIC. Olu phunyezo lusoloko luphuculwa ukulandela inkcazo ye-IETF yamva nje.Siqale sadibanisa iCronet kwiiapps zethu ze-Android ukongeza inkxaso ye-QUIC. Ukuhlanganiswa kwenziwa ngendlela yokunciphisa iindleko zokufuduka kangangoko kunokwenzeka. Endaweni yokutshintsha ngokupheleleyo isitakhi esidala sothungelwano ebesisebenzisa ithala leencwadi
OkHttp , sidibanise iCronet PHANTSI kwe-OkHttp API isakhelo. Ngokwenza udibaniso ngale ndlela, sithintele utshintsho kwiifowuni zethu zenethiwekhi (ezisetyenziswa yiYenza kwakhona ) kwinqanaba le-API.Ngokufana nendlela yezixhobo ze-Android, siphumeze iCronet kwi-Uber apps kwi-iOS, sithintela i-HTTP traffic kwinethiwekhi.
API usebenzisaNSURLProtocol . Olu thatho, olubonelelwa yi-iOS Foundation, luphatha idatha ye-URL yeprotocol kwaye iqinisekisa ukuba sinokudibanisa iCronet kwizicelo zethu ze-iOS ngaphandle kweendleko ezinkulu zokufuduka.
ithathwe kwi
Ngasemva babambe unxibelelwano lwe-QUIC nge-Google Cloud lb, leyo
Ayimangalisi into yokuba iLifu likaGoogle lisebenza kakuhle ngeprotocol ephuhliswe nguGoogle, kodwa zeziphi ezinye iindlela?
Nginx
Kungekudala kwi-CloudFlare
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
Apha ungaqhagamshela iimodyuli zakho ukuba kuyimfuneko
./configure
--prefix=$PWD
--with-http_ssl_module
--with-http_v2_module
--with-http_v3_module
--with-openssl=../quiche/deps/boringssl
--with-quiche=../quiche
make
Konke okuseleyo kukuvumela inkxaso yeHTTP/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';
}
}
Akukenzeki ukudibanisa nge-HTTP/3 kwiziphequluli eziqhelekileyo, kodwa ungasebenzisa --enable-quic
, yiya kumncedisi wakho okanye, umzekelo, indawo ye-quic.rocks kwaye ujonge uhlobo loqhagamshelwano kwiZixhobo zoMphuhlisi:
Esikhundleni se-HTTP / 3 kubhaliwe http2+quic/99
, kodwa ngokusisiseko iyafana.
Obunye ubuchwepheshe
- I-QUIC ikwaxhasa
I-LiteSpeed (eqhagamshelwe kwi-Facebook nge-HTTP/3 nge-fanfare enkulu) kunye nenkqubela phambiliCaddy . I-Apache ayinakuyenza okwangoku, kodwa umsebenzi uyaqhubekangokupheleleyo . - NgoJanuwari 21 ihlaziywe
Idrafti yomgangatho weWebRTC - Ngenye imini iMicrosoft yavula
msquic ikhowudi yokuphumeza , apho ingekho yonke imisebenzi evela kumgangatho we-IETF ekhoyo, kodwa oku sele kuyimpumelelo enkulu.
isiphelo
Umdla kwi-QUIC awuzinzanga, kodwa uyakhula, kwaye umsebenzi uyaqhubeka ukuwubeka emgangathweni. Ukuphunyezwa okutsha kweprotocol kubonakala phantse nyanga zonke, kwaye minyaka yonke abaphuhlisi abaninzi ngakumbi bayaqiniseka ukuba i-QUIC yikamva. Kunokwenzeka ukubandakanya iprotocol kwiinguqulelo zexesha elizayo ze-TCP stack, oku kuthetha ukuba ngokukhawuleza okanye kamva yonke i-Intanethi iya kufudukela kuqhagamshelwano oluzinzile kwaye olukhawulezayo.
Sele ngoku ungaqwalasela ukusebenzisana kwe-QUIC kwiziseko zoncedo zakho okanye uyinike izikhangeli - zonke zicwangcisa ukongeza inkxaso yeprotocol, kwaye izibalo ezilusizi kunye ne-caniuse ziya kuvuya ngakumbi.
umthombo: www.habr.com