معرفی دوره
قبل از آموزش NS2 ابتدا ببینیم شبکه چیست. یک شبکه کامپیوتری یا مخابراتی، شامل یک سری تجهیزات و زیرساخت است که اجرای آن در مقیاس تجاری، معمولاً با هزینه های زمانی و مالی چشمگیری همراه است. بنابراین لازم است قبل از اجرای واقعی شبکه، یک مدل سازی و آنالیز قبلی در مورد شبکه مورد نظر صورت گیرد و مشکلات احتمالی شبکه، شناسایی و برطرف گردد. برای این کار نیاز به ابزاری داریم که تجهیزات و ارتباطات شبکه را برای ما مدل سازی و شبیه سازی کند.
NS2 چیست؟ NS2 یا Network Simulator 2 محیط نرم افزاری است که اکثر شرکت ها و تیم های پژوهشی، دانشجویان و محققین حوزه شبکه برای مدل سازی، شبیه سازی، Emulation و تحلیل و ارزیابی کارآیی شبکه و پروتکل های شبکه از آن استفاده می کنند. NS2 اکثر پروتکل های متداول شبکه را پوشش می دهد. با استفاده از شبیه سازی شبکه با NS2 می توان یک شبکه را قبل از پیاده سازی واقعی، مدل سازی نموده و پارامترهای مختلف شبکه را در شبیه سازی تغییر داد و نتایج حاصل از شبیه سازی ها را مورد ارزیابی و مقایسه قرار داد. پس از هر شبیه سازی شبکه با NS2 می توان یک سری آماره یا Statistic را از نتایج شبیه سازی استخراج نمود. آماره ها در واقع پارامترهایی هستند که با انجام شدن هر شبیه سازی، مقدار آنها مشخص می شود. برای آشنایی بیشتر با NS2 ، می توانید مقاله آموزش جامع NS2 را مطالعه نمایید.
مخاطبین دوره
دوره شبیه سازی شبکه با NS2 ، مربوط به آموزش شبیه سازی و مدل سازی شبکه های کامپیوتری با استفاده از نرم افزار NS2 می باشد و با توجه به اینکه محتوای دوره، کاملاً کاربردی و پروژه محور است، برای دانشجویان تحصیلات تکمیلی، متخصصین حوزه شبکه و فعالان حوزه IT ، بسیار مفید و کاربردی خواهد بود.
ضمناً شرکت ها و ارگان های خصوصی و دولتی که نیاز به آموزش سازمانی شبیه سازی شبکه با NS2 برای کارکنان دارند، می توانند با ما تماس حاصل نموده و در رابطه با شرایط مناسب و تخفیف های ما برای ثبت نام های گروهی یا آموزش اختصاصی برای سازمان ها ، اطلاعات لازم را کسب نمایند.
دموی رایگان از محتوای دوره
دموهای رایگان دوره آموزش شبیه سازی شبکه با NS2 در این قسمت قابل مشاهده می باشد. چنانچه دموی جدیدی از این دوره، ارائه شود، در همین قسمت درج خواهد شد. همچنین شما می توانید از طریق “ثبت نام در وب سایت” دموهای جدید این دوره را به محض ارائه شدن، از طریق ایمیل دریافت نمایید. امیدواریم این دوره را بپسندید و از این آموزش لذت ببرید.
آشنایی با شبیه سازی
مفاهیم اولیه شبکه
معماری NS2 و ساختار داخلی آن
آشنایی با NS2 و پروتکل های آن
دستورات پرکاربرد لینوکس ubuntu
ساخت ماشین مجازی لینوکس اوبونتو
اولین شبیه سازی در NS2
نصب Ns2.35 در Ubuntu 16.04
ساختار makefile و دستورات کامپایل ns2
پیاده سازی یک مدل حرکت در ns2
سرفصل مطالب دوره
بخش 1 : مقدمات
جلسه ا: مفاهیم اولیه شبکه
- شبکه چیست؟
- مفهوم لایه بندی در شبکه
- مفهوم پروتکل
- مدل مرجع OSI
جلسه ۲: آشنایی با شبیه سازی
- مدل سازی چیست؟
- مدل سازی با رویکرد تحلیلی
- مدل سازی با رویکرد شبیه سازی
- شبیه سازی وابسته به زمان
- مراحل شبیه سازی شبکه
- مؤلفه های شبیه سازی شبکه
جلسه ۳: آشنایی با NS2
- NS2 چیست؟
- تاریخچه NS2
- پروتکل های پشتیبانی شده در NS2
- شبکه های قابل شبیه سازی در NS2
- زبان های برنامه نویسی مورد استفاده در NS2
جلسه ۴: معماری و ساختار داخلی NS2
- شبیه سازی با NS2 از دیدگاه کاربر
- معماری NS2
- شبیه سازی با NS2 از دیدگاه برنامه نویس
- دلیل استفاده از دو زبان OTcl و C++ در NS2
- ساختار دایرکتوری های NS2
بخش 2 : نصب و آماده سازی محیط شبیه سازی
جلسه ا: نصب لینوکس Ubuntu 16.04 در ماشین مجازی VirtualBox
- ماشین مجازی چیست؟
- مزایای مجازی سازی
- ایجاد ماشین مجازی لینوکس Ubuntu روی VirtualBox
- پیکربندی و تنظیمات رایج در ویرچوال باکس
جلسه ۲: دستورات پرکاربرد لینوکس اوبونتو
- دستورات مدیریت کاربر در لینوکس اوبونتو
- دستورات فایل و دایرکتوری در لینوکس اوبونتو
- دستورات کار با متن در لینوکس اوبونتو
- دستورات کار با فایل های فشرده در لینوکس اوبونتو
- دستورات کار با متغیرهای محیطی در لینوکس اوبونتو
- دستورات نصب و حذف برنامه در لینوکس اوبونتو
جلسه ۳: نصب NS2.35 روی لینوکس Ubuntu 16.04
- نصب پکیج های پیش نیاز
- دانلود و نصب ns-allinone-2.35
- تنظیم متغیرهای محیطی
جلسه ۴: اجرای اولین مثال شبیه سازی شبکه در NS2
- نحوه اجرای یک شبیه سازی با دستور ns
- نحوه مشاهده نتایج گرافیکی شبیه سازی با دستور nam
بخش 3 : زبان اسکریپت نویسی TCL
جلسه ا: مقدمات زبان اسکریپت نویسی TCL
- معرفی زبان TCL
- نحوه اجرای دستورات TCL
- علائم جانشینی در TCL
- علائم گروه بندی در TCL
- نحوه نمایش اندیس آرایه
- نمایش آرگومان های ورودی تابع
- کامنت گذاری در TCL
- کاراکتر نشان دهنده اتمام دستورات
جلسه ۲: متغیرها و عملگرهای پایه در TCL
- دستورات تخصیص و بازپس گیری فضای حافظه (set , unset)
- دریافت اطلاعات از ورودی (gets)
- ارسال اطلاعات به خروجی (puts)
- گزارش خطا (error)
جلسه ۳: عملگرها و توابع منطقی و ریاضیاتی در TCL
- عملگرهای منطقی در TCL
- عملگرهای ریاضیاتی در TCL
- توابع ریاضیاتی در TCL
جلسه ۴: ساختارهای کنترلی در TCL
- ساختارهای انتخاب در زبان TCL
- ساختارهای تکرار در زبان TCL
- ساختارهای پرش در زبان TCL
جلسه ۵: ماژولار سازی برنامه ها در TCL
- ماژولار سازی چیست؟
- دستور source
- توابع یا رویه ها
- مثال از ماژولار سازی در TCL
جلسه ۶: مباحث پیشرفته در TCL
- مفهوم کانال در TCL
- کانال های استاندارد ورودی و خروجی
- کانال های فایل
- تعبیه دستورات لینوکس داخل دستورات TCL
بخش 4 : اصول شبیه سازی با NS2
جلسه ا: قالب کلی سناریوی شبیه سازی در NS2
- شمای کلی یک سناریوی TCL
- آغاز شبیه سازی
- ایجاد آبجکت از کلاس Simulator
- ایجاد فایل های Trace
- پایان شبیه سازی با رویه finish
جلسه ۲: تعریف گره و لینک
- تعریف گره
- تعریف دسته ای گره با حلقه for
- استخراج ID گره
- تعریف لینک
- مدل لینک در NS2
- تعیین محدودیت بافر لینک
جلسه ۳: ایجاد ترافیک در شبکه (تعریف Agent و Application)
- مکانیزم انتقال اطلاعات در NS2
- ایجاد عامل انتقال ترافیک (Agent)
- ایجاد مولد ترافیک (Application)
جلسه ۴: تعیین خصوصیات ظاهری شبیه سازی در NAM
- تعیین خصوصیات ظاهری Node
- تعیین خصوصیات ظاهری Link
- اعلان متنی رویدادها در NAM
جلسه ۵: بررسی یک مثال کامل از یک شبیه سازی در NS2
- انجام یک شبیه سازی کامل
- بررسی کد
- تحلیل شبیه سازی
جلسه ۶: طراحی ویژوال یک سناریوی شبیه سازی ساده با NSG.2 (بدون حتی یک خط کدنویسی)
- معرفی NSG.2
- نحوه اجرا و آشنایی با محیط NSG.2
- طراحی ویژوال یک سناریوی شبکه در NSG.2 بدون کد نویسی
- استخراج کد TCL از طرح گرافیکی سناریو با یک کلیک
بخش 5 : جمع آوری اطلاعات و ترسیم نمودارهای شبیه سازی
جلسه ا: رویکردهای پردازش نتایج شبیه سازی شبکه در NS2
- پردازش نتایج شبیه سازی
- پردازش نتایج شبیه سازی از طریق ردگیری متغیرها
- پردازش نتایج شبیه سازی از طریق ردگیری پکت
- مدل ردگیری پکت در NS2
- فرمت فایل trace در شبکه های سیمی (Normal Packet Trace Format)
- ردگیری زیرمجموعه ای از رویدادها
جلسه ۲: تحلیل فایل Trace با استفاده از AWK (آموزش awk)
- معرفی زبان AWK
- نحوه اجرای دستورات و فراخوانی برنامه های AWK
- ساختار دستورات AWK
- ساختار برنامه های AWK
جلسه ۳: مانیتورینگ صف و جریان (Queue Monitor و Flow Monitor)
- تفاوت Monitoring با Tracing
- مانیتورینگ صف
- فرمت فایل خروجی مانیتورینگ صف
- مانیتورینگ جریان
- فرمت فایل خروجی مانیتورینگ جریان
جلسه ۴: مدل کردن خرابی و نویز لینک (Noise Model و Link Failure)
- افزودن نویز به لینک (Error Model)
- ایجاد خرابی در لینک (Link Failure)
جلسه ۵: مسیریابی در شبکه های سیمی
- انواع مسیریابی سیمی
- مسیریابی تک پخشی
- مسیریابی چند پخشی
- مسیریابی ایستا
- مسیریابی پویا
- تطابق مسیریابی با وضعیت شبکه
بخش 6 : اصول شبیه سازی شبکه های وایرلس با NS2
جلسه ا: شبکه های وایرلس در NS2
- معرفی ماژول وایرلس در NS2
- ساختار ماژول MobileNode در NS2
- گام های اساسی شبیه سازی بیسیم در NS2
- ساخت GOD
- ساخت آبجکت Topography
- پیکربندی گره بی سیم با دستور node-config
جلسه ۲: تحلیل نتایج شبیه سازی در شبکه های بیسیم
- فرمت های ردگیری پکت شبیه سازی بی سیم در ns2
- فرمت ردگیری پکت Wireless Packet Trace Format
- فرمت ردگیری پکت New Wireless Trace Format
- مثال از تحلیل فایل Trace بی سیم با AWK
جلسه ۳: پیکربندی پارامترهای برد انتقال گره بیسیم در NS2
- پیکربندی پارامترهای برد انتقال گره بی سیم در NS2
- پارامتر CPThresh
- پارامتر CSThresh
- پارامتر RxThresh
- پارامتر pt
جلسه ۴: پیکربندی و ردگیری مصرف انرژی گره های بیسیم
- مدل انرژی گره در ns2
- کلاس EnergyModel
- پارامترهای پیکربندی مدل انرژی در دستور node-config
- دستورات مربوط به استخراج انرژی باقیمانده گره
- Trace انرژی گره در NS2
جلسه ۵: تحرک گره های بیسیم در NS2
- ایجاد حرکت معین در گره با دستور setdest
- ایجاد حرکت تصادفی در گره با ابزار setdest
- ایجاد حرکت تصادفی در گره با ویژگی random-motion
جلسه ۶: طراحی ویژوال یک سناریوی شبیه سازی بیسیم با NSG.2 (بدون حتی یک خط کدنویسی)
- آشنایی با امکانات NSG.2 برای شبکه های بی سیم
- طراحی ویژوال یک سناریوی بی سیم در NSG.2 بدون کد نویسی
- استخراج کد TCL از طرح گرافیکی سناریو با یک کلیک
جلسه ۷: نحوه تولید سناریوی تحرک و ترافیک شبکه توسط دستورات Setdest و Cbrgen
- هدف از به کارگیری ابزارهای setdest و cbrgen
- مزایای استفاده از setdest و cbrgen
- ایجاد فایل الگوی حرکت تصادفی با setdest
- ایجاد فایل الگوی ترافیک تصادفی با cbrgen
- الزامات نامگذاری برخی آبجکت ها در سناریوی شبیه سازی
- وارد کردن فایل الگوی تولید شده به سناریوی اصلی شبیه سازی با دستور source
بخش 7 : اصول اولیه پروتکل نویسی در NS2
جلسه ا: ساختار فایل MakeFile و دستورات کامپایل NS2
- کامپایل برنامه در لینوکس
- توصیفگر MakeFile
- توصیفگر MakeFile در NS2
- مثال از کامپایل NS2
جلسه ۲: نحوه افزودن ماژول جدید به NS2 (دستور Patch)
- ساختار دستور diff
- ساختار دستور patch
- مثال: patch کردن مجموعه پروتکل وایمکس به NS2
جلسه ۳: پیکربندی NS2 در محیط eclipse
- نصب جاوا (پیش نیاز eclipse) در اوبونتو
- نصب eclipse (نسخه مربوط به C++) در اوبونتو
- پیکربندی NS2 در محیط eclipse
بخش 8 : ارتباط بین دو سطح ++C و OTcl در NS2
جلسه ا: ارتباط بین کلاس های دو سطح (Class Binding)
- معماری دو زبانه NS2 (یادآوری)
- Class Binding
- زبان Tclcl (دارای ۶ کلاس برای ارتباط بین OTcl و C++)
- کلاس نگاشت
- متغیر نگاشت
جلسه ۲: ارتباط بین متغیرهای دو سطح (Variable Binding)
- Variable Binding
- bind , bind_bw , bind_time , bind_bool
- تنظیم مقادیر پیش فرض در NS2
- فایل ns-default.tcl
- Data Type ها در NS2
- Int , Double , Bandwidth , Time , Boolean
جلسه ۳: اجرای عبارات ++C از سطح OTcl (متد Command)
- معرفی متد command
- شکل کلی یک دستور OTcl
- تعریف دستورات OTcl توسط متد command
- مقادیر برگشتی متد command
جلسه ۴: اجرای عبارات OTcl از سطح ++C
- مراحل اجرای دستورات OTcl از دامنه C++
- ایجاد رفرنس از مفسر OTcl
- instance()
- اجرای عبارات OTcl
- eval() , evalc() , evalf()
- پاس دادن/دریافت نتایج به/از دامنه Otcl
- resultf() , result()
بخش 9 : معرفی مؤلفه های پایه NS2
جلسه ا: مرور و دسته بندی ماژول های NS2
- سلسله مراتب کلاسهای NS2
- تقسیمبندی ماژولهای NS2
- ماژولهای مرتبط با Simulation
- ماژولهای مرتبط با Network
- ماژولهای مرتبط با Packet
- ماژولهای Helper
جلسه ۲: ماژول های مرتبط با شبیه سازی (Event – Handler – Scheduler – Simulator)
- ماژول Event
- ماژول Handler
- ماژول Scheduler
- ماژول Simulator
جلسه ۳: ماژول های مرتبط با شبکه (NSObjetc – Connector)
- ماژولهای Network
- NSObject
- Connectors
بخش 10 : مؤلفه Node و MobileNode در NS2
جلسه ا: معرفی ماژول Node و MobileNode (معماری و پیاده سازی)
- مفاهیم و اصطلاحات مسیریابی
- ماژول Node در NS2
- ماژول MobileNode در NS2
جلسه ۲: استخراج موقعیت و انرژی باقیمانده گره
- نحوه دسترسی به آبجکت یک MobileNode
- استخراج x,y گره
- استخراج انرژی باقیمانده گره
جلسه ۳: ایجاد تحرک در گره و پیاده سازی مدل حرکت در NS2
- مدل حرکت در NS2
- پیاده سازی مدل حرکت Random Direction
- تابع ایجاد حرکت در گره
بخش 11 : مؤلفه Packet در NS2
جلسه ا: معرفی ماژول Packet (معماری)
- تعریف بسته (Packet)
- معماری Packet در NS2
- دسترسی به Header بسته در NS2
جلسه ۲: پیاده سازی و سفارشی سازی Packet در NS2
- Packet
- Common Header
- IP Header
- Payload Type
- افزودن Header جدید
جلسه ۳: افزودن Header جدید به Packet / نحوه خواندن هدر بسته / ویرایش مقادیر هدر
- افزودن Header جدید با نام MyHeader به Packet
- ایجاد Packet
- دسترسی به MyHeader بسته ایجاد شده و مقداردهی فیلدهای MyHeader
منابع و مراجع
- NS Simulator for Beginners
- Introduction to Network Simulator NS2
ابزارهای مورد نیاز دوره
- Linux Ubuntu LTS – 12.04/16.04
- VirtualBox
- eclipse-linux_x64 | eclipse-linux_x86
- NS2.35
- NSG.2
محصولات پیشنهادی
- ماشین مجازی NS2 شامل نصب NS2.35 و همه پکیج ها و ابزارهای مورد نیاز دوره (رایگان برای دانشجویان دوره)
درخواست مشاوره
برای کسب اطلاعات بیشتر درباره این دوره درخواست مشاوره خود را ارسال کنید و یا با ما در تماس باشید.
درخواست مشاورهدوره های مرتبط
کتاب راهنمای شبیه ساز شبکه NS2
بوت کمپ پایتون و علم داده
دوره آموزش CCNA | منطبق با آخرین تغییرات سیسکو
دوره آموزش CCNA | کد 200-301 | منطبق با آخرین تغییرات سیسکو دوره CCNA 200-301 که هم اکنون در حال…
دوره آموزش شبیه ساز GNS3
معرفی دوره برای آموزش GNS3 ابتدا باید ببینیم GNS3 چیست؟ یک شبکه کامپیوتری یا مخابراتی، شامل تجهیزاتی است که اجرای…
پکیج آموزش جامع NS3
اهداف دوره در پکیج آموزش جامع NS3، شما پس از آموزش کامل آموزش ns3، شبیه سازی انواع شبکه های سیمی،…
پکیج آموزش جامع Opnet
معرفی دوره قبل از آشنایی با شبیه ساز OPNET ابتدا باید با شبکه آشنا شویم. یک شبکه کامپیوتری یا مخابراتی،…
پکیج آموزش جامع SDN
اهداف دوره آشنایی با اصطلاحات و مفاهیم شبکه های SDN آشنایی با شبیه سازی شبکه های مبتنی بر نرم افزار…
دوره آموزش مجازی سازی کارکردهای شبکه NFV
معرفی دوره مفهوم مجازی سازی کارکردهای شبکه (NFV) در تعریف NFV و پاسخ به سوال “NFV چیست” باید بگوییم NFV عبارت…
دوره آموزش برد رزبری پای – ۳ Raspberry Pi
معرفی دوره رزبری پای چیست؟ Raspberry Pi یک برد الکترونیکی است که برای پیاده سازی پروژه های کنترلی مورد استفاده…
دوره آموزش اینترنت اشیا با Packet Tracer
معرفی دوره آموزش اینترنت اشیا اخیراً بسیار پر اهمیت شده است چرا که با پیشرفت سریع علوم و تکنولوژی در…
امتیاز دانشجویان دوره
نظرات
۵۲۸,۰۰۰ تومان قیمت اصلی ۵۲۸,۰۰۰ تومان بود.۲۰۰,۰۰۰ تومانقیمت فعلی ۲۰۰,۰۰۰ تومان است.
مهندس مجید شبیری
مدرس دورههای برنامهنویسی و بلاکچینکارشناس ارشد رشته مهندسی فناوری اطلاعات – گرایش شبکه های کامپیوتری – دانشگاه صنعتی امیرکبیر. مؤسس و بنیانگذار علوم نوین امیرکبیر
پردرآمدترین مهارت ها را یاد بگیرید
طرح استعدادیابی
ارشدان بلاکچین
(Blockchain Seniors)
تا کنون بیش از 1000 دانشجو در این طرح شرکت کرده اند.
شما هم دوست دارید برای تضمین آینده کاری خودتان به این جمع بپیوندید؟
همین امروز شروع کنید!
خلیلی
سلام وقت بخیر
ایا با NS2 پروتکل ای امنیتی را نیز می توان شبیه سازی کرد
مجید شبیری(مدیریت)
سلام و عرض ادب
وقت شما بخیر
برای افزودن پروتکل امنیتی لازم است که کدهای مربوطه، پیاده سازی و به شبیه ساز اضافه شود.
برخی پروتکل های مثل Wormhole و Blackhole به سادگی و با تغییر کوچکی در پروتکل مسیریابی aodv قابل پیاده سازی هستند و برخی پروتکل ها هم کمی کدنویسی بیشتری لازم دارند.
موفق باشید.
sina1
با سلام میخواستم ns2 را روی ویندوز نصب کنم. با این بسته ماشین مجازی ns2.35 روی ubuntu.12.04 میشود این کار را کرد
سید مجید شبیری(مدیریت)
با سلام و احترام
بله شما با داشتن بسته ماشین مجازی ns2.35 روی ubuntu.12.04، بدون انجام هر گونه نصب لینوکس یا NS2 یک ماشین مجازی خواهید داشت که میتوانید در محیط ویندوز آن را اجرا کرده و از NS2 نصب شده در لینوکس اوبونتو استفاده کنید.
ماشین مجازی ns2.35 روی ubuntu.12.04 در کنار آموزش جامع NS2 به صورت رایگان در اختیار دانشجویان دوره قرار میگیرد.
موفق باشید.
sina
با سلام و خسته نباشید. استاد راهنما به من گفت که درباره” بررسی روش های مسیریابی گروهی multicast روی شبکه های wsn ” تحقیق کنم. و از نرم افزار ns2 برای این کار استفاده کنم. فکر می کنید که این دوره بدرد من میخورد؟همچنین برای خرید میشود به جای cd لینک دانلود بگذارید؟
سید مجید شبیری(مدیریت)
با سلام و عرض ادب
دوست عزیز کل دوره های وب سایت که به صورت ویدئویی هستند، به صورت لینک دانلود می باشد.
در مورد موضوع مسیریابی multicast روی شبکه های wsn، شما اگر بخواهید با نرم افزار NS2 این تحقیق را انجام دهید باید به مباحث سناریو نویسی در NS2 ، اجرای سناریو، استخراج و مقایسه نتایج مسلط باشید. همچنین اگر هدف شما پروتکل نویسی باشد باید مطالعات بیشتری داشته باشید و به مباحث پیشرفته NS2 نیز مسلط باشید تا بتوانید پروتکل مسیریابی جدیدی را پیاده سازی نمایید.
برای دستیابی به این هدف، دوره آموزش جامع NS2 تا حدود زیادی میتواند پاسخگوی نیاز شما باشد.
موفق باشید.
فخرالدین جعفری
با سلام
لطفا بفرمایید که پرتکل BGP رو هم می تونم با NS2 شبیه سازی کنم؟
سید مجید شبیری(مدیریت)
با سلام و عرض ادب
بنده تا کنون افزونه ای برای شبیه سازی پروتکل BGP در NS2 مشاهده نکردم ولی خوب پیاده سازی پروتکل های شبکه در شبیه ساز NS2 انجام پذیر است.
مگر اینکه آن پروتکل نیاز به یک پروتکل استک خاصی داشه باشد مثل پروتکل های IoT که با خاطر نیاز به پروتکل استک اینترنت اشیاء پیشنهاد می شود در شبیه سازهایی مانند NS3 که پروتکل استک اینترنت اشیا را دارند، انجام شود. ولی در مورد پروتکل BGP فکر نمیکنم مشکلی پیش بیاد.
موفق باشید.
سعید
سلام
چطور میشه کدهای c++ را برای اجرا در ns2 کامپایل کرد تا به فرمت tcl دربیان؟
چنین کاری اصلا لازمه؟ یعنی نمیشه به نحوی همان کدهای c++ را ایمپورت کرد و اجرا نمود؟
سید مجید شبیری(مدیریت)
با سلام و احترام
این که کدها در NS2 بعد از کامپایل به TCL تبدیل می شوند، موضوعی است که برای کاربر نهایی شفاف است و شما اصلا نیازی نیست نگران این موضوع باشید.
شما برای اینکه یک کد C++ را در NS2 اجرا کنید کافی است آن را در قالب استاندارد NS2 بنویسید و به روش مشخصی که NS2 تعیین کرده، کدهای نوشته شده را به NS2 اضافه کنید.
نحوه انجام این کار در دوره پیشرفته NS2 گفته شده و دوره ویدئویی آن در حال حاضر آماده ثبت نام است.
کلاس C++ باید در یک قالب مشخصی نوشته شود و نام آن به MakeFile افزوده شود تا هنگام ارسال دستور Make کد نوشته شه کامپایل شود.
ولی توجه داشته باشید که به هیچ وجه یک کد C++ که مستقل از NS2 نوشته شده باشد، به راحتی قابل کامپایل در NS2 نخواهد بود. چرا که هم از لحاظ ساختاری و هم از لحاظ سینتکس باید با نسخه کامپایلر NS2 منطبق باشد تا قابل کامپایل و اجرا در NS2 باشد.
موفق باشید.
javad
با سلام و خسته نباشید خدمت شما
ببخشید برای پچ کد های حمله blackhole در NS2 نوع پروتکل مهمه؟مثلا پروتکل AODV با AOMDV؟
امکان نحوه توضیح پچ کردن کدهای حمله blackhole در پروتکل AOMDV هست؟
سید مجید شبیری(مدیریت)
با سلام و عرض ادب
ممنون از شما
کلا کد مربوط به حمله BlackHole چیز خاصی نداره و کافی است که در Agent گره وقتی پکت دریافت میشه، به جای فوروارد شدن یا تحویل شدن توسط گره، پکت Drop بشه.
این کد رو باید در تابع Receive مربوط به Agent مسیریابی قرار بدید.
حالا اگر Aodv باشه شما در فایل Aodv.cc میتونید در تابع recv() قرارش بدید و اگر AOMDV یا هر پروتکل دیگه ای هم باشه باید تابع Receive اون رو پیدا کنید. وگرنه تفاوت خاصی در پروتکل های مختلف نخواهد داشت.
موفق باشید.
rahman
با عرض سلام استاد شبیری عزیز
پایان نامه ام در مورد شبکه های حسگر بی سیم است می خواستم دوره آموزشی کامل ns2 رو دانلود کنم آیا امکان خرید فیلم آموزشی دوره های ns2 هست؟ لطفا راهنمایی بفرمایید با سپاس و درود
سید مجید شبیری(مدیریت)
با سلام و عرض ادب
دوست عزیز، دوره آموزش ns2 به صورت ویدئویی است و شما میتونید با ثبت سفارش، ویدئوهای این دوره را تهیه بفرمایید.
اطلاعات دقیق سرفصل و هزینه دوره در همین صفحه موجود است. مطالعه بفرمایید.
موفق باشید.
f.gh
سلام. برای شبیه سازی شبکه های p2p و همچنین بلاکچین چه نرم افزاری را پیشنهاد میدهید؟
سید مجید شبیری(مدیریت)
سلام
وقت بخیر
شبکه های Point to Point را میتوانید به کمک NS2 شبیه سازی نمایید.
داکیومنت زیر را مطالعه بفرمایید:
http://ise4a.blogspot.com/2016/04/simulation-of-point-to-point-network_21.html
اگر خواستید یک بلاکچین تستی یا locla net روی سیستم خودتون داشته باشید میتونید از ابزار Ganache استفاده کنید.
برای شبیه سازی بلاک چین (blockchain) از Simcoin هم میتونید استفاده کنید:
Simcoin – A Blockchain Simulation Framework
https://github.com/sbaresearch/simcoin
موفق باشید.
afsaneh
سلام.موضوع پایان نامه من در مورد ونت هست. که باید با ns2 شبیه سازی انجام بدم. دوره های شما جوری هست که خودم بتونم کار شبیه سازی رو انجام بدم؟ شما کار شبیه سازی انجام میدین؟
سید مجید شبیری(مدیریت)
سلام
وقت بخیر
شما در این دوره، NS2 را یاد میگیرید ولی اینکه آیا خواهید توانست ایده های مورد نظر را در NS2 پیاده کنید یا نه بستگی کامل به توان کدنویسی شما خواهد داشت. در این دوره شما NS2 را به خوبی یاد میگیرید و مشکلی در استفاده از NS2 نخواهید داشت. روش های ارزیابی پروتکل ها و همچنین کار با پکت ها و کلاس ها، تغییر در آنها و افزودن پکت تایپ و کلاس جدید به NS2 آموزش داده میشه و میتونید پروتکل مد نظر خودتون رو بنویسید و به NS2 اضافه کنید.
در مورد شبکه های Vanet شما علاوه بر NS2 باید با یک ابزار تولید ترافیک و نقشه نیز استفاده کنید. برای این منظور معمولا از Sumo استفاده میشود. این دوره صرفاً مربوط به آموزش NS2 است.
برای شبیه سازی Vanet در حال حاضر بیشتر از شبیه ساز Omnet همراه با ماژول Veins استفاده می شود. در شبیه ساز Omnet نیز برای تولید نقشه معمولا از Sumo استفاده میشود.
یادگیری Sumo هم چندان سخت نیست و میتونید به صفحه اصلی این ابزار مراجعه کنید و از روی داکیومنت ها و مثال های موجود این ابزار رو یاد بگیرید.
یه ماشین مجازی هم تو سایت داریم که کلیه نیازها برای شبیه سازی Vanet رو در اون نصب کردیم و همراه با مثال و داکیومنت آموزشی یه پکیج کردیم.
نام محصول: Vanet-VM
باز هم اگر سوالی داشتید در خدمت هستم
موفق باشید.
علی وفایی
سلام..خسته نباشید..موضوع پایان نامه من شبکه های حسگر بدنی (WBAN) است…به نظر شما بهترین نرم افزار واسه این نوع شبکه کدومه؟؟..من خودم با ns2 شروع کردم..به نظرتون ns2 می تونه این شبکه ها رو کامل پوشش بده…؟؟..
سید مجید شبیری(مدیریت)
با سلام و عرض ادب
ممنون از شما
بله شما میتوانید با NS2 یا هر شبیه سازی شبکه دیگری مثل NS3 و Omnet این کار را انجام دهید.
موفق باشید.
وحید
سلام استاد گرامی.
پایان نامه من بهینه سازی الگوریتم LAROD برای مسیریابی در شبکه های FANET هست.همونطور که میدونید سرعت نودها تو شبکه های FANET بسیار بالاست. کدام یک از شبیه سازها از شبکه های FANET پشتیبانی می کنند:
امنت،اپنت،ns 2،ns3 یامتلب؟
استادم میگفت توی امنت ماژول inetmanet هست که برای vanet هست و fanet رو ساپورت نمیکنه.خواستم ببینم چه کار باید بکنم.راهنمایی کنید بسیار بسیار ممنون میشم
سید مجید شبیری(مدیریت)
سلام و عرض ادب
بله درسته شبکه های Fanet به خاطر خصوصیت ویژه ای که دارد در سیمولاتورهای موجود قابل شبیه سازی نیست.
شبیه سازی شبکه های Fanet به خاطر مواردی همچون نیاز به محیط سه بعدی و همچنین پشتیبانی از سرعت بالا در شبیه سازهایی مانند ns2 و … به درستی شبیه سازی نخواهد شد.
لذا باید شبیه ساز مناسبی را برای این موضوع انتخاب نمایید.
البته یک سری شبیه سازهای تجاری مانند NetSim برای این شبکه های راه حل ارائه داده ولی بین شبیه سازهای اوپن سورس باید تحقیق کنید ببینید کدام یک بیشتر با Fanet مطابقت دارد و میتواند با دقت بیشتری این شبکه ها را مدل کند.
این مقاله را هم مطالعه کنید:
https://www.mdpi.com/1424-8220/18/10/3571/htm
موفق باشید.
mahgol
با سلام و عرض ادب خدمت استاد محترم
من تو نصب ns دچار مشکل میشوم .ns رو تو ویندوز۱۰ همان طوری که توی سایت بود طبق همون روال نصب کردم اما توی مرحله تست نصب دچار مشکل میشوم و اینک من باز ns رو در لینوکس هم نصبش کردم توی نصب پکیچ های پیش نیاز خطا میده . ازتون میخواستم بپرسم امکانش هست از طریق ویرچوال باکس لینوکس و نسخه ns2.29 چطوری میتونم سفارش بدم . در اخر میخواستم بپرسم چطوری میتوانم تو دوره های آموزشی تون شرکت کنم
با تشکر از شما
سید مجید شبیری(مدیریت)
با عرض سلام خدمت شما دانشجوی گرامی
اگر منظور شما از نصب در ویندوز، نصب ns2 از طریق سیگوین است، بهتر است شما سیگوین را در Win7 نصب کنید چون یادم هست که در ویندوز ۸.۱ و ۱۰ درست کار نمیکرد و بخصوص nam خیلی با مشکل مواجه میشد.
الان بهترین گزینه همون نصب در محیط لینوکس ماشین مجازی است که آموزش آن هم در سایت درج شده و کافی است مراحل دقیقا انجام شود. در نصب پکیج های پیش نیاز هم مشکلی نخواهید داشت مگر اینکه repository ها اجازه دانلود پکیج را ندهند که بعضا به خاطر تحریم این موضوع ممکن است اتفاق بیفتد که در اینصورت راه حل استفاده از vpn با همون فیلتر شکن است.
در نهایت اگر خواستید وقت خودتون رو روی نصب هدر ندید میتونید از محصولات آماده استفاده کنید. شما برای تهیه یه ماشین مجازی لینوکس با ns2.29 میتونید یکی از محصولات محیط شبیه سازی ns2 موجود در سایت رو سفارش بدید و در توضیحات بنویسید که میخواهید نسخه ns2.29 ارسال شود.
محصولات ماشین مجازی ns2:
ns2.35-on-ubuntu-12.04-vm
محصولات ماشین مجازی ns2 برای دوستان شرکت کننده در دوره ns2 رایگان خواهد بود.
در رابطه با نحوه ثبت نام در دوره (آموزش ویدئویی به همراه پرسش و پاسخ و رفع اشکال آنلاین) نیز کافی است روی دکمه ثبت نام در دوره کلیک کنید و فرم را پر کنید. پرداخت به صورت آنلاین انجام میشود و لینک دانلود محتوای آموزشی به محض ثبت نام برای شما ایمیل میشود.
موفق باشید.
farzaneh
با عرض سلام خدمت استاد گرانقدر
آیا در شبیه ساز ns2 امکان تعریف سیستم های استنتاج فازی وجود دارد یا به طور کل می توان این سیستم ها را در ns2 تعریف و استفاده نمود؟؟؟
موضوع بنده استفاده از پروتکل پگاسیس با سینک متحرک به همراه سیستم استنتاج فازی است . آیا امکان شبیه سازی با ns2 وجود دارد یا نه؟؟؟؟
سید مجید شبیری(مدیریت)
با سلام و عرض ادب خدمت شما دانش پژوه گرامی
بله در ns2 شما میتوانید سیستم فازی مورد نظر خودتان را به زبان c++ پیاده سازی کرده و در شبیه سازی شبکه، با تزریق ورودی و گرفتن خروجی از این سیستم، شبکه مورد نظر را شبیه سازی و ارزیابی نمایید.
در واقع اگر شما از متلب استفاده میکردید ممکن بود بتوانید از تولباکس های موجود استفاده کنید البته ممکن هم بود در حالت های خاصی امکان استفاده از تولباکس را نداشته باشید ولی در ns2 شما به هر صورت باید سیستم فازی را کدنویسی کنید.
پروتکل Pegasis هم که در ns2 پیاده سازی شده و کد آن به صورت patch موجود است و میتوانید به ns2 اضافی نمایید.
در صورت نیاز به راهنمایی پیام دهید تا بیشتر راهنمایی تان کنم.
موفق و پیروز باشید.
حمید
سلام و عرض ادب ؛ بنده تغییراتی رو توی پروتکل AODV برای حملات حفره سیاه دادم. برای پیاده سازی و کامپایل مجدد پروتکل توی NS2 شما کدوم نسخه این شبیه ساز رو پیشنهاد می کنید (ویندوز ۱۰)
سید مجید شبیری(مدیریت)
با سلام خدمت شما دانشجوی محترم
اگر میخواهید ns2 را در ویندوز از طریق سیگوین نصب و استفاده نمایید از طریق راهنمای نصب ns2 در ویندوز در این لینک، میتوانید نصب ns2 را انجام داده و تغییرات رو کامپایل پروتکل را در ویندوز انجام دهید. در راهنمای مذکور، ما نصب ns2.35 را در ویندوز۷ آموزش داده ایم. در ویندوزهای ۸ و ۱۰ معمولاً نمایش برنامه nam مشکل دارد.
ولی اگر میخواهید در ویندوز یک ماشین مجازی لینوکس راه اندازی کنید (از طریق ویرچوال باکس) شما میتوانید هر نسخه ای که پروتکل پایه شما در آن patch میشود را نصب و استفاده نمایید. برای مثال ممکن است شما پروتکلی را پیدا کنید که سورس آن در نسخه ns2.29 نوشته شده باشد، در اینصورت شما باید ns2.29 را نصب کنید. اگر محدودیتی از این لحاظ ندارید میتوانید از آخرین نسخه ns2 یعنی ns2.35 استفاده کنید.
موفق باشید.
فری
سلام.وقت بخیر.ابتدا از همکاری شما در حل مشکلم کمال تشکر را دارم. بنظر شما اینترنت اشیا(IOT) را در محیط NS2 میشه پیاده سازی کرد؟ اگه سایتی یا کد نویسی در این باب دارین لطف می کنید در سایت یا به ایمیلم ارسال کنید.ممنون از تلاش شما در ارتقای دانش دانشجویان
سید مجید شبیری(مدیریت)
با سلام خدمت شما دانشجوی محترم
در رابطه با شبیه سازی IoT از طریق NS2 سوالات زیادی مطرح میشود که لازم دونستم یک بار به صورت جامع به این سوالات پاسخ بدم و امیدوارم که برای همه دوستانی که این سوال را دارند، مفید و کاربردی باشد.
پاسخ این سوال که آیا Iot با NS2 قابل شبیه سازی است یا خیر، بستگی به طرح شما دارد که قصد شبیه سازی چه پروتکل یا تکنیکی را در IoT دارید و میخواهید در کدام لایه و با چه پروتکلی کار کنید.
اگر تمرکز شما روی پروتکل های شبکه IoT باشد و کاری به پروتکل استک IoT نداشته باشید، می توانید از شبیه سازهای شبکه ( NS2-NS3-Omnet و …) استفاده نمایید. برای مثال اگر شما قصد شبیه سازی MQTT را داشته باشید، حتما میدانید که MQTT بین لایه Application و Transport پروتکل استک بوده و کلیه ارتباطات از طریق پکت های TCP/IP صورت میگیرد بنابراین شبیه سازی آن تفاوتی با شبیه سازی TCP ندارد و در شبیه سازهای شبکه به راحتی قابل انجام است.
اگر هدف شما نظارت بر ترافیک شبکه در IoT باشد و تمرکز شما روی امنیت، عملکرد واقعی سنسورها و محرک ها در گره نباشد، میتوانید بدون هیچ مشکلی از شبیه سازهای شبکه استفاده کنید. فقط توجه داشته باشید که شبیه سازهای شبکه، در این مورد تنها قادر به شبیه سازی انتقال سیگنال node-to-node خواهید بود و برای مانیتورینگ کارآیی، شما باید طرح IoT مورد نظرتان را به صورتی طراحی کنید که هر event یک مکانیزم فیدبک به gateway داشته باشد تا gateway بتواند کارآیی را مانیتور کند. یا اینکه در کنار شبیه ساز شبکه، متدهای دیگری را به کار بگیرید تا کارآیی واقعی را مانیتور کند.
ولی اگر قصد دارید روی پشتکه پروتکل IoT تمرکز کنید و از ویژگی های جالبی همچون انتخاب نوع سنسور و همچنین پیکربندی و سفارشی سازی سنسورها بهره مند باشید، بهتر است از ContikiOS-Cooja استفاده کنید. در این محیط، پشته پروتکل اینترنت اشیا پیاده سازی شده است و شما قادر به ارزیابی کارآیی، افزودن ویژگی به پروتکل ها و همچنین افزودن پروتکل جدید به پشته پروتکل IoT خواهید بود. همچنین شما میتوانید نوع سنسور مورد نظر را انتخاب کنید، سنسور را پیکربندی نمایید و عملکرد سنسورها و محرک ها در گره را بررسی نمایید.
برای شبیه سازی کاربردهای تجاری و RealWorld نیز بهتر است از iotify استفاده کنید. این پلتفرم مجازی برای توسعه و شبیه سازی کاربردهای واقعی و تجاری IoT کاربرد دارد.
در پایان اگر به این مرحله رسیدید که خواستید طرح خود را به صورت دیوایس به بازار ارائه دهید میتوانید از بوردهای arduino و Raspberri Pi برای ساخت نمونه اولیه استفاده نمایید.
لینک مربوط به ابزاهای اشاره شده در متن
Cooja
https://amirkabir-science.com/cooja-free-course/
NS-2
https://amirkabir-science.com/courses/ns2-online-course/
NS-3
https://amirkabir-science.com/courses/ns3-online-course/
Omnet
https://amirkabir-science.com/courses/omnet-crash-course/
Opnet
https://amirkabir-science.com/courses/opnet-online-course/
Raspberry-pi
https://amirkabir-science.com/courses/raspberrypi-online-course-advanced/
iotify
https://iotify.io/
با آرزوی موفقیت.
محمد
باسلام موضوع پایان نامه من مسیریابی وخوشه بندی به روش هیورستیک است لطفابهترین نرم افزار برای پیاده سازی را به من معرفی کنید.باتشکر
سید مجید شبیری(مدیریت)
با سلام خدمت شما دانشجوی گرامی
شما میتوانید از NS2 و سایر شبیه سازها برای این موضوع استفاده نمایید.
پروتکل Leach یکی از پروتکل های مسیریابی سلسله مراتبی است که از خوشه بندی نیز استفاده کرده است و کد این پروتکل برای NS-2 نوشته شده و قابل استفاده می باشد.
موفق باشید.
ارشد
سلام. خسته نباشید ببخشید برای یک گراف بزرگ در حد ۴۰ میلیون نود یافتن کوتاهترین مسیر در حد چند میلی ثانیه با ns-2 یا ns-3 امکان پذیر هس؟
سید مجید شبیری(مدیریت)
با سلام خدمت شما دانشجوی گرامی
مبحثی که شما مطرح کردید، بیشتر جنبه محاسباتی دارد تا شبکه ای.
با توجه به نیاز به محسابات بالا در این موضوع، و مطرح بودن بحث زمان، شما بهتر است سراغ نرم افزارهایی مانند متلب باشید تا NS2 و سایر شبیه سازهای شبکه.
چون در شبیه سازهای شبکه شما نهایتا بتوانید چند هزار نود را شبیه سازی کنید و بیشتر این تعداد نود، بار محاسباتی بالایی را ایجاد میکند که اکثر شبیه سازهای شبکه برای این مقیاس محاسبات، پیش بینی نشده اند.
نکته نهایی این که اگر بحث زمان در کار شما خیلی اهمیت داشته باشد، ممکن است لازم باشد شما از پردازش موازی نیز استفاده نمایید که میتوانید این کار را در متلب انجام دهید.
موفق باشید.