QUIC protocol i le gaioiga: faʻafefea ona faʻaogaina e Uber e faʻamalieina ai le faʻatinoga

O le QUIC protocol e matua manaia tele e matamata, o le mea lea matou te fiafia ai e tusi e uiga i ai. Ae afai o lomiga talu ai e uiga i le QUIC e sili atu o se tala faasolopito (talafaasolopito i le lotoifale, pe a e fiafia i ai) natura ma meafaigaluega, i aso nei matou te fiafia e lolomiina se faaliliuga o se isi ituaiga - o le a matou talanoa e uiga i le faʻaaogaina moni o le protocol i le 2019. E le gata i lea, matou te le o talanoa e uiga i atinaʻe laiti e faʻavae i totonu o se fale taʻavale, ae e uiga i Uber, lea e toetoe lava o le lalolagi atoa. Na fa'afefea ona faia e le au inisinia a le kamupani le filifiliga e fa'aoga le QUIC i le gaosiga, pe fa'apefea ona latou faia su'ega ma mea na latou va'aia ina ua uma ona ta'avale i fafo i le gaosiga - i lalo ifo o le tipi.

O ata e mafai ona kiliki. Fiafia faitau!

QUIC protocol i le gaioiga: faʻafefea ona faʻaogaina e Uber e faʻamalieina ai le faʻatinoga

Uber o loʻo i ai le tulaga faʻavaomalo, e taʻua o 600 aai o loʻo i ai, i ia mea taʻitasi e faʻalagolago atoa le talosaga i luga ole Initaneti uaealesi mai le sili atu i le 4500 telefoni feaveaʻi. E faʻamoemoe tagata faʻaoga e le naʻo le vave, ae i le taimi moni - ina ia ausia lenei mea, o le Uber app e manaʻomia le maualalo o le latency ma se fesoʻotaʻiga faʻalagolago. Talofa, ae o le faaputuga HTTP / 2 e le lelei i feso'ota'iga uaealesi fa'amalosi ma fa'aletonu. Na matou iloa i lenei tulaga, o le maualalo o le faʻatinoga e fesoʻotaʻi saʻo ma le TCP faʻatinoga i le faʻaogaina o kernels system.

Ina ia foia le faafitauli, sa matou talosaga FUA, o se auala faʻaonaponei multiplexing protocol lea e tuʻuina mai ai ia i tatou le tele o le puleaina o le faʻatinoga o le felauaiga o felauaiga. Ole taimi nei ole vaega galue IETF fa'asalaina QUIC pei HTTP / 3.

Ina ua mae'a su'esu'ega tele, na matou fa'ai'u ai o le fa'atinoina o le QUIC i la matou talosaga o le a i'u ai i lalo ifo o le si'usi'u fa'atusatusa i le TCP. Na matou matauina se faʻaitiitiga o le 10-30% mo fefaʻatauaiga HTTPS i le avetaʻavale ma pasese talosaga. Na tu'uina mai fo'i e QUIC ia i matou le fa'atonuga pito i tua i luga o afifi fa'aoga.

I totonu o lenei tusiga, matou te faʻasoa atu lo matou poto masani i le faʻaogaina o le TCP mo Uber talosaga e faʻaaoga ai se faaputuga e lagolagoina le QUIC.

Le tekonolosi fou: TCP

I aso nei, o le TCP o le faʻaogaina tele o felauaiga faʻasalalauga mo le tuʻuina atu o fefaʻatauaiga HTTPS i luga ole Initaneti. O le TCP e maua ai le fa'atuatuaina o paita, e fa'afetauia ai le fa'aletonu o feso'otaiga ma feso'ota'iga fa'aletonu. O le lautele o le faʻaogaina o le TCP mo le HTTPS fefaʻatauaʻiga e mafua ona o le faʻaogaina muamua (toetoe lava o OS uma o loʻo i ai le TCP), avanoa i luga o le tele o atinaʻe (e pei o paleni uta, HTTPS proxies ma CDN), ma fafo-o-le-pusa galuega o loʻo avanoa. i luga o le tele o faʻasalalauga ma fesoʻotaʻiga.

