Протоколи QUIC дар амал: чӣ гуна Uber онро барои оптимизатсияи кор татбиқ кард

Протоколи QUIC барои тамошо хеле ҷолиб аст, аз ин рӯ мо навиштанро дар бораи он дӯст медорем. Аммо агар нашрияҳои қаблӣ дар бораи QUIC бештар хусусияти таърихӣ (таърихи маҳаллӣ, агар ба шумо маъқул бошад) ва сахтафзор бошанд, имрӯз мо бо хушнудӣ тарҷумаи навъи дигарро нашр мекунем - мо дар бораи татбиқи воқеии протокол дар соли 2019 сӯҳбат хоҳем кард. Гузашта аз ин, мо на дар бораи инфрасохтори хурде, ки дар гараж ба истилоҳ асос ёфтааст, гап мезанем, балки дар бораи Uber, ки тақрибан дар тамоми ҷаҳон фаъолият мекунад. Чӣ гуна муҳандисони ширкат ба қарори истифодаи QUIC дар истеҳсолот омаданд, чӣ гуна онҳо озмоишҳоро анҷом доданд ва пас аз ба кор андохтани он дар истеҳсолот чиро диданд - дар поён.

Тасвирҳоро клик кардан мумкин аст. Аз хондан лаззат баред!

Протоколи QUIC дар амал: чӣ гуна Uber онро барои оптимизатсияи кор татбиқ кард

Uber миқёси ҷаҳонӣ дорад, яъне 600 шаҳри ҳузур дорад, ки дар ҳар яки онҳо барнома комилан ба Интернети бесими беш аз 4500 оператори мобилӣ такя мекунад. Истифодабарандагон интизор доранд, ки барнома на танҳо зуд, балки дар вақти воқеӣ бошад - барои ноил шудан ба ин, барномаи Uber ба таъхири кам ва пайвасти хеле боэътимод ниёз дорад. Вой, аммо стек HTTP / 2 дар шабакаҳои бесими динамикӣ ва талафот хуб кор намекунад. Мо фаҳмидем, ки дар ин ҳолат, иҷрои паст бевосита ба татбиқи TCP дар ядроҳои системаи амалиётӣ алоқаманд аст.

Барои ҳалли мушкилот мо муроҷиат кардем САФАР, протоколи мултиплексии канали муосир, ки ба мо назорати бештари иҷрои протоколи интиқолро медиҳад. Айни замон гурӯҳи корӣ IETF стандарти QUIC ҳамчун HTTP / 3.

Пас аз санҷиши васеъ, мо ба хулосае омадем, ки татбиқи QUIC дар замимаи мо дар муқоиса бо TCP боиси паст шудани таъхирҳои думдор мегардад. Мо коҳиши диапазони 10-30% трафики HTTPS-ро дар барномаҳои ронанда ва мусофир мушоҳида кардем. QUIC инчунин ба мо назоратро аз болои бастаҳои корбарон дод.

Дар ин мақола, мо таҷрибаи худро дар беҳсозии TCP барои замимаҳои Uber бо истифода аз стек, ки QUIC-ро дастгирӣ мекунад, мубодила мекунем.

Технологияи навтарин: TCP

Имрӯз, TCP протоколи нақлиётии бештар истифодашаванда барои интиқоли трафики HTTPS дар Интернет мебошад. TCP ҷараёни боэътимоди байтҳоро таъмин мекунад ва ба ин васила бо фишори шабака ва талафоти қабати пайванд мубориза мебарад. Истифодаи густурдаи TCP барои трафики HTTPS ба он вобаста аст, ки дар ҳама ҷо мавҷудияти пештара (қариб ҳар як ОС дорои TCP), мавҷудият дар аксари инфрасохтор (ба монанди тавозуни сарборӣ, прокси HTTPS ва CDN) ва функсияи берун аз қуттӣ дастрас аст. қариб дар аксари платформаҳо ва шабакаҳо.

Аксари корбарон барномаи моро дар роҳ истифода мебаранд ва таъхирҳои TCP дар ҳеҷ куҷо ба талаботи трафики HTTPS дар вақти воқеии мо наздик набуданд. Оддӣ карда гӯем, корбарони тамоми ҷаҳон инро аз сар гузаронидаанд - Расми 1 таъхирҳоро дар шаҳрҳои калон нишон медиҳад:

