آموزش شبیه ساز NS2

آموزش شبیه ساز  ns2

برای انتخاب یک شبیه ساز ابتدا باید با توانایی های هر یک به طور کلی آشنا شد و سپس با دیدی باز و با توجه به اینکه آن شبیه ساز خاص نیاز های کار شما را پوشش می دهد آن را انتخاب کنید. برای این کار منابع زیادی وجود دراد.

پس از انتخاب شبیه ساز در صورتی که باز هم بخواهید با نرم افزار شبیه ساز NS-2  کار کنید ابتدا در زیر به معرفی مختصری از این نرم افزار می پردازم و سپس منابعی برای آشنایی ابتدایی با این شبیه ساز معرفی می کنم.

شبیه ساز NS-2 شبیه سازی است که توسط دانشگاه برکلی و برای شبیه سازی شبکه های سیمی در گذشته نوشته شده است و امروزه برای شبکه های بی سیم نیز استفاده می شود به همین دلیل در شبکه های بی سیم با مشکلاتی رویروست ولی طبق یک تحقیق در سال 2004 هنوز پر کاربردترین شبیه ساز است.

طبق تحقیقات انجام شده و با توجه به تجربیات من از خواندن مقاله های جدید تقریبا هنوز این شبیه ساز بیشترین کاربرد را به خود اختصاص می دهد و پس از آن شبیه ساز OPNET قرار دارد که در گذشته زیاد مورد استفاده نبود ولی امروزه کاربرد آن را روبه رشد است و یکی از مهمترین دلایل آن رابط گرافیکی آن است.

نکته ای که باید در ابتدا به آن اشاره کنم آن است که اگر در کاری که شما می خواهید انجام دهید اینکه از کدام شبیه ساز استفاده کنید مهم نیست شبیه ساز OPNET و سپس GLOMOSIM می تواند انتخاب راحت تری باشد.

خوب نکته حائز اهمیت دیگر این است که شبیه ساز NS-2 از فروم خوبی برخوردار است که می توانید در آن پاسخ بسیاری از سوالات خود را بیابید و همین طور اینکه برای بسیاری از موارد پیاده سازی مربوطه در NS وجود دارد.

شما باید بدانید که برای شروع کار با NS-2 در قدم اول ممکن است با مشکل مواجه شوید ولی در صورتی که ادامه دهید می توانید شیرینی های آن را نیز بچشید.

در ابتدا برای نصب می توانید از روشی که من در ادامه قرار میدم استفاده کنید. پس از نصب باید با این نرم افزار آشنا شوید یکسری راهنما وجود دارد که بسیار معروف هستند و برای شروع مناسب است.

حتما پیش خودتان می گویید مگر خود این شبیه ساز راهنما ندارد باید بگویم که چرا ولی از نظر من وخیلی های دیگر این راهنما تقریبا هیچ کمکی به یک تازه کار نمی کند. در زیر لینک دانلود نرم افزار و راهنمای نصب آنرا در ویندوز XP قرار داده ام. همچنین اگر مطابق با انتظار روی PC یا لپ تاپ سیستم عامل لینوکس نصب نکرده اید و به هر دلیلی نمی خواهید این سیستم عامل را نصب کنید راه دیگری وجود دارد. شما می توانید نرم افزاری نصب نمایید که لینوکس را در محیط ویندوز اجرا نماید. از جمله نرم افزار هایی که این کار را انجام می دهد نرم افزار Vmware است.

این شی به ازاء هر شبیه سازی تولید می شود و بیشتر وظایف مانیتورینگ دارد.

وظایف این شی به قرار زی است :

1- اطلاعات تعداد گره ها را ذخیره می کند.

2- اطلاعات مربوط به اتصالات را ذخیره می کند.

3- امکان ارزیابی مواردی از جمله بهینگی مسیرها در شبکه را می دهد.

4- زیر لایه کنترل دسترسی رسانه برای کار خود به آن نیاز دارد.

به همین دلیل است که در قسمتی از کد TCL که گره ها و اتصالات ایجاد می شوند این متغیر نقش و حضور دارد.

ادامه کار با شبیه ساز NS-2

اولین نکته پس از نصب و آشنایی کلی با ساختار شبیه ساز این است که بتوانید همبندی مورد نظر خود را مشخص کنید. برای تعیین همبندی در شبیه ساز NS-2 از زبان OTCL استفاده می شود.