O le tele o tagata fa'aoga latou te fa'aogaina le matou app i luga o le alu, ma le TCP si'usi'u latency e leai se mea e latalata i mana'oga o la matou fefa'ataua'iga HTTPS taimi moni. I se faaupuga faigofie, o tagata faʻaoga i le lalolagi atoa ua oʻo i lenei mea - Ata 1 o loʻo faʻaalia ai le tuai i taulaga tetele:

QUIC protocol i le gaioiga: faʻafefea ona faʻaogaina e Uber e faʻamalieina ai le faʻatinoga
Ata 1: E ese'ese le taofiofia o si'usi'u i 'a'ai autu a Uber.

E ui lava o le taofiofia o fesoʻotaʻiga Initia ma Pasila e maualuga atu nai lo le US ma Peretania, o le siʻusiʻu e sili atu le maualuga nai lo le averesi. Ma e moni lava lenei mea mo le US ma Peretania.

TCP i luga o le faatinoga o le ea

TCP na faia mo uaea feso'ota'iga, o lona uiga, fa'atasi ai ma le fa'amamafa i so'otaga sili ona va'aia. Peitai, uaealesi feso'ota'iga ei ai o latou lava uiga ma faigata. Muamua, o feso'ota'iga uaealesi e faigofie ona gau ona o le fa'alavelave ma le fa'aitiitia o fa'ailo. Mo se faʻataʻitaʻiga, o fesoʻotaʻiga Wi-Fi e maʻaleʻale i microwave, Bluetooth ma isi galu leitio. O feso'ota'iga feavea'i e mafatia i fa'ailo leiloa (ala leiloa) ona o le atagia / faʻaogaina o le faailo e mea faitino ma fale, faʻapea foʻi mai fa'alavelave mai tuaoi olo sela. E mafua ai ona sili atu le taua (4-10 taimi) ma sili atu ona eseese tuai malaga toe fo'i (RTT) ma le pa'u leiloa pe a fa'atusatusa i se feso'ota'iga uaea.

