Usoro QUIC na-arụ ọrụ: ka Uber siri mejuputa ya iji kwalite arụmọrụ

Usoro QUIC na-atọ ụtọ ikiri, nke mere anyị ji nwee mmasị ide banyere ya. Mana ọ bụrụ na akwụkwọ ndị gara aga gbasara QUIC bụ akụkọ ihe mere eme (akụkọ mpaghara, ọ bụrụ na-amasị gị) okike na ngwaike, taa anyị nwere obi ụtọ ibipụta ntụgharị ụdị dị iche - anyị ga-ekwu maka ezigbo ngwa nke protocol na 2019. Ọzọkwa, anyị anaghị ekwu maka obere akụrụngwa dabere na ebe a na-adọba ụgbọala, mana banyere Uber, nke na-arụ ọrụ fọrọ nke nta ka ọ bụrụ n'ụwa niile. Kedu ka ndị injinia ụlọ ọrụ si bịa na mkpebi iji QUIC na-emepụta ihe, otu ha si mee ule na ihe ha hụrụ mgbe ha gbasasịrị ya na mmepụta - n'okpuru ịkpụ.

Foto ndị a nwere ike ịpị. Nwee obi ụtọ ịgụ akwụkwọ!

Usoro QUIC na-arụ ọrụ: ka Uber siri mejuputa ya iji kwalite arụmọrụ

Uber nwere ọnụ ọgụgụ zuru ụwa ọnụ, ya bụ obodo ọnụnọ 600, nke ọ bụla n'ime ngwa ahụ dabere kpamkpam na ịntanetị ikuku sitere na ihe karịrị ndị ọrụ ekwentị 4500. Ndị ọrụ na-atụ anya na ngwa ahụ agaghị adị ngwa ngwa, mana na ozugbo - iji nweta nke a, ngwa Uber chọrọ obere latency na njikọ a pụrụ ịdabere na ya. Ewoo, mana nchịkọta Http / 2 adịghị eme nke ọma na netwọk ikuku siri ike na nke na-efunahụ ya. Anyị ghọtara na na nke a, arụmọrụ dị ala na-emetụta ngwa ngwa TCP na kernels sistemụ arụmọrụ.

Iji dozie nsogbu ahụ, anyị tinyere akwụkwọ ỌR., Usoro mgbasa ozi multiplexing ọwa ọgbara ọhụrụ nke na-enye anyị njikwa karịa arụmọrụ nke usoro njem. Ugbu a na-arụ ọrụ otu IETF na-ahazi QUIC dị ka Http / 3.

Mgbe nyochachara nke ukwuu, anyị kwubiri na itinye QUIC n'ime ngwa anyị ga-ebute obere ọdụ ọdụ ka atụnyere TCP. Anyị hụrụ mbelata na nso nke 10-30% maka okporo ụzọ HTTPS na ngwa ọkwọ ụgbọ ala na ndị njem. QUIC nyekwara anyị njikwa njedebe na njedebe na ngwungwu ndị ọrụ.

N'ime edemede a, anyị na-ekerịta ahụmịhe anyị na ịkwalite TCP maka ngwa Uber site na iji nchịkọta na-akwado QUIC.

Teknụzụ kachasị ọhụrụ: TCP

Taa, TCP bụ usoro ụgbọ njem a na-ejikarị maka ibuga okporo ụzọ HTTPS na ịntanetị. TCP na-enye iyi nke bytes a pụrụ ịdabere na ya, si otú a na-anagide mkpọkọ netwọkụ yana mfu oyi akwa njikọ. Ojiji TCP zuru ebe niile maka okporo ụzọ HTTPS bụ n'ihi na nke mbụ nwere (ihe fọrọ nke nta ka ọ bụrụ OS ọ bụla nwere TCP), nnweta na ọtụtụ akụrụngwa (dị ka ndị na-ebu ibu, proxies HTTPS na CDN), yana arụ ọrụ na-apụ apụ na igbe dị. n'ihe fọrọ nke nta ka ọ bụrụ ọtụtụ nyiwe na netwọkụ.

