#network_time
🔌 چطور میشه چند تا کابل رو طوری با هم ترکیب کرد که مثل یه کابل واحد کار کنن؟
تا حالا شده بخوای پهنای باند یه لینک رو بیشتر کنی و به جای یه کابل، چند تا کابل رو به یه سوییچ و سرور وصل کنی، ولی ببینی سیستم هنوز همهچیز رو یه مسیر واحد میبینه؟ این دقیقاً همون کاریه که Link Aggregation یا اگه از پروتکل استاندارد LACP استفاده کنی، انجامش میده؛ یعنی چند تا interface فیزیکی رو با هم ترکیب میکنی تا یه interface منطقی واحد با پهنای باند بالاتر داشته باشی.
حالا سوال اصلی اینه که وقتی یه packet میرسه، سیستم از کدوم کابل باید ردش کنه؟ اگه کابلها رو خیلی ساده و پشت سر هم یا همون Round-robin استفاده کنیم، ممکنه یه سری packetهای مربوط به یه flow خاص، با تاخیرهای متفاوت از مسیرهای مختلف بیان و باعث بشه ترتیب رسیدن پکتها بهم بخوره که این برای TCP فاجعهست. برای همین، kernel یا سوییچ از یه مکانیزم به اسم Hashing استفاده میکنن. این مکانیزم بر اساس اطلاعاتی مثل Source MAC، Destination MAC، یا حتی IP و portها، یه مقدار عددی تولید میکنه که اون عدد تعیین میکنه packet باید از کدوم لینک عبور کنه. چون برای یه flow مشخص، تمام پارامترهای header ثابت میمونن، خروجی hash هم همیشه یکیه و در نتیجه تمام packetهای مربوط به اون اتصال حتماً از یه مسیر مشخص رد میشن تا ترتیبشون حفظ بشه.
نتیجهش این میشه که تو یه اتصال تکی، سرعتت از سرعت یه کابل بیشتر نمیشه، اما وقتی چندین flow مختلف داری، ترافیک بین کابلها پخش میشه و مجموع پهنای باند کل بالا میره. اگه بخوای این قابلیت رو در مقیاس بزرگ پیاده کنی، باید دقت کنی که الگوریتم hash در هر دو سمت، یعنی سوییچ و سرور، طوری تنظیم شده باشه که ترافیک رو به طور یکنواخت توزیع کنه.
❓ شما توی پروژههای واقعی، ترجیح میدین چند تا لینک رو با LACP ترکیب کنین یا اینکه کلاً برید سراغ یه لینک با پهنای باند خیلی بالاتر؟ تجربیات یا دیدگاهتون رو برامون تو کامنتا بنویسین
@things_to_know_channel
Post #436
1.17K
- ❤ 9
- 👍 3