Ina ia fa'afetauia le fete'ena'i ma gau, o feso'ota'iga feavea'i e masani ona fa'aogaina pupuni tetele mo fe'avea'i. E mafai ona o'o atu ai i le tele o laina, o lona uiga e umi atu le tuai. E masani lava ona fa'aogaina e le TCP lenei fa'asologa e pei o se otaota ona o se taimi fa'aumi, o lea e fa'asolosolo ai le TCP ma fa'atumu ai le pa. O lenei faafitauli ua lauiloa o fa'afefete (tele fa'apalapala feso'ota'iga, pa'u fa'apala), ma o le mea sili lea faafitauli ogaoga Initaneti faaonaponei.

Ma le mea mulimuli, o le fa'atinoga o feso'ota'iga feavea'i e fesuisuia'i i le va'ava'a, itulagi, ma le taimi. I le Ata 2, na matou aoina le tuai o le HTTPS felauaiga i luga o sela i totonu o le 2-kilomita mamao. Fa'amaumauga na aoina mo le lua telefoni feavea'i i Delhi, Initia. E pei ona e va'aia, e eseese le fa'atinoga mai lea sela i lea sela. E le gata i lea, o le gaosiga o le tasi tagata faigaluega e ese mai le gaosiga o le lona lua. E a'afia lenei mea i mea e pei o fa'asologa o feso'ota'iga e fa'atatau i le taimi ma le nofoaga, fe'avea'i tagata fa'aoga, fa'apea fo'i ma atina'e feso'ota'iga e fa'atatau i le tele o olo ma le fua faatatau o ituaiga feso'ota'iga (LTE, 3G, ma isi).

QUIC protocol i le gaioiga: faʻafefea ona faʻaogaina e Uber e faʻamalieina ai le faʻatinoga
Ata 2. Fa'atuai i le fa'aaogaina o le 2 km radius e fai ma fa'ata'ita'iga. Delhi, Initia.

E le gata i lea, o le faʻatinoga o fesoʻotaʻiga feaveaʻi e fesuisuiaʻi i le taimi. O le ata 3 o lo'o fa'aalia ai le vaeluagalemu ile aso ole vaiaso. Na matou matauina foi eseesega i se fua laʻititi, i totonu o le aso e tasi ma le itula.

QUIC protocol i le gaioiga: faʻafefea ona faʻaogaina e Uber e faʻamalieina ai le faʻatinoga
Ata 3. Fa'atuai si'usi'u e mafai ona eseese tele i le va o aso, ae mo le tagata lava e tasi.

O mea uma o loʻo i luga e mafua ai ona le aoga le TCP i fesoʻotaʻiga uaea. Ae peita'i, a'o le'i va'ava'ai mo isi mea i le TCP, sa matou mana'o e atia'e se malamalama sa'o i mea nei:

  • O le TCP o le fa'alavelave autu lea i tua o le si'u si'usi'u i totonu oa tatou talosaga?
  • O feso'ota'iga fa'aonaponei e iai ni fa'atuai fa'amulimuli (RTT)?
  • O le a le a'afiaga o le RTT ma le gau ile TCP fa'atinoga?

TCP Su'esu'ega Fa'atinoga

Ina ia malamalama i le auala na matou suʻesuʻeina ai le TCP faʻatinoga, seʻi o tatou vaʻavaʻai i le auala e faʻafeiloaʻi ai e le TCP faʻamatalaga mai se tagata e auina atu i se tagata e taliaina. Muamua, e faʻatuina e le tagata faʻasalalau se fesoʻotaʻiga TCP, faʻatino se auala e tolu lululima: E auina atu e le tagata e auina atu se pusa SYN, faatali mo se pusa SYN-ACK mai le tagata e taliaina, ona auina atu lea o se pusa ACK. O le isi pasi lona lua ma le tolu o loʻo faʻaalu i le faʻavaeina o le TCP fesoʻotaʻiga. E fa'ailoa e le tagata e mauaina le mauaina o pepa ta'itasi (ACK) e fa'amautinoa ai le fa'atuatuaina o le tu'uina atu.

Afai e leiloa se pepa po'o se ACK, e toe fa'asalalau atu le tagata e lafo pe a mae'a le taimi (RTO, toe fa'asalalau taimi fa'agata). O le RTO e fa'atatauina ma le malosi e fa'atatau i mea eseese, e pei o le fa'atuai o le RTT i le va o le tagata e auina atu ma le tagata e mauaina.

QUIC protocol i le gaioiga: faʻafefea ona faʻaogaina e Uber e faʻamalieina ai le faʻatinoga
Ata 4. Fa'afesuia'i pepa i luga ole TCP/TLS e aofia ai se faiga toe fa'aliliuina.

Ina ia iloa pe faʻafefea ona faʻatino TCP i a matou talosaga, matou te mataʻituina le faʻaogaina o pepa TCP tcpdump mo le vaiaso i luga o fefaʻatauaʻiga o feʻaveaʻi e sau mai faʻaumau pito Initia. Ona matou suʻesuʻeina lea o fesoʻotaʻiga TCP faʻaaoga tcptrace. E le gata i lea, na matou faia se talosaga Android e auina atu faʻataʻitaʻiga faʻataʻitaʻiga i se suʻega suʻega, faʻataʻitaʻiina auala moni i le tele e mafai ai. O telefoni feaveaʻi ma lenei talosaga na tufatufa atu i le tele o tagata faigaluega, oe na aoina ogalaau i ni nai aso.

O fa'ai'uga o fa'ata'ita'iga e lua na tutusa le tasi ma le isi. Na matou vaaia le maualuga o le RTT latencies; tau si'usi'u e toetoe lava 6 taimi maualuga atu nai lo le tau ogatotonu; o le averesi fa'atusa o fa'atuai e sili atu i le 1 sekone. Le tele o feso'ota'iga na leiloa, ma mafua ai ona toe fa'asalalau e TCP le 3,5% o pepa uma. I nofoaga tumutumu e pei o malaevaalele ma nofoaga o nofoaafi, na matou vaaia le 7% gau. O nei fa'ai'uga na mafua ai le masalosalo i le poto masani o lo'o fa'aogaina i feso'otaiga feavea'i ta'amilosaga toe fa'asalalau atu matua fa'aitiitia tupe gau ile tulaga felauaiga. Lalo o faʻaiʻuga o suʻega mai le "simulator" talosaga:

Fuafuaga feso'ota'iga
Uiga

RTT, miliseconds [50%,75%, 95%,99%]
[350, 425, 725, 2300]

RTT ese'esega, sekone
I le averesi ~ 1,2 s

Ua leiloa le afifi i so'otaga le mautu
Averesi ~3.5% (7% i nofoaga ua ova le uta)

Toeitiiti o le afa o nei feso'ota'iga e le itiiti ifo ma le tasi le pepa na leiloa, o le tele o latou SYN ma SYN-ACK pepa. O le tele o fa'atinoga o le TCP e fa'aaoga ai le tau RTO o le 1 sekone mo pa'u SYN, lea e fa'atuputeleina fa'atuputeleina mo tupe leiloa mulimuli ane. E mafai ona fa'atupula'ia taimi e utaina ai talosaga ona o le umi o le TCP e fa'atūina ai feso'ota'iga.

I le tulaga o faʻamaumauga o faʻamaumauga, o le maualuga o le RTO o loʻo faʻaitiitia ai le faʻaogaina o le fesoʻotaʻiga i le i ai o le leiloa le tumau i fesoʻotaʻiga uaea. Na matou iloa o le averesi o le toe faʻasalalau taimi e tusa ma le 1 sekone ma le faʻatuai o le siʻusiʻu e toetoe lava 30 sekone. O nei tulaga maualuga i le tulaga o le TCP na mafua ai le taimi ole HTTPS ma toe talosaga, faʻateleina le faʻaogaina o fesoʻotaiga ma le le lelei.

A'o le 75th pasene o le RTT fuaina e tusa ma le 425 ms, o le 75th pasene mo TCP e toetoe lava 3 sekone. O lo'o fa'ailoa mai o le gau na mafua ai ona ave e le TCP le 7-10 pasi e fa'asolo lelei ai fa'amatalaga. Atonu o se taunuuga o le le lelei o le fuafuaina o le RTO, le mafai e le TCP ona vave tali atu i mea leiloa afifi fou i le faʻamalama ma le le atoatoa o le faʻaogaina o le faʻaogaina o le algorithm, lea e le iloa ai le va o le leiloa o le uaea ma le leiloa ona o le faʻaogaina o fesoʻotaiga. O lo'o i lalo i'uga o su'ega leiloa TCP:

TCP packet loss statistics
tāua

Pasene o feso'ota'iga ma le itiiti ifo ma le 1 le pepa leiloa
45%

Pasene o feso'ota'iga ma gau a'o seti feso'ota'iga
30%

Pasene o feso'ota'iga ma gau a'o fesuia'i fa'amatalaga
76%

Fa'asoasoaina o le tuai i le toe fa'asalalauina, sekone [50%, 75%, 95%,99%] [1, 2.8, 15, 28]

Tufatufaina o le numera o toe fa'asalalauina mo le tasi afifi po'o le vaega TCP
[1,3,6,7]

Fa'aaogāga ole QUIC

O le QUIC na fa'avaeina muamua e Google, o se fa'asologa o felauaiga fa'aonaponei fa'aonaponei e fa'asolo i luga ole UDP. Ole taimi nei ole QUIC ile faiga fa'ata'atia (ua uma ona matou tusia o loʻo i ai, e pei ona i ai, lua faʻasologa o QUIC, fiailoa e mafai ona mulimuli i le sootaga – tusa. faaliliu). E pei ona faʻaalia i le Ata 5, QUIC o loʻo tuʻuina i lalo o le HTTP / 3 (o le mea moni, HTTP / 2 i luga o le QUIC o le HTTP / 3, lea o loʻo faʻatulagaina nei). E sui vaega ole HTTPS ma le TCP layers e ala i le faʻaogaina o le UDP e fai ai pusa. E na'o le lagolagoina e QUIC le fa'aliliuina atu o fa'amatalaga fa'amautu a'o fa'apipi'i atoatoa le TLS ile QUIC.

QUIC protocol i le gaioiga: faʻafefea ona faʻaogaina e Uber e faʻamalieina ai le faʻatinoga
Ata 5: QUIC o loʻo tamoe i lalo o HTTP / 3, sui TLS, lea na tamoe muamua i lalo o HTTP / 2.

O loʻo i lalo mafuaʻaga na faʻamalosia ai i matou e faʻaoga le QUIC mo le faʻalauteleina o le TCP:

  • 0-RTT fa'avae feso'ota'iga. QUIC fa'atagaina le toe fa'aogaina o fa'atagaga mai feso'ota'iga muamua, fa'aitiitia le numera o lulu lima saogalemu. I le lumana'i TLS1.3 o le a lagolagoina le 0-RTT, ae o le a mana'omia pea le lululima TCP e tolu.
  • faatoilaloina le poloka o le HoL. HTTP/2 fa'aogaina le tasi TCP feso'ota'iga i le tagata o tausia e fa'aleleia ai le fa'atinoga, ae e mafai ona ta'ita'ia ai le poloka o le HoL (ulu-o-laina). QUIC fa'afaigofieina fa'atelega ma tu'uina atu talosaga i le talosaga tuto'atasi.
  • fa'atonuga o le fa'atosina. QUIC o loʻo nofo i luga o le laulau talosaga, faʻafaigofie le faʻafouina o le felauaiga autu algorithm lea e pulea le auina atu e faʻavae i luga o laina fesoʻotaʻiga (numera o gau poʻo RTT). O le tele o faʻatinoga TCP faʻaaogaina le algorithm KUPIKO, lea e le'o sili ona lelei mo fe'avea'i ma'ale'ale. Fa'ato'a atina'e algorithms pei BBR, fa'ata'ita'i sa'o le feso'ota'iga ma fa'asilisili le leo. QUIC faʻatagaina oe e faʻaaoga le BBR ma faʻafouina lenei algorithm pe a faʻaaogaina. faaleleia.
  • toe fa'atumuina o gau. QUIC telefoni TLP e lua (su'esu'e leiloa si'usi'u) a'o le'i fa'aoso le RTO - tusa lava pe matua iloga le gau. E ese lenei mea mai TCP faʻatinoga. O le TLP e toe fa'afo'i fa'apea le ato mulimuli (po'o le mea fou, pe a iai) e fa'aosofia ai le toe fa'atumu vave. O le taulimaina o le tuai o si'usi'u e sili ona aoga mo le auala e fa'aogaina ai e Uber lana feso'ota'iga, e ta'ua mo fa'amatalaga pu'upu'u, fa'asolosolo, ma fa'agasolo maaleale.
  • ACK sili ona lelei. Talu ai o pepa taʻitasi e iai se numera faʻasologa tulaga ese, e leai se faʻafitauli eseesega afifi pe a toe lafoina. O pusa ACK e iai fo'i le taimi e fa'agasolo ai le pepa ma fa'atupu se ACK i le itu o tagata o tausia. O nei vaega e fa'amautinoa ai e sa'o lelei le fa'atatauina e le QUIC o le RTT. ACK i le QUIC lagolago i le 256 bands NACK, fesoasoani i le tagata o lo'o auina atu ia sili atu ona maufetuuna'i i le fa'afefeteina o pusa ma fa'aoga ni nai paita i le faagasologa. ACK filifilia (TATAU) i le TCP e le foia lenei faafitauli i tulaga uma.
  • feso'ota'iga femalagaiga. O feso'ota'iga QUIC e fa'ailoa mai ile 64-bit ID, o lea afai e suia e le tagata o tausia tuatusi IP, o le ID feso'ota'iga tuai e mafai ona fa'aauau ona fa'aoga ile tuatusi IP fou e aunoa ma le fa'alavelave. Ose faiga masani tele lea mo telefoni feavea'i e sui ai le tagata fa'aoga i le va o le Wi-Fi ma feso'ota'iga feavea'i.

