کنترل ازدحام

کنترل ازدحام، ، در شبکه شبکه‌های کامپیوتری به مفهوم جلوگیری از تجمع بیش از اندازه داده‌های انتقالی در صف انتظار و در نتیجه از بین رفتن بسته‌ها می‌باشد. ازدحام زمانی رخ می‌دهد که میزان داده ورودی به گذرگاه داده بیشتر از حد تحمل آن گذرگاه باشد. گلوگاه‌ها بزرگترین منبع ایجاد ازدحام در شبکه‌های اینترنتی می‌باشند. راهکارهایی که برای جلوگیری از ایجاد ازدحام ارائه می‌شوند اکثرا بر اساس کاهش نرخ ارسال داده توسط فرستنده با توجه به ظرفیت رسانه انتقال است. این مفهوم نباید با مفهوم کنترل جریان که جلوگیری فرستنده از مستغرق کردن گیرنده می‌باشد، اشتباه گرفته شود.
الگوریتم کنترل ازدحام
وقتی به بخشی از زیر شبکه تعداد بسیار زیادی بسته تحویل شود کارایی آن کاهش می‌یابد. به این وضعیت ازدحام «Congestion» گفته می‌شود. هرگاه تعداد بسته‌هایی که توسط ماشین‌های میزبان به زیر شبکه سرازیر می‌شوند متناسب با ظرفیت حمل زیر شبکه باشد تمام این بسته‌ها تحویل مقصدشان خواهند شد و تعداد بسته‌های تحویلی متناسب با تعداد بسته‌های ارسالی است. ولیکن به محض افزایش بی‌رویه ترافیک ، مسیریابها قادر نیستند از عهده آن برآمده و بسته‌ها شروع به از دست رفتن می‌کنند. این مسئله حادتر نیز می‌شود و در ترافیک بسیار بالا کارایی بطور کامل سقوط کرده و هیچ بسته‌ای تحویل مقصد نخواهد شد!
چندین عامل می‌تواند به بروز ازدحام بینجامد. اگر به ناگاه دنباله‌ای از بسته‌ها بر روی سه یا چهار خط ورودی دریافت شده و خط خروجی همه آن‌ها یکی باشد صف تشکیل خواهد شد و اگر فضای حافظه کافی برای نگهداری تمام آن‌ها وجود نداشته باشد، بسته‌ها از بین می‌روند.
پردازنده‌های کند نیز می‌توانند عامل بروز ازدحام باشند. اگر پردازنده اصلی مسیریاب در انجام وظایف محوله به خود کند عمل نماید، صف ایجاد می‌شود، حتی وقتی که ظرفیت خطوط خروجی بیش از حد مورد نیاز است.
خطوط با پهنای باند کم نیز می‌توانند منجر به بروز ازدحام شوند. ارتقاء پهنای باند خطوط بدون تغییر در پردازنده‌ها یا بالعکس اغلب فایده چندانی ندارد و فقط جای گلوگاه و منشاء مشکل را تغییر می‌دهد. همچنین ارتقاء کامل یک بخش کوچک بدون تغییر در کل سیستم، فقط محل بروز مشکل و گلوگاه را جابجا می‌کند و در بهبود کارایی کل سیستم تاثیر چشمگیری نخواهد داشت. مشکل اساسی یک سیستم، عدم تطابق و تناسب بخشهای مختلف آن است. این مشکل تا زمانی که کلیه مولفه‌های سیستم متعادل نشوند باقی خواهد ماند.،
تفاوت بین کنترل ازدحام و کنترل جریان
کنترل ازدحام مکانیزم‌هایی است جهت ایجاد اطمینان از این که زیر شبکه قادر به حمل ترافیک عرضه شده به آن هست. این مشکل یک مورد همگانی و سراسری است و از رفتار و عملکرد تمام ماشینهای میزبان، کلیه مسیریابها، عملیات پردازشی «ذخیره و هدایت» درون مسیریابها یا هر عامل دیگری که ظرفیت حمل زیر شبکه را کاهش بدهد، ناشی می‌شود.
در مقابل کنترل جریان به ترافیک نقطه به نقطه بین یک فرستنده و گیرنده مفروض مربوط می‌شود و وظیفه اصلی آن ایجاد اطمینان از این موضوع است که یک فرستنده سریع نمی‌تواند متوالیا داده‌ها را با سرعتی بیش از توانایی دریافت گیرنده، ارسال نماید. در کنترل جریان، گزارشها و فیدبکهای مستقیمی از گیرنده به فرستنده ارسال می‌شود تا به فرستنده طرف مقابل تفهیم کند که کارها را چگونه انجام بدهد
اصول کلی در کنترل جریان
بسیاری از مشکلات و مسائل سیستم‌های پیچیده مثل شبکه‌های کامپیوتری را می‌توان از دیدگاه نظریه کنترل بررسی کرد. در این روش تمام راه حل‌ها به دو گروه تقسیم می‌شوند: 1- حلقه باز 2- حلقه بسته
راه حلهای حلقه باز سعی می‌کنند یک مسئله را با طراحی خوب حل کرده و از همان ابتدا اطمینان بدهد که مشکلی رخ نخواهد داد. وقتی این سیستم شروع به کار و انجام فعالیت نمود هیچگونه نظارت یا تصحیح عملکرد ممکن نیست.
راه حلهای حلقه بسته مبتنی بر مفهوم حلقه فیدبک هستند. این‌گونه راه کارهای کنترل ازدحام سه بخش را در بر می‌گیرند:
1) نظارت بر سیستم به منظور تشخیص آنکه در کجا و چه وقت ازدحام رخ داده است.
2) تحویل این اطلاعات به محلی که بایستی واکنش نشان بدهد.
تنظیم عملکرد سیستم برای رفع مشکل
سیاست‌های پیشگیری از ازدحام
سیاستهای مختلفی که در لایه انتقال، لایه شبکه، لایه پیوند داده می‌تواند بر پدیده ازدحام تاثیر بگذارد:
لایه انتقال:
سیاست‌های ارسال مجدد
سیاست‌های ذخیره بسته‌هایی که خارج از ترتیب می‌رسند
سیاست‌های تصدیق وصول بسته‌ها
سیاست‌های کنترل جریان
تعیین زمان انقضای مهلت تایمرها
لایه شبکه:
مدار مجازی در مقابل روش دیتاگرام در زیر شبکه
مکانیزمهای صف بندی بسته‌ها و روش‌های متنوع سرویس دهی
سیاست‌های حذف بسته
الگوریتم مسیریابی
مدیریت طول عمر بسته‌ها
لایه پیوند داده:
سیاست‌های ارسال مجدد
سیاست‌های ذخیره بسته‌هایی که خارج از ترتیب می‌رسند
سیاست‌های تصدیق وصول بسته‌ها
سیاست‌های کنترل جریان