Protocol ea QUIC e sebetsa: kamoo Uber e e sebelisitseng ho ntlafatsa ts'ebetso

Protocol ea QUIC e khahla haholo ho e shebella, ke ka lebaka leo re ratang ho ngola ka eona. Empa haeba lingoliloeng tse fetileng mabapi le QUIC e ne e le tsa nalane (nalane ea lehae, haeba u rata) tlhaho le lisebelisoa, kajeno re thabela ho phatlalatsa phetolelo ea mofuta o fapaneng - re tla bua ka ts'ebeliso ea 'nete ea protocol ka 2019. Ho feta moo, ha re bue ka meaho e menyenyane e thehiloeng ho seo ho thoeng ke karache, empa ka Uber, e sebetsang hoo e batlang e le lefats'e ka bophara. Baenjineri ba k'hamphani ba fihletse qeto ea ho sebelisa QUIC joang tlhahisong, kamoo ba entseng liteko le seo ba se boneng kamora ho e hlahisa tlhahiso - ka tlase ho sehiloeng.

Litšoantšo lia penya. Natefeloa ke ho bala!

Protocol ea QUIC e sebetsa: kamoo Uber e e sebelisitseng ho ntlafatsa ts'ebetso

Uber e na le sekala sa lefats'e, e leng litoropo tse 600 tsa boteng, ho e 'ngoe le e 'ngoe eo ts'ebeliso e itšetlehileng ka botlalo ho Marang-rang a se nang mohala ho tsoa ho li-cellular operators tse fetang 4500. Basebelisi ba lebelletse hore sesebelisoa ha se potlake feela, empa ka nako ea nnete - ho fihlela sena, sesebelisoa sa Uber se hloka latency e tlase le khokahano e tšepahalang haholo. Oho, empa stack HTTP / 2 ha e sebetse hantle ho marang-rang a matla le a lahleheloang ke mohala. Re ile ra hlokomela hore tabeng ena, ts'ebetso e tlaase e amana ka ho toba le ts'ebetsong ea TCP ho li-kernel tsa tsamaiso ea tsamaiso.

Ho rarolla bothata, re ile ra etsa kopo QUIC, protocol ea sejoale-joale ea li-channel multiplexing e re fang taolo e eketsehileng holim'a ts'ebetso ea protocol ea lipalangoang. Hona joale sehlopha se sebetsang IETF standardizes QUIC e le HTTP / 3.

Ka mor'a tlhahlobo e pharaletseng, re ile ra etsa qeto ea hore ho kenya ts'ebetsong QUIC ts'ebetsong ea rona ho tla fella ka ho fokotseha ha mohatla ha ho bapisoa le TCP. Re bone phokotseho ea mefuta e fapaneng ea 10-30% bakeng sa sephethephethe sa HTTPS lits'ebetsong tsa mokhanni le bapalami. QUIC e boetse e re file taolo ea ho qetela ho liphutheloana tsa basebelisi.

Sehloohong sena, re arolelana boiphihlelo ba rona ba ho ntlafatsa TCP bakeng sa lits'ebetso tsa Uber re sebelisa stack e tšehetsang QUIC.

Theknoloji ea morao-rao: TCP

Kajeno, TCP ke protocol e sebelisoang haholo ea lipalangoang bakeng sa ho fana ka sephethephethe sa HTTPS Marang-rang. TCP e fana ka molapo o tšepahalang oa li-byte, ka hona o sebetsana le tšubuhlellano ea marang-rang le tahlehelo ea lera la khokahanyo. Tšebeliso e pharalletseng ea TCP bakeng sa sephethephethe sa HTTPS e bakoa ke ho ata ha pele (hoo e batlang e le OS e 'ngoe le e' ngoe e na le TCP), ho fumaneha lits'ebetsong tse ngata (tse kang li-balancers tsa mojaro, li-proxies tsa HTTPS le li-CDN), le ts'ebetso ea kantle ho lebokose e fumanehang. hoo e batlang e le li-platform le marang-rang.