Imirikiti ndị ọrụ na-eji ngwa anyị na-aga, na ọdụ ọdụ TCP anọghị nso ihe achọrọ nke ezigbo okporo ụzọ HTTPS anyị. N'ikwu ya n'ụzọ dị mfe, ndị ọrụ n'ụwa nile enwetala nke a - Foto 1 na-egosi igbu oge na nnukwu obodo:

Usoro QUIC na-arụ ọrụ: ka Uber siri mejuputa ya iji kwalite arụmọrụ
Ọgụgụ 1: Ọdụdọ ọdụ dịgasị iche n'ofe obodo ukwu Uber.

Ọ bụ ezie na nkwụsịtụ na netwọk India na Brazil dị elu karịa na US na UK, nkwụsị ọdụ dị elu nke ukwuu karịa nkezi latency. Na nke a bụ eziokwu ọbụna maka US na UK.

TCP n'elu arụmọrụ ikuku

Emepụtara TCP maka wired netwọkụ, ya bụ, na-emesi ike na njikọ ndị a na-ebu amụma nke ukwuu. Agbanyeghị, ikuku netwọk nwere njirimara na ihe isi ike ha. Nke mbụ, netwọk ikuku na-enwe ike ịnweta mfu n'ihi nnyonye anya na mgbama mgbaama. Dịka ọmụmaatụ, netwọk Wi-Fi na-enwe mmetụta maka microwaves, bluetooth na ebili mmiri redio ndị ọzọ. Netwọk ekwentị na-ata ahụhụ site na mfu mgbaàmà (ụzọ furu efu) n'ihi ntụgharị uche / absorption nke mgbaàmà site na ihe na ụlọ, yana site na nnyonye anya si n'agbata obi ụlọ elu cell. Nke a na-eduga n'ịdị ịrịba ama (ugboro 4-10) ma dị iche iche Oge njem okirikiri (RTT) na mfu ngwugwu tụnyere njikọ wired.

Iji luso mgbanwe bandwidth na mfu, netwọkụ ekwentị na-ejikarị nnukwu nchekwa maka mgbawa okporo ụzọ. Nke a nwere ike bute oke kwụ n'ahịrị, nke pụtara ogologo oge. Ọtụtụ mgbe, TCP na-ewere kwụ n'ahịrị a dị ka ihe efu n'ihi ogologo oge, yabụ TCP na-agbagharị ma si otú a mejupụta ihe nchekwa ahụ. A maara nsogbu a dị ka bufferbloat (nchekwa netwọk gabigara ókè, bloat buffer), na nke a bụ nnọọ nnukwu nsogbu ịntanetị ọgbara ọhụrụ.

N'ikpeazụ, arụmọrụ netwọkụ cellular dịgasị iche site na ndị na-ebu, mpaghara, na oge. Na eserese 2, anyị chịkọtara n'etiti etiti okporo ụzọ HTTPS gafee sel n'ime oke 2-kilometer. Data anakọtara maka ndị isi abụọ na-arụ ọrụ ekwentị na Delhi, India. Dị ka ị na-ahụ, arụmọrụ dịgasị iche site na cell gaa na cell. Ọzọkwa, nrụpụta nke otu onye na-arụ ọrụ dị iche na nrụpụta nke abụọ. Nke a na-emetụta ihe ndị dị ka usoro ntinye netwọkụ na-eburu n'uche oge na ọnọdụ, mmegharị onye ọrụ, yana akụrụngwa netwọk na-eburu n'uche njupụta ụlọ elu na oke nke ụdị netwọk (LTE, 3G, wdg).

Usoro QUIC na-arụ ọrụ: ka Uber siri mejuputa ya iji kwalite arụmọrụ
Ọgụgụ 2. Nkwụsịtụ n'iji okirikiri 2 km dịka ọmụmaatụ. Delhi, India.

Ọzọkwa, arụmọrụ nke netwọkụ ekwentị na-adịgasị iche n'oge. Ọgụgụ 3 na-egosi nkwụsịtụ etiti site n'ụbọchị nke izu. Anyị hụkwara ndịiche n'obere nha, n'ime otu ụbọchị na elekere.