Протоколи QUIC дар амал: чӣ гуна Uber онро барои оптимизатсияи кор татбиқ кард
Тасвири 1: Вақти таъхир дар тамоми шаҳрҳои асосии Uber фарқ мекунад.

Гарчанде ки таъхир дар шабакаҳои Ҳиндустон ва Бразилия нисбат ба ИМА ва Британияи Кабир баландтар буд, аммо таъхири дум нисбат ба таъхири миёна хеле баландтар аст. Ва ин ҳатто барои ИМА ва Бритониё дуруст аст.

Фаъолияти TCP тавассути ҳаво

TCP барои симдор шабакаҳо, яъне бо таваҷҷӯҳ ба истинодҳои хеле пешгӯинашаванда. Бо вуҷуди ин, бесим шабакаҳо хусусиятҳо ва душвориҳои худро доранд. Аввалан, шабакаҳои бесим аз сабаби халалдоршавӣ ва сустшавии сигнал ба талафот дучор мешаванд. Масалан, шабакаҳои Wi-Fi ба микромавҷҳо, bluetooth ва дигар мавҷҳои радио ҳассосанд. Шабакаҳои мобилӣ аз гум шудани сигнал азоб мекашанд (роҳи гумшуда) аз рУи инъикос/хубкунии сигнал аз тарафи объектхо ва бинохо, инчунин аз дахолат кардан аз хамсоя манораҳои ҳуҷайра. Ин боиси назаррас бештар (4-10 маротиба) ва гуногунтар Вақти сафар (RTT) ва талафоти бастаҳо дар муқоиса бо пайвасти симӣ.

Барои мубориза бо тағирёбии фарохмаҷро ва талафот, шабакаҳои мобилӣ маъмулан буферҳои калонро барои таркишҳои трафик истифода мебаранд. Ин метавонад ба навбати аз ҳад зиёд оварда расонад, ки маънои таъхирҳои тӯлониро дорад. Бисёр вақт TCP ин навбатро аз сабаби вақти тӯлонӣ ҳамчун партов ҳисоб мекунад, аз ин рӯ TCP майл ба интиқол ва ба ин васила буферро пур мекунад. Ин мушкилот ҳамчун маълум аст буферӣ (буферии аз ҳад зиёди шабака, bloat буферӣ), ва ин хеле аст мушкилоти ҷиддӣ Интернети муосир.

Ниҳоят, иҷрои шабакаи мобилӣ вобаста ба интиқолдиҳанда, минтақа ва вақт фарқ мекунад. Дар расми 2, мо таъхирҳои миёнаи трафики HTTPS-ро дар байни ҳуҷайраҳо дар масофаи 2 километр ҷамъоварӣ кардем. Маълумот барои ду оператори асосии мобилӣ дар Деҳлии Ҳиндустон ҷамъоварӣ карда шудааст. Тавре ки шумо мебинед, иҷроиш аз ҳуҷайра ба ҳуҷайра фарқ мекунад. Инчунин, махсулнокии кори як оператор аз хосилнокии кори дуйум фарк мекунад. Ба ин омилҳо аз қабили шакли вуруди шабака бо назардошти вақт ва макон, ҳаракати корбарон, инчунин инфрасохтори шабакавӣ бо назардошти зичии манораҳо ва таносуби намудҳои шабака (LTE, 3G ва ғайра) таъсир мерасонад.

Протоколи QUIC дар амал: чӣ гуна Uber онро барои оптимизатсияи кор татбиқ кард
Расми 2. Таъхирҳо бо истифода аз радиуси 2 км ҳамчун мисол. Деҳлӣ, Ҳиндустон.

Инчунин, иҷрои шабакаҳои мобилӣ бо мурури замон фарқ мекунад. Дар расми 3 таъхири миёнаравӣ аз рӯи рӯзи ҳафта нишон дода шудааст. Мо инчунин фарқиятҳоро дар миқёси хурдтар, дар давоми як рӯз ва соат мушоҳида кардем.

Протоколи QUIC дар амал: чӣ гуна Uber онро барои оптимизатсияи кор татбиқ кард
Тасвири 3. Таъхири дум метавонад дар байни рӯзҳо ба таври назаррас фарқ кунад, аммо барои як оператор.