همبندی اینجا به این معنی است که مثلا تعداد گره ها نوع حرکت آن ها و نحوه مسیریابی و غیره مشخص شود. برای این کار نیاز است یک برنامه به زبان OTCL نوشته شود که همبندی یا مشخصات شبیه سازی را مشخص کند. در صورتی که منابع ارائه شده در پست قبلی را مطالعه کرده باشید تا حدودی با دستورات زبان برنامه نویسی OTCL آشنا شده اید که کافیست.

پسوند فایل های تولید شده توسط زبان OTCL که شبیه ساز NS-2  از آن استفاده می کند باید TCL باشد.

در کد مربوط به فایل TCL کد زیر :

if {$argc !=3} {

        puts "Usage: ns adhoc.tcl  Routing_Protocol Traffic_Pattern Scene_Pattern "

        puts "Example:ns adhoc.tcl DSDV cbr-50-10-8 scene-50-0-20"

        exit

}

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

پس وظیفه دستور put "example" 0این است که عبارت داخل گیومه را چاپ کند.

سپس دستورات

set par1 [lindex $argv 0]

set par2 [lindex $argv 1]

set par3 [lindex $argv 2] 

به ترتیب سه متغیر ورودی را part1 و part2 و part3 نام گذاری می کند.

حال نوبت به مشخص کردن مشخصات شبیه سازی است در این فایل ما در ابتدا یکسری متغر تعریف می کنیم و مقادیر شبیه سازی را به آن ها می دهیم و در داخل برنامه از آن ها استفاده می کنیم این عمل باعث می شود در دفعات بعدی که نیاز به تغییر متغیرها داریم فقط مقادیر داده شده به متغیر ها در ابتدای فایل را تغییر می دهیم و نیازی به تغییر اصل کد نیست و علاوه بر آن فهم آن برای خوانند بیشتر است.

این عمل در این فایل با کد های زیر انجام شده است.

set val(chan)           Channel/WirelessChannel    ;# channel type

set val(prop)           Propagation/TwoRayGround   ;# radio-propagationmodel

set val(netif)            Phy/WirelessPhy            ;# network interface type

set val(mac)            Mac/802_11                 ;# MAC type


if { $par1=="DSR"} {

  set val(ifq)           CMUPriQueue 

} else {

  set val(ifq)          Queue/DropTail/PriQueue    ;# interface queue type

}

set val(ll)             LL                         ;# link layer type

set val(ant)            Antenna/OmniAntenna        ;# antenna model

set val(ifqlen)          150                         ;# max packet in ifq

set val(rp)             $par1                       ;# routing protocol

set val(x)                   1000

set val(y)                1000

set val(seed)               0.0

set val(tr)                temp.tr

set val(nn)                50

set val(cp)                $par2

set val(sc)                 $par3

set val(stop)              600.0

در هر فایل tcl باید ابتدا یک شی از کلاس شبیه ساز تشکیل شود که این کار توسط دستور

set ns_              [new Simulator]

صورت می گیرد.

برای جمع آوری اطلاعات و ذخیره خروجی در یک فایل دستورات

set tracefd     [open $val(tr) w]

$ns_ trace-all $tracefd

ابتدا یک فایل ایجاد می شود با نامی که قبلا به متغیر val(tr) 0  نسبت داده شده و سپس اطلاعات شبیه سازی جمع آوری می شود و در فایل ایجاد شده ذخیره می شود.

دستور بعدی که در فایل مزبور دیده می شود را شاید کمتر مشاهده کرده باشید دستور

$ns_ use-newtrace

فرمت نمایش خروجی که تریس فایل نامیده می شود را مشخص می کند.

در مورد فرمت فایل خروجی یا تریس فایل بعدا به اجمال خواهم نوشت ولی در اینجا فقط بدانید که ما در شبیه ساز NS-2 می توانیم خروجی را به دو فرمت جدید و قدیم ملاحظه کنیم که به طور پیش فرض از نمونه قدیمی استفاده می شود مگر اینکه با این دستور مشخص کنیم که می خواهیم داده های خروجی به فرمت جدید نمایش داده شوند.

وظیفه تابع assert