Usoro QUIC na-arụ ọrụ: ka Uber siri mejuputa ya iji kwalite arụmọrụ
Ọgụgụ 3. Ọnwụ ọdụ nwere ike ịdịgasị iche n'etiti ụbọchị, mana maka otu onye ọrụ.

Ihe niile dị n'elu na-eme ka arụmọrụ TCP ghara ịdị irè na netwọk ikuku. Agbanyeghị, tupu ịchọọ ụzọ ọzọ maka TCP, anyị chọrọ ịzụlite nghọta ziri ezi na isi ihe ndị a:

  • TCP bụ isi ihe kpatara latencies ọdụ na ngwa anyị?
  • Netwọk ọgbara ọhụrụ nwere nnukwu igbu oge njem okirikiri dị iche iche (RTT)?
  • Kedu mmetụta nke RTT na ọnwụ na arụmọrụ TCP?

Nyocha arụmọrụ TCP

Iji ghọta ka anyị si nyochaa arụmọrụ TCP, ka anyị leba anya ngwa ngwa ka TCP na-ebufe data n'aka onye na-ezigara na onye nnata. Nke mbụ, onye na-ezigara na-ewepụta njikọ TCP, na-eme ụzọ atọ aka aka: Onye na-ezigara ya na-ezipụ ngwugwu SYN, chere maka ngwugwu SYN-ACK site na nnata, wee zipụ ngwugwu ACK. A na-emefu ngafe nke abụọ na nke atọ iji guzobe njikọ TCP. Onye nnata na-anabata nnata nke ngwugwu ọ bụla (ACK) iji hụ na nnyefe a pụrụ ịdabere na ya.

Ọ bụrụ na ngwugwu ma ọ bụ ACK efunahụ, onye na-ezigara ya na-ebugharị mgbe oge gwụchara (RTO, oge retransmission). A na-agbakọ RTO n'ụzọ siri ike dabere na ihe dị iche iche, dị ka igbu oge RTT a na-atụ anya n'etiti onye na-ezipụ na onye nnata.

Usoro QUIC na-arụ ọrụ: ka Uber siri mejuputa ya iji kwalite arụmọrụ
Ọnụọgụ 4. Ntugharị ngwugwu n'elu TCP/TLS gụnyere usoro ntụgharị.

Iji chọpụta ka TCP si arụ ọrụ na ngwa anyị, anyị na-eji ngwugwu TCP nyochaa cma maka otu izu na ọgụ ọgụ na-abịa site na sava ndị India ọnụ. Anyị wee nyochaa njikọ TCP site na iji tcptce. Ọzọkwa, anyị mepụtara ngwa gam akporo nke na-eziga okporo ụzọ ṅomiri na ihe nkesa ule, na-eṅomi ezigbo okporo ụzọ dị ka o kwere mee. E kesara ekwentị ndị nwere ngwa a n'ọtụtụ ndị ọrụ, bụ ndị na-anakọta ndekọ n'ime ọtụtụ ụbọchị.

Nsonaazụ nke nnwale abụọ ahụ dabara na ibe ya. Anyị hụrụ elu RTT latencies; ọnụ ahịa ọdụ fọrọ nke nta ka ọ bụrụ ugboro 6 dị elu karịa ọnụ ahịa etiti; nkezi mgbakọ na mwepụ nke igbu oge karịrị 1 sekọnd. Ọtụtụ njikọ enweghị isi, na-eme ka TCP nyefee 3,5% nke ngwugwu niile. N'ebe ndị mmadụ juru dị ka ọdụ ụgbọ elu na ọdụ ụgbọ oloko, anyị hụrụ mfu 7%. Nsonaazụ ndị a na-eme ka obi abụọ dị n'amamihe ọdịnala nke ndị na-eji na netwọk ekwentị sekit retransmission dị elu na-ebelata oke mfu na ọkwa ụgbọ njem. N'okpuru bụ nsonaazụ ule sitere na ngwa “simulator”:

metrik netwọk
.Kpụrụ

RTT, millisekọnd [50%,75%, 95%,99%]
[Foto dị na peeji nke 350, 425, 725, 2300]

Ndịiche RTT, sekọnd
Na nkezi ~ 1,2 s

Mfu ngwugwu na njikọ anaghị akwụsi ike
Nkezi ~ 3.5% (7% na mpaghara ebujuru ibu)

Ihe fọrọ nke nta ka ọ bụrụ ọkara n'ime njikọ ndị a nwere opekata mpe otu mfu, ọtụtụ n'ime ha ngwugwu SYN na SYN-ACK. Ọtụtụ mmemme TCP na-eji uru RTO nke 1 sekọnd maka ngwugwu SYN, nke na-abawanye nke ukwuu maka mfu na-esote. Oge ntinye ngwa nwere ike ịbawanye n'ihi TCP na-ewe ogologo oge iji guzobe njikọ.

N'ihe banyere ngwugwu data, ụkpụrụ RTO dị elu na-ebelata uru bara uru nke netwọkụ ahụ n'ihu mfu na-adịru nwa oge na netwọk ikuku. Anyị chọpụtara na nkezi oge mbugharị bụ ihe dịka 1 sekọnd yana ọdụ ọdụ nke ihe fọrọ nke nta ka ọ bụrụ 30 sekọnd. Latencies ndị a dị elu na ọkwa TCP mere ka oge HTTPS kwụsị na ịrịọ arịrịọ, na-abawanye latency netwọk na adịghị arụ ọrụ.

Ọ bụ ezie na pasentị 75 nke atụnyere RTT dị gburugburu 425 ms, pasentị 75 maka TCP fọrọ nke nta ka ọ bụrụ 3 sekọnd. Nke a na-egosi na ọnwụ ahụ mere ka TCP were 7-10 gafere iji nyefee data nke ọma. Nke a nwere ike ịbụ n'ihi mgbako RTO adịghị arụ ọrụ, enweghị ike TCP ịzaghachi ngwa ngwa maka ọnwụ kacha ọhụrụ ngwugwu na windo na arụpụtaghị ihe na-adịghị mma nke nchịkwa nchịkwa nke algorithm, nke na-adịghị ama ọdịiche dị n'etiti ikuku na-efunahụ ikuku na mfu n'ihi nkwụsị netwọk. N'okpuru bụ nsonaazụ ule ọnwụ TCP:

Ọnụ ọgụgụ ọnwụ ngwugwu TCP
uru

Pasent njikọ nwere opekata mpe 1 ngwugwu
45%

Pasent njikọ nwere mfu n'oge nhazi njikọ
30%

Pasent nke njikọ na mfu n'oge mgbanwe data
76%

Nkesa nke igbu oge na mbugharị, sekọnd [50%, 75%, 95%,99%] [1, 2.8, 15, 28]

Nkesa nke ọnụọgụ mbugharị maka otu ngwugwu ma ọ bụ akụkụ TCP
[1,3,6,7]

Ngwa nke QUIC

Google mebere ya, QUIC bụ usoro njem ọgbara ọhụrụ nwere ọtụtụ eriri nke na-aga n'elu UDP. Ugbu a QUIC abanyela nhazi usoro (anyị edeelarị na enwere, dịka ọ dị, ụdị abụọ nke QUIC, na-achọ ịmata ihe nwere ike soro njikọ – ihe ruru. onye ntụgharị). Dịka egosiri na eserese 5, a na-etinye QUIC n'okpuru HTTP/3 (n'ezie, HTTP/2 n'elu QUIC bụ HTTP/3, nke a na-ahazi ugbu a nke ukwuu). Ọ na-edochi akụkụ HTTPS na TCP site n'iji UDP mepụta ngwugwu. QUIC na-akwado naanị ịnyefe data echekwara ka emebere TLS n'ime QUIC.

