کنترل جریان داده
قبل از آنکه به سراغ مفهوم کنترل ازدحام در شبکههای کامپیوتری برویم، اجازه دهید کمی درباره کنترل جریان داده در شبکههای کامپیوتری صحبت کنیم. کنترل جریان داده در ارتباطات دادهای به معنای کنترل جریان یک فرآیند مدیریت نرخ انتقال بین دو گره برای جلوگیری از ارسال از طرف فرستنده سریع به دریافتکننده کند است. کنترل جریان مکانیزمی را برای دریافتکننده جهت کنترل سرعت انتقال فراهم میکند؛ بنابراین گره دریافتکننده دچار مشکل سرریز داده از طرف گره ارسالکننده نمیشود. کنترل جریان میتواند بر مبنای این موضوع که آیا گره دریافتکننده بازخورد را برای گره فرستنده ارسال کند یا نه دستهبندی شود. کنترل جریان این قابلیت را برای فرستنده به وجود میآورد که اطلاعات را با نرخ سریعتر از توان دریافت و پردازش کامپیوتر مقصد انتقال دهد. این امر زمانی اتفاق میافتد که کامپیوترهای دریافتکننده بارترافیکی سنگینی در مقایسه با کامپیوتر فرستنده داشته باشد یا اگر کامپیوترهای دریافتکننده توان پردازشی کمتری نسبت به کامپیوتر فرستنده داشته باشند. در مبحث کنترل جریان داده لازم به است به برخی مفاهیم مهم دقت کنید. این مفاهیم به شرح زیر هستند:
توقف و انتظار (stop and wait)
رویکرد فوق سادهترین شکل کنترل جریان است در این روش دریافتکننده آمادگی خود برای دریافت هر بسته دادهای را اعلام میکند، پیام به چند فریم شکسته میشود فرستنده برای هر ACK بعد از ارسال هر فریم به مدت زمان مشخصی منتظر خواهد ماند. ACK برای اطمینان از اینکه دریافتکننده فریم را به درستی دریافت کرده فرستاده میشود. فریم بعدی تنها زمانی فرستاده خواهد شد که ACK فریم قبلی دریافت شده باشد. رویکرد فوق بر مبنای ترتیب عملیات انجام میشود، به این صورت که فرستنده هر مرتبه فقط یک فریم را ارسال میکند. گیرنده زمانی که یک فریم دریافت شد ACK آن را ارسال میکند. فرستنده ACK را در بازه زمانی مشخص شده دریافت میکند و در نهایت بازگشت به مرحله اول انجام میشود. اگر فریم یا ACK در زمان انتقال از بین برود توسط فرستنده دوباره ارسال خواهد شد این فرایند انتقال مجدد معروف است به ARQ. مشکل روش stop and wait این است که فقط یک فریم در هر بار میتواند انتقال داده شود که اغلب باعث ناکارامد شدن کانال انتقال میشود. تا زمانیکه ما ACK را دریافت نکنیم فرستنده قادر به انتقال بسته جدید نخواهد بود در طول این زمان هم کانال و هم فرستنده بیکار هستند.
کنترل جریان انتقال
کنترل جریان انتقال بین قطع و وصل جریان داده DTE، تجهیزات ترمینال و مرکز سوئیچینگ، توسط پایاندهنده مدار داده (DCE) و تجهیزات مختلفی که به شکل مستقیم به یکدیگر متصل شدهاند یا بین دو دستگاه از یک نوع (مثل دو DTE یا دو DCE) که به وسیله کابل متقاطع به هم وصل شدهاند استفاده میشود. کنترل جریان سختافزار نوعاً توسط DTE کنترل میشود. همانگونه که اجرای اولیه یا وارد کردن خط آن برای دستور به طرف دیگر انجام میشود: در حالت کنترل جریان RTS و DTE تنظیم RTS خود را انجام میدهد که به طرف دیگر سیگنال میفرستد. برای ارتباط کامپیوتر شخصی با مودم و پیوندهای مشابه، حالت کنترل جریان DTR، DTR/DSR برای کل نشست مودم اجرا میشود و RTS/CTS برای هر بلوک دادهای اجرا میشود.
کنترل جریان حلقه باز
کنترل جریان حلقه باز مکانیزمی است که توسط نداشتن بازخور بین گیرنده و فرستنده مشخص میشود. این به راحتی به این معناست که کنترل بهطور وسیعی استفاده میشود. تخصیص منابع باید به صورت رزرو از قبل یا گام به گام باشد. کنترل جریان حلقه باز دارای مشکلات ذاتی در بالا بردن بهرهوری از منابع شبکهاست. تخصیص منابع در قسمت تنظیم ارتباط به وسیله CAC (کنترل پذیرش اتصال) ساخته میشود و این اختصاص با استفاده از اطلاعاتی ساخته میشود که اطلاعات قدیمی در طول عمر ارتباط است. گاهی اوقلت اختصاص بیش از حد منابع و رزرو شدهها وجود دارد اما ظرفیتهای استفاده نشده هدر رفته میمانند. کنترل جریان حلقه باز به وسیله ATM در سرویسهای VBR، CBR و UBR استفاده میشود.
کنترل جریان حلقه بسته
کنترل جریان حلقه بسته مکانیزمی است که توسط توانایی شبکه برای گزارش دهی ازدحام معلق شبکه به فرستنده شناخته میشود. سپس این اطلاعات میتواند توسط فرستنده در جهات مختلف به کار گرفته شود تا فعالیتهای خود را با شرایط موجود شبکه وفق دهد. کنترل جریان حلقه بسته توسط ABR استفاده میشود.
کاربرد مدلهای ترافیکی شبکه
اندازهگیری برای مقایسه عملکرد واقعی شبکه ضروری است. مدلهای ترافیکی میتوانند برای حل مشکلات فرضی استفاده شوند، در حالیکه اندازه گیریهای ترافیکی فقط حقایق جاری را نشان میدهند. پیگیری ترافیک، فهم یک فرآیند تصادفی است در حالیکه مدل ترافیکی یک مدل تصادفی است. دنبال کردن ترافیک، دیدگاهی نسبت به یک منبع ترافیکی خاص در اختیار ما قرار میدهد اما یک مدل ترافیکی، دیدگاهی از تمام منابع ترافیکی در اختیار ما میگذارد. مدلهای ترافیکی کاربردهای زیادی دارند، سه تا از مهمترین آنها عبارتند از: اندازهگیری صحیح منابع شبکه برای رسیدن به یک سطح معین از کیفیت خدمات. مدلهای ترافیک بستهها برای تخمین پهنای باند و بافر منابع نیاز هستند. دانستن نرخ متوسط ترافیک در یک شبکه کافی نیست. آگاهی از متغیر بودن اندازه ترافیک و انفجاری بودن آن برای تشخیص اندازه بافر در گرهها و همچنین گنجایش خطوط ارتباطی نیز نیاز است. دومین کاربرد مهم استفاده از مدلهای ترافیک شبکه، بررسی کارایی شبکه در کنترلهای ترافیکی خاص است. برای مثال، بررسی کارایی الگوریتمهای برنامهریزی بستهها که ممکن است ترافیک شبکه را بر مبنای سناریوهای متفاوتی انجام دهند یا الگوریتمهایی که برای دوری کردن از برخورد در شبکههای TCP مورد استفاده هستند. ارزیابی مؤثر الگوریتمهای جدید از نظر پایداری، بیطرفی و عملکرد بدون مدلهای واقعی امکانپذیر نیست. سومین کاربرد مهم، کنترل پذیرش است. در شبکههای اتصال گرا از قبیل ATM برای تضمین کیفیت خدمات، کنترل پذیرش به معنای بلوک کردن ارتباطات جدید است. یک استراتژی ساده میتواند بر اساس نرخ اوج ارتباط جدید باشد؛ یک ارتباط جدید پذیرفته میشود اگر پهنای باند در دسترس بیشتر از نرخ اوج آن باشد. یک استراتژی پذیرش پیچیده بر اساس استفاده مؤثر از پهنای باند صورت میگیرد. از رفتار منبع ترافیکی به یک پهنای باند مؤثر بین نرخ اوج و نرخ میانگین برای رسیدن به محدوده QoS مورد نظر میرسیم. در نتیجه، پهنای باند مؤثر تابع تغییرات منبع است.
کنترل ازدحام
کنترل ازدحام (congestion control) به راهکار پیشگیری از تجمع بیش از اندازه دادههای انتقالی در صف انتظار و در نتیجه از بین رفتن بستهها اشاره دارد. ازدحام زمانی اتفاق میافتد که میزان داده ورودی به گذرگاه داده فراتر از آستانه تحمل گذرگاه باشد. گلوگاهها بزرگترین منبع ایجاد ازدحام در شبکههای اینترنتی هستند. راهکارهایی که برای جلوگیری از ایجاد ازدحام ارائه میشوند، بیشتر بر اساس کاهش نرخ ارسال داده توسط فرستنده با توجه به ظرفیت رسانه انتقال است.
الگوریتم به کار گرفته شده برای رفع مشکل کنترل ازدحام
هنگامی که به بخشی از زیر شبکه تعداد بسیار زیادی بسته تحویل شود کارایی آن کاهش مییابد. به این وضعیت ازدحام (Congestion) میگویند. هرگاه تعداد بستههایی که توسط ماشینهای میزبان به زیر شبکه سرازیر میشوند متناسب با ظرفیت حمل زیر شبکه باشد تمام این بستهها تحویل مقصدشان خواهند شد و تعداد بستههای تحویلی متناسب با تعداد بستههای ارسالی است. با این حال با افزایش بی رویه ترافیک روترها نمیتوانند از عهده آن برآمده و بستهها از دست میروند. این مشکل بدتر نیز میشود و در ترافیک بالا عملکرد مختل شده و هیچ بستهای تحویل مقصد نمیشود. چند عامل میتواند باعث بروز مشکل ازدحام شوند. اگر به ناگاه دنبالهای از بستهها روی سه یا چهار خط ورودی دریافت شده و خط خروجی همه آنها یکی باشد صف تشکیل خواهد شد و اگر فضای حافظه کافی برای نگهداری تمام آنها وجود نداشته باشد، بستهها از بین می روند. پردازندههای کند نیز میتوانند عامل بروز ازدحام باشند. اگر پردازنده اصلی روتر در انجام وظایف محوله کند عمل نماید، صف ایجاد میشود، حتی وقتی که ظرفیت خطوط خروجی بیش از حد مورد نیاز است. خطوط با پهنای باند کم نیز میتوانند منجر به بروز ازدحام شوند. ارتقاء پهنای باند خطوط بدون تغییر در پردازندهها یا بالعکس اغلب فایده چندانی ندارد و فقط جای گلوگاه و منشاء مشکل را تغییر میدهد. همچنین ارتقاء کامل یک بخش کوچک بدون تغییر در کل سیستم، فقط محل بروز مشکل و گلوگاه را جابجا میکند و در بهبود کارایی کل سیستم تأثیر چشمگیری نخواهد داشت. مشکل اساسی یک سیستم، عدم تطابق و تناسب بخشهای مختلف آن است. این مشکل تا زمانی که کلیه مولفههای سیستم متعادل نشوند باقی میماند.
کنترل ازدحام و کنترل جریان دو مفهوم متفاوت از هم هستند
کنترل ازدحام به راهکارهایی اشاره دارد که با هدف اطمینان از اینکه زیر شبکه قادر به حمل ترافیک عرضه شده به آن هست استفاده میشود. این یک مشکل عمومی است و از رفتار و عملکرد تمام ماشینهای میزبان، روترها، عملیات پردازشی ذخیره و هدایت درون روترها یا هر عامل دیگری که ظرفیت حمل زیر شبکه را کاهش بدهد، به وجود میآید. در مقابل کنترل جریان به ترافیک نقطه به نقطه بین یک فرستنده و گیرنده مرتبط است و وظیفه اصلی آن حصول اطمینان از این موضوع است که فرستنده سریع نمیتواند بهطور مستمر دادهها را با سرعتی بیش از توانایی دریافت گیرنده، ارسال کند. در کنترل جریان، گزارشها و بازخوردهای مستقیمی از گیرنده به فرستنده ارسال میشود تا به فرستنده طرف مقابل اعلام کند کارها را چگونه انجام دهد.
قواعد و خطمشیهای حاکم بر کنترل جریان
بیشتر مشکلات و پیچیدگیهای سامانههای متصل به شبکه را میتوان از منظر نظریه کنترل بررسی کرد. در این روش تمام راهحلها معطوف به دو گوره حلقه باز و بسته میشوند. راهحلهای حلقه باز سعی میکنند یک مسئله را با طراحی خوب حل کرده و از همان ابتدا اطمینان بدهند که مشکلی اتفاق نمیافتد. وقتی این سیستم شروع به کار و انجام فعالیت کرد، هیچگونه نظارت یا تصحیح عملکرد ممکن نیست. راهحلهای حلقه بسته مبتنی بر مفهوم حلقه بازخورد هستند. اینگونه راهکارهای کنترل ازدحام از بخش اصلی نظارت بر سیستم برای تشخیص اینکه در کجا و چه زمانی ازدحام اتفاق افتاده، تحویل این اطلاعات به محلی که باید واکنش نشان دهند و تنظیم عملکرد سیستم برای رفع مشکل ساخته شدهاند.
چگونه از مشکل ازدحام ممانعت به عمل آوریم
خطمشیهای مختلف در لایه انتقال، شبکه و پیوند داده میتوانند بر پدیده ازدحام تأثیر بگذارد: بر همین اساس لازم است در لایه انتقال مواردی همچون خطمشیهای ارسال مجدد، خطمشیهای ذخیره بستههایی که خارج از ترتیب میرسند، خطمشیهای تصدیق وصول بستهها، خطمشیهای کنترل جریان و تعیین زمان انقضای مهلت تایمرها به کار گرفته شود. در لایه شبکه لازم است از خطمشیهایی همچون مدار مجازی در مقابل روش دیتاگرام در زیر شبکه، مکانیزمهای صفبندی بستهها و روشهای متنوع سرویسدهی، خطمشیهای حذف بسته، الگوریتم مسیریابی و مدیریت طول عمر بستهها استفاده شود. در لایه پیونده دادهها نیز باید از خطمشیهایی همچون خطمشی ارسال مجدد، خطمشیهای ذخیره بستههایی که خارج از ترتیب میرسند، خطمشیهای تصدیق وصول بستهها، خطمشیهای کنترل جریان و کنترل ازدحام در پروتکل قرارداد هدایت انتقال استفاده شود.
نقش TCP در پیشگیری از ازدحام
پروتکل کنترل انتقال (TCP) از یک الگوریتم جلوگیری از ازدحام شبکه استفاده میکند که شامل ویژگیهای مختلفی از یک طرح افزایش افزایشی / کاهش چند برابر (additive increase/multiplicative decrease) است. الگوریتم جلوگیری از ازدحام TCP اساس اصلی کنترل ازدحام در اینترنت است. طبق اصل انتها به انتها، کنترل ازدحام تا حد زیادی تابعی از میزبان اینترنت و نه خود شبکه است. چند تغییر و نسخه از الگوریتم پیادهسازی شده در پشتههای پروتکل سیستم عاملهای رایانههایی که به اینترنت متصل هستند، وجود دارد. برای پیشگیری از مشکل ازدحام، پروتکل TCP از یک استراتژی کنترل ازدحام چند وجهی استفاده میکند. برای هر اتصال، TCP یک پنجره ازدحام را نگه میدارد که تعداد کل بستههای تأیید نشده را که ممکن است به صورت انتها به انتها انتقال یابند را محدود میکند. رویکرد فوق تا حدودی مشابه پنجره کشویی TCP است که برای کنترل جریان استفاده میشود. TCP از راهکاری بهنام شروع کند برای افزایش پنجره ازدحام پس از برقراری اتصال یا پس از پایان زمان اتصال استفاده میکند. این کار با یک پنجره شروع میشود که اندازه کوچک آن چند برابر اندازه حداکثر اندازه قطعه (MSS) است. اگرچه نرخ اولیه کم است، اما سرعت افزایش بسیار سریع است. برای هر بسته تأیید شده، پنجره تراکم با نرخ یک MSS افزایش مییابد به طوری که پنجره تراکم بهطور مؤثر برای هر بار سفر چرخشی (RTT) دو برابر میشود. زمانیکه که پنجره ازدحام از آستانه شروع کند تخطی کند (ssthresh)، الگوریتم وارد یک حالت جدید به نام اجتناب از ازدحام میشود. در حالت اجتناب از ازدحام، تا زمانی که ACKهای غیر تکراری دریافت میشوند، پنجره تراکم بهطور افزایشی با یک MSS در هر زمان چرخشی افزایش مییابد. شروع کند بخشی از استراتژی کنترل ازدحام است که توسط TCP در رابطه با سایر الگوریتمها به کار میرود تا از ارسال دادههای بیشتر از آنچه شبکه قادر به ارسال است، استفاده کند، یعنی از ایجاد تراکم شبکه جلوگیری کند. شروع کند در ابتدا با اندازه پنجره تراکم (CWND) از ۱، ۲، ۴ یا 10 MSS شروع میشود. مقدار اندازه پنجره ازدحام با هر یک از تأییدهای دریافت شده (ACK) افزایش مییابد، بهطور مؤثر اندازه پنجره را در هر زمان چرخشی دو برابر میکند. نرخ انتقال با الگوریتم شروع کند افزایش مییابد تا اینکه یا گم شدن تشخیص داده شود، یا پنجره منتشر شده گیرنده (rwnd) عامل محدود کننده شود، یا ssthresh به دست آید. اگر یک گم شدن رخ دهد، TCP فرض میکند که به دلیل ازدحام شبکه است و برای کاهش بار ارائه شده در شبکه گامهایی میبرد. این اندازهگیریها به الگوریتم جلوگیری از ازدحام TCP دقیق استفاده شده بستگی دارد. پس از رسیدن به ssthresh پروتکل TCP از الگوریتم شروع کند به الگوریتم رشد خطی (اجتناب از ازدحام) تغییر میکند. در این مرحله، برای هر زمان تأخیر چرخشی (RTT)، پنجره یک قطعه افزایش مییابد.
ماهنامه شبکه را از کجا تهیه کنیم؟
ماهنامه شبکه را میتوانید از کتابخانههای عمومی سراسر کشور و نیز از دکههای روزنامهفروشی تهیه نمائید.
ثبت اشتراک نسخه کاغذی ماهنامه شبکه
ثبت اشتراک نسخه آنلاین
کتاب الکترونیک +Network راهنمای شبکهها
- برای دانلود تنها کتاب کامل ترجمه فارسی +Network اینجا کلیک کنید.
کتاب الکترونیک دوره مقدماتی آموزش پایتون
- اگر قصد یادگیری برنامهنویسی را دارید ولی هیچ پیشزمینهای ندارید اینجا کلیک کنید.
نظر شما چیست؟