Basebelisi ba bangata ba sebelisa sesebelisoa sa rona ha ba le tseleng, 'me li-latency tsa TCP li ne li se haufi le litlhoko tsa sephethephethe sa rona sa HTTPS sa nako ea nnete. Ka mantsoe a bonolo, basebelisi lefats'eng lohle ba bile le phihlelo ena - Setšoantšo sa 1 se bontša tieho metseng e meholo:

Protocol ea QUIC e sebetsa: kamoo Uber e e sebelisitseng ho ntlafatsa ts'ebetso
Setšoantšo sa 1: Ho lieha ha mohatla ho fapana ho pholletsa le litoropo tse kholo tsa Uber.

Leha latency ho marang-rang a India le Brazil e ne e phahame ho feta US le UK, latency ea mohatla e phahame haholo ho feta latency e tloaelehileng. 'Me sena ke' nete esita le ho US le UK.

TCP holim'a ts'ebetso ea moea

TCP e entsoe bakeng sa thapo marang-rang, ke hore, ka ho toboketsa lihokelo tse ka tsejoang esale pele. Leha ho le joalo, waelese marang-rang a na le litšobotsi le mathata a bona. Taba ea pele, marang-rang a se nang mohala a kotsing ea tahlehelo ka lebaka la tšitiso le ho fokotsa matšoao. Mohlala, marang-rang a Wi-Fi a na le kutloelo-bohloko ho li-microwaves, bluetooth le maqhubu a mang a seea-le-moea. Marang-rang a mehala a na le tahlehelo ea mats'oao (tsela e lahlehileng) ka lebaka la ho bonahatsa/monyo wa lesupa ka dintho le meaho, mmoho le ho tloha tšitiso ho tsoa ho baahisane litora tsa lisele. Sena se lebisa ho bohlokoa ho feta (makhetlo a 4-10) le ho fapana ho feta Nako ea ho Eta le ho Khutla (RTT) le tahlehelo ea pakete ha e bapisoa le khokahanyo ea likhoele.

Ho loantša ho feto-fetoha ha bandwidth le tahlehelo, marang-rang a mehala hangata a sebelisa li-buffers tse kholo bakeng sa ho phatloha ha sephethephethe. Sena se ka lebisa ho meleng e feteletseng, e leng se bolelang tieho e telele. Hangata TCP e nka tatellano ena e le tšenyo ka lebaka la nako e telele, ka hona, TCP e na le ho fetisetsoa morao ebe e tlatsa buffer. Bothata bona bo tsejoa e le bufferbloat (buffer e feteletseng ea marang-rang, buffer bloat), 'me sena se monate haholo bothata bo tebileng Marang-rang a kajeno.

Qetellong, ts'ebetso ea marang-rang ea cellular e fapana ho ea ka sephethephethe, sebaka le nako. Setšoantšong sa 2, re bokelletse tieho ea sephethephethe sa HTTPS ho pholletsa le lisele ka har'a sebaka sa 2-kilometer. Lintlha tse bokelletsoeng bakeng sa li-operators tse peli tse kholo tsa cellular Delhi, India. Joalokaha u ka bona, ts'ebetso e fapana ho ea ka sele ho ea ho sele. Hape, tlhahiso ea opereishene e le 'ngoe e fapana le tlhahiso ea bobeli. Sena se susumetsoa ke lintlha tse kang mekhoa ea ho kena ha marang-rang ho nahanela nako le sebaka, ho tsamaea ha basebelisi, hammoho le lisebelisoa tsa marang-rang tse nahanang ka tora le karo-karolelano ea mefuta ea marang-rang (LTE, 3G, joalo-joalo).

Protocol ea QUIC e sebetsa: kamoo Uber e e sebelisitseng ho ntlafatsa ts'ebetso
Setšoantšo sa 2. Ho lieha ho sebelisa radius ea 2 km e le mohlala. Delhi, India.

Hape, ts'ebetso ea marang-rang a cellular e fapana ho ea ka nako. Setšoantšo sa 3 se bonts'a latency ea bohareng ka letsatsi la beke. Hape re ile ra hlokomela liphapang ka tekanyo e nyenyane, ka hare ho letsatsi le hora e le ’ngoe.

