مقاله در مورد آشنایی با ساختار و نحوه عملکرد نرم‏افزار شبیه‏سازی شبکه


در حال بارگذاری
23 اکتبر 2022
فایل ورد و پاورپوینت
2120
4 بازدید
۷۹,۷۰۰ تومان
خرید

توجه : به همراه فایل word این محصول فایل پاورپوینت (PowerPoint) و اسلاید های آن به صورت هدیه ارائه خواهد شد

 مقاله در مورد آشنایی با ساختار و نحوه عملکرد نرم‏افزار شبیه‏سازی شبکه دارای ۳۳ صفحه می باشد و دارای تنظیمات در microsoft word می باشد و آماده پرینت یا چاپ است

فایل ورد مقاله در مورد آشنایی با ساختار و نحوه عملکرد نرم‏افزار شبیه‏سازی شبکه  کاملا فرمت بندی و تنظیم شده در استاندارد دانشگاه  و مراکز دولتی می باشد.

توجه : در صورت  مشاهده  بهم ریختگی احتمالی در متون زیر ،دلیل ان کپی کردن این مطالب از داخل فایل ورد می باشد و در فایل اصلی مقاله در مورد آشنایی با ساختار و نحوه عملکرد نرم‏افزار شبیه‏سازی شبکه،به هیچ وجه بهم ریختگی وجود ندارد


بخشی از متن مقاله در مورد آشنایی با ساختار و نحوه عملکرد نرم‏افزار شبیه‏سازی شبکه :

. مقدمه

۱-۱ هدف
NS شبیه‏سازی شئ گراست که بصورت گسسته مبتنی بر رویدادها شبکه را شبیه سازی می‏کند، این برنامه در دانشگاه برکلی با زبانهای C++ و Otcl ایجاد شده و بسط یافته است. NS اساساً برای پیاده‏سازی شبکه‏های محلی و گسترده مفید می‏باشد. هرچند استفاده از NS برای افرادی که با اصول شبیه‏سازها آشنا هستند ساده خواهد بود اما بکارگرفتن این برنامه برای کاربران مبتدی استفاده از شبیه سازها کاملاً دشوار است زیرا تعداد وستندات و راهنماهای مناسب برای کاربران

مبتدی بسیار اندک می‏باشد. با وجود این مستندات زیادی وجود دارد که بوسیله افراد حرفه‏ای در شبیه سازی برای کاربران حرفه‏ای NS نوشته شده است. هدف از این نوشته ارائه برخی ایده از چگونگی عملکرد شبیه سازها، راهنمایی برای توسعه و ادامه راه، آشنایی با اجزای شبکه در کدهای شبیه ساز، چگونگی ایجاد اجزای شبکه جدید و …. می‏باشد. عمده مطالب با پرداختن به مثالهای ساده و توضیحات مختصر مبتنی بر تجربیات مختلف بیان شده است.

۲-۱ نمای کلی
NS یک شبیه ساز رویدادگراست که در دانشگاه برکلی برای شبیه‏سازی شبکه‏های مبتنی بر IP ایجاد گردیده. در این شبیه ساز پروتکلهای شبکه از قبیل TCP و UDP ، رفتار منابع ترافیک زا مانند Ftp ، Telnet و Web ، مکانیزم مدیریت صف در مسیریابها از قبیل DropTail ، RED و CBQ ، الگوریتمهای مسیریابی مانند Dijkestra و …. قابل اجرا می‏باشند. همچنین در NS، ارسال چندتایی (Multicast) و برخی از پروتکلهای لایه فیزیکی برای شبیه سازی LANها نیز قابل اجرا می‏باشند.