Ҳамаи чизҳои дар боло зикршуда боиси бесамар будани иҷрои TCP дар шабакаҳои бесим мешаванд. Аммо, пеш аз ҷустуҷӯи алтернативаҳо ба TCP, мо мехостем, ки дар бораи нуктаҳои зерин фаҳмиши дақиқро таҳия кунем:

  • Оё TCP гунаҳкори асосии паси таъхирҳои думдор дар замимаҳои мост?
  • Оё шабакаҳои муосир таъхирҳои назаррас ва гуногунранг доранд (RTT)?
  • Таъсири RTT ва талафот ба иҷрои TCP чӣ гуна аст?

Таҳлили иҷрои TCP

Барои фаҳмидани он ки чӣ тавр мо иҷрои TCP-ро таҳлил кардем, биёед зуд дида бароем, ки чӣ тавр TCP маълумотро аз ирсолкунанда ба қабулкунанда интиқол медиҳад. Аввалан, ирсолкунанда пайвасти TCP-ро муқаррар мекунад, ки сеҷонибаро иҷро мекунад дастфишорӣ: Фиристодан бастаи SYN-ро мефиристад, аз қабулкунанда бастаи SYN-ACK-ро интизор мешавад ва сипас бастаи ACK мефиристад. Як гузариши дуюм ва сеюми иловагӣ барои таъсиси пайвасти TCP сарф мешавад. Қабулкунанда қабули ҳар як бастаро (ACK) тасдиқ мекунад, то интиқоли боэътимодро таъмин кунад.

Агар баста ё ACK гум шавад, ирсолкунанда пас аз гузашти вақт дубора интиқол медиҳад (RTO, вақти интиқоли дубора). RTO ба таври динамикӣ дар асоси омилҳои гуногун ҳисоб карда мешавад, ба монанди таъхири интизории RTT байни ирсолкунанда ва қабулкунанда.

Протоколи QUIC дар амал: чӣ гуна Uber онро барои оптимизатсияи кор татбиқ кард
Расми 4. Мубодилаи бастаҳо тавассути TCP/TLS механизми интиқоли такрориро дар бар мегирад.

Барои муайян кардани он, ки TCP дар замимаҳои мо чӣ гуна кор мекард, мо бо истифода аз бастаҳои TCP назорат кардем tcpdump барои як ҳафта дар трафики ҷангӣ, ки аз серверҳои канори Ҳиндустон меояд. Пас аз он мо бо истифода аз пайвастҳои TCP таҳлил кардем tcptrace. Илова бар ин, мо як замимаи Android эҷод кардем, ки трафики тақлидшударо ба сервери санҷишӣ мефиристад ва ба қадри имкон трафики воқеиро тақлид мекунад. Смартфонҳо бо ин барнома ба якчанд корманд тақсим карда шуданд, ки дар тӯли чанд рӯз гузоришҳоро ҷамъоварӣ карданд.

Натичахои хар ду тачриба ба хамдигар мувофик буданд. Мо таъхирҳои баланди RTT-ро дидем; арзишҳои дум тақрибан 6 маротиба зиёдтар аз арзиши миёна буданд; миёнаи арифметикии таъхирхо аз 1 сония зиёд аст. Бисёре аз пайвастҳо гум шуданд, ки TCP 3,5% тамоми бастаҳоро дубора интиқол дод. Дар минтақаҳои серодам, аз қабили фурудгоҳҳо ва вокзалҳо, мо 7% талафот дидем. Ин натиҷаҳо ба ҳикмати анъанавӣ, ки дар шабакаҳои мобилӣ истифода мешаванд, шубҳа доранд схемаҳои пешрафтаи ретранслятсионӣ талафот дар дарачаи наклиёт хеле кам карда шавад. Дар зер натиҷаҳои санҷиш аз барномаи "симулятор" оварда шудаанд:

Метрикҳои шабакавӣ
Арзиши

RTT, миллисонияҳо [50%,75%, 95%,99%]
[350, 425, 725, 2300]

Фарқияти RTT, сония
Ба ҳисоби миёна ~ 1,2 с

