Muhammad al-Xorazmiy nomidagi
Toshkent Axborot Texnologiyalari Universitetining DIF-316-21 guruh
“Kompyuter tarmoqlari” fanidan
tayyorlagan
Mustaqil ishi
Mavzu: Token Bucket algoritmi
Bajardi: Rahmatullayev Shohjahon
Tekshirdi: Atadjanova Nozima
2023
Kirish:
Ko'pchilik Token Bucket va Leaking Bucket bir xil narsa ekanligiga ishonishadi. Faqat Eynshteyn kosmologik doimiylikni qo'shganda ko'proq xato qilgan.
Kommutatsiya chiplari vaqt nima ekanligini juda yaxshi tushunmaydi; ular vaqt birligi uchun qancha bitni uzatganliklarini yanada yomonroq hisoblashadi. Ularning vazifasi xirmonni yig'ishdir.
Bu yaqinlashib kelayotgan bit sekundiga yana 400 000 000 bitmi yoki allaqachon 400 000 001mi?
ASIC ishlab chiquvchilari ahamiyatsiz muhandislik muammosiga duch kelishdi.
U ikkita kichik vazifaga bo'lingan:
1) Haqiqatan ham, juda oddiy shartga asoslanib, keraksiz paketlarni tashlab, tezlikni cheklash. Kommutator chiplarida ishlaydi
2) Vaqtni kuzatib boruvchi murakkabroq (ko'proq ixtisoslashgan) chip tomonidan boshqariladigan ushbu oddiy holatni yaratish.
Ikkinchi masalani hal qiluvchi algoritm Token Bucket deb ataladi. Uning g'oyasi nafis va sodda (yo'q).
Token paqirining vazifasi, agar u chegaraga to'g'ri kelsa, trafikni o'tkazib yuborish va agar yo'q bo'lsa, uni qizil rangga o'chirish/bo'yashdir.
Bu odatiy hodisa bo'lgani uchun, tirbandliklarga yo'l qo'yish muhimdir.
Agar Leaky Bucket-da portlashlar bufer tomonidan so'rilgan bo'lsa, Token Bucket hech narsani buferlamaydi.
Asosiy qism:
Reja:
Single Rate — Two Color Marking
Single Rate — Three Color Marking
Two Rate — Three Color Marking
Single Rate — Two Color Marking
Hozircha sarlavhaga e'tibor bermang =)
Bizda tangalar doimiy tezlikda tushadigan chelak bor - masalan, soniyada 400 megakoin.
Chelakning hajmi 600 million tanga. Ya'ni, u bir yarim soniyani to'ldiradi.
Ikkita konveyer lentalari yaqindan o'tadi: biri paketlarni etkazib beradi, ikkinchisi ularni olib ketadi.
Chiquvchi konveyerga o'tish uchun paket to'lashi kerak.
Shu maqsadda u chelakdan o‘z o‘lchamiga mos tangalar oladi. Taxminan aytganda, bitlar soni tangalar soniga teng.
Keyingi tangalar to'plami allaqachon yetarli bo'lishi mumkin - birinchidan, paket kichikroq bo'lishi mumkin, ikkinchidan, bu vaqt ichida ko'proq tangalar hujumga uchraydi.
Agar chelak allaqachon to'lgan bo'lsa, barcha yangi tangalar tashlanadi.
Bularning barchasi paketlarning kelishi tezligiga va ularning hajmiga bog'liq.
Agar u doimiy ravishda soniyasiga 400 MB dan past yoki unga teng bo'lsa, unda har doim etarli tangalar bo'ladi.
Agar u yuqoriroq bo'lsa, ba'zi paketlar yo'qoladi.
GIF-lar bilan aniqroq misol, biz hammamiz yaxshi ko'ramiz.
2500 bayt sig'imli chelak mavjud. Dastlabki vaqtda u 550 ta tokenni o'z ichiga oladi. Quvur liniyasida interfeysga yuborilishi kerak bo'lgan uchta 1000 baytli paket mavjud. Har bir vaqt bo'limida chelakka 500 bayt tushadi (500*8 = 4000 bit/vaqt tilim - poliser chegarasi).
Birinchi marta bo'lakning oxirida chelakka 500 ta token tushadi. Va bu vaqtda birinchi paket keladi. Uning hajmi 1000 baytni tashkil etadi va chelakda 1050 ta token bor - bu etarli. Paket yashil rangga bo'yalgan va o'tkaziladi. Chelakdan 1000 ta token olinadi. Chelakda 50 ta token qolgan.
Ikkinchi marta kvantning oxirida chelakka yana 500 ta token tushadi - jami 550. Ammo kiruvchi paketning hajmi - 1000 - etarli emas. Paket qizil rangga bo'yalgan va tashlanadi, tokenlar olib tashlanmaydi.
Uchinchi kvantning oxirida chelakka yana 500 ta token tushadi - yana 1050. Kiruvchi paketning hajmi - 1000 - etarli. Paket yashil rangga bo'yalgan va o'tadi, tokenlar chelakdan chiqariladi.
2500 baytlik chelak hajmi, aslida, 2500 baytdan katta paket hech qanday holatda bunday politsiyachidan o'tmasligini anglatadi - unda hech qachon etarli token bo'lmaydi. Shuning uchun uning hajmi MTU dan kam bo'lmasligi kerak va umuman olganda, politsiya tomonidan 1,5-2 soniya ichida ruxsat etilgan maksimal tezlikda trafik miqdoriga teng hajmga ega bo'lish tavsiya etiladi.
Ya'ni, formula quyidagicha:
CBS = CIR (sekundiga bit)*1,5 (sekund)/8 (bayt uchun bit)
Agar biz portlashlarni (miloddan avvalgi) konfiguratsiya qilgan polisizatsiyaning amaliy misoliga qaytadigan bo'lsak, katta qiymat bilan (1 875 000 bayt) barcha portlashlar yaxshi amortizatsiya qilinganligi aniq bo'ladi. Kichkina (10 000 bayt) bilan, MTU dan sezilarli darajada kattaroq bo'lishiga qaramay, politsiyachi chelakni doimiy ravishda to'ldirishda qolib ketadi va ko'p sonli paketlarni tashlab yuboradi.
Nima uchun chelak hajmga muhtoj? Bit oqimi har doim ham bir xil emas, bu aniq. 400 Mb/s chegarasi asimptota emas - trafik uni kesib o'tishi mumkin. Saqlangan tangalar hajmi kichik portlashlarni tashlab ketmasdan uchib ketishiga imkon beradi, ammo o'rtacha tezlik 400 Mb / s da saqlanadi.
Misol uchun, 600 soniyada 399 Mbit / s barqaror oqim chelakni to'liq to'ldiradi.
Keyin trafik 1000Mb / s gacha ko'tarilishi va bu darajada 1 soniya davomida qolishi mumkin - 600 Mm (Megacoins) zaxira va 400 Mm / s kafolatlangan tarmoqli kengligi.
Yoki trafik 410 Mb/s gacha ko'tarilishi va 60 soniya davomida shunday qolishi mumkin.
Ya'ni, tangalar etkazib berish sizga uzoq vaqt davomida chegaradan biroz oshib ketish yoki qisqa, ammo baland chayqalish imkonini beradi.
Endi terminologiyaga.
Tangalar chelakka kirish tezligi - CIR - Committed Information Rate (Kafolatlangan o'rtacha kurs). Bir soniyada bit bilan o'lchanadi.
Chelakda saqlanishi mumkin bo'lgan tangalar soni - CBS - Committed Burst Size. Ruxsat etilgan maksimal portlash hajmi. Baytlarda o'lchanadi. Ba'zan, siz sezganingizdek, u miloddan avvalgi deb ataladi.
|