Usoro QUIC na-arụ ọrụ: ka Uber siri mejuputa ya iji kwalite arụmọrụ
Ọgụgụ 5: QUIC na-agba ọsọ n'okpuru HTTP/3, dochie TLS, nke na-agbabu n'okpuru HTTP/2.

N'okpuru bụ ihe mere anyị ji kwenye iji QUIC maka nkwalite TCP:

  • 0-RTT njikọ njikọ. QUIC na-enye ohere ijikwa ikike sitere na njikọ ndị gara aga, na-ebelata ọnụ ọgụgụ aka aka nche. N'ọdịnihu NXU 1.3 ga-akwado 0-RTT, mana aka TCP ụzọ atọ ka ga-achọrọ.
  • imeri igbochi HoL. HTTP/2 na-eji otu njikọ TCP maka onye ahịa iji melite arụmọrụ, mana nke a nwere ike ibute igbochi HoL (isi-ahịrị). QUIC na-eme ka ọtụtụ ihe dị mfe ma na-ebuga arịrịọ na ngwa ahụ n'onwe ya.
  • njikwa mkpọchi. QUIC bi na oyi akwa ngwa, na-eme ka ọ dịkwuo mfe imelite algọridim njem njem na-achịkwa izipu dabere na paramita netwọkụ (ọnụọgụ mfu ma ọ bụ RTT). Ọtụtụ mmejuputa TCP na-eji algọridim CUBIC, nke na-adịghị mma maka latency-enwe mmetụta okporo ụzọ. Algọridim emepụtara nso nso a dị ka BBR, mee ka netwọkụ ahụ dịkwuo mma ma kwalite latency. QUIC na-enye gị ohere iji BBR wee melite algọridim dị ka eji ya. nkwalite.
  • replenishment nke ọnwụ. QUIC na-akpọ TLP abụọ (nyocha ọnwụ ọdụ) tupu a kpalite RTO - ọbụlagodi mgbe a na-ahụta ihe efu. Nke a dị iche na mmejuputa TCP. TLP na-ebufe tumadi ngwugwu ikpeazụ (ma ọ bụ nke ọhụrụ, ọ bụrụ na ọ dị) iji kpalite mmeju ngwa ngwa. Ijikwa igbu oge ọdụ bara uru karịsịa maka ụzọ Uber si arụ ọrụ netwọkụ ya, ya bụ maka mkpirisi, spọtụk, na mbufe data na-enwe mmetụta.
  • kachasị ACK. Ebe ọ bụ na ngwugwu ọ bụla nwere nọmba usoro pụrụ iche, enweghị nsogbu iche ngwugwu mgbe ebufere ha. Ihe ngwugwu ACK nwekwara oge iji hazie ngwugwu ahụ wee mepụta ACK n'akụkụ ndị ahịa. Atụmatụ ndị a hụ na QUIC na-agbakọ RTT nke ọma. ACK na QUIC na-akwado ihe ruru 256 band NACK, na-enyere onye na-ezipụ aka na-enwekwu ike ime mgbanwe nke ngwugwu ma jiri obere bytes na usoro ahụ. Nhọrọ ACK (AKWỤKWỌ) na TCP anaghị edozi nsogbu a n'ọnọdụ niile.
  • mbugharị njikọ. A na-amata njikọ QUIC site na NJ 64-bit, yabụ ọ bụrụ na onye ahịa gbanwere adreesị IP, ID njikọ ochie nwere ike ịga n'ihu na-eji na adreesị IP ọhụrụ na-enweghị nkwụsị. Nke a bụ omume a na-ahụkarị maka ngwa mkpanaka ebe onye ọrụ na-agbanye n'etiti Wi-Fi na njikọ ekwentị.

Nhọrọ maka QUIC

Anyị tụlere ụzọ ọzọ iji dozie nsogbu ahụ tupu ịhọrọ QUIC.