پروژه NS در حال حاضر بخشی از پروژه VINT می‏باشد که ابزارهایی را برای نمایش نتایج شبیه سازی، آنالیز و تبدیل توپولوژهای شبکه ایجاد کرده و توسعه می‏دهد. توسعه VINT از طریق تولید کننده‏هایی که بخوبی توانایی بکارگیری NS را دارند. NS رایج کنونی در محیط C++ و Otcl ( Otcl یک زبان اسکریپت با الحاقات شئ گراست که در MIT ایجاد شده است)، نوشته شده و در دسترس می‏باشد. در این مقاله در مورد ساختار NS مختصری بحث می‏شود اما چگونگی استفاده بیشتر از NS بطور جزئی با مثالهایی توضیح داده خواهد شد.

شکل ۱: NS از دیدگاهی ساده شده برای کاربر

همانگونه که در شکل ۱ نشان داده شده است از دیدگاهی ساده شده برای کاربر، NS مفسر اسکریپت TCL بصورت شئ گراست که دارای یک فهرست کننده رویدادهای شبیه سازی و کتابخانه Object های اجزاء شبکه و کتابخانه‏های راه‏اندازی و تنظیم شبکه می‏باشد. بعبارت دیگر برای استفاده از NS شما در زبان اسکریپت Otcl برنامه می‏نویسید. برای تنظیم و راه‏اندازی شبکه، کاربر باید اسکریپت Otcl بنویسد که یک فهرست کننده رویداد (زمانبند) را ایجاد کند، برای تنظیم کردن توپولوژی‏های شبکه از Objectهای شبکه و توابع موجود در کتابخانه‏ها و بیان منابع ترافیک زا در هنگام شروع و توقف انتقال بسته‏ها از طریق زمانبند رویدادها استفاده می‏شود. لغت عمودی برای تنظیم شبکه استفاده شده است چون تنظیم نمودن شبکه بصورت عمودی (عمقی) امکان مسیرهای داده را از میان Objectهای شبکه بوسیله تنظیم اشاره‏گر از یک Object به آدرس Object دیگر، فراهم می‏کند. هنگامیکه یک کاربر بخواهد یک Object شبکه جدید ایجاد کند بسهولت می‏تواند با نوشتن یک Object جدید یا ایجاد یک Object مرکب از کتابخانه Object یک Object جدید ایجاد نماید و جریان داده را از طریق Objectها برقرار سازد.

از اجزاء مهم NS در کنار Objectهای شبکه زمتنبند رویدادهاست. هر رویداد در NS یک ID منحصر بفردی با زمان تنظیم شده‏ برای هر بسته است که به یک Object که رویدادها را موجب می‏شود، اشاره می‏کند. در NS یک زمنبند رویداد، زمان شبیه سازی و شروع همه رویدادها را نگه می‏دارد. اجزاء شبکه از طریق ارسال بسته‏ها با یکدیگر ارتباط برقرار می‏کنند، هرچند که این امر موجب مصرف زمان حقیقی شبیه سازی نمی‏شود. همه اجزاء شبکه بخشی از زمان شبیه سازی را صرف بکاربردن

بسته‏ها می‏کنند. برای مثال سوئیچی در شبکه که با ۲۰ میکروثانیه تاٌخیر خروج یک رویداد برای یک بسته شبیه سازی شده‏است، در جدول زمانبندی تاٌخیر هر رویداد برای آن ۲۰ میکروثانیه تنظیم گردیده، زمانبند بعد از ۲۰ میکروثانیه رویداد را از صف خارج کرده و آنرا به عنصر سوئیچ ارسال می‏کند، که آنهم بعد بسته را یک عنصر مرتبط خروجی مشخص ارسال می‏نماید. استفاده دیگری که از زمانبند رویداد می‏شود بعنوان تایمر است. برای مثال TCP نیازمند یک تایمر برای نگهداری زمان

