Netiweki yomwe imadzichiritsa yokha: matsenga a Flow Label ndi wapolisi wofufuza pafupi ndi Linux kernel. Ripoti la Yandex

Malo amakono a data ali ndi mazana a zida zogwira ntchito zomwe zimayikidwa, zophimbidwa ndi mitundu yosiyanasiyana yowunikira. Koma ngakhale injiniya wabwino yemwe ali ndi kuwunika bwino m'manja atha kuyankha molondola pakulephera kwa netiweki mumphindi zochepa chabe. Mu lipoti pamsonkhano wa Next Hop 2020, ndidapereka njira yopangira ma network a DC, omwe ali ndi mawonekedwe apadera - malo opangira data amadzichiritsa okha mu milliseconds. Molondola, injiniya amakonza vutoli modekha, pomwe mautumiki samazindikira.

- Poyamba, ndipereka chidule chatsatanetsatane kwa iwo omwe mwina sakudziwa momwe DC yamakono imapangidwira.
Netiweki yomwe imadzichiritsa yokha: matsenga a Flow Label ndi wapolisi wofufuza pafupi ndi Linux kernel. Ripoti la Yandex

Kwa mainjiniya ambiri apaintaneti, ma netiweki a data center amayamba, inde, ndi ToR, yokhala ndi chosinthira. ToR nthawi zambiri imakhala ndi mitundu iwiri ya maulalo. Zing'onozing'ono zimapita ku ma seva, ena - pali N nthawi zambiri za iwo - amapita kumtunda wa msinkhu woyamba, ndiko kuti, ku uplinks. Uplinks nthawi zambiri amawonedwa ngati ofanana, ndipo kuchuluka kwa magalimoto pakati pa uplinks kumakhala koyenera kutengera hashi kuchokera ku 5-tuple, yomwe imaphatikizapo proto, src_ip, dst_ip, src_port, dst_port. Palibe zodabwitsa apa.
Netiweki yomwe imadzichiritsa yokha: matsenga a Flow Label ndi wapolisi wofufuza pafupi ndi Linux kernel. Ripoti la Yandex

Chotsatira, kamangidwe ka pulani kakuwoneka bwanji? Mipingo ya mulingo woyamba siyimalumikizidwa wina ndi mnzake, koma imalumikizidwa ndi ma superspines. Chilembo X chidzakhala ndi udindo wa superspines; pafupifupi ngati cholumikizira.
Netiweki yomwe imadzichiritsa yokha: matsenga a Flow Label ndi wapolisi wofufuza pafupi ndi Linux kernel. Ripoti la Yandex

Ndipo zikuwonekeratu kuti, kumbali ina, ma tori amagwirizanitsidwa ndi misana yonse ya msinkhu woyamba. Chofunika ndi chiyani pa chithunzi ichi? Ngati tili ndi mgwirizano mkati mwa choyikapo, ndiye kuti kuyanjana, ndithudi, kumadutsa mu ToR. Ngati kuyanjana kumapezeka mkati mwa gawo, ndiye kuti kuyanjana kumachitika kudzera mumipingo yoyamba. Ngati kuyanjana kuli pakati - monga pano, ToR 1 ndi ToR 2 - ndiye kuti kuyanjanaku kumadutsa m'mizere yamagulu oyamba ndi achiwiri.
Netiweki yomwe imadzichiritsa yokha: matsenga a Flow Label ndi wapolisi wofufuza pafupi ndi Linux kernel. Ripoti la Yandex

Mwachidziwitso, zomangamanga zoterezi zimakhala zosavuta. Ngati tili ndi mphamvu ya doko, malo osungiramo malo osungiramo deta ndi fiber yokonzedweratu, ndiye kuti chiwerengero cha misewu chikhoza kuwonjezeka nthawi zonse, motero kuwonjezera mphamvu zonse za dongosolo. Izi ndizosavuta kuchita pamapepala. Zingakhale chonchi m’moyo. Koma nkhani ya lero si nkhani imeneyi.
Netiweki yomwe imadzichiritsa yokha: matsenga a Flow Label ndi wapolisi wofufuza pafupi ndi Linux kernel. Ripoti la Yandex

Ndikufuna kuti ziganizo zolondola zitheke. Tili ndi njira zambiri mkati mwa data center. Iwo ali odziyimira pawokha. Njira imodzi mkati mwa data center ndi yotheka mkati mwa ToR. M'kati mwa module, tili ndi chiwerengero cha njira zofanana ndi chiwerengero cha misewu. Chiwerengero cha njira pakati pa ma modules ndi ofanana ndi chiwerengero cha ndege ndi chiwerengero cha superspines mu ndege iliyonse. Kuti zimveke bwino, kuti mumvetse kukula kwake, ndipereka manambala omwe ali ovomerezeka ku imodzi mwa malo a data a Yandex.
Netiweki yomwe imadzichiritsa yokha: matsenga a Flow Label ndi wapolisi wofufuza pafupi ndi Linux kernel. Ripoti la Yandex