Ihe mbụ anyị nwara bụ ibugharị TPC PoP (Ebe ọnụnọ) iji kwụsị njikọ TCP nso ndị ọrụ. N'ụzọ bụ isi, PoPs na-akwụsị njikọ TCP na ngwaọrụ mkpanaaka nso na netwọkụ ekwentị ma megharịa okporo ụzọ azụ na akụrụngwa mbụ. Site n'ịkwụsị TCP nso, anyị nwere ike ibelata RTT wee hụ na TCP na-anabatakarị gburugburu ikuku ikuku. Agbanyeghị, nnwale anyị egosila na ọtụtụ n'ime RTT na ọnwụ sitere na netwọkụ ekwentị na ojiji nke PoP adịghị enye nkwalite arụmọrụ dị ịrịba ama.

Anyị na-elekwa anya n'iji ya gee ntị TCP parameters. Ịtọlite ​​ngwugwu TCP na sava anyị dị iche iche siri ike n'ihi na TCP nwere mmejuputa dị iche iche n'ofe ụdị OS dị iche iche. O siri ike ime nke a ma nwalee nhazi netwọk dị iche iche. Ịhazi TCP ozugbo na ngwaọrụ mkpanaka agaghị ekwe omume n'ihi enweghị ikike. Nke kachasị mkpa, njirimara dị ka njikọ 0-RTT na amụma RTT ka mma dị oke mkpa na ụkpụrụ ụlọ ọrụ ahụ, ya mere ọ gaghị ekwe omume ịnweta uru bara uru site na ịmegharị TCP naanị.

N'ikpeazụ, anyị tụlere ọtụtụ ụkpụrụ dabere na UDP nke na-emezigharị mgbasa ozi vidiyo - anyị chọrọ ịhụ ma usoro ndị a ga-enyere aka n'ọnọdụ anyị. N'ụzọ dị mwute, ha enweghị nke ukwuu na ọtụtụ ntọala nchekwa, ma chọkwara njikọ TCP ọzọ maka metadata na ozi njikwa.

Nnyocha anyị egosila na QUIC bụ ikekwe naanị usoro iwu nwere ike inye aka na nsogbu nke okporo ụzọ ịntanetị, na-eburu n'uche ma nchekwa na arụmọrụ.

Ntinye nke QUIC n'ime ikpo okwu

