Shabakad is bogsiisa: sixirka Summada socodka iyo baaraha agagaarka kernel-ka Linux. Warbixinta Yandex

Xarumaha xogta casriga ah waxay leeyihiin boqolaal qalab oo firfircoon oo lagu rakibay, oo ay dabooleen noocyada kala duwan ee kormeerka. Laakin xitaa injineer ku haboon oo gacanta ku haya la socodka saxda ah ayaa awood u yeelan doona inuu si sax ah uga jawaabo fashilka shabakada dhowr daqiiqo gudahood. Warbixin ka soo baxday shirka Next Hop 2020, waxaan ku soo bandhigay habka naqshadaynta shabakadda DC, kaas oo leh sifo gaar ah - xarunta xogtu waxay isku bogsiisaa millise seconds. Si sax ah, injineerku si deggan ayuu u xalliyaa dhibaatada, halka adeegyadu aanay si fudud u dareemin.

- Bilawga, waxaan siin doonaa hordhac faahfaahsan oo ku saabsan kuwa aan ka warqabin qaab dhismeedka DC casriga ah.
Shabakad is bogsiisa: sixirka Summada socodka iyo baaraha agagaarka kernel-ka Linux. Warbixinta Yandex

Ingineerayaal badan oo shabakado ah, shabakad xarun xogeed ayaa ka bilaabma, dabcan, ToR, oo leh beddelka rafaadka. ToR inta badan waxa uu leeyahay laba nooc oo xidhiidhiye. Kuwa yaryar waxay aadaan server-yada, kuwa kale - waxaa jira waqtiyo N ka badan oo iyaga ka mid ah - waxay aadaan dhinaca lafdhabarta heerka koowaad, taas oo ah, kor u kaca. Uplinks waxaa inta badan loo arkaa inay siman yihiin, taraafikada u dhaxaysa korkuna waa isku dheeli tiran yihiin iyadoo lagu salaynayo xashiish ka yimid 5-tuple, oo ay ku jiraan proto, src_ip, dst_ip, src_port, dst_port. La yaab ma leh halkan.
Shabakad is bogsiisa: sixirka Summada socodka iyo baaraha agagaarka kernel-ka Linux. Warbixinta Yandex

Marka xigta, muxuu u eg yahay qaab-dhismeedka qorshaha? Laf-dhabarta heerka koowaad kuma xirna midba midka kale, laakiin waxay ku xiran yihiin superspines. Xarafka X ayaa mas'uul ka noqon doona superspines; waxay ku dhowdahay sida isku-xirnaanta.
Shabakad is bogsiisa: sixirka Summada socodka iyo baaraha agagaarka kernel-ka Linux. Warbixinta Yandex

Way caddahay in, dhinaca kale, tori ay ku xiran yihiin dhammaan lafdhabarta heerka koowaad. Maxaa muhiim ah sawirkan? Haddii aan is dhexgal ku leenahay gudaha saqafka, markaa isdhexgalka, dabcan, wuxuu maraa ToR. Haddii isdhexgalka uu ka dhaco gudaha cutubka, ka dibna isdhexgalka wuxuu ku dhacaa iyada oo loo marayo lafdhabarta heerka koowaad. Haddii isdhexgalka uu yahay mid dhexdhexaad ah - sida halkan, ToR 1 iyo ToR 2 - ka dib isdhexgalka wuxuu dhex mari doonaa laf dhabarta heerarka koowaad iyo labaad.
Shabakad is bogsiisa: sixirka Summada socodka iyo baaraha agagaarka kernel-ka Linux. Warbixinta Yandex

Aragti ahaan, qaab-dhismeedka noocan oo kale ah ayaa si fudud loo cabbiri karaa. Haddii aan haysano awoodda dekedda, booska firaaqada ee xarunta xogta iyo fiilada horay loo dhigay, markaa tirada jidadka mar walba waa la kordhin karaa, taas oo kordhinaysa awoodda guud ee nidaamka. Tani aad bay u fududahay in lagu sameeyo warqad. Nolosha sidan oo kale ayay noqonaysaa. Laakin sheeka maantu taas maaha.
Shabakad is bogsiisa: sixirka Summada socodka iyo baaraha agagaarka kernel-ka Linux. Warbixinta Yandex

Waxaan rabaa in gabagabada saxda ah la gaaro. Waxaan ku haynaa wadooyin badan gudaha xarunta xogta. Shuruud ku xidhani way madax bannaan yihiin. Hal dariiq oo gudaha xarunta xogta ah ayaa suurtogal ah oo keliya gudaha ToR. Gudaha moduleka, waxaan ku haynaa tirada wadooyinka oo le'eg tirada wadooyinka. Tirada wadooyinka u dhexeeya modules waxay la mid tahay badeecada tirada diyaaradaha iyo tirada superspines ee diyaarad kasta. Si aad u caddeyso, si aad u hesho dareenka miisaanka, waxaan ku siin doonaa lambarro ansax ah mid ka mid ah xarumaha xogta Yandex.
Shabakad is bogsiisa: sixirka Summada socodka iyo baaraha agagaarka kernel-ka Linux. Warbixinta Yandex