Su'ega ile QUIC

Sa matou iloiloina isi auala e foia ai le faafitauli ae le'i filifilia le QUIC.

O le mea muamua na matou taumafai o le faʻaogaina o TPC PoPs (Points of Presence) e faʻamutaina fesoʻotaʻiga TCP latalata i tagata faʻaoga. O le mea moni, e fa'amutaina e PoPs se feso'ota'iga TCP ma se masini feavea'i e latalata i le feso'ota'iga telefoni feavea'i ma sui le felauaiga i tua i le ulua'i atina'e. E ala i le faʻamutaina o le TCP, e mafai ona tatou faʻaitiitia le RTT ma faʻamautinoa o le TCP e sili atu ona tali atu i se siosiomaga faʻavavevave. Ae ui i lea, o matou suʻesuʻega ua faʻaalia ai o le tele o le RTT ma le leiloa e sau mai fesoʻotaʻiga telefoni feaveaʻi ma o le faʻaaogaina o PoPs e le maua ai se faʻaleleia atili o galuega.

Na matou vaʻavaʻai foʻi i le faʻaogaina o tapulaʻa TCP. O le fa'atūina o se fa'aputuga TCP i luga o a matou 'au'aunaga pito eseese sa faigata ona o le TCP o lo'o i ai fa'atinoga eseese i vaega eseese o OS. Sa faigata ona faʻatinoina lenei mea ma faʻataʻitaʻi faʻasalalauga fesoʻotaʻiga eseese. O le fa'atulagaina sa'o o le TCP i masini feavea'i na le mafai ona o le leai o ni fa'atagaga. Ae sili atu ona taua, o foliga e pei o le 0-RTT fesoʻotaʻiga ma le faʻaleleia o le RTT vaʻaiga e taua tele i le fausaga o le protocol, ma o le mea lea e le mafai ai ona maua ni faʻamanuiaga taua e ala i le faʻaogaina o le TCP naʻo ia.