Protocol ea QUIC e sebetsa: kamoo Uber e e sebelisitseng ho ntlafatsa ts'ebetso
Setšoantšo sa 3. Ho lieha ha mohatla ho ka fapana haholo pakeng tsa matsatsi, empa bakeng sa mosebeletsi ea tšoanang.

Tsena tsohle tse kaholimo li etsa hore ts'ebetso ea TCP e se ke ea sebetsa marang-rang a se nang mohala. Leha ho le joalo, pele re batla mekhoa e meng ea TCP, re ne re batla ho hlaolela kutloisiso e nepahetseng lintlheng tse latelang:

  • na TCP ke eona sesosa se ka sehloohong sa ho latella mohatla lits'ebetsong tsa rona?
  • Na marang-rang a sejoale-joale a na le tieho e kholo le e fapaneng ea ho ea le ho khutla (RTT)?
  • Tšusumetso ea RTT le tahlehelo ke efe ts'ebetsong ea TCP?

Tlhahlobo ea Ts'ebetso ea TCP

Ho utloisisa hore na re hlahlobile ts'ebetso ea TCP joang, ha re shebeng kapele kamoo TCP e fetisang data ho tloha ho motho ea e romellang ho ea ho moamoheli. Ntlha ea pele, motho ea romelang o theha khokahanyo ea TCP, a etsa litsela tse tharo ho tsukutla ka letsoho: Motho ea romelang o romela pakete ea SYN, o emetse pakete ea SYN-ACK ho tswa ho moamoheli, ebe o romela pakete ea ACK. Phallo e eketsehileng ea bobeli le ea boraro e sebelisoa ho theha khokahanyo ea TCP. Motho ea amohelang o amohela ho fumana pakete e 'ngoe le e' ngoe (ACK) ho netefatsa hore ho tsamaisoa ka mokhoa o tšepahalang.

Haeba pakete kapa ACK e lahlehile, motho ea e romelang o e fetisetsa ka mor'a nako ea nako (RTO, nako ea phetisetso). RTO e baloa ka matla ho latela lintlha tse fapaneng, joalo ka tieho e lebelletsoeng ea RTT lipakeng tsa moromelli le moamoheli.

Protocol ea QUIC e sebetsa: kamoo Uber e e sebelisitseng ho ntlafatsa ts'ebetso
Setšoantšo sa 4. Phapanyetsano ea liphutheloana ka TCP / TLS e kenyelletsa mokhoa oa ho khutlisa.

Ho tseba hore na TCP e sebelitse joang lits'ebetsong tsa rona, re ile ra shebella lipakete tsa TCP re sebelisa tcpdump bakeng sa beke mabapi le sephethephethe sa ntoa se tsoang ho li-server tsa India. Ka mor'a moo re ile ra hlahloba likhokahano tsa TCP re sebelisa tcptrace. Ho feta moo, re thehile sesebelisoa sa Android se romellang sephethephethe ho seva sa liteko, ho etsisa sephethephethe sa 'nete ka hohle kamoo ho ka khonehang. Li-smartphone tse nang le ts'ebeliso ena li ile tsa abeloa basebetsi ba 'maloa, ba ileng ba bokella lifate ka matsatsi a' maloa.

Liphello tsa liteko ka bobeli li ne li lumellana. Re bone li-latencies tse phahameng tsa RTT; boleng ba mohatla bo ne bo batla bo phahame ka makhetlo a 6 ho feta boleng ba median; karolelano ea lipalo ea tieho e feta motsotsoana o le mong. Likhokahano tse ngata li ne li lahlehile, li etsa hore TCP e khutlisetse 1% ea lipakete tsohle. Libakeng tse petetsaneng joalo ka boemafofane le liteishene tsa literene, re bone tahlehelo ea 3,5%. Liphetho tsena li etsa hore ho be le khoao ka bohlale bo tloaelehileng boo bo sebelisoang mecheng ea cellular lipotoloho tse tsoetseng pele tsa phetiso fokotsa haholo tahlehelo boemong ba lipalangoang. Ka tlase ke liphetho tsa liteko tse tsoang ts'ebelisong ea "simulator":

Metrics ea marang-rang
Melao ea boitšoaro

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

Phapang ea RTT, metsotsoana
Ka karolelano ~ 1,2 s

