بسمه تعالی
دانشکده مهندسی برق
پایان نامه کارشناسی ارشد
عنوان:
مدلسازی و شبیه سازی سوئیچ MPLS و بررسی مقایسه ای نرم افزارهای موجود
نگارش: امیر رضا میناگر
استاد راهنما: دکتر سید مصطفی صفوی
استاد مشاور: مهندس بهرام پورعلی
مهر 1381
فهرست
عنوان صفحه
فصل اول: کیفیت سرویس و فنآوری های شبکه 1
1-1- مقدمه 1
1-2- کیفیت سرویس در اینترنت 1
1-2-1- پروتکل رزور منابع در اینترنت 3
1-2-2- سرویس های متمایز 4
1-2-3- مهندسی ترافیک 6
1-2-4- سوئیچنگ برحسب چندین پروتکل 9
1-3- مجتمع سازی IP و ATM 9
1-3-1- مسیریابی در IP 12
1-3-2- سوئیچینگ 13
1-3-3- ترکیب مسیریابی و سوئیچینگ 14
1-3-4- MPLS 20
فصل دوم: فنآوریMPLS 23
2-1- مقدمه 23
2-2- اساس کار MPLS 24
2-2-1- پشته برچسب 26
2-2-2- جابجایی برچسب 27
2-2-3- مسیر سوئیچ برچسب (LSR) 27
2-2-4- کنترل LSP 29
2-2-5- مجتمع سازی ترافیک 30
2-2-6- انتخاب مسیر 30
2-2-7- زمان زندگی (TTL) 31
2-2-8- استفاده از سوئیچ های ATM به عنوان LSR 32
2-2-9- ادغام برچسب 32
2-2-10- تونل 33
2-3- پروتکل های توزیع برچسب در MPLS 34
فصل سوم: ساختار سوئیچ های شبکه 35
3-1- مقدمه 35
3-2- ساختار کلی سوئیچ های شبکه 35
3-3- کارت خط 40
3-4- فابریک سوئیچ 42
3-4-1- فابریک سوئیچ با واسطه مشترک 43
3-4-2 فابریک سوئیچ با حافظه مشترک 44
3-4-3- فابریک سوئیچ متقاطع 45
فصل چهارم: مدلسازی و شبیه سازی یک سوئیچ MPLS 50
4-1- مقدمه 50
4-2- روشهای طراحی سیستمهای تک منظوره 50
4-3- مراحل طراحی سیستمهای تک منظوره 52
4-3-1- مشخصه سیستم 53
4-3-2- تایید صحت 53
4-3-3- سنتز 54
4-4 – زبانهای شبیه سازی 54
4-5- زبان شبیه سازی SMPL 56
4-5-1- آماده سازی اولیه مدل 58
4-5-2 تعریف و کنترل وسیله 58
4-5-3 – زمانبندی و ایجاد رخدادها 60
4-6- مدلهای ترافیکی 61
4-6-1- ترافیک برنولی یکنواخت 62
4-6-2- ترافیک زنجیره ای 62
4-6-3- ترافیک آماری 63
4-7- مدلسازی کارت خط در ورودی 64
عنوان صفحه
4-8- مدلسازی فابریک سوئیچ 66
4-8-1- الگوریتم iSLIP 66
4-8-2- الگوریتم iSLIP اولویت دار 71
4-8-3- الگوریتم iSLIP اولویت دار بهینه 76
4-9- مدلسازی کارت خط در خروجی 79
4-9-1 – الگوریتم WRR 80
4-9-2- الگوریتم DWRR 81
4-10- شبیه سازی کل سوئیچ 82
4-11- کنترل جریان 90
فصل پنجم: نتیجه گیری و پیشنهادات 93
5-1- مقدمه 93
5-2- نتیجه گیری 93
5-3- پیشنهادات 94
مراجع …………………………………………………………………….95
چکیده
امروزه سرعت بیشتر و کیفیت سرویس بهتر مهمترین چالش های دنیای شبکه می باشند. تلاشهای زیادی که در این راستا در حال انجام می باشد، منجر به ارائه فنآوری ها، پروتکل ها و روشهای مختلف مهندسی ترافیک شده است. در این پایان نامه بعد از بررسی آنها به معرفی MPLS که به عنوان یک فنآوری نوین توسط گروه IETF ارائه شده است، خواهیم پرداخت. سپس به بررسی انواع ساختار سوئیچ های شبکه خواهیم پرداخت و قسمتهای مختلف تشکیل دهنده یک سوئیچ MPLS را تغیین خواهیم کرد. سرانجام با نگاهی به روشهای طراحی و شبیه سازی و نرم افزارهای موجود آن، با انتخاب زبان شبیه سازی SMPL، به شبیه سازی قسمتهای مختلف سوئیچ و بررسی نتایج حاصل می پردازیم. همچنین یک الگوریتم زمانبندی جدید برای فابریک سوئیچ های متقاطع با عنوان iSLIP اولویت دار بهینه معرفی شده است که نسبت به انواع قبلی دارای کارآیی بسیار بهتری می باشد.
Abstract
Nowadays achieving higher speeds and better quality of service are the main subjects of networking. Many attempts are made in this way which have led to introducing various technologies, protocols and traffic engineering methods. In this thesis, after studying the above-mentioned parameters, IETF's new technology called MPLS will be introduced. Then several different switch architectures are examined and the components of an MPLS switch are selected. Finally after a quick look at design and simulation methods and their available softwares, SMPL is chosen as simulation tool and then switch components are simulated and the results are studied. Also a new scheduling algorithm for crossbar switch fabrics named "The Optimized Prioritized iSLIP" is introduced which has much better performance than its previous versions.
فصل اول
کیفیت سرویس و فنآوری های شبکه
1-1- مقدمه
با گسترش تعداد کاربران اینترنت و نیاز به پهنای باند بیشتر از سوی آنها، تقاضا برای استفاده از سرویسهای اینترنت با سرعت رو به افزایش است و تهیه کننده های سرویس اینترنت برای برآورده سازی این تقاضا ها احتیاج به سوئیچ های با ظرفیت بیشتر دارند ]1[.
در این میان تلاشهای زیادی نیز برای دستیابی به کیفیت سرویس بهتر در حال انجام می باشد. فنآوریATM1 نیز که به امید حل این مشکل عرضه شد، بعلت گسترش و محبوبیتIP2 نتوانست جای آن را بگیرد و هم اکنون مساله مجتمع سازی IP و ATM نیز به یکی از موضوعات مطرح در زمینه شبکه تبدیل شده است.
در این فصل به معرفی مسائل و مشکلات مربوط به کیفیت سرویس و مجتمع سازی IP و ATM می پردازیم و راه حلهای ارائه شده از جمله MPLS 3 رابررسی خواهیم نمود.
1-2- کیفیت سرویس در اینترنت
سرویسی که شبکه جهانی اینترنت به کاربران خود ارائه داده است، سرویس بهترین تلاش4 بوده است. یکی از معایب اصلی این سرویس این است که با وجود اینکه مسیریاب های شبکه به خوبی قادر به دریافت و پردازش بسته های ورودی می باشند ولی هیچگونه تضمینی در مورد سالم رسیدن بسته ها به مقصد وجود ندارد. با توجه به رشد روز افزون استفاده از اینترنت و به خصوص با توجه به اشتیاق زیاد به اینترنت به عنوان ابزاری برای گسترش تجارت جهانی، تلاش های زیادی جهت حفظ کیفیت سرویس (QoS)4 در اینترنت در حال انجام می باشد. در این راستا در حال حاضر کلاس های سرویس متنوعی مورد بحث و توسعه می باشند. یکی از کلاس های سرویس فوق ، به شرکت ها و مراکز ارائه سرویس های web که نیاز به ارائه سرویس های سریع و مطمئن به کاربران خود دارند، اختصاص دارد.
یکی دیگر از کلاس های سرویس جدید در اینترنت ، به سرویس هایی که نیاز به تاخیر و تغییرات تاخیر کمی دارند، اختصاص دارد. سرویس هایی نظیر تلفن اینترنتی5 و کنفرانس های تصویری اینترنتی نمونه ای از سرویس های این کلاس سرویس می باشند.
برای نیل به سرویس های جدید فوق، عده ای براین عقیده هستند که در آینده ای نزدیک تکنولوژی فیبر نوری و WDM6 آنقدر رشد خواهد کرد که اینترنت به طور کامل بر مبنای آن پیاده سازی خواهد شد و عملا مشکل پهنای باند و همچنین تضمین کیفیت سرویس وجود نخواهد داشت. عقیده دوم که ظاهرا درست تر از عقیده اول می باشد، این است که با وجود گسترش فنآوریهای انتقال و افزایش پهنای باند، هنوز به مکانیسم هایی برای تضمین کیفیت سرویس کاربران نیاز می باشد. در حال حاضر اکثر تولید کنندگان مسیریاب ها و سوئیچ های شبکه اینترنت، در حال بررسی و افزودن مکانیسم هایی برای تضمین کیفیت سرویس در محصولات خود می باشند.
از سوی سازمان جهانی IETF7 مدل ها و مکانیسم های مختلفی برای تضمین کیفیت سرویس مورد تقاضای کاربران ارائه شده است. برخی از مهمترین این مدل ها عبارتند از:
1- پروتکل رزرو منابع در اینترنت RSVP8
2- سرویس های متمایز DS9
3- مهندسی ترافیک
4- سوئیچنگ برچسب چندین پروتکل MPLS
در قسمتهای بعدی به طور خلاصه با هر یک از مدل های فوق آشنا می شویم .
1-2-1- پروتکل رزور منابع در اینترنت
پروتکل RSVP به عنوان یک پروتکل سیگنالینگ برای رزرو منابع در اینترنت استفاده می شود. در شکل 1-1 مثالی از عملیات سیگنالینگ RSVP نشان داده شده است. مطابق با شکل فوق، فرستنده ابتدا پیام PATH را ارسال می دارد. در این پیام مشخصات و پارامترهای ترافیکی فرستنده موجود می باشد. هر مسیریاب شبکه با دریافت پیام PATH با کمک جدول مسیریابی خود پیام را هدایت نموده تا اینکه پیام به مقصد نهایی برسد. گیرنده نهایی بعد از دریافت پیام PATH، پیام RESV را از خود عبور داده و منابع لازم شامل پهنای باند و فضای بافر را به ارتباط جدید اختصاص می دهد. چنانچه یکی از مسیریاب های موجود در مسیر، قادر به قبول پیام RESV نباشد، آنرا رد نموده و پیام خطایی به گیرنده ارسال می نماید و سپس عملیات سیگنالینگ خاتمه می یابد. با قبول پیام RESVاز جانب هر مسیر یاب موجود در مسیر، اطلاعات وضعیت مربوط به جریان ترافیکی فوق ثبت می شود .
شکل 1-1- مثالی از عملیات سیگنالینگ RSVP
با ورود هر بسته به مسیریاب های شبکه، واحد طبقه بندی کننده، بسته ورودی را به یک کلاس خاص طبقه بندی نموده و سپس بسته ورودی را در یک صف خاص قرار می دهد. عملیات زمانبندی بسته ها در هر صف موجود در مسیریاب، توسط واحد زمان بند بسته طوری انجام می گردد که کیفیت سرویس مورد نظر تامین شود. این سرویس دارای مشکلات زیر می باشد:
1- میزان اطلاعات وضعیت متناسب با تعداد جریان های ترافیکی افزایش می یابد. بنابراین برای نگهداری اطلاعات وضعیت در مسیریاب ها نیاز به حافظه زیادی می باشد. همچنین بالاسری10 عملیات مسیر یاب ها به شدت افزایش می یابد. لذا قابلیت مقیاس پذیری در ساختار سرویس های مجتمع به هیچ وجه مشاهده نمی گردد .
2- هر مسیر یاب نیاز به پروتکل RSVP، روتین کنترل کننده دسترسی، طبقه بندی کننده جریان ترافیکی و زمان بند بسته دارد . بنابراین می توان گفت که در سرویس های مجتمع وظایف پردازشی مسیریاب ها به شدت زیاد می باشد.
1-2-2- سرویس های متمایز
به خاطر مشکلات پیاده سازی و توسعه سرویس های مجتمع که در بالا به آنها اشاره شد، سرویس های متمایز ارائه گردیدند . همانطور که می دانیم درسر فصل بسته های IPv4 فیلد یک بایتی به نام نوع سرویس (ToS)11 وجود دارد. در این فیلد سه بیت مختلف وجود دارد که برنامه های کاربردی با استفاده از این سه بیت قادر به تعیین نیازهای خود می باشند. سه بیت فوق عبارتند از:
1- بیت D : نیاز به تاخیر کم
2- بیت R : نیاز به نرخ اتلاف کم (اطمینان بالا)
3- بیت T : نیاز به گذردهی بالا
در سرویس های متمایز، فیلد نوع سرویس به فیلد DS تغییر نام کرده است. با کد گذاری های مختلف فیلد DS و پردازش بسته ها براساس مقدار فیلد فوق، می توان کلاس های سرویس متمایزی را ایجاد نمود.
برای دسترسی به سرویس های متمایز، لازم است که کاربران شبکه به یک توافق سطح سرویس (SLA)12 با سرویس دهنده های اینترنت ((ISP13، برسند . کلاس های مختلف سرویس و میزان ترافیک هر کلاس در SLA مشخص می شود. SLA می تواند به یکی از دو صورت ثابت 14 و پویا 15 بیان شود. در نوع ثابت توافق ترافیکی بین کاربر و ISP ثابت می باشد، در حالیکه در نوع پویا با استفاده از پروتکل های سیگنالینگ (مثل RSVP ) سرویس مورد نظر کاربر متناسب با تقاضای آن قابل تنظیم می باشد. براساس SLA توافق شده بین کاربر و شبکه، در مدخل ورودی به شبکه، بسته های ورودی کاربران طبقه بندی، نظارت و در صورت لزوم شکل دهی می گردند. همچنین میزان بافر مورد نیاز جریان ترافیکی کاربر از اطلاعات موجود در SLA استخراج می گردد.
با کمک عملیات طبقه بندی، نظارت، شکل دهی و زمانبندی که در DS اجرا می گردد، می توان به سرویس های متمایز زیر دسترسی پیدا نمود.
1- سرویس های تشویقی 16 : برای کاربردهایی که به تاخیر و تغییرات تاخیر کم نیاز می باشد.
2- سرویس های مطمئن17 : برای کاربردهایی که به اطمینان بالا نیاز می باشد.
3- سرویس های المپیک : این سرویس ها خود به سه دسته سرویس های طلایی ، نقره ای و برنزی تقسیم بندی می شوند که به ترتیب کیفیت سرویس کاهش می یابد.
بین استفاده از سرویس های متمایز و RSVP تفاوت های زیر وجود دارد:
از آنجائیکه در سرویس های متمایز تعداد کلاس های سرویس که توسط فیلد DS مشخص می شود بسیار محدود است، بنابراین برخلاف سرویس های مجتمع، میزان اطلاعات وضعیت متناسب با تعداد کلاس های سرویس می باشد نه تعداد جریان های ترافیکی. این امر منجر به قابلیت مقیاس پذیری بالاتر سرویس های متمایز نسبت به سرویس های مجتمع می گردد.
عملیات طبقه بندی، نشانه گذاری، نظارت و شکل دهی فقط در مرز شبکه باید انجام شود. بنابراین پیاده سازی و اعمال سرویس های متمایز ساده تر از سرویس های مجتمع می باشد.
برای پیاده سازی سرویس های مطمئن، ابتدا توسط مسیریاب ورودی شبکه عملیات طبقه بندی و نظارت صورت می گیرد. چنانچه ترافیک ورودی از آنچه که در SLA آمده است، بیشتر باشد در این صورت ترافیک ورودی متخلف می باشد، در غیر این صورت نامتخلف است. تمام بسته های ورودی و خروجی در یک صف قرار می گیرند و برروی آنها مدیریت صف صورت می گیرد .
سرویس های تشویقی برای کاربرانی که ترافیک تولیدی آنها دارای حداکثر نرخ بیت ثابت می باشد، تاخیر و تغییرات تاخیر کمی را تضمین می نماید. هر کاربر دارای یک توافق ترافیکی SLA با سرویس دهنده خود می باشد. در SLA حداکثر نرخ بیت مجاز کاربر قید شده است و کاربر موظف به رعایت آن می باشد. چنانچه نرخ بیت ارسال کاربر از حداکثر مجاز تجاوز نماید، در این صورت ترافیک های اضافی از بین می روند. شبکه نیز متعهد می شود که پهنای باند مورد نیاز کاربر را تامین نماید. در کاربردهایی نظیر تلفن اینترنتی، کنفرانس ویدئوئی، ایجاد خطوط استیجاری و مجازی و VPN18 از سرویس های تشویقی استفاده می شود.
1-2-3- مهندسی ترافیک
عواملی نظیر کمبود منابع کافی در شبکه و همچنین توزیع نادرست بار ترافیکی در شبکه، باعث ایجاد تراکم در شبکه می گردد. چنانچه منابع کافی در شبکه موجود نباشد در این صورت تمام مسیر یاب های موجود در شبکه دچار تراکم و ازدحام بار می شوند که تنها راه حل مناسب آن، افزودن منابع دیگر به شکبه می باشد. اگر بار ترافیکی به طور مناسب و صحیح در شبکه توزیع نشود در این صورت برخی از مناطق شبکه دچار تراکم می شوند در حالیکه در برخی نقاط دیگر هیچگونه تراکمی مشاهده نمی شود. از آنجاییکه اکثر پروتکل های مسیر یابی دینامیکی از الگوریتم کوتاهترین فاصله استفاده می نمایند، بنابراین امکان ایجاد تراکم در برخی مسیرها و عدم وجود تراکم در مسیرهای دیگر شبکه وجود دارد . البته روش بهبود یافته ECMP 19به شرط آنکه بیش از یک مسیر به عنوان کوتاهترین مسیرها موجود باشد، تا حدی مشکل فوق را در پروتکل مسیریابی دینامیکی OSPF 20حل می نماید. همچنین به عنوان یک راه حل دیگر می توان هزینه هر خط شبکه را به صورت دستی تغییر داد تا عملیات تقسیم بار صورت گیرد اما طبیعی است این راه حل برای شبکه های وسیع عملی نمی باشد .
با کمک روال هایی که در مهندس ترافیک در نظر گرفته شده است، میتوان تا حد زیادی از ایجاد تراکم در شبکه جلوگیری نمود. مسیر یابی مبتنی بر اضطرار (CBR)21 یک روش برای مهندسی ترافیک و جلوگیری از تراکم در شبکه است که به شرح آن می پردازیم .
در مسیریابی مبتنی بر اضطرار با استفاده از چندین پارامتر مختلف، مسیرهای موجود بین مبدا و مقصد محاسبه می شوند. در حقیقت مسیریابی مبتنی بر اضطرار تکمیل یافته مسیریابی مبتنی بر کیفیت سرویس می باشد. در مسیریابی QoS کلیه مسیرهایی که کیفیت سرویس مورد نظر کاربر را برآورده می نماید محاسبه می شوند . در مسیریابی مبتنی بر اضطرار سایر محدودیت های شبکه نظیر نظارت بر ترافیک نیز درنظر گرفته شده است. با استفاده از مسیر یابی مبتنی بر اضطرار، امکان انتخاب مسیرهایی با کیفیت سرویس مورد نظر و همچنین افزایش میزان بهره وری شبکه فراهم می آید. در مسیریابی مبتنی بر اضطرار در هنگام محاسبه مسیرهای موجود نه تنها توپولوژی شبکه بلکه پارامترهای دیگری نظیر نیازهای جریان های ترافیکی، میزان ظرفیت موجود در خط های شبکه و سایر نظارت های لازم که توسط مدیر شبکه تعیین می شود، در نظر گرفته می شوند. بنابراین در وحله اول ممکن است که مسیر محاسبه شده توسط مسیر یابی مبتنی بر اضطرار طولانی تر از مسیرهای دیگر باشد ولی مطمئنا مسیر محاسبه شده دارای سبکترین بار ترافیکی بوده و نیازهای کاربر را به خوبی برآورده می نماید.
همانند پروتکل های مسیریابی دینامیکی، برای محاسبه بهترین مسیر ممکن توسط الگوریتم مبتنی بر اضطرار باید مسیر یاب های شبکه به طور متناوب اطلاعات وضعیت خط را بین یکدیگر مبادله نمایند .
در مسیریابی مبتنی بر اضطرار مشابه سایر روش های مسیریابی، اولین مسئله مهم انتخاب متریک مورد نظر برای مسیرهای موجود در شبکه می باشد. متریک های متداول در مسیر یابی مبتنی بر اضطرار عبارتند از: هزینه22 تعداد پرش ها23، پهنای باند، اطمینان، تاخیر و تغییرات تاخیر مسیر انتخاب شده. الگوریتم های مسیر یاب، یک یا چند متریک فوق را بهینه می نمایند.
چنانچه از چندین متریک فوق به صورت ترکیبی برای محاسبه مسیر بهینه استفاده شود، در این صورت پیچیدگی عملیات تولید جداول مسیر یابی به شدت زیاد می گردد. اگر از متریک های پهنای باند و یا تعداد پرش در محاسبه مسیر بهینه استفاده شود، در این صورت به خاطر وجود الگوریتم هایی نظیر الگوریتم Dijestra و Bellman-Ford محاسبات مسیریابی نسبتا ساده می باشد. در مسیریابی مبتنی بر اضطرار فرکانس محاسبه مسیرها به مراتب نسبت به سایر روش های دینامیکی بیشتر می باشد. دلیلی که می توان برای این مطلب آورد این است که در مسیر یابی دینامیکی تنها با تغییر توپولوژی شبکه، مسیرهای جدید محاسبه می شوند ولی در مسیر یابی مبتنی بر اضطرار، تغییرات پهنای باند نیز منجر به محاسبه مسیرهای جدیددر جدول مسیریابی می گردد. بنابراین می توان نتیجه گرفت که پیچیدگی روش مسیر یابی مبتنی بر اضطرار به مراتب بیشتر از مسیریابی دینامیکی می باشد. برای محاسبه جداول مسیر یابی و کاهش پیچیدگی مسیریابی مبتنی بر اضطرار، می توان از روش های پیشنهادی زیر استفاده نمود:
1- استفاده از یک تایمر طولانی برای کاهش فرکانس محاسبات.
2- استفاده ازمرتیک های پهنای باند و تعداد جهش .
3- استفاده از سیاست های مدیریت برای حذف برخی از خط هایی که به هر دلیل مورد قبول نمی باشند. مثلا اگر یک ارتباط نیاز به تاخیر کم داشته باشد، قبل از انجام مسیریابی ابتدا تمام خط هایی که تاخیر بالایی دارند حذف می شوند و سپس مسیر یابی انجام می گردد.
ذکر این نکته ضروری می باشد که مسیریابی مبتنی بر اضطرار دارای مشکلات زیادی است که عبارتند از:
1- بالا سری زیاد در محاسبه مسیر.
2- افزایش اندازه جدول مسیریابی.
3- احتمال عدم پایداری.
4- بهینه نبودن مسیر انتخابی از نظر میزان مصرف منابع .
1-2-4- سوئیچنگ برحسب چندین پروتکل
در پروتکل MPLS به بسته های ورودی به شبکه یک برچسب کوتاه الحاق می گردد و سپس با توجه به مقدار برچسب فوق، عملیات مسیریابی در درون شبکه انجام می شود. در بخش های بعدی توضیحات کامل در مورد پروتکل MPLS ارائه خواهد شد.
1-3- مجتمع سازی IP و ATM
با گسترش سریع شبکه های مبتنی بر IP و همچنین با توجه به ویژگیهای منحصر به فرد فنآوری ATM، مدتی است که مبحث پیاده سازی IP بر روی ATM مطرح می باشد و تاکنون پیشنهادهای مختلف و فعالیتهای زیادی در این زمینه صورت گرفته است ]2[.
یکی از اولین و مهمترین مشکلات پیاده سازی IP بروی ATM عملکرد متفاوت این دو فنآوری می باشد. IP یک پروتکل بهترین تلاش و بی اتصال24 می باشد در حالیکه ATM از نوع اتصال گرا25 است و کیفیت سرویس اتصال ها را به خوبی تضمین می نماید. در IP داده های ارسالی بصورت بسته26 می باشد، در حالیکه در ATM داده ها بصورت سلول27 می باشد. در IP از مسیر یابی لایه سوم استفاده می شود، در حالیکه در ATM از روش رزرو منابع استفاده می شود.
با استفاده از فنآوری ATM، امکان استفاده از سرویس های متنوع صوتی، تصویری و داده ای، فراهم می آید. از طرف دیگر IP، قدمت حدود 30 سال دارد و در این مدت فعالیت ها و نرم افزارهای زیادی بر پایهIP طراحی و پیاده سازی شده است. بنابراین شرکت های مخابراتی و متخصصان شبکه، بهترین راه حل پیاده سازی نسل آینده اینترنت را ارسال ترافیک های IP و ATM می دانند.
همانطور که می دانیم در شبکه های کامپیوتری دو فنآوری مختلف سوئیچینگ بسته ای28 و سوئیچینگ مداری29 وجود دارد. میزان بهره وری از منابع شبکه در سوئیچینگ بسته ای به خصوص در حالتیکه ترافیک های ارسالی کاربران از نوع زنجیره ای30 باشد، به مراتب بالاتر از سوئیچینگ مداری است اما مهمترین برتری سوئیچینگ مداری آن است که امکان تضمین کیفیت سرویس در شبکه های سوئیچینگ مداری وجود دارد. با توجه به اینکه IP و ATM از دو نوع سوئیچینگ مختلف که در بالا به آن اشاره شد، استفاده می نمایند، در ترکیبب و مجتمع سازی این دو نوع فنآوری یکسری مشکلاتی وجود دارد.
برای رفع مشکلات فوق و پیاده سازی IP برروی ATM، تاکنون از سوی IETF، انجمن ATM و سایر شرکتهای مخابراتی، روش های مختلفی مانند مدل سنتیIP بروی ATM ، NHRP31، MPOA32 و MPLS ارائه شده است .
هر یک ازروش های فوق دارای ویژگی ها و مشخات خاصی می باشند ولی مطمئنا کاملترین روش پیاده سازیIP بروی ATM، پروتکل MPLS است که در این قسمت به بررسی اجمالی آن می پردازیم.
MPLS در حقیقت ترکیبی از سوئیچینگ لایه دوم (لایه پیونده داده) با مسیریابی لایه سوم (لایه شبکه) می باشد که هدف اصلی آن ایجاد یک فابریک انعطاف پذیرشبکه با کارآیی و مقیاس پذیری بالا می باشد.MPLSن
وابسته به پروتکل لایه دوم خاصی نمی باشد ولی پیاده سازی های اولیه آن بر روی ATM وFrame Relay صورت گرفته است. در اوایل سال 1997، گروه مطالعاتی MPLS، که در آن ISP های زیاد عضویت دارند، شروع به فعالیت نمود که هدف اصلی آن پاسخگویی و رفع نیاز مشکلات فراوان موجود در اینترنت فعلی می باشد. برخی از مهمترین اهداف MPLS که در شبکه اینترنت فعلی وجود ندارند عبارتند از:
1- ایجاد یک شبکه IP با قابلیت مقایس پذیری برای رفع نیازهای رو به افزون ترافیک های اینترنت
2- فراهم سازی سرویس های مبتنی بر IP
3- ترکیب ترافیک های مختلف بر روی یک شبکه IP واحد
4- بهبود بازدهی عملیاتی شبکه در یک محیط رقابتی
در ابتدای پیدایش فنآوریATM، تصور همگان براین بود که با توجه به ویژگی های منحصر به فرد ATM در آینده شاهد یک شبکه کاملا مبتنی بر ATM خواهیم بود. اما با گسترش IP و شبکه های مبتنی بر IP، این ایده به تدریج کمرنگ گردید. تصور فعلی براین است که در نسل آینده شبکه ها از مزایای فنآوری های موجود نظیر ATM وIP به نحو احسن استفاده می شود.
فنارآوری سوئیچینگ برحسب نتیجه ترکیب و استفاده توام از مزایای فناوری های سوئچینگ لایه دوم و مسیریابی لایه سوم می باشد. طبیعی است که این نوع شبکه، به دلیل استفاده همزمان از فنآوریهای سوئیچینگ و مسیریابی، بهترین راه حل برای استفاده همزمان از IP و ATM می باشد.
در حالت کلی، فناوری MPLS فقط به IP و ATM محدود نمی شود، بلکه MPLS نحوه یکپارچه سازی فنآوریهای لایه دوم و لایه سوم را توصیف می نماید. در MPLS یکسری روال ها برای استفاده از قابلیت های سوئچیگ سریع ATM و Frame Relay در شبکه های IP توصیف شده است .
در شبکه های MPLS به هر یک از بسته های IP ورودی توسط مسیر یاب های موجود در لبه شبکه، یک برچسب الحاق می گردد. در درون شبکه MPLS، هدایت بسته ها به مقصد بوسیله پردازش برروی فیلد برچسب انجام می شود. در لبه خروجی شبکهMPLS، برچسب الحاقی به بسته حذف شده و بسته IP تحویل مقصد می گردد.
شکل 1-2 مثالی از یک شبکه MPLS و تجهیزات آن را نشان می دهد. مطابق با شکل فوق مسیریاب هایی که در لبه شبکه قرار گرفته اند و با استفاده از اطلاعات IP، به بسته های ورودی یک برچسب خاص تخصیص می دهند، با نام LER33 شناخته می شوند . مسیریابهای داخل شبکه MPLS که تنها وظیفه آنها پردازش بسته های IP برچسب زده شده و هدایت آنها به سمت مقصد می باشد، با نام LSR34 شناخته می شوند. همچنین مطابق با شکل فوق، به مسیری که بسته های IP ازطریق آن مسیر به سمت مقصد ارسال می شوند، اصطلاحا LSP35 گفته می شود.
شکل 1-2- مثالی از یک شبکه MPLS
1-3-1- مسیریابی در IP
قبل از بررسی پروتکل MPLS، به بررسی اجمالی مسیریابی در IP می پردازیم. در سرفصل بسته های IP، اطلاعات لازم برای مسیر یابی وجود دارد. مسیریابی P ، براساس مسیریابی مبتنی بر مقصد انجام می گیرد. این بدان معنی است که برای هدایت هر بسته IP به مقصد، سرفصل آن مورد بررسی قرار می گیرد و با توجه به آدرس مقصد و محتوای جدول مسیریابی، پرش بعدی بسته تعیین شده و بسته IP ارسال می گردد. از آنجاییکه هر بسته IP به طور مستقل مسیر یابی می گردد و از یک مسیر از قبل تعیین شده عبور نمی کند بنابراین می توان گفت که شبکه به صورت بی اتصال عمل می نماید. بعد از برقراری ارتباط هسایگی بین مسیریاب های شبکه، جداول مسیریابی بین مسیریاب ها مبادله می گردد. هر مسیر یاب، بعد از دریافت بسته IP باید پرش بعدی بسته را تعیین کند. با استفاده از پروتکل های مسیریابی دینامیکی نظیر OSPF، هر مسیریاب قادر به فراگیری کل توپولوژی شبکه می باشد. با استفاده از اطلاعات بدست آمده از مسیریاب های مجاور، هر مسیر یاب جداول مسیریابی خود را کامل نموده و بدین ترتیب قادر به تعیین پرش بعدی و هدایت بسته به سمت مقصد می باشد.
در شکل 1-3، جزئیات مربوط به استفاده و نحوه به روز آوری جداول مسیریابی آورده شده است. همانطور که در این شکل دیده می شود، عملیات مسیریابی به صورت نرم افزاری و سخت افزاری قابل پیاده سازی است.
شکل 1-3- نحوه استفاده و ایجاد جداول مسیریابی
1-3-2- سوئیچینگ
با گسترش شبکه های کاملا مبتنی بر IP، سرویس دهنده های شبکه به این نتیجه رسیدند که چنانچه شبکه های آنها کاملا مبتنی بر مسیریاب ها طراحی و توسعه یابد، مشکلات متعددی در شبکه بوجود خواهد آمد. برخی از این مشکلات عبارتند از :
1- مشکلات موجود در قسمت نرم افزاری مسیریاب ها
2- قیمت بالای مسیر یاب های سریع IP
3- مشکل بودن تخمین کارآیی شبکه های وسیع مبتنی بر IP
فناوری های سوئیچینگ سریع در ATM و Frame Relayاز الگوریتم جابجایی برچسب استفاده می نمایند. به خاطر سادگی الگوریتم فوق، امکان پیاده سازی سخت افزاری آن وجود دارد که باعث افزایش سرعت، کاهش قیمت و افزایش کارآیی آن نسبت به مسیر یاب های IP می گردد. فنآوری های ATM و Frame Relay، هر دو به صورت اتصال گرا عمل می نمایند. بنابراین قبل از ارسال هر گونه داده ای، ابتدا یک اتصال اولیه بین مبدا و مقصد بوجود می آید و داده های ارسالی تماما از یک مسیر مشخص ارسال می گردند. بنابراین در شبکه های اتصال گرا، امکان مدیریت و تخمین پارامترها فراهم می آید.
1-3-3- ترکیب مسیریابی و سوئیچینگ
برای استفاده از مزایای سوئیچینگ و رفع مشکلات مربوط به توسعه شبکه های مبتنی برمسیریاب، از ترکیب مسیریاب و سوئیچ در توسعه شبکه های گسترده استفاده می شود. در این ساختار، مطابق با شکل 1-4، مسیریاب ها در لبه های شبکه قرار می گیرند و اتصال بین آنها از طریق سوئیچ های شبکه صورت می گیرد. بنابراین امکان مدیریت و تخمین پارامترها فرآهم می آید. به این نحوه مجتمع سازی IP و ATM مدل Overlay گفته می شود.
شکل 1-4- مدل Overlyبرای مجتمع سازی IP و ATM
همانطور که قبلا نیز اشاره شد، در شبکه های مبتنی بر مسیر یاب، برای تبادل اطلاعات و جداول مسیریابی، لازم است که مسیر یاب های شبکه با یکدیگر ارتباط همسایگی برقرار نمایند . در ساختار شکل 1-4، ازطریق اتصال های بین سوئیچ ها (مثلا VC 36 در ATM)، ارتباط همسایگی برقرار می شود. در این حالت برای برقراری کامل اتصال بین مسیریاب ها، نیاز به ایجاد یک حلقه کامل VC می باشد. چنانچه تعداد مسیریاب ها در شبکه n تا باشد، به تعداد n(n-1)/2 اتصال VC برای اتصال مسیریاب های شبکه به یکدیگر نیاز است. طبیعی است که با افزایش n، تعداد اتصال های لازم با توان دوم n افزایش می یابند که این امر باعث پیچیدگی مدیریت شبکه می شود.
به عنوان مثال در شکل 1-5 ، یک شبکه با 4 مسیریاب آورده شده است. در این شکل برای برقراری اتصال بین مسیریاب ها به 6=2/(1-4)×4 اتصال VC نیاز است که این تعداد VC مورد نیاز، با افزایش تعداد مسیریاب ها به صورت توان 2 افزایش می یابد.
با توجه به مطالب فوق دیده می شود که مدل Overlay برای پیاده سازی و ترکیب IP و ATM دارای ضعف زیادی در مقیاس پذیری می باشد.
شکل 1-5- یک شبکه مجتمع شامل چهار مسیریاب IP
برای رفع مشکل فوق، سوئیچینگ چند لایه پیشنهاد شده است. در این راه حل که MPLS هم جزئی از آن می باشد، با ترکیب سوئیچینگ لایه دوم و مسیریابی لایه سوم، یک راه حل جامع برای ترکیب IP و ATM ارائه شده است. تکنیک سوئیچینگ چند لایه دارای دو ویژگی اصلی زیر می باشد:
1- جداسازی واحد کنترل از واحد هدایت به جلو37
2- استفاده از الگوریتم جابجایی برچسب برای عملیات هدایت به جلو
مطابق با شکل 1-6، در سوئیچینگ چند لایه، دو واحد اصلی به نام واحد کنترل و واحد هدایت به جلو به طور مجزا وجود دارند. وظیفه اصلی واحد کنترل، تبادل اطلاعات مسیریابی و به روز آوری جداول مسیریابی با استفاده از پروتکل های استاندارد مسیریابی نظیر OSPF و BGP38 می باشد.
شکل 1-6- واحدهای تشکیل دهنده سوئیچینگ چند لایه
با ورود هر بسته به سوئیچ های چند لایه، واحد هدایت به جلو با استفاده از جداول هدایت به جلو و براساس اطلاعات موجود در سرفصل بسته ورودی، آن را مسیریابی وهدایت می نماید. جدول هدایت به جلو توسط واحد کنترل مدیریت و به روز می گردد.
یکی از مزایای جداسازی واحد کنترل و واحد هدایت به جلو، امکان توسعه و بهینه سازی هر یک از واحدهای فوق به طور مستقل و جداگانه می باشد. واحد هدایت به جلو برای هدایت بسته ها از الگوریتم جابجایی برچسب که مشابه الگوریتم مورد استفاده در ATM و Frame Relay است، استفاده می نماید. در این الگوریتم، سیگنالینگ و توزیع برچسب ها از اهمیت بالایی برخوردار می باشد.
هر برچسب دارای طول ثابتی می باشد که در سرفصل بسته ها قرار می گیرد و از آن برای مشخص نمودن کلاس معادل هدایت به جلو (FEC)39، استفاده می شود. فیلد برچسب مشابه فیلدهای VPI40وVCI41در ATM و DLCI42 درFramy Relay می باشد. هر برچسب دارای اهمیت محلی می باشد و از آن برای نگاشت ترافیک های ورودی به یک کلاس FEC خاص استفاده می شود. هر FEC نشان دهنده مجموعه ای از بسته ها می باشد که از یک مسیر یکسان به سمت مقصد هدایت می شوند. این احتمال وجود دارد که بسته های متعلق به یک کلاس FEC خاص دارای آدرس های مقصد یکسانی نباشند. به عنوان مثال در یک شبکه IP کلیه بسته هایی که بخش پیشوند آدرس IP مقصد آنها یکسان است، می توانند به یک کلاس FEC خاص تعلق داشته باشند.
در شبکه های سوئیچینگ چند لایه و MPLS، از مسیریاب های موجود در لبه ورودی به شبکه برای تعیین مقدار اولیه برچسب بسته های وردی به شبکه استفاده می شود. در شکل 1-7، مثالی از نحوه تخصیص برچسب بسته های وردی براساس آدرس مقصد آنها، آورده شده است.
همانطور که قبلا نیز اشاره گردید، در شبکه های سوئیچینگ چند لایه مسیر موجود بین مبدا و مقصد با نام LSP شناخته می شود. درهر LSP، اولین و آخرین سوئیچ برچسبی، به ترتیب با نامهای سوئیچ برچسبی ورودی و سوئیچ برچسبی خروجی شناخته می شوند. سوئیچ های برچسبی موجود در درون شبکه، بدون توجه به محتویات سرفصل بسته ها و فقط براساس مقدار برچسب هر بسته و با کمک الگوریتم جابجایی برچسب، اقدام به هدایت بسته ها به سمت مقصد می نمایند.
الگوریتم جابجایی برچسب نسبت به مسیر یابی پرش به پرش لایه شبکه، دارای مزایای زیر می باشد:
1- سوئیچ های برچسبی در تخصیص بسته های ورودی به FEC ها، دارای انعطاف پذیری
شکل 1-7- مثالی از نحوه تخصیص برچسب
بالایی می باشند.
2- امکان تخصیص LSP مطابق با نیازهای لایه کاربرد وجود دارد. مثلا می توان LSP را طوری تعیین کرد که تعداد پرش ها تا مقصد و یا میزان پهنای باند مورد استفاده مینیمم گردد.
3- مهمترین مزیت الگوریتم جابجایی برچسب، تخصیص ترافیک های مختلف به FEC و نگاشت FEC به LSP مناسب و مطابق با نیازهای کاربران، می باشد .
با کمک نرم افزارهای مسیریابی IP، سوئیچ های چند لایه قادر به تبادل اطلاعات جداول مسیریابی بین یکدیگر می باشند. با استفاده از مکانیسم نگاشت برچسب کلیه مسیرهای لایه سوم به برچسب مناسب (مثل VPI/VCI در ATM) نگاشت یافته و اطلاعات بدست آمده فوق، بین تمام سوئیچ های موجود در مسیر LSP مبادله می شود. در سوئیچ های چند لایه، پروتکل مسیریابی در تمام سوئیچ های داخل شبکه اجرا می گردد در حالیکه در مدل Overaly ، این عمل فقط در مسیریاب های موجود در لبه شبکه انجام می شود. بنابراین در سوئیچینگ چند لایه نسبت به مدل Overlay تعداد کانال های مورد نیاز برای اتصال مسیریاب های لبه شبکه به یکدیگر به شدت کاهش می یابد و همچنین پروتکل مسیریابی ساده تر می گردد.
به طور کلی دو روش مختلف برای تخصیص و توزیع برچسب ها در سوئیچینگ چند لایه وجود دارد. در روش اول که راندن داده ای43 نام دارد، با ورود داده های ترافیکی کاربران، عملیات نگاشت برچسب انجام می گردد. مزیت این روش در آن است که تنها در صورتیکه جریان ترافیکی کاربران برقرار شود، عملیات نگاشت برچسب انجام می شود. اما این روش دارای معایب عمده زیر می باشد:
1- سوئیچ های شبکه باید قادر به تشخیص و جداسازی جریان های ترافیکی مختلف کاربران باشند.
2- تعداد ترافیک های کنترلی برای توزیع برچسب ها به طور مستقیم به تعداد جریان های ترافیکی موجود بستگی دارد که این امر باعث نیاز به حجم حافظه بالا در سوئیچ های شبکه می گردد .
3- این روش قابلیت مقیاس پذیری بالا ندارد.
در روش دوم که راندن کنترلی44 نام دارد، با ورود اطلاعات کنترلی خاص، عملیات نگاشت برچسب انجام می شود. این روش نسبت به روش قبل دارای مزایای عمده زیر می باشد:
1- قبل از ورود داده های ترافیکی کاربران ، عملیات تخصیص و توزیع برچسب ها صورت گرفته است. این مطلب به این معنی است که اگر در جدول مسیریابی IP، مسیری موجود باشد، قبلاً به آن مسیر برچسب تخصیص یافته است و بنابراین ترافیک های ورودی به سوئیچ، سریعاً هدایت می شوند.
2- در این روش تعداد LSP های لازم به تعداد مسیرهای موجود در جدول مسیریابیIP می باشد نه به تعداد جریان های ترافیکی موجود در شبکه. بنابراین در مقایسه با روش قبلی، این روش دارای قابلیت مقیاس پذیری بالاتری می باشد.
3- در حالت پایدار، میزان بالاسری لازم برای تخصیص و توزیع برچسب ها نسبت به روش راندن داده ای کمتر می باشد.
1-3-4- MPLS
به جرات می توان گفت فنآوری MPLS که توسط گروه مطالعاتی IETF ارائه و توسعه یافته است، آخرین تحول در سوئیچینگ چند لایه می باشد. در MPLS که از مدل راندن کنترلی برای تخصیص و توزیع برچشب استفاده می نماید، مسیرهای ارسال اطلاعات (LSP) ذاتا یک طرفه می باشد و برای ارسال ترافیک های دو طرفه باید دو LSP مختلف بین مبدا و مقصد ایجاد گردد.
MPLS از مسیریابی استادندارد IP و همچنین از الگوریتم جابجایی برچسب، برای هدایت بسته ها استفاده می نماید. یکی از ویژگی های بارز MPLS آن است که متکی به پروتکل مشخصی در لایه پیوند داده نمی باشد بلکه بر روی هر فنآوری لایه دومی قابل نصب می باشد.
چنانچه پروتکل لایه دوم دارای فیلد برچسب باشد (مانند فیلدهای VPI/VCI و DLCI در ATM و Frame Relay) از همان فیلد برای تخصیص فیلد برچسب MPLS استفاده می شود و در غیراینصورت از قسمتی از ناحیه سرفصل بسته های MPLS که بین سرفصل های لایه دوم و لایه IP قرار دارد به عنوان فیلد برچسب استفاده می شود که به آن سرفصل Shim می گویند. در شکل 1-8، نحوه کد گذاری سرفصل MPLS نشان داده شده است.
شکل 1-8- ساختار سرفصل بسته های MPLS
همانطور که در شکل 1-8 دیده می شود، در سرفصل MPLS فیلدهای زیر موجود است:
1- فیلد بر چسب به طول 20 بیت که حاوی مقدار واقعی بر چسب MPLS می باشد.
2- فیلد سه بیتی کلاس سرویس، CoS45 که به کمک آن می توان نحوه صف بندی و حذف بسته ها در هنگام عبور از سوئیچ های شبکه را مشخص نمود.
3- فیلد یک بیتی S که نشان دهنده پایان ناحیه پشته برچسب46 می باشد. چنانچه این بیت یک باشد به معنی آن است که برچسب جاری، آخرین برچسب ناحیه پشته برچسب می باشد. در مورد پشته برچسب در فصل بعد توضیحات بیشتری خواهیم داد.
4- فیلد هشت بیتی زمان زندگی، ( TTL)47 که مطابق با فیلد TTL بسته های IP عمل می نماید.
طراحان MPLS، اهداف زیر را در طراحی MPLS مدنظر داشته اند:
1- MPLS باید قادر به پشتیبانی هر نوع فنآوری لایه دوم باشد و فقط منحصر به ATM و Frame Realy نباشد.
2- MPLS باید با پروتکل های مختلف مسیریابی سازگار باشد.
3- در MPLS باید قابلیت مجتمع سازی ترافیک پشتیبانی شود. در اینصورت امکان ارسال ترافیک های متنوع کاربران از طریق یک مسیر واحد فراهم می آید.
4- MPLS باید قابلیت مسیریابی چند مسیره48 را داشته باشد.
5- سوئیچ های MPLS باید قابلیت برقراری ارتباط و تبادل اطلاعات با سایر سوئیچ های غیر MPLS را داشته باشند.
6- MPLS باید با مدل سرویس های مجتمع IETF شامل RSVP سازگار باشد.
7- MPLS باید قابلیت مقیاس پذیری داشته باشد.
8- MPLS باید امکانات عملیاتی، مدیریتی و نگهداری که در حال حاضر در شبکه های IP وجود دارد را پشتیبانی نماید.
در فصل بعد به توصیف دقیقتر فنآوری MPLS می پردازیم .
فصل دوم
فنآوریMPLS
2-1- مقدمه
همانطور که در فصل قبل اشاره شد، در شبکه های بدون اتصال، هنگامی که بسته های ارسالی از مسیریاب های درون شبکه به سمت مقصد عبور می نمایند، هر مسیریاب براساس اطلاعات موجود در سرفصل بسته ها و با کمک الگوریتم مسیریابی لایه شبکه، بسته ورودی را پردازش نموده و پرش بعدی یا به عبارتی مسیریاب بعدی را که بسته باید به آن ارسال شود، تعیین می نماید. البته اطلاعات موجود در سرفصل بسته ها به مراتب از آنچه که فقط برای مسیریابی لازم است، بیشتر می باشد.
می توان عملیات مسیریابی و تعیین پرش بعدی بسته ها را ترکیبی از دو عملیات مختلف تصور نمود. عملیات اول، دسته بندی بسته های ورودی به یکسری کلاس های معادل هدایت به جلو (FEC) می باشد. دومین عملیات، نگاشت هر FEC به یک پرش بعدی است. طبیعی است که تمامی بسته هایی که به یک FEC یکسان نگاشت می یابند، از یک مسیر واحد عبور کرده تا به مقصد برسند. در الگوریتم های مسیریابی متداول IP، چنانچه دو بسته دارای پیشوند آدرس مقصد یکسان باشند، در این صورت از یک مسیر برای رسیدن به مقصد عبور می نمایند.
در شبکه های MLPS، با کمک مسیریاب های برچسبی موجود در لبه شبکه LER))، بسته های ورودی به یک کلاس FEC خاص نگاشت می یابند و سپس هر FEC به یک مقدار عددی ثابت که آن را برچسب می نامیم، نگاشت می یابد. بعد از اینکه بسته های ورودی به شبکه، توسط LER برچسب زده شدند، بسته های برچسب زده شده وارد شبکه می شوند. مسیریاب های موجود در درون شبکه MLPS که به LSR مشهور می باشند، هیچگونه پردازشی بر روی اطلاعات موجود در سرفصل لایه سوم بسته ها نمی نمایند بلکه فقط با توجه به مقدار برچسب هر بسته و با کمک جدول هدایت به جلو اقدام به تعیین پرش بعدی بسته می نمایند. با توجه به این مطلب، در مقایسه با مسیریابی در سطح لایه شبکه که در شبکه های معمولی استفاده می شود، MLPS دارای مزایای زیر می باشد:
1- می توان با استفاده از سوئیچ هایی که فقط براساس مقدار یک فیلد خاص، عملیات سوئیچینگ را انجام می دهند (مانند سوئیچ های ATM) عملیات ارسال و هدایت بسته ها را در MPLS، انجام داد.
2- از آنجاییکه هر بسته ورودی به شبکه MPLS، به یک کلاس FEC خاص نگاشت می یابد، بنابراین مسیریاب های موجود در لبه شبکه می توانند از هر گونه اطلاعات موجود در مورد بسته های ورودی برای تعیین و تخصیص کلاس FEC یکسان استفاده نمایند.
3- چنانچه یک بسته ورودی واحد را از طریق دو مسیریاب متفاوت وارد شبکه MPLS نماییم، در اینصورت برچسبی را که دو مسیریاب به بسته ورودی تخصیص می دهند متفاوت با یکدیگر خواهد بود که این مطلب در پروتکل های متداول مسیریابی لایه سوم مشاهده نمی شود .
4- هر قدر عملیات تخصیص و نگاشت کلاس های FEC به بسته های ورودی پیچیده باشد، هیچگونه تاثیری بر روی عملکرد مسیریاب های درون شبکه نمی گذارد.
5- مسیریاب های متداول موجود، با دریافت هر بسته ورودی به پردازش اطلاعات موجود در سرفصل آن می پردازند. البته این کار فقط برای تعیین پرش بعدی نمی باشد بلکه از آن برای استخراج سایر اطلاعات مورد نیاز نظیر اولویت و کلاس سرویس بسته استفاده می شود. همانطور که قبلا نیز اشاره شد، در MPLS میتوان اطلاعات اولویت و کلاس سرویس بسته ها را در برچسب بسته قرار داد .
2-2- اساس کار MPLS
همانطور که گفتیم، در MPLS برچسب الحاقی به هر بسته نشان دهنده کلاس FEC است که بسته به آن تعلق دارد ]3[. فرض کنید که R1 و R2 دو LSR داخلی شبکه باشند. بعد از مذاکره و توافق اولیه بین R1 و R2، فرض کنید که R1 تمام بسته هایی را که به کلاس FEC F نگاشت یافته است را با برچسب L به R2 ارسال می دارد. در اینصورت برچسب L برای مسیریاب های R1 و R2 به ترتیب برچسب خروجی49 و برجسب ورودی50 نامیده می شود. البته توجه باید نمود که برچسب L ارزش محلی دارد و فقط نشان دهنده بسته های متعلق به کلاس FEC F ارسالی بین R1 و R2 می باشد. به عبارت دیگر اگر در جایی دیگر از شبکه از برچسب L استفاده شود، دیگر الزاما بسته های ارسالی به کلاس FEC F تعلق ندارند.
با توجه به اینکه ترافیک کاربر از R1 به سمت R2 ارسال می شود، اصطلاحاً به مسیریاب R1 و R2 به ترتیب مسیریاب هایUpstreamو Downstream گفته می شود. وظیفه عملیات تخصیص برچسب در MPLS به عهده مسیریاب Downstream می باشد. به عبارت دیگر میتوان گفت که در MPLS عملیات تخصیص برچسب در جهت معکوس و از سمت مسیریاب Downstream به سمت مسیریاب Upstream انجام می شود. با استفاده از پروتکل LDP51 هر LSR شبکه اقدام به ارسال اطلاعات مربوط به برچسب های تخصیص یافته به کلاس های مختلف FEC به سایر LSR های شبکه می نماید. اصطلاحاً به دو LSR که اطلاعات تخصیص برچسب را به یکدیگر مبادله می نمایند، همتای توزیع برچسب گفته می شود. تاکنون استانداردهای متعددی برای انجام عملیات توزیع برچسب در MPLS ارائه شده است که از بین آنها می توان به استانداردهای RSVP ، LDP و CR-LDP52 اشاره نمود.
چنانچه یک LSR شبکه از LSR مجاور خود درخواست ارسال لیستی از برچسب های تخصیص یافته به یک کلاس FEC خاص را بنماید، اصطلاحاً گفته می شود که عملیات توزیع برچسب درخواستی Downstream انجام می شود. البته در MLPS امکان ارسال لیست فوق بدون دریافت درخواست LSR مجاور نیز وجود دارد که به این نوع عملیات توزیع برچسب غیردرخواستی Downstream گفته می شود. هر شبکه MPLS معمولاً یک و یا هر دو روش توزیع بر چسب فوق را پشتیبانی می نماید.
2-2-1- پشته برچسب
در MPLS، برخی از بسته ها دارای چندین برچسب می باشند که به صورت یک پشته LIFO53 مدیریت می شوند. در این حالت سوئیچ های میانی شبکه فقط بالاترین برچسب موجود در پشته را بررسی و مورد توجه قرار می دهند و به مقادیر برچسب های قبلی و بعدی توجهی ندارند. چنانچه پشته برچسب ورودی خالی باشد (اصطلاحاً گفته می شود که عمق پشته صفر است)، در این صورت بسته دارای برچسب نمی باشد. در یک پشته برچسب به عمق m، پایین ترین و بالاترین برچسب به ترتیب برچسب سطح 1 و سطح m نامیده می شوند.
هنگام ورود یک بسته به سوئیچ های LSR، واحدی به نامNHLFE 54 وظیفه هدایت بسته ورودی به سمت سوئیچ بعدی را به عهده دارد. در NHLFE اطلاعات زیر موجود است:
1- پرش بعدی بسته.
2- عملیاتی که باید بر پشته برچسب انجام شود. این عملیات یکی از موارد زیر است:
الف- جایگزینی بالاترین برچسب پشته با یک برچسب جدید.
ب- انجام عملیات استخراج55، بر روی پشته برچسب.
ج- جایگزینی بالاترین برچسب پشته با یک برچسب جدید و سپس انجام عملیات قرادادن56 یک یا چند برچسب جدید در پشته برچسب.
3- نحوه عملیات محصورسازی57 لایه دوم که در هنگام ارسال بسته استفاده می شود.
4- نحوه کد کردن پشته برچسب در هنگام ارسال بسته.
5- هر گونه اطلاعات لازم دیگر که برای مرتب سازی و هدایت بسته ها لازم است.
چنانچه یک LSR شبکه متوجه شود که پرش بعدی بسته ورودی، خودش می باشد، در اینصورت عملیات استخراج را بر روی پشته بسته جاری انجام می دهد.
هر برچسب بسته ورودی، بوسیله عملیات نگاشت برچسب ورودی (ILM )58 به مجموعه ای از NHLFE ها نگاشت می یابد و همچنین توسط عملیات مشابهی به نام FTN59 هر FEC ورودی به مجموعه ای از NHLFE ها نگاشت می یابد. هنگامی که بسته ورودی فاقد برچسب باشد، عملیات FTN بر روی آن اعمال شده و توسط این عملیات به بسته ورودی برچسب خاصی تخصیص داده می شود و بوسیله آن بسته ورودی هدایت می گردد.
2-2-2- جابجایی برچسب60
هر LSR شبکه، از روال های جابجایی برچسب در MPLS، برای هدایت بسته ها به سمت مقصد نهایی استفاده می نماید. بدین منظور، ابتدا بالاترین برچسب موجود در پشته برچسب بسته مورد پردازش قرار می گیرد. توسط عملیات ILM برچسب فوق به NHLFE نگاشت می یابد. با کمک اطلاعات موجود در NHLFE، پرش بعدی بسته و همچنین نوع عملیاتی که باید بر روی پشته برچسب انجام شود، تعیین می شود .
چنانچه بسته ورودی به LSR فاقد برچسب باشد، در اینصورت با پردازش بر روی فیلدهای موجود در سر فصل لایه شبکه، کلاس FEC بسته استخراج می شود و سپس با استفاده از FTN کلاس FEC بسته ورودی به یک NHLFE خاص نگاشت می یابد. با استخراج NHLFE میتوان پرش بعدی بسته و همچنین نوع عملیات اعمالی بر روی پشته بسته را تعیین نمود.
2-2-3- مسیر سوئیچ برچسب (LSP)
مطابق با شکل 2-1، یک LSP سطح m برای بسته ورودی P، مجموعه ای از مسیریاب های <R1, R2, …Rn> می باشد که دارای خواص زیر است:
1- مسیریاب R1 که مسیریاب ورودی است، در بسته ورودی P، یک پشته برچسب قرار می دهد.
2- هنگامی که بسته ورودی P توسط مسیریاب های Ri، 1<i<n داخل مسیر هدایت می شود، عمق پشته برچسب بسته ورودی همچنان m می باشد. به عبارت دیگر در هیچ زمانی در طی ارسال بسته p از مسیریاب R1 به سمت مسیریاب Rn-1 ، عمق پشته برچسب بسته p از m کمتر نمی شود.
3- تمام مسیریاب هایRi، 1<i<n موجود در مسیر، فقط از بالاترین برچسب موجود در پشته (برچسب سطح m) برای تعیین برچسب بعدی بسته و ارسال آن به مسیریاب بعدی Ri+1 استفاده می کنند.
4- آخرین مسیریاب موجود در مسیر (Rn) که مسیریاب خروجی است، برای ارسال بسته به مقصد نهایی، از سوئیچینگ برچسب سطح m-k (k>0) و یا از سایر روش های متداول هدایت بسته (روش های غیر MPLS) استفاده می نماید .
شکل 2-1- مثالی از LSP در یک شبکه MPLS
سوالی که ممکن است در این قسمت با آن مواجه شویم این است که چنانچه یک LSR شبکه MPLS، بسته ای را دریافت نمود که دارای برچسب نامعتبر باشد طوری که امکان تخصیص برچسب جدید و تعیین LSR بعدی به آن نباشد، چه عملیاتی را باید انجام دهد؟ یکی از راه حل های رفع مشکل فوق این است که بدون توجه به مقدار برچسب بسته ورودی و تنها با استفاده از اطلاعات موجود در سرفصل لایه سوم و براساس الگوریتم های مسیریابی لایه سوم بسته ورودی را مسیریابی نمود که البته این عمل ممکن است باعث ایجاد حلقه در شبکه گردد. راه حل مطمئن تر این مشکل آن است که بسته فوق از بین برود مگر اینکه مطمئن شویم که مسیریابی بسته براساس سرفصل لایه سوم، تولید هیچگونه مشکلی نمی نماید .
2-2-4- کنترل LSP
همانطور که قبلاً اشاره گردید، برای تعیین کلاس های FEC بسته های ورودی، میتوان از پیشوند آدرس های IP که توسط الگوریتم های مسیریابی دینامیک بین مسیریاب ها توزیع می شود، استفاده نمود. برای این نوع کلاس های FEC، به دو صورت می توان ISP را تعیین نمود که عبارتند از:
1- کنترل مستقل LSP
2- کنترل ترتیبی LSP
در روش اول که کنترل مستقل LSP نام دارد، هر LSR شبکه مستقل از سایر LSR ها، با توجه به کلاس FEC تخصیص یافته به بسته ورودی، بر چسب مناسب را به کلاس FEC تخصیص می دهد و سپس برچسب تخصیص یافته را به LSR همتای خود ارسال می دارد. طبیعی است که اینگونه عملکرد در تعیین مسیر، مشابه مسیریابی IP می باشد که هر مسیریاب شبکه به طور مستقل اقدام به تعیین پرش بعدی بسته ورودی می نماید.
در روش کنترل ترتیبی LSP هر LSR شبکه، در دو حالت زیر عملیات تخصیص برچسب به بسته ورودی را انجام می دهد:
1- چنانچه LSR، خود LSR خروجی برای کلاس FEC مشخص شده باشد.
2- چنانچه قبلاً اطلاعات مربوط به تخصیص برچسب به FEC را از LSR پرش بعدی بسته های کلاس FEC دریافت کرده باشد.
در مواردی که ترافیک های متعلق به یک کلاس FEC خاص باید از یک مسیر مشخص با ویژگی های معین عبور نمایند، از روش کنترل ترتیبی LSP استفاده می شود. در روش کنترل مستقل LSP، این احتمال وجود دارد که قبل از برقراری LSP، ترافیک های متعلق به کلاس FEC وارد شبکه شده و از یک مسیری که ممکن است ویژگی های ترافیکی مطلوب را نداشته باشد، عبور کنند.
2-2-5- مجتمع سازی61 ترافیک
یکی از روش های تقسیم بندی ترافیک به کلاس های مختلف FEC، ایجاد FEC جداگانه برای هر یک از پیشوندهای آدرس IP موجود در جدول مسیریابی می باشد. بعد از تعیین کلاس های FEC، تمام ترافیک های وابسته به یک کلاس FEC خاص از یک مسیر عبور نموده تا به مقصد نهایی برسند.
در شبکه های MPLS این امکان وجود دارد که گروهی از کلاس های FEC با یکدیگر مجتمع شده و تشکیل یک گروه واحد بدهند. در این حالت به تمام کلاس های FEC موجود در گروه، یک برچسب یکسان تخصیص داده می شود. به عملیات تخصیص برچسب به گروهی از FEC ها که خود یک کلاس FEC جدید می باشند، متجمع سازی ترافیک گفته می شود. طبیعی است که عملیات مجتمع سازی ترافیک، باعث کاهش تعداد برچسب های مورد نیاز و همچنین کاهش میزان روال های کنترلی توزیع برچسب می گردد.
2-2-6- انتخاب مسیر
در شبکه های MPLS، به نحوه انتخاب LSP برای یک کلاس FEC خاص، انتخاب مسیر گفته می شود. در MPLS دو روش مختلف برای این کار موجود است که عبارتند از:
1- مسیر یابی پرش به پرش 62
2- مسیر یابی صریح3
در مسیریابی پرش به پرش، هر LSR شبکه مستقل از سایر LSR ها، اقدام به تعیین پرش بعدی بسته های متعلق به کلاس FEC می نماید. امروزه در شبکه های IP، از این روش برای انجام عملیات مسیریابی استفاده می شود .
در مسیریابی صریح، همه LSR های شبکه در انتخاب مسیر و پرش های بعدی، دخالت ندارند بلکه فقط یک LSR خاص که معمولا LSP ورودی یا خروجی است، اقدام به تعیین بخشی یا تمام مسیر LSP می نماید. در کاربردهای نظارتی63 و همچنین مهندسی ترافیک، از روش مسیریابی صریح استفاده می شود. در شبکه های MPLS، در زمان تخصیص برچسب، مسیر صریح مشخص می شود .
2-2-7- زمان زندگی (TTL)
در مسیریابی متداول IP، هر بسته ورودی دارای فیلدی به نام TTL است. با هر پرش بسته یکی از محتویات این فیلد کم می شود و در صورتیکه مقدار فیلد فوق صفر شود، بسته IP از بین می رود. بدین ترتیب امکان محافظت شبکه در برابر حلقه های مسیریابی که از پیکره بندی غلط شبکه و یا از سرعت کم همگرایی الگوریتم مسیریابی شبکه ناشی می شود، وجود دارد. در شبکه های MPLS، برای جلوگیری از حلقه های مسیریابی و همچنین برای محدود سازی دامنه بسته های ارسالی، از فیلد TTL در بسته های ارسالی استفاده می شود .
چنانچه از سرفصل Shim (سرفصلی که مستقل از سرفصل های لایه دوم و لایه سوم بوده و ما بین این دو فصل قرار می گیرد) در بسته های MPLS استفاده شود، در این صورت در داخل سرفصل فوق، فیلدی به نام TTL وجود دارد که مقدار اولیه آن همان مقدار فیلد TTL سرفصل بسته های IP است. با عبور بسته از هر LSR شبکه، از مقدار فیلد TTL یکی کم شده و هنگامی که بسته به LSR خروجی رسید، مقدار فیلد TTL موجود در سر فصل MPLS به فیلد TTL بسته های IP کپی می شود.
چنانچه از بخشی از سرفصل بسته های لایه دوم (مثلا فیلد VPI/VCI در سلول های ATM) به عنوان برچسب MPLS استفاده گردد. در اینصورت در هر پرش امکان کاهش یک واحدی TTL وجود ندارد. در این صورت به مسیری که دارای ویژگی فوق باشد، مسیر LSP فاقد TTL گفته می شود. از آنجاییکه در مسیرهای فاقد TTL نمیتوان در هر پرش از محتوای فیلد TTL یک واحد کم نمود، باید به نحو دیگری تعداد پرش های عبوری بسته در ناحیه های فاقد TTL مشخص شود. یکی از روش های انجام این کار این است که طول ناحیه فاقد TTL به اطلاع LSR ورودی رسانده شود. سپس بسته هایی که وارد LSR ورودی شده و می خواهند از مسیر فاقد TTL عبور نمایند، یکجا فیلد TTL آنها به اندازه طول ناحیه فاقد TTL کاهش می یابد. یکی از نکات مهمی که در مورد مسیرهای فاقد TTL باید مد نظر داشت آن است که سخت افزار لایه دوم این نواحی باید به مکانیسمی برای تشخیص حلقه های مسیریابی و رفع آنها مجهز باشد.
2-2-8- استفاده از سوئیچ های ATM به عنوان LSR
همانطور که تا کنون توضیح داده شده است، عملیات جایابی برچسب در MPLS تا حد زیادی مشابه عملیات فوق در سوئیچ های ATM می باشد. با ورود هر سلول به سوئیچ های ATM، ابتدا شماره پورت ورودی و مقدار فیلد VPI/VCI آن بررسی می شود و سپس با کمک جدول خاصی، عملیات تخصیص پورت خروجی و VPI/VCI جدید انجام می شود. بنابراین چنانچه بتوان از ناحیه VPI/VCI سلول های ATM به عنوان برچسب MPLS استفاده کرد، در این صورت با افزودن نرم افزارهای مناسب به سوئیچ ATM می توان آنها را به LSR های شبکه MPLS تبدیل نمود.
2-2-9- ادغام برچسب 64
فرض کنید که یک LSR شبکه MPLS چندین برچسب ورودی مختلف را به یک کلاس FEC خاص تخصیص داده است. طبیعی است که تمام بسته های متعلق به یک کلاس FEC یکسان باید دارای برچسب خروجی یکسان باشند، بنابراین باید تمام برچسب های متعلق به یک کلاس FEC خاص، به یک برچسب واحد تقلیل یابند. به این عملیات ادغام برچسب گفته می شود ]4[.
به عبارت دیگر می توان گفت که چنانچه یک LSR شبکه، از پورت های مختلف خود، بسته هایی را با برچسب های مختلف ولی متعلق به یک کلاس FEC یکسان دریافت دارد، در این صورت با کمک عملیات ادغام برچسب همه بسته های ورودی را با یک برچسب یکسان و از طریق یک پورت خروجی مشخص از خود عبور می دهد.
چنانچه LSR شبکه قادر به عملیات ادغام برچسب نباشد، در این صورت چنانچه دو بسته ورودی متعلق به یک کلاس FEC یکسان، با برچسب های متفاوت و از طریق پورت های مختلف وارد سوئیچ LSR گردد، در این صورت بسته های ورودی فوق با برچسب های متفاوت از یکدیگر از LSR خارج می شوند. بنابراین می توان نتیجه گرفت که چنانچه LSR های شبکه قابلیت ادغام برچسب را داشته باشند، در این صورت به هر کلاس FEC تنها یک برچسب خروجی نسبت داده می شود در حالیکه چنانچه LSR قابلیت ادغام برچسب را نداشته باشد، در اینصورت تعداد برچسب های تخصیص یافته به یک کلاس FEC خاص به مراتب بیشتر از یکی می باشد. در MPLS امکان استفاده از LSR باقابلیت ادغام برچسب و یا بدون این قابلیت وجود دارد.
2-2-10- تونل65
فرض کنید که R1 و R2 دو مسیریاب شبکه MPLS باشند که الزاماً در مسیر پرش به پرش بسته قرار ندارن . چنانچه مسیریاب R1 بسته ای را دریافت دارد و صریحاً عملیاتی انجام دهد که منجر به تحویل بسته فوق به R2 گردد، در این صورت گفته می شود که بین R1 و R2 تونل ایجاد شده است. به بسته های ارسالی از این مسیر، بسته های تونلی گفته می شود. در شبکه های MPLS، می توان تونل های LSP نیز پیاده سازی نمود. چنانچه یک مسیرLSP از <R1,R2,…Rn> تشکیل شده باشد که R1 نقطه ارسالی به تونل و Rn نقطه پایانی آن باشد، اصطلاحاً به این مسیر یک تونل LSP گفته می شود .
2-3- پروتکل های توزیع برچسب در MPLS
همانطور که قبلاً اشاره گردید، در هر یک از LSR های موجود در مسیر LSP جدولی به نام جدول هدایت به جلو که شامل زوج های مرتب } شماره پورت ورودی ، برچسب ورودی { به } شماره پورت خروجی ، برچسب خروجی { است، وجود دارد. عملیات ایجاد جداول فوق، برقراری LSP با توزیع برچسب نامیده می شود. براساس سیاست نظارتی شبکه و همچنین نیازهای سخت افزاری شبکه MPLS، می توان از روش های مختلفی جهت توزیع برچسب استفاده نمود.
چنانچه مسیریابی مورد استفاده در شبکه از نوع پرش به پرش باشد، برای انجام عملیات تخصیص و توزیع برچسیب از پروتکل هایی نظیر BGP و LDP استفاده می شود، اما اگر از مسیریابی صریح استفاده شود، پروتکل های CR-LDP و RSVP برای انجام عملیات تخصیص و توزیع برچسب به کار گرفته می شوند.
فصل سوم
ساختار سوئیچ های شبکه
3-1- مقدمه
سوئیچ های پرسرعت گلوگاه شبکه های سرعت بالا می باشند. در حالیکه روشهای انتقال از استفاده از سیمهای مسی به استفاده از فیبرهای نوری تکامل پیدا کرده است که قادرند پهنای باند بسیار زیادی را برای انتقال اطلاعات فراهم آورند، مساله سوئیچنگ در شبکه ها همچنان به عنوان یک مشکل باقی مانده است. در واقع فنآوری سوئیچینگ از نرخ پهنای باند عقب مانده است و در حالیکه سرعت انتقال برروی یک فیبر نوری تاچندین ترابیت در ثاینه می رسد هنوز در قسمت سوئئچینگ تلاش برای دستیابی به سرعت های چنیدین گیگابیت بر ثانیه ادامه دارد.
با معرفی MPLS این امکان بوجود آمده است تا با حذف قسمتهای آدرس یابی66 در IP و جایگزینی آنها با قسمتهای تبادل برچسب که براحتی قابل پیاده سازی در سخت افزار و دارای الگوریتم های پیاده سازی ساده وسریع می باشد و همچنین امکان استفاده از تکنیک های سوئچینگ سلولی67، طراحی و ساخت سوئیچ های با سرعت بیشتر و در عین حال تضمین کننده کیفیت سرویس عملی شود.
در این فصل به معرفی قسمتهای مختلف سوئیچ های شبکه می پردازیم.
3-2- ساختار کلی سوئیچ های شبکه
بطور کلی یک سوئیچ دارای دو قسمت اصلی می باشد:
1- قسمت کنترل 68
2- قسمت هدایت به جلو
قسمت کنترل کارهای مسیریابی، تعیین جداول مربوط به تبادل برچسب، مهندسی ترافیک و انجام مذاکرات مربوط به تضمین کیفیت سرویس را بر عهده دارد و می تواند به سه صورت متفاوت وجود داشته باشد:
1- کارت کنترلی سوئیچ
2- کارت مجزا در داخل محفظه سوئیچ
3- سخت افزار مجزا
قسمت کنترل یک سوئیچ به هر کدام از سه صورت فوق که باشد با استفاده از پروتکلهای مسیریابی و توزیع برچسب مانند OSPF,RSVP,CR-LDP,LDP و … اطلاعات کنترلی را استخراج کرده و بسته های کنترلی را از طریق خط های سیگنالینگ (که در هر پورت مشخص می باشد) برای قسمتهای کنترل سوئیچ های دیگر شبکه ارسال می دارد. هنگامی که یک بسته کنترلی وارد سوئیچ می شود برخلاف دیگر بسته های اطلاعاتی که باید از فابریک سوئیچ عبور کنند، تحویل قسمت کنترلی می شود تا با سر هم کردن این بسته ها، اطلاعات کنترلی استخراج شود.
قسمت هدایت به جلو وظیفه هدایت بسته های اطلاعاتی در داخل شبکه را برعهده دارد و دارای دو قسمت اصلی می باشد:
1- کارت خط69
2- فابریک سوئیچ
در وردی سوئیچ ، کارت خط بسته های اطلاعاتی را از خط انتقال دریافت می کند و در اینجا عملیات پردازش لایه فیزیکی و سپس لایه دو روی بسته ها و شکستن آنها به بسته های لایه سه انجام می گیرد. سپس عملیات مربوطه به بررسی بسته ها، چک کردن حوزه TTL، تبادل برچسب، کلاس بندی بسته ها و شکستن بسته ها به سلولهای با اندازه ثابت برای انجام عملیات سوئیچینگ در فابریک سوئیچ، انجام می گیرد.
در خروجی سوئیچ ، کارت خط سلولها را از فابر یک سوئیچ تحویل می گیرد و پس از سرهم کردن و تبدیل آنها به بسته های لایه سوم، آنها را با توجه به کلاس سرویشان روی زمانبند خروجی برای ارسال روی مدولاتورهای لایه دو سپس لایه فیزیکی می فرستد.
فابریک سوئیچ نیز قسمتی است که سلولها را روی پورت های ورودی خود دریافت می کند و با توجه به الگوریتم زمانبندیش آنها را روی پورت خروجی مربوطه قرار می دهد.
ساختار قسمت هدایت به جلوی سوئیچ تغییراتی را با گذشت زمان به خود دیده است ]5[. عواملی مانند هزینه ساخت، تعداد پورتها، کارآیی مورد نیاز و تکنولوژی موجود همواره تعیین کننده نوع ساختار سوئیچ بوده اند. ولی همواره سه مسیر تکاملی مشخص در ساختار سوئیچ ها به چشم می خورد. اول پیاده سازی هر چه بیشتر قسمتهای مختلف در سخت افزار با گذشت زمان می باشد. این مساله با توجه به نیاز به دستیابی به سرعت بیشتر و پیشرفتهای چشمگیر در تکنولوژی CMOS70 و قابلیت پیاده سازی قسمتهای مختلف به صورت قطعات ASIC71 قابل توجیه می باشد. دوم تمایل به استفاده از موازی سازی72 برای دستیابی به کارآیی بیشتر می باشد و سوم آنکه با گذشت زمان همواره سعی شده است که استفاده از گذرگاههای73 مشترک کنار گذاشته شود زیرا گذرگاههایی که بین چند بخش بصورت مشترک استفاده می شوند اغلب با مشکل تراکم74 مواجه می شوند و کارآیی سیستم را کم می کنند. ساختارهای مختلف برای قسمت هدایت به جلو در شکل 3-1 نشان داده شده اند. اولین نوع ساختار که در شکل 3-1 الف نشان داده شده است شامل یک گذرگاه مرکزی مشترک، یک CPU75 مرکزی، حافظه و کارتهای خط اطراف آن می باشد.
شکل 3-1- ساختار های مختلف برای قسمت هدایت به جلوی سوئیچ
بسته ها از طریق کارتهای خط وارد سیستم می شوند و از طریق گذرگاه مرکزی به CPU می رسند که در آنجا تصمیم گیری در مورد مسیر خروجی بسته انجام می گیرد و بسته ها دوباره از طریق گذرگاه مرکزی به کارت خروجی فرستاده می شود.
مشکل اصلی ساختار 3-1- الف این است که CPU باید هر بسته را پردازش کند و این گذردهی سیستم را محدود می کند. این محدودیت باعث شد تا ساختار مشکل 3-1- ب پیشنهاد شود که در آن چندین CPU به طور موازی بسته ها را پردازش می کنند. در این ساختار بسته های ورودی همانند قبل به یک CPU فرستاده می شوند اما این بار یک قدرت انتخاب وجود دارد و آن این است که مثلا یک بسته می تواند به اولین CPU موجود فرستاده شود و یا اینکه بسته های با آدرس مقصد مشترک به یک CPU فرستاده می شوند. بدین ترتیب می توان با انجام پردازش ها بصورت موازی گذردهی سیستم را افزایش داد و همچنین از CPU های با هزینه کمتر استفاده نمود.
در ساختار 3-1- ج با قرار دادن یک CUP مجزا در هر پورت، استفاده بیشتری از پردازش موازی صورت گرفته است. در هر CUP تصمیم گیری در مورد مسیر خروجی بسته ها بصورت محلی76 صورت می گیرد و بسته ها فورا روی پورت خروجی مربوطه قرار می گیرند. در این ساختار، از آنجا که هر بسته فقط یکبار از گذرگاه مرکزی عبور می کند، گذردهی سیستم افزایش می یابد. CPU مرکزی هم برای تهیه جداول هدایت بسته ها در هر یک از CPU ها و همچنین مدیریت سیستم لازم است.
اما دو عامل باعث محدودیت کارآیی ساختار 3-1- ج می شود. اول اینکه چون عملیات تصمیم گیری در مورد هدایت بسته ها در نرم افزار انجام می گیرد، سرعت آن محدود به سرعت CPU می باشد. بنابراین با استفاده از مدارات ASIC که آنها را موتور هدایت77 می نامیم، به جای CPU می توان سرعت تصمیم گیری را بالاتر برد. دوم اینکه بعلت استفاده از یک گذرگاه مشترک، در هر لحظه فقط یک بسته می تواند بین دو کارت خط حرکت کند. بنابراین اگر چندین بسته بتواند بطور همزمان از گذرگاه عبور کنند، کارآیی سیستم افزایش می یابد. بدین ترتیب در ساختار 3-1- د به جای CPU از موتور هدایت و به جای گذرگاه از فابریک متقاطع78 استفاده شده است. امروزه سوئیچ های پرسرعت دارای این چنین ساختاری می باشند. یعنی در داخل کارت خط قسمتی به نام پردازنده شبکه79 وجود دارد کارهای موتور هدایت، کلاس بندی بسته ها و اعمال تغییرات لازم روی آنها در این قسمت انجام می شود.
حال به بررسی دقیق تر کارت خط و فابریک سوئیچ می پردازیم.
3-3- کارت خط
وظایف کارت خط عبارتند از :
1- مدولاسیون و دمدولاسیون در لایه فیزیکی: هنگامی که بسته ها از خط انتقال که عموما فیبرنوری می باشد، دریافت می شوند، توسط دمدولاتور کارت خط به بسته های لایه دو تبدیل می شوند و برعکس هنگام ارسال، بسته های لایه دو توسط مدولاتور کارت خط به بسته های لایه فیزیکی مانند SDH تبدیل شده و ارسال می گردند.
2- پردازش های لایه دو: شکستن بسته های لایه دو مانندPPP80 یا Ethernet به بسته های لایه سوم در این قسمت انجام می گیرد . در ضمن در قسمت خروجی عکس این کار انجام می گیرد یعنی بسته های لایه سوم سرهم شده و بسته های لایه دو ایجاد می شود.
3- تجزیه و تحلیل بسته ها 81 : در این قسمت ابتدا نوع بسته مورد بررسی قرار می گیرد
(Multi cast , Unicast, MPLS, IP)، و سپس نوع سرفصل پرتکل لایه بالاتر آن
(, TCP ….,OSPF) مشخص می شود.
4- محاسبات سرفصل82: اگر بسته MPLS باشد، در این قسمت فقط عملیات بررسی مقدار TTL و تعیین مقدار جدید آن صورت می گیرد. یعنی اگر مقدار TTL صفر باشد، بسته دور اندخته می شود. در غیر این صورت از مقدار TTL آن یک واحد کم می شود. اگر بسته IP باشد باید مقدار CRC83 نیز چک شود و در خروجی هم باید مقدار CRC محاسبه و جایگزین مقدار قبلی شود. همچنین با کمک پروتکل ARP84 عملیات تطبیق آدرس لایه شبکه با لایه پایین تر صورت می گیرد.
5- کلاس بندی85: در بسته های MPLS نوع کلاس از مقدار سه بیتی CoS مشخص می شود ولی اگر بسته IP باشد، باید نوع کلاس بر اساس آدرس مقصد استخراج شود.
6- آدرس یابی: برای بسته های MPLS این کار بصورت بسیار ساده تطبیق دقیق برچسب 86 صورت می گیرد ولی در مورد بسته های IP احتیاج به روشهای آدرس یابی براساس تطبیق طولانی ترین پیشوند87 می باشد.
7- شکستن88 و سرهم کردن 89 : بسته های لایه سوم دارای طولهای متفاوتی می باشند که باید به سلولهای با طول ثابت شکسته شوند و در خروجی دوباره بصورت یک بسته در آیند. بعد از شکسنتن یک بسته، به سلولهای حاصله سرفصلی اضافه می شود که حاوی اطلاعات مربوط به پورت خروجی، پورت ورودی، کلاس و شماره سلول می باشد. در خروجی، این سرفصل برداشته می شود و سلولها به ترتیب سر هم می شوند.
8- مدیریت صف 90 : در این قسمت بسته ها براساس کلاس سرویشان در صفهای مربوطه قرار می گیرند.
9- زمانبندی: در این قسمت مشخص می شود که باید در چه زمانی و ازچه صفی یک بسته برای ارسال انتخاب شود و روی پورت خروجی برود.
در شکل 3-2 ساختار داخلی یک کارت خط و نحوه ارتباط آن با قسمتهای دیگر نشان داده شده است.
شکل 3-2- ساختار داخلی یک کارت خط و نحوه ارتباط آن با قسمتهای دیگر
3-4- فابریک سوئیچ
فابریک سوئیچ مسئول انتقال سلولها بین پورتهای مختلف می باشد ]6[. در واقع فابریک سوئیچ سلولها را از ورودی ها بر می دارد و برروی خروجی ها می گذارد. عواملی مانند پایداری در مقابل خرابی، نرخ ضایعات1، تاخیر و جیتر طراحی فابریک سوئیچ را پیچیده می کنند. در طراحی یک فابریک سوئیچ باید سعی نمود تا گذردهی را حداکثر و تاخیر و جیتر سلولها را حداقل نمود و در ضمن فابریکی طراحی شود که پیاده سازی آن آسان باشد.
فابریک سوئیچ می تواند به سه صورت کلی زیر باشد:
1- فابریک سوئیچ با واسطه مشترک
2- فابریک سوئیچ با حافظه مشترک
3- فابریک سوئیچ متقاطع
در ادامه به بررسی این سه نوع فابریک سوئیچ می پردازیم.
3-4-1- فابریک سوئیچ با واسطه مشترک
در این مدل سلولها توسط یک واسطه مشترک مانند گذرگاه یا حلقه 91یا گذرگاه دو واحدی92 انتقال می یابند. ساده ترین فابریک سوئیچ ها، گذرگاه است. در این مدل اطلاعات با استفاده از روش TDM انتقال می یابند یعنی به هر پورت یک بازه زمانی اختصاص می یابد که بطور متناوب می تواند در آن بازه زمانی اطلاعات خود را ارسال نماید. در هر پورت خروجی فیلتر های آدرس، سرفصل هر یک از سلولها را چک می کنند و اگر سلول مربوط به آن پورت خروجی باشد آنرا به بافرهای خروجی آن پورت می فرستند. شکل 3-3 یک فابر یک سوئیچ از نوع گذرگاه را نشان می دهد .
شکل 3-3- گذرگاه واسط مشترک
اگر فرض کنیم که سوئیچ دارای N پورت ورودی و N پورت خروجی باشد و سرعت هرپورت برابر S سلول در ثانیه باشد، گذرگاه مورد استفاده باید حداقل با سرعت NS سلول بر ثانیه کار کند تا بتواند گذردهی صدردرصد را تامین کند، بدون اینکه در ورودی احتیاج به قرار دادن سلولها در صف باشد.
در این مدل پورتهای خروجی بطور کاملاً مجزا از یکدیگر پیاده سازی می شوند و فیلترهای آدرس و بافرهای خروجی نیز براحتی قابل پیاده سازیند. همچنین این مدل امکان ارسال به صورت
Broadcast و Multicast را براحتی فراهم می آورد.
فیلترهای آدرس و بافرهای خروجی باید در سرعتی برابر با سرعت واسط مشترک کار کنند که ممکن است تا N برابر سریعتر از سرعت پورت باشد ولی محدودیتهای فیزیکی برای سرعت گذرگاه، فیلترهای آدرس و بافرهای خروجی وجود دارد که موارد استفاده از این نوع مدل را برای سوئیچ های با سرعت بالا و اندازه بزرگ محدود می کند.
3-4-2- فابریک سوئیچ با حافظه مشترک
نمونه ای از ساختار یک فابریک سوئیچ با حافظه مشترک در شکل 3-4 نشان داده شده است. سلولهای ورودی به ترتیب در یک حافظه با دسترسی اتفاقی93 نوشته می شوند. سرفصل سلولها به
شکل 3-4- یک فابریک سوئیچ با حافظه مشترک
یک کنترل کننده حافظه تحویل داده می شود و در آنجا تصمیم گیری می شود که سلولها باید با چه ترتیبی از حافظه خوانده شوند و روی پورت خروجی مربوطه قرار داده شوند. در این مدل در واقع از یک نوع بافر خروجی مشترک استفاده شده است، بنابراین امکان تضمین کیفیت سرویس براحتی بوجود می آید و گذردهی سیستم در زیر بار کامل صدرصد می باشد. همچنین اگر ترافیک ورودی به یک پورت زیاد شود، می توان درصد بیشتری از حافظه را در اختیار آن پورت قرار داد. بنا به این دلایل این نوع فابریک سوئیچ محبوبیت زیادی در بین طراحان سوئیچ دارد.
اما این مدل دارای معایبی نیز می باشد. از آنجا که سلولها باید در هر لحظه یکبار به حافظه نوشته شوند و از آن خوانده شوند، حافظه مشترک باید در سرعتی برابر با NS سلول بر ثانیه یعنی N بار سریعتر از سرعت پورت کار کند و چون زمان دسترسی به حافظه بطور فیزیکی محدود می باشد این افزایش سرعت N باعث اعمال محدودیت بر بکارگیری این مدل در سوئیچ های سرعت بالا و با اندازه بزرگ می شود. همچنین کنترل کننده حافظه نیز باید قادر باشد تا در سرعتی برابر با سرعت حافظه سرفصلهای سلولها را پردازش کند. این مساله هنگامی که کنترل کننده باید الگوریتم های مربوط به زمانبندی سلولهای با کلاس های متفاوت را اجرا کند، می تواند ایجاد مشکل کند. بنابراین فابریک سوئیچ های با حافظه مشترک بیشتر برای سیستم های با ظرفیت کم مناسب می باشند.
3-4-3- فابریک سوئیچ متقاطع
شکل 3-5 یک فابریک سوئیچ متقاطع را نشان می دهد. در این مدل بین هر پورت ورودی و هر پورت خروجی یک اتصال می تواند بوجود آید.
شکل 3-5- ساختار یک فابریک سوئیچ متقاطع
فابریک سوئیچ متقاطع به علت اینکه به همه پورت های ورودی و خروجی اجازه می دهد که بطور همزمان به یکدیگر اطلاعات ارسال کنند، بازده زیادی دارد. این مساله باعث می شود که در فابریک سوئیچ های متقاطع پدیده انسداد94 بوجود نیاید.
همچنین با توجه به پیشرفتهای به عمل آمده در صنعت CMOS پیاده سازی این نوع فابریک سوئیچ براحتی و به سادگی مقدور می باشد و همین امر باعث استقبال زیاد طراحان سوئیچ از آن شده است.
در این مدل یک زمانبند مرکزی سلولهایی را که منتظر انتقال به پورت خروجی هستند را بررسی می کند و با توجه به الگوریتم زمانبندی مورد استفاده تعدادی از سلولها را برای عبور از سوئیچ انتخاب می کند، بطوریکه در هر لحظه هر پورت ورودی حداکثر به یک پورت خروجی و هر پورت خروجی حداکثر به یک پورت ورودی متصل باشد.
در این مدل، برخلاف مدلهای پیشین، استفاده از سلولهای با طول ثابت بازده سیستم را افزایش زیادی می دهد. زیرا اگر طول سلولها متفاوت باشد، زمانبند باید همواره وضعیت پورتهای ورودی و خروجی را نگه دارد تا بداند که کدام یک از آنها مشغول می باشد و کدام یک آماده ارسال اطلاعات. ولی اگر از سلولهای با طول ثابت استفاده کنیم، زمانبند بطور متناوب در بازه های زمانی مشخص که به آن زمان سلول95 می گوییم، الگوریتم زمانبدی مربوطه را اجرا می کند و سلولها در همان بازه زمانی از ورودی به خروجی انتقال می یابند و همه پورتها در ابتدای بازه زمانی بعدی آزاد می شوند.
سلولهایی که قصد دارند به یک پورت خروجی مشخص بروند، ممکن است که نتوانند در یک بازه زمانی به آنجا برسند. این مساله وقتی اتفاق می افتد که مثلاً همه پورتهای ورودی می خواهند سلولهای خود را به یک پورت خروجی بفرستد ولی پورت خروجی و خط خروجی فقط می توانند ترافیکی را که توسط یک پورت ورودی وارد می شود، قبول کنند، بنابراین لازم است که ترافیکی را که توسط پورتهای ورودی دیگر وارد سوئیچ می شود در داخل صف قرار دهیم.
این صف بندی می تواند در ورودی و یا خروجی فابریک سوئیچ مقاطع صورت بگیرد که هر کدام مزایا و معایبی را دارا می باشند:
1- صف بندی در خروجی: سلولهایی که نمی توانند در بازه زمانی که به پورت خروجی می رسند روی خط خروجی قرار بگیرند، می توانند در خروجی صف بندی شوند. واضح است که اگر فابریک سوئیچ در سرعتی برابر سرعت خط کار کند، این کار غیر ممکن است. در بدترین شرایط تمامی پورتهای ورودی ممکن است فقط به یک پورت خروجی مشترک ترافیک ارسال کنند، بنابراین فابریک سوئیچ باید در N برابر سرعت خط کارکند. در واقع با توجه به سرعت زیاد خط انتقال پیاده سازی این نوع صف بندی مشکل می باشد، اگر چه با صف بندی در خروجی به راحتی می توان با استفاده از الگوریتم های زمانبندی روی صف های خروجی به کیفیت سرویس عالی دست پیدا کرد.
2- صف بندی در ورودی: در این حالت سلولهایی که نمی توانند در یک بازه زمانی به خروجی بروند در ورودی فابریک سوئیچ صف بندی می شوند بنابراین فابریک سوئیچ می تواند در سرعتی برابر با سرعت خط کار کند و این مهمترین مزیت این مدل می باشد زیرا پیاده سازی سخت افزاری آن بسیار ساده می باشد.
اما این مدل صف بندی یک عیب بسیار بزرگ دارد که به آن انسداد سرخط96 (HOL) می گویند. این پدیده را توسط یک مثال توضیح می دهیم.
شکل 3-6- مثالی از پدیده HOL در یک سوئیچ 4×4
در شکل 3-6 یک سوئیچ 4×4 نشان داده شده است. در یک بازه زمانی هر دو پورت ورودی 2 و 4 می خواهند سلولهای سرصف خود را به پورت خروجی 2 بفرستند. در این حالت اگر زمانبند پورت ورودی 4 را برای ارسال سلولش انتخاب کند، علاوه بر سلول سر صف پورت ورودی 2، سلول دوم داخل صف که مقصدش پورت خروجی 3 می باشد هم نمی تواند در آن بازه زمانی از سوئیچ عبور کند اگر چه پورت خروجی 3 در این بازه زمانی آزاد می باشد. این مساله باعث می شود که گذردهی سیستم پایین بیاید و در عمل از 6/58% بیشتر نشود ]7[. برای حل این مشکل استفاده از صف بندی مجازی در خروجی(VOQ)97 پیشنهاد شد که در اینجا آنرا توضیح می دهیم.
در این روش در هر پورت ورودی به ازای هر پورت خروجی یک صف FIFO مجزا در نظر گرفته می شود. همانطور که در شکل 3-7 نشان داده شده است، در این حالت بعد از اینکه خروجی سلول مشخص شد، سلول وارد شونده به فابریک سوئیچ در هرپورت، وارد صف مربوط به
شکل 3-7- مدلی از یک سوئیچ N×N با صف بندی در ورودی و استفاده از VOQ
خروجیش در آن پورت می شود. در آغاز هر بازه زمانی، یک الگوریتم زمانبدی مرکزی، همه صفهای وردی را چک می کند و مسیرهای بدون تقاطع بین ورودی ها و خروجی ها را پیدا می کند.
از لحاظ نظری، یک الگوریتم زمانبندی می تواند با کمک VOQ گذردهی یک فابریک سوئیچ متقاطع را از 6/58% به 100% برساند زیرا پدیده HOL بطور کامل از بین می رود ]8[.
بنابراین ما برای سوئیچ خودمان از فابریک سوئیچ متقاطع با صف بندی در ورودی و VOQ استفاده می کنیم.
در سالهای اخیر تحقیقات زیادی بر روی الگوریتم های زمانبندی برای فابریک سوئیچ های متقاطع که از صف بندی در ورودی و VOQ استفاده می کنند، انجام گرفته است که سرآمد آنها الگوریتم iSLIP می باشد ]9[.
بطور کلی یک الگوریتم زمانبندی خوب باید دارای مشخصات زیر باشد:
1- گذردهی بالا
2- بدون گرسنگی98 (هیچ یک از صفهای VOQ بدون سرویس نماند)
3- سریع
4- قابلیت پیاده سازی آسان
از آنجا که الگوریتم iSLIP دارای همه این مشخصات می باشد و در اکثر سوئیچها از آن استفاده می شود، ما نیز از این الگوریتم استفاده خواهیم کرد.
فصل چهارم
مدلسازی یک سوئیچ MPLS
4-1- مقدمه
در این فصل ابتدا به بررسی روشهای طراحی سیستمهای تک منظوره99 (که سوئیچ های شبکه هم نوعی از آنها می باشند) و زبانهای برنامه نویسی که بدین منظور بکار می روند می پرذازیم ]10[ و سپس به معرفی زبان SMPL می پردازیم. در ادامه به ارائه مدلی برای سوئیچ MPLS خواهیم پرداخت.
در فصلهای گذشته دیدیم که MPLS قابلیت مجتمع سازی هر نوع فنآوری لایه سوم (که عموماً IP می باشد) را با هر نوع فنآوری لایه دوم دارا می باشد. از آنجا که سیاست کلی مخابرات ایران، استفاده از فن آوری های مبتنی بر ارسال فریم100 در لایه دوم می باشد، در این پروژه فنآوری لایه دوم PPP در نظر گرفته شده است. همچنین بعلت اینکه مدولاتورها و دمدولاتورهای لایه فیزیکی و لایه دو در حال حاضر در دسترس عموم قرار دارد، در مدلسازی کارت خط از پردازش های لایه فیزیکی و لایه دو صرفنظر کرده و مبنای شبیه سازی را بر دریافت و ارسال بسته های IP (همراه با سرفصل Shim) می گذاریم. در صورت استفاده از فنآوری های مبنی بر ارسال سلول مثل ATM، این مدل سوئیچ با اعمال تغییراتی می تواند برای شبیه سازی مورد استفاده قرار بگیرد.
4-2- روشهای طراحی سیستمهای تک منظوره
بطور کلی به سیستمهایی که دارای عملکرد ثابت می باشند و برای یک کاربرد خاص طراحی و ساخته می شوند، سیستمهای تک منظوره گفته می شود. این سیستمها دارای بخشهای نرم افزاری و سخت افزاری دیجیتال و حتی آنالوگ می باشد. با توجه به پیشرفتهایی که در صنعت ساخت تراشه ها بوجود آمده است، پیچیدگی سیستمهای تک منظوره بسیار زیاد شده است که نهایتاً به تغییراتی در روشهای طراحی آنها منجر شده است.
روش طراحی قدیمی به این صورت بود که مشخصات سیستم به صورت دستی و بازبانهای طبیعی مانند انگلیسی تهیه می شد و طراح سیستم بنا به تجربه و مهارت خود، این مشخصات را به بخشهای مختلف نرم افزار و سخت افزار تقسیم بندی می نمود و بخشهای مختلف را به متخصصین مربوطه تحویل می داد. ابتدا طراحان سخت افزار مشخصات بخش سخت افزار را به زبانهایی مانند Verilog و یا VHDL تبدیل می نمودند و سپس عملیات سنتز توسط ابزارهای طراحی با کمک کامپیوتر (CAD)101 انجام می گرفت. با آماده شدن نمونه اولیه سخت افزار، این نسخه تحویل مهندس نرم افزار گردیده و کارنرم افزار نویسی آغاز می شد و بعد از عملیات سنتز و کامپایل کردن102 نرم افزار، کد بر روی پروسسور سیستم اجرا می شد و سرانجام عملیات مجتمع کردن سیستم103 انجام می شد .
این روش دارای مشکلات اساسی بود که نیازهای جدید را بر آورده نمی ساخت. به عنوان مثال طراحی سخت افزار و نرم افزار در چندین مرحله انجام می گرفت که باعث اتلاف زمان می شد. دیگر اینکه کشف خطاهای ممکن در مشخصات سیستم و یا در بخش سخت افزار ممکن است بسیار دیر صورت بگیرد، مثلاً زمانی که مهندس نرم افزار مشغول طراحی نرم افزار می باشد. بدین ترتیب حذف این خطاها بسیار پرهزینه خواهد بود. همچنین بعلت استفاده متخصصین مختلف از زبانها و ابزارهای کاملاً متفاوت، ارتباط این افراد با یکدیگر قطع می شود. همچنین روش قدیمی طراحی اجازه استفاده از طرح های حاضر و آماده را به سادگی امکان پذیر نمی نماید.
روشهای جدید طراحی مبنی بر این ایده می باشند که طراحی در سطح سیستم 104 و حصول اطمینان از درستی عملکرد سیستم قبل از ساخت اجزا می تواند جلوی انتشار خطا به مراحل بعدی را بگیرد. همچنین با ارائه یک مدل قابل اجرا و قابل شبیه سازی از سخت افزار به مهندسین نرم افزار، آنها قادر خواهند بود کار پیاده سازی و سنتز نرم افزار را همزمان با سنتز سخت افزار شروع و اجرا نمایند. استفاده از یک زبان برای مدلسازی و شبیه سازی تمامی اجزاء سیستم، ارتباط بین گروههای طراح مختلف را به سادگی میسر می نماید که مزایای زیادی به همراه خواهد داشت.
4-3- مراحل طراحی سیستمهای تک منظوره
سیستمهای تک منظوره شامل بخشهای سخت افزاری و نرم افزاری مختلف می باشند. بخش نرم افزار معمولاً شامل یک سیستم عمل کننده همزمان105 به اضافه یک سری فرآیندهای کنترلی می باشد. همچنین ممکن است فرایندهایی بطور همزمان برروی پردازنده های کمکی مانند پردازنده های سیگنالهای دیجیتال (DSP)106 اجرا شوند. بخش سخت افزار شامل پردازنده، حافظه، پردازنده های کمکی و قسمت برقرار کننده ارتباط بین بقیه اجزا می باشد. در بعضی از کاربردها استفاده از مدارات مبدل آنالوگ به دیجیتال و دیجینال به آنالوگ نیز معمول می باشد. بدین ترتیب سیستم شامل اجزای متفاوت با ماهیت های متفاوت می باشد که طراحی آنها باید به صورت همزمان و با روشهای متناسب با هر بخش صورت پذیرد.
روند طراحی معمولا شامل مراحل متفاوتی می باشد که در هر مرحله مشخصات سیستم یا تهیه می گردد (در اولین مرحله ) ویا خروجی مرحله قبل می باشد (System Spesification). این مشخصات به روش خاص تست می شود که آیا درست بوده و انتظارات طراحی را برآورده می سازد (Validation ) و سپس یا به صورت اتوماتیک و یا به صورت ترکیب اتوماتیک – دستی به مشخصات مرحله بعد تبدیل می شود (Synthesis). که در این عمل جزییات پیاده سازی بیشتری به مشخصات مذکور اضافه می شود .
4-3-1- مشخصه سیستم
اولین مرحله در طراحی عبارت است از تهیه مشخصات دقیق سیستم. معمولا این مشخصات در بالاترین سطح، یعنی سطح عملکرد107 تهیه می گردد و شامل اطلاعات دقیق نحوه عملکرد سیستم می باشد. در این مشخصات هیچ اطلاعاتی راجع به ساختار و نحوه پیاده سازی و حتی زمانبندی وجود ندارد.
مشخصه سیستم را هم می توان به صورت یک زبان طبیعی مانند انگلیسی تهیه نمود (که این روش در سالهای قبل منسوخ گشته است) و هم می توان از زبانهای سطح بالا مانند C/C++ استفاده نمود. استفاده از زبانهای سطح بالا مزایای زیادی را در بردارد. اولا زبانهای طبیعی دقیق نیستند، به این معنی که توسط افراد مختلف به طرق متفاوت تعبیر می شوند. ثانیا آنها را نمی توان مبنای روشها و ابزارهای طراحی اتوماتیک قرار داد.
4-3-2- تایید صحت
هنگامی که مشخصات یک سییستم تهیه می شود باید درستی آن نیز تایید شود. برای این کار از شبیه سازی108 استفاده می شود. در این روش مدل سیستم به اضافه یک سری ورودیها به یک شبیه ساز داده شده و شبیه ساز خروجیها و حالات داخلی سیستم را استخراج نموده و نمایش می دهد. بدین ترتیب می توان صحت عملکرد سیستم را تعین نمود. واضح است که شبیه سازی نمی تواند درستی سیستم را اثبات نماید و ما را صد درصد مطمئن نماید ولی به هر حال شبیه سازی فراگیرترین و بهترین روش برای تایید صحت سیستم می باشد.
در گذشته قسمتهای نرم افزاری سیستمها جداگانه و بازبانهای سطح بالا شبیه سازی می شدند. قسمت های سخت افزاری هم جداگانه شبیه سازی می شدند اما امروزه، کل سیستم شامل سخت افزار و نرم افزار با هم به طور همزمان شبیه سازی می شوند که به آن شبیه سازی همزمان می گویند.
مزیت شبیه سازی همزمان این است که بسیاری از خطاها و نقائص در تک تک اجزا بروز نمی نمایند بلکه هنگام مجتمع کردن بخشهای مختلف بروز می نماید و برای پیدا نمودن آنها شبیه سازی همزمان لازم است.
4-3-3- سنتز
سنتز به معنی تبدیل یک مشخصه سیستم به دیگری با سطح انتزاع پایین تر و جزییات ساختاری بیشتر می باشد. عمل سنتز بسته به سطح انتزاع می تواند بصورت کاملا اتوماتیک و یا ترکیب اتومامتیک – دستی انجام گیرد. معمولا در سطح انتزاع پایین عملیات سنتز کاملا اتوماتیک انجام می شود.
سنتز معمولا شامل سه مرحله اصلی است:
1- نگاشت مشخصه سیستم به معماری: در این مرحله معماری کلی سیستم پیاده سازی شده، تعیین می گردد.
2- تقسیم بندی: در این مرحله بخشهای مختلف مشخصه سیستم اولیه به بخشهای نرم افزار و سخت افزار تقسیم می شوند .
3- سنتز سخت افزار و نرم افزار: هر کدام از بخشهای نرم افزار و سخت افزار توسط ابزارهای خاص تا مرحله پیاده سازی نهایی رسانیده می شوند .
4-4 – زبانهای شبیه سازی
در این قسمت به بررسی زبانهای موجود شبیه سازی می پردازیم و در نهایت برای شبیه سازی سوئیچ MPLS یک زبان شبیه سازی را انتخاب می کنیم .
در حال حاضر رقابت سختی بین طرفداران زبانهای شبیه سازی برای حصول برتری و تبدیل شدن به استاندارد جامعه طراحی در جریان است. به طور کلی این رقابت دو جبهه دارد. در یکی از جبهات طرفداران زبانهای سطح بالا (به فرماندهی C/C++) و در جبهه دیگر طرفداران زبانهای سخت افزاری مانند Verilog و VHDL قرار دارند.
بطورکلی زبانهای شبیه سازی مطرح را می توان به سه دسته تقسیم نمود:
1- زبانهای آکادمیک مانند Ptolemy و Rosetta
2- زبانهای براساس Verilog مانند Superlog
3- زبانهای بر پایه C/C++ مانند SystemC، A/RT, SMPL
زبان Ptolemy که توسط دانشگاه برکلی ارائه شده است با تاکید زیاد برناهمگونی سیستمهای تک منظوره طراحی شده و با استفاده از آن بخشهای متفاوت سیستم با ماهیت متفاوت را می توان مدل نموده و نهایتا همگی آنها را با هم شبیه سازی کرد ولی نقطه ضعف آن نبودن ابزارهای لازم برای سنتز آن می باشد. همچنین کند بودن از دیگر نقاط ضعف این زبان می باشد.
زبان دیگر از گروه اول زبان Rosetta می باشد. این زبان با توجه به این ایده توسعه یافته است که سیستم شامل اجزایی غیر الکترونیکی و مکانیکی نیز می باشد و طراحی باید از این سطح آغاز شود نه از سطح سیستم الکترونیکی که فقط شامل سخت افزار و نرم افزار می باشد.
زبان Superlog یکی از زبانهای گروه دوم می باشد که محصول شرکت Co-Design می باشد. این زبان بااضافه نمودن ساختارهای سطح بالای C به زبان Verilog شکل گرفته است. قدرت این زبان در این نکته است که اکثر طراحان سخت افزار با Verilog آشنا بوده و تغییر سطح طراحی به سطح بالاتر براساس Superlog برایشان زیاد ناخوشایند نخواهد بود.
گروه سوم که زبانهای برمبنای C/C++ می باشند و هم اکنون بیش از هشتاد درصد توجه به این زبانها معطوف شده، به عنوان جهت دهنده آینده صنعت طراحی و شبیه سازی پیش بینی شده اند. این زبانها به دلیل محبوبیت فوق العاده C/C++ در بین طراحان سیستم و مهندسین نرم افزار و همچنین آشنایی مهندسین سخت افزار با آنها ازیک طرف و از طرف دیگر به علت توانایی های چشمگیر C/C++ اهمیت فوق العاده ای یافته اند.
یکی از این زبانها SystemC می باشد که با اضافه نمودن قابلیت مدلسازی زمان و مدلهای سخت افزاری به زبان C++ شکل گرفته است. این زبان به صورت اضافه کردن یک کتابخانه به C++ قابلیت مدلسازی آنرا افزایش می دهد و هم اکنون نسخه های جدید تر و تکمیلی آن در حال ورود به بازار می باشد.
زبان دیگر از گروه زبانهای برپایه C/C++ ، SMPL می باشد که جزو نخستین زبانها از این گروه می باشد. این زبان بصورت اضافه کردن یک کتابخانه به زبان C یا C++ فعال می شود و با توجه به سادگی دستورات آن، قابلیت مدلسازی همزمان نرم افزار و سخت افزار به راحتی فراهم می آید.
در این پروژه با توجه به روند تبدیل زبانهای بر پایه C/C++ به عنوان استاندارد صفت طراحی و همچنین سادگی شبیه سازی سیستمهای صف و سرویس دهنده توسط زبان SMPL، از این زبان شبیه سازی استفاده شده است.
در بخش بعدی به بررسی دقیق تر زبان SMPL خواهیم پرداخت.
4-5- زبان شبیه سازی SMPL
این زبان که توسط فردی به نام Mac Dougall ارائه شده است ]11[،از جمله زبانهایی است که به آنها برپایه رخداد109 می گویند. در زبان SMPL سه نوع نهاد مختلف وجود دارد:
1- وسایل110
2- بلیط ها 111
3- رخدادها
یک سیستم را در حالت ایستا می توان مجموعه ای از وسایل در نظر گرفت. یک وسیله بطور نوعی نمایانگر مدلی از یک عنصر سیستم می باشد که کار خاصی را انجام می دهد، مانند واحد پردازش مرکزی (CPU) در یک سیستم کامپیوتر و یا یک گذرگاه در یک شبکه کامپیوتری. در زبان SMPL توابعی وجود دارد که به کمک آنها می توان وسایل را تعریف، ذخیره 112و رها 113 کرد. ارتباط بین وسایل هم توسط بلیطهایی که بین وسایل رد و بدل می شوند، مشخص می شود .
بلیطها در واقع نمایانگر نهادهای فعال سیستم می باشند. عملکرد پویای سیستم بوسیله حرکت بلیطها در یک سری از وسایل مدل می شود. یک بلیط ممکن است یک کار114 در یک مدل کامپییوتری، یک بسته در یک مدل شبکه مخابراتی و یا یک دسترسی به حافظه 115 در یک مدل سیستم حافظه باشد. SMPL از دو نوع عملیات اصلی برای کنترل بلیطها در یک سیستم شبیه سازی شده استفاده می کند؛ یک بلیط می تواند یک وسیله را ذخیره کند و یا می تواند فعالیت هایی را با مدت های مختلف زمانبندی 116 کند. اگر یک بلیط بخواهد یک وسیله در حال سرویس را ذخیره کند، وارد یک صف می شود و تا هنگامی که آن وسیله برای آن بلیط دسترس پذیر117 شود، منتظر می ماند .
بلیطها می توانند دارای اولویتهای مختلفی باشند. در این صورت می توان با دستورات خاصی به بلیطهای با اولیویت بیشتر سریعتر از بلیطهای با اولویت کمتر سرویس داد.
یک رخداد به هر تغییری در وضعیت هر یک از نهادهای سیستم اطلاق می شو . به عنوان مثال اگر یک کار محاسبه در CPU تمام شود و CPU رها شود، دو رخداد اتفاق افتاده است:
اول اینکه یک کار تمام شده است و دیگر اینکه وضعیت CPU عوض شده است. اتمام کار ممکن است با آغاز یک کار دیگر همراه باشد، مثلا رها شدن CPU ممکن است با اجرای یک کار دیگر که قبلا CPU را ذخیره کرده است همراه شود. در زبانهای شبیه سازی برپایه رخداد مانند SMPL کلیه فعالیتهایی که باید در یک لحظه از زمان اتفاق بیافتد را یک رخداد تلقی می کنیم. این مساله در مدلهای کوچک مشکلی را به همراه ندارد ولی در مدلهای بزرگ که باید در یک لحظه از زمان اتفاقات زیادی رخ دهد، سازمان دهی آنها کار مشکلی می باشد .
SMPL توابعی برای زمانبندی رخدادها و انتخاب آنها براساس زمان اجرایشان دارا باشد. در یک سیستم شبیه سازی یک رخداد توسط یک شماره منسوب به آن، زمان شبیه سازی که رخداد باید در آن اتفاق بیافتد و هویت بلیط مربوط به آن مشخص شود.
توابع SMPL که برای شبیه سازی سیستمها بکار می رود را می توان به سه دسته اصلی تقسیم نمود:
1- آماده سازی اولیه مدل
2- تعریف و کنترل وسیله
3- زمانبندی و ایجاد رخدادها
حال به معرفی توابع مهم هر قسمت می پردازیم.
4-5-1- آماده سازی اولیه مدل
1- smpl(m,s) int m;char *s;
تابع Smpl( ) برای آماده سازی اولیه سیستم برای اجرای شبیه سازی بکار می رود.
m مشخص کننده نوع ارتباط بین کاربر و برنامه می باشد وs نیز یک اشاره گر به نام مدل می باشد.
هنگامی که Smbpl( ) اجرا می شود کلیه مقادیر اندازه گیری در زمان شبیه سازی برابر صفر قرارداده می شود.
2- reset( )
هنگامی که این تابع اجرا می شود کلیه مقادیر اندازه گیری شده صفر می شوند و زمانی که این تابع صدا شده است به عنوان زمان آغاز اندازه گیری ثبت می شود.
4-5-2 تعریف و کنترل وسیله
1- f=facility char * s; int n;
این تابع یک وسیله را تولید و نام گذاری می کند و مقدار f را بر می گرداند که توصیف گر وسیله می باشد و برای مشخص کردن وسیله عملیتهای بعدی بکار می رود.
s یک اشاره گر به نام وسیله می باشد که برای مشخص کردن وسیله در گزارش برنامه، دنبال کردن برنامه و پیامهای خطا بکار می رود. n نیز تعداد سرویس دهنده های وسیله رامشخص می کند .
یک وسیله می تواند دارای یک صف و n سرویس دهنده موازی باشد. هنگامی که تقاضا برای ذخیره سازی یک وسیله می رسد، سرویس دهنده های یک تا n به ترتیب چک می شوند و اگر یک سرویس دهنده آزاد پیدا شود برای تقاضای مورد نظر ذخیره می شود. اگر همه سرویس دهنده های وسیله قبلا ذخیره شده اند، تقاضا وارد صف وسیله مورد نظر می گردد. هنگامی که یکی از بلیطهایی که وسیله را ذخیره کرده است آنرا رها کند، تقاضای داخل صف جای آنرا می گیرد. بطور کلی یک وسیله مشغول است اگر همه سرویس دهنده های آن ذخیره شده باشند و مشغول نیست اگر حداقل یکی از سرویس دهنده های آن آزاد باشد.
2- r = request (f,tkn, pri) int f , tkn , pri
این تابع تقاضا می دهد که یکی از سرویس دهنده های وسیله f برای بلیطی که با tkn مشخص شده است، ذخیره شود. f همان توصیف گر وسیله است که هنگام تولید وسیله توسط تابع facility مشخص شده بود. اولویت بلیط متقاضی توسط pri مشخص می شود. هر چه که مقدار pri بیشتر باشد، اولویت آن نیز بیشتر است. اگر وسیله مشغول نباشد، یک سرویس دهنده برای بلیط متقاضی ذخیره می شود و مقدار صفر برگردانده می شود. اگر وسیله مشغول باشد، تقاضا وارد صف می شود و مقدار یک برگدانده می شود. در برنامه شبیه سازی از مقدار برگردانده شده برای تصمیم گیری در مورد رخدادهای بعدی استفاده می شود. بدین صورت که اگر وسیله ذخیره شود، باید اتمام سرویس بلیط بروی آن وسیله زمانبندی شود و اگر ذخیره نشود ممکن است برنامه رخداد دیگری را انتخاب و اجرا کند.
هر وسیله دارای یک صف می باشد. اگر هنگام یک تقاضا وسیله مشغول باشد، یک ورودی صف برای آن تقاضا درست می شود. این ورودی شامل بلیط، اولویت آن و شماره رخداد حال می باشد و صف هم براساس اولویت سرویس داده می شود، بدین صورت که ورودیهای با الویت یکسان بصورت"ورودی اول ، خروجی اول " (FIFO)118 سرویس داده می شوند. هنگامی که تابع
release ( ) یک سرویس دهنده را رها می کند، ورودی اول صف از صف خارج می شود و رخداد آن ورودی به همراه بلیط تقاضای اصلی برای زمان حال شبیه سازی، زمانبندی می شوند. هنگامی
که برنامه تابع cause ( ) را صدا می زند تا رخداد بعدی را انتخاب کند، همان رخدادی که ابتدا تابع request ( ) را اجرا کرده بود، دوباره اجرا می شود و تقاضای جدید وارد سرویس دهنده می شود.
3- r = preempt (f,tkn,pri) int f, tkn , pri
تابعpreempt ( ) تقاضا می کند که یکی از سرویس دهنده های وسیله f برای بلیط tkn ذخیره شود. pri نیز اولویت بلیط می باشد. اگر وسیله مشغول نباشد، یک سرویس دهنده برای بلیط متقاضی ذخیره می شود و مقدار صف برگردانده می شود.
اگر وسیله مشغول باشد، سرویس دهنده ای که بلیط سرویس گیرنده آن دارای کمترین اولویت می باشد، مشخص می گردد. اگر این اولویت بزرگتر و یا مساوی اولویت بلیط متقاضی باشد، تقاضا وارد صف می شود و مقدار "یک " برگردانده می شود. بنابراین هنگامی که وسیله مشغول نباشد یا همه سرویس دهنده های آن با بلیط های با الویت بیشتر از بلیط متقاضی دخیره شده اند Preempt( ) کاملا مثل request( ) عمل می کند.
اگر وسیله مشغول باشد و بلیطه سرویس گیرنده با کمترین اولویت دارای اولیت کمتری از بلیط متقاضی باشد، سرویس بلیط اول قطع می شود و وارد صف می شود و بلیط متقاضی سرویس می گیرد. این عمل بدین صورت انجام می شود که زمان سرویس باقی مانده برای بلیط اول محاسبه شده و هنگامی که این بلیط دوباره وارد یکی از سرویس دهنده ها شد، به اندازه مدت زمان باقی مانده در آن باقی می ماند.
4- release (f, tkn) int f, tkn
این تابع سرویس دهنده وسیله f که توسط بلیط tkn ذخیره شده است را رها می کند. در هنگام رها کردن یک وسیله، SMPL سرویس دهنده ذخیره شده برای آن بلیط را پیدا می کند و آنرا رها می کند. سپس، صف آن وسیله چک می شود و اگر خالی نباشد، ورودی واقع در اول صف خارج شده و رخداد مربوط به آن برای ایجاد در زمان حال زمانبندی می شود.
4-5-3 – زمانبندی و ایجاد رخدادها
1- schedule (ev,te,tkn) int ev,tkn ;double te;
این تابع برای زمانبدی یک رخداد بکار می رود. ev شماره رخداد و te مدت زمان ایجاد رخداد از زمان حال می باشد. tkn نیز بلیط مربوط به رخداد می باشد .
schedule ( ) مقدار te را به زمان حال اضافه می کند تا زمان اتفاق رخداد را بدست آورد. سپس در لیست رخدادها یک ورودی شامل شماره رخداد، زمان اتفاق رخداد و بلیط درست می کند.
لیست رخدادها بدین صورت می باشد که رخدادهای بازمان اتفاق کمتر در ابتدای لیست قرار دارند و اگر چند رخداد دارای زمان اتفاق برابر باشند، رخدادی که زودتر وارد لیست شده است در ابتداقرار می گیرد.
2- cause (ev, tkn) int * ev, * tkn;
cause( ) ورودی واقع در ابتدای لیست رخدادها را بر می دارد، زمان شبیه سازی را تا زمان وقوع آن رخداد جلو می برد و شماره رخداد ev و بلیط tkn را بر می گرداند .
3- tkn = cancel(ev) int * ev;
cancel( ) در لیست رخدادها به جستجوی رخداد ev می پردازد، اگر آنرا پیدا نکند مقدار "1-" برمی گرداند. اگر آنرا پیدا کند، ورودی مربوطه را از لیست رخدادها بر می دارد و شماره بلیط مربوط به آن ورودی را بر می گرداند. اگر چندین نمونه ازرخداد ev در لیست رخدادها موجود باشد، فقط اولین ورودی برداشته می شود.
توابعی که معرفی شدند اساسی ترین ابزارهای لازم برای شبیه سازی توسط زبان SMPL می باشند. لیست کامل تابع و توضیحات مربوطه به آنها در ]11[ موجود می باشد.
4-6- مدلهای ترافیکی
برای انجام هر گونه شبیه سازی بر روی یک سوئیج باید به آن ترافیک داده اعمال نمود. تا کنون مدلهای ترافیکی گوناگونی معرفی شده اند که در شبیه سازی های این پروژه از سه نوع آن استفاده خواهیم نمود.
4-6-1- ترافیک برنولی119 یکنواخت
ترافیک برنولی یکنواخت (i.i.d)120 ترافیکی است که در آن داده ها بصورت مستقل از یکدیگر تولید می شوند. در این مدل طول هر بسته برابر با یک سلول در نظر گرفته شده است و احتمال تولید سلول در هربازه زمانی برابر با درصد بار می باشد. مثلا در زیر بار80% در هر بازه زمانی با احتمال 8/0 یک سلول تولید می شود. مقصد سلولها نیز بطور کاملاً تصادفی از بین یکی از پورتهای خروجی انتخاب می شود.
این مدل ساده ترین مدل ترافیکی می باشد که تقریبا در همه مراجع به عنوان یکی از انواع ترافیک ورودی مورد استفاده قرار می گیرد.
4-6-2- ترافیک زنجیره ای
ترافیکی که در شبکه موجود می باشد، معمولاً بصورت زنجیره ای است. این زنجیره ممکن است مربوط به انتقال یک فایل بزرگ و یا یک جریان ویدیوئی باشد. برای تولید ترافیک زنجیره ای از زنجیره مارکوف121 دو حالته بصورت روشن122 یا خاموش123 استفاده شده است. همانطور که در شکل 4-1 نشان داده شده است این زنجیره شامل دو حالت روشن و خاموش می باشد که احتمال رفتن از حالت روشن به خاموش برابر P و ا حتمال رفتن از حالت خاموش به حالت روشن برابر q می باشد.
همانطور که در ]12[ نشان داده شده است برای تولید ترافیک زنجیره ای با طول B و تحت بار پارامترهای q و p را می توان از روابط زیر بدست آورد:
شکل 4-1- زنجیره مارکوف دو حالته برای تولید ترافیک
از این مدل ترافیک زنجیره ای در مراحل مختلف شبیه سازی سوئیچ به عنوان ترافیک اعمالی استفاده خواهیم کرد.
4-6-3- ترافیک آماری
برای مدل سازی هرچه واقعی تر ترافیک شبکه، انداز ه گیریهایی بصورت آماری برروی خط های اینترنت در جاهای مختلف دنیا انجام گرفته است.
با توجه به اطلاعات موجود در یک نمونه از این اندازه گیریها ]13[ شامل طول بسته ها و تعداد بسته های مربوط به جریان های اینترنتی نمودار شکل 4-2 رسم شده است.
بعد از مدل کردن قسمتهای مختلف سوئیچ، از این ترافیک برای بررسی عملکرد سوئیچ استفاده خواهیم نمود.
شکل 4-2- نمودار افزایش طول بسته های شبکه
4-7- مدلسازی کارت خط در ورودی
همانطور که ذکر شد در هنگام مدل کردن کارت خط فرض می کنیم که داده ها را بصورت بسته های IP (همراه با سرفصل Shim) دریافت می کنیم. اگر سوئیچ در لبه شبکه باشد (LER) باید علاوه بر عملکرد MPLS، توانایی انجام پردازش های سرفصل لایه IP را نیز دارا باشد، بعبارت دیگر سوئیچ های MPLS لبه شبکه باید توانایی قسمت های هدایت به جلوی یک مسیریاب IP را داشته باشند. بنابراین کلیه نتایجی که در شبیه سازی یک سوئیچ (LSR) MPLS بدست می آید برای سوئیچ های لبه شبکه (LER) نیز معتبر است. ولی باید این نکته را در نظر داشت که برای سوئیچ های لبه شبکه (LER) عملیات پردازش سرفصل لایه IP که در مسیریاب های IP انجام می شود باعث افزایش تاخیر بسته های اطلاعاتی خواهد شد.
بنا به آنچه در فصلهای گذشته درباره MPLS و وظایف یک سوئیچ بیان شد، مدل زیر را برای کارت خط در ورودی یک سوئیچ MPLS ارائه میدهیم:
1- درهر پورت ورودی، بسته های IP همراه با سرفصل Shim که حاوی اطلاعات مربوط به برچسب ورودی، کلاس سرویس پشته برچسب، و زمان زندگی (TTL) می باشد، دریافت می شود.
2- حوزه TTL سرفصل Shim مورد بررسی قرار می گیرد (هشت بیت )، اگر مقدار آن برابر صفر بود، بسته فاقد اعتبار می باشد و از آن صرفنظر می شود. در غیر اینصورت از مقدار آن یک واحد کاسته می شود.
3- مقدار برچسب ورودی (بیست بیت ) استخراج شده و بوسیله جدولی که توسط قسمت کنترل برای هر پورت تهیه می شود، مقدار برچسب خروجی و شماره پورت خروجی تعیین می گردد. از آنجا که در شبیه سازی یک سوئیچ اطلاعات مربوط به شبکه وجود ندارد، این مقادیر با توجه به نوع ترافیک ورودی تعیین می شوند، مثلا در ترافیک زنجیره ای به همه بسته های مربوط به یک زنجیره برچسب خروجی یکسان داده می شود و همگی به یک پورت خروجی می روند.
4- بسته ها به سلولهای 64 بایتی شکسته می شوند و 10 بایت به عنوان سرفصل به آنها اضافه می شود که در قسمت خروجی کارت خط برداشته خواهد شد. این سرفصل بنا به استاندارد مورد استفاده بین کارت خط و فابریک سوئیچ می تواند متفاوت باشد ولی اطلاعات مربوط به پورت ورودی، پورت خروجی، کلاس سرویس و شماره سلولها را دارا می باشد.
5- سلولها با توجه به مقدار کلاس سرویسشان در VOQ مربوطه قرار می گیرند. این کار ممکن است بطور مستقیم و یا با کمک الگوریتمهایی با تخصیص عرض باندهای مختلف به کلاس های مختلف صورت بگیرد. در قسمت های بعدی هر دو این حالات را بررسی خواهیم کرد.
4-8- مدلسازی فابریک سوئیچ
فابریک سوئیچ عامل اصلی محدودیت در گذردهی و افزایش تاخیر بسته ها در یک سوئیچ می باشد . در فصل گذشته بعد از بررسی انواع فابریک سوئیچ ها، به عنوان بهترین انتخاب، تصمیم به استفاده از فابریک سوئیچ متقاطع با صف بندی در ورودی همراه با VOQ گرفته شد. همچنین الگوریتم iSLIP به عنوان یک الگوریتم زمانبندی ساده، سریع و با گذردهی بالا که بطور وسیعی مورد استفاده قرار می گیرد، معرفی شد که در اینجا به توضیح آن می پردازیم.
4-8-1- الگوریتم iSLIP
iSLIP یک الگوریتم تکرار شونده124 می باشد که در طی هر بازه زمانی چندین تکرار صورت می گیرد تا یک شکل از تطبیق ورودی ها و خروجی ها پیدا شود. الگوریتم iSLIP با استفاده از اولویت چرخشی هر یک از ورودی ها و خروجی های فعال را به نوبت برای ارسال اطلاعات انتخاب می کند. مهمترین خاصیت iSLIP سادگی آن می باشد که باعث می شود به راحتی قابل پیاده سازی در سخت افزار باشد و در سرعتهای بالا کار کند.
الگوریتم iSLIP سعی می کند تا به سرعت در چندین تکرار مسیرهای بدون تقاطع بین ورودی ها و خروجی ها را پیدا کند. هر تکرار شامل سه مرحله می باشد. در ابتدا همه ورودی ها و خروجی ها بدون همتا125 می باشند و فقط ورودی ها و خروجی هایی که در پایان یک تکرار همتا126 پیدا نکرده اند در تکرار بعدی شرکت می کنند. سه مرحله هر تکرار که بطور موازی روی هر ورودی و خروجی عمل می کند به صورت زیر می باشند:
1- تقاضا127: هر ورودی یک تقاضا به هر خروجی که برای آن یک سلول در صف دارد می فرستد.
2- موافقت128: وقتی یک خروجی تقاضا دریافت می کند، آن تقاضایی را انتخاب می کند که در یک سیستم نوبتی چرخش، اولویت با آن می باشد. سپس خروجی به هر ورودی اطلاع می دهد که با تقاضای آن موافقت شده است یا نه.
3- پذیرش129: وقتی یک ورودی موافقت با تقاضایش را دریافت می کند، آن موافقتی را انتخاب می کند که در یک سیستم نوبتی چرخشی، اولویت با آن باشد. سپس ai که اشاره گر به خروجی دارای اولویت در سیستم نوبتی چرخشی ورودی i می باشد، به یک نوبت بعد از خروجی پذیرفته شده تغییر پیدا می کند. gj هم که اشاره گر به ورودی دارای اولویت در سیستم نوبتی چرخشی خروجی j می باشد، به یک نوبت بعد از ورودی که با تقاضای آن موافقت شده بود تغییر پیدا می کند. این اشاره گرها فقط در تکرار اول مقدارشان تجدید می شود.
شکل 4-3 یک مثال از سه مرحله تکرار اول الگوریتم iSLIP را نشان می دهد. L(i,j) نشان دهنده این است که ورودی i در صف مروبوط به خروجی j ، سلول دارد و در نتیجه برای آن خروجی تقاضا ارسال می کند. در مرحله اول همه ورودی ها به خروجی هایی که برای آنها سلول دارند، تقاضا می فرستند. در مرحله دوم از آنجا که خروجی 1 فقط از ورودی 1 تقاضا دریافت کرده است، با آن موافقت می کند. خروجی های 2 و 4 که هر کدام دو تقاضا دریافت کرده اند دارای 1 و 1 می باشند. بنابراین خروجی 2 با تقاضای ورودی 1 موافقت می کند و خروجی 4 هم با تقاضای ورودی 3 موافقت می کند زیرا از ورودی های 1 و 2 تقاضایی دریافت نکرده است. در مرحله سوم هر ورودی حداکثر می تواند یک خروجی را انتخاب کند و از آنجا که1=1a می باشد، ورودی 1 خروجی 1 را انتخاب می کند و ورودی 3 هم که خروجی 4 را انتخاب می کند.
حال مقادیر 1g ،4g ، 1a و3a باید تجدید شوند. مقادیر جدید بصورت زیر خواهند بود:
2=1g ،4=4g ،2=1a و1=3a
در تکرار بعدی الگوریتم، ورودی های 2 و 4 و خروجی های 2 و 3 شرکت خواهند کرد.
شکل 4-3- مثالی از سه مرحله تکرار اول الگوریتم iSLIP
الگوریتم iSLIP به رغم سادگیش دارای بازده زیادی می باشد. اما مهمترین خواص این الگوریتم عبارتند از:
1- گذردهی بالا: برای ورودی های یکنوا130 و ناهمبسته131 گذردهی سوئیچ تقریبا 100% می باشد.
2- بدون گرسنگی: هیچ یک از صفها بدون سرویس نمی ماند. از آنجا که اشاره گر ها فقط در تکرار اول مقدارشان تجدید می شود، یک خروجی آنقدر با تقاضای ورودی دارای اولویت موافقت می کند تا آن اتصال برقرار شود.
3- سریع: الگوریتم iSLIP حداکثر در N تکرار به همگرایی می رسد. اما در عمل نشان داده شده است که تعداد تکرارهای لازم برای همگرایی کمتر از (N) می باشد. بعنوان مثال برای یک سوئیچ 16×16 با چهار تکرار می توان به همگرایی رسید.
4- قابلیت پیاده سازی آسان: یک زمانبند iSLIP شامل 2N کد کننده132 قابل برنامه ریزی است که براحتی قابل پیاده سازی است.
در شکل 4-4 عملکرد iSLIP با یک و چهار تکرار در یک سوئیچ 16×16 تحت ترافیک برنولی و ترافیک زنجیره ای با طول 32 نشان داده شده است. تاخیر سلولها بر حسب زمان سلول (زمان لازم برای انتقال یک سلول ) رسم شده است و بار اعمالی نسبت به یک سوئیچ با گذردهی 100% در نظر گرفته شده است.
تحت ترافیک برنولی، iSLIP با یک تکرار (1SLIP) و iSLIP با چهار تکرار (4SLIP) هر دو گذردهی 100% دارند ولی تاخیر سلولها در 4SLIP خیلی کمتر از 1SLIP است.
تحت ترافیک زنجیره ای برای بار حدود 90% ، 1SLIP ناپایدار می شود، در حالیکه 4SLIP علی رغم افزایش تاخیر سلولها، گذردهی 100% دارد. بنابراین با log2N تکرار در یک سوئیچ N×N اگر چه هنگامی که ترافیک ورودی زنجیره ای می باشد سلولها زمان زیادی در صف منتظر می مانند، الگوریتم iSLIP گذردهی 100% خود را حفظ می نماید که با توجه به ویژگیهای سادگی و قابلیت پیاده سازی سخت افزاری آن یک الگوریتم مناسب برای فابریک سوئیچ ها می باشد.
اما هنگامی که ترافیک شبکه دارای چندین کلاس سرویس می باشد، فابریک سوئیچ و الگوریتم زمانبدی آن باید قادر به پشتیبانی کلاسهای سرویس مختلف باشند. این کار با استفاده از مشتقات iSLIP مانند iSLIP اولویت دار133 که به کلاس های سرویس بالاتر اولویت عبور می دهد و یا الگوریتمهایی که به کلاسهای بالاتر وزن بیشتری می دهند مانند iSLIP دارای وزن134 ، قابل انجام می باشد. الگوریتمهای دارای وزن اگرچه از نظر تئوری بازده خوبی دارند، بعلت پیچیدگی زیاد عملاً امکان پیاده سازی آنها وجود ندارد.
شکل 4-4- عملکرد الگوریتم iSLIP با یک و چهار تکرار در یک سوئیچ 16×16 تحت ترافیک برنولی و زنجیره ای با طول 32
الگوریتم iSLIP اولویت دار که با افزودن تغییراتی به الگوریتم iSLIP بدست می آید، دارای همان ویژگیهای سادگی، سرعت و بازده بالا می باشد و در نتیجه برای استفاده در سوئیچهایی که به منظور پشتیبانی کلاسهای سرویس ساخته می شوند مورد توجه قرار گرفته است. اما در زیربار135 زیاد، برخلاف iSLIP معمولی، بازده iSLIP اولویت دار به شدت کاهش می یابد. در این جا ابتدا به معرفی الگوریتم iSLIP اولویت دار می پردازیم، سپس دلایل کاهش بازده آن را مورد بررسی قرار می دهیم و سرانجام به ارائه راه حل هایی برای حل این مشکل خواهیم پرداخت.
4-8-2- الگوریتم iSLIP اولویت دار
هنگامی که ترافیک ورودی دارای چندین اولویت می باشد، iSLIP معمولی با تغییراتی به iSLIP اولویت دار تبدیل می شود. دراین حالت هر ورودی یک صف FIFO جداگانه برای هر سطح اولویت و هر خروجی دارد. این بدین معنی است که برای یک سوئیچ N×N با P سطح اولویت هر ورودی N×P صف FIFO دارد. صفi,j))Ql که صف بین ورودیi و خروجی j در سطح l می باشد تنها در صورتی سرویس می گیرد که کلیه صفهای Qm(i,j) که l<m<p خالی باشند. سه مرحله هر تکرار از الگوریتم iSLIP الویت دار به صورت زیر می باشند:
1- تقاضا : ورودی i صف غیر خالی با بالاترین اولویت را برای خروجی j انتخاب می کند. ورودی i سپس تقاضای سطح lj را برای خروجی j ارسال می کند.
2- موافقت : اگر خروجی j تقاضایی دریافت کند، تقاضای با بالاترین سطح را پیدا می کند (به عنوان مثال :(L(j)=maxi(lij). خروجی j سپس یک ورودی را از میان ورودی های متقاضی در سطح L(j) انتخاب می کند. هر خروجی یک اشاره گر جداگانه gjl برای هر سطح اولویت دارد. هنگام انتخاب ورودی ها در سطح L(j)، خروجی j با استفاده از اشاره گر gjL(j) و سیستم نوبتی چرخشی مانند حالتiSLIP معمولی عمل می کند. خروجی j سپس به هر ورودی اطلاع می دهد که با تقاضایش موافقت شده است یا نه. اشاره گر gjL(j) به یک نوبت بعد از ورودی که با تقاضای آن موافقت شده است تغییر پیدا می کند اگر و فقط اگر آن ورودی خروجی j را در مرحله سوم از تکراراول الگوریتم بپذیرد.
3- پذیرش : اگر ورودی i موافقتی دریافت کند، موافقت با بالاترین سطح را پیدا می کند (به عنوان مثال :(i)=maxj(lij)). ورودی i سپس یک خروجی را از میان خروجی های موافقت کننده در سطح (i) انتخاب می کند. هر ورودی یک اشاره گر جداگانه ail برای هر سطح اولویت دارد. هنگام انتخاب خروجی ها در سطح (i)ورودی i با استفاده از اشاره گر aiL′(i) و سیستم نوبتی چرخشی مانند قبل عمل می کند. ورودی i سپس به هرخروجی اطلاع می دهد که موافقت ارسالیش مورد پذیرش قرار گرفته است یا نه. اشاره گر aiL′(i) به یک نوبت بعد از خروجی که مورد پذیرش قرار گرفته، افزایش می یابد اگر این تکرار اول الگوریتم باشد.
شکل 4-5 عملکرد الگوریتم iSLIP اولویت دار با دو سطح اولویت و چهار تکرار را در یک سوئیچ 16×16 تحت ترافیک برنولی و زنجیره ای با طول 32 نشان می دهد.
شکل 4-5- عملکرد الگوریتم iSLIP اولویت دار با دو سطح اولویت و چهار تکرار در یک سوئیچ 16×16 تحت ترافیک برنولی و زنجیره ای با طول 32
در این اندازه گیری فرض شده است که 10% سلولها دارای اولویت بالا (اولویت یک) و90% سلولها دارای اولویت پایین (اولویت دو) می باشند. این موضوع تقریبا به این واقعیت نزدیک است که ترافیک سیگنالنیگ و کاربردهای زمان حقیقی که معمولاً در اولویت یک قرار میگیرند کمتر از 5% حجم کل ترافیک شبکه را تشکیل می دهند که در بدترین حالات ممکن است به 10% برسد.
اگر چه عملکرد iSLIP اولویت دار تحت ترافیک برنولی قابل قبول می باشد، هنگامی که ترافیک ورودی بصورت زنجیره ای می باشد برای بارهای حدود 88% الگوریتم، ناپایدار می شود. برای توجیه این ضعف درعملکرد iSLIP اولویت دار، یک سوئیچ 8×8 را در نظر می گیریم. الگوریتم iSLIP برای این سوئیچ باید در سه تکرار به همگرایی برسد (3=8 log2 ).
اگر فرض کنیم ترافیک ورودی بصورت زنجیره ای باشد و حجم ترافیک اولویت یک کمتر از اولویت دو باشد (مثلاً 10% برای اولویت یک و 90% برای اولویت دو)، با بررسی وضعیت سوئیچهای زیر بار شبکه و یا با استفاده از شبیه سازی می بینیم که مدتی پس از شروع به کار سوئیچ، تقریباً همه پورتهای ورودی، سلولهای با اولویت دو برای هر یک از پورتهای خروجی دارند. این بدین معنی است که تقریباً همه VOQ های سطح دو حداقل یک سلول برای ارسال دارند.
دراین حالت اگر یک زنجیره از سلولهای با اولویت یک مثلاً از ورودی 4 به خروجی 6 بیاید، اشاره گرهای موافقت سطح دو همه خروجی ها (2(gj، بجز خروجی 6، آنقدر با تقاضاهای سطح دراین حالت اگر یک زنجیره از سلولهای با اولویت یک مثلاً از ورودی 4 به خروجی 6 بیاید، اشاره گرهای موافقت سطح دو همه خروجی ها (2(gj ، بجز خروجی 6، آنقدر با تقاضاهای سطح
شکل 4-6- مثالی از وضعیت همزمانی در یک سوئیچ 8×8
دو ورودی ها موافقت می کنند و مقدارشان تغییر پیدا می کند تا به ورودی 4 برسند. هنگامی که 4=2gj ، تا زمانی که زنجیره سطح یک از ورودی 4 به خروجی 6 ادامه دارد، همان مقدار 4 باقی می ماند. این وضعیت که به آن وضعیت همزمانی می گوییم و در شکل 4-6 نشان داده شده است، به این علت بوجود می آید که ورودی 4 برای همه خروجی ها سلول سطح دو دارد، بنابراین یک تقاضای سطح یک به خروجی 6 وهفت تقاضای سطح دو به بقیه خروجی ها می فرستد. خروجی 6 با تقاضای سطح یک ورودی 4 موافقت می کند و از آنجا که اشاره گر موافقت سطح دو بقیه خروجیها به ورودی 4 رسیده است، آنها هم به ورودی 4 در سطح دو موافقت می فرستند. در میان این موافقت ها ووردی 4 موافقت سطح یک خروجی 6 را می پذیرد و بنابراین در تکرار اول فقط یک ارتباط بین ورودی 4 و خروجی 6 در سطح یک پیدا می شود. اشاره گر موافقت سطح یک خروجی 6 به مقدار 5 و اشاره گر پذیرش سطح یک ورودی 4 هم به مقدار 7 تغییر پیدا خواهد کرد، اما از آنجا که جریان سطح یک دیگری وجود ندارد، در بازه های زمانی بعدی نیز همین ارتباط برقرار خواهد شد.
در تکرار دوم تقاضاهای ورودی 4 و تقاضاهایی که برای خروجی 6 هستند در نظر گرفته نخواهند شد. بنابراین هر هفت خروجی باقی مانده با تقاضای ورودی 5 موافقت می کنند. در میان این موافقت ها ورودی 5 فقط یک موافقت را می پذیرد که در این مثال خروجی 3 می باشد. بنابراین در تکرار دوم یک ارتباط سطح دو بین ورودی 5 و خروجی 3 پیدا می شود.
به طور مشابه در تکرار سوم هر شش خروجی باقی مانده با تقاضای ورودی 6 موافقت می کنند که ورودی 6 فقط موافقت خروجی که برابر اشاره گر پذیرش آن می باشد را می پذیرد. در این مثال این خروجی، خروجی شماره 8 می باشد. بنابراین در تکرار سوم یک ارتباط سطح دو دیگر بین ورودی 6 و خروجی 8 پیدا می شود. می بینیم که هنگامی که الگوریتم در وضعیت همزمانی است، از هشت ارتباط ممکن فقط سه ارتباط می تواند برقرار کند.
از آنجا که اشاره گرها فقط در تکرارهای اول می تواند مقدارشان عوض شود، اشاره گرهای موافقت سطح دو خروجی ها همان مقدار 4 باقی می ماند و تا وقتی که زنجیره سلولهای سطح یک از ورودی 4 به خروجی 6 تمام شود، الگوریتم در هر بار فقط 3 ارتباط می تواند برقرار کند.
در واقع بدون توجه به این که چند سطح اولویت در سوئیچ وجود دارد، چنین زنجیره های با سطح اولویت بالا می تواند باعث همزمانی اشاره گرهای موافقت سطوح پایین تر شود. حتی در سوئیچ های با تعداد پورتهای بیشتر، اگر فقط تعدادی از اشاره گرهای موافقت بر روی یک ورودی قفل شوند، تعداد ارتباط ها کاهش شدید می یابد. چنین حالتهای همزمانی مکررا اتفاق می افتند و دلیل اصلی برای کاهش بازده iSLIP اولویت دارهستند. حال به بررسی راه های ممکن برای حل این مشکل می پردازیم.
اگر اشاره گرها در هر تکرار مقدارشان تغییر پیدا کند، الگوریتم هرگز در وضعیت همزمانی گرفتار نخواهد شد. اما در ]9[ نشان داده شده است که اگر اشاره گرها در هر تکرار مقدارشان تغییر پیدا کند، ممکن است در بعضی پورتها پدیده گرسنگی اتفاق بیافتد.
یک روش دیگر این است که اشاره گرهای موافقت بعد از هر موافقت مقدارشان تغییر پیدا کند، بدون توجه به اینکه این موافقت در مرحله سوم پذیرفته شود یا نه، این الگوریتم همان الگوریتم تکرار شونده Round-Robin می باشد که بازده آن نزدیک به iSLIP می باشد، اما در ]9[ نشان داده شده است که این الگوریتم نیز مشکل گرسنگی دارد و استفاده از الگوریتمی که دارای چنین مشکلی باشد، هرگز توصیه نمی شود.
افزایش تعداد تکرارها راه حل دیگری است که می تواند برای رفع این مشکل مفید باشد. با افزایش تعداد تکرارها، هنگامی که الگوریتم در وضعیت همزمانی گرفتار شده است، به ازای هر تکرار اضافی یک ارتباط به ارتباط های قبلی اضافه خواهد شد. شبیه سازی ها نشان می دهد که افزایش تعداد تکرارها از log2N به log2N2 می تواند این مشکل را برطرف کند و عملکرد iSLIP اولویت دارا را بهبود بخشد.
شکل 4-7- عملکرد iSLIP اولویت دار با هشت تکرار را در یک سوئیچ 16×16 نشان میدهد. برخلاف 4SLIP اولویت دار، 8SLIP اولویت دار حتی تحت ترافیک زنجیره ای نیز برای بارهای حدود 100% پایدار است. بنابراین با دو برابر کردن تعداد تکرارها، عملکرد iSLIP اولویت دار قابل قبول خواهد شد اما زمان اجرای الگوریتم نیز دو برابر می شود و این مساله در سرعتهای بالا که فرصت کمی برای زمانبندی سلولها، وجود دارد مشکل ساز خواهد شد. به عنوان یک پیشنهاد برای حل این مشکل در قسمت بعد به معرفی الگوریتم iSLIP اولویت دار بهنیه136 خواهیم پرداخت.
شکل 4-7- عملکرد الگوریتم iSLIP اولویت دار با دو سطح اولویت و هشت تکرار در یک سوئیچ 16×16 تحت ترافیک برنولی و زنجیره ای با طول 32
4-8-3- الگوریتم iSLIP اولویت دار بهینه
ایده الگوریتمiSLIP اولویت دار بهینه براساس یک تغییر ساده ولی بسیار موثر در الگوریتم iSLIP اولویت دار می باشد. اگر هنگام تغییر دادن مقادیر اشاره گرها، نیمی از آنها را درجهت افزایشی و نیم دیگر را در جهت کاهشی تغییر دهیم عملکرد الگوریتم به مقدار زیادی بهبود می یابد این بدین معنی است که باید ورودی ها و خروجی ها را به دو دسته تقسیم نمود، مثلا ورودی ها و خروجی های با شماره فرد و ورودی ها و خروجی های با شماره زوج. هنگامی که یک اشاره گر موافقت باید مقدارش تغییر پیدا کند، به یک مقدار بعد از ورودی که با تقاضای آن موافقت شده افزایش می یابد اگر متعلق به یک خروجی فرد باشد و یا به یک مقدار قبل از ورودی که با تقاضای آن موافقت شده کاهش می یابد اگر متعلق به یک خروجی زوج باشد. بطور مشابه هنگامی که یک اشاره گر پذیرش باید مقدارش تغییر پیدا کند، به یک مقدار بعد از خروجی که پذیرفته شده افزایش می یابد اگر متعلق به یک ورودی فرد باشد و یا به یک مقدار قبل از خروجی پذیرفته شده کاهش می یابد اگر متعلق به یک ورودی زوج باشد.
هنگامی که از الگوریتمiSLIP اولویت دار بهینه استفاده می شود، باز هم الگوریتم در وضعیت همزمانی گرفتارمی شود، اما این بار تعداد ارتباطهای بیشتری برقرار خواهد شد. دلیل این موضوع هم واضح می باشد، مثلا در شکل 4-6 الگوریتم iSLIP اولویت دار بهینه در تکرار اول همان یک ارتباط را پیدا می کند اما در تکرار دوم خروجی های فرد (1،3،5،7) به ورودی 5 موافقت ارسال می کنند و خروجی های زوج باقیمانده (2،4،8) به ورودی 3 موافقت ارسال می کنند. بنابراین در تکرار دوم، دو ارتباط سطح دو بین ورودی 3 و خروجی 2 و همچنین ورودی 5 و خروجی 3 پیدا خواهد شد. به همین ترتیب در تکرار سوم هم دو ارتباط سطح دو دیگر بین ورودی 2 و خروجی 8 و همچنین ورودی 6 و خروجی 7 پیدا خواهد شد. پس می بینیم که تعداد ارتباطها از سه ارتباط برای iSLIP اولویت دار به پنج ارتباط برای iSLIP اولویت دار بهینه افزایش پیدا کرده است. در وضعیت های همزمانی مشابه نیز iSLIP اولویت دار بهینه تعداد ارتباط های بیشتری را برقرار خواهد کرد و باعث بهبود عملکرد خواهد شد.
شکل 4-8 عملکرد الگوریتم iSLIP اولویت دار بهینه را در یک سوئیچ 16×16 نشان می دهد. مشاهده می شود که بر خلاف iSLIP اولویت دار که برای بارهای حدود 88% به ناپایداری می رسد،iSLIP اولویت دار بهینه برای بارهای تا حدود 100% پایدار باقی می ماند. از آنجا که عملکرد این الگوریتمها برای سلولهای اولویت یک مشابه می باشد، در شکل 4-9 عملکرد iSLIP اولویت دار با چهار و هشت تکرار و iSLIP اولویت دار بهینه با چهار تکرار برای سلولهای اولویت دو تحت ترافیک زنجیره ای مقایسه شده است. می توان این گونه نتیجه گرفت که عملکرد iSLIP اولویت دار بهینه با log2N تکرار تقریباً مشابه عملکرد iSLIP اولویت دار با log2N2 تکرار می باشد.
البته در حالت معمولی آن، iSLIP بهینه عملکردی مشابه iSLIP معمولی دارد. این بدین علت است که وقتی فقط یک سطح اولویت وجود دارد هر ورودی (یاخروجی) فقط یک اشاره گر پذیرش (یا موافقت ) دارد و دیگر وضعیت همزمانی مانند شکل 4-6 بوجود نخواهد آمد. بنابراین دیگر تغییر مقدار اشاره گرها در دو جهت مختلف تاثیری در عملکرد الگوریتم نخواهد داشت. iSLIP بهینه هم مانند iSLIP الگوریتمی بدون گرسنگی می باشد زیرا هر ورودی آنقدر برای یک خروجی تقاضا می فرستد تا آن ارتباط برقرار شود.
شکل 4-8- عملکرد الگوریتم iSLIP اولویت دار بهینه با دو سطح اولویت و چهار تکرار در یک سوئیچ 16×16 تحت ترافیک برنولی وزنجیره ای با طول 32
اگر چه عملکرد iSLIP اولویت دار بهینه خیلی بهتر از iSLIP اولویت دار می باشد، بخاطر ساختار مشابه، هیچگونه پیاده سازی سخت افزاری اضافی برای iSLIP اولویت دار بهینه لازم نمی باشد و کلیه خواص سادگی، سرعت بالا و پیاده سازی آسان در آن وجود دارد. بنابراین در مدل سوئیچ MPLS از الگوریم iSLIP اولویت دار بهینه استفاده خواهیم کرد.
شکل 4-9- مقایسه عملکرد الگوریتم iSLIP اولویت دار با چهار و هشت تکرار با الگوریتم iSLIP اولویت دار بهینه با چهار تکرار برای سلولهای اولویت دو در یک سوئیچ 16×16 تحت ترافیک زنجیره ای با طول 32
4-9- مدلسازی کارت خط در خروجی
بعداز اینکه سلولها از فابریک سوئیچ عبور می کنند، وارد صفهای خروجی فابریک سوئیچ می شوند. فابریک سوئیچ می تواند در هرپورت خروجی یک صف داشته باشد که در این صورت هرگاه سلول آخر یک بسته وارد صف شد، کارت خط با توجه به شماره سلولها پورت ورودی و کلاسشان آنها را از صف بر می دارد و به قسمت سرهم کردن سلولها می فرستد. فابریک سوئیچ می تواند در خروجی به اندازه VOQ های ورودی صف داشته باشد که در این صورت هرگاه به یکی از صفهای یک پورت خروجی سلول آخر بسته وارد شد، سلولهای آن صف به قسمت سرهم کردن فرستاده می شوند. ساختار صفهای خروجی فابریک سوئیچ هر نوع که باشد، کارت خط در خروجی باید به ترتیب مراحل زیر را انجام دهد :
1- سلولها از فابریک سوئیچ تحویل گرفته می شوند و هنگامی که سلول آخر یک بسته دریافت شد، آنها به قسمت سرهم کردن سلولها فرستاده می شوند. در آنجا سرفصل سلولها برداشته می شود وسلولها کنار هم قرار داده میشوند تا بسته ها به همان صورت اول درست شوند.
2- بسته ها براساس کلاس سرویسشان به صفهای مربوطه در خط خروجی فرستاده می شوند.
3- زمانبند لیک خروجی با توجه به الگوریتم زمانبدی بکار رفته، بسته ها را برای ارسال روی خط خروجی می فرستد. این بسته ها بعد از عبور از مدولاتورهای لایه دو و لایه فیزیکی روی خط انتقال می روند.
برای زمانبندی در خط خروجی الگوریتمهای متنوعی ارائه شده اند که معروفترین آنها WRR و DWRR می باشند.
4-9-1 – الگوریتم WRR1
در این روش برای هر کلاس سرویس یک صف در هر پورت خروجی در نظر گرفته می شود و بسته ها بعد از عبور از قسمت سرهم بندی وارد صف مربوطه می شوند.
در روش WRR به هر صف درصدی از پهنای باند خط خروجی اختصاص داده می شود که مبنای آن تعداد بسته هایی است که در هر نوبت از هر صف می تواند روی خط خروجی برود. به عنوان مثال اگر دو کلاس سرویس مختلف در سوئیچ وجود داشته باشد، در هر خط خروجی دو صف وجود خواهد داشت که با توجه به مقدار ترافیک هر یک از کلاسها و مشخصات تاخیر و جیتر لازم برای هر کلاس، درصدی از پهنای باند به هر یک از صفها اختصاص خواهد یافت. اگر 40% پهنای باند را به کلاس یک و 60% پهنای باند را به کلاس دو اختصاص دهیم در این صورت باید به یک چنین نسبتی ازهر یک از صفها بسته برداشته شود، مثلاً دو بسته از صف کلاس یک و سه بسته از صف کلاس دو.
WRR به سادگی قابل پیاده سازی می باشد و در کاربردهایی که طول بسته ها ثابت می باشد (مانند ATM )، عملکردبسیار خوبی دارد، ولی از آنجا که طول بسته های IP متغیر میباشد، اختصاص پهنای باند براساس تعداد بسته ها نمی تواند روش مطمئنی برای تضمین کیفیت سرویس کلاسهای مختلف ترافیک باشد. از این رو به بررسی الگوریتم DWRR می پردازیم.
4-9-2- الگوریتم DWRR137
الگوریتم DWRR که برای رفع مشکل WRR در کاربردهای با بسته های با طول متغیر پیشنهاد شده است برای هر کلاس مختلف یک صف مجزا در هر پورت در نظر می گیرد و به هر صف چندین متغیر نسبت داده می شود.
1- وزن هر صف که مشخص کننده درصدی از پهنای باند اختصاص یافته به آن است.
2- میزان138 سرویس که متناسب با وزن هر صف میباشد و به واحد بایت می باشد. اگر میزان سرویس یک صف دو برابر صف دیگر باشد، آنگاه وقتی هر دو صف بسته برای ارسال دارند، صف اول دو برابر صف دوم پهنای باند در اختیار خواهد داشت.
3- DC139 که مشخص کننده کل بایتهایی است که یک صف در یک نوبت می تواند ارسال کند. DC به صفی که در نوبت قبلی نتوانسته بود که بسته خود را ارسال کند (بعلت اینکه طول بسته از مقدار DC بیشتر بود) اجازه می دهد که اعتبار140 ارسال برای خود ذخیره کند و از آن در نوبت بعد استفاده کند.
هنگام اجرای الگوریتم DWRR، زمانبند هر یک از صفهایی که بسته در آنها وجود دارد را چک می کند و تعداد بایتهای بسته سر صف را در نظر می گیرد. DC صف را به اندازه میزان سرویس آن صف افزایش می دهد. اگر اندازه بسته سرصف از مقدار DC بیشتر باشد، زمانبد آن صف را رها کرده و به صف بعدی می رود. اگر اندازه بسته سر صف مساوی یا کمتر از مقدار DC باشد، آنگاه مقدار DC به اندازه تعداد بایتهای بسته کاهش می یابد و بسته ارسال می شود. این کار آنقدر ادامه می یابد تا اندازه بسته سرصف از مقدار DC بیشتر شود یا صف خالی شود. اگر صف خالی شود مقدار DC آن صفر می شود و زمانبند به صف بعدی می رود.
با کمک الگوریتم DWRR صفها بصورت دقیق به اندازه وزن اختصاص یافته به آنها سرویس می گیرند و از آنجا که DWRR براحتی قابل پیاده سازی در سخت افزار می باشد، در این پروژه از این الگوریتم برای زمانبندی بسته ها در خط خروجی استفاده خواهیم کرد.
فصل پنجم
شبیه سازی کل سوئیچ
5-1- مقدمه
همانطور که در فصلهای گذشته ذکر شد در MPLS سه بیت برای کلاس سرویس در نظر گرفته شده است که بوسیله آنها می توان هشت نوع کلاس مختلف را مشخص نمود. در حال حاضر تلاشهای زیادی در جهت تهیه یک استاندارد واحد برای کلاس های مختلف سرویس درحال انجام می باشد و تا کنون نیز تقسیم بندی های متفاوتی ارائه شده است که در اکثر آنها ترافیک شکبه به انواع هدایت سریع (EF)141، هدایت مطمئن (AF)142 و بهترین تلاش (Best effort) تقسیم بندی می شود. تفاوت بین انواع تقسیم بندی ها معمولاً در تعداد تقسیماتی است که در داخل این انواع ترافیک صورت می گیرد. به عنوان مثال در یکی از تقسیم بندی ها که برای سرویسهای متمایز پیشنهاد شده است دوازده تقسیم بندی در داخل ترافیک AF تعریف شده است (بصورت چهار کلاس با سه اولویت حذف143 ) با این توضیحات برای تولید ترافیک برای انجام عملیات شبیه سازی در این پروژه کلاس های MPLS را بصورت زیر در نظر خواهیم گرفت:
کلاس یک : EF
کلاس دو : ,x)1AF( ؛ 3،2،1 x=
کلاس سه : ,x)2AF( ؛ 3،2،1 x=
کلاس چهار : Best effort
ترافیک EF شامل ترافیک سیگنالینگ و کاربردهای زمان حقیقی مانند ویدوئو و یا صوت می باشد. این نوع ترافیک چیزی کمتر از 5% کل حجم ترافیک شبکه را تشکیل می دهد که ما در اینجا با کمک روشهای کنترل جریان حداکثر تا 8% پهنای باند ورودی را به آن اختصاص خواهیم داد.
ترافیک AF که بصورت,x)1AF( و,x) 2AF( نشان داده شده است، شامل دو کلاس مختلف در داخل ترافیک AF با سه اولویت حذف برای هر کدام از آنها می باشد (x نشان دهنده اولویت حذف هر یک از کلاسها می باشد). حداکثر پهنای باند برای هر یک از کلاسهای AF را 21% در نظر گرفته ایم که بصورت 7% برای هر یک از اولویت های حذف موجود در هر کلاس می باشد. هنگامی که بعلت پرشدن بافرهای سوئیچ، تصمیم به دور انداختن بسته ها گرفته شود، ابتدا بسته های با اولویت حذف پایین تر دور انداخته میشوند.
ترافیک بهترین تلاش که عمده ترافیک شبکه را تشکیل می دهد از 50% پهنای باند شبکه استفاده خواهد کرد. بدیهی است که اگرمجموع ترافیک کلاسهای بالاتر کمتر از 50% باشد پنهای باند آنها به ترافیک بهترین تلاش اختصاص خواهد یافت لازم به ذکر است که این تقسیم بندی فقط برای انجام عملیات شبیه سازی روی سوئیچ صورت گرفته است و با هر گونه تغییر در ترافیک شبکه براحتی می توان با تغییر پارامترهای مربوط به وزن هر کلاس و طول صفهای مربوطه در سوئیچ شرایط مطلوب برای هر کلاس سرویس را فراهم نمود.
5-2- اعمال ترافیک به سوئیچ
از آنجا که ترافیک EF باید حداقل تاخیر ممکن را هنگام عبور از سوئیچ تحمل کند، در فابریک سوئیچ در الگوریتم iSLIP اولویت دار بهینه الویت یک به ترافیک EF اختصاص داده خواهد شد. در زمانبند خط خروجی که DWRR می باشد نیز ترافیک EF به عنوان کلاس یک، بیشترین وزن را خواهد داشت. با دادن وزن زیاد به ترافیک EF در زمان بند خط خروجی و یا حتی اولویت نسبت به ترافیک های دیگر حداقل تاخیر برای این ترافیک تضمین خواهد شد.
در مورد ترافیک های AF و بهترین تلاش نیز در زمانبند خروجی به راحتی می توان با تغییر وزن هر کلاس تاخیر مورد نظر را در این قسمت بدست آورد. اما نکته مهم در مورد این ترافیک ها در قسمت فابریک سوئیچ می باشد. هنگامی که چندین کلاس مختلف برای عبور از فابریک سوئیچ وجود دارند دو روش مختلف می توان انجام داد.
در روش اول می توان تعدادی از کلاسها را به یک اولویت نگاشت کرد. در این نگاشت می توان به کلاسهای بالاتر پهنای باند بیشتری اختصاص داد. به عنوان مثال در این پروژه می توان کلاس یک را به اولویت یک و کلاسهای دو، سه و چهار را با استفاده از WRR به اولویت دو نگاشت کنیم. شکل 5-1 این موضوع را نشان می دهد:
شکل 5-1- چگونگی نگاشت چهار کلاس MPLS به دو اولویت برای انتقال در فابریک سوئیچ
بدین صورت سلولها ابتدا توسط الگوریتم WRR از صفهای اولیه برداشته می شوند (به صورت سلولهای بیشتر از صفهای باکلاس بالاتر در هر نوبت) و سپس وارد دو VOQ فابریک سوئیچ می شوند. هنگامی که از این روش استفاده می کنیم، تاخیر سلول های کلاس های مختلف در فابریک سوئیچ تحت ترافیک زنجیره ای بصورت شکل 5-2 خواهد بود.
ملاحظه می شود که تاخیر ترافیک EF بسیار ناچیز می باشد اما ترافیک های ,x)1AF( و ,x)2AF( تاخیر نسبتا زیادی را متحمل می شوند، اگر چه تاخیر آنها از تاخیر ترافیک بهترین تلاش کمتر می باشد. دلیل این مطلب آن است که بعد از نگاشت ترافیک های دو، سه و چهار به اولویت دو، الگوریتم زمانبندی فابریک سوئیچ با همه آنها بطور یکسان رفتار خواهد کرد. بنابراین اگر بخواهیم برای ترافیک های AF تاخیر کمتری داشته باشیم باید از روش دوم استفاده کنیم.
در روش دوم به ازای هر کلاس ترافیک، یک اولویت خواهیم داشت. بنابراین با چهار کلاس متفاوت MPLS، بصورت چهار سطح اولویت یک، دو، سه و چهار در الگورتیم زمانبندی فابریک سوئیچ رفتار خواهد شد.
شکل 5-2- تاخیرسلول های کلاس های مختلف درفابریک سوئیچ MPLS هنگام استفاده از دو الویت تحت ترافیک زنجیره ای با طول 32
شکل 5-3 تاخیر سلول های کلاس های مختلف در فابریک سوئیچ را هنگام استفاده از این روش تحت ترافیک زنجیره ای نشان می دهد.
همانطور که انتظار می رود تاخیر کلاس های EF همانند حالت قبل می باشد ولی تاخیر کلاس های ,x)1AF( و ,x)2AF( کمتر شده است و در مقابل تاخیر ترافیک بهترین تلاش افزایش یافته است. از آنجا که این مقدار افزایش تاخیر برای ترافیک بهترین تلاش اهمیت زیادی ندارد، از این روش استفاده خواهیم نمود. اما باید به این نکته مهم توجه نمود که اگر پهنای باند ورودی پایین ترین کلاس ( بهترین تلاش ) کم در نظر گرفته شود، استفاده از این روش می تواند به
شکل 5-3- تاخیر سلول های کلاس های مختلف در فابریک سوئیچ MPLS هنگام استفاده از چهار اولویت تحت ترافیک زنجیره ای با طول 32
گرسنگی این نوع ترافیکی منتهی شود و عملا این نوع ترافیک از سوئیچ عبور نکند. در حال حاضر ترافیک بهترین تلاش حدود 80% کل حجم ترافیک را تشکیل می دهد و ما برای آن حداقل 50% پهنای باند ورودی را در نظر گرفته ایم. اگر به عنوان مثال این حداقل را به 10% برسانیم، سوئیچ به ترافیک بهترین تلاش هرگز سرویس نخواهد داد، زیرا همواره ترافیک های کلاس بالاتر با حجم 90% اولویت خواهند داشت.
با در نظر گرفتن چهار اولویت مجزا در فابریک سوئیچ و استفاده از الگوریتم DWRR در زمانبند خط خروجی، در شکل 5-4 تاخیر بسته های کلاس های مختلف در سوئیچ تحت ترافیک آماری که در بخش 4-6-3 در باره آن توضیح داده شد، رسم شده است.
شکل 5-4- تاخیر بسته های کلاس های مختلف در سوئیچ MPLS تحت ترافیک آماری
نکته مهم دیگر در انتقال بسته ها، جیتر144 می باشد. جتیر که همان انحراف معیار تاخیر بسته ها می باشد نیز مساله ایست که در تضمین کیفیت سرویس به آن توجه می شود. اهمیت جیتربیشتر در کاربردهای زمان حقیقی نمود پیدا می کند که جزو ترافیک EF می باشند. جیتر زیاد برای این نوع ترافیک همیشه مورد اعتراض کاربران می باشد. شکل 5-5 تغییرات جیتر را در سوئیچ MPLS ما نشان می دهد. ملاحظه می شود که جیتر ترافیک EF حتی دربارهای خیلی زیاد نیز کاملاً محدود می باشد و امکان تضمین تغییرات تاخیر را نیز برای این کلاس ممکن می کند.
شکل 5-5- جتیر بسته های کلاس های مختلف در سوئیچ MPLS تحت ترافیک آماری
تاکنون طول صفهای قسمتهای مختلف را بی نهایت در نظر گرفتیم ولی در یک سوئیچ واقعی باید طول صفها محدود باشد. بنابراین باید یک حد بالا برای طول صفهای کلاس های مختلف بیابیم. برای اینکار به سوئیچ ترافیک زنجیره ای با طول 32 اعمال کردیم تا میانگین طول صفهای VOQ و همچنین صفهای زمانبند خط خروجی مشخص شود. شکل های 5-6 و 5-7 میانگین طول این صفها را نشان می دهند.
با توجه به نمودارهای فوق طول پیشنهادی برای VOQ ها بصورت زیر می باشد:
1- طول VOQهای کلاس یک: 10 سلول
2- طول VOQهای کلاس دو: 10 سلول
3- طول VOQهای کلاس سه: 50 سلول
4- طول VOQهای کلاس چهار: 500 سلول
شکل 5-6- میانگین طول VOQها در سوئیچ MPLS تحت ترافیک زنجیره ای با طول 32
همچنین طول پیشنهادی برای صفهای زمانبند خط خروجی با در نظر گرفتن این نکته که هر صف حداقل گنجایش دو بسته با بیشترین طول (1500 بایت) را داشته باشد، بصورت زیر می باشد:
1- طول صفهای کلاس یک: 50 سلول
2- طول صفهای کلاس دو: 50 سلول
3- طول صفهای کلاس سه: 100 سلول
4- طول صفهای کلاس چهار: 2000 سلول
شکل 5-7- میانگین طول صفهای زمانبد خط خروجی در سوئیچ MPLS تحت ترافیک زنجیره ای با طول 32
4-11- کنترل جریان145
هدف از کنترل جریان جلوگیری از پرشدن صفها و پدیده تراکم در سوئیچ می باشد. تاکنون روشهای زیادی برای این کار ارائه شده است که معروفترین آنها تشخیص اولیه اتفاقی (RED) 146 می باشد. در این روش قبل از اینکه صفهای سوئیچ پر شود، تعدادی از بسته ها دور انداخته می شوند تا بدین ترتیب باعث شوند لایه TCP نرخ ارسال بسته ها را کاهش دهد. احتمال دور انداختن بسته ها با افزایش طول صف زیاد می شود. شکل 5-8 چگونگی تغییرات احتمال دور انداختن بسته ها را نشان می دهد.
شکل 5-8- تغییرات احتمال دور انداختن بسته ها براساس طول صف در روش کنترل جریان RED
هنگامی که طول صف از یک آستانه مینیمم کمتر می باشد، هیچ بسته ای دور انداخته نمی شود ولی با افزایش طول صف از آستانه مینیمم تا آستانه ماکزیمم، احتمال دور انداختن بسته ها هم از صفر تا ماکزیمم احتمال دور انداختن افزایش می یابد. اگر طول صف از آستانه ماکزیمم نیز بیشتر شود، همه بسته ها دور انداخته می شوند. از این روش می توان برای کنترل جریان ترافیک های EF و بهترین تلاش استفاده نمود ولی برای ترافیک های ,x)1AF( و ,x)2AF( باید از RED با سه آستانه استفاده نمود. شکل 5-9 تغییرات احتمال دور انداختن بسته ها در RED با سه آستانه را نشان می دهد.
به عنوان مثال با اعمال این روش برای ,x)1AF(، هنگامی که طول صف از Min3 بگذرد احتمال دور انداختن بسته های)3,1AF( از صفر افزایش می یابد و وقتی طول صف از Max3 بگذرد این احتمال یک می شود. همچنین اگر طول صف به ترتیب از Min2 و Min1 بگذرد دور انداختن بسته های)2,1AF( و )1,1AF( آغاز می شود و بعد از Max2 و Max1 همه بسته ها دور انداخته می شوند.
شکل 5-9- تغییرات احتمال دور انداختن بسته ها براساس طول صف در روش کنترل جریان RED با سه آستانه
فصل ششم
نتیجه گیری و پیشنهادات
6-1- مقدمه
در این پایان نامه ابتدا به بررسی مسائل مربوط به کیفیت سرویس در اینترنت و فنآوری های شبکه پرداختیم و درباره مشکلات موجود و راه حلهای پیشنهاد شده برای آنها توضیحاتی ارائه شد. سپس فنآوری MPLS به عنوان یک فنآوری با قابلیت تضمین کیفیت سرویس و مجتمع سازی فنآوری های مختلف لایه دو و سه معرفی گردید. در ادامه ساختارهای مختلف برای سوئیچ های شبکه مورد بررسی قرار گرفت و مدلی برای یک سوئیچ MPLS ارائه شد و در نهایت با استفاده از زبان شبیه سازی SMPL، این سوئیچ شبیه سازی گردید.
6-2- نتیجه گیری
1- استفاده از عملیات ساده تبادل برچسب در MPLS به جای آدرس یابی IPباعث کاهش تاخیر در پردازشات کارت خط ورودی شده است. زمان لازم برای تبادل برچسب آنقدر کم می باشد که در مقایسه با زمانهای لازم برای زمانبندی در فابریک سوئیچ و خط خروجی قابل صرفنظر کردن می باشد.
2- الگوریتم زمانبندی iSLIP اولویت دار بهینه که در این پایان نامه معرفی گردید و عملکرد بسیار بهتری نسبت به iSLIP اولویت دار دارد، محدود به سوئیچ MPLS نمی باشد و می تواند در کلیه فابریک سوئیچ هایی که به منظور پشتیبانی ترافیک های با اولویت های متفاوت ساخته می شوند، مورد استفاده قرار بگیرد.
3- میزان تاخیر کلاسهای مختلف را می توان به راحتی با تغییر پارامترهای وزنی الگوریتم DWRR کنترل کرد. البته باید به این نکته توجه نمود که افزایش وزن یک کلاس معادل کاهش تاخیر بسته های آن کلاس و افزایش تاخیر بسته های کلاسهای دیگر خواهد شد.
4- پیشنهاداتی که برای طول صفها در فابریک سوئیچ و زمانبند خط خروجی ارائه شد، با توجه به نوع تقسیم بندی ترافیکی انجام شده و مقادیر پارامترهای وزنی الگوریتم DWRR بوده است و با تغییر آنها طول صفها را نیز باید تغییر داد.
6-3- پیشنهادات
1- در این پروژه فنآوری لایه دوم PPP در نظر گرفته شد که یک فنآوری مبتنی بر فریم می باشد. مدلسازی MPLS بر روی فنآوری های لایه دوم مبتنی بر سلول مثل ATM به عنوان یکی از کارهای آینده پیشنهاد می شود.
2- در شبیه سازی سوئیچ MPLS، ما از سه بیت در نظر گرفته شده برای کلاس سرویس در MPLS استفاده نمودیم. استفاده از سرویسهای متمایز در MPLS مبحثی است که جدیدا مطرح شده است و تحقیق در مورد تکنیکهایی که این کار را امکان پذیر می نماید ادامه دارد.
3- استفاده از یک شبیه ساز TCP می تواند شبیه سازی قسمتهای کنترل جریان سوئیچ را مقدور نماید. از آنجا که الگوریتم های کنترل جریان بر اساس عکس العمل های لایه TCP به حذف بسته ها طراحی می شوند، بدون یک شبیه ساز TCP، امکان بررسی عملکرد این الگوریتم ها وجود ندارد.
4- با تهیه پروتکل های لازم در قسمت کنترل سوئیچ MPLS (مثل LDP، OSPF و TCP) و ترکیب کردن شبیه ساز سوئیچ با قسمت کنترل می توان یک شبکه MPLS را شبیه سازی کرد و در آن به بررسی پارامترهای ترافیکی مختلف پرداخت.
مراجع
[1] Davie, B.; and Rekhter, Y.; "MPLS Technology and Applications," M.Kaufmann Publishers, May 2000.
]2[ محمد حسین یغمایی مقدم، " بررسی پروتکل MPLS و نحوه پیاده سازی آن،" گزارش کار مرحله دوم قرارداد پژوهشی پیاده سازی پروتکل MPLS در شبیه ساز ns با دانشگاه فردوسی مشهد، تابستان 1379.
[3] Rosen, E.; Viswanathan, A.; and Callon, R.; "Multiprotocol Label Switching Architecture," RFC 3031, Jan 2001.
[4] Callon, R.; Doolan, P.; Feldman, N.; Fredette, A.; Swallow, G.; and Viswanathan, A.; "A Framework for Multiprotocol Label Switching," < draft-ietf-mpls-framework-txt>,Sep 1999.
[5] McKeown, N.; "A Fast Switched Backplane for a Gigabit Switched Router,"
Business Communications Review, December 1997.
[6] Aweya, J.; " IP Router Architectures: An Overview," Nortel Networks, Ottawa, Canada, K1Y 4H7.
[7] Karol, M.; Hluchyj, M.; and Morgan, S.; " Input Versus Output Queuing on a Space Division Switch," IEEE Trans. Commun., vol. 35, pp. 1347-1356, 1988.
[8] McKeown, N.; Anantharam, V.; and Walrand, J.; "Achieving 100% Throughput in an Input-Queued Switch," Proc. INFOCOMM '96 (1996).
[9] McKeown, N.; "Scheduling Algorithms for Input-Queued Cell Switches," PhD Thesis. University of California at Berkeley, 1995.
]10[ کاشف شمس الدینی شرفکند، " روشهای طراحی سیستمهای Embedded ،" گزارش کار پروژه سوئیچ MPLS ، مرکز تحقیقات مخابرات ایران، آبان 1380.
[11] MacDougall, M. H.; "Simulating Computer Systems: techniques and Tools," MIT Press, July 1987.
[12] Heffes, H.; and Lucantoni D. M.; " A Markov Modulated Characterization of packetized Voice and Data traffic and Related Statistical Multiplexer Performance," IEEE J. Select. Areas commun., vol. 4, pp. 856-868, 1998.
[13] Thompson, k.; Miller, G.; and wilder, R.; " Wide Area Internet Traffic Patterns and Characteristics," IEEE Network, Vol. 11, No. 6, Nov./Dec. 1997.
[14] Leland, W.E.; Willinger, W.; Taqqu, M.; and Wilson, D.; "On the Self-Similar Nature of Ethernet Traffic," Proc. SIGCOMM, San Francisco, CA, pp. 183-193, Sept. 1993.
[15] Mekkittikul, A.; and McKeown, N.; "A Starvation-free Algorithm for Achieving 100% Throughput in an Input-Queued Switch," ICCCN '96, pp. 226-231, October 1996.
[16] Keslassy, I.; and McKeown, N.; "Analysis of Scheduling Algorithms That Provide 100% Throughput in Input-Queued Switches," Proc. of the 39th Annual Allerton Conference on Communication, Control, and Computing, Monticello, Illinois, October 2001.
[17] Mekkittikul, A.; and McKeown, N.; "A Practical Scheduling Algorithm to Achieve 100% Throughput in Input-Queued Switches," IEEE Infocom 98, Vol 2, pp. 792-799, April 1998, San Francisco.
[18] Gupta, P.; and McKeown, N.; "Designing and Implementing a Fast Crossbar Scheduler," IEEE Micro, vol. 19, pp. 20-28, Jan.-Feb. 1999.
[19] "Multiprotocol Label Switching : Enhancing Routing in the New Public Network", White Paper, Juniper Networks, 2000.
[20] "Cisco MPLS Controller Software Configuration Guide", Cisco Systems, May 2001.
[21] Harris & Jeffries, "Layer3 Switching using MPLS", White Paper, 2000.
[22] Data Connection, "MPLS Traffic Engineering : A choice of Signaling Protocols", White Paper, 2000.
[23] Awduche, D.O.; Chiu, A.; Elwalid, A.; Widjaja, I.; and Xiao, X.; "A Framework for Internet Traffic Engineering", < draft-ietf-tewg-framework-04.txt>, Apr 2001.
[24] Awduche, D.; Malcolm, J.; Agogbue, J.; O'Dell, M.; and McManus, J.; "Requirement for Traffic Engineering over MPLS," RFC 2702, Sep 1999.
1- Asynchoronous Transfer Mode
2- Internet Protocol
3- Multi-Protocol Label Switching
4- Best effort
1- Quality of Service
2- Internet Telephony
3- Wave Division Multiplexing
4- Internet Engineering Task Force
5- Resource Reservation Protocol
6- Differentiated Services
1- over head
2- Type of Service
3- Service Level Agreement
4- Internet Service Provider
14 – Static
15 – Dynamic
16 – Premium
17 – Assured
1- Virtual Private Network
19- Equal Cost Multipath
3- Open Shortest Path First
1- Constraint Based Routing
22- cost
23- hops
24 – Connection-less
25 – Connection-oriented
-26 Packet
27 – Cell
28- Packet switching
29- Circuit switching
30- burst
4 – Next Hop Resolution Protocol
5- Multi-Protocol over ATM
1 -Label Edge Router
2 -Label Switching Router
3 -Label Switch Path
1- Virtual Circuit
37- Forwarding
2- Border Gate Protocol
1- Forwarding Equivalent Class
2- Virtual Path Identifier
3- Virtual Circuit Identifier
4- Data Link Connection Identifier
43- Data Driven
44- Control Driven
1- Class of Service
46- Label Stack
3- Time to Live
48- Multipath Routing
49- Outgoing Label
50- Incoming Label
3- Label Distribution Protocol
4- Constraint Based Routing-Label Distribution Protocol
1- Last In First Out
2- Next Hope Label Forwarding Entry
55- Pop
56- Push
57- Encapsulation
1- Incoming Label Map
2- FEC to NHLFE
3- Label Swapping
61- Aggregation
62- Hop by Hop Routing
٣- Explicit Routing
63 – Policy Routing
64 – Label Merging
65 – Tunnel
66 – Look up
67 – cell switching
68 – Control
69 – Line Card
1- Complementary Metal-Oxide Semiconductor
2- Application Specific Integrated Circuits
72- parallelism
4- bus
74- congestion
6- Central Processor Unit
76 – local
77 – Forwarding Engine
78 – crossbar
79- Network Processor
2- Point to Point Protocol
81- Parsing
82- Header Computation
5- Cyclic Redundancy Check
1- Address Resolution Protocol
85- Classification
86- Exact Label Matching
3- Longest Prefix Matching
88- Segmentation
89- Reassembly
90- Queue Managing
١- loss
91 – Ring
92 – Dual Bus
93 – Random Access Memory
94 – blocking
95 – cell time
96 – Head of Line Blocking
97 – Virtual Output Queuing
98 – Starvation
99 – Embedded
100 – frame based
101 – Computer Aided Design
102 – Compilation
103 – System lntegration
104 – System Level
105 – Real Time Operating System
106 – Digital Signal Processors
107 – Function Level
108 – Simulation
109 – Event Based
110 – Facilities
111 – Tockens
112 – reserve
113 – release
114 – task
115 – memory acces
116 – schedule
117 – available
1- First In First Out
119 – Bernoulli
120 – indepndent and identically distributed
121 – Markov chain
122 – on
123 – off
124 – iterative
125 – unmatched
126 – match
127 – Request
128 – Grant
129 – Accept
130 – uniform
131 – uncorrelated
132 – encoder
133 – Prioritized iSLIP
134 – Weighted iSLIP
135 – load
136 – Optimized Prioritized iSLIP
١- Weighted Round-Robin
1- Deficit Weighted Round-Robin
138- quatum
139- Deficit Counter
140- credit
141- Expedited Forwarding
142- Assured Forwarding
143 – drop level
1- Jitter
145- Flow Control
146- Random Early Detection
—————
————————————————————
—————
————————————————————