Waxaa jira siddeed diyaaradood, diyaarad kasta waxay leedahay 32 superspines. Natiijo ahaan, waxay soo baxday in ay jiraan siddeed waddo oo gudaha moduleka ah, iyo isdhexgalka intermodule waxaa horeyba u jiray 256 iyaga ka mid ah.

Shabakad is bogsiisa: sixirka Summada socodka iyo baaraha agagaarka kernel-ka Linux. Warbixinta Yandex

Taasi waa, haddii aan horumarineyno Cookbook, isku dayeyno inaan barano sida loo dhiso xarumaha xogta u dulqaadaneysa ee naftooda ku bogsada, markaa naqshadeynta qorshaysan waa doorashada saxda ah. Waxay xallisaa dhibaatada is-miidaminta, aragti ahaanna way fududahay. Waxaa jira wadooyin badan oo madax banaan. Su'aashu waxay tahay: sidee buu qaab-dhismeedka noocan oo kale ah uga badbaadaa guul-darrooyinka? Waxaa jira guuldarrooyin kala duwan. Taasna waanu ka hadli doonaa hadda.
Shabakad is bogsiisa: sixirka Summada socodka iyo baaraha agagaarka kernel-ka Linux. Warbixinta Yandex

U ogolow mid ka mid ah kuwa naga sarreeya "uu bukoodo". Halkan waxaan ku soo noqday dhismaha labada diyaaradood. Kuwan ayaan tusaale ahaan ugu adkeysan doonaa sababtoo ah waxay si fudud u fududaan doontaa in la arko waxa ka socda qaybo yar oo dhaqaaqa. X11 ha bukooto. Sidee bay tani u saamaynaysaa adeegyada ku nool gudaha xarumaha xogta? Wax badan ayaa ku xiran sida uu u eg yahay guuldarradu.
Shabakad is bogsiisa: sixirka Summada socodka iyo baaraha agagaarka kernel-ka Linux. Warbixinta Yandex

Haddii guuldarradu ay wanaagsan tahay, waxaa lagu qabtaa heerka iswada ee isku midka ah ee BFD, qalabku wuxuu si farxad leh u dhigayaa kala-goysyada dhibaatada leh oo go'doomiya dhibaatada, markaa wax walba waa fiican yihiin. Waxaan leenahay wadooyin badan, gaadiidka isla markiiba dib ayaa loo maro wadooyin kale, adeegyaduna waxba ma dareemi doonaan. Tani waa qoraal wanaagsan.
Shabakad is bogsiisa: sixirka Summada socodka iyo baaraha agagaarka kernel-ka Linux. Warbixinta Yandex

Xaalad xun ayaa ah haddii aan leenahay khasaare joogto ah, oo otomaatiggu ma dareemo dhibaatada. Si loo fahmo sida ay tani u saamayso codsiga, waa in aan wakhti yar ku qaadan doonaa ka hadalka sida TCP u shaqeyso.
Shabakad is bogsiisa: sixirka Summada socodka iyo baaraha agagaarka kernel-ka Linux. Warbixinta Yandex

Waxaan rajeynayaa inaanan qofna ka nixin macluumaadkan: TCP waa borotokoolka xaqiijinta gudbinta. Taasi waa, kiiska ugu fudud, soo diruhu wuxuu soo diraa laba baakidh wuxuuna helayaa ack isugeyn iyaga: "Waxaan helay laba baakidh."
Shabakad is bogsiisa: sixirka Summada socodka iyo baaraha agagaarka kernel-ka Linux. Warbixinta Yandex

Taas ka dib, wuxuu soo diri doonaa laba baakidh oo kale, xaaladduna way soo noqnoqon doontaa. Hore ayaan uga cudur daaranayaa fududaynta. Dhacdadani waa sax haddii daaqada (tirada xirmooyinka duulimaadka) ay tahay laba. Dabcan, xaaladda guud tani maahan arrintu daruuri. Laakin cabbirka daaqadu ma saameeyo macnaha gudbinta baakidhka.
Shabakad is bogsiisa: sixirka Summada socodka iyo baaraha agagaarka kernel-ka Linux. Warbixinta Yandex

Maxaa dhacaya haddii aan lumino xirmada 3? Xaaladdan oo kale, qaataha wuxuu heli doonaa xirmooyinka 1, 2 iyo 4. Oo wuxuu si cad ugu sheegi doonaa soo-diraha isagoo isticmaalaya ikhtiyaarka SACK: "Waad ogtahay, saddex ayaa yimid, laakiin dhexda ayaa lumay." Wuxuu yidhi, "Ack 2, jawaan 4."
Shabakad is bogsiisa: sixirka Summada socodka iyo baaraha agagaarka kernel-ka Linux. Warbixinta Yandex

Waqtigan xaadirka ah, soo-diraha iyada oo aan wax dhibaato ah dhicin ayaa si sax ah u soo celinaya baakidhka lumay.
Shabakad is bogsiisa: sixirka Summada socodka iyo baaraha agagaarka kernel-ka Linux. Warbixinta Yandex