Талафоти бастаҳо дар пайвастҳои ноустувор
Ба ҳисоби миёна ~ 3.5% (7% дар минтақаҳои изофабор)

Қариб нисфи ин пайвастҳо ҳадди аққал як бастаи гумшуда доштанд, аксари онҳо бастаҳои SYN ва SYN-ACK буданд. Аксари татбиқи TCP барои бастаҳои SYN арзиши RTO-и 1 сонияро истифода мебаранд, ки барои талафоти минбаъда ба таври экспоненсиалӣ меафзояд. Вақти боркунии барнома метавонад зиёд шавад, зеро TCP барои барқарор кардани пайвастҳо тӯлонитар мегирад.

Дар мавриди бастаҳои додаҳо, арзишҳои баланди RTO истифодаи муфиди шабакаро ҳангоми мавҷудияти талафоти муваққатӣ дар шабакаҳои бесим хеле кам мекунанд. Мо дарёфтем, ки вақти миёнаи интиқол тақрибан 1 сония бо таъхири дум тақрибан 30 сония аст. Ин таъхирҳои баланд дар сатҳи TCP боиси танаффусҳои HTTPS ва дархостҳои такрорӣ шуда, таъхири шабака ва бесамарии минбаъдаро афзоиш доданд.

Дар ҳоле ки фоизи 75-уми RTT-и ченшуда тақрибан 425 мс буд, фоизи 75-ум барои TCP тақрибан 3 сония буд. Ин ишора мекунад, ки талафот боиси он шудааст, ки TCP барои интиқоли бомуваффақияти маълумот 7-10 гузаришро мегирад. Ин метавонад натиҷаи ҳисоби бесамар RTO, натавонистани TCP ба зудӣ ба талафот вокуниш нишон диҳад бастаҳои охирин дар равзана ва бесамар будани алгоритми назорати консессия, ки байни талафоти бесим ва талафот аз сабаби сершавии шабака фарқ намекунад. Дар зер натиҷаҳои санҷишҳои гумшудаи TCP оварда шудаанд:

Омори талафоти бастаи TCP
арзиши

Фоизи пайвастҳо бо талафоти ҳадди аққал 1 баста
45%

Фоизи пайвастшавӣ бо талафот ҳангоми насби пайвастшавӣ
30%

Фоизи пайвастшавӣ бо талафот ҳангоми мубодилаи маълумот
76%

Тақсимоти таъхир дар интиқоли такрорӣ, сонияҳо [50%, 75%, 95%,99%] [1, 2.8, 15, 28]

Тақсимоти шумораи такрорӣ барои як пакет ё сегменти TCP
[1,3,6,7]

Татбиқи QUIC

Аввалан аз ҷониби Google таҳия шудааст, QUIC як протоколи муосири нақлиётии бисёрсоҳавӣ мебошад, ки дар болои UDP кор мекунад. Дар айни замон QUIC дар раванди стандартизатсия (мо аллакай навишта будем, ки ду версияи QUIC, кунҷкобу вуҷуд доранд пайвандро пайгирӣ кардан мумкин аст – тахминан. тарҷумон). Тавре ки дар расми 5 нишон дода шудааст, QUIC дар зери HTTP/3 ҷойгир карда шудааст (воқеан, HTTP/2 дар болои QUIC HTTP/3 аст, ки ҳоло бо шиддат стандартизатсия карда мешавад). Он қисман қабатҳои HTTPS ва TCP-ро бо истифода аз UDP барои ташкили бастаҳо иваз мекунад. QUIC танҳо интиқоли бехатари маълумотро дастгирӣ мекунад, зеро TLS пурра дар QUIC сохта шудааст.

Протоколи QUIC дар амал: чӣ гуна Uber онро барои оптимизатсияи кор татбиқ кард
Тасвири 5: QUIC дар зери HTTP/3 кор мекунад ва TLS-ро иваз мекунад, ки қаблан зери HTTP/2 кор мекард.