سرآمدن انتقال بسته‏ها می‏باشد. تنها تفاوت بین تایمرها و زمانبندها، آنست که تایمر مقدار زمان مرتبط با یک بسته را اندازه‏گیری می‏کند و یک عمل خاص را به آن بسته بعد از سپری شدن یک زمان مشخص نسبت می‏دهد.
NS نتنها در Otcl بلکه در C++ نیز نوشته شده است. بدلیل کارآمد بودن، NS مسیرهای عبوری داده‏ها را از مسیرهای عبوری کنترلی تفکیک ساخته است. بخاطر کاهش دادن بسته‏ها زمان پردازش رویدادها (نه زمان شبیه سازی)، زمانبند و Object های اجزای شبکه اصلی در مسیر داده‏ها با زبان C++ نوشته و کمپایل شده‏اند. این Objectهای کمپایل شده از طریق یک اتصال Otcl در دسترس مفسر Otcl قرار گرفته‏اند که هر اتصال Otcl یک Otcl Object جفت برای هر C++ Object ایجاد کرده و توابع کنترلی را می‏سازند. متغیرهای قابل تنظیم مشخص شده با Objectهای C++ بعنوان توابع و متغیرهای عضو Objectهای Otcl مخابره شده عمل می‏کنند. بدین طریق کنترل Objectهای C++ به Otcl واگذار شده است. همچنین افزودن توابع عضو و متغیرها به یک اتصال C++ در Otcl Object امکانپذیر است.

سیر داده‏ها) بطور کامل می‏تواند در Otcl اجرا شود.

شکل ۲: همزادی C++ و Otcl

شکل ۲ نشاندهنده یک مثال سلسله مراتبی در C++ و Otcl است. چیزی که در این شکل قابل توجه می‏باشد Objectهای C++ی هستند که دارای یک اتصال سلسله مراتبی Otcl می‏باشند همانطور که نشان داده شده‏ یک جفت سلسله مراتبی Otcl Object بسیار مشابه به نوع C++ وجود دارد.

شکل۳: معماری NS

شکل ۳ معماری کلی NS را نشان می‏هد. در این تصویر یک کاربر عمومی (نه یک کاربر حرفه‏ای NS) می‏تواند با قرار گرفتن در گوشه سمت چپ پایین، طراحی و اجرای شبیه سازی را در Tcl با استفاده از Objectهای شبیه سازی موجود در کتابخانه Otcl انجام دهد. زمانبند رویدادها و اغلب اجزای شبکه در C++ اجرا می‏شوند و از طریق یک اتصال Otcl که با استفاده از Tclcl ایجاد شده در دسترس Otcl قرار می‏گیرند. تمام این چیزها با یکدیگر NS را که یک مفسر Tcl از نوع شئ گراست را با کتابخانه‏هایش می‏سازند.
در اینجا چیزی که می‏تواند جالب توجه باشد چگونگی بدست آوردن نتایج حاصل از شبیه سازی NS است. همانطور که در شکل ۱ ملاحظه می‏شود، زمانیکه یک شبیه سازی پایان می‏یابد، NS یک یا چند فایل خروجی متنی که محتویات آنها جزئیات داده‏های شبیه سازی را شامل می‏شود، تولید می‏کند. این داده‏ها می‏تواند برای آنالیز کردن شبیه سازی (که در بخش بعد ۲ مثال از آنالیز نتایج شبیه سازی ارائه شده است)، یا بعنوان یک ورودی یرای ابزار نمایش گرافیکی شبیه سازی که Network Animator نامیده می‏شود و در بخشی از پروژه VINT ایجاد شده، بکار رود. NAM (Network Animator)، دارای محیط گرافیکی مناسبی برای کاربران همانند یک برنامه CD Player (که دارای دکمه‏های Play، Fast Forward و ; است) می‏باشد. همچنین در NAM یک کنترل کننده سرعت نمایش نیز تعبیه شده است. بعلاوه NAM می‏تواند اطلاعات را از قبیل توان گذردهی و تعداد افت بسته‏ها در هر اتصال بصورت گرافیکی نمایش دهد هرچند که از نتایج گرافیکی برای آنالیز دقیق شبیه سازی نمی‏توان استفاده کرد.

۲ مبانی NS