Ho lahleheloa ke liphutheloana likhokahanong tse sa tsitsang
Karolelano ~ 3.5% (7% libakeng tse tletseng haholo)

Hoo e ka bang halofo ea likhokahano tsena e bile le tahlehelo ea pakete e le 'ngoe, boholo ba eona e le lipakete tsa SYN le SYN-ACK. Boholo ba ts'ebetsong ea TCP bo sebelisa boleng ba RTO ba 1 motsotsoana bakeng sa lipakete tsa SYN, tse eketsang ka potlako bakeng sa tahlehelo e latelang. Linako tsa ho kenya likopo li ka eketseha ka lebaka la hore TCP e nka nako e telele ho theha likhokahano.

Tabeng ea lipakete tsa data, litekanyetso tse phahameng tsa RTO li fokotsa haholo ts'ebeliso e ntle ea marang-rang ha ho na le tahlehelo ea nakoana ho marang-rang a se nang mohala. Re fumane hore nako e tloaelehileng ea phetisetso e batla e le motsotsoana o le mong ka tieho ea metsotsoana e ka bang 1. Li-latencies tsena tse phahameng boemong ba TCP li bakile nako ea HTTPS le likōpo tse ncha, tse ntseng li eketsa latency ea marang-rang le ho se sebetse hantle.

Le hoja karolo ea 75 ea RTT e lekantsoeng e ne e le haufi le 425 ms, 75th percentile bakeng sa TCP e ne e batla e le metsotsoana ea 3. Sena se fana ka maikutlo a hore tahlehelo e entse hore TCP e nke li-pass 7-10 ho fetisetsa data ka katleho. Sena e kanna ea ba litlamorao tsa lipalo tse sa sebetseng tsa RTO, ho se khonehe ha TCP ho arabela tahlehelo kapele. liphutheloana tsa morao-rao ka fensetere le ho se sebetse hantle ha algorithm ea taolo ea tšubuhlellano, e sa khetholleng pakeng tsa tahlehelo ea waelese le tahlehelo ka lebaka la tšubuhlellano ea marang-rang. Ka tlase ke liphetho tsa liteko tsa tahlehelo ea TCP:

Lipalo-palo tsa tahlehelo ea pakete ea TCP
boleng

Peresente ea likhokahano tse nang le bonyane tahlehelo e le 'ngoe ea pakete
45%

Peresente ea likhokahano le tahlehelo nakong ea ho seta khokahano
30%

Peresente ea likhokahano le tahlehelo nakong ea phapanyetsano ea data
76%

Kabo ea ho lieha ha phetisetso, metsotsoana [50%, 75%, 95%,99%] [1, 2.8, 15, 28]

Kabo ea palo ea li-retransmissions bakeng sa pakete e le 'ngoe kapa karolo ea TCP
[1,3,6,7]

Tšebeliso ea QUIC

