Iyo QUIC protocol inonakidza kwazvo kuona, ndosaka tichida kunyora nezvayo. Asi kana zvinyorwa zvekare nezve QUIC zvaive zvenhoroondo (nhoroondo yenzvimbo, kana uchida) zvisikwa uye hardware, nhasi isu tinofara kuburitsa dudziro yerumwe rudzi - tichataura nezvekushandiswa chaiko kweprotocol muna 2019. Uyezve, hatisi kutaura nezvezvivakwa zvidiki zvakavakirwa mune inonzi garaji, asi nezveUber, inoshanda kunenge pasirese. Kuti mainjiniya ekambani akasvika sei padanho rekushandisa QUIC mukugadzira, maitirwo avakaita bvunzo uye zvavakaona mushure mekuiburitsa mukugadzira - pazasi pekucheka.
Mifananidzo yacho inodzvanya. Nakidzwa nekuverenga!
Uber ine chiyero chepasirese, kureva mazana matanhatu emaguta ekuvapo, mune imwe neimwe iyo application inotsamira zvachose paWireya Internet kubva kune anopfuura mazana mana nemazana mashanu emafoni anoshanda. Vashandisi vanotarisira kuti app haingoite nekukurumidza, asi munguva chaiyo - kuti uite izvi, iyo Uber app inoda yakaderera latency uye yakavimbika yekubatanidza. Maiwe, asi murwi
Kuti tigadzirise dambudziko racho, takanyorera
Mushure mekuyedzwa kwakawanda, takagumisa kuti kushandisa QUIC mukushandisa kwedu kwaizoguma nekudzika muswe latencies kana ichienzaniswa neTCP. Isu takaona kudzikiswa kwehuwandu hwe10-30% yeHTTPS traffic mutyairi uye mufambi maapplication. QUIC yakatipawo magumo-kusvika-kumagumo kutonga pamusoro pevashandisi mapakeji.
Muchinyorwa chino, tinogovana ruzivo rwedu mukugadzirisa TCP yeUber maapplication tichishandisa stack inotsigira QUIC.
Tekinoroji yazvino: TCP
Nhasi, TCP ndiyo inonyanya kushandiswa yekufambisa protocol yekuendesa HTTPS traffic paInternet. TCP inopa yakavimbika rukova rwemabheti, nekudaro kugadzirisa netiweki congestion uye yekubatanidza layer kurasikirwa. Iko kushandiswa kwakapararira kweTCP yeHTTPS traffic kunokonzerwa neiyo yekare ubiquity (inenge yese OS ine TCP), kuwanikwa pazvivakwa zvakawanda (senge mitoro inoremedza, HTTPS proxies uye CDNs), uye kunze-kwe-the-bhokisi kushanda kunowanikwa. paanenge akawanda mapuratifomu uye network.
Vazhinji vashandisi vanoshandisa yedu app pakuenda, uye TCP muswe latency pakanga pasina padyo nezvinodiwa zvedu chaiyo-nguva HTTPS traffic. Zvichitaurwa zviri nyore, vashandisi pasi rese vakasangana neizvi - Mufananidzo 1 unoratidza kunonoka mumaguta makuru:
Mufananidzo 1: Muswe latency inosiyana mumaguta makuru eUber.
Kunyangwe latency muIndia neBrazil network yaive yakakwira kupfuura muUS neUK, muswe latency wakakwira zvakanyanya kupfuura avhareji latency. Uye izvi ndezvechokwadi kunyangwe kuUS neUK.
TCP pamusoro pekuita kwemhepo
TCP yakagadzirirwa wired network, ndiko kuti, nekusimbisa kune zvinonyanya kufanotaurwa zvinongedzo. Zvisinei, waya network ine maitiro avo uye matambudziko. Chekutanga, mawireless network anotarirwa nekurasikirwa nekuda kwekuvhiringidza uye kusaina chiratidzo. Semuenzaniso, Wi-Fi network inonzwa kune microwaves, bluetooth uye mamwe mafungu eredhiyo. Maserura network anotambura nekurasikirwa kwechiratidzo (
Kurwisa kuchinjika uye kurasikirwa kwebhanwidth, nharembozha dzinowanzo shandisa mabhafa makuru ekuputika kwetraffic. Izvi zvinogona kutungamirira kumitsetse yakanyanyisa, zvinoreva kunonoka kwenguva refu. Kazhinji TCP inobata iyi mutsara semarara nekuda kwekurebesa nguva, saka TCP inoda kudzosera uye nekudaro inozadza buffer. Dambudziko iri rinozivikanwa se
Chekupedzisira, kuita kweserura network kunosiyana nemutakuri, dunhu, uye nguva. Mumufananidzo 2, takaunganidza kunonoka kwepakati kweHTTPS traffic pamaseru mukati mechikamu chemakiromita maviri. Dhata yakaunganidzwa kune maviri makuru maserura anoshanda muDelhi, India. Sezvauri kuona, kuita kunosiyana kubva pasero kuenda kune sero. Zvakare, kugadzirwa kwemumwe mushandisi kunosiyana nekugadzirwa kwechipiri. Izvi zvinopesvedzerwa nezvinhu zvakaita sematanho ekupinda netiweki achifunga nguva nenzvimbo, kufamba kwemushandisi, pamwe netiweki zvivakwa zvichifunga nezve shongwe uye chiyero chemhando dzenetiweki (LTE, 2G, nezvimwewo).
Mufananidzo 2. Kunonoka kushandisa 2 km radius semuenzaniso. Delhi, India.
Zvakare, kuita kwemaserura network kunosiyana nekufamba kwenguva. Mufananidzo 3 unoratidza iyo yepakati latency nezuva revhiki. Takacherechedzawo kusiyana pamwero muduku, mukati mezuva rimwe neawa.
Mufananidzo 3. Kunonoka kwemuswe kunogona kusiyanisa zvakanyanya pakati pemazuva, asi kune mumwe chete anoshanda.
Zvese zviri pamusoro zvinoita kuti TCP isashande mumawireless network. Nekudaro, tisati tatsvaga dzimwe nzira dzeTCP, taida kukudziridza nzwisiso chaiyo pane anotevera mapoinzi:
- ndiyo TCP honzeri huru kuseri kwemuswe latencies mumashandisirwo edu?
- Manetiweki emazuva ano ane akakosha uye akasiyana-siyana kunonoka-rwendo-rwendo kunonoka (RTT)?
- Chii chinokanganisa RTT uye kurasikirwa pakuita kweTCP?
TCP Performance Analysis
Kuti tinzwisise kuti takaongorora sei kuita kweTCP, ngatitarisei nekukurumidza kuti TCP inotamisa sei data kubva kune anoitumira kuenda kune anogamuchira. Kutanga, mutumi anogadza kubatana kweTCP, kuita nzira nhatu
Kana pakiti kana ACK yakarasika, mutumi anotumirazve mushure menguva yekubuda (RTO,
Mufananidzo 4. Packet exchange pamusoro peTCP / TLS inosanganisira nzira yekudzorerazve.
Kuti tione kuti TCP yakaita sei mumashandisirwo edu, takatarisa TCP mapaketi tichishandisa
Migumisiro yezviedzo zvose zviri zviviri zvaienderana. Takaona yakakwirira RTT latencies; muswe tsika dzaive dzinenge 6 nguva dzakakwirira pane yepakati kukosha; iyo arithmetic avhareji yekunonoka inopfuura 1 sekondi. Kubatana kwakawanda kwakarasika, zvichiita kuti TCP itumirezve 3,5% yemapakiti ese. Munzvimbo dzakatsvikinyidzana dzakadai senhandare dzendege nezviteshi zvechitima, takaona kurasikirwa ne7%. Izvi zvinokonzeresa kusahadzika pahuchenjeri hwakajairika hunoshandiswa mumaserura network
Network metrics
Maitiro
RTT, milliseconds [50%,75%, 95%,99%]
[350, 425, 725, 2300]
RTT divergence, masekondi
Paavhareji ~1,2 s
Kurasikirwa kwepakeji pane zvisina kugadzikana zvinongedzo
Avhareji ~ 3.5% (7% munzvimbo dzakaremerwa)
Inenge hafu yezvibatanidza izvi zvaive nekurasikirwa kwepaketi imwe chete, mazhinji acho SYN uye SYN-ACK mapaketi. Zvizhinji zveTCP zvinoshandiswa zvinoshandisa kukosha kweRTO kwe1 sekondi yeSYN mapaketi, iyo inowedzera exponentially yekurasikirwa kunotevera. Nguva yekurodha application inogona kuwedzera nekuda kweTCP kutora nguva yakareba kuti igadzirise zvinongedzo.
Panyaya yemapakiti edata, yakakwira RTO tsika dzinoderedza zvakanyanya kushandiswa kunobatsira kwetiweki pamberi pekurasikirwa kwechinguvana mumatambo asina waya. Takaona kuti avhareji yenguva yekudzosera ingangoita 1 sekondi nekunonoka kwemuswe kweanosvika masekonzi makumi matatu. Aya akakwira latency padanho reTCP akakonzera nguva yeHTTPS uye zvikumbiro zvekare, zvichiwedzera kuwedzera network latency uye kusashanda.
Nepo iyo 75th percentile yekuyerwa RTT yaive yakatenderedza 425 ms, iyo 75th percentile yeTCP yaive ingangoita 3 masekonzi. Izvi zvinoratidza kuti kurasikirwa kwakaita kuti TCP itore 7-10 inopfuura kuti ibudirire kutumira data. Izvi zvinogona kunge zviri mhedzisiro yekusashanda RTO kuverenga, kusakwanisa kweTCP kukurumidza kupindura kurasikirwa.
TCP packet kurasikirwa nhamba
ukoshi
Percecent yezvekubatanidza neinenge 1 packet kurasikirwa
45%
Percecent yekubatanidza nekurasikirwa panguva yekuseta yekubatanidza
30%
Mazana ekubatanidza nekurasikirwa panguva yekuchinjana data
76%
Kugovera kwekunonoka mukutumirazve, masekondi [50%, 75%, 95%,99%] [1, 2.8, 15, 28]
Kugoverwa kwenhamba yekudzorerazve kwepaketi imwe kana chikamu cheTCP
[1,3,6,7]
Kushandiswa kweQUIC
Yakagadzirwa neGoogle, QUIC inzira yekufambisa yemazuva ano ine tambo dzakawanda inomhanya pamusoro peUDP. Parizvino QUIC yapinda
Mufananidzo 5: QUIC inomhanya pasi peHTTP/3, ichitsiva TLS, yaimbofamba pasi peHTTP/2.
Pazasi pane zvikonzero zvakatikurudzira kushandisa QUIC yeTCP amplification:
- 0-RTT yekubatanidza kumisikidzwa. QUIC inobvumira kushandiswazve kwemvumo kubva kune zvakambobatanidzwa, kuderedza huwandu hwekuchengetedza maoko. Mune ramangwana
TLS1.3 ichatsigira 0-RTT, asi nzira nhatu dzeTCP kubata maoko zvicharamba zvichidikanwa. - kukunda HoL ichivharira. HTTP/2 inoshandisa imwe TCP yekubatanidza pamutengi kuti ivandudze mashandiro, asi izvi zvinogona kutungamirira kuHoL (head-of-line) ichivharira. QUIC inorerutsa kuwanda uye inopa zvikumbiro kune application yakazvimirira.
- congestion control. QUIC inogara padanho rekushandisa, zvichiita kuti zvive nyore kugadzirisa iyo huru yekufambisa algorithm inodzora kutumira zvichibva panetiweki paramita (nhamba yekurasikirwa kana RTT). Mazhinji mashandisirwo eTCP anoshandisa iyo algorithm
CUBIC , iyo isiri yakakwana kune latency-sensitive traffic. Ichangobva kugadzirwa algorithms sengeBBR , yakanyatso kutevedzera network uye optimize latency. QUIC inokutendera iwe kushandisa BBR uye kugadzirisa iyi algorithm sekushandiswa kwairi kuitwa.kuvandudzika . - kuzadzikiswa kwekurasikirwa. QUIC inodana maTLP maviri (
muswe kurasikirwa probe ) RTO isati yatanga - kunyangwe kana kurasikirwa kuchionekwa zvakanyanya. Izvi zvakasiyana nekushandiswa kweTCP. TLP inotumirazve kunyanya pakiti yekupedzisira (kana iyo nyowani, kana iripo) kukonzeresa kukurumidza kuzadza. Kubata kunonotsa muswe kunonyanya kubatsira pamashandisiro anoita Uber network yayo, inova kwenguva pfupi, sporadic, uye latency-sensitive data transfers. - yakagadziridzwa ACK. Sezvo pakiti imwe neimwe ine nhamba yakasiyana yekutevedzana, hapana dambudziko
misiyano mapaketi kana atumirwazve. ACK mapaketi anewo nguva yekugadzirisa pakiti uye kugadzira ACK padivi remutengi. Aya maficha anovimbisa kuti QUIC inoverenga RTT nemazvo. ACK muQUIC inotsigira mabhendi anosvika 256NACK , zvichibatsira mutumwa kuti awedzere kusimba pakugadzirisa packet uye kushandisa mabhaiti mashoma mukuita. Sarudza ACK (SACK ) muTCP haigadzirise dambudziko iri muzviitiko zvese. - kutama kwekubatanidza. QUIC zvinongedzo zvinoonekwa ne64-bit ID, saka kana mutengi akachinja IP kero, iyo yekare yekubatanidza ID inogona kuramba ichishandiswa pakero yeIP itsva pasina kukanganisa. Iyi ndiyo tsika yakajairika yemashandisirwo emafoni apo mushandisi anochinja pakati peWi-Fi nekubatanidza cellular.
Dzimwe nzira dzeQUIC
Takafunga dzimwe nzira dzekugadzirisa dambudziko tisati tasarudza QUIC.
Chinhu chekutanga chatakaedza kwaive kuendesa TPC PoPs (Points of Presence) kumisa kubatana kweTCP pedyo nevashandisi. Chaizvoizvo, maPoPs anomisa kubatana kweTCP nenharembozha padhuze nenharembozha uye proxy traffic kudzokera kune yekutanga zvivakwa. Nekumisa TCP padhuze, tinogona kudzikisa iyo RTT uye kuona kuti TCP inonyanya kuterera kune inoshanduka isina waya nharaunda. Nekudaro, zviedzo zvedu zvakaratidza kuti mazhinji eRTT uye kurasikirwa kunobva kunharembozha uye kushandiswa kwePoPs hakupi hukuru hwekuvandudza kwekuita.
Isu takatarisawo kugadzirisa TCP paramita. Kumisikidza TCP stack pane yedu heterogeneous edge maseva kwakange kwakaoma nekuti TCP ine zvakasiyana mashandisiro pane akasiyana OS shanduro. Zvakanga zvakaoma kuita izvi uye kuyedza akasiyana network masisitimu. Kugadzirisa TCP zvakananga pane nharembozha zvaisaita nekuda kwekushaikwa kwemvumo. Zvinotonyanya kukosha, maficha akadai senge 0-RTT yekubatanidza uye yakagadziridzwa RTT kufanotaura kwakakosha kune iyo protocol dhizaini, uye saka hazvigoneke kuwana zvakakosha mabhenefiti nekugadzirisa TCP chete.
Pakupedzisira, takaongorora akati wandei maUDP-akavakirwa maprotocol anonetsa kutenderera kwevhidhiyo-taida kuona kana aya maprotocol angabatsira kwatiri. Nehurombo, ivo vaishaikwa zvakanyanya mune dzakawanda chengetedzo marongero, uye zvakare yaida yekuwedzera TCP yekubatanidza metadata uye kutonga ruzivo.
Tsvagiridzo yedu yakaratidza kuti QUIC pamwe ndiyo chete protocol inogona kubatsira nedambudziko reInternet traffic, tichifunga nezve kuchengetedzwa uye kuita.
Kubatanidzwa kweQUIC mupuratifomu
Kuti tibudirire kupinza QUIC uye kunatsiridza kushanda kweapp munzvimbo dzakashata dzekubatanidza, takatsiva dura rekare (HTTP/2 pamusoro peTLS/TCP) neQUIC protocol. Takashandisa network library
Isu takatanga kubatanidza Cronet mune yedu Android apps kuti tiwedzere rutsigiro rweQUIC. Kubatanidzwa kwakaitwa nenzira yekuderedza mari yekufambisa zvakanyanya sezvinobvira. Panzvimbo yekutsiva zvachose iyo yekare networking stack yaishandisa raibhurari
Zvakafanana nemaitiro emidziyo yeAroid, takaisa Cronet muUber maapplication paIOS, tichibata HTTP traffic kubva kunetiweki.
Kuzadza QUIC paGoogle Cloud Balancers
Kudivi rekumashure, kupedzwa kweQUIC kunopihwa neGoogle Cloud Load balancing infrastructure, iyo inoshandisa
Performance: Zvabuda
Kubuda kwekuita ndicho chikonzero chikuru chekutsvaga kwedu kweprotocol iri nani. Kutanga, takagadzira chimiro ne
Kuedza 1
Zvokushandisa pakuedza:
- edza zvishandiso zveAroid zvine OkHttp uye Cronet stacks kuti tive nechokwadi chekuti tinobvumira HTTPS traffic pamusoro peTCP neQUIC zvakateerana;
- Java-based emulation server iyo inotumira mhando imwechete yeHTTPS misoro mumhinduro uye inotakura zvigadziriso zvevatengi kugamuchira zvikumbiro kubva kwavari;
- Cloud proxies ari padyo neIndia kumisa TCP uye QUIC kubatana. Panguva yekumisa TCP takashandisa reverse proxy pa
NGINX , zvainge zvakaoma kuwana open source reverse proxy yeQUIC. Isu takavaka reverse proxy yeQUIC isu pachedu tichishandisa iyo yakakosha QUIC stack kubva kuChromium uyeyakabudiswa iyo muchromium seyakavhurika sosi.
Mufananidzo 6. TCP vs QUIC road test suite yaive nemidziyo yeAroid ine OkHttp neCronet, cloud proxies yekumisa kubatanidza, uye sevha yekutevedzera.
Kuedza 2
Google payakaita kuti QUIC iwanikwe ne
Mufananidzo 7. Muchiedzo chechipiri, taida kuenzanisa kupera kwekupedzisira kweTCP neQUIC: kushandisa Google Cloud uye kushandisa cloud proxy yedu.
Nekuda kweizvozvo, zvakazarurwa zvakati kuti zvakatimirira:
- kugumisa kuburikidza nePoP kwakavandudza TCP kushanda. Sezvo mabharani achigumisa TCP kuwirirana pedyo nevashandisi uye akagadziridzwa zvakanyanya, izvi zvinoguma nekuderera kweRTTs, iyo inovandudza TCP kushanda. Uye kunyange zvazvo QUIC yakanga isinganyanyi kukanganiswa, yakaramba ichipfuura TCP maererano nekuderedza muswe latency (ne10-30 muzana).
- miswe inobatwa
network hops . Kunyangwe yedu QUIC proxy yaive kure nemidziyo (inenge 50 ms yakakwira latency) kupfuura Google's loaders, yakaunza mashandiro akafanana - kudzikiswa kwe15% mukunonoka maringe nekudzikiswa kwe20% mu99th percentile yeTCP. Izvi zvinoratidza kuti shanduko yemaira yekupedzisira ibhodhoro mumambure.
Mufananidzo 8: Migumisiro kubva kuongororo mbiri inoratidza kuti QUIC inonyanya kudarika TCP.
Kurwisa traffic
Tichifemerwa nekuyedza, takaisa rutsigiro rweQUIC mune yedu Android uye iOS maapplication. Takaita bvunzo dzeA/B kuti tione kukanganisa kweQUIC mumaguta anoshandira Uber. Kazhinji, takaona kudzikiswa kwakanyanya kwekunonoka kwemuswe mumatunhu ese, telecom vanoshanda uye netiweki mhando.
Iwo magirafu ari pazasi anoratidza huwandu hwekuvandudzwa kwemiswe (95 uye 99 percentiles) nemacro-region uye akasiyana network marudzi - LTE, 3G, 2G.
Mufananidzo 9. Mukuedzwa kwehondo, QUIC yakapfuura TCP maererano ne latency.
Mberi chete
Zvichida uku kuchangotanga - kuburitswa kweQUIC mukugadzira kwakapa mikana inoshamisa yekuvandudza mashandiro ekushandisa mune ese akagadzikana uye asina kugadzikana network, anoti:
Kuwedzera kufukidzwa
Mushure mekuongorora mashandiro eprotocol patraffic chaiyo, takaona kuti ingangoita 80% yezvikamu zvakabudirira kushandisa QUIC ye. Π²ΡΠ΅Ρ zvikumbiro, nepo 15% yezvikamu zvakashandisa musanganiswa weQUIC neTCP. Isu tinofungidzira kuti musanganiswa unoenderana neiyo Cronet raibhurari nguva yekudzokera kuTCP, sezvo isingakwanise kusiyanisa pakati peiyo UDP kutadza uye netiweki mamiriro asina kunaka. Parizvino tiri kutsvaga mhinduro kudambudziko iri apo tiri kushanda takanangana nekuzoitwa kweQUIC.
QUIC optimization
Traffic kubva kunharembozha inonzwa latency, asi kwete bandwidth inonzwa. Zvakare, maapplication edu anonyanya kushandiswa pamaserura network. Kubva pane zviedzo, miswe latencies ichiri yakakwira kunyangwe kushandisa proxy kumisa TCP uye QUIC padyo nevashandisi. Isu tiri kushingairira kutsvaga nzira dzekuvandudza congestion manejimendi uye kugadzirisa mashandiro eQUIC kurasikirwa kudzoreredza algorithms.
Neizvi uye zvimwe zvakati wandei kuvandudzwa, isu tinoronga kuvandudza ruzivo rwemushandisi zvisinei netiweki uye dunhu, zvichiita kuti zvifambiso zvepaketi zviri nyore uye zvisina musono zviwanikwe kutenderera pasirese.
Source: www.habr.com