Laakiin haddii baakidhka ugu dambeeya ee daaqadda uu lumo, xaaladdu waxay u ekaan doontaa gebi ahaanba ka duwan.

Qaataha waxa uu helayaa saddexda baakidh ee ugu horeeya oo marka hore waxa uu bilaabaa in uu sugo. Waad ku mahadsan tahay qaar ka mid ah hagaajinta Linux kernel's TCP, waxay sugi doontaa baakidh lammaane ah ilaa calamadu si cad u tilmaamaan inay tahay baakidhkii ugu dambeeyay ama wax la mid ah. Waxay sugi doontaa ilaa wakhtiga dib loo dhigay ee ACK uu dhacayo ka dibna u diri warqad qirasho saddexda xidhmo ee hore. Laakiin hadda cidda soo dirtay ayaa sugi doonta. Ma uu garanayo in xidhmada afraad ay luntay iyo in ay imanayso. Si aanay u xad-dhaafin shabakada, waxay isku dayi doontaa inay sugto calaamad cad oo ah in baakidhku lumay, ama wakhtiga RTO uu dhacayo.
Shabakad is bogsiisa: sixirka Summada socodka iyo baaraha agagaarka kernel-ka Linux. Warbixinta Yandex

Waa maxay wakhtiga RTO? Tani waa inta ugu badan ee RTT ee lagu xisaabiyo xirmada TCP iyo qaar joogto ah. Waa maxay nooca joogtada ah ee tani tahay, hadda waxaan ka wada hadli doonaa.
Shabakad is bogsiisa: sixirka Summada socodka iyo baaraha agagaarka kernel-ka Linux. Warbixinta Yandex

Laakiin arrinta muhiimka ah ayaa ah in haddii aan mar kale nasiib u yeelanno oo baakidhkii afraad uu lumo mar kale, markaas RTO wuu labanlaabmaa. Taasi waa, isku day kasta oo aan lagu guulaysan waxay la macno tahay in la labanlaabo wakhtiga.
Shabakad is bogsiisa: sixirka Summada socodka iyo baaraha agagaarka kernel-ka Linux. Warbixinta Yandex

Bal hadda aynu eegno waxa saldhigani la siman yahay. Sida caadiga ah, ugu yaraan RTO waa 200 ms. Tani waa RTO ugu yar ee xirmooyinka xogta. Xirmooyinka SYN way ka duwan tahay, 1 ilbiriqsi. Sida aad arki karto, xitaa isku dayga ugu horreeya ee dib-u-dejinta xirmooyinka waxay qaadan doontaa 100 jeer ka dheer RTT gudaha xarunta xogta.
Shabakad is bogsiisa: sixirka Summada socodka iyo baaraha agagaarka kernel-ka Linux. Warbixinta Yandex

Hadda aan ku soo laabano xaaladeena. Maxaa ka socda adeegga? Adeeggu wuxuu bilaabaa inuu lumiyo xirmooyinka. Adeeggu shuruud ahaan ha noqdo mid nasiib leh marka hore oo ha lumiyo wax dhexda daaqadda, ka dib wuxuu helayaa BAAQ oo dib u soo diri baakidhyadii lumay.
Shabakad is bogsiisa: sixirka Summada socodka iyo baaraha agagaarka kernel-ka Linux. Warbixinta Yandex

Laakin haddii nasiib xumadu ay dib isu soo celiso, markaas waxaan leenahay RTO. Maxaa muhiim ah halkan? Haa, waxaan leenahay wadooyin badan oo shabakadayada ah. Laakiin taraafikada TCP ee hal xiriir TCP gaar ah ayaa sii wadi doona inay dhex maraan isla xirmada jaban. Khasaaraha xirmooyinka, waa haddii sixirkan X11 ee naga mid ah uusan kaligiis u bixin, ma horseedayso taraafikada meelaha aan dhibka lahayn. Waxaan isku dayeynaa inaan ku gaarsiino baakadda isla raso jaban. Tani waxay keenaysaa fashilka cascading: xarun xogeed waa codsiyo is dhexgal ah, iyo qaar ka mid ah xidhiidhada TCP ee dhammaan codsiyadan waxay bilaabaan inay hoos u dhigaan - sababtoo ah superspine waxay saameeyaan dhammaan codsiyada ka jira gudaha xarunta xogta. Horaa loo yidhi: haddaadan kabo kabo gelin faraska, farasku waa curyaan; faraskii wuu curyaamiyay - warkii lama gaarsiin; warbixinta lama soo gudbin - waa nalaga adkaaday dagaalka. Kaliya halkan tirinta ayaa ah ilbiriqsiyo gudahood laga bilaabo marka ay dhibaatadu soo baxdo ilaa heerka hoos u dhaca ee adeegyadu bilaabaan inay dareemaan. Tani waxay ka dhigan tahay in isticmaalayaashu laga yaabo inay wax ka maqnaadaan meel.
Shabakad is bogsiisa: sixirka Summada socodka iyo baaraha agagaarka kernel-ka Linux. Warbixinta Yandex