Pali ndege zisanu ndi zitatu, ndege iliyonse ili ndi ma superspines 32. Chotsatira chake, zikuwoneka kuti pali njira zisanu ndi zitatu mkati mwa gawo, ndipo ndi kugwirizana kwa intermodule pali kale 256 mwa iwo.

Netiweki yomwe imadzichiritsa yokha: matsenga a Flow Label ndi wapolisi wofufuza pafupi ndi Linux kernel. Ripoti la Yandex

Ndiko kuti, ngati tikupanga Cookbook, kuyesera kuphunzira momwe tingamangire malo olandirira deta omwe amadzichiritsa okha, ndiye kuti mapulani a pulani ndiye chisankho choyenera. Imathetsa vuto la makulitsidwe, ndipo m'malingaliro ndi yosavuta. Pali njira zambiri zopanda pake. Funso likukhalabe: Kodi zomanga zotere zimapulumuka bwanji zolephera? Pali zolephera zosiyanasiyana. Ndipo tikambirana izi tsopano.
Netiweki yomwe imadzichiritsa yokha: matsenga a Flow Label ndi wapolisi wofufuza pafupi ndi Linux kernel. Ripoti la Yandex

Lolani mmodzi wa superspines wathu "adwale". Apa ndinabwereranso ku kamangidwe ka ndege ziwiri. Tikhala ndi izi ngati chitsanzo chifukwa zitha kukhala zosavuta kuwona zomwe zikuchitika ndi magawo ochepa osuntha. Lolani X11 adwale. Kodi izi zikhudza bwanji mautumiki omwe amakhala mkati mwa ma data? Zambiri zimatengera momwe kulephera kumawonekera.
Netiweki yomwe imadzichiritsa yokha: matsenga a Flow Label ndi wapolisi wofufuza pafupi ndi Linux kernel. Ripoti la Yandex

Ngati kulephera kuli bwino, kumagwidwa pamlingo wodzipangira wa BFD womwewo, makinawo amaika mosangalala zolumikizana zovuta ndikupatula vutoli, ndiye kuti zonse zili bwino. Tili ndi mayendedwe ambiri, magalimoto amasinthidwa nthawi yomweyo kupita kunjira zina, ndipo ntchito siziwona chilichonse. Ichi ndi script yabwino.
Netiweki yomwe imadzichiritsa yokha: matsenga a Flow Label ndi wapolisi wofufuza pafupi ndi Linux kernel. Ripoti la Yandex

Chochitika choipa ndi ngati timatayika nthawi zonse, ndipo makinawo samazindikira vuto. Kuti timvetsetse momwe izi zimakhudzira pulogalamu, tikhala ndi nthawi yochepa kukambirana momwe TCP imagwirira ntchito.
Netiweki yomwe imadzichiritsa yokha: matsenga a Flow Label ndi wapolisi wofufuza pafupi ndi Linux kernel. Ripoti la Yandex

Ndikukhulupirira kuti sindidabwitsa aliyense ndi chidziwitso ichi: TCP ndi protocol yotsimikizira kufalitsa. Ndiko kuti, muzosavuta kwambiri, wotumiza amatumiza mapaketi awiri ndikulandila ndalama zochulukirapo: "Ndalandira mapaketi awiri."
Netiweki yomwe imadzichiritsa yokha: matsenga a Flow Label ndi wapolisi wofufuza pafupi ndi Linux kernel. Ripoti la Yandex

Pambuyo pake, adzatumiza mapaketi ena awiri, ndipo mkhalidwewo udzabwereza. Ndipepese pasadakhale chifukwa chosavuta. Izi ndi zolondola ngati zenera (chiwerengero cha mapaketi akuthawa) ndi awiri. Zoonadi, mwachisawawa izi siziri choncho. Koma kukula kwazenera sikukhudza nkhani yotumizira paketi.
Netiweki yomwe imadzichiritsa yokha: matsenga a Flow Label ndi wapolisi wofufuza pafupi ndi Linux kernel. Ripoti la Yandex

Chimachitika ndi chiyani ngati titaya paketi 3? Pachifukwa ichi, wolandira adzalandira mapaketi 1, 2 ndi 4. Ndipo adzamuuza momveka bwino wotumizayo pogwiritsa ntchito njira ya SACK: "Mukudziwa, atatu adafika, koma pakati adatayika." Akuti, "Ack 2, SACK 4."
Netiweki yomwe imadzichiritsa yokha: matsenga a Flow Label ndi wapolisi wofufuza pafupi ndi Linux kernel. Ripoti la Yandex

Panthawiyi, wotumizayo popanda vuto amabwereza ndendende paketi yomwe idatayika.
Netiweki yomwe imadzichiritsa yokha: matsenga a Flow Label ndi wapolisi wofufuza pafupi ndi Linux kernel. Ripoti la Yandex

