آموزش رایگان شبیه ساز NS2
در این آموزش رایگان NS2 شبیه سازی شبکه با استفاده از ابزار شبیه ساز شبکه NS2 را به شما آموزش خواهیم داد. هر آنچه که برای آغاز شبیه سازی با NS2 نیاز دارید در این آموزش رایگان خواهید دید: معرفی شبیه ساز NS-2، موضوعات قابل شبیه سازی با NS2، دانلود و نصب NS2 در ویندوز و لینوکس، چند مثال از شبیه سازی در NS2، نمونه پروژه های NS2، منابع و مراجع یادگیری ns2 و معرفی یک دوره آموزش ویدئویی جامع برای یادگیری NS2 !
دانش پژوه گرامی، این آموزش رایگان، بخشی از دوره آموزش جامع NS2 می باشد. نسخه کامل این آموزش را می توانید در صفحه اصلی دوره دنبال کنید.
شبیه ساز شبکه NS2، یک شبیه ساز رویداد گسسته، متن باز و رایگان است که محبوب ترین و رایج ترین شبیه ساز شبکه برای تحقیقات آکادمیک شناخته شده است. NS2 به صورت گسترده ای توسط جامعه محققین، دانشجویان و همین طور متخصصین استانداردسازی پروتکل های IETF استفاده می شود.
هرچند شبیه ساز شبکه NS2 به خاطر معماری پیچیده ای که دارد بعضاً مورد نقد قرار می گیرد ولی محبوبیت و استفاده گسترده NS2 این نقص را جبران می کند. چون افراد زیادی از طریق mailing list ها و forum ها همدیگر را در حل مشکلات NS2 یاری می کنند.
بخش 1: شبیه سازی چیست؟
شبیه سازی در حقیقت سناریوهای دنیای واقعی را با استفاده از برنامه های کامپیوتری بازسازی می کند. شبیه سازی در کاربردهای مختلفی از قبیل تحلیل و طراحی شبکه، تحقیق عملیاتی، تحلیل تجاری، برنامه ریزی ساخت، آزمایش بیولوژیکی مورد استفاده قرار می گیرد.
از آنجا که تا حد امکان تقریباً همه جزئیات مشخصاتی سیستم می تواند در یک مدل شبیه سازی یکپارچه شود، شبیه سازی در مقایسه با مدل سازی تحلیلی، معمولاً نیاز به فرضیات ساده سازی کمتری دارد. زمانی که سیستم بزرگتر و پیچیده تر می شود، ممکن است نتوان یک فرموله سازی ریاضیاتی سرراست برای آن انجام داد. در این موارد، معمولاً رویکرد شبیه سازی به رویکرد تحلیلی ترجیح داده می شود.
اساس شبیه سازی، انجام آزمایشات متعدد و در نظر گرفتن پارامترهای متقاعد کننده برای عمومی سازی می باشد. به دلیل عمومی سازی، معمولاً نتایج شبیه سازی به اندازه نتایج تحلیلی، قوی در نظر گرفته نمی شود.
مراحل انجام یک شبیه سازی
یک شبیه سازی شبکه های کامپیوتری، از سه بخش اصلی تشکیل می شود:
- طرح ریزی
- پیاده سازی
- تست
فاز پیاده سازی نیز، ۳ مرحله دارد:
- مقداردهی اولیه
- تولید نتایج
- پردازش پس از شبیه سازی
شبیه سازی یک شبکه کامپیوتری را می توان به صورت جریانی از تعاملات میان موجودیت های شبکه (مثلاً گره ها، پکت ها و …) تصور کرد. این موجودیت ها در سیستم حرکت می کنند، با بقیه موجودیت ها تعامل پیدا می کنند، در فعالیت ها شرکت می کنند، موجب رخداد رویدادها می شوند، موجب برخی تغییرات روی حالت سیستم می شوند، و در نهایت به پایان می رسند. موجودیت ها برای بدست آوردن منابع، منتظر می مانند یا با سایر موجودیت ها رقابت می کنند. بنابراین باید یک دنباله اجرای منطقی وجود داشته باشد تا این فعالیت ها به صورت قابل درک و مدیریت پذیر رخ دهند.
بخش 2: معرفی شبیه ساز NS-2
برخی از سیستم عامل هایی که نصب NS2 در آنها انجام پذیر است عبارتند از:
- ویندوز ایکس پی (Windows XP)
- ویندوز ۷ (Windows ۷)
- ویندوز ۸ (Windows ۸)
- ویندوز ۱۰ (Windows 10)
- لینوکس اوبونتو (Linux ubuntu)
- لینوکس فدورا (Linux fedora)
از آنجا که NS2 در محیط یونیکس توسعه پیدا کرده است، در محیط لینوکس بدون دردسر خاصی نصب خواهد شد. ولی به خاطر محبوبیت بالایی که سیستم های ویندوزی دارد، اکثر افرادی که با NS2 آشنا می شوند، دوست دارند در محیط ویندوز از آن استفاده کنند. برای نصب و استفاده از NS2 در محیط ویندوز می توان از یک امولاتور یونیکس استفاده کرد. سیگوین یک امولاتور شناخته شده است که از آن برای نصب NS2 در محیط ویندوز استفاده خواهیم کرد.
چه پروژه هایی را با NS2 می توان شیه سازی کرد ؟
می توان گفت تقریباً هر نوع پروژه شبیه سازی شبکه را می توان با NS2 شبیه سازی نمود. انواع شبکه های IP سیمی یا بیسیم، شبکه های حسگر بیسیم، شبکه های ادهاک متحرک و ادهاک خودرویی، بیشترین سهم را به خود اختصاص می دهند.
در زیر یک لیست از برخی پروژه های قابل انجام با NS2 را مشاهده میکنید. البته توجه داشته باشید که این لیست شامل همه پروژه های قابل انجام در ns2 نبوده و شما می توانید پروژه های متعدد دیگری را نیز با ns2 انجام دهید.
پروتکل های انتقال داده
- کارایی پروتکل TCP با جریان های UDP
- پیاده سازی پروتکل TCP جدید و مقایسه آن با پروتکل های قبلی
- افزودن یک متریک جدید در یکی از پروتکل های TCP موجود و مقایسه آن با پروتکل های دیگر
انتقال صوت و تصویر
- جریان صوتی/تصویری در شبکه های حسگر بی سیم
- جریان صوتی/تصویری در شبکه های مش بی سیم
پروتکل های مسیریابی
- مقایسه کارایی پروتکل های مسیریابی مختلف شبکه های ادهاک بی سیم مانند DSR , AODV , DSDV , TORA
- مقایسه کارایی پروتکل های مسیریابی مختلف شبکه های حسگر مانند LEACH , SPIN و …
- مقایسه پروتکل های AODV ، trusted AODV و secure AODV
- بهبود یک پروتکل مسیریابی موجود برای شبکه های ادهاک بی سیم
- مسیریابی آگاه از انرژی در شبکه های ادهاک بی سیم با استفاده از منطق فازی
- مسیریابی آگاه از انرژی در شبکه های حسگر بی سیم
شبکه های WSN و Manet و Mesh
- پروتکل های مبتنی بر ماتریس فاصله برای شبکه های حسگر بی سیم
- استفاده مجدد و بهره وری پهنای باند در شبکه های حسگر بی سیم
- مطالعه زیستگاه حیوانات با استفاده از شبکه های حسگر
- مدلسازی Stochastic Power در شبکه های حسگر بی سیم
- مکانیابی در شبکه های حسگر بی سیم
- جمع آوری و تجمیع دیتا در شبکه های حسگر بی سیم
- کنترل انرژی انتقال با استفاده از هر الگوریتمی در شبکه های حسگر بی سیم یا ادهاک بی سیم
کیفیت سرویس (QoS)
- کیفیت سرویس (QoS) در شبکه های ادهاک
- کیفیت سرویس (QoS) در شبکه های حسگر
- کیفیت سرویس (QoS) در شبکه های حسگر بی سیم چند رسانه ای
- کیفیت سرویس (QoS) در شبکه های ادهاک بی سیم چند رسانه ای
سایر موضوعات
- مانیتورینگ شبکه های مبتنی بر Mobile IP در مقایسه با شبکه های مبتنی بر ID گره
- افزودن یک عامل ترافیک (Agent) جدید و تست آن با شبکه های سیمی یا بی سیم موجود
- افزودن یک متد صف بندی جدید و پیاده سازی صف برای کاربردهای سیمی یا بی سیم موجود
- افزودن یک ساختار پکت جدید و تست آن توسط هر شبکه سیمی یا بی سیم (پکت های UDP مالتی مدیا برای شبکه های ادهاک بی سیم)
- پیاده سازی واقعی پروتکل های مسیریابی ادهاک با استفاده از واسط ۸۰۲.۱۱ لپ تاپ ها
- شبکه های نظیر به نظیر (Peer-to-Peer)
البته اخیراً موضوعات جدیدی در شبکه مطرح شده که هر کدام پروتکل استک خاص خودشان را دارند. برای راحتی کار و سرعت بخشیدن به امر شبیه سازی، برای برخی از این حوزه های جدید مانند SDN و IoT ، شبیه ساز مختص آن موضوع طراحی و ارائه شده است.
بخش 3: دانلود و نصب NS2 در لینوکس
در این جلسه، به آموزش نصب NS2 در لینوکس اوبونتو پرداخته شده است. در این آموزش از نسخه NS-2.35 و سیستم عامل لینوکس Ubuntu استفاده شده است. اوبونتو یکی از توزیع های لینوکس است که از محبوبیت بالایی بین دانشگاهیان برخوردار است. گرافیک قوی و محیط کاربر پسند از ویژگی های بارز این سیستم عامل می باشد. مراحل نصب NS2 در لینوکس ، تقریبا برای همه توزیع های دبیان لینوکس یکسان است.
برای نصب NS2 روی نسخه های مختلف از سیستم عامل های مختلف ، ممکن است شما نیاز به نسخه خاصی از NS2 داشته باشید. این قضیه به دلیل سازگاری هر نسخه از NS2 یا نسخه خاصی از کامپایلر gcc می باشد.
نصب NS2.35 در نسخه Ubuntu 12.04 LTS تست شده و بدون مشکل می باشد. سعی کنید برای نصب NS2.35 در لینوکس اوبونتو به روش گفته شده در این آموزش، به نسخه های Ubuntu و NS2.35 دقت کنید تا نصب صحیح و بدون مشکلی داشته باشید.
مرحله اول: نصب پکیج های پیش نیاز
قبل از نصب خود NS2.35 باید پکیج های پیش نیاز آن، در سیستم لینوکس شما نصب شود. برای انجام این کار، دستورات زیر را اجرا نمایید تا پکیج های مربوطه از اینترنت دانلود و نصب شوند:
sudo apt-get update
sudo apt-get install build-essential autoconf automake gcc
sudo apt-get install tcl8.5-dev tk8.5-dev
sudo apt-get install libxt-dev libx11-dev libxmu-dev
sudo apt-get install perl gawk xgraph gnuplot
مرحله دوم: نصب NS2.35
در این آموزش ما ns2.35 را نصب خواهیم کرد. قبل از هر کاری ابتدا باید ns2.35 را دانلود نمایید.
دانلود NS-2
در این قسمت، لینک دانلود تمام نسخه های شبیه ساز شبکه NS2 از اولین نسخه ارائه شده تا آخرین نسخه آن برای دانلود قرار داده شده است.
ns-allinone-2.1b9a.tar.gz
ns-allinone-2.26.tar.gz
ns-allinone-2.27.tar.gz
ns-allinone-2.28.tar.gz
ns-allinone-2.29.2.tar.gz
ns-allinone-2.29.3.tar.gz
ns-allinone-2.30.tar.gz
ns-allinone-2.31.tar.gz
ns-allinone-2.32.tar.gz
ns-allinone-2.33.tar.gz
ns-allinone-2.34.tar.gz
ns-allinone-2.35.tar.gz
پس از دانلود ns-allinone-2.35.tar.gz فایل را به محل مورد نظر برای نصب منتقل کنید و سپس ترمینال را باز نموده و به محل قرارگیری فایل ns-allinone-2.35.tar.gz بروید و با دستور زیر، آن را از حالت فشرده خارج کنید.
tar -xzvf ns-allinone-2.35.tar.gz
پس از extract شدن، یک پوشه به نام ns-allinone-2.35 ایجاد خواهد شد که کافی است با دستور cd داخل آن پوشه رفته و دستور نصب را اجرا نمایید:
cd ns-allinone-2.35
./install
توجه داشته باشید، ممکن است در بین مراحل نصب، از شما خواسته شود، تغییراتی را در فایلی انجام دهید. در صورت بروز این حالت، دقیقا به شما گفته می شود که چه خطی از کدام فایل را باید تغییر دهید. کافی است طبق دستورالعمل داده شده، تغییرات را انجام داده و سپس مجددا دستور install را اجرا نمایید.
مرحله سوم: تنظیم متغیرهای محیطی
اکنون باید متغیر های محیطی که در فایل .bashrc قرار دارد را برای کار با NS2 تنظیم کنید. با دستور locate bashrc مسیر فایل را پیدا کرده و با یک ویرایشگر متنی، آنرا باز کنید و خطوط زیر را به انتهای فایل bashrc اضافی کنید.
########################################################################
# PATH
########################################################################
export NS=/home/majid/ns-allinone-2.35/bin
export NAM=/home/majid/ns-allinone-2.35/nam-1.15/
export TCL=/home/majid/ns-allinone-2.35/tcl8.5.10/unix
export TK=/home/majid/ns-allinone-2.35/tk8.5.10/unix
export PATH=$PATH:$NS:$NAM:$TCL:$TK
########################################################################
# LD_LIBRARY_PATH
########################################################################
export OTCL_LIB=/home/majid/ns-allinone-2.35/otcl-1.14
export NS2_LIB=/home/majid/ns-allinone-2.35/lib
export LD_LIBRARY_PATH=$OTCL_LIB:$NS2_LIB
########################################################################
# TCL_LIBRARY
########################################################################
export TCL_LIB=/home/majid/ns-allinone-2.35/tcl8.5.10/library
export TCL_LIBRARY=$TCL_LIBRARY:$TCL_LIB
########################################################################
توجه داشته باید که محل نصب NS2 در کامپیوتر من /home/majid بوده است. شما باید این قسمت ها را در خطوط بالا با محل نصب و نام کاربری سیستم خودتان جایگزین نمایید.
مرحله چهارم: تست صحت نصب
نصب NS2 در لینوکس اوبونتو در این مرحله به پایان رسیده است، برای اطمینان از صحت نصب NS2 می توانید دستور زیر را اجرا نمایید تا درستی نصب را چک کند. البته توجه داشته باشید که دستور validate می تواند بسیار زمانبر باشد. بنابراین چنانچه از درستی مراحل نصب خود اطمینان داشتید، می توانید از مرحله تست درستی آن صرف نظر نمایید.
cd ns-2.35;
./validate
اکنون می توانید کامپیوتر را restart کنید تا تغییرات اعمال شود. برای اینکه از صحت نصب مطمئن شوید دستور ns را اجرا کنید. خط فرمان باید به شکل % نمایش داده شود.
بسته های نصب آسان NS2
چنانچه به هر دلیلی موفق به نصب این شبیه ساز نشدید یا احساس کردید بیشتر از تایمی که در نظر داشتید از شما وقت می گیرد، می توانید از بسته های نصب آسان استفاده کنید.
با تهیه “بسته های نصب آسان” دیگر نیازی به دانلود NS2 یا نصب NS2 نداشته و شما یک سیستم عامل آماده با ns2 نصب شده روی آن را در قالب یک ماشین مجازی (Virtual Machine) در اختیار خواهید داشت.
پروژه های آموزشی NS2، به صورت رایگان در اختیار دانشجویان دوره NS2 قرار داده میشود.
بخش 4: دانلود و نصب NS2 در ویندوز
در این جلسه، قصد داریم به آموزش نصب ns2 در ویندوز، بپردازیم. در این جلسه، طریقه نصب شبیه ساز شبکه NS2.35 در محیط ویندوز ۷ را آموزش خواهید دید.
توجه: شبیه ساز ns2 برای سیستم عامل لینوکس نوشته شده است ولی می توان از طریق سیگوین (Cygwin) آن را در ویندوز نیز نصب و از آن استفاده نمود. مسلماً وقتی که یک نرم افزار طراحی شده برای محیط لینوکس را در محیط ویندوز استفاده می کنیم، با کاستی هایی نیز مواجه خواهیم شد که البته این کاستی ها در کاربردهای رایج NS2 خیلی ملموس نخواهد بود. ولی برای افرادی که قصد دارند هم سرعت بهتری را در عملیات کامپایل تجربه کنند و هم از کلیه کاربردهای حرفه ای NS2 مانند Network Emulation و … بهره مند شوند، توصیه می شود که این شبیه ساز را در محیط لینوکس، نصب و استفاده نمایند.
برنامه سیگوین (Cygwin) با سیستم عامل های ویندوز زیر سازگار است (البته ممکن است در برخی نسخه های ویندوز مشکلاتی همچون عدم کارکرد صحیح NAM یا مشکلات مشابه را داشته باشید) :
- ویندوز ۷
- ویندوز ۸
- ویندوز ۱۰
نصب ns2 در ویندوز، طی ۴ مرحله انجام می شود:
- مرحله اول: نصب سیگوین
- مرحله دوم: نصب ns2
- مرحله سوم: تنظیم متغیرهای محیطی
- مرحله چهارم: تست صحت نصب (اختیاری).
مرحله اول: نصب سیگوین
سیگوین، حین نصب نیاز به پکیج هایی دارد که باید نصب شوند. چنانچه این پکیج ها قبلاً از اینترنت دریافت شده باشند، شما می توانید آنها را حین نصب به سیگوین معرفی کنید (روش نصب آفلاین سیگوین) ولی در غیر اینصورت باید به صورت آنلاین از اینترنت دریافت شوند (روش نصب آنلاین سیگوین).
بنابراین، نصب سیگوین به دو صورت ممکن است:
- نصب آنلاین
- نصب آفلاین
نصب آنلاین سیگوین
ابتدا باید سیگوین را از لینک زیر دانلود کنید.
سیگوین در حین نصب، نیاز به اینترنت با کانکشن قوی و استیبل دارد تا پکیج های لینوکس مورد نیاز را از اینترنت دانلود و نصب کند. دقت کنید که در مرحله نصب پکیج، از شما خواسته می شود که یک mirror را به عنوان repository دانلود پکیج ها انتخاب نمایید تا پکیج های مورد نظر شما از آنجا دانلود شوند.
نکته قابل توجه در نصب سیگوین این است که پس از انتخاب کردن mirror از شما خواسته می شود مشخص کنید که کدام پکیج های لینوکس را نیاز دارید. مطمئناً هیچ گاه نیاز به تمام پکیج ها نخواهد بود و در هر پروژه ای با توجه به کاربرد، نیاز به یک تعداد از پکیج های لینوکس خواهیم داشت. ما در کار شبیه سازی با NS2 به یک سری پکیج های مشخصی نیاز داریم که وجود آنها ضروری است. این پکیج ها عبارتند از:
gcc
gcc-g++
gnuplot
make
patch
perl
tar
X-startup-scripts
xorg-x11-base
xorg-x11-bin
xorg-x11-devel
xorg-x11-bin-dlls
xorg-x11-bin-lndir
xorg-x11-etc
xorg-x11-fenc
xorg-x11-fnts
xorg-x11-libs-data
xorg-x11-xwin
libxt-devel
libXmu-devel
پکیج های مورد نظر را انتخاب کرده و عملیات نصب را ادامه دهید تا نصب سیگوین با موفقیت به پایان برسد.
نصب آفلاین سیگوین
در روش نصب آنلاین سیگوین ، معمولاً هنگام دریافت پکیج های مورد نظر از repository های مربوطه مشکلاتی پیش می آید (به علت مشکلات اینترنت ضعیف یا عدم دسترسی ip ایران به سایت های ریپازیتوری) که فرآیند نصب را با خطا مواجه می سازد. بنابراین، در صورتی که موفق به نصب آنلاین سیگوین نشدید، می توانید از پکیج آفلاین cygwin که بدون اینترنت و به راحتی قابل نصب می باشد استفاده نمایید.
توجه داشته باشید که برای نصب سیگوین به روش آفلاین، برنامه سیگوین را از لینک ذیل دریافت نمایید و از نصب نسخه های دیگر سیگوین خودداری نمایید.
دانلود Cygwin
نرم افزار سیگوین را می توانید از طریق لینک زیر از علوم نوین امیرکبیر ، دانلود کنید:
دانلود پکیج آفلاین Cygwin
پکیج آفلاین سیگوین را می توانید از طریق لینک زیر از علوم نوین امیرکبیر ، دانلود کنید:
تنها تفاوت نصب سیگوین در روش آفلاین این است که شما قبلا پکیج های سیگوین را دانلود نموده اید و کافی است در حین نصب سیگوین پس از انتخاب روش آفلاین، پوشه مربوط به پکیج های سیگوین را از روی سیستم خود به سیگوین معرفی نمایید تا از روی فایل های موجود در سیستم لوکال شما، فرآیند نصب سیگوین را انجام دهد.
مرحله دوم: نصب ns2.35
پس از نصب cygwin نوبت می رسد به نصب خود ns2. برای انجام این کار، ابتدا باید ns2.35 را دانلود کنید.
دانلود NS-2
لینک دانلود تمام نسخه های NS2:
ns-allinone-2.1b9a.tar.gz
ns-allinone-2.26.tar.gz
ns-allinone-2.27.tar.gz
ns-allinone-2.28.tar.gz
ns-allinone-2.29.2.tar.gz
ns-allinone-2.29.3.tar.gz
ns-allinone-2.30.tar.gz
ns-allinone-2.31.tar.gz
ns-allinone-2.32.tar.gz
ns-allinone-2.33.tar.gz
ns-allinone-2.34.tar.gz
ns-allinone-2.35.tar.gz
سپس باید فایل ns-allinone-2.35.tar.gz دانلود شده را به محل مورد نظر برای نصب (من مسیر /home/majid را برای نصب انتخاب کرده ام)، انتقال داده و ترمینال سیگوین را اجرا کنید و پس از تغییر مسیر جاری (با دستور cd) به آدرس محل کپی فایل ns-allinone-2.35.tar.gz دستورات زیر را در آن مسیر اجرا نمایید:
tar -zxvf ns-allinone-2.35.tar.gz
cd ns-allinone-2.35
./install
نصب NS2 با وارد کردن دستور install آغاز شده و مدتی طول می کشد تا عملیات نصب به اتمام برسد. در طول عملیات نصب، از بستن پنجره ترمینال cygwin خودداری کنید و منتظر باشید تا پیغام اتمام موفقیت آمیز عملیات نصب در ترمینال ظاهر شود.
مرحله سوم: تنظیم متغیرهای محیطی
در این مرحله باید مسیرهای خواسته شده در ترمینال که پس از موفقیت آمیز بودن نصب NS2 ظاهر می شود، به متغیرهای محیطی افزوده شوند. افزودن مسیرهای مورد نیاز به متغیرهای محیطی سیستم عامل برای اجرای صحیح شبیه ساز ضروری است.
مسیرهایی که لازم است در متغیرهای محیطی قرار گیرند در پایان نصب در ترمینال نشان داده می شود. کافی است خطوط زیر را در انتهای فایل پروفایل ترمینال (.bashrc) قرار دهید:
/home/majid/.bashrc
#############################################################
# PATH
#############################################################
export XGRAPH=/home/majid/ns-allinone-2.35/bin:/home/majid/ns-allinone-2.35/tcl8.5.10/unix:/home/majid/ns-allinone-2.35/tk8.5.10/unix
export NS=/home/majid/ns-allinone-2.35/ns-2.35/
export NAM=/home/majid/ns-allinone-2.35/nam-1.15/
export PATH=$PATH:$XGRAPH:$NS:$NAM
#############################################################
# LD_LIBRARY_PATH
#############################################################
export OTCL_LIB=/home/majid/ns-allinone-2.35/otcl-1.14
export NS2_LIB=/home/majid/ns-allinone-2.35/lib
export X11_LIB=/usr/X11R6/lib
export USR_LOCAL_LIB=/usr/local/lib
export LD_LIBRARY_PATH=$OTCL_LIB:$NS2_LIB:$X11_LIB:$USR_LOCAL_LIB
#############################################################
# TCL_LIBRARY
#############################################################
export TCL_LIB=/home/majid/ns-allinone-2.35/tcl8.5.10/library
export USR_LIB=/usr/lib
export TCL_LIBRARY=$TCL_LIBRARY:$TCL_LIB:$USR_LIB
#############################################################
export DISPLAY=:0.0
توجه داشته باشید که به جای majid نام کاربر سیستم خود را قرار دهید و اگر ns2 را در مسیری غیر از مسیر home کاربر نصب نموده اید، مسیرهای بالا را اصلاح نمایید.
مرحله چهارم: تست صحت نصب
پس از انجام مراحل بالا، برای تست صحت نصب، معمولاً از دستور validate استفاده می شود ولی از آنجا دستور زمانبری است، شما می توانید به جای آن از روش ساده تری برای تست استفاده کنید. کافی است یک بار ترمینال را باز و بسته کنید و سپس دستور “ns” را وارد نمایید. در صورتی که با علامت % زیر دستور وارد شده مواجه شوید، یعنی شبیه ساز به درستی نصب شده است در غیر این صورت، مشکلی در روال نصب یا معرفی مسیرهای مورد نیاز به متغیرهای سیستمی داشته اید.
بسته های نصب آسان NS2
چنانچه به هر دلیلی موفق به نصب این شبیه ساز نشدید یا احساس کردید بیشتر از تایمی که در نظر داشتید از شما وقت می گیرد، می توانید از بسته های نصب آسان استفاده کنید.
با استفاده از “بسته های نصب آسان” دیگر نیازی به دانلود NS2 یا نصب NS2 نداشته و شما یک سیستم عامل آماده با ns2 نصب شده روی آن را در قالب یک ماشین مجازی (Virtual Machine) در اختیار خواهید داشت.
بسته های نصب آسان NS2، به صورت رایگان در اختیار دانشجویان دوره NS2 قرار داده میشود.
بخش 5: اجرای شبیه سازی یک شبکه ساده در NS2
مثال ۱: ایجاد یک شبکه سیمی ساده
موضوع شبیه سازی: در این شبیه سازی، نحوه ایجاد یک شبکه سیمی کاملاً ساده با ۳ گره در ns2 آموزش داده می شود.
پارامترهای شبیه سازی
یک شبکه سیمی در NS2، را می توان با متصل کردن تعدادی گره از طریق سیم، ایجاد کرد. هر جفت گره در شبکه سیمی با یک لینک duplex به هم متصل می شود. هر لینک دارای خصیصه هایی از قبیل پهنای باند، تأخیر، و نوع صف می باشد.
در این شبیه سازی، یک شبکه سیمی را ایجاد نموده و گره ها را با لینک duplex با پهنای باند ۲ مگابیت و تأخیر ۵۰ میلی ثانیه و صف DropTail به هم متصل نموده و به هر گره نیز یک برچسب، یک رنگ و یک شکل، اختصاص می دهیم.
اجرای شبیه سازی
این سناریو با دستور مقابل اجرا می شود: ns test1.tcl
با اجرای این مثال، یک شبکه ساده مطابق با شکل زیر ایجاد خواهد شد که دارای ۳ گره متصل می باشد. نتیجه گرافیکی در انیماتور شبکه NAM قابل مشاهده خواهد بود.
سورس کد شبیه سازی
کد شبیه سازی مثال۱، از لینک زیر قابل دانلود می باشد.
دانلود test1.tcl
مثال ۲: انتقال دیتا بین گره ها
هدف از شبیه سازی: در این شبیه سازی، نحوه انتقال دیتا بین گره ها در NS2 در یک شبکه سیمی از طریق پروتکل انتقال TCP آموزش داده می شود. دراین شبیه سازی گره n0 منبع و گره n1 مقصد می باشد.
پارامترهای شبیه سازی
در شبکه های سیمی، گره ها با استفاده از مدل ارتباطی متشکل از عامل TCP، عامل TCPSink، و اپلیکیشن FTP ارتباط برقرار می کنند. گره فرستنده به عامل TCP متصل می شود و گره گیرنده به عامل TCPSink. ارتباط میان دو عامل TCP و TCPSink با استفاده از کلمه کلیدی connect برقرار می شود. ارتباط میان عامل انتقال و اپلیکیشن FTP با استفاده از کلمه کلیدی attach-agent انجام می شود.
عامل TCP دیتا را به عامل TCPSink ارسال می کند. عامل TCPSink نیز با تحویل گرفتن بسته دیتا در طرف گیرنده، یک بسته acknowledgement به عامل TCP ارسال می کند تا عامل TCP آن را پردازش و نرخ انتقال دیتا را تنظیم کند. بسته های مفقود شده به عنوان نشانه ای از ازدحام تفسیر می شوند.
اجرای شبیه سازی
این سناریو با دستور مقابل اجرا می شود: ns test2.tcl
با اجرای این مثال، یک شبکه ساده مطابق با شکل زیر ایجاد خواهد شد که دارای ۳ گره متصل می باشد و ترافیک از سمت گره n0 به سمت گره n1 ارسال می گردد. نتیجه گرافیکی در انیماتور شبکه NAM قابل مشاهده خواهد بود.
سورس کد شبیه سازی
کد شبیه سازی مثال۲، از لینک زیر قابل دانلود می باشد.
دانلود test2.tcl
مثال ۳: ایجاد یک شبکه بی سیم
موضوع شبیه سازی: در این مثال، نحوه مدل کردن یک شبکه بی سیم با ۲ گره در ns2 آموزش داده می شود. مدل شبکه بی سیم با تعداد گره های ثابت را می توان با استفاده از زبان اسکریپتی TCL—Tool Command Language ایجاد نمود.
پیکربندی گره توسط دستور node-config از مولفه های زیر تشکیل می شود:
- کانال (channel)
- واسط شبکه (networking interface)
- مدل انتشار رادیو (radio propagation model)
- پروتکل (MAC (Medium Access Control
- پروتکل مسیریابی ادهاک (adhoc routing protocol)
- صف واسط (interface queue)
- لایه لینک ( link layer)
- آبجکت توپولوژی (topography object)
- نوع آنتن (antenna type)
اجرای شبیه سازی
این سناریو با دستور مقابل اجرا می شود: ns test3.tcl
با اجرای این مثال، یک شبکه بی سیم ساده مطابق با شکل زیر ایجاد خواهد شد که دارای ۲ گره متصل می باشد. نتیجه گرافیکی در انیماتور شبکه NAM قابل مشاهده خواهد بود.
سورس کد شبیه سازی
کد شبیه سازی مثال۳، از لینک زیر قابل دانلود می باشد.
دانلود test3.tcl
بخش 6: پروژه های آموزشی NS2
پروژه های آموزشی می تواند نقطه شروع خوبی برای یادگیری NS2 باشد. برای این منظور چند نمونه پروژه آموزشی تهیه شده است که موضوع پروژه ها نیز به صورت متنوع و هدفمند انتخاب شده تا بتوانید تقریباً برای تمام موضوعات مربوط به کار خودتان، نمونه کدها را ببینید و اصول را آموزش ببینید و سپس با تغییر دادن و کنار هم قرار دادن همین پروژه ها، به شبیه سازی موضوع پژوهش خودتان بپردازید.
پروژه های آموزشی NS2، به صورت رایگان در اختیار دانشجویان دوره NS2 قرار داده میشود.
لیست پروژه ها:
- شبیه سازی شبکه های سیمی با NS2
- شبیه سازی شبکه های بی سیم با NS2
- ارزیابی پروتکل مسیریابی AODV در MANET
- بررسی پنجره ازدحام در MANET با NS2
- شبیه سازی پروتکل Leach در NS2
- شبیه سازی الگوریتم ژنتیک در WSN با ns2
بخش 7: بسته های نصب آسان NS2
با استفاده از “بسته های نصب آسان” دیگر نیازی به دانلود NS2 یا نصب NS2 نداشته و شما یک سیستم عامل آماده با ns2 نصب شده روی آن را در قالب یک ماشین مجازی (Virtual Machine) در اختیار خواهید داشت.
شما با توجه به موضوع پروژه خود، می توانید ماشین مجازی مربوطه را تهیه نمایید. در هر VM، با توجه به موضوع، کلیه ماژول ها و افزونه های مورد نیاز برای شبیه سازی آن نوع شبکه، به ns2 افزوده شده است و نیاز به هیچ گونه نصب و پیکربندی نخواهید داشت.
- ماشین مجازی شبکه های حسگر – WSN
- ماشین مجازی شبکه های حسگر زیر آب – UWSN
- ماشین مجازی شبکه های ادهاک خودرویی – VANET
بسته های نصب آسان NS2، به صورت رایگان در اختیار دانشجویان دوره NS2 قرار داده میشود.
بخش 8: منابع و مراجع آموزش NS2
۱- کتاب NS Simulator for Beginners
زبان: انگلیسی
تعداد صفحات: ~۱۸۰
این کتاب با زبان ساده و مثال های متعدد و هدفمند به آموزش شبیه ساز شبکه NS2 پرداخته است و روشی که برای آموزش NS2 برای مبتدیان پیش گرفته، روش بسیار جالبی است که پیشنهاد بنده برای افرادی که به تازگی قدم در این حوزه نهاده اند، شروع آموزش ns2 با این کتاب است. تأکید این کتاب روی سناریو نویسی با زبان tcl است و کمتر به موضوع گسترش و پروتکل نویسی در NS2 پرداخته شده است.
۲- کتاب Introduction to Network Simulator NS2
زبان: انگلیسی
تعداد صفحه: ~۵۰۰
برای آموزش NS2 به صورت کامل، بخصوص برای کسانی که قصد پیاده سازی پروتکل های شبکه را دارند پیشنهاد می شود که کتاب دوم را نیز مطالعه نمایند. البته لازم نیست کل این کتاب به صورت کامل و ترتیبی مطالعه شود. دانشجویان می توانند با توجه به موضوع و فیلد کاری خود از شبیه ساز شبکه NS2، فصل هایی از این کتاب را انتخاب و مطالعه نمایند.
3- دوره آموزش ویدئویی NS2 (بخشی از دوره)
دانش پژوه گرامی، این آموزش رایگان، فقط بخشی از دوره آموزش جامع NS2 می باشد. نسخه کامل این آموزش را می توانید در صفحه اصلی دوره دنبال کنید.
درباره مجید شبیری
کارشناس ارشد فناوری اطلاعات از دانشگاه صنعتی امیرکبیر. مدیر و مؤسس "علوم نوین امیرکبیر"، متخصص برنامه نویسی، شبکه، لینوکس و امنیت. از سال 84 همزمان با شروع تحصیلات دانشگاهی، وارد حوزه تخصصی مهندسی نرم افزار شدم و اکنون مشغول تحقیق، توسعه و آموزش در حوزه بلاک چین هستم و معتقدم بلاکچین به زودی فضای کسب و کارها را منقلب خواهد کرد.
نوشته های بیشتر از مجید شبیریمطالب زیر را حتما مطالعه کنید
دوره های آموزشی مرتبط
دوره آموزش شبیه ساز GNS3
دوره آموزش شبیه ساز Omnet
پکیج آموزش جامع NS3
پکیج آموزش جامع Opnet
پکیج آموزش جامع SDN
18 دیدگاه
به گفتگوی ما بپیوندید و دیدگاه خود را با ما در میان بگذارید.
سلام وقتتون بخیر
من برای اجرای یک کد ساده که دو گره و یک لینک هست رو با دستور ns که اجرا میکنم این ارور رو نمایش میده
ns: cbt stop: invalid command name “cbt”
while executing
“cbt stop
محبت کنید و راهنمایی کنید جزئیات رو برای رفع ارور.
سلام
وقت بخیر
دوست عزیز، این خطا مربوط میشه به پیدا نشدن پروتکل cbt در ns2 ای که روی سیستم شما نصب است.
ابتدا بررسی کنید آیا کامپایل و افزوده شدن پروتکل cbt به سیستم ns2 شما به درستی انجام شده یا خیر. برای اینکار بعد از تغییرات در فایل makefile مجددا ns2 را کامپایل کنید و خطاهای احتمالی را بررسی کنید.
سپس سناریوی tcl را اجرا کنید.
سلام ممنون از آموزش های عالیتون. برنامه NSG2 رو از کجا میشه دانلود کرد
سلام
خواهش میکنم دوست عزیز
از لینک زیر میتونید دانلود کنید
https://amirkabir-science.com/dl/Files/NS2/NSG2.1.jar
موفق باشید
عالی بود
موفق باشید
عالی بود آموزشتان .
یک مشکل کوچیک داشتم لطغا اونم راهنمایی کنید در کامنت قبلی درج کردم
تشکر
ممنون
پاسخ داده شد
سلام وقت بخیر
من موقع نصب پکیج ها یه مشکلی بر میخورم که نصب نمیشه منظورم اینه:
sudo apt-get install tcl8.5-dev tk8.5-dev
مابقی شون نصب میشن
و وقتی میخوام ns2 رو نصب کنم و install میگیرم ازش آخرش برام یک خط ارور میاره
Makefile: tcp/tcp-fack.oj
استاد ممنون میشم راهنمایی کنید واقعا لنگ موندم
سلام
وقت بخیر
این آموزش و دستورات مربوط به نصب نسخه 2.35 هست
شما کدوم نسخه رو نصب میکنید؟
چون نسخه tcl8.5-dev tk8.5-de برای هر نسخه ns2 ممکنه فرق داشته باشه
سلام من مراحل نصب ns2 را طبق فیلم آموزشی که قرار دادید انجام میدم اما خطا میگیره همش
خطا هم این است package autoconf has no installation candidate
ممنون میشم راهنمایی کنید
با سلام
وقت بخیر
در لیست پکیج های درج شده برای نصب با دستور apt-get میتوانید پکیج autoconf را بردارید و دستور را اجرا کنید.
موفق باشید.
سلام شبکه های مه و ابر را میشود در ns2 شبیه سازی کرد؟
با سلام و احترام
اگر افزونه یا همان Patch مربوط به Fog Computing برای ns2 وجود داشته باشد بله می توانید با Patch کردن آن در ns2، شبیه سازی Fog را انجام دهید.
ولی معمولا برای شبیه سازی موضوعات کلود و مه از شبیه سازهای مبنی بر کلودسیم استفاده میشود.
این Git را چک کنید:
https://github.com/Cloudslab
موفق باشید.
سلام
در نصب ubuntu برای share file وقتی دستور sudo mount رو اجرا میکنم میگه
Mount:wrong fs type, bad option, bad superbloch on sf
وقتی ls میگیرم ns2_sfمیاد
ممنون از سایت خوبتون و اینکه فیلم آموزش نصب ماشین مجازی
سلام
خواهش میکنم دوست عزیز
اگر منظور شما share folder است، برای اینکه بتوانید در اوبونتو پوشه ns2_sf ساخته شده در ویدئوی آموزشی را به پوشه ای از ویندوز، mount کنید، لازم است ابتدا شما Extension Pack مربوط به VirtualBox را نصب کرده باشید. نحوه نصب آن در ویدئوی آموزشی توضیح داده شده است.
پس از نصب آن و restart کردن ماشین مجازی و همچنین ویندوز، میتوانید مجددا وارد ماشین مجازی (اوبونتو) شوید و مراحل mount را انجام دهید.
ضمنا به اسامی نیز دقت داشته باشید. ممکن است شما در سیستم خودتان از اسامی دیگری برای ShareFolder و … استفاده کرده باشید. بنابراین باید از اسامی مربوط به سیستم خودتان استفاده نمایید.
موفق باشید.
سلام.وقت بخیر.برای چاپ متنی در پروتکل aodv در زمان خاصی از اجرا چیکار باید کرد؟
سلام
وقت شما هم بخیر
برای چاپ یک متن باید از دستور printf استفاده نمایید.
معمولا این کار برای دیباگ و اشکال یابی در پروتکل استفاده می شود که لازم است ابتدا شما محل مناسب برای درج این دستور را پیدا کنید.
برای مثال اگر شما میخواهید هنگام پیدا شدن یک مسیر مناسب از مبدأ به مقصد، پیامی چاپ شود میتوانید در محلی که پیام Route Reply توسط گره مبدأ دریافت میشود، دستور پرینت را قرار دهید. این کار را میتوانید با درج دستور پرینت در تابع rt_down انجام دهید.