Iphrothokholi ye-QUIC iyasebenza: ukuthi i-Uber iyisebenzise kanjani ukuze ithuthukise ukusebenza

Iphrothokholi ye-QUIC ijabulisa kakhulu ukuyibuka, yingakho sithanda ukubhala ngayo. Kodwa uma ukushicilelwa kwangaphambilini mayelana ne-QUIC bekungokomlando (umlando wendawo, uma uthanda) imvelo nehadiwe, namuhla siyajabula ukushicilela ukuhumusha kolunye uhlobo - sizokhuluma ngokusetshenziswa kwangempela kwephrothokholi ngo-2019. Ngaphezu kwalokho, asikhulumi ngengqalasizinda encane esekelwe endaweni ebizwa ngokuthi igaraji, kodwa mayelana ne-Uber, esebenza cishe emhlabeni wonke. Onjiniyela benkampani bafinyelela kanjani esinqumweni sokusebenzisa i-QUIC ekukhiqizeni, ukuthi bazenza kanjani izivivinyo nokuthi babone ini ngemuva kokuyikhipha ekukhiqizeni - ngaphansi kokusikiwe.

Izithombe zichofozeka. Kujabulele ukufunda!

Iphrothokholi ye-QUIC iyasebenza: ukuthi i-Uber iyisebenzise kanjani ukuze ithuthukise ukusebenza

I-Uber inesilinganiso somhlaba wonke, okungamadolobha obukhona angama-600, kulo ngalinye uhlelo lokusebenza luthembele ngokuphelele ku-inthanethi engenantambo evela kuma-opharetha amaselula angaphezu kuka-4500. Abasebenzisi balindele ukuthi uhlelo lokusebenza lungasheshi nje kuphela, kodwa ngesikhathi sangempela - ukuze kuzuzwe lokhu, uhlelo lokusebenza lwe-Uber ludinga ukubambezeleka okuphansi kanye noxhumo oluthembeke kakhulu. Maye, kodwa isitaki I-HTTP / 2 ayenzi kahle kumanethiwekhi angenantambo aguquguqukayo najwayele ukulahlekelwa. Sibonile ukuthi kulokhu, ukusebenza okuphansi kuhlobene ngokuqondile nokuqaliswa kwe-TCP kumakernel wesistimu yokusebenza.

Ukuxazulula inkinga, sifake isicelo I-QUIC, iphrothokholi yesimanje yokuphindaphinda kwesiteshi esinika ukulawula okwengeziwe ekusebenzeni kwephrothokholi yezokuthutha. Njengamanje iqembu elisebenzayo IETF ilinganisa i-QUIC njenge I-HTTP / 3.

Ngemuva kokuhlolwa okubanzi, siphethe ngokuthi ukusebenzisa i-QUIC kuhlelo lwethu lokusebenza kuzoholela ekubambezelekeni komsila okuphansi uma kuqhathaniswa ne-TCP. Sibone ukuncipha kwebanga elingu-10-30% lethrafikhi ye-HTTPS kuzinhlelo zokusebenza zomshayeli nabagibeli. I-QUIC iphinde yasinika ukulawula kokugcina phezu kwamaphakheji abasebenzisi.

Kulesi sihloko, sabelana ngolwazi lwethu lokuthuthukisa i-TCP yezinhlelo zokusebenza ze-Uber sisebenzisa isitaki esisekela i-QUIC.

Ubuchwepheshe bakamuva: TCP

Namuhla, i-TCP iyiphrothokholi yezokuthutha esetshenziswa kakhulu ekuletheni ithrafikhi ye-HTTPS ku-inthanethi. I-TCP inikeza ukusakazwa okuthembekile kwamabhayithi, ngaleyo ndlela ibhekane nokuminyana kwenethiwekhi nokulahlekelwa kwesendlalelo sokuxhumanisa. Ukusetshenziswa okusabalele kwe-TCP yethrafikhi ye-HTTPS kungenxa yokuba khona kwendawo yonke yangaphambili (cishe yonke i-OS iqukethe i-TCP), ukutholakala kwengqalasizinda eminingi (njengamabhalansi omthwalo, ama-proxies e-HTTPS nama-CDN), kanye nokusebenza ngaphandle kwebhokisi okutholakalayo. cishe kumapulatifomu amaningi namanethiwekhi.