Koma ngati paketi yomaliza pawindo itayika, zinthu zidzawoneka mosiyana kwambiri.

Wolandira amalandira mapaketi atatu oyamba ndipo choyamba amayamba kudikirira. Chifukwa cha kukhathamiritsa kwina kwa Linux kernel's TCP stack, imadikirira paketi yophatikizidwa pokhapokha ngati mbendera zikuwonetsa kuti ndi paketi yomaliza kapena zina zofananira. Idzadikirira mpaka nthawi ya Delayed ACK itatha ndikutumiza chivomerezo pamapaketi atatu oyamba. Koma tsopano wotumizayo adikira. Sakudziwa ngati phukusi lachinayi latayika kapena lili pafupi kufika. Ndipo kuti musachulukitse ma netiweki, ayesa kudikirira kuti paketiyo yatayika, kapena kuti nthawi ya RTO ithe.
Netiweki yomwe imadzichiritsa yokha: matsenga a Flow Label ndi wapolisi wofufuza pafupi ndi Linux kernel. Ripoti la Yandex

Kodi nthawi ya RTO ndi chiyani? Uku ndiye kuchuluka kwa RTT yowerengedwa ndi stack ya TCP ndi zina zokhazikika. Kodi izi ndi zotani, tikambirana tsopano.
Netiweki yomwe imadzichiritsa yokha: matsenga a Flow Label ndi wapolisi wofufuza pafupi ndi Linux kernel. Ripoti la Yandex

Koma chofunika ndi chakuti ngati tilibe mwayi kachiwiri ndipo paketi yachinayi yatayika kachiwiri, ndiye kuti RTO imawirikiza kawiri. Ndiko kuti, kuyesa kulikonse kosapambana kumatanthauza kuwirikiza nthawi yomwe yatha.
Netiweki yomwe imadzichiritsa yokha: matsenga a Flow Label ndi wapolisi wofufuza pafupi ndi Linux kernel. Ripoti la Yandex

Tsopano tiyeni tiwone chomwe maziko awa ali ofanana. Mwachikhazikitso, osachepera RTO ndi 200 ms. Ichi ndi RTO yocheperako pama phukusi a data. Kwa mapaketi a SYN ndizosiyana, sekondi imodzi. Monga mukuonera, ngakhale kuyesa koyamba kutumiza mapaketi kudzatenga nthawi 1 kuposa RTT mkati mwa data center.
Netiweki yomwe imadzichiritsa yokha: matsenga a Flow Label ndi wapolisi wofufuza pafupi ndi Linux kernel. Ripoti la Yandex

Tsopano tiyeni tibwererenso ku zochitika zathu. Kodi chikuchitika ndi chiyani ndi utumikiwu? Utumiki umayamba kutaya mapaketi. Lolani kuti ntchitoyi ikhale yamwayi poyamba ndikutaya china chake pakati pa zenera, kenako imalandira SACK ndikutumizanso mapaketi omwe adatayika.
Netiweki yomwe imadzichiritsa yokha: matsenga a Flow Label ndi wapolisi wofufuza pafupi ndi Linux kernel. Ripoti la Yandex

Koma ngati tsoka lidzibwereza, ndiye kuti tili ndi RTO. Chofunika ndi chiyani apa? Inde, tili ndi njira zambiri pa intaneti yathu. Koma kuchuluka kwa magalimoto a TCP a kulumikizana kwina kwa TCP kupitilira kudutsa mulu womwewo wosweka. Kutayika kwa paketi, malinga ngati X11 yathu yamatsenga iyi situluka yokha, sikupangitsa kuti magalimoto aziyenda m'malo omwe alibe zovuta. Tikuyesera kubweretsa paketiyo kudzera mu mulu wosweka womwewo. Izi zimabweretsa kulephera kwapang'onopang'ono: malo opangira data ndi seti yolumikizirana, ndipo zina mwazolumikizana za TCP za mapulogalamu onsewa zimayamba kuwonongeka - chifukwa superspine imakhudza mapulogalamu onse omwe ali mkati mwa data center. Monga mwambi umati: ngati sunavale kavalo nsapato, kavalo amapunduka; kavalo anapunduka - lipoti silinaperekedwe; lipoti silinaperekedwe - tinaluza nkhondo. Pokhapokha kuwerengera kuli mumasekondi kuchokera pamene vuto likufika pa siteji ya kuwonongeka komwe mautumiki amayamba kumva. Izi zikutanthauza kuti ogwiritsa ntchito akusowa chinachake kwinakwake.
Netiweki yomwe imadzichiritsa yokha: matsenga a Flow Label ndi wapolisi wofufuza pafupi ndi Linux kernel. Ripoti la Yandex