Waxaa jira laba xal oo classic ah oo midba midka kale kabo. Midda kowaad waa adeegyada isku dayaya inay caws geliyaan oo ay mushkiladda sidan u xalliyaan: β€œAan wax ku beddelno xidhmada TCP. Aynu samayno waqtiyo heerar codsi ah ama kulamo TCP-ga dheer oo ay la socdaan baaritaanno caafimaad oo gudaha ah." Dhibaatadu waxay tahay in xalalka noocaas ah: a) aanay haba yaraatee miisaan lahayn; b) si aad u liidata loo hubiyo. Taasi waa, xitaa haddii adeeggu si lama filaan ah u habeeyo xirmada TCP si ka sii wanaagsan, marka hore, uma badna in lagu dabaqo dhammaan codsiyada iyo dhammaan xarumaha xogta, iyo marka labaad, waxay u badan tahay, ma fahmi doonto in la sameeyay. si sax ah, iyo waxa aan ahayn. Taasi waa, way shaqeysaa, laakiin si liidata ayay u shaqeysaa oo ma miisaan. Oo haddii ay dhibaato shabakadeed jirto, yaa eedda leh? Dabcan, NOC. Maxay NOC qabato?

Shabakad is bogsiisa: sixirka Summada socodka iyo baaraha agagaarka kernel-ka Linux. Warbixinta Yandex

Adeegyo badan ayaa aaminsan in shaqada NOC ay ku dhacdo wax sidan oo kale ah. Laakiin si daacad ah, ma aha oo kaliya.
Shabakad is bogsiisa: sixirka Summada socodka iyo baaraha agagaarka kernel-ka Linux. Warbixinta Yandex

NOC ee nidaamka qadiimiga ah waxay ku hawlan tahay horumarinta nidaamyo badan oo la socodka. Kuwani waa labadaba sanduuqa madow iyo ilaalinta sanduuqa cad. Ku saabsan tusaale ku saabsan la socodka lafdhabarta sanduuqa madow sheegay Alexander Klimenko markii ugu dambeysay Hop. By habka, kormeerkan ayaa shaqeeya. Laakin xitaa la socodka ku haboon ayaa yeelan doona dib u dhac. Caadiyan tani waa dhowr daqiiqo. Ka dib marka ay baxdo, injineerada shaqada ku jira waxay u baahan yihiin wakhti ay ku hubiyaan hawl-galkeeda, oo ay meeleeyaan dhibaatada ka dibna damiyaan aagga dhibka. Taasi waa, xaalada ugu fiican, daawaynta dhibku waxay qaadataa 5 daqiiqo, kii ugu xumaa, 20 daqiiqo, haddii aan isla markiiba la ogaanin meesha khasaaruhu ka dhaco. Way caddahay in waqtigan oo dhan - 5 ama 20 daqiiqo - adeegyadeenu ay sii wadi doonaan inay silica, taas oo laga yaabo inaysan wanaagsanayn.
Shabakad is bogsiisa: sixirka Summada socodka iyo baaraha agagaarka kernel-ka Linux. Warbixinta Yandex

Maxaad runtii jeclaan lahayd inaad hesho? Waxaan leenahay siyaabo badan. Dhibaatooyinkuna si sax ah ayay u soo baxaan sababtoo ah socodka TCP ee aan nasiibka lahayn waxay sii wadaan inay isticmaalaan dariiq isku mid ah. Waxaan u baahanahay wax noo ogolaanaya inaan isticmaalno wadooyin badan oo isku xira hal TCP ah. Waxay u egtahay in aan xal u helno. Waxaa jira TCP, oo loo yaqaan multipath TCP, taas oo ah, TCP ee wadooyin badan. Run, waxaa loo sameeyay hawl gebi ahaanba ka duwan - taleefannada casriga ah ee leh aaladaha shabakadda ee dhowr ah. Si loo kordhiyo wareejinta ama loo sameeyo qaabka aasaasiga ah/kaabta, farsamo ayaa la sameeyay kaas oo abuuraya taxane badan (fadhiyo) si hufan oo arji ah oo kuu ogolaanaya inaad u kala beddesho iyaga haddii ay dhacdo guuldarro. Ama, sidaan idhi, sare u qaad diilinta.

Laakiin waxaa jira nuance halkan. Si loo fahmo waxa ay tahay, waa inaan eegno sida loo sameeyo dunta.
Shabakad is bogsiisa: sixirka Summada socodka iyo baaraha agagaarka kernel-ka Linux. Warbixinta Yandex

Xargaha ayaa loo rakibay si isdaba joog ah. Dunta ugu horeysa ayaa la rakibay marka hore. Dufanka xiga ayaa markaa la dejiyaa iyadoo la isticmaalayo buskudkii hore loogu heshiiyey dunta dhexdeeda. Dhibaataduna waa tan.
Shabakad is bogsiisa: sixirka Summada socodka iyo baaraha agagaarka kernel-ka Linux. Warbixinta Yandex