Abasebenzisi abaningi basebenzisa uhlelo lwethu lokusebenza ekuhambeni, futhi ukubambezeleka komsila we-TCP kwakungekho ndawo eduze nezidingo zethrafikhi yethu yesikhathi sangempela ye-HTTPS. Kalula nje, abasebenzisi emhlabeni wonke bahlangabezane nalokhu - Umfanekiso 1 ubonisa ukubambezeleka emadolobheni amakhulu:

Iphrothokholi ye-QUIC iyasebenza: ukuthi i-Uber iyisebenzise kanjani ukuze ithuthukise ukusebenza
Umfanekiso 1: Ukubambezeleka komsila kuyehluka kuwo wonke amadolobha amakhulu e-Uber.

Nakuba ukubambezeleka kumanethiwekhi e-Indian nase-Brazilian bekuphakeme kunase-US nase-UK, ukubambezeleka komsila kuphezulu kakhulu kunesilinganiso sokubambezeleka. Futhi lokhu kuyiqiniso ngisho nase-US nase-UK.

I-TCP phezu kokusebenza komoya

I-TCP yadalelwa izintambo amanethiwekhi, okungukuthi, ngokugcizelela izixhumanisi ezibikezelwe kakhulu. Nokho, okungenantambo amanethiwekhi anezici zawo kanye nobunzima. Okokuqala, amanethiwekhi angenantambo asengozini yokulahlekelwa ngenxa yokuphazamiseka nokuncishiswa kwesignali. Isibonelo, amanethiwekhi e-Wi-Fi azwela kuma-microwaves, bluetooth namanye amaza omsakazo. Amanethiwekhi omakhalekhukhwini ahlushwa ukulahleka kwesignali (indlela elahlekile) ngenxa yokubonakaliswa/ukumuncwa kwesignali ngezinto nezakhiwo, kanye nokusuka ukuphazamiseka kusuka kwamakhelwane imibhoshongo yamaseli. Lokhu kuholela ekubaluleke kakhulu (izikhathi ezi-4-10) nokuhlukahluka kakhulu Isikhathi Sohambo Olujikelezayo (RTT) nokulahlekelwa kwephakethe kuqhathaniswa noxhumo olunezintambo.

Ukuze ulwe nokuguquguquka nokulahlekelwa komkhawulokudonsa, amanethiwekhi weselula ngokuvamile asebenzisa amabhafa amakhulu ekuqhumeni kwethrafikhi. Lokhu kungaholela ekulayini okweqile, okusho ukubambezeleka okude. Isikhathi esiningi i-TCP iphatha lokhu kulayini njengokumoshayo ngenxa yokuvala isikhathi eside, ngakho i-TCP ivamise ukudlulisa futhi ngaleyo ndlela igcwalise isigcinalwazi. Le nkinga yaziwa ngokuthi i-bufferbloat (ukubhafa kwenethiwekhi okweqile, ukuvinjelwa kwebhafa), futhi lokhu kuhle kakhulu inkinga engathi sΓ­na I-inthanethi yesimanje.

Okokugcina, ukusebenza kwenethiwekhi yeselula kuyahlukahluka ngenkampani yenethiwekhi, isifunda, nesikhathi. Emfanekisweni 2, siqoqe ukubambezeleka okumaphakathi kwethrafikhi ye-HTTPS kuwo wonke amaseli ngaphakathi kwebanga elingamakhilomitha angu-2. Idatha eqoqwe kuma-opharetha amaselula amabili amakhulu e-Delhi, e-India. Njengoba ubona, ukusebenza kuyahlukahluka kusuka kuseli neseli. Futhi, ukukhiqiza komqhubi oyedwa kuyahluka emkhiqizweni wesibili. Lokhu kuthonywa izici ezifana namaphethini okungena kwenethiwekhi kucatshangelwa isikhathi nendawo, ukuhamba komsebenzisi, kanye nengqalasizinda yenethiwekhi kucatshangelwa ukuminyana kombhoshongo kanye nesilinganiso sezinhlobo zenethiwekhi (LTE, 3G, njll.).

Iphrothokholi ye-QUIC iyasebenza: ukuthi i-Uber iyisebenzise kanjani ukuze ithuthukise ukusebenza
Umfanekiso 2. Ukubambezeleka kusetshenziswa irediyasi engu-2 km njengesibonelo. eDelhi, eNdiya.

Futhi, ukusebenza kwamanethiwekhi weselula kuyehluka ngokuhamba kwesikhathi. Umfanekiso 3 ubonisa ukubambezeleka okumaphakathi ngosuku lweviki. Siphinde sabona umehluko ngesilinganiso esincane, phakathi nosuku olulodwa nehora.