۱-۲ Otcl : زبانی برای کاربر
همانگونه که در بخش قبل ذکر گردید. NS اساساً یک مفسر Otcl با با کتابخانه‏های Object شبیه سازی شبکه می‏باشد. دانستن چگونگی برنامه‏نویسی در محیط Otcl برای NS مفید خواهد بود که در این بخش مثالهایی به این منظور ارائه خواهد می‏گردد.

مثال ۱ یک اسکریپت Tcl عمومیست که چگونگی ایجاد یک روال و فراخواندن آن، چگونگی مقدار دهی به متغیرها و چگونگی ایجاد یک حلقه را نشان می‏هد. دانستن اینکه Otcl تعمیم یافته شئ گرایی از Tcl است مشخص خواهد کرد که همه فرمانهای Tcl در Otcl قابل استفاده‏اند. وابستگی بین Tcl و Otcl عیناً مشابه C و C++ می‏باشد. برای اجرای این اسکریپت باید از برنامه ex-tcl.tcl در محیط NS استفاده نمود.

مثال۱: مثالی از اسکریپت Tcl

در Tcl کلمه کلیدی proc برای تعریف یک روال بکار می‏رود، بدنبال آن یک نام روال و آرگومانها در دو براکت مشخص می‏گردند. کلمه کلیدی set برای نسبت دادن مقدار به یک متغیر استفاده می‏شود. [expr;] مقادیر مشخص شده در براکت‏های بعد از کلمه کلیدی را محاسبه می‏کند. نکته قابل توجه گرفتن مقدار نسبت داده شده به یک متغیر است، $ بهمراه نام متغیر به این منظور بکار می‏رود . کلمه کلیدی puts رشته‏های زیر را درون دو علامت گیومه چاپ می‏کند.
نتایج حاصل از مثال یک در اینجا نشان داده شده است.

مثال بعدی یک مثال برنامه نویسی شئ گرا در Otcl است. این مثال بسیار ساده است اما روش چگونگی ایجاد کردن و استفاده از Objectها را در Otcl نشان می‏دهد. شانس نوشتن یک Object برای یک کاربر مبتدی بسیار نادر است. بهرحال از اینرو همه Objectهای NSی که ما در برنامه‏نویسی شبیه سازی NS استفاده خواهیم کرد، چه در Otcl نوشته شد باشد چه در ++C ، اساساً Objectهای Otcl هستند.

مثال ۲: مثالی از اسکریپت Tcl

مثال ۲ یک اسکریپت Otcl است که ۲ کلاس Object را تعریف می‏کند. “mom” و “kid” بطوریکه “kid” یک کلاس فرزند از “mom” است و یک تابع عضو برای هر کلاس بنام “greet” تعیین شده است. بعد از تعریف کردن کلاسها هر Object همان لحظه ایجاد و مشخص می‏گردد، متغیر “age” برای “mom” مقدار ۴۵ و برای “kid” مقدار ۱۵ تنظیم می‏شود و “greet” تابع عضو هر یک از Objectهای ایجاد شده می‏باشد. کلمه کلیدی class برای ایجاد یک کلاس شئی و کلمه instproc برای تعریف یک تابع عضو برای یک کلاس Object می‏باشند.

فرزندان کلاس با استفاده از کلمه کلیدی superclass مشخص شده‏اند. در تعریف توابع عضو، $self همانند اشاره‏گر “this” دز C++ عمل می‏کند. و instvar چک می‏کند که آیا نام متغیر در کلاس خودش تعریف شده‏است یا در سوپرکلاسش. اگر نام متغیر گرفته شده کنونی قبلاً تعریف شده باشد، متغیر به نام جدید دیگری ارجاع داده می‏شود. در نهایت برای ایجاد یک Object کلمه کلیدی new در مثال نشان داده شده است. اجرای برنامه ex-otcl.tcl در محیط NS روی این مثال نتایج زیر را نشان خواهد داد.