Dhibaatadu waxay tahay in haddii dunta hore ay iskeed isu taagi weydo, dunta labaad iyo tan saddexaad weligeed ma soo baxayso. Taasi waa, multipath TCP ma xalliso luminta baakidhka SYN socodka koowaad. Oo haddii SYN uu lumo, dariiqyada badan ee TCP waxay isu beddeshaa TCP caadiga ah. Tani waxay ka dhigan tahay in deegaanka xogta xaruntu aysan naga caawin doonin xallinta dhibaatada khasaaraha warshadda oo aan baranno isticmaalka wadooyin badan haddii ay dhacdo guuldarro.
Shabakad is bogsiisa: sixirka Summada socodka iyo baaraha agagaarka kernel-ka Linux. Warbixinta Yandex

Maxaa nagu caawin kara? Qaarkiin waxaad horayba uga qiyaasteen ciwaanka in goobta muhiimka ah ee sheekadeena dheeraadka ah ay noqon doonto goobta madaxa sumadda socodka IPV6. Runtii, kani waa goob ka soo muuqata v6, kuma jirto v4, waxa ay haysataa 20 bits, waxaana muddo dheer muran ka taagnaa isticmaalkeeda. Tani waa mid aad u xiiso badan - waxaa jiray khilaafyo, wax ayaa lagu hagaajiyay gudaha RFC, isla mar ahaantaana fulinta ayaa ka soo muuqday kernel Linux, oo aan meelna lagu diiwaangelin.
Shabakad is bogsiisa: sixirka Summada socodka iyo baaraha agagaarka kernel-ka Linux. Warbixinta Yandex

Waxaan kugu martiqaadayaa inaad ii raacdo baaritaan yar. Aan eegno waxa ka dhacaya kernel Linux dhowrkii sano ee la soo dhaafay.

Shabakad is bogsiisa: sixirka Summada socodka iyo baaraha agagaarka kernel-ka Linux. Warbixinta Yandex

sanadka 2014. Injineer ka socda shirkad weyn oo la ixtiraamo wuxuu ku darayaa shaqeynta kernel Linux ku tiirsanaanta qiimaha calaamada socodka ee xashiishka godka. Maxay isku dayayeen inay halkan ku hagaajiyaan? Tani waxay la xiriirtaa RFC 6438, kaas oo ka hadlay arrinta soo socota. Gudaha xarunta xogta, IPV4 inta badan waxaa lagu duubaa baakadaha IPv6, sababtoo ah warshadda lafteedu waa IPv6, laakiin IPV4 waa in si uun dibadda loogu bixiyaa. Muddo dheer waxaa jiray dhibaatooyin xagga furayaasha ah oo aan ka hoos eegi karin laba cinwaan oo IP ah si loo tago TCP ama UDP oo loo helo src_ports, dst_ports halkaas. Waxaa soo baxday in xashiishku, haddii aad eegto labada cinwaan ee ugu horreeya ee IP, uu noqday mid ku dhow inuu hagaajiyo. Si taas looga fogaado, si isu dheellitirka taraafikadan la soo koobay ay si sax ah u shaqeyso, waxaa la soo jeediyay in lagu daro xashiishka xirmada 5-tuple ee ku dahaaran qiimaha goobta calaamadda socodka. Qiyaastii isla shay la mid ah ayaa loo sameeyay qorshayaasha kale ee soo koobida, UDP, GRE, kan dambe waxa loo adeegsaday goobta furaha GRE. Si uun ama si kale, hadafyada halkan waa cad yihiin. Iyo ugu yaraan wakhtigaas waxay ahaayeen kuwo waxtar leh.

Shabakad is bogsiisa: sixirka Summada socodka iyo baaraha agagaarka kernel-ka Linux. Warbixinta Yandex

2015, balastar cusub ayaa ka yimid isla injineer la ixtiraamo. Aad ayuu u xiisa badan yahay. Waxa ay leedahay kuwan soo socda - waxaan kala sooceyn doonaa xashiishka haddii ay dhacdo dhacdo marin xumo. Waa maxay dhacdo habayn xun? Tani waa RTO-dii aan horay uga soo hadalnay, taas oo ah, luminta dabada daaqada waa dhacdo runtii xun. Run, way adagtahay in la qiyaaso in tani ay tahay.

Shabakad is bogsiisa: sixirka Summada socodka iyo baaraha agagaarka kernel-ka Linux. Warbixinta Yandex

2016, shirkad kale oo sumcad leh, sidoo kale weyn. Waxay kala furfurtaa ulaha ugu dambeeya waxayna ka dhigtaa si xashiishka, oo aan markii hore u samaynay random, hadda isbeddelo gudbinta SYN kasta iyo ka dib wakhti kasta oo RTO ah. Warqadan, markii ugu horeysay iyo markii ugu dambeysay, hadafka ugu dambeeya ayaa lagu sheegay - si loo hubiyo in gaadiidka haddii ay dhacdo khasaaro ama ciriiriga kanaalka ay awood u leeyihiin in si tartiib ah dib loogu soo celiyo oo loo isticmaalo waddooyin badan. Dabcan, tan ka dib waxaa jiray daabacado badan, waxaad si fudud u heli kartaa.

Shabakad is bogsiisa: sixirka Summada socodka iyo baaraha agagaarka kernel-ka Linux. Warbixinta Yandex