Iphrothokholi ye-QUIC iyasebenza: ukuthi i-Uber iyisebenzise kanjani ukuze ithuthukise ukusebenza
Umfanekiso 3. Ukubambezeleka komsila kungahluka kakhulu phakathi kwezinsuku, kodwa ku-opharetha ofanayo.

Konke lokhu okungenhla kubangela ukusebenza kwe-TCP kungasebenzi kumanethiwekhi angenantambo. Nokho, ngaphambi kokubheka ezinye izindlela ze-TCP, besifuna ukuthuthukisa ukuqonda okunembayo kulawa maphuzu alandelayo:

  • ingabe i-TCP iyimbangela enkulu yokubambezeleka komsila ezinhlelweni zethu?
  • Ingabe amanethiwekhi esimanje anokubambezeleka okubalulekile nokuhlukahlukene kokuya nokubuya (RTT)?
  • Uyini umthelela we-RTT nokulahlekelwa ekusebenzeni kwe-TCP?

Ukuhlaziywa Kokusebenza kwe-TCP

Ukuze uqonde ukuthi sihlaziye kanjani ukusebenza kwe-TCP, ake sibheke ngokushesha ukuthi i-TCP iyidlulisela kanjani idatha isuka kumthumeli iye kumamukeli. Okokuqala, umthumeli usungula uxhumano lwe-TCP, enza indlela emithathu ukuxhawula: Umthumeli uthumela iphakethe le-SYN, ulinda iphakethe le-SYN-ACK kumamukeli, bese ethumela iphakethe le-ACK. Iphasi eyengeziwe yesibili neyesithathu ichithwa ekusunguleni uxhumano lwe-TCP. Umamukeli uyavuma ukuthi uthole iphakethe ngalinye (ACK) ukuze aqinisekise ukulethwa okuthembekile.

Uma iphakethe noma i-ACK ilahleka, umthumeli uthumela kabusha ngemva kwesikhathi sokuvala (RTO, ukudluliswa kwesikhathi sokuvala). I-RTO ibalwa ngokuguquguqukayo ngokusekelwe ezicini ezihlukahlukene, njengokulibaziseka kwe-RTT okulindelekile phakathi komthumeli nomamukeli.

Iphrothokholi ye-QUIC iyasebenza: ukuthi i-Uber iyisebenzise kanjani ukuze ithuthukise ukusebenza
Umfanekiso 4. Ukushintsha iphakethe nge-TCP/TLS kuhlanganisa indlela yokudlulisela kabusha.

Ukunquma ukuthi i-TCP isebenze kanjani ezinhlelweni zethu zokusebenza, sigade amaphakethe e-TCP sisebenzisa tcpdump iviki lonke kuthrafikhi yokulwa evela kumaseva onqenqema we-Indian. Sibe sesihlaziya ukuxhumana kwe-TCP sisebenzisa tcptrace. Ukwengeza, sidale uhlelo lokusebenza lwe-Android oluthumela ithrafikhi elingisiwe kuseva yokuhlola, elingisa ithrafikhi yangempela ngangokunokwenzeka. Ama-smartphone analolu hlelo lokusebenza asakazwa kubasebenzi abambalwa, abaqoqa izingodo ezinsukwini ezimbalwa.

Imiphumela yakho kokubili ukuhlola yayihambisana nomunye. Sibone ukubambezeleka okuphezulu kwe-RTT; amanani omsila ayecishe aphindwe izikhathi ezi-6 kunevelu ye-median; isilinganiso sokubambezeleka se-arithmetic singaphezu kwesekhondi elingu-1. Ukuxhumeka okuningi bekulahlekile, okwenza i-TCP ithumele kabusha u-3,5% wawo wonke amaphakethe. Ezindaweni eziminyene njengezikhumulo zezindiza neziteshi zesitimela, sibone ukulahlekelwa okungu-7%. Le miphumela idala ukungabaza ngokuhlakanipha okujwayelekile lezo ezisetshenziswa kumanethiwekhi amaselula izifunda ezithuthukisiwe zokudlulisela kabusha kunciphisa kakhulu ukulahlekelwa ezingeni lokuthutha. Ngezansi kunemiphumela yokuhlolwa evela kuhlelo lokusebenza "lokulingisa":

Amamethrikhi enethiwekhi
Amanani

I-RTT, ama-millisecond [50%,75%, 95%,99%]
[350, 425, 725, 2300]

Ukwehlukana kwe-RTT, imizuzwana
Ngokwesilinganiso ~1,2 s