Iji tinye QUIC nke ọma ma melite arụmọrụ ngwa na gburugburu njikọ njikọ adịghị mma, anyị jiri ụkpụrụ QUIC dochie stack ochie (HTTP/2 n'elu TLS/TCP). Anyị na-eji ọbá akwụkwọ netwọk Cronet si Ọrụ Chromium, nke nwere nke mbụ, ụdị Google nke protocol - gQUIC. A na-emeziwanye mmejuputa a mgbe niile iji soro nkọwapụta IETF kachasị ọhụrụ.

Anyị bu ụzọ tinye Cronet n'ime ngwa gam akporo anyị iji gbakwunye nkwado maka QUIC. Emere njikọta n'ụzọ iji belata ọnụ ahịa mbugharị dị ka o kwere mee. Kama dochie kpam kpam nchịkọta netwọk ochie nke ji ọbá akwụkwọ ahụ OkeHttp, anyị ejikọtala Cronet N'okpuru usoro OkHttp API. Site n'ime njikọ a n'ụzọ dị otú a, anyị zere mgbanwe na oku netwọk anyị (nke a na-eji Ntughari) na ọkwa API.

Yiri usoro maka ngwaọrụ gam akporo, anyị mebere Cronet n'ime ngwa Uber na iOS, na-egbochi okporo ụzọ HTTP site na netwọkụ. APIeji NSURLPprotocol. Abstraction a, nke iOS Foundation nyere, na-ejikwa data URL akọwapụtara na protocol wee hụ na anyị nwere ike itinye Cronet na ngwa iOS anyị na-enweghị nnukwu ụgwọ mbugharị.

Na-emecha QUIC na Google Cloud Balancers

N'akụkụ azụ azụ, a na-enye mmecha QUIC site na akụrụngwa nguzozi nke Google Cloud Load, nke na-eji alt-svc nkụnye eji isi mee na nzaghachi iji kwado QUIC. N'ozuzu, onye nhazi ahụ na-agbakwụnye nkụnye eji isi mee alt-svc na arịrịọ HTTP ọ bụla, nke a kwadoro nkwado QUIC maka ngalaba ahụ. Mgbe onye ahịa Cronet nwetara nzaghachi HTTP na nkụnye eji isi mee nke a, ọ na-eji QUIC maka arịrịọ HTTP na-esote na ngalaba ahụ. Ozugbo onye nzizi emechachara QUIC, akụrụngwa anyị na-ezipụ ihe a n'ụzọ doro anya karịa HTTP2/TCP na ebe data anyị.

Arụmọrụ: Nsonaazụ

Nrụpụta mmepụta bụ isi ihe kpatara anyị na-achọ protocol ka mma. Iji bido, anyị jiri ya mepụta nkwụnye emulation netwọkka ịmata ka QUIC ga-esi eme omume n'okpuru profaịlụ netwọkụ dị iche iche. Iji nwalee arụmọrụ QUIC na netwọkụ ụwa n'ezie, anyị gbara nnwale ka anyị na-anyagharị gburugburu New Delhi na-eji okporo ụzọ netwọkụ agbakwunyere yiri oku HTTP na ngwa ndị njem.

Nnwale 1

Ngwa maka nnwale:

  • nwalee ngwaọrụ gam akporo na OkHttp na Cronet stacks iji hụ na anyị na-ekwe ka okporo ụzọ HTTPS gafere TCP na QUIC n'otu n'otu;
  • ihe nkesa emulation nke dabeere na Java nke na-eziga otu ụdị HTTPS nkụnye eji isi mee na nzaghachi na ibu ngwaọrụ ndị ahịa ịnata arịrịọ n'aka ha;
  • igwe ojii proxies nke dị nso na India iji kwụsị njikọ TCP na QUIC. Mgbe maka nkwụsị TCP anyị ji proxy reverse NGINX, ọ siri ike ịchọta proxy reverse isi mmalite maka QUIC. Anyị wulitere proxy ntụgharị maka QUIC n'onwe anyị site na iji nchịkọta QUIC bụ isi sitere na Chromium na bipụtara ya n'ime chromium dị ka oghere mepere emepe.

Usoro QUIC na-arụ ọrụ: ka Uber siri mejuputa ya iji kwalite arụmọrụUsoro QUIC na-arụ ọrụ: ka Uber siri mejuputa ya iji kwalite arụmọrụ
Ọgụgụ 6. TCP vs QUIC test suite nwere ngwaọrụ gam akporo nwere OkHttp na Cronet, igwe ojii proxies maka ịkwụsị njikọ, yana ihe nkesa emulation.

Nnwale 2

Mgbe Google mere QUIC dị Ịhazi ibu igwe ojii Google, anyị na-eji otu ngwa ahịa, ma na otu mgbanwe: kama NGINX, anyị weere Google load balancers kwụsị TCP na QUIC njikọ site na ngwaọrụ, nakwa dị ka ụzọ HTTPS okporo ụzọ na emulation nkesa. A na-ekesa ndị na-eme nha nha n'ụwa niile, mana jiri ihe nkesa PoP kacha nso na ngwaọrụ ahụ (n'ihi geolocation).

Usoro QUIC na-arụ ọrụ: ka Uber siri mejuputa ya iji kwalite arụmọrụ
Ọgụgụ 7. Na nnwale nke abụọ, anyị chọrọ iji tụnyere njedebe njedebe nke TCP na QUIC: iji Google Cloud na iji proxy igwe ojii anyị.