Inkastoo maya, ma awoodid, sababtoo ah ma jirin hal daabacaad oo mawduucan ku saabsan. Laakiin waan ognahay!

Shabakad is bogsiisa: sixirka Summada socodka iyo baaraha agagaarka kernel-ka Linux. Warbixinta Yandex

Oo haddii aadan si buuxda u fahmin waxa la sameeyay, hadda waan kuu sheegi doonaa.
Shabakad is bogsiisa: sixirka Summada socodka iyo baaraha agagaarka kernel-ka Linux. Warbixinta Yandex

Maxaa la qabtay, waa maxay shaqada lagu daray kernel Linux? txhash waxay isu beddeshaa qiime random ah ka dib dhacdo kasta oo RTO ah. Tani waa natiijada aadka u xun ee daabulka. Xashiishku waxa uu ku xidhan yahay txhash-kan, calaamada socodkana waxa ay ku xidhan tahay xashka skb. Waxaa jira qaar xisaabin ah oo ku saabsan hawlaha halkan; dhammaan faahfaahinta laguma dhejin karo hal sawir. Haddii qof uu xiiseeyo, waxaad mari kartaa koodhka kernel-ka oo aad hubiso.

Maxaa muhiim ah halkan? Qiimaha goobta calaamadda socodka waxay isu beddeshaa lambar random ka dib RTO kasta. Sidee ayay tani u saamaysaa qulqulka TCP ee nasiib-darrada ah?
Shabakad is bogsiisa: sixirka Summada socodka iyo baaraha agagaarka kernel-ka Linux. Warbixinta Yandex

Haddii ay dhacdo SHARCIGA, waxba isma beddelayo sababtoo ah waxaan isku dayeynaa inaan dib u dirno xirmo lumay oo la yaqaan. Ilaa hadda aad u wanaagsan.
Shabakad is bogsiisa: sixirka Summada socodka iyo baaraha agagaarka kernel-ka Linux. Warbixinta Yandex

Laakin dhanka RTO, waase haddii aan ku darnay calaamad socodka shaqada xashiishka ee ToR, taraafikada waxay qaadan kartaa waddo kale. Iyo haad badan, way weyn tahay fursadda ay ku heli doonto waddo aan saameyn ku yeelan fashilka aalad gaar ah.
Shabakad is bogsiisa: sixirka Summada socodka iyo baaraha agagaarka kernel-ka Linux. Warbixinta Yandex

Hal dhibaato ayaa hadhay - RTO. Dabcan, waxaa jira waddo kale, laakiin waqti badan ayaa lagu lumiyaa tan. 200 ms waa wax badan. Ilbiriqsi gabi ahaanba waa duurjoog. Markii hore, waxaan uga hadlay waqti-guridyada in adeegyada la habeeyey. Markaa, ilbidhiqsigu waa wakhti go'an, kaas oo inta badan lagu habeeyo adeegga heerka codsiga, tanina adeeggu wuxuu ahaan doonaa mid sax ah. Intaa waxaa dheer, waxaan ku celinayaa, RTT-da dhabta ah ee gudaha xarunta xogta casriga ah waxay ku dhowdahay 1 millise seconds.
Shabakad is bogsiisa: sixirka Summada socodka iyo baaraha agagaarka kernel-ka Linux. Warbixinta Yandex

Maxaad ku samayn kartaa wakhtiyada RTO? Waqtiga kama dambaysta ah, kaas oo ka mas'uul ah RTO haddii ay dhacdo luminta xirmooyinka xogta, si fudud ayaa looga habeyn karaa booska isticmaalaha: waxaa jira utility IP, iyo mid ka mid ah cabbiraadaha ayaa ka kooban rto_min isku mid ah. Iyadoo la tixgelinayo in RTO, dabcan, ay u baahan tahay in la hagaajiyo maaha mid caalami ah, laakiin horgalayaasha la bixiyay, habkan ayaa u muuqda mid la shaqeyn karo.
Shabakad is bogsiisa: sixirka Summada socodka iyo baaraha agagaarka kernel-ka Linux. Warbixinta Yandex

Run, marka la joogo SYN_RTO wax walba waa ka sii liitaan. Si dabiici ah ayaa loo qodbay. Kernelku wuxuu leeyahay qiime go'an oo ah 1 ilbiriqsi, waana taas. Meeshaas kama gaari kartid booska isticmaalaha Hal waddo ayaa jirta.
Shabakad is bogsiisa: sixirka Summada socodka iyo baaraha agagaarka kernel-ka Linux. Warbixinta Yandex

eBPF ayaa u timid samatabbixinta. Si fudud loo dhigo, kuwani waa barnaamijyo yar yar oo C. Waxaa lagu dhejin karaa qabsatooyin kala duwan meelo kala duwan marka la fulinayo xirmooyinka kernel iyo TCP, taas oo aad ku bedeli karto tiro aad u badan oo ah goobaha. Guud ahaan, eBPF waa isbeddel mustaqbalka fog ah. Halkii laga jari lahaa daraasiin cabbirro cusub oo sysctl ah iyo ballaarinta utility IP-ga, dhaqdhaqaaqa wuxuu u sii socdaa dhanka eBPF wuxuuna ballaarinayaa shaqeyntiisa. Isticmaalka eBPF, waxaad si firfircoon u bedeli kartaa kontaroolada ciriiriga iyo goobaha kale ee TCP ee kala duwan.
Shabakad is bogsiisa: sixirka Summada socodka iyo baaraha agagaarka kernel-ka Linux. Warbixinta Yandex