Ukulahleka kwephakethe ekuxhumekeni okungazinzile
Isilinganiso ~ 3.5% (7% ezindaweni ezigcwele kakhulu)

Cishe uhhafu walokhu kuxhumana okungenani kube nokulahlekelwa kwephakethe elilodwa, iningi lawo i-SYN ne-SYN-ACK. Ukuqaliswa okuningi kwe-TCP kusebenzisa inani le-RTO lesekhondi elingu-1 kumaphakethe e-SYN, elikhuphuka kakhulu ekulahlekeni okulandelayo. Izikhathi zokulayisha izinhlelo zokusebenza zinganyuka ngenxa yokuthi i-TCP ithatha isikhathi eside ukusungula ukuxhumana.

Endabeni yamaphakethe wedatha, amanani aphezulu e-RTO anciphisa kakhulu ukusetshenziswa okuwusizo kwenethiwekhi lapho kukhona ukulahleka kwesikhashana kumanethiwekhi angenantambo. Sithole ukuthi isikhathi sokudlulisela kabusha esimaphakathi sicishe sibe isekhondi elingu-1 ngokulibaziseka komsila cishe amasekhondi angama-30. Lokhu kubambezeleka okuphezulu ezingeni le-TCP kubangele ukuphela kwesikhathi kwe-HTTPS kanye nezicelo kabusha, okuqhubekisela phambili ukwandisa ukubambezeleka kwenethiwekhi kanye nokungasebenzi kahle.

Ngenkathi iphesenti engu-75 ye-RTT elinganisiwe yayicishe ibe ngu-425 ms, i-75th percentile ye-TCP cishe yayiyimizuzwana emi-3. Lokhu kukhomba ukuthi ukulahlekelwa kubangele i-TCP ukuthi ithathe amaphasi angu-7-10 ukuze idlulise idatha ngempumelelo. Lokhu kungase kube umphumela wokubala kwe-RTO engasebenzi kahle, ukungakwazi kwe-TCP ukuphendula ngokushesha ekulahlekelweni. amaphakheji akamuva efasiteleni kanye nokungasebenzi kahle kwe-algorithm yokulawula ukuminyana, engahlukanisi phakathi kokulahlekelwa okungenantambo nokulahlekelwa ngenxa yokuminyana kwenethiwekhi. Ngezansi imiphumela yokuhlolwa kokulahlekelwa kwe-TCP:

Izibalo zokulahleka kwephakethe le-TCP
Okushoyo

Amaphesenti oxhumo anokulahleka kwephakethe okungenani elingu-1
45%

Amaphesenti okuxhumana nokulahlekelwa phakathi nokusetha uxhumano
30%

Amaphesenti okuxhumana nokulahlekelwa ngesikhathi sokushintshisana kwedatha
76%

Ukusatshalaliswa kokubambezeleka ekudluliselweni kabusha, imizuzwana [50%, 75%, 95%,99%] [1, 2.8, 15, 28]

Ukusatshalaliswa kwenombolo yokuthunyelwa kabusha kwephakethe elilodwa noma ingxenye ye-TCP
[1,3,6,7]

Ukusetshenziswa kwe-QUIC

Ithuthukiswe i-Google ekuqaleni, i-QUIC iyiphrothokholi yesimanje yezokuthutha enemicu eminingi ehamba phezu kwe-UDP. Okwamanje i-QUIC ingenile inqubo yokumisa (sesivele sibhale ukuthi kukhona, njengokungathi, izinguqulo ezimbili ze-QUIC, ezifuna ukwazi angalandela isixhumanisi – cishe. umhumushi). Njengoba kuboniswe kuMfanekiso 5, i-QUIC ibekwe ngaphansi kwe-HTTP/3 (empeleni, i-HTTP/2 phezu kwe-QUIC yi-HTTP/3, manje esimiswa ngokujulile). Ingena esikhundleni sezendlalelo ze-HTTPS ne-TCP ngokusebenzisa i-UDP ukwenza amaphakethe. I-QUIC isekela kuphela ukudluliswa kwedatha okuvikelekile njengoba i-TLS yakhelwe ngokugcwele ku-QUIC.

Iphrothokholi ye-QUIC iyasebenza: ukuthi i-Uber iyisebenzise kanjani ukuze ithuthukise ukusebenza
Umfanekiso 5: I-QUIC isebenza ngaphansi kwe-HTTP/3, ithatha indawo ye-TLS, eyayisebenza ngaphansi kwe-HTTP/2.