Дар зер сабабҳое ҳастанд, ки моро бовар мекунонанд, ки QUIC-ро барои тақвияти TCP истифода барем:

  • Таъсиси пайвасти 0-RTT. QUIC имкон медиҳад, ки иҷозатҳоро аз пайвастагиҳои қаблӣ истифода барад ва шумораи дастфишориҳои амниятро кам кунад. Дар оянда TLS1.3 0-RTT-ро дастгирӣ хоҳад кард, аммо ҳамфикрии сеҷонибаи TCP то ҳол талаб карда мешавад.
  • бартараф кардани блоки HoL. HTTP/2 барои беҳтар кардани кор барои як муштарӣ як пайвасти TCP-ро истифода мебарад, аммо ин метавонад ба бастани HoL (сари сатр) оварда расонад. QUIC мултиплексро содда мекунад ва дархостҳоро ба барнома мустақилона мерасонад.
  • назорати фишор. QUIC дар қабати барнома ҷойгир буда, навсозии алгоритми асосии нақлиётро, ки ирсолро аз рӯи параметрҳои шабака назорат мекунад (шумораи талафот ё RTT) осонтар мекунад. Аксарияти амалисозии TCP алгоритмро истифода мебаранд Мукааб, ки барои трафики ҳассос ба таъхир мувофиқ нест. Алгоритмҳои ба наздикӣ таҳияшуда монанди BBR, шабакаро дақиқтар модел кунед ва таъхирро оптимизатсия кунед. QUIC ба шумо имкон медиҳад, ки BBR-ро истифода баред ва ин алгоритмро тавре ки истифода мешавад, навсозӣ кунед. беҳтаршавӣ.
  • пур кардани талафот. QUIC ду TLP-ро даъват мекунад (санҷиши талафоти дум) пеш аз ба кор андохтани РТО — хатто вакте ки талафот хеле намоён аст. Ин аз татбиқи TCP фарқ мекунад. TLP асосан бастаи охиринро (ё бастаи нав, агар мавҷуд бошад) дубора интиқол медиҳад, то пуркунии зудро оғоз кунад. Мубориза бо таъхирҳои дум махсусан барои тарзи идоракунии шабакаи худ, аз ҷумла барои интиқоли маълумоти кӯтоҳ, пароканда ва ба таъхир ҳассос муфид аст.
  • ACK оптимизатсияшуда. Азбаски ҳар як баста рақами пайдарпайии беназир дорад, ҳеҷ мушкиле вуҷуд надорад фарқиятҳо пакетҳо ҳангоми интиқоли онҳо. Бастаҳои ACK инчунин вақт барои коркарди баста ва тавлиди ACK дар тарафи муштарӣ доранд. Ин хусусиятҳо кафолат медиҳанд, ки QUIC RTT-ро дақиқтар ҳисоб мекунад. ACK дар QUIC то 256 бандро дастгирӣ мекунад НАК, ба ирсолкунанда кӯмак мекунад, ки барои омехта кардани бастаҳо устувортар бошад ва дар ин раванд байтҳои камтарро истифода барад. ACK-и интихобӣ (ХАЛТА) дар TCP ин мушкилотро на дар ҳама ҳолатҳо ҳал мекунад.
  • муҳоҷирати пайвастшавӣ. Пайвастҳои QUIC бо ID-и 64-бит муайян карда мешаванд, аз ин рӯ, агар муштарӣ суроғаҳои IP-ро тағир диҳад, ID-и пайвасти кӯҳна метавонад бидуни таваққуф дар суроғаи нави IP истифода шавад. Ин як таҷрибаи хеле маъмул барои замимаҳои мобилӣ мебошад, ки корбар дар байни Wi-Fi ва пайвастҳои мобилӣ мегузаранд.

Алтернативаҳо ба QUIC

Мо пеш аз интихоби QUIC усулҳои алтернативии ҳалли мушкилотро баррасӣ кардем.

Аввалин чизе, ки мо кӯшиш кардем, ҷойгиркунии TPC PoPs (Нуқтаҳои ҳузур) барои қатъ кардани пайвастҳои TCP ба корбарон наздиктар буд. Аслан, PoPҳо пайвасти TCP-ро бо дастгоҳи мобилӣ ба шабакаи мобилӣ наздиктар қатъ мекунанд ва трафикро ба инфрасохтори аслӣ бармегардонанд. Бо қатъ кардани TCP наздиктар, мо метавонем эҳтимолан RTT-ро кам кунем ва боварӣ ҳосил кунем, ки TCP ба муҳити динамикии бесими бештар ҷавобгӯ аст. Бо вуҷуди ин, таҷрибаҳои мо нишон доданд, ки аксари RTT ва талафот аз шабакаҳои мобилӣ бармеоянд ва истифодаи PoPs беҳбудии назаррасро таъмин намекунад.