۲-۲ مثال ساده‏ای از شبیه سازی
در این بخش یک اسکریپت ساده NS نشان داده شده و عملیاتی که در هر سطر انجام می‏پذیرد توضیح داده شده است. مثال ۳ یک اسکریپت Otcl است که پیکربنندی شبکه ساده‏ای را ایجاد کرده و عملیات شبیه‏سازی شکل ۴ را انجام می‏دهد. برای اجرای این شبیه‏سازی، باید از برنامه ns-simple.tcl در محیط استفاده شود.

شکل۴: یک توپولوژی ساده شبکه و سناریوی شبیه سازی
این شبکه دارای ۴ گره می‏باشد که در شبکل فوق دیده می‏شوند. اتصالات دوطرفه بین n0 و n2 ، n1 و n2 با پهنای باند ۲ Mbps و تاٌخیر ۱۰ ms برقرار است. اتصالات دو طرفه بین n2 و n3 دارای ۱۷ Mbps پهنای باند و ۲۰ ms تاٌخیر می‏باشد. هر گره از یک صف دنباله دار بطول حداکثر ۱۰ خانه استفاده می‏کند. یک نماینده (agent) ، Tcp به n0 پیوست شده است و یک اتصال به یک نماینده “sink” ، Tcp در n3 برقرار می‏باشد. بعنوان پیشفرض حداکثر اندازه بسته‏هایی که نماینده Tcp

می‏تواند تولید نماید ۱ Kbyte می‏باشد. نماینده “sink” Tcp، بسته‏های ack را برای فرستنده تولید و ارسال می‏کند و بسته‏های دریافتی را آزاد می‏سازد. نماینده “udp” که به n1 پیوست شده به نماینده “null” در n3 متصل گردیده است. یک نماینده “null” فقط بسته‏های دریافتی را آزاد می‏کند. یک تولید کننده ترافیک “ftp” و یک تولید کننده ترافیک “cbr” بترتیب به نماینده Tcp و Udp پیوست می‏شوند، و “cbr” برای تولید بسته‏های ۱ Kbyte در نرخ ۱ Mbps پیکربندی شده است. “cbr” برای شروع در ثانیه ۰۱ و توقف در ثانیه ۴۵ و ftp نیز برای شروع در ثانیه ۰۱ و توقف در ثانیه ۴ تنظیم شده‏اند.

مثال۳: مثالی از اسکریپت Tcl

در اینجا اسکریپت بالا را توضیح می‏دهیم. عموماً یک اسکریپت NS با ایجاد یک Object شبیه‏ساز آغاز می‏شود.

• set ns [new Simulator]:
یک Object شبیه‏ساز NS ایجاد می‏کند و آنرا به متغیر ns نسبت می‏دهد و بعد از آن این عملیات‏ها انجام می‏گیرند.

• تعریف کردن شکل بسته
• ایجاد یک زمتنبند
• انتخاب شکل آدرس دهی پیش فرض

Object ؛شبیه‏ساز؛ توابع عضوی دارد که اعمال زیر را انجام می‏دهند.
• ایجاد Objectهای مرکب از قبیل گره‏ها، اتصالها
• اتصال Objectهای ایجاد شده اجزاء شبکه
• تنظیم پارامترهای اجزای شبکه

• ایجاد ارتباط بین نماینده‏ها
• مشخص کردن انتخاب‏های نمایش NAM

اغلب توابع عضو برای تنظیم و زمانبندی شبیه‏سازی بکار می‏روند، هر چند برخی از آنها برای نمایش NAM استفاده می‏شوند.

• $ns color fid color:
برای تنظیم رنگ بسته‏ها در هنگام گردش در شبکه استفاده می‏شود. این تابع عضو برای نمایش NAM است وتاٌثیری بر شبیه‏سازی واقعی ندارد.

• $ns namtrace-all file-descriptor:
این تابع عضو موجب می‏شود شبیه‏ساز رکوردهای نتیجه را در یک فایل با فرمتی که برای ورودی NAM بکار رود، ذخیره کند.