Ngezansi izizathu ezisiqinisekise ukuthi sisebenzise i-QUIC yokukhulisa i-TCP:

  • 0-RTT ukusungulwa uxhumano. I-QUIC ivumela ukusetshenziswa kabusha kokugunyazwa okuvela ekuxhumekeni kwangaphambilini, kunciphisa inani lokuxhawula izandla ngokuvikeleka. Esikhathini esizayo I-TLS1.3 izosekela i-0-RTT, kodwa ukuxhawula kwe-TCP yezindlela ezintathu kusazodingeka.
  • ukunqoba ukuvinjwa kwe-HoL. I-HTTP/2 isebenzisa uxhumano olulodwa lwe-TCP iklayenti ngalinye ukuze kuthuthukiswe ukusebenza, kodwa lokhu kungaholela ekuvinjweni kwe-HoL (ikhanda lomugqa). I-QUIC yenza ukuphindaphinda kube lula futhi ilethe izicelo kuhlelo lokusebenza ngokuzimela.
  • ukulawula ukuminyana. I-QUIC ihlala kusendlalelo sohlelo lokusebenza, okwenza kube lula ukubuyekeza i-algorithm yezokuthutha eyinhloko elawula ukuthumela ngokusekelwe kumapharamitha enethiwekhi (inani lokulahlekelwa noma i-RTT). Ukuqaliswa okuningi kwe-TCP kusebenzisa i-algorithm ICUBIC, engalungile kuthrafikhi ezwela ukubambezeleka. Ama-algorithms asanda kuthuthukiswa afana I-BBR, imodeli enembe kakhudlwana futhi yandise ukubambezeleka. I-QUIC ikuvumela ukuthi usebenzise i-BBR futhi ubuyekeze le-algorithm njengoba isetshenziswa. ngcono.
  • ukugcwaliswa kokulahlekelwa. I-QUIC ibiza ama-TLP amabili (probe yokulahlekelwa umsila) ngaphambi kokuthi i-RTO icushwe - ngisho nalapho ukulahlekelwa kubonakala kakhulu. Lokhu kuhlukile ekusetshenzisweni kwe-TCP. I-TLP ithumela kabusha ikakhulukazi iphakethe lokugcina (noma elisha, uma likhona) ukuze iqalise ukugcwaliswa kabusha ngokushesha. Ukuphatha ukubambezeleka komsila kubaluleke kakhulu endleleni i-Uber esebenzisa ngayo inethiwekhi yayo, okungukuthi ukudluliselwa kwedatha okufushane, okungavamile, nokuzwela ukubambezeleka.
  • i-ACK ethuthukisiwe. Njengoba iphakethe ngalinye linenombolo yokulandelana eyingqayizivele, ayikho inkinga umehluko amaphakethe lapho edluliselwa kabusha. Amaphakethe we-ACK aqukethe nesikhathi sokucubungula iphakethe futhi enze i-ACK ohlangothini lweklayenti. Lezi zici ziqinisekisa ukuthi i-QUIC ibala i-RTT ngokunembe kakhudlwana. I-ACK ku-QUIC isekela amabhendi angafika kwangu-256 I-NACK, isiza umthumeli ukuthi akwazi ukumelana nokushova kwephakethe nokusebenzisa amabhayithi ambalwa kule nqubo. I-ACK ekhethiwe (Isaka) ku-TCP ayixazululi le nkinga kuzo zonke izimo.
  • ukufuduka kokuxhumana. Ukuxhumeka kwe-QUIC kukhonjwa nge-ID engu-64-bit, ngakho-ke uma iklayenti lishintsha amakheli e-IP, i-ID yokuxhuma endala ingaqhubeka nokusetshenziswa ekhelini le-IP elisha ngaphandle kokuphazamiseka. Lona umkhuba ovame kakhulu wezinhlelo zokusebenza zeselula lapho umsebenzisi eshintsha khona phakathi kwe-Wi-Fi noxhumo lwamaselula.

Ezinye izindlela ze-QUIC

Sicabangele ezinye izindlela zokuxazulula inkinga ngaphambi kokukhetha i-QUIC.

Into yokuqala esiyizamile kwakuwukuphakela ama-TPC PoPs (Amaphoyinti Obukhona) ukuze anqamule ukuxhumana kwe-TCP eduze nabasebenzisi. Empeleni, i-PoPs inqamula uxhumano lwe-TCP ngedivayisi yeselula eduze nenethiwekhi yeselula futhi ibambe iqhaza ekubuyiseleni ingqalasizinda yokuqala. Ngokunqamula i-TCP eduze, singakwazi ukwehlisa i-RTT futhi siqinisekise ukuthi i-TCP isabela kakhulu endaweni eguquguqukayo engenazintambo. Kodwa-ke, ukuhlola kwethu kubonise ukuthi iningi le-RTT nokulahlekelwa kuvela kumanethiwekhi weselula futhi ukusetshenziswa kwama-PoP akuhlinzeki ngokuthuthukiswa kokusebenza okubalulekile.