Мо инчунин танзими параметрҳои TCP-ро дида баромадем. Насб кардани стеки TCP дар серверҳои канори гетерогении мо душвор буд, зеро TCP дар версияҳои гуногуни ОС амалҳои гуногун дорад. Татбиқи ин ва санҷидани конфигуратсияҳои гуногуни шабака мушкил буд. Танзими TCP мустақиман дар дастгоҳҳои мобилӣ аз сабаби набудани иҷозат имконнопазир буд. Муҳимтар аз ҳама, хусусиятҳо ба монанди пайвастҳои 0-RTT ва пешгӯии беҳтаршудаи RTT барои меъмории протокол муҳиманд ва аз ин рӯ танҳо тавассути танзими TCP ба манфиатҳои назаррас ноил шудан ғайриимкон аст.

Дар ниҳоят, мо якчанд протоколҳои UDP-ро, ки мушкилоти ҷараёнро бартараф мекунанд, арзёбӣ кардем - мо мехостем бубинем, ки оё ин протоколҳо дар ҳолати мо кӯмак мекунанд. Мутаассифона, онҳо дар бисёре аз танзимоти амниятӣ ба таври ҷиддӣ нокифоя буданд ва инчунин пайвасти иловагии TCP барои метамаълумот ва иттилооти назоратро талаб мекарданд.

Тадқиқоти мо нишон дод, ки QUIC шояд ягона протоколе бошад, ки метавонад дар ҳалли мушкилоти трафики интернет бо дарназардошти ҳам амният ва ҳам самаранокӣ кӯмак кунад.

Интегратсияи QUIC ба платформа

Барои бомуваффақият ҷобаҷо кардани QUIC ва беҳтар кардани иҷрои барнома дар муҳити сусти пайвастшавӣ, мо стеки кӯҳнаро (HTTP/2 бар TLS/TCP) бо протоколи QUIC иваз кардем. Мо китобхонаи шабакавиро истифода мебарем Кронет аз он Лоиҳаҳои Chromium, ки нусхаи аслии Google-и протокол - gQUIC -ро дар бар мегирад. Ин татбиқ инчунин барои риояи мушаххасоти охирини IETF пайваста такмил дода мешавад.

Мо аввал Cronet-ро ба барномаҳои Android-и худ ворид кардем, то ба QUIC дастгирӣ илова кунем. Интегратсия тавре сурат гирифт, ки хароҷоти муҳоҷират то ҳадди имкон кам карда шавад. Ба ҷои пурра иваз кардани стеки шабакавии кӯҳна, ки китобхонаро истифода мебурд OkHttp, мо Cronet-ро дар доираи чаҳорчӯбаи OkHttp API муттаҳид кардем. Бо ин роҳ, мо аз тағирот дар зангҳои шабакавии худ канорагирӣ кардем (ки аз ҷониби Бозгашт) дар сатҳи API.

Монанди равиш барои дастгоҳҳои Android, мо Cronet-ро ба барномаҳои Uber дар iOS татбиқ кардем, ки трафики HTTP-ро аз шабака бозмедошт. APIистифодаи Протоколи NSURL. Ин абстраксия, ки аз ҷониби Фонди iOS пешниҳод шудааст, маълумотҳои URL-и мушаххаси протоколро коркард мекунад ва кафолат медиҳад, ки мо метавонем Cronet-ро ба замимаҳои iOS-и худ бидуни хароҷоти зиёди муҳоҷират ҳамгиро кунем.

Анҷом додани QUIC дар Google Cloud Balancers