Mulimuli ane, na matou iloiloina le tele o tulafono faʻavae UDP e faʻafefe ai le faʻafefe o vitio-matou te fia vaʻai pe o le a fesoasoani nei tulafono i la matou mataupu. Ae paga lea, sa matua le lava i latou i le tele o tulaga saogalemu, ma sa manaʻomia foʻi se fesoʻotaʻiga TCP faaopoopo mo metadata ma faʻamatalaga faʻatonutonu.

O a matou suʻesuʻega ua faʻaalia ai o le QUIC atonu e na o le pau lea o le faʻasalalauga e mafai ona fesoasoani i le faʻafitauli o fefaʻatauaiga i luga ole Initaneti, aʻo faʻaogaina uma le saogalemu ma le faʻatinoga.

Tu'ufa'atasiga ole QUIC ile fa'avae

Ina ia manuia le faʻapipiʻiina o le QUIC ma faʻaleleia le faʻatinoga o le faʻaogaina i siosiomaga le lelei o fesoʻotaʻiga, na matou suia le faaputuga tuai (HTTP/2 i luga o TLS/TCP) i le QUIC protocol. Sa matou fa'aogaina le faletusi feso'ota'iga Cronet mai Poloketi Chromium, lea o lo'o iai le ulua'i, Google version of the protocol - gQUIC. O lenei fa'atinoga o lo'o fa'aleleia pea lava pea ina ia mulimulita'i i fa'amatalaga lata mai a le IETF.