Siphinde sabheka ukulungisa amapharamitha we-TCP. Ukumisa isitaki se-TCP kumaseva ethu onqenqema ahlukahlukene bekunzima ngoba i-TCP inokusebenzisa okuhlukene kuzo zonke izinguqulo ze-OS. Kube nzima ukwenza lokhu nokuhlola ukulungiselelwa kwenethiwekhi okuhlukile. Ukumisa i-TCP ngokuqondile kumadivayisi eselula akwenzekanga ngenxa yokuntuleka kwezimvume. Okubaluleke nakakhulu, izici ezifana nokuxhumeka kwe-0-RTT nokuqagela kwe-RTT okuthuthukisiwe kubalulekile ekwakhiweni kwephrothokholi, ngakho-ke akunakwenzeka ukuzuza izinzuzo ezibalulekile ngokushuna i-TCP iyodwa.

Ekugcineni, sihlole amaphrothokholi ambalwa asekelwe ku-UDP axazulula inkinga yokusakaza ividiyoβ€”besifuna ukubona ukuthi lezi zimiso eziyisisekelo zingasiza yini kithi. Ngeshwa, bebentula kakhulu kuzilungiselelo eziningi zokuphepha, futhi badinga uxhumano olwengeziwe lwe-TCP lwemethadatha nolwazi lokulawula.

Ucwaningo lwethu lubonise ukuthi i-QUIC mhlawumbe iyona kuphela iphrothokholi engasiza ngenkinga yethrafikhi ye-inthanethi, kuyilapho icabangela kokubili ukuphepha nokusebenza.

Ukuhlanganiswa kwe-QUIC endaweni yesikhulumi

Ukuze ushumeke ngempumelelo i-QUIC futhi uthuthukise ukusebenza kohlelo lokusebenza ezindaweni ezingaxhumekile kahle, simiselele isitaki esidala (HTTP/2 phezu kwe-TLS/TCP) ngephrothokholi ye-QUIC. Sisebenzise umtapo wolwazi wenethiwekhi I-Cronet kusuka ku Amaphrojekthi we-Chromium, equkethe inguqulo yoqobo ye-Google yephrothokholi - gQUIC. Lokhu kusetshenziswa nakho kuthuthukiswa njalo ukuze kulandele ukucaciswa kwe-IETF kwakamuva.

Siqale sahlanganisa i-Cronet kuzinhlelo zethu zokusebenza ze-Android ukuze sengeze usekelo lwe-QUIC. Ukuhlanganiswa kwenziwa ngendlela yokunciphisa izindleko zokufuduka ngangokunokwenzeka. Esikhundleni sokushintsha ngokuphelele isitaki senethiwekhi esidala esasisebenzisa umtapo wolwazi OkHttp, sihlanganise i-Cronet NGAPHANSI kohlaka lwe-OkHttp API. Ngokwenza ukuhlanganisa ngale ndlela, sigweme izinguquko ezingcingweni zethu zenethiwekhi (ezisetshenziswa yi Buyisela inzuzo) ezingeni le-API.

Ngokufana nendlela yamadivayisi e-Android, sisebenzise i-Cronet kuzinhlelo zokusebenza ze-Uber ku-iOS, sivala ithrafikhi ye-HTTP evela kunethiwekhi. APIusebenzisa NSURLProtocol. Lokhu kufinyezwa, okuhlinzekwe yi-iOS Foundation, kusingatha idatha ye-URL eqondene nephrothokholi futhi kuqinisekisa ukuthi singakwazi ukuhlanganisa i-Cronet kuzinhlelo zethu zokusebenza ze-iOS ngaphandle kwezindleko ezinkulu zokuthutha.

Iqedela i-QUIC kumabhalansi e-Google Cloud

