⚖️ تفاوت بین Leaky Bucket و Token Bucket
🌀 Leaky Bucket:
وقتی میزبان میخواهد بستهای بفرستد، آن بسته داخل سطل قرار میگیرد.
سطل با نرخ ثابت نشت میکند، یعنی دادهها با سرعت یکنواخت از آن خارج میشوند.
این روش ترافیکهای پرنوسان (bursty traffic) را به ترافیک یکنواخت تبدیل میکند.
در عمل، سطل مانند یک صف محدود است که خروجی آن نرخ ثابتی دارد.
🔸 Token Bucket:
در این روش، سطل شامل توکنهایی است که در فواصل زمانی منظم تولید میشوند.
هر زمان بستهای آمادهی ارسال باشد، یک توکن از سطل برداشته و بسته ارسال میشود.
اگر سطل خالی از توکن باشد، بسته نمیتواند ارسال شود.
سطل ظرفیت نهایی دارد و میتواند تا حد مشخصی توکن ذخیره کند.
🌟 مزایای Leaky Bucket نسبت به Token Bucket
✅ بدون هدررفت توکنها:
در Token Bucket ممکن است توکنها بدون استفاده باقی بمانند، اما در Leaky Bucket تنها در زمان وجود ترافیک داده ارسال میشود.
⚡️ تأخیر کمتر:
در Token Bucket، اگر سطل خالی باشد بستهها منتظر میمانند، اما Leaky Bucket با ارسال ثابت، تأخیر را کاهش میدهد.
🔁 انعطافپذیری بالاتر:
Leaky Bucket بهراحتی با تغییرات الگوهای ترافیکی سازگار میشود.
🧩 سادگی در پیادهسازی:
در مقایسه با Token Bucket، پیادهسازی و مدیریت آن آسانتر است.
📡 استفادهی مؤثر از پهنای باند:
با ارسال دادهها با نرخ یکنواخت، از ازدحام شبکه جلوگیری میکند.
🏁 جمعبندی:
🔹 الگوریتم Leaky Bucket یکی از کلیدیترین روشها برای Traffic Shaping در شبکههاست.
🔹 این الگوریتم به کنترل جریان دادهها، جلوگیری از ازدحام، و بهینهسازی عملکرد سیستم کمک زیادی میکند.
🏷 هشتگها:
#CSharp #Networking #LeakyBucket #TokenBucket #RateLimiting #TrafficShaping