Дар паҳлӯи ақиб, анҷоми QUIC аз ҷониби инфрасохтори мувозинати Google Cloud Load таъмин карда мешавад, ки alt-svc сарлавҳаҳо дар посух ба дастгирии QUIC. Умуман, мувозинат ба ҳар як дархости HTTP сарлавҳаи alt-svc илова мекунад ва ин аллакай дастгирии QUIC-ро барои домен тасдиқ мекунад. Вақте ки муштарии Cronet бо ин сарлавҳа посухи HTTP мегирад, он QUIC-ро барои дархостҳои минбаъдаи HTTP ба он домен истифода мебарад. Пас аз он ки мувозинат QUIC-ро анҷом медиҳад, инфрасохтори мо ин амалро тавассути HTTP2/TCP ба марказҳои додаҳои мо мефиристад.

Намоиш: Натиҷаҳо

Иҷрои натиҷа сабаби асосии ҷустуҷӯи протоколи беҳтари мост. Барои оғоз, мо як стенд бо эмуляцияи шабакато бидонед, ки QUIC дар профилҳои гуногуни шабака чӣ гуна рафтор мекунад. Барои санҷидани кори QUIC дар шабакаҳои воқеии ҷаҳон, мо ҳангоми рондан дар атрофи Деҳлии Нав бо истифода аз трафики шабакавии тақлидшуда ба зангҳои HTTP дар барномаи мусофирбар хеле шабеҳ таҷриба гузаронидем.

Таҷрибаи 1

Таҷҳизот барои таҷриба:

  • дастгоҳҳои Android-ро бо стекҳои OkHttp ва Cronet санҷед, то боварӣ ҳосил кунем, ки мо трафики HTTPS-ро тавассути TCP ва QUIC иҷозат медиҳем;
  • сервери эмулятории Java, ки ҳамон навъи сарлавҳаҳои HTTPS-ро дар посухҳо мефиристад ва дастгоҳҳои муштариро барои қабули дархостҳо аз онҳо бор мекунад;
  • прокси абрӣ, ки ҷисмонӣ дар наздикии Ҳиндустон ҷойгиранд, то пайвастҳои TCP ва QUIC қатъ карда шаванд. Дар ҳоле ки барои қатъи TCP мо прокси баръаксро истифода мебарем NGINX, пайдо кардани прокси манбаи кушода барои QUIC душвор буд. Мо худамон прокси баръакси QUIC-ро бо истифода аз стеки асосии QUIC аз Chromium ва нашр кардааст онро ба Chromium ҳамчун манбаи кушода.

Протоколи QUIC дар амал: чӣ гуна Uber онро барои оптимизатсияи кор татбиқ кардПротоколи QUIC дар амал: чӣ гуна Uber онро барои оптимизатсияи кор татбиқ кард
Расми 6. Маҷмӯаи санҷиши роҳи TCP vs QUIC аз дастгоҳҳои Android бо OkHttp ва Cronet, проксиҳои абрӣ барои қатъ кардани пайвастҳо ва сервери эмулятсия иборат буд.

Таҷрибаи 2

Вақте ки Google QUIC-ро бо дастрас кард Мувозинати сарбории Google Cloud, мо ҳамон инвентаризатсияро истифода мебарем, аммо бо як тағирот: ба ҷои NGINX, мо Google-ро тавозуни сарборӣ гирифтем, то пайвастҳои TCP ва QUIC аз дастгоҳҳоро қатъ кунанд ва инчунин трафики HTTPS-ро ба сервери эмулятсия масир кунем. Мувозинатдиҳандаҳо дар тамоми ҷаҳон паҳн карда мешаванд, аммо сервери PoP-ро ба дастгоҳ наздиктарин истифода баред (ба шарофати ҷойгиршавӣ).

Протоколи QUIC дар амал: чӣ гуна Uber онро барои оптимизатсияи кор татбиқ кард
Расми 7. Дар таҷрибаи дуюм, мо мехостем, ки таъхири анҷоми TCP ва QUIC-ро муқоиса кунем: бо истифода аз Google Cloud ва истифодаи прокси абрии мо.