Ngasohlangothini olungemuva, ukuqedelwa kwe-QUIC kunikezwa ingqalasizinda yokulinganisa ye-Google Cloud Load, esetshenziswayo i-alt-svc izihloko ezimpendulweni zokusekela i-QUIC. Ngokuvamile, ibhalansi yengeza unhlokweni we-alt-svc esicelweni ngasinye se-HTTP, futhi lokhu vele kuqinisekisa ukusekelwa kwe-QUIC kwesizinda. Uma iklayenti le-Cronet lithola impendulo ye-HTTP ngalesi sihloko, lisebenzisa i-QUIC ezicelweni ezilandelayo ze-HTTP kuleso sizinda. Uma obhalansi eqeda i-QUIC, ingqalasizinda yethu ithumela ngokusobala lesi senzo nge-HTTP2/TCP ezikhungweni zethu zedatha.

Ukusebenza: Imiphumela

Ukusebenza komphumela kuyisizathu esiyinhloko sokusesha kwethu iphrothokholi engcono. Okokuqala, sakha ukuma nge ukulingisa inethiwekhiukuthola ukuthi i-QUIC izoziphatha kanjani ngaphansi kwamaphrofayili enethiwekhi ahlukene. Ukuhlola ukusebenza kwe-QUIC kumanethiwekhi omhlaba wangempela, senze izivivinyo ngenkathi sishayela e-New Delhi sisebenzisa ithrafikhi yenethiwekhi elingisiwe efana ncamashi nezingcingo ze-HTTP kuhlelo lokusebenza lwabagibeli.

Isilingo 1

Izisetshenziswa zokuhlolwa:

  • hlola amadivayisi e-Android ngezitaki ze-OkHttp ne-Cronet ukuze uqinisekise ukuthi sivumela ithrafikhi ye-HTTPS nge-TCP ne-QUIC ngokulandelanayo;
  • iseva yokulingisa esekelwe ku-Java ethumela uhlobo olufanayo lwezihloko ze-HTTPS ezimpendulweni futhi ilayishe amadivayisi weklayenti ukuze athole izicelo kuwo;
  • ama-proxies amafu atholakala ngokoqobo eduze ne-India ukuze anqamule uxhumo lwe-TCP ne-QUIC. Ngesikhathi sokunqanyulwa kwe-TCP sisebenzise ummeleli ohlanekezelwe NGINX, bekunzima ukuthola ummeleli ohlanekezela womthombo ovulekile we-QUIC. Sakhe ummeleli obuyela emuva we-QUIC ngokwethu sisebenzisa isitaki esiyisisekelo se-QUIC esivela ku-Chromium kanye eshicilelwe ibe yi-chromium njengomthombo ovulekile.

Iphrothokholi ye-QUIC iyasebenza: ukuthi i-Uber iyisebenzise kanjani ukuze ithuthukise ukusebenzaIphrothokholi ye-QUIC iyasebenza: ukuthi i-Uber iyisebenzise kanjani ukuze ithuthukise ukusebenza
Umfanekiso 6. I-TCP vs QUIC road test suite yayihlanganisa amadivayisi e-Android ane-OkHttp ne-Cronet, ama-proxies amafu okunqamula uxhumano, neseva yokulingisa.

Isilingo 2

Ngenkathi i-Google yenza i-QUIC itholakale nge I-Google Cloud Load Balancing, sisebenzise i-inventory efanayo, kodwa ngokuguqulwa okukodwa: esikhundleni se-NGINX, sithathe izilinganisi zokulayisha ze-Google ukuze sinqamule uxhumano lwe-TCP ne-QUIC kusuka kumadivayisi, kanye nomzila wethrafikhi ye-HTTPS kuseva yokulingisa. Amabhalansi asatshalaliswa emhlabeni wonke, kodwa sebenzisa iseva ye-PoP eseduze kakhulu nedivayisi (sibonga i-geolocation).

Iphrothokholi ye-QUIC iyasebenza: ukuthi i-Uber iyisebenzise kanjani ukuze ithuthukise ukusebenza
Umfanekiso 7. Esivivinyweni sesibili, besifuna ukuqhathanisa ukubambezeleka kokuqedwa kwe-TCP ne-QUIC: kusetshenziswa i-Google Cloud nokusebenzisa ummeleli wethu wamafu.