Pali njira ziwiri zotsogola zomwe zimayenderana. Choyamba ndi ntchito zomwe zikuyesera kuyika udzu ndikuthetsa vutoli motere: "Tiyeni tisinthe china chake mu stack ya TCP. Tiyeni ticheze ndi nthawi yofunsira kapena magawo a TCP omwe akhalapo nthawi yayitali ndikuwunika thanzi lamkati. ” Vuto ndiloti njira zoterezi: a) sizimakula konse; b) amafufuzidwa bwino kwambiri. Ndiko kuti, ngakhale ngati ntchitoyo ikukonzekera mwangozi stack ya TCP m'njira yomwe imapangitsa kuti ikhale yabwino, choyamba, sizingatheke kuti igwiritsidwe ntchito pazinthu zonse ndi malo onse a deta, ndipo kachiwiri, mwinamwake, sichingamvetse kuti izo zinachitidwa. bwino, ndi chiyani. Ndiko kuti, imagwira ntchito, koma imagwira ntchito bwino komanso siyikula. Ndipo ngati pali vuto la network, wolakwa ndi ndani? Inde, NOC. Kodi NOC imachita chiyani?

Netiweki yomwe imadzichiritsa yokha: matsenga a Flow Label ndi wapolisi wofufuza pafupi ndi Linux kernel. Ripoti la Yandex

Mautumiki ambiri amakhulupirira kuti ntchito ya NOC imachitika motere. Koma kunena zoona, osati zokhazo.
Netiweki yomwe imadzichiritsa yokha: matsenga a Flow Label ndi wapolisi wofufuza pafupi ndi Linux kernel. Ripoti la Yandex

NOC mu classical scheme ikugwira ntchito pakupanga machitidwe ambiri owunikira. Izi ndi zonse za black box ndi white box monitoring. Zachitsanzo cha black box spine monitoring anauza Alexander Klimenko pa Next Hop yomaliza. Mwa njira, kuyang'anira uku kumagwira ntchito. Koma ngakhale kuyang'anira koyenera kudzakhala ndi nthawi yochedwa. Kawirikawiri izi ndi mphindi zochepa. Ikachoka, mainjiniya omwe ali pantchito amafunikira nthawi kuti ayang'anenso momwe amagwirira ntchito, kuyika vutolo ndikuzimitsa vutolo. Ndiko kuti, ngati kuli bwino, kuchiza vutoli kumatenga mphindi 5, poyipa kwambiri, mphindi 20, ngati sizikudziwikiratu komwe kutayika kumachitika. Zikuwonekeratu kuti nthawi yonseyi - 5 kapena 20 mphindi - misonkhano yathu idzapitirirabe kuvutika, zomwe mwina sizili zabwino.
Netiweki yomwe imadzichiritsa yokha: matsenga a Flow Label ndi wapolisi wofufuza pafupi ndi Linux kernel. Ripoti la Yandex

Kodi mungakonde kulandira chiyani? Tili ndi njira zambiri. Ndipo mavuto amadza chifukwa chakuti mafunde a TCP omwe alibe mwayi akupitiriza kugwiritsa ntchito njira yomweyo. Tikufuna china chake chomwe chingatilole kugwiritsa ntchito njira zingapo mkati mwa kulumikizana kumodzi kwa TCP. Zingawoneke ngati tili ndi yankho. Pali TCP, yomwe imatchedwa multipath TCP, ndiko kuti, TCP ya njira zingapo. Zowona, zidapangidwira ntchito yosiyana kwambiri - yamafoni omwe ali ndi zida zingapo zama network. Kuti muwonjezere kusamutsa kapena kupanga njira yoyambira / yosunga zobwezeretsera, makina adapangidwa omwe amapanga ulusi wambiri (magawo) mowonekera ku pulogalamuyo ndikukulolani kuti musinthe pakati pawo pakalephera. Kapena, monga ndanenera, onjezerani mzerewu.

Koma pali nuance apa. Kuti timvetsetse kuti ndi chiyani, tiyenera kuyang'ana momwe ulusi umapangidwira.
Netiweki yomwe imadzichiritsa yokha: matsenga a Flow Label ndi wapolisi wofufuza pafupi ndi Linux kernel. Ripoti la Yandex

Ulusi amaikidwa sequentially. Ulusi woyamba umayikidwa poyamba. Ulusi wotsatira umakhazikitsidwa pogwiritsa ntchito cookie yomwe idagwirizana kale mkati mwa ulusiwo. Ndipo vuto ndi ili.
Netiweki yomwe imadzichiritsa yokha: matsenga a Flow Label ndi wapolisi wofufuza pafupi ndi Linux kernel. Ripoti la Yandex