از زمانی که شروع به کار با نرم افزار شبیه ساز NS-2 کرده بودم به تابع assert بسیار برخورده بودم ولی چون زیاد مشکل ساز نبود دقیق نمی دانستم چه وظیفه ای دارد تا زمانی که وظیف آن را جایی دیدم.

امروز که یکی از دوستانم سوالی در این رابطه کرد جواب این دوست را موکول کردم به نوشتن این پست تا هم برای دیگران مفید باشد هم برای این دوست ذکر شده و هم یادآوری برای خود بنده در آینده.

زمانی که در کد های NS-2 بگردید بسیار این تابع را خواهید دید. فرم کلی این تابع که یکی از توابع ++C به صورت زیر است:

assertآرگومان ورودی

این تابع آرگومان ورودی را بررسی می کند و در صورت صحیح بودن آن کاری را صورت نمی دهد در غیراینصورت برنامه را پایان می دهد.

در صورت نیاز به توضیحات بیشتر این پست در آینده تکمیل تر می شود.

 

یک نکته جدید در ارتباط با لایه فیزیکی در نرم افزار NS-2

مدتی پیش یکی از دوستانم جناب آقای ناصر آقای علی نقی پور از من سوالی در ارتباط با پیاده سازی مدولاسیون FSK از من پرسید که من با کمک دوستانم جوابی مناسب ارائه کردم.

در ابتدا باید بگویم که روش های مدولاسیون در فایل mobile در شاخه اصلی NS-2 قرار دارد و برای دیدن سورس کد اصلی روش های مدولاسیون در این نرم افزار می توانید به این فولدر و فایل modulation مراجعه کنید.

ولی نکته ای که در نرم افزار شبیه ساز NS-2 وجود دارد این است که این نرم افزار در حقیقت صرفا یک نرم افزار شبیه سازی شبکه است و در زمینه پیاده سازی لایه فیزیکی مناسب نیست بر این اساس در صورتی که نگاهی به فایل ذکر شده در بالا بیندازید فقط می توانید پیاده سازی BPSK را بیابید که این مسئه جالب نیست.

جوابی که من برای این دوستم یافتم لینک زیر است که نمونه هایی از پیاده سازی های انجام شده در لایه فیزیکی را در بر دارد.

در صورتی که در آینده لینک هایی در این زمینه یافتم به این پست اضافه خواهم کرد.

لینک پیاده سازی های انجام شده در لایه فیزیکی

این لینک شامل پیاده سازی های مختلف propagation model و shadowing model  است.

 

هر سوالی دارید در بخش نظرات قرار دهید سریعا پاسخ خواهم گفت.

[email protected]

 


مطالب مشابه :


نمونه پروپوزال

نمونه پروپوزال وبلاگ تخصصی رشته کامپیوتر. کارشناسی ارشد




نمونه پروپوزال کارشناسی ارشد و دکترا

نمونه پروپوزال ۳نمونه پروپوزال پرشده رشته کامپیوتر بسته ارشد, نمونه پروپوزال




پروپوزال کارشناسی ارشد

پروپوزال آماده,نمونه پروپوزال رشته برق; انجام پروپوزال پروپوزال ارشد کامپیوتر




پروپوزال آماده

پروپوزال آماده,نمونه انجام پروپوزال ارشد پروپوزال آماده کامپیوتر, پروپوزال




پروپوزال برای درس روش تحقیق

پروپوزال آماده,نمونه انجام پروپوزال ارشد تحقیق پروپوزال آماده کامپیوتر برای




نوشتن پروپوزال

تک نمونه در spss نوشتن پروپوزال رشته نوشتن پروپوزال ارشد کامپیوتر




انجام پایان نامه و پروژه کلاسی کارشناسی و ارشد رشته کامپیوتر با ns2

<انجام پایانامه ارشد کامپیوتر> پایانامه در رشته کامپیوتر دارید ما نمونه سورس کدهای




نمونه پروپوزال

کارشناسی ارشد تحقیقات آموزشی. آموزش کامپیوتر. یک نمونه از پروپوزال رشته




نمونه پروپوزال

نمونه پروپوزال و خدمات اینترنتی و تعمیرات تخصصی کامپیوتر كارشناسي­ارشد رشته




آموزش شبیه ساز NS2

<انجام پایانامه ارشد کامپیوتر> رشته کامپیوتر و سوم را که نمونه از پیش مشخص




برچسب :