Ngenxa yalokho, izambulo ezimbalwa zazisilindile:

  • ukunqanyulwa nge-PoP kuthuthukise ukusebenza kwe-TCP. Njengoba ababhalansi benqamula ukuxhumana kwe-TCP eduze nabasebenzisi futhi bathuthukiswa kakhulu, lokhu kubangela ama-RTT aphansi, okuthuthukisa ukusebenza kwe-TCP. Futhi nakuba i-QUIC yayingathinteki kangako, isasebenza ngokudlula i-TCP ngokwemibandela yokunciphisa ukubambezeleka komsila (ngamaphesenti angu-10-30).
  • imisila iyathinteka ama-network hops. Nakuba ummeleli wethu we-QUIC ubeqhelelene namadivayisi (cishe u-50 ms ukuphakama okuphezulu) kunezilinganisi zomthwalo we-Google, ulethe ukusebenza okufanayo - ukwehla ngo-15% kokubambezeleka uma kuqhathaniswa nokwehliswa ngo-20% kumaphesenti angama-99 we-TCP. Lokhu kuphakamisa ukuthi uguquko lwemayela lokugcina luyibhodlela kunethiwekhi.

Iphrothokholi ye-QUIC iyasebenza: ukuthi i-Uber iyisebenzise kanjani ukuze ithuthukise ukusebenzaIphrothokholi ye-QUIC iyasebenza: ukuthi i-Uber iyisebenzise kanjani ukuze ithuthukise ukusebenza
Umfanekiso 8: Imiphumela evela ekuhloleni okubili ibonisa ukuthi i-QUIC idlula kakhulu i-TCP.

Ukulwa nethrafikhi

Sikhuthazwe ukuhlola, senze ukwesekwa kwe-QUIC ezinhlelweni zethu zokusebenza ze-Android ne-iOS. Senze ukuhlola kwe-A/B ukuze sithole umthelela we-QUIC emadolobheni lapho i-Uber isebenza khona. Sekukonke, sibone ukwehla okukhulu ekubambezelekeni komsila kuzo zonke izifunda zombili, ama-opharetha e-telecom kanye nohlobo lwenethiwekhi.

Amagrafu angezansi abonisa ukuthuthuka kwephesenti lemisila (amaphesenti angama-95 namaphesenti angama-99) ngokwesifunda esikhulu nezinhlobo zenethiwekhi ezihlukile - LTE, 3G, 2G.
Iphrothokholi ye-QUIC iyasebenza: ukuthi i-Uber iyisebenzise kanjani ukuze ithuthukise ukusebenzaIphrothokholi ye-QUIC iyasebenza: ukuthi i-Uber iyisebenzise kanjani ukuze ithuthukise ukusebenza
Umfanekiso 9. Ezivivinyweni zempi, i-QUIC isebenze kahle kakhulu kune-TCP ngokuya ngokubambezeleka.

Phambili kuphela

Mhlawumbe lesi yisiqalo nje - ukukhishwa kwe-QUIC emkhiqizweni kunikeze amathuba amahle okuthuthukisa ukusebenza kohlelo lokusebenza kuwo womabili amanethiwekhi azinzile nangazinzile, okungukuthi:

Ukusabalala okwandisiwe

Ngemva kokuhlaziya ukusebenza kwephrothokholi kuthrafikhi yangempela, sibonile ukuthi cishe u-80% wamaseshini asebenzise ngempumelelo i-QUIC всСх izicelo, kuyilapho u-15% wezikhathi zisebenzisa inhlanganisela ye-QUIC ne-TCP. Sicabanga ukuthi inhlanganisela ingenxa yokuvala isikhathi komtapo wezincwadi we-Cronet emuva ku-TCP, njengoba ingakwazi ukuhlukanisa phakathi kokuhluleka kwangempela kwe-UDP nezimo zenethiwekhi ezimbi. Njengamanje sibheka isixazululo sale nkinga njengoba sisebenzela ekusetshenzisweni okulandelayo kwe-QUIC.

Ukuthuthukisa QUIC

Ithrafikhi evela kuzinhlelo zokusebenza zeselula iyazwela ukubambezeleka, kodwa ayizweli kumkhawulokudonsa. Futhi, izinhlelo zethu zokusebenza zisetshenziswa kakhulu kumanethiwekhi weselula. Ngokusekelwe ekuhlolweni, ukubambezeleka komsila kusephezulu ngisho noma kusetshenziswa ummeleli ukunqamula i-TCP ne-QUIC eduze nabasebenzisi. Sibheke kakhulu izindlela zokuthuthukisa ukuphathwa kokuminyana futhi sithuthukise ukusebenza kahle kwama-algorithms okuthola ukulahleka kwe-QUIC.

Ngalokhu kanye nokunye okuthuthukisiwe okuningana, sihlela ukuthuthukisa ulwazi lomsebenzisi kungakhathaliseki ukuthi inethiwekhi nesifunda, senze izinto zokuhamba zamaphakethe ezilula nezingenazihibe zifinyeleleke kalula emhlabeni jikelele.

Source: www.habr.com

Engeza amazwana