Na matou tu'ufa'atasia muamua le Cronet i a matou polokalama Android e fa'aopoopo le lagolago mo QUIC. Sa fa'atinoina le tu'ufa'atasiga i se auala e fa'aitiitia ai tau o femalaga'iga i le tele e mafai ai. Nai lo le suia atoa o le upega o upegatafa'ilagi tuai na fa'aogaina le faletusi OkHttp, ua matou tuʻufaʻatasia Cronet I LALO o le OkHttp API faʻavae. I le faia o le tuʻufaʻatasia i lenei auala, matou te aloese mai suiga i a matou fesoʻotaʻiga telefoni (lea e faʻaaogaina e Faʻafoʻi) i le tulaga API.

E tutusa ma le auala mo masini Android, na matou faʻatinoina Cronet i Uber apps i luga o iOS, faʻalavelaveina fefaʻatauaʻiga HTTP mai fesoʻotaiga. APIfaʻaaogaina NSURLProtocol. O lenei va'aiga, saunia e le iOS Foundation, e fa'atautaia fa'amaumauga URL fa'apitoa ma fa'amautinoa e mafai ona matou tu'ufa'atasia le Cronet i totonu oa tatou talosaga iOS e aunoa ma se tau tele o femalagaiga.

Fa'auma QUIC ile Google Cloud Balancers