Дар натиҷа, моро якчанд ваҳй интизор буд:

  • қатъ тавассути PoP иҷрои беҳтари TCP. Азбаски мувозинаткунандагон пайвастҳои TCP-ро ба корбарон наздиктар қатъ мекунанд ва хеле оптимизатсия шудаанд, ин боиси паст шудани RTT-ҳо мегардад, ки иҷрои TCP-ро беҳтар мекунад. Ва гарчанде ки QUIC камтар таъсир дошт, он ҳанӯз ҳам аз ҷиҳати кам кардани таъхири дум (10-30 фоиз) аз TCP бартарӣ дошт.
  • думҳо таъсир мерасонанд hops шабакавӣ. Гарчанде ки прокси QUIC-и мо нисбат ба мувозинатҳои сарбории Google аз дастгоҳҳо дуртар буд (тақрибан 50 мс баландтар таъхир), он иҷрои шабеҳро таъмин кард - 15% коҳиши таъхир дар муқоиса бо 20% коҳиши фоизи 99-ум барои TCP. Ин аз он шаҳодат медиҳад, ки гузариши милии охирин як монеа дар шабака аст.

Протоколи QUIC дар амал: чӣ гуна Uber онро барои оптимизатсияи кор татбиқ кардПротоколи QUIC дар амал: чӣ гуна Uber онро барои оптимизатсияи кор татбиқ кард
Тасвири 8: Натиҷаҳои ду таҷриба нишон медиҳанд, ки QUIC аз TCP хеле бартарӣ дорад.

Мубориза бо трафик

Аз таҷриба илҳом гирифта, мо дастгирии QUIC-ро дар замимаҳои Android ва iOS-и худ татбиқ кардем. Мо барои муайян кардани таъсири QUIC дар шаҳрҳое, ки Uber фаъолият мекунад, санҷиши A/B гузаронидем. Дар маҷмӯъ, мо коҳиши назарраси таъхирҳои думро дар ҳарду минтақа, операторони телекоммуникатсионӣ ва намуди шабака дидем.

Графикҳои дар поён овардашуда дарсади беҳбудиро дар думҳо (95 ва 99 фоиз) аз рӯи макроминтақа ва намудҳои гуногуни шабака - LTE, 3G, 2G нишон медиҳанд.
Протоколи QUIC дар амал: чӣ гуна Uber онро барои оптимизатсияи кор татбиқ кардПротоколи QUIC дар амал: чӣ гуна Uber онро барои оптимизатсияи кор татбиқ кард
Расми 9. Дар озмоишҳои ҷангӣ, QUIC аз ҷиҳати таъхир аз TCP бартарӣ дошт.

Танҳо ба пеш

Эҳтимол, ин танҳо ибтидо аст - баровардани QUIC дар истеҳсолот имкониятҳои аҷиберо барои беҳтар кардани кори барномаҳо дар шабакаҳои устувор ва ноустувор фароҳам овард, аз ҷумла:

Афзоиши фарогирӣ

Ҳангоми таҳлили иҷрои протокол дар трафики воқеӣ, мо дидем, ки тақрибан 80% сессияҳо QUIC-ро бомуваффақият истифода мебаранд. всех дархостҳо, дар ҳоле ки 15% сессияҳо омезиши QUIC ва TCP-ро истифода мебаранд. Мо тахмин мезанем, ки комбинатсияи он ба сабаби бозгашти китобхонаи Cronet ба TCP аст, зеро он байни нокомиҳои воқеии UDP ва шароити бади шабака фарқ карда наметавонад. Мо ҳоло роҳи ҳалли ин мушкилотро меҷӯем, зеро мо барои татбиқи минбаъдаи QUIC кор мекунем.

оптимизатсияи QUIC

Трафик аз барномаҳои мобилӣ ба таъхир ҳассос аст, аммо ба фарохмаҷрои он ҳассос нест. Инчунин, замимаҳои мо асосан дар шабакаҳои мобилӣ истифода мешаванд. Бар асоси таҷрибаҳо, ҳарчанд бо истифода аз прокси барои қатъ кардани TCP ва QUIC дар назди корбарон, таъхири думҳо ҳанӯз баланд аст. Мо фаъолона роҳҳои беҳтар кардани идоракунии фишор ва баланд бардоштани самаранокии алгоритмҳои барқарорсозии талафоти QUIC-ро ҷустуҷӯ дорем.

Бо ин ва як қатор беҳбудиҳои дигар, мо нақша дорем, ки таҷрибаи корбарро новобаста аз шабака ва минтақа беҳтар созем ва интиқоли қулай ва бефосиларо дар саросари ҷаҳон дастрастар гардонем.

Манбаъ: will.com

Илова Эзоҳ