Vuto ndiloti ngati ulusi woyamba sudzikhazikitsa, ulusi wachiwiri ndi wachitatu sudzawuka. Ndiko kuti, multipath TCP sikuthetsa kutayika kwa paketi ya SYN mukuyenda koyamba. Ndipo ngati SYN itatayika, multipath TCP imasanduka TCP yokhazikika. Izi zikutanthauza kuti mu malo osungiramo deta sizidzatithandiza kuthetsa vuto la kutayika mu fakitale ndikuphunzira kugwiritsa ntchito njira zambiri pakalephera.
Netiweki yomwe imadzichiritsa yokha: matsenga a Flow Label ndi wapolisi wofufuza pafupi ndi Linux kernel. Ripoti la Yandex

Kodi chingatithandize n’chiyani? Ena a inu mwaganizapo kale pamutuwu kuti gawo lofunikira munkhani yathu idzakhala IPv6 flow label header field. Zowonadi, uwu ndi gawo lomwe likuwoneka mu v6, silili mu v4, limakhala ndi ma bits 20, ndipo pakhala kutsutsana pakugwiritsa ntchito kwake kwa nthawi yayitali. Izi ndizosangalatsa kwambiri - panali mikangano, chinachake chinakhazikitsidwa mkati mwa RFC, ndipo nthawi yomweyo kukhazikitsidwa kunawonekera mu kernel ya Linux, yomwe sinalembedwe kulikonse.
Netiweki yomwe imadzichiritsa yokha: matsenga a Flow Label ndi wapolisi wofufuza pafupi ndi Linux kernel. Ripoti la Yandex

Ndikukuitanani kuti mupite nane kukafufuza pang'ono. Tiyeni tiwone zomwe zakhala zikuchitika mu Linux kernel pazaka zingapo zapitazi.

Netiweki yomwe imadzichiritsa yokha: matsenga a Flow Label ndi wapolisi wofufuza pafupi ndi Linux kernel. Ripoti la Yandex

chaka cha 2014. Katswiri wochokera ku kampani imodzi yayikulu komanso yolemekezeka amawonjezera magwiridwe antchito a Linux kernel kudalira mtengo wamtundu wotuluka pa socket hash. Kodi ankafuna kukonza chiyani apa? Izi zikugwirizana ndi RFC 6438, yomwe idakambirana nkhaniyi. Mkati mwa data center, IPv4 nthawi zambiri imayikidwa mu mapaketi a IPv6, chifukwa fakitale yokha ndi IPv6, koma IPv4 iyenera kuperekedwa kunja. Kwa nthawi yayitali panali mavuto ndi masiwichi omwe sangayang'ane pansi pa mitu iwiri ya IP kuti afike ku TCP kapena UDP ndikupeza src_ports, dst_ports pamenepo. Zinapezeka kuti hashi, ngati muyang'ana pamitu iwiri yoyamba ya IP, idakhala kuti yatsala pang'ono kukhazikitsidwa. Pofuna kupewa izi, kuti kulinganiza kwa magalimoto otsekedwawa kumagwira ntchito moyenera, kunalinganizidwa kuti awonjezere hashi ya paketi ya 5-tuple encapsulated pamtengo wa gawo lolembapo. Pafupifupi zomwezo zidachitikanso pazinthu zina za encapsulation, kwa UDP, kwa GRE, omalizawo adagwiritsa ntchito gawo la GRE Key. Mwanjira ina, zolinga apa ndi zomveka. Ndipo panthawi imeneyo zinali zothandiza.

Netiweki yomwe imadzichiritsa yokha: matsenga a Flow Label ndi wapolisi wofufuza pafupi ndi Linux kernel. Ripoti la Yandex

Mu 2015, chigamba chatsopano chimachokera kwa injiniya wolemekezeka yemweyo. Iye ndi wokondweretsa kwambiri. Ikunena izi - tidzasintha ma hashi pakakhala vuto loyipa. Kodi mayendedwe olakwika ndi chiyani? Iyi ndi RTO yomwe tidakambirana kale, ndiye kuti, kutayika kwa mchira wazenera ndi chochitika chomwe chilidi cholakwika. N’zoona kuti n’zovuta kuganiza kuti n’zoona.

Netiweki yomwe imadzichiritsa yokha: matsenga a Flow Label ndi wapolisi wofufuza pafupi ndi Linux kernel. Ripoti la Yandex

2016, kampani ina yodziwika bwino, nayonso yayikulu. Imasokoneza ndodo zomaliza ndikupangitsa kuti hashi, yomwe tidapanga kale mwachisawawa, tsopano imasintha pakusinthanso kulikonse kwa SYN komanso pakatha nthawi iliyonse ya RTO. Ndipo m'kalata iyi, kwa nthawi yoyamba ndi yomaliza, cholinga chachikulu chanenedwa - kuonetsetsa kuti magalimoto atayika kapena kusokonezeka kwa njira amatha kuyendetsedwa mofewa ndikugwiritsira ntchito njira zingapo. Inde, zitatha izi panali zofalitsa zambiri, mutha kuzipeza mosavuta.