• proc finish {}:
این تابع بعد از پایان یافتن شبیه‏سازی فراخوانی می‏شود. در این تابع پردازشهای بعد از شبیه‏سازی مشخص شده‏اند.

• set n0 [$ns node]:

تابع عضو node یک گره ایجاد می‏کند. هر گره در NS یک Object مرکب است که دارای آدرس و پورت می‏باشد و کاربران می‏توانند بترتیب با یک آدرس و یک Object پورت گره ایجاد کنند و آنها را با هم اتصال دهند.

• $ns duplex-link node1 node2 bandwidth delay queue-type:
۲ اتصال ساده با پهنای باند و تاٌخیر مشخص شده ایجاد می‏کند و ۲ گره مشخص را بهم متصل می‏نماید. در NS صف خروجی هر گره بعنوان بخشی از یک اتصال محسوب می‏شوند از اینرو کاربران باید نوع صف را زمان ایجاد اتصالات مشخص کنند. در اسکریپت شبیه‏سازی بالا، صف دنباله دار استفاده شده است. اگر خواننده بخواهد از یک صف RED استفاده کند، بسادگی فقط کلمه Droptail را با RED جابجا می‏نماید. همانند یک گره هر اتصال یک Object مرکب می‏باشد و ک

اربران می‏توانند Sub-Objectهای خود و ارتباطات آنها و گره‏ها را ایجاد نمایند.

• $ns queue-limit node1 node2 number:
این خط محدوده صف را بین دو اتصال ساده‏ای که گره ۱ و ۲ را بهم متصل می‏کند، با عددهای مشخص شده تنظیم می‏نماید.

• $ns duplex-link-op node1 node2 ;:
هر دو خط بعدی برای نمایش NAM استفاده شده‏اند. برای مشاهده تاٌثیر این خطوط، کاربر می‏تواند آنها را بعنوان توضیح مشخص کند و بعد شبیه‏سازی را تکرار نماید.

حال که تنظیم‏های اولیه شبکه انجام شده، نوبت تنظیم نماینده‏های ترافیکی از قبیل Tcp و Udp ، منابع ترافیک زا از قبیل ftp و cbr و پیوست آنها بترتیب به گره‏ها و نماینده‏ها می‏باشد.

• set tcp [new Agent/TCP]:
این خط چگونگی ایجاد نماینده را نشان می‏دهد. عموماً کاربران توانایی ایجاد هر نماینده یا منبع ترافیک زا را به این روش خواهند داشت. نماینده‏ها و منابع ترافیک زا در حقیقت Objectهای پایه‏ای می‏باشند (نه مرکب). غالباً در C++ ایجاد شده و به Otcl متصل شده‏اند. بدین جهت توابع عضو Object شبیه‏سازی مشخصی که بتوان این Objectها را در لحظه ایجاد کند، وجود ندارد. برای ایجاد نماینده‏ها یا منابع ترافیک زا هر کاربر باید نام‏های کلاس‏های این Object ها را بداند. این اطلاعات در مستندات NS موجود می‏باشند.

• $ns attach-agent node agent:
تابع عضو attach-agent یک Object نماینده ایجاد شده را به یک Object گره پیوست می‏کند.

• $ns connect agent1 agent2:
بعد از اینکه ۲ نماینده‏ای که با همدیگر در ارتباط هستند ایجاد شدند نوبت به برقراری اتصال یک شبکه منطقی بیت آنها می‏رسد. این خط یک اتصال شبکه بوسیله تنظیم آدرس مقصد و آدرس پورت برای هر نماینده برقرار می‏کند با این فرض تمام پیکربندی شبکه انجام پذیرفته است نوبت به نوشتن یک سناریو برای شبیه‏سازی می‏رسد (زمانبندی شبیه‏سازی). Object شبیه‏ساز دارای تعدادی تابع عضو زمانبندی است. اما غالباً تابع زیر بیشترین کاربرد را در آن دسته دارد.