Laakiin waxaa muhiim noo ah in loo isticmaali karo in lagu beddelo qiyamka SYN_RTO. Waxaa intaa dheer, waxaa jira tusaale si guud loo dhajiyay: https://elixir.bootlin.com/linux/latest/source/samples/bpf/tcp_synrto_kern.c. Maxaa halkan laga sameeyay? Tusaalaha waa shaqeeyaa, laakiin laftiisa ayaa ah mid aad u qallafsan. Halkan waxaa loo maleynayaa in gudaha xarunta xogta aan isbarbardhigno 44-bit ee ugu horreeya; haddii ay isku mid yihiin, markaa waxaan ku jirnaa gudaha xarunta xogta. Xaaladdan oo kale waxaanu u beddelnaa SYN_RTO qiimihii wakhtigu ka dhammaaday 4ms. Hawsha la mid ah waxa loo qaban karaa si ka sii qurux badan. Laakiin tusaalahan fudud ayaa muujinaya in tani ay tahay a) suurtagal; b) ilaa xad fudud.

Shabakad is bogsiisa: sixirka Summada socodka iyo baaraha agagaarka kernel-ka Linux. Warbixinta Yandex

Maxaan hore u naqaannay? Xaqiiqda ah in qaab dhismeedka diyaarada uu u ogolaado miisaan, waxay noo soo baxday inay si aad ah noogu faa'iido badan tahay markaan awoodno calaamadda socodka ToR oo aan helno awood ay ku wareegaan meelaha dhibka leh. Sida ugu wanaagsan ee lagu dhimi karo qiimaha RTO iyo SYN-RTO waa in la isticmaalo barnaamijyada eBPF. Su'aashu waxay tahay: ammaan ma tahay in la isticmaalo calaamadda socodka si loo dheellitiro? Oo waxaa jira nuance halkan.
Shabakad is bogsiisa: sixirka Summada socodka iyo baaraha agagaarka kernel-ka Linux. Warbixinta Yandex

Ka soo qaad inaad adeeg ku leedahay shabakadaada oo ku nool cid kasta. Nasiib darro, ma haysto wakhti aan ku faahfaahiyo waxa uu yahay kastaad kasta, laakiin waa adeeg la qaybiyay oo leh adeegayaal kala duwan oo laga heli karo isla cinwaanka IP-ga. Oo halkan waa dhibaato suurtagal ah: dhacdada RTO ma dhici karto oo keliya marka taraafikada maraan marada. Waxa kale oo ay ku dhici kartaa heerka kaydka ToR: marka ay dhacdo incast ah dhacdo, waxay xitaa ku dhici kartaa martida loo yahay marka martida loo yahay wax daato. Marka ay dhacdo RTO dhacdo oo ay bedesho calaamadda socodka. Xaaladdan oo kale, taraafikada waxay aadi kartaa tusaale kale oo kasta. Aynu ka soo qaadno in tani ay tahay sheeko-qaran, waxa ay ka kooban tahay xaalad xidhiidh - waxa ay noqon kartaa Balancer L3 ama adeeg kale. Kadibna dhibaato ayaa soo baxda, sababtoo ah ka dib RTO xiriirka TCP wuxuu yimaadaa server-ka, kaas oo aan waxba ka ogeyn xiriirka TCP. Oo haddii aynaan lahayn wadaagga gobolka ee u dhexeeya server-yada kasta, markaa taraafikada noocaas ah waa la tuurayaa oo xiriirka TCP waa la jebin doonaa.
Shabakad is bogsiisa: sixirka Summada socodka iyo baaraha agagaarka kernel-ka Linux. Warbixinta Yandex

Maxaad ka qaban kartaa halkan? Gudaha deegaankaaga gacanta lagu hayo, halkaas oo aad awood u siiso dheelitirka summada socodka, waxaad u baahan tahay inaad diiwaangeliso qiimaha summada socodka marka aad gelayso server-ka kasta. Habka ugu fudud ayaa ah in tan lagu sameeyo isla barnaamijka eBPF. Laakiin halkan waa qodob aad muhiim u ah - waxa la sameeyo haddii aadan ku shaqeyn shabakad xarun xogeed, laakiin ma tahay hawlwadeenka isgaarsiinta? Tani waa dhibkaaga sidoo kale: laga bilaabo noocyo gaar ah oo Juniper iyo Arista ah, waxay ku daraan calaamad socodka xashiishkooda si caadi ah - si daacad ah, sabab aan aniga ii caddayn. Tani waxay kuu horseedi kartaa inaad ka tuurto isku xirka TCP isticmaalayaasha maraya shabakadaada. Markaa waxaan aad ugu talinayaa inaad hubiso goobaha routerkaaga halkan.