Netiweki yomwe imadzichiritsa yokha: matsenga a Flow Label ndi wapolisi wofufuza pafupi ndi Linux kernel. Ripoti la Yandex

Ngakhale ayi, simungathe, chifukwa sipanakhale buku limodzi pamutuwu. Koma ife tikudziwa!

Netiweki yomwe imadzichiritsa yokha: matsenga a Flow Label ndi wapolisi wofufuza pafupi ndi Linux kernel. Ripoti la Yandex

Ndipo ngati simukumvetsa bwino zomwe zidachitika, ndikuwuzani tsopano.
Netiweki yomwe imadzichiritsa yokha: matsenga a Flow Label ndi wapolisi wofufuza pafupi ndi Linux kernel. Ripoti la Yandex

Zomwe zidachitika, ndi magwiridwe antchito ati omwe adawonjezedwa ku Linux kernel? txhash imasintha kukhala mtengo wokhazikika pambuyo pa chochitika chilichonse cha RTO. Izi ndiye zotsatira zoyipa za mayendedwe. Hashi imadalira tshash iyi, ndipo chizindikiro chotuluka chimadalira skb hashi. Pali kuwerengera kwina kwa magwiridwe antchito pano; zonse sizingayikidwe pa slide imodzi. Ngati wina ali ndi chidwi, mutha kudutsa nambala ya kernel ndikuwunika.

Chofunika ndi chiyani apa? Mtengo wa gawo la ma flow label umasintha kukhala nambala yachisawawa pambuyo pa RTO iliyonse. Kodi izi zimakhudza bwanji mtsinje wathu watsoka wa TCP?
Netiweki yomwe imadzichiritsa yokha: matsenga a Flow Label ndi wapolisi wofufuza pafupi ndi Linux kernel. Ripoti la Yandex

Ngati SACK ichitika, palibe chomwe chimasintha chifukwa tikuyesera kutumiza paketi yodziwika yotayika. Pakadali pano, zili bwino.
Netiweki yomwe imadzichiritsa yokha: matsenga a Flow Label ndi wapolisi wofufuza pafupi ndi Linux kernel. Ripoti la Yandex

Koma pa nkhani ya RTO, pokhapokha tawonjezera chizindikiro chotuluka ku ntchito ya hashi pa ToR, magalimoto amatha kutenga njira ina. Ndipo mikwingwirima yochulukirachulukira, imakhala ndi mwayi waukulu woti ipeza njira yomwe simakhudzidwa ndi kulephera pa chipangizo china.
Netiweki yomwe imadzichiritsa yokha: matsenga a Flow Label ndi wapolisi wofufuza pafupi ndi Linux kernel. Ripoti la Yandex

Vuto limodzi latsala - RTO. Inde, pali njira ina, koma nthawi yambiri imawonongeka pa izi. 200 ms ndi zambiri. Sekondi ili mwamtheradi zakutchire. M'mbuyomu, ndidalankhula za kutha kwa nthawi komwe mautumiki amakonzedwa. Kotero, yachiwiri ndi nthawi yopuma, yomwe nthawi zambiri imakonzedwa ndi utumiki pa mlingo wa ntchito, ndipo mu izi ntchitoyo idzakhala yolondola. Komanso, ndikubwereza, RTT yeniyeni mkati mwa deta yamakono ili pafupi ndi 1 millisecond.
Netiweki yomwe imadzichiritsa yokha: matsenga a Flow Label ndi wapolisi wofufuza pafupi ndi Linux kernel. Ripoti la Yandex

Kodi mungachite chiyani ndi nthawi ya RTO? Kutha kwa nthawi, komwe kumayang'anira RTO pakutayika kwa mapaketi a data, kumatha kukhazikitsidwa mosavuta kuchokera kumalo ogwiritsira ntchito: pali pulogalamu ya IP, ndipo imodzi mwamagawo ake imakhala ndi rto_min yomweyo. Poganizira kuti RTO, ikuyenera kusinthidwa osati padziko lonse lapansi, koma pamawu oyambira, makina otere amawoneka otheka.
Netiweki yomwe imadzichiritsa yokha: matsenga a Flow Label ndi wapolisi wofufuza pafupi ndi Linux kernel. Ripoti la Yandex

Zowona, ndi SYN_RTO zonse ndizoyipa. Mwachibadwa amakhomeredwa pansi. Kernel ili ndi mtengo wokhazikika wa 1 sekondi, ndipo ndi momwemo. Simungathe kufika kumeneko kuchokera kumalo ogwiritsira ntchito. Pali njira imodzi yokha.
Netiweki yomwe imadzichiritsa yokha: matsenga a Flow Label ndi wapolisi wofufuza pafupi ndi Linux kernel. Ripoti la Yandex