I le pito i tua, QUIC faʻamaeʻaina o loʻo tuʻuina atu e le Google Cloud Load paleni atinaʻe, lea e faʻaaogaina alt-svc ulutala i tali e lagolago ai le QUIC. I se tulaga lautele, e faaopoopo e le paleni se ulutala alt-svc i talosaga HTTP taitasi, ma ua uma ona faʻamaonia le lagolago QUIC mo le vaega. A maua e le kalani Cronet se tali HTTP i lenei ulutala, e fa'aogaina le QUIC mo talosaga HTTP mulimuli ane i lena vaega. A maeʻa loa e le paleni le QUIC, o matou atinaʻe e tuʻuina atu ma le manino lenei gaioiga i luga o HTTP2/TCP i matou nofoaga autu.

Fa'atinoga: I'uga

O fa'atinoga fa'atino o le mafua'aga autu lea mo la matou su'esu'ega mo se fa'asologa sili atu. I le amataga, na matou fatuina se tulaga ma fa'ata'ita'iga feso'ota'igae su'e pe fa'afefea le amio a le QUIC i lalo o fa'amatalaga feso'otaiga eseese. Ina ia faʻataʻitaʻi le faʻatinoga a le QUIC i luga o fesoʻotaʻiga i le lalolagi moni, sa matou faʻataʻitaʻiina aʻo taʻavale solo i New Delhi e faʻaogaina ai fesoʻotaʻiga faʻataʻitaʻiga e tutusa lelei ma HTTP telefoni i le pasese app.

Fa'ata'ita'iga 1

Meafaigaluega mo le suʻega:

  • fa'ata'ita'i masini Android ma OkHttp ma Cronet fa'aputuga e fa'amautinoa ai matou te fa'atagaina fefa'ataua'iga HTTPS i luga o le TCP ma le QUIC;
  • se 'au'aunaga fa'ata'ita'iga fa'avae Java e tu'uina atu le ituaiga tutusa o ulutala HTTPS i tali ma utaina masini tagata fa'atau e maua ai talosaga mai ia i latou;
  • cloud proxies o lo'o tu fa'atasi i Initia e fa'agata ai feso'ota'iga TCP ma QUIC. A'o mo le fa'amutaina o le TCP sa matou fa'aogaina se sui sui i luga NGINX, sa faigata ona su'e se sui fa'afoliga matala mo QUIC. Na matou fausia se sui sui mo QUIC i matou lava e faʻaaoga ai le QUIC stack mai Chromium ma lomia i le chromium e avea ma punaoa tatala.

QUIC protocol i le gaioiga: faʻafefea ona faʻaogaina e Uber e faʻamalieina ai le faʻatinogaQUIC protocol i le gaioiga: faʻafefea ona faʻaogaina e Uber e faʻamalieina ai le faʻatinoga
Ata 6. O le TCP vs QUIC su'ega su'ega auala e aofia ai masini Android ma OkHttp ma Cronet, sui o le ao mo le fa'amutaina o feso'ota'iga, ma se fa'aumau fa'atusa.

Fa'ata'ita'iga 2

Ina ua fa'aavanoaina e Google le QUIC ma Google Cloud Load Paleni, sa matou fa'aogaina le su'esu'ega tutusa, ae tasi le suiga: nai lo le NGINX, matou ave Google load balancers e fa'amutaina TCP ma QUIC feso'ota'iga mai masini, fa'apea fo'i ma le fa'auluina o fefa'ataua'iga HTTPS i le server emulation. Paleni e tufatufa atu i le lalolagi atoa, ae faʻaaoga le PoP server sili ona latalata ile masini (faʻafetai ile geolocation).

QUIC protocol i le gaioiga: faʻafefea ona faʻaogaina e Uber e faʻamalieina ai le faʻatinoga
Ata 7. I le fa'ata'ita'iga lona lua, na matou manana'o e fa'atusatusa le fa'amae'aina o le TCP ma le QUIC: fa'aaoga le Google Cloud ma le fa'aogaina o la matou sui o le ao.

O se taunuuga, e tele faaaliga o loo faatalitali mai ia i tatou:

  • fa'amutaina e ala i le PoP fa'aleleia le TCP. Talu ai e fa'amutaina e tagata paleni feso'ota'iga TCP latalata i tagata fa'aoga ma e sili ona lelei, o lea e maua ai le maualalo o RTT, lea e fa'aleleia ai le TCP. Ma e ui lava ina itiiti le afaina o le QUIC, ae na sili atu le TCP i le tulaga o le faʻaitiitia o le siʻusiʻu (i le 10-30 pasene).
  • ua afaina si'usi'u feso'otaiga vavave. E ui lava o le matou sui QUIC e sili atu mai masini (pe a ma le 50 ms le maualuga o le latency) nai lo Google's load balancers, na faʻaalia ai le faʻatinoga tutusa - o le 15% faʻaitiitiga i le latency ma le 20% faʻaitiitiga i le 99th pasene mo TCP. O lo'o ta'u mai ai o le suiga ole maila mulimuli o se fagufa'atasi ile feso'otaiga.

