بررسی شبیه سازی TicToc در نرم افزار شبیه ساز OMNET

بررسی شبیه سازی TicToc در نرم افزار شبیه ساز OMNET

شبیه سازی TicToc در نرم افزار شبیه ساز OMNET

در این بخش به بررسی شبیه سازی TicToc در نرم افزار شبیه ساز OMNET می پردازیم که یکی از مثال های ابتدایی در این نرم افزار می باشد. در ادامه با ما همراه باشید تا قدم به قدم مرحله مراحل را انجام و به اجرای نهایی برسم.

مثال TicToc در OMNET

با توجه به اینکه بخش بسیار مهمی از نرم افزار OMNET++ شبیه سازی ارتباطات در شبکه است، در اینجا به نحوه شبیه سازی یک شبکه می پردازیم. برای شروع از شبکه ای شروع می کنیم که دارای دو گره است. کاری که این دو گره انجام می دهند بسیار ساده است. یک گره packet ساخته و آن را به گره دیگر پاس می دهد و گره دیگر نیز آن را دریافت کرده و دوباره به گره اول بازپ می فرستد و همین طور این کار را تا بی نهایت انجام می دهند.نام این دو گره را tic و toc می گذاریم.

شروع کار شبیه سازی

در اینجا مراحل پیاده سازی این شبیه سازی را از ابتدا توضیح می دهم:

۱- یک پوشه به نام tictoc بسازید و با وارد کردن دستور cd در mingwenv.cmd وارد این پوشه شوید.

۲- با ساختن یک فایل NED توپولوژی شبکه ی خود را تعریف کنید.فایل توپولوژی یک فایل متنی ساده است که گره های شبکه و ارتباط میان آنها را مشخص می کند.این فایل را می توانید با هر ویرایشگر متنی مانند notepad بسازید. ما در اینجا اسم این فایل را tictoc1.ned میگذاریم:

بهتر است این فایل را از پایین به بالا بخوانید:

Tictoc1 شبکه ای است که از دو زیر ماژول به نام tic و toc ساخته شده است. Tic و toc هر دو نمونه هایی از یک ماژول یکسان به نام Txc1 هستند. ما گیت خروجی tic را که out نام دارد به گیت ورودی toc به نام in متصل می کنیم و به صورت برعک نیز همین کار را انجام دادیم.تاخیر انتشار در هر میسر را نیز ۱۰۰ میلی ثانیه در نظر گرفتیم. Txc1 یک ماژول ساده است و یک گیت خروجی به نام out و یک گیت ورودی به نام in دارد.

۳- حال باید نحوه عملکرد (functionality) ماژول ساده Txc1 را پیاده سازی کنیم. این کار را با نوشتن فایل Txc1 با زبان سی پلاس پلاس انجام می دهیم:

ماژول ساده Txc1 با کلاس Txc1 به زبان C++ ارائه شده که زیر کلاسی از cSimpleModule است و از آن ارث بری می کند و با ماکرو Define_Module در آمنت ثبت شده است. ما دو متد از cSimpleModule به نام های initialize و handleMessage را دوباره تعریف کرده ایم.آنها توسط هسته شبیه سازی فراخوانی می شوند: اولی تنها یک مرتبه و دومی هر زمان که پیامی به ماژول برسد.

در initialize شی از نوع cMessage ساختیم و آنرا از طریق گیت out ارسال کردیم. با توجه به اینکه این گیت به گیت ورودی ماژول دیگری متصل است، هسته شبیه ساز پیام را به ماژول دیگر متصل به سمت دیگر گیت از طریق آرگمانی در handleMessage بعد از گذشت ۱۰۰ میلی ثانیه تاخیر که در فایل NED تعیین شده بود، می رساند.و ماژول دیگر تنها آن را دوباره با ۱۰۰ ثانیه تاخیر باز پ می فرستد.

پیام ها (پکت ها، فریم ها، job و …) و رویداد ها (timers, timeout) به وسیله شئ ای از cMessage و یا یکی از زیرکلاس های آن در آمنت نمایش داده می شوند.بعد از ارسال و یا زمانبندی آنها، توسط هسته شبیه سازی در لیست “scheduled events” و یا “future events” قرار می گیرند تا زمانی که زمان شان به پایان برسد و سپ از طریق handleMessage به ماژول مقصد تحویل داده می شوند.

۴- حال Makefile را با کمک دستور زیر می سازیم که به ما کمک می کند تا برنامه خود را compile و link کرده و فایل اجرایی tictoc را بسازیم:

۵- با دستور زیر اولین شبیه سازی خود را کامپایل و لینک می کنیم و فایل اجرایی را می سازیم:

۶- اگر همین الان فایل اجرایی را اجرا کنید،پ یغام می دهد که نمی تواند فایل omnetpp.ini را پیدا کند. در شبیه سازی همزمان می توان چندین شبکه تعریف کرد و این فایل به برنامه شبیه ساز می گوید که شما کدام شبکه را می خواهید شبیه سازی کنید. پس باید فایل به نام omnetpp.ini بسازید و در آن دستور زیر را بنویسید:

اما در مثال های بعدی برای راحتی کار،ما از فایل omnetpp.ini زیر استفاده می کنیم:

۷- بعد از انجام تمام مراحل گفته شده حال می توانید با نوشتن دستور tictoc برنامه را اجرا کنید و پنجره شبیه ساز OMNET++ را ببینید:

بررسی شبیه سازی TicToc در نرم افزار شبیه ساز OMNET

۸- دکمه Run در toolbar شبیه سازی را بزنید تا تبادل پیام شروع شود. Toolbar پنجره ی اصلی برنامه زمان شبیه سازی را نمایش می دهد. این زمان مجازی است و هیچ ربطی به زمان واقعی یا زمان ساعت دیواری (wall-clock) ندارد. توجه کنید که در اینجا برای پردازش پیام در نود هیچ زمان شبیه سازی ای را اختصاص نداده ایم. تنها زمان شبیه سازی سپری شده در اینجا مربوط به تاخیر انتقال پیام در اتصالات نودها بود.

۹- می توانید سرعت انیمیشن را از طریق دکمه slider موجود در بالای پنجره کم یا زیاد کنید.

 

مطالب مرتبط
معرفی پروتکل ICMP در شبکه

بازدید ۱۴۳۳ نفر
ثبت نظر
ریفریش کنید!
نظرات کاربران (۱ مورد)
  1. تصویر آواتار کاربر 0
    مهیار سه شنبه , 24 مهر

    عالی بود