eBPF imathandiza. Kunena mwachidule, awa ndi mapulogalamu ang'onoang'ono a C. Iwo akhoza kulowetsedwa mu mbedza m'malo osiyanasiyana pochita phula la kernel ndi stack ya TCP, yomwe mungasinthe chiwerengero chachikulu kwambiri cha zoikamo. Kawirikawiri, eBPF ndizochitika za nthawi yaitali. M'malo modula magawo atsopano a sysctl ndikukulitsa ntchito ya IP, kayendetsedwe kake kakupita ku eBPF ndikukulitsa magwiridwe antchito ake. Pogwiritsa ntchito eBPF, mutha kusintha zowongolera zosokoneza komanso zosintha zina za TCP.
Netiweki yomwe imadzichiritsa yokha: matsenga a Flow Label ndi wapolisi wofufuza pafupi ndi Linux kernel. Ripoti la Yandex

Koma ndizofunikira kwa ife kuti zitha kugwiritsidwa ntchito kusintha SYN_RTO. Komanso, pali chitsanzo cholembedwa pagulu: https://elixir.bootlin.com/linux/latest/source/samples/bpf/tcp_synrto_kern.c. Chachitika ndi chiyani pano? Chitsanzo chikugwira ntchito, koma pachokha ndi chovuta kwambiri. Apa zikuganiziridwa kuti mkati mwa data center timafanizira ma bits 44 oyambirira; ngati akugwirizana, ndiye kuti tili mkati mwa deta. Ndipo apa tikusintha SYN_RTO mtengo wanthawi yomaliza kukhala 4ms. Ntchito yomweyi ingathe kuchitidwa mokongola kwambiri. Koma chitsanzo chophwekachi chikusonyeza kuti izi ndi) zotheka; b) zosavuta.

Netiweki yomwe imadzichiritsa yokha: matsenga a Flow Label ndi wapolisi wofufuza pafupi ndi Linux kernel. Ripoti la Yandex

Kodi tikudziwa kale chiyani? Mfundo yakuti mapangidwe a ndege amalola kukulitsa, zimakhala zothandiza kwambiri kwa ife pamene titsegula chizindikiro chothamanga pa ToR ndikupeza mphamvu yoyenda mozungulira madera ovuta. Njira yabwino yochepetsera ma RTO ndi SYN-RTO ndikugwiritsa ntchito mapulogalamu a eBPF. Funso likukhalabe: Kodi ndi zotetezeka kugwiritsa ntchito chizindikiro choyanjanitsa? Ndipo pali nuance apa.
Netiweki yomwe imadzichiritsa yokha: matsenga a Flow Label ndi wapolisi wofufuza pafupi ndi Linux kernel. Ripoti la Yandex

Tiyerekeze kuti muli ndi ntchito pa netiweki yanu yomwe imakhala mu wayilesi iliyonse. Tsoka ilo, ndilibe nthawi yofotokoza mwatsatanetsatane za anycast, koma ndi ntchito yogawidwa yokhala ndi ma seva osiyanasiyana omwe amapezeka kudzera pa adilesi yomweyo ya IP. Ndipo nali vuto lomwe lingachitike: chochitika cha RTO sichingachitike pokhapokha magalimoto akadutsa pansalu. Zitha kuchitikanso pamlingo wa ToR buffer: chochitika cha incast chikachitika, chikhoza kuchitikanso kwa wolandirayo pomwe wolandirayo ataya kanthu. Pamene chochitika cha RTO chikuchitika ndipo chimasintha chizindikiro chotuluka. Pankhaniyi, magalimoto amatha kupita kumtundu wina uliwonse. Tiyerekeze kuti iyi ndi nyimbo yamtundu uliwonse, ili ndi malo olumikizirana - itha kukhala L3 Balancer kapena ntchito ina. Ndiye pali vuto, chifukwa pambuyo pa RTO kugwirizana kwa TCP kufika pa seva, yomwe sadziwa kanthu za kugwirizana kwa TCP. Ndipo ngati tilibe gawo logawana pakati pa ma seva aliwonse, ndiye kuti magalimoto otere adzatsitsidwa ndipo kulumikizana kwa TCP kudzasweka.
Netiweki yomwe imadzichiritsa yokha: matsenga a Flow Label ndi wapolisi wofufuza pafupi ndi Linux kernel. Ripoti la Yandex

Mungatani pano? M'malo omwe mumawongolera, komwe mumathandizira kuti ma flow label balancing, muyenera kulemba mtengo wa lebulo yotuluka mukalowa ma seva aliwonse. Njira yosavuta ndiyo kuchita izi kudzera mu pulogalamu yomweyo ya eBPF. Koma apa pali mfundo yofunika kwambiri - choti muchite ngati simugwiritsa ntchito ma data center network, koma ndinu ogwiritsira ntchito telecom? Ili ndi vuto lanunso: kuyambira ndi mitundu ina ya Juniper ndi Arista, amaphatikiza cholembera mu ntchito zawo za hashi mwachisawawa - moona, pazifukwa zomwe sizikudziwika kwa ine. Izi zitha kukupangitsani kusiya maulumikizidwe a TCP kuchokera kwa ogwiritsa ntchito omwe akudutsa pamaneti yanu. Chifukwa chake ndikupangira kuyang'ana makonda anu a routers apa.