N’ihi ya, ọtụtụ mkpughe chere anyị:

  • nkwụsị site na PoP kwalitere arụmọrụ TCP. Ebe ọ bụ na ndị na-edozi ihe na-akwụsị njikọ TCP nso na ndị ọrụ ma na-emeziwanye nke ọma, nke a na-ebute RTT dị ala, nke na-eme ka arụmọrụ TCP dịkwuo mma. Na agbanyeghị na emetụtaghị QUIC, ọ ka karịa TCP n'ihe gbasara ibelata ọdụ ọdụ (site na 10-30 pasent).
  • ọdụ na-emetụta netwọk hops. Ọ bụ ezie na proxy QUIC anyị dị n'ihu site na ngwaọrụ ndị ahụ (ihe dị ka 50 ms dị elu latency) karịa ndị na-ebu ibu nke Google, o weputara arụmọrụ yiri ya - mbelata 15% na latency na mbelata 20% na 99th percentile maka TCP. Nke a na-egosi na ntụgharị mile ikpeazụ bụ ihe mgbochi na netwọk.

Usoro QUIC na-arụ ọrụ: ka Uber siri mejuputa ya iji kwalite arụmọrụUsoro QUIC na-arụ ọrụ: ka Uber siri mejuputa ya iji kwalite arụmọrụ
Ọgụgụ 8: Nsonaazụ sitere na nnwale abụọ gosiri na QUIC karịrị TCP nke ukwuu.

Na-alụ ọgụ okporo ụzọ

Site na nnwale, anyị etinyere nkwado QUIC na ngwa Android na iOS anyị. Anyị mere ule A/B iji chọpụta mmetụta QUIC na obodo ndị Uber na-arụ ọrụ. N'ozuzu, anyị hụrụ mbelata dị ukwuu na nkwụsị ọdụ n'ofe mpaghara abụọ ahụ, ndị ọrụ telecom na ụdị netwọk.

Eserese ndị dị n'okpuru na-egosi mmụba pasent na ọdụ (pasent 95 na 99) site na mpaghara macro na ụdị netwọkụ dị iche iche - LTE, 3G, 2G.
Usoro QUIC na-arụ ọrụ: ka Uber siri mejuputa ya iji kwalite arụmọrụUsoro QUIC na-arụ ọrụ: ka Uber siri mejuputa ya iji kwalite arụmọrụ
Ọgụgụ 9. N'ime ule agha, QUIC karịrị TCP n'ihe gbasara latency.

Naanị gaa n'ihu

Ikekwe nke a bụ mmalite - ntọhapụ nke QUIC n'ime mmepụta enyela ohere dị ịtụnanya iji melite arụmọrụ ngwa na netwọkụ kwụsiri ike na nke anaghị akwụsi ike, ya bụ:

Mgbakwunye mkpuchi

N'ịtụlela arụmọrụ nke protocol na ezigbo okporo ụzọ, anyị hụrụ na ihe dịka 80% nke nnọkọ jiri QUIC mee nke ọma. всех arịrịọ, ebe 15% nke nnọkọ jiri ngwakọta nke QUIC na TCP. Anyị na-eche na nchikota bụ n'ihi na Cronet ọbá akwụkwọ na-eweghachi azụ na TCP, ebe ọ bụ na ọ nweghị ike ịmata ọdịiche dị n'etiti ezigbo UDP ọdịda na adịghị mma netwọk ọnọdụ. Anyị na-eleba anya ugbu a ngwọta maka nsogbu a ka anyị na-arụ ọrụ maka mmejuputa QUIC na-esote.

Nkwalite QUIC

Okporo ụzọ sitere na ngwa mkpanaaka na-enwe mmetụta adịghị ike, mana ọ naghị enwe mmetụta bandwidth. Ọzọkwa, a na-eji ngwa anyị eme ihe na netwọk ekwentị. Dabere na nnwale, ọdụ ọdụ ka dị elu n'agbanyeghị na iji proxy kwụsị TCP na QUIC nso ndị ọrụ. Anyị na-arụsi ọrụ ike na-achọ ụzọ iji melite njikwa mkpọkọ ma melite arụmọrụ nke QUIC mgbake algọridim.

Site na nkwalite ndị a na ọtụtụ ndị ọzọ, anyị na-eme atụmatụ imeziwanye ahụmịhe onye ọrụ n'agbanyeghị netwọkụ na mpaghara, na-eme ka njem ngwungwu dị mfe na enweghị nkebi dị mfe ịnweta gburugburu ụwa.

isi: www.habr.com

Tinye a comment