QUIC protocol i le gaioiga: faʻafefea ona faʻaogaina e Uber e faʻamalieina ai le faʻatinogaQUIC protocol i le gaioiga: faʻafefea ona faʻaogaina e Uber e faʻamalieina ai le faʻatinoga
Ata 8: O fa'ai'uga mai su'esu'ega e lua ua fa'aalia ai le maualuga o le QUIC i le TCP.

Fete'ena feoaiga

Fa'aosofia e le fa'ata'ita'iga, ua matou fa'atinoina le lagolago QUIC i a matou polokalama Android ma iOS. Sa matou faia su'ega A/B e iloa ai le a'afiaga o le QUIC i 'a'ai o lo'o fa'agaioi ai le Uber. I se tulaga lautele, na matou vaʻaia se faʻaititia tele o faʻatuai o siʻusiʻu i itu uma e lua, telefoni feaveaʻi ma ituaiga fesoʻotaʻiga.

O kalafi o loʻo i lalo o loʻo faʻaalia ai le faʻaleleia o le pasene o siʻusiʻu (95 ma le 99 pasene) e le macro-region ma ituaiga fesoʻotaʻiga eseese - LTE, 3G, 2G.
QUIC protocol i le gaioiga: faʻafefea ona faʻaogaina e Uber e faʻamalieina ai le faʻatinogaQUIC protocol i le gaioiga: faʻafefea ona faʻaogaina e Uber e faʻamalieina ai le faʻatinoga
Ata 9. I su'ega tau, QUIC na sili atu le TCP i tulaga o le taofiofia.

Na'o luma

Masalo ua naʻo le amataga lea - o le tuʻuina atu o le QUIC i le gaosiga ua maua ai avanoa ofoofogia e faʻaleleia ai le faʻatinoga o talosaga i fesoʻotaʻiga mautu ma le le mautonu, e pei o:

Fa'ateleina le inisiua

I le iloiloina o le faʻatinoga o le faʻasalalauga i luga o fefaʻatauaiga moni, na matou iloa ai e tusa ma le 80% o vasega na faʻaaoga lelei le QUIC mo всех talosaga, a'o 15% o vasega na fa'aogaina se tu'ufa'atasiga ole QUIC ma le TCP. Matou te manatu o le tuʻufaʻatasiga e mafua ona o le taimi o le faletusi a Cronet e toe foʻi i le TCP, talu ai e le mafai ona iloa le va o le faʻaletonu UDP moni ma tulaga le lelei o fesoʻotaiga. O lo'o matou va'ava'ai nei i se fofo i lenei fa'afitauli a'o matou galulue aga'i i le fa'atinoina o le QUIC.

QUIC sili ona lelei

Fefa'ataua'iga mai polokalama feavea'i e ma'ale'ale ma'ale'ale, ae le ma'ale'ale bandwidth. E le gata i lea, o a matou talosaga e faʻaaoga muamua i luga o fesoʻotaiga feaveaʻi. Fa'avae i fa'ata'ita'iga, o lo'o maualuga pea si'usi'u e ui ina fa'aaoga se sui e fa'amutaina TCP ma QUIC latalata i tagata fa'aoga. O loʻo matou vaʻavaʻai malosi mo auala e faʻaleleia ai le faʻaogaina o le faʻaogaina ma faʻaleleia le lelei o le QUIC loss recovery algorithms.

Faatasi ai ma nei mea ma le tele o isi faʻaleleia, matou te fuafua e faʻaleleia le poto masani o tagata e tusa lava po o le a le fesoʻotaʻiga ma le itulagi, faʻafaigofie ma faʻaogaina pusa felauaiga sili atu ona maua i le lalolagi atoa.

puna: www.habr.com

Faaopoopo i ai se faamatalaga