• $ns at time “string”:
این تابع عضو یک Object شبیه‏ساز زمانبند را برای زمانبندی اجرای رشته‏های مشخص شده در زمان شبیه‏سازی، ایجاد می‏کند.

در NS معمولاً یک منبع ترافیک زا داده‏های واقعی و درستی را انتقال نمی‏دهند، اما نماینده در نظر گرفته شده را برای آمادگی ارسال دیتا آگاه می‏سازد و نماینده فقط از مقدار داده جهت انتقال مطلع است و ایجاد و ارسال بسته‏ها را انجام می‏دهد. بعد از پیکربندی تمام شبکه، زمانبندی و مشخص کردن رول‏های بعد از شبیه‏سازی تنها عمل باقی مانده اجرای شبیه‏سازیست که آن نیز با $ns run انجام می‏پذیرد.

۳-۲ زمانبند رویداد
در این بخش پیرامون زمانبند رویدادهای گسسته در NS صحبت می‏شود. همانگونه که در بخش‏های قبل آمده، استفاده کننده‏های اصلی زمانبند رویدادها اجزایی از شبکه‏اند که تاٌخیرهای بسته‏ها یا زمانهای مورد نیاز آنها را شبیه‏سازی می‏کنند. شکل ۵ نشان می‏هد که هر Object شبکه از یک زمانبند رویداد استفاده می‏کند، بیاد داشته باشیم که یک Object از شبکه که یک رویداد را منتشر

می‏کند کسی است که بعداً در زمانبندی، یک رویداد را بکار می‏برد. همچنین باید دانست که مسیر داده بین Objectهای شبکه و مسیر رویدادها از هم متفاوتند. در حقیقت بسته‏ها بین یک Object شبکه و Object شبکه دیگر با استفاده از روش send(Packet* p) {target_->recv(p)}; برای ارسال و روش recv(Packet*, Handler* h = 0) برای دریافت، دست به دست می‏شوند.

شکل۵: زمانبند رویداد گسسته

NS دارای ۲ نوع زمانبند رویداد متفاوت می‏باشد. نوع همزمان (Real Time) و نوع غیر همزمان (Un-RealTime) . برای یک زمانبند غیر همزمان ۳ نوع اجرا برقرار می‏باشد (نوع فهرستی، کومه‏ای و تقویمی) با این وجود همگی بطور منطقی به یک صورت اجرا می‏گردند. وجود این تعدد بدلیل سازگاری با متدهای مانده از قبل می‏باشد. زمانبند غیرهمزمان تقویمی بعنوان پیش فرض تنظیم شده است. در زیر یک مثال از یک زمانبند رویداد مشخص انتخاب شده است،

. . .
set ns [new Simulator]
$ns use-scheduler Heap
. .

دیگر استفاده از زمانبند رویداد، زمانبندی رویدادهای شبیه‏سازی است، از قبیل اینکه چه وقتی کاربرد ftp شروع می‏شود، در چه زمان یک شبیه‏سازی متوقف می‏شود یا اینکه از آن برای تولید سناریوی شبیه‏سازی قبل از انجام یک شبیه‏سازی استفاده می‏شود. یک Object “AtEvent” در واقع یک کلاس فرزند از رویداد است، بطوریکه دارای یک متغیر اضافی برای نگهداری رشته گرفته شده، می‏باشد. هر چند که در زمانبند رویداد با آن همانند یک رویداد معمولی رفتار می‏شود.

هنگامیکه یک شبیه‏سازی آغاز گردد و یک زمان برای یک tras در صف رویدادها رسید، AtEven به یک “AtEvent handler”داده می‏شود که یکبار برای همه AtEven ها ایجاد شده است و دستور Otcl مشخص شده بوسیله فیلد string از AtEven اجرا می‏گردد. در زیر خط زمانبندی رویدادهای شبیه‏سازی به مثال بالا افزوده شده است.

  راهنمای خرید:
  • در صورتی که به هر دلیلی موفق به دانلود فایل مورد نظر نشدید با ما تماس بگیرید.