Njira imodzi kapena imzake, zikuwoneka kwa ine kuti ndife okonzeka kupita ku zoyesera.
Netiweki yomwe imadzichiritsa yokha: matsenga a Flow Label ndi wapolisi wofufuza pafupi ndi Linux kernel. Ripoti la Yandex

Pamene tidathandizira chizindikiro chothamanga pa ToR, tikukonzekera wothandizira eBPF, yemwe tsopano akukhala pa makamu, tinaganiza kuti tisadikire kulephera kwakukulu kotsatira, koma kuchita zophulika zolamulidwa. Tidatenga ToR, yomwe ili ndi ma uplink anayi, ndikuyika madontho pa imodzi mwazo. Adalemba lamulo ndipo adati - tsopano mukutaya mapaketi onse. Monga mukuwonera kumanzere, tili ndi zowunikira pa paketi, zomwe zatsikira ku 75%, ndiko kuti, 25% ya mapaketi atayika. Kumanja kuli ma graph a ntchito zomwe zikukhala kumbuyo kwa ToR iyi. M'malo mwake, awa ndi ma graph amagalimoto azomwe zili ndi ma seva mkati mwa rack. Monga mukuonera, iwo anamira kwambiri. Chifukwa chiyani adatsika - osati 25%, koma nthawi zina 3-4? Ngati kugwirizana kwa TCP kuli kosasangalatsa, kumapitirizabe kuyesera kufikira pa mphambano yosweka. Izi zimakulitsidwa ndi machitidwe omwe amachitira ntchito mkati mwa DC - pa pempho la wogwiritsa ntchito m'modzi, zopempha za N kuzinthu zamkati zimapangidwa, ndipo yankho limapita kwa wogwiritsa ntchito ngati magwero onse a data ayankha, kapena nthawi yomaliza ikachitika. mlingo, womwe ukufunikabe kukonzedwa. Ndiko kuti, zonse ndi zoipa kwambiri.
Netiweki yomwe imadzichiritsa yokha: matsenga a Flow Label ndi wapolisi wofufuza pafupi ndi Linux kernel. Ripoti la Yandex

Tsopano kuyesa komweko, koma ndi mtengo wa flow label wathandizidwa. Monga mukuwonera, kumanzere kuwunika kwathu kwa batch kudatsika ndi 25%. Izi ndizolondola, chifukwa sadziwa chilichonse chokhudza kutumizanso, amatumiza mapaketi ndikungowerengera kuchuluka kwa mapaketi operekedwa ndi otayika.

Ndipo kumanja kuli ndandanda ya utumiki. Simupeza zotsatira za mgwirizano wovuta pano. Mu ma milliseconds omwewo, magalimoto adayenda kuchokera kudera lamavuto kupita ku ma uplink atatu otsala omwe sanakhudzidwe ndi vutoli. Tili ndi netiweki yomwe imadzichiritsa yokha.

Netiweki yomwe imadzichiritsa yokha: matsenga a Flow Label ndi wapolisi wofufuza pafupi ndi Linux kernel. Ripoti la Yandex

Iyi ndi slide yanga yomaliza, nthawi yofotokoza mwachidule. Tsopano, ndikuyembekeza kuti mukudziwa momwe mungapangire network yodzichiritsa yokha ya data. Simudzafunika kudutsa mu Linux kernel archive ndikuyang'ana zigamba zapadera pamenepo; mukudziwa kuti Flow label pankhaniyi imathetsa vutoli, koma muyenera kuyang'ana makinawa mosamala. Ndipo ndikugogomezeranso kuti ngati ndinu wogwiritsa ntchito pa telecom, simuyenera kugwiritsa ntchito chizindikiro cha flow ngati hashi, apo ayi mudzasokoneza magawo a ogwiritsa ntchito.

Opanga ma netiweki amayenera kusinthika: maukonde sayamba ndi ToR, osati ndi chipangizo cha netiweki, koma ndi wolandila. Chitsanzo chochititsa chidwi kwambiri ndimomwe timagwiritsira ntchito eBPF posintha RTO ndi kukonza zolembera zamasewera aliwonse.

Makina opangira ma flow label ndi oyeneranso kugwiritsa ntchito zina mkati mwa gawo loyang'anira. Izi zitha kukhala magalimoto pakati pa malo opangira ma data, kapena mutha kugwiritsa ntchito makina oterowo mwanjira yapadera kuti muzitha kuyendetsa magalimoto otuluka. Koma ine ndikuuzani inu za izi, ine ndikuyembekeza, nthawi ina. Zikomo kwambiri chifukwa cha chidwi chanu.

Source: www.habr.com