Si uun ama si kale, waxay iila muuqataa inaan diyaar u nahay inaan u gudubno tijaabooyinka.
Shabakad is bogsiisa: sixirka Summada socodka iyo baaraha agagaarka kernel-ka Linux. Warbixinta Yandex

Markii aan awoodnay calaamadda socodka ee ToR, waxaan diyaarinay wakiilka eBPF, kaas oo hadda ku nool martigeliyayaasha, waxaan go'aansanay inaanan sugin fashilka weyn ee soo socda, laakiin inaan sameyno qaraxyo la xakameeyey. Waxaan qaadnay ToR, kaas oo leh afar xiriiriye, waxaana ku dhejinay dhibco mid ka mid ah. Waxay soo saareen xeer oo waxay yiraahdeen - hadda waxaad luminaysaa dhammaan baakadaha. Sida aad ku arki karto dhinaca bidix, waxaanu leenahay la socodka baakidhkiiba, kaas oo hoos ugu dhacay 75%, taas oo ah, 25% baakooyinka ayaa lumaya. Dhinaca midig waxaa yaal garaafyada adeegyada ku nool gadaashooda ToR-gan. Asal ahaan, kuwani waa garaafyada taraafikada ee is-dhexgalada leh server-yada gudaha rackka. Sida aad arki karto, xitaa hoos ayay u degeen. Maxay hoos ugu dhaceen - maaha 25%, laakiin xaaladaha qaarkood 3-4 jeer? Haddii xiriirka TCP uu yahay mid aan nasiib lahayn, waxay sii wadaa inay isku daydo inay gaarto isgoyska jaban. Tan waxaa sii xumeeyay habdhaqanka caadiga ah ee adeegga gudaha DC - hal codsi isticmaale, codsiyada N ee adeegyada gudaha ayaa la soo saaray, jawaabtuna waxay tagi doontaa isticmaalaha midkood marka dhammaan ilaha xogta ay ka jawaabaan, ama marka wakhtigu ka dhaco codsiga heerka, kaas oo weli u baahan in la habeeyo. Taasi waa, wax walba waa mid aad iyo aad u xun.
Shabakad is bogsiisa: sixirka Summada socodka iyo baaraha agagaarka kernel-ka Linux. Warbixinta Yandex

Hadda tijaabadii isku mid ah, laakiin leh qiimaha calaamadda socodka waa la dajiyay. Sida aad arki karto, dhanka bidix kormeerka dufcadayadu waxay hoos u dhacday isla 25%. Tani gabi ahaanba waa sax, sababtoo ah ma oga wax ku saabsan dib u gudbinta, waxay soo dirtaa baakadaha waxayna si fudud u tirinaysaa saamiga tirada baakadaha la keenay iyo kuwa lumay.

Dhanka midigna waa jadwalka adeegga. Halkan kama heli doontid saamaynta wadajirka dhibaatada leh. Isla milil-dhibcoodyadaas, gaadiidku waxa ay ka soo qulqulayeen aagga dhibka ilaa saddexda xidhiidh ee soo hadhay ee aanay dhibaatadu saamayn. Waxaan leenahay shabakad is bogsiisa.

Shabakad is bogsiisa: sixirka Summada socodka iyo baaraha agagaarka kernel-ka Linux. Warbixinta Yandex

Kani waa boggaygii ugu dambeeyay, wakhtiga aan soo koobo. Hadda, waxaan rajeynayaa inaad taqaanid sida loo dhiso shabakad xog is-bogsiin ah. Uma baahnid inaad dhex marto kaydka kernel Linux oo aad ka raadiso balastar gaar ah halkaas; waad ogtahay in calaamada socodka kiiskan ay xalliso dhibaatada, laakiin waxaad u baahan tahay inaad si taxadar leh u wajahdo habkan. Waxaan mar labaad ku nuuxnuuxsaday in haddii aad tahay hawlwadeenka isgaadhsiinta, waa inaadan u isticmaalin summada qulqulka xashiish ahaan, haddii kale waxaad carqaladayn doontaa fadhiyada isticmaaleyaashaada.

Injineerada shabakadu waa inay maraan isbedel fikradeed: shabakadu kuma bilaabato ToR, kuma bilaabmayso aaladda shabakada, laakiin waxay la socotaa martigeliyaha. Tusaalaha cadaalada ah ee cajiibka ah ayaa ah sida aan u isticmaalno eBPF labadaba si aan u bedelno RTO iyo in aan u hagaajino summada qulqulka ee adeeg kasta oo dhejis ah.

Farsamooyinka calaamadda qulqulka ayaa hubaal ah inay ku habboon yihiin codsiyada kale ee qaybta maamulka la kantaroolo. Tani waxay noqon kartaa isu socodka u dhexeeya xarumaha xogta, ama waxaad isticmaali kartaa makaanikada noocaan ah si gaar ah si aad u maamusho taraafikada baxaysa. Laakiin tan ayaan kaaga sheegi doonaa, waxaan rajeynayaa, marka xigta. Aad baad ugu mahadsantahay dareenkaaga.

Source: www.habr.com