E qalileng ho hlahisoa ke Google, QUIC ke protocol ea sejoale-joale e nang le likhoele tse ngata e tsamaeang ka holim'a UDP. Hajoale QUIC e kene mokhoa oa maemo (re se re ngotse hore ho na le, joalo ka ha ho le joalo, liphetolelo tse peli tsa QUIC, tse batlang ho tseba e ka latela sehokelo – hoo e ka bang. mofetoleli). Joalokaha ho bontšitsoe ho Setšoantšo sa 5, QUIC e behiloe tlas'a HTTP / 3 (ha e le hantle, HTTP / 2 ka holim'a QUIC ke HTTP / 3, e seng e ntse e e-na le maemo a matla). E nkela sebaka sa HTTPS le TCP sebaka ka ho sebelisa UDP ho etsa lipakete. QUIC e ts'ehetsa phetiso e sireletsehileng ea data feela kaha TLS e hahiloe ka botlalo ho QUIC.

Protocol ea QUIC e sebetsa: kamoo Uber e e sebelisitseng ho ntlafatsa ts'ebetso
Setšoantšo sa 5: QUIC e sebetsa tlas'a HTTP/3, e nkela TLS, eo pele e neng e sebetsa tlas'a HTTP/2.

Ka tlase ke mabaka a re kholisitseng ho sebelisa QUIC bakeng sa ho holisa TCP:

  • 0-RTT ho theha khokahano. QUIC e lumella ho sebelisoa hape ha tumello ho tsoa likhokahanong tse fetileng, ho fokotsa palo ea ts'ireletso ea matsoho. Nakong e tlang TL1.3 e tla tšehetsa 0-RTT, empa ho ts'oarana ka matsoho ka litsela tse tharo tsa TCP ho ntse ho hlokahala.
  • ho hlola ho thibela HoL. HTTP/2 e sebelisa khokahano e le 'ngoe ea TCP ka moreki ho ntlafatsa ts'ebetso, empa sena se ka lebisa ho thibelo ea HoL (hlooho-ea-line). QUIC e nolofatsa ho pheta-pheta le ho fana ka likopo ho sesebelisoa ka bohona.
  • taolo ya tšubuhlellano. QUIC e lula sethaleng sa kopo, e leng ho nolofalletsang ho ntlafatsa algorithm e kholo ea lipalangoang e laolang ho romela ho latela mekhoa ea marang-rang (palo ea tahlehelo kapa RTT). Lisebelisoa tse ngata tsa TCP li sebelisa algorithm KHABANE, e seng e nepahetseng bakeng sa sephethephethe sa latency-sensitive. Haufinyane ntshetswa pele dikgato-tharabololo joaloka BBR, mohlala oa marang-rang ka nepo le ho ntlafatsa latency. QUIC e u lumella ho sebelisa BBR le ho nchafatsa algorithm ena ha e sebelisoa. ntlafatso.
  • tlatsetso ya ditahlehelo. QUIC e bitsa TLP tse peli (ho lahleheloa ke mohatla) pele RTO e qala - le ha tahlehelo e bonahala haholo. Sena se fapane le ts'ebetsong ea TCP. TLP e fetisetsa haholo pakete ea ho qetela (kapa e ncha, haeba e le teng) ho tsosa ho tlatsoa ka potlako. Ho sebetsana le tieho ho bohlokoa haholo tseleng eo Uber e sebelisang marang-rang a eona, e leng bakeng sa phetisetso ea data e khutšoane, e etsahalang ka linako tse ling, le e sa utloeng letho.
  • e ntlafalitsoeng ACK. Kaha pakete ka 'ngoe e na le nomoro ea tatellano e ikhethang, ha ho na bothata khethollo lipakete ha li fetisoa. Lipakete tsa ACK li boetse li na le nako ea ho sebetsana le pakete le ho hlahisa ACK ka lehlakoreng la bareki. Likarolo tsena li netefatsa hore QUIC e bala RTT ka nepo haholoanyane. ACK ho QUIC e ts'ehetsa ho fihla ho lihlopha tse 256 MOHLAKANE, ho thusa motho ea rometseng hore a be sebete haholoanyane ho phuthang pakete le ho sebelisa li-byte tse fokolang ha a ntse a etsa joalo. Kgetho ACK (Sack) ho TCP ha e rarolle bothata bona maemong 'ohle.
  • ho falla ha khokahano. Likhokahano tsa QUIC li khetholloa ke ID ea 64-bit, kahoo haeba moreki a fetola liaterese tsa IP, ID ea khale ea khokahanyo e ka tsoela pele ho sebelisoa atereseng e ncha ea IP ntle le tšitiso. Ena ke tloaelo e atileng haholo bakeng sa lits'ebetso tsa mehala moo mosebelisi a chenchang lipakeng tsa Wi-Fi le likhokahano tsa cellular.

Mekhoa e meng ea QUIC

Re ile ra nahana ka mekhoa e meng ea ho rarolla bothata pele re khetha QUIC.

Ntho ea pele eo re ileng ra e leka ke ho sebelisa TPC PoPs (Points of Presence) ho felisa likhokahano tsa TCP haufi le basebelisi. Ha e le hantle, li-PoPs li felisa khokahanyo ea TCP ka mochine oa selefouno haufi le marang-rang a cellular le ho emela sephethephethe ho khutlela litsing tsa motheo tsa pele. Ka ho felisa TCP haufi, re ka khona ho fokotsa RTT le ho netefatsa hore TCP e arabela haholoanyane tikolohong e matla ea waelese. Leha ho le joalo, liteko tsa rona li bontšitse hore boholo ba RTT le tahlehelo e tsoa ho marang-rang a liselefouno 'me tšebeliso ea PoPs ha e fane ka ntlafatso e kholo ea ts'ebetso.

Re boetse re shebile ho lokisa li-parameter tsa TCP. Ho theha stack ea TCP ho li-server tsa rona tse fapaneng tse fapaneng ho ne ho le thata hobane TCP e na le ts'ebetso e fapaneng ho mefuta e fapaneng ea OS. Ho ne ho le thata ho kenya tšebetsong sena le ho leka litlhophiso tse fapaneng tsa marang-rang. Ho lokisa TCP ka kotloloho ho lisebelisoa tsa mehala ho ne ho sa khonehe ka lebaka la khaello ea tumello. Habohlokoa le ho feta, likarolo tse joalo ka likhokahano tsa 0-RTT le ponelopele e ntlafalitsoeng ea RTT li bohlokoa molemong oa meralo ea protocol, ka hona ho ke ke ha khoneha ho fihlela melemo ea bohlokoa ka ho lokisa TCP feela.

Qetellong, re ile ra lekola liprothokholo tse 'maloa tse thehiloeng ho UDP tse rarollang phallo ea video - re ne re batla ho bona hore na liprothokholo tsena li ka thusa molemong oa rona. Ka bomalimabe, ba ne ba haelloa haholo ke maemo a mangata a tšireletso, 'me ba ne ba boetse ba hloka khokahanyo e eketsehileng ea TCP bakeng sa metadata le tlhahisoleseding ea taolo.

Patlisiso ea rona e bonts'itse hore mohlomong QUIC ke eona feela protocol e ka thusang bothateng ba sephethephethe sa Marang-rang, ha ho ntse ho nahanoa ka ts'ireletso le ts'ebetso.

Ho kopanngoa ha QUIC sethaleng

Ho kenya QUIC ka katleho le ho ntlafatsa ts'ebetso ea ts'ebeliso maemong a khokahanyo a fosahetseng, re ile ra nkela stack ea khale (HTTP/2 holim'a TLS/TCP) ka protocol ea QUIC. Re ne re sebelisa laebrari ea marang-rang Cronet ho tswa Merero ea Chromium, e nang le mofuta oa mantlha oa Google oa protocol - gQUIC. Ts'ebetsong ena e boetse e lula e ntlafatsoa ho latela litlhaloso tsa morao-rao tsa IETF.

Re qalile ho kopanya Cronet ho lisebelisoa tsa rona tsa Android ho eketsa tšehetso bakeng sa QUIC. Ho kopanya ho ile ha etsoa ka tsela ea ho fokotsa litšenyehelo tsa ho falla ka hohle kamoo ho ka khonehang. Sebakeng sa ho nkela sebaka sa khale sa marang-rang se neng se sebelisa laebrari OkHttp, re kopantse Cronet TLAS'A moralo oa OkHttp API. Ka ho etsa kopanyo ka tsela ena, re ile ra qoba liphetoho ho mehala ea rona ea marang-rang (e sebelisoang ke Pheta hape) boemong ba API.

Joalo ka mokhoa oa lisebelisoa tsa Android, re kentse ts'ebetsong Cronet ho lisebelisoa tsa Uber ho iOS, ho thibela sephethephethe sa HTTP ho tsoa marang-rang. APItshebediso NSURLProtocol. Phatlalatso ena, e fanoeng ke iOS Foundation, e sebetsana le lintlha tsa URL tse khethehileng tsa protocol mme e netefatsa hore re ka kopanya Cronet le lits'ebetso tsa rona tsa iOS ntle le litšenyehelo tse kholo tsa ho falla.

E tlatsa QUIC ho Google Cloud Balancers

Ka lehlakoreng le ka morao, ho phetheloa ha QUIC ho fanoa ke Google Cloud Load balancing infrastructure, e sebelisang alt-svc lihlooho tsa likarabo ho tšehetsa QUIC. Ka kakaretso, balancer e eketsa hlooho ea alt-svc ho kopo e 'ngoe le e' ngoe ea HTTP, 'me sena se se se ntse se tiisa tšehetso ea QUIC bakeng sa domain. Ha moreki oa Cronet a fumana karabo ea HTTP ka hlooho ena, e sebelisa QUIC bakeng sa likopo tse latelang tsa HTTP sebakeng seo. Hang ha motho ea leka-lekaneng a qeta QUIC, lisebelisoa tsa rona tsa motheo li romela ketso ena ka mokhoa o hlakileng holim'a HTTP2 / TCP litsing tsa rona tsa data.

Tshebetso: Liphetho

Ts'ebetso ea tlhahiso ke lona lebaka le ka sehloohong la ho batla ha rona protocol e betere. Ho qala, re ile ra theha ho ema le ketsiso ya marangrangho fumana hore na QUIC e tla itšoara joang tlas'a litlaleho tse fapaneng tsa marang-rang. Ho leka ts'ebetso ea QUIC ho marang-rang a lefatše la 'nete, re ile ra etsa liteko ha re ntse re khanna ho potoloha New Delhi re sebelisa mohlala oa sephethephethe sa marang-rang se ts'oanang haholo le mehala ea HTTP ho app ea baeti.

Teko 1

Lisebelisoa bakeng sa teko:

  • leka lisebelisoa tsa Android ka mekotla ea OkHttp le Cronet ho netefatsa hore re lumella sephethephethe sa HTTPS holim'a TCP le QUIC ka ho latellana;
  • seva sa emulation se thehiloeng ho Java se romellang mofuta o tšoanang oa lihlooho tsa HTTPS likarabong le ho jara lisebelisoa tsa bareki ho amohela likopo ho tsoa ho bona;
  • li-proxies tsa maru tse haufi le India ho felisa likhokahano tsa TCP le QUIC. Ha re ntse re emisa TCP re sebelisitse moemeli oa reverse ho NGINX, ho ne ho le thata ho fumana moemeli oa mohloli o bulehileng oa QUIC. Re iketselitse proxy e ka morao bakeng sa QUIC ka borona re sebelisa stack ea QUIC ea Chromium le e phatlalalitsoeng e kenya chromium joalo ka mohloli o bulehileng.

Protocol ea QUIC e sebetsa: kamoo Uber e e sebelisitseng ho ntlafatsa ts'ebetsoProtocol ea QUIC e sebetsa: kamoo Uber e e sebelisitseng ho ntlafatsa ts'ebetso
Setšoantšo sa 6. TCP vs QUIC road test suite e ne e e-na le lisebelisoa tsa Android tse nang le OkHttp le Cronet, li-proxies tsa cloud bakeng sa ho felisa likhokahano, le seva e etsisang.

Teko 2

Ha Google e etsa hore QUIC e fumanehe ka Google Cloud Load Balancing, re sebelisitse thepa e tšoanang, empa ka phetoho e le 'ngoe: ho e-na le NGINX, re ile ra nka li-balancers tsa Google ho felisa li-connections tsa TCP le QUIC ho tloha lisebelisoa, hammoho le ho tsamaisa sephethephethe sa HTTPS ho seva sa emulation. Li-balancers li ajoa lefatšeng ka bophara, empa sebelisa seva sa PoP se haufi le sesebelisoa (ka lebaka la geolocation).

Protocol ea QUIC e sebetsa: kamoo Uber e e sebelisitseng ho ntlafatsa ts'ebetso
Setšoantšo sa 7. Tekong ea bobeli, re ne re batla ho bapisa ho qetela latency ea TCP le QUIC: ho sebelisa Google Cloud le ho sebelisa proxy ea rona ea leru.

Ka lebaka leo, litšenolo tse 'maloa li ne li re emetse:

  • ho felisoa ka PoP ho ntlafalitse ts'ebetso ea TCP. Kaha li-balancers li felisa likamano tsa TCP haufi le basebelisi 'me li ntlafalitsoe haholo, sena se fella ka RTT e tlaase, e ntlafatsang ts'ebetso ea TCP. 'Me le hoja QUIC e ne e sa amehe hakaalo, e ntse e feta TCP mabapi le ho fokotsa latency ea mohatla (ka karolo ea 10-30 lekholong).
  • mehatla ea ameha marang-rang hop. Leha proxy ea rona ea QUIC e ne e le hole le lisebelisoa (tse ka bang 50 ms high latency) ho feta li-balancers tsa mojaro tsa Google, e ile ea fana ka ts'ebetso e ts'oanang - phokotso ea 15% ea latency khahlano le phokotso ea 20% ho 99th percentile bakeng sa TCP. Sena se fana ka maikutlo a hore phetoho ea ho qetela ea mile ke botlolo ho marang-rang.

Protocol ea QUIC e sebetsa: kamoo Uber e e sebelisitseng ho ntlafatsa ts'ebetsoProtocol ea QUIC e sebetsa: kamoo Uber e e sebelisitseng ho ntlafatsa ts'ebetso
Setšoantšo sa 8: Liphetho tse tsoang litekong tse peli li bontša hore QUIC e feta TCP haholo.

Loana sephethephethe

Ka lebaka la liteko, re kentse ts'ehetso ea QUIC lits'ebetsong tsa rona tsa Android le iOS. Re entse tlhahlobo ea A/B ho fumana sephetho sa QUIC litoropong tseo Uber e sebetsang ho tsona. Ka kakaretso, re bone phokotso e kholo ea tieho ea mohatla libakeng ka bobeli, basebelisi ba mehala le mofuta oa marang-rang.

Li-graph tse ka tlase li bonts'a lintlafatso tsa liperesente tsa mehatla (95 le 99 percentile) ka libaka tse kholo le mefuta e fapaneng ea marang-rang - LTE, 3G, 2G.
Protocol ea QUIC e sebetsa: kamoo Uber e e sebelisitseng ho ntlafatsa ts'ebetsoProtocol ea QUIC e sebetsa: kamoo Uber e e sebelisitseng ho ntlafatsa ts'ebetso
Setšoantšo sa 9. Litekong tsa ntoa, QUIC e ile ea feta TCP ho latela latency.

Fetela pele feela

Mohlomong ena ke qalo feela - ho lokolloa ha QUIC tlhahisong ho fane ka menyetla e makatsang ea ho ntlafatsa ts'ebetso ea ts'ebetso ho marang-rang a tsitsitseng le a sa tsitsang, e leng:

Kakaretso e eketsehileng

Ha re se re hlahlobile ts'ebetso ea protocol ho sephethephethe sa 'nete, re bone hore hoo e ka bang 80% ea mananeo a sebelisitse QUIC ka katleho bakeng sa всех likopo, ha 15% ea mananeo a sebelisa motsoako oa QUIC le TCP. Re nahana hore motsoako ona o bakoa ke nako ea nako ea laeborari ea Cronet ho khutlela TCP, kaha e ke ke ea khetholla pakeng tsa liphoso tsa 'nete tsa UDP le maemo a mabe a marang-rang. Hajoale re ntse re shebana le tharollo bothateng bona ha re ntse re sebeletsa ho phethahatsa QUIC.

QUIC optimization

Sephethephethe se tsoang lits'ebetsong tsa mehala ha se na taba ea latency, empa ha se na bandwidth. Hape, lits'ebetso tsa rona li sebelisoa haholo ho marang-rang a cellular. Ho ipapisitsoe le liteko, latency ea mohatla e ntse e phahame le hoja ho sebelisoa moemeli ho felisa TCP le QUIC haufi le basebelisi. Re ntse re batlana le mekhoa ea ho ntlafatsa taolo ea tšubuhlellano le ho ntlafatsa ts'ebetso ea li-algorithms tsa ho khutlisa tahlehelo ea QUIC.

Ka lintlafatso tsena le tse ling tse 'maloa, re rera ho ntlafatsa boiphihlelo ba basebelisi ho sa tsotelehe marang-rang le sebaka, ho etsa hore lipalangoang tsa lipakete tse bonolo le tse se nang moeli li fihlellehe lefatšeng ka bophara.

Source: www.habr.com

Eketsa ka tlhaloso