دانشجویان در انجام پروژه های NS2

بدون ديدگاه

انجام پروژه با NS2 آموزش شبیه سازی برای مبتدی

NS2  آموزش پروژه

 

فیلم آموزش شبیه ساز NS2 به زبان فارسی در قالب 11 ساعت آموزش NS2 و 7.5 ساعت فایل صوتی NS2 به همراه 460 صفحه کتاب آموزش شبیه ساز NS2 …

 

دانلود کتاب آموزش شبیه ساز NS2 به زبان فارسی که توسط دکتر محمد حسین یغمائی مقدم و مهندس حسین کاری از دانشگاه فردوسی مشهد تهیه شده است.

 

در اکثر موارد مشاهده شده است دانشجویان در انجام پروژه های NS2 و شبیه سازی با نرم افزار NS2 دچار مشکل هستند گروه متلب پروژهآمادگی دارد انجام پروژه دانشجویی با NS2 …

آموزش شبیه سازی ns2,آموزش شبیه سازی شبکه نرم افزار ns2,نرم افزار ns2,آموزش ns,دانلود آموزش کدنویسی نرم افزار شبکهns2,نرم افزار ns2,آموزش network simulator.

 

انجام پروژه با NS2

 

انجام پروژه های NS2 و شبیه سازی باNS2 توسط نخبگان متلب پروژه با قیمت مناسب انجام میشود برای انجام پروژه NS2

در اکثر موارد مشاهده شده است دانشجویان در انجام پروژه های NS2 و شبیه سازی با نرم افزار NS2 دچار مشکل هستند  پروژه دانشجویی با NS2 …

انجام پروژه ns2 ، انجام پروژه ارشد ، انجام شبیه سازی مقالات ، انجام پروژه ارشد نرم افزار … زمان انجام پروژه های NS2 با توجه به حجم کار و مدت زمان کاربر تعیین می گردد اما …

 

در این بحش، نحوه مدل کردن یک شبکه بی سیمبا دو گره در ns2 را آموزش می دهد. مدل شبکه بی سیم با تعداد گره های ثابت را می توان با استفاده از زبان اسکریپتی

TCLTool Command Language ایجاد نمود.

پیکربندی گره هااز مولفه های زیر تشکیل می شود:
    • کانال (channel)
    • واسط شبکه (networking interface)
    • مدل انتشار رادیو (radio propagation model)
    • پروتکل (MAC (Medium Access Control
    • پروتکل مسیریابی ادهاک (adhoc routing protocol)
    • صف واسط (interface queue)
    • لایه لینک ( link layer)
    • آبجکت توپولوژی (topography object)
    • انجام پروژه با NS2

       

      انجام پروژه های NS2 و شبیه سازی باNS2 توسط نخبگان متلب پروژه با قیمت مناسب انجام میشود برای انجام پروژه NS2

      در اکثر موارد مشاهده شده است دانشجویان در انجام پروژه های NS2 و شبیه سازی با نرم افزار NS2 دچار مشکل هستند  پروژه دانشجویی با NS2 …

      انجام پروژه ns2 ، انجام پروژه ارشد ، انجام شبیه سازی مقالات ، انجام پروژه ارشد نرم افزار … زمان انجام پروژه های NS2 با توجه به حجم کار و مدت زمان کاربر تعیین می گردد اما …

       

      در این بحش، نحوه مدل کردن یک شبکه بی سیمبا دو گره در ns2 را آموزش می دهد. مدل شبکه بی سیم با تعداد گره های ثابت را می توان با استفاده از زبان اسکریپتی

      TCLTool Command Language ایجاد نمود.

      پیکربندی گره هااز مولفه های زیر تشکیل می شود:
        • کانال (channel)
        • واسط شبکه (networking interface)
        • مدل انتشار رادیو (radio propagation model)
        • پروتکل (MAC (Medium Access Control
        • پروتکل مسیریابی ادهاک (adhoc routing protocol)
        • صف واسط (interface queue)
        • لایه لینک ( link layer)
        • آبجکت توپولوژی (topography object)

      در این پست می‌خواهیم اولین شبیه‌سازی خودمون رو با ns2 انجام بدیم. به شکل زیر نگاه کنید. فرض کنید می‌خواهیم توپولوژی شامل 8 گره به صورت زیر داشته باشیم. گره‌هایی که با لینک‌های مستقیم با هم در ارتباطتند با خط نشان داده شده‌اند. در ادامه دستورات لازم برای ساخت این سناریو را بررسی خواهیم کرد. در این سناریو گره‌ی شماره‌ی 0 به عنوان مبدا، بسته‌هایی از نوع TCP را به گره‌ی 7 (یا sink) ارسال می‌کند. همچنین گره‌ی 1 نیز به عنوان عامل ترافیک UDP، بسته‌هایی را به همان گره‌ی 7 ارسال می‌کند. در اینجا می‌خواهیم بسته‌ها 512 بایت طول داشته باشند و همچنین مقدار maximum windows size برای TCP مقدار 32بسته را داشته باشد.

      ابتدا یک فایل متنی خالی با پسوند tcl ایجاد می‌کنیم. برای مثال script1.tcl. این فایل شامل دستورات مورد نظر برای پیاده‌سازی سناریوی شبیه‌سازی می‌باشد. اولین دستور هر فایل سناریو، ساخت یک شئ شبیه‌ساز می‌باشد. این کار به کمک دستور زیر صورت می‌گیرد. این دستور یک متغیر جدید به نام ns ایجاد کرده و مقدار آن را برابر با شئ از کلاس Simulator قرار می‌دهد. فعلا و برای پیاده‌سازی این سناریو دانستن جزئیات و مفهوم همه‌ی این دستورات ضروری نیست. بعدها بیشتر این دستورات را خواهید شناخت.

      set ns [new Simulator]

      پس از این دستور، دستورات زیر را را در فایل متنی وارد می‌کنیم.

      ### – Create the output file

      set outputfile [open out.tr w]

      $ns trace-all $outputfile

       

      #Open the NAM trace file

      set nf [open out.nam w]

      $ns namtrace-all $nf

      این دستورات برای ساخت دو فایل متنی است که حاوی خروجی شبیه‌سازی می‌باشند. فایل اول خروجی اصل شبیه‌سازی است که ما اطلاعات را از آن استخراج می‌کنید و فایل دوم برای نمایش شبیه‌سازی به صورت گرافیکی است که این کار به کمک ایزار nam انجام می‌شود. حال نوبت به ساخت گره‌ها و سناریوی شبیه‌سازی است. بدین منظور از دستور زیر برای ساخت گره‌ی اول استفاده می‌کنیم. این دستور یک گره به نام n0 ایجاد می‌کند.

      set n0 [$ns node]

      از آنجا که ما به 8 گره نیاز داریم از این دستور را برای 7 گره‌ی دیگر نیز تکرار می‌کنیم.

      set n1 [$ns node]

      set n2 [$ns node]

      set n3 [$ns node]

      set n4 [$ns node]

      set n5 [$ns node]

      set n6 [$ns node]

      set n7 [$ns node]

      برای ساخت این گره‌ها از حلقه‌ی تکرار نیز می‌توانید استفاده کنید. یعنی به جای 8 دستور بالا دستورات زیر را در فایل خود قرار دهید.

      for {set i 0} {$i < 8} {incr i} {

      set n$i [$ns node]

      }

      پس از ساخت گره‌ها نوبت تعریف لینک‌های بین آنهاست. برای نمونه برای ساخت یک لینک بین گره‌ی 0 و 2 از دستور زیر استفاده می‌کنیم:

      $ns duplex-link $n0 $n2 5Mb 5ms DropTail

      مقدار duplex-link در این دستور، نوع لینک را مشخص می‌کند که از نوع دوطرفه باشد. شما می‌توانید به جای این دستور، مقدار simplex-link را انتخاب کنید تا لینک ساخته شده یک طرفه باشد. دو مقدار بعدی مبدا و مقصد لینک را مشخص می‌کنند که از آنجا که ما لینک دوطرفه ایجاد کرده‌ایم، ترتیب قرارگیری این دو تفاوتی نخواهد داشت. مقدار بعدی که 5mb است پهنای باند لینک را مشخص می‌کند. مقدار بعدی میزان تاخیر انتشاز لینک را مشخص می‌کند که در اینجا بر حسب میلی‌ثانیه مقدار گرفته است. مقدار آخر نیز نوع صف موجود در لینک را مشخص می‌کند که فعلا بحث درباره‌ی آن از حوصله‌ی این پست خارج است.

      به جز لینک فوق، ما 7 لینک دیگر نیز نیاز داریم که برای ساخت آن از دستور زیر استفاده می‌کنیم که در آنها فقط آدرس مبدا و مقصد لینک عوض شده‌اند:

      $ns duplex-link $n1 $n2 5Mb 5ms DropTail

      $ns duplex-link $n2 $n3 5Mb 5ms DropTail

      $ns duplex-link $n3 $n4 5Mb 5ms DropTail

      $ns duplex-link $n3 $n5 5Mb 5ms DropTail

      $ns duplex-link $n4 $n6 5Mb 5ms DropTail

      $ns duplex-link $n5 $n6 5Mb 5ms DropTail

      $ns duplex-link $n6 $n7 5Mb 5ms DropTail

      در اینجا توپولوژی شبکه ساخته شده است اما هنوز عامل‌‌های لازم برای تولید و دریافت ترافیک ساخته نشده‌اند. همان‌طور که از شکل پیداست به دو عامل (Agent) یکی از نوع TCP و دیگری از نوع TCPSink احتیاج داریم. برای ساخت عامل‌ها نیز درست همان‌طور که یک شئ از کلاس Simulator ساختیم، از دستور new به صورت زیر استفاده می‌کنیم (خط اول برای مشخص کردن مقدار پیش‌فرض طول بسته‌ها برای عامل‌هایی که می‌سازیم می‌باشد):

      Agent/TCP set packetSize_ 512

      set tcp [new Agent/TCP]

      set sink [new Agent/TCPSink]

      $tcp set maxcwnd_ 32

      خط آخر این دستورات برای ست کردن مقدار maximum windows size می‍‌‌‌باشد. حال که این دو عامل را ساختیم، باید محل قرار گیری آنها را مشخص کنیم. یعنی همان گره‌هایی که این عامل‌ها به آنها تعلق دارند. برای این کار از متد attach-agent برای اتصال این عامل‌ها به گره‌هایشان استفاده می‌کنیم:

      $ns attach-agent $n0 $tcp

      $ns attach-agent $n7 $sink

      در نهایت باید مشخص کنیم که این دو عامل متعلق به یک جریان ترافیک هستند و در حقیقت گره‌ی n7 مقصد ترافیک ساخته شده توسط عامل TCP است (ضرورت انجام این کار وقتی که چندین ترفیک TCP یا UDP داشته باشید ملموس‌تر خواهد بود).

      $ns connect $tcp $sink

      نکته‌ی قابل توجه این است که عامل‌هایی مانند TCP و UDP به خودی یه خود ترافیک تولید نمی‌کنند. بلکه صرفا بستری برای تعریف نوع و چگونگی انتقال داده‌ها هستند. برای ایجاد ترافیک باید یک app تعریف کرده و آن را به عامل TCP متصل کنیم تا ترافیک تولید شده از این app به عامل TCP فرستاده شده و از طریق آن به سمت مقصد ارسال شود.

      set ftp [new Application/FTP]

      $ftp attach-agent $tcp

      برای ساخت عامل UDP و یک app که ترافیک مورد نظر را تولید کند نیز به همان شکلی که در بالا برای ساخت ترافیک TCP عمل کردیم، عمل می‌کنیم. بدین ترتیب ابتدا عامل‌های UDP و Null ایجاد می‌کنیم. سپس آنها را به گره‌های 1 و 7 متصل کرده و در نهایت این دو عامل را به هم متصل می‌کنیم:

      set udp1 [new Agent/UDP]

      set null [new Agent/Null]

      $ns attach-agent $n1 $udp1

      $ns attach-agent $n7 $null

      $ns connect $udp1 $null

      اگر توجه کرده باشید مقصد این ترافیک یک عامل Null است در صورتی که مقصد ترافیک TCP یک عامل از نوع TCPSink است. دلیل آن این است که مقصد ترافیک UDP نیاز به هیچ عمل خواستی ندارد و صرفا بسته‌ها را پس از دریافت دور می‌اندازد. اما مقصد ترافیک TCP باید بسته‌های Ack برای مبدا تولید کند. از این رو عامل‌های مقسد در این دو ترفیک با هم متفاوت هستند.

      پس از دستورات فوق باید یک app برای تولید ترافیک ایجاد کنیم. در اینجا یک CBR ایجاد می‌کنیم که یک جریان ترافیک با نرخ ثابت تولید می‌کنید و سپس آن را به عامل UDP متصل می‌کنیم (از دستور سوم و چهارم به ترتیب برای مشخص کردن اندازه‌ی بسته‌ها و نرخ ارسال ترافیک استفاده می‌شود):

      set cbr1 [new Application/Traffic/CBR]

      $cbr1 attach-agent $udp1

      cbr1 set packet_size_ 512

      $cbr1 set rate_ 5Mb

      حال باید زمان شروع ایجاد ترافیک و پایان آن را مشخص کنیم که در اینجا ثانیه‌ی 0 و 30 فرض شده است. از دستور at که برای زمان‌بندی انجام کارها است استفاده می‌کنیم:

      $ns at 0.0 “$ftp start”

      $ns at 0.0 “$cbr1 start”

      $ns at 30.0 “$cbr1 stop”

      $ns at 30.0 “$ftp stop”

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

      proc finish {} {

      global ns nf outputfile

      $ns flush-trace

       close $nf

      close $outputfile

      exec nam out.nam &

      exit 0

      }

      دستور اول امکان دسترسی به متغیرهای عمومی ns، nf و outputfile را یه این تابع فراهم می‌کند. دستوری بعدی تمام خروجی‌های بافر شده‌ی نهایی را به فایل‌های خروجی منتقل می‌کند. از دستور close برای بستن فایل‌های باز استفاده می‌شود که در اینجا همان فایل‌های خروجی هستند که تعریف کرده بودیم. دستور exec nam نیز ابزار nam را باز می‌کند تا امکان مشاهده‌ی گرافیکی خروجی فراهم شود. دستور آخر نیز شبیه‌سازی را خاتمه می‌دهد.

      پس از تعریف تابع finish، باید آن را در زمان مناسب فراخوانی کنیم. اگر زمان شبیه‌سازی را 30 ثانیه فرض کنیم، آنگاه می‌توان از همان متد at که با آن شروع و پایان app ها را زمانبندی کردیم، فراخوانی تابع finish و در نتیجه اتمام شبیه‌سازی را نیز زمان‌بند کنیم:

      $ns at 30.0 “finish”

      در نهایت فقط یک دستور دیگر تا پایان کار با فایل سناریو مانده است و آن هم اعلام آغاز شبیه‌سازی به شبیه‌ساز که با دستور زیر صورت می‌گیرد:

      $ns run

      کار ما با فایل script.tcl به پایان رسید، پس آن را ذخیره می‌کنیم. حال وارد خط فرمان شده (برای مثال bash) و پس از ورود به مسیر ی که فایل را در آن ذخیره کرده‌اید، دستور زیر را اجرا می‌کنیم:

      ns script1.tcl

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

      + 0 0 2 tcp 40 ——- 0 0.0 7.0 0 0

      – 0 0 2 tcp 40 ——- 0 0.0 7.0 0 0

      + 0 1 2 cbr 512 ——- 0 1.0 7.1 0 1

      – 0 1 2 cbr 512 ——- 0 1.0 7.1 0 1

      r 0.005064 0 2 tcp 40 ——- 0 0.0 7.0 0 0

      + 0.005064 2 3 tcp 40 ——- 0 0.0 7.0 0 0

      – 0.005064 2 3 tcp 40 ——- 0 0.0 7.0 0 0

      اولین رشته از این ساختار که یکی از حروف +، -، r یا d است نشان دهنده‌ی عمل انجام شده است. علامت + و – به ترتیب به معنای وارد کردن یا خارج کردن یک بسته به صف (متصل به لینک) است. در ns2 هنگام ارسال یه بسته در یک لینک، ابندا آن بسته درون یک صف قرار می‌گیرد و سپس هنگامی که لینک برای ارسال بسته آزاد باشد، اولین بسته از صف خارج شده و در لینک ارسال می‌شود. علامت‌های r و d نیز به ترتیب نشان‌دهنده‌ی دریافت بسته در مقصد و دور انداختن بسته می‌باشد. عدد دوم از این ساختار زمان وقوع عمل مربوطه را نشان می‌دهد که اگر توجه کرده باشید رویدادها در این فایل به ترتیب زمان قرار گرفته‌اند.

      عدد سوم و چهارم به ترتیب مبدا و مقصد را در لینک مشخص می‌کنند. رشته‌ی پنجم نوع ترافیک را نشان می‌دهد. عدد ششم طول بسته‌ها را بر حسب بایت نشان می‌دهد. رشته‌ی نهم حاوی آدرس (لایه سوم)و شماره پورت (لایه چهارم) مبدا می‌باشد. رشته‌ی دهم نیز همین اطلاعات را برای مقصد نشان می‌دهد. یعنی در خط اول، رشته‌ی 0.0 7.0 نشان دهنده‌ی ارسال بسته از گره‌ی 0 با پورت 0 به مقصد گره‌ی 7 و پورت 0 صورت گرفته است. عدد 11 و 12 نیز به ترتیب شماره ترتیب بسته در آن جریان (flow) و شماره یکتای بسته (Packet ID) می‌باشد. شماره ترتیب برای هر جریان ترافیکی از صفر شروع شده و به ازای هر بسته یک واحد به آن اضافه می‌شود تا شماره ترتیب هر بسته در آن جریان یکتا باشد. اما ممکن است شماره ترتیب بسته‌ها در جریان‌های مختلف با هم یکسان باشند. شماره‌ی یکتای بسته‌ها یا Packet ID از صفر شروع شده و به ازای هر بسته در هر جریانی که باشد یکتا و منحصر به فرد می‌باشد.

      پس از اتمام شبیه‌سازی شما باید با استفاده از ابزارها و برنامه‌های دیگر اطلاعات مورد نظر خود را از فایل خروجی استخراج کنید. در اینجا ما از ابزار awk که برای پارس کردن و تحلیل فایل‌های متنی استفاده می‌شود استفاده می‌کنیم. فرض کنید می‌خواهیم مقدار پارامتر نرخ تحویل بسته‌ها (PacketDeliveryRatio) یا PDR را محاسبه کنیم. برای این کار باید تعداد بسته‌های ارسال و دریافت شده را شمرده و نسبت آنها را محاسبه کنیم.

      ابزار awk فایل ورودی را خط به خط پارس کرده و به ازای هر خط از فایل متنی، شر.طی را که شما برای آن نوشته‌اید را بررسی و در صورت برقراری عمل مناسب را انجام می‌دهد. برای شروع کار یک فایل متنی با نام parser.awkساخته و اسکریپت زیر را در آن ذخیره کنید:

      BEGIN {udppkts_sent=0; udppkts_rcvd=0; tcppkts_sent=0;}  #initialize

      # UDP throughput:

      $1==”+” && $3==”1″ && $5 == “cbr” {udppkts_sent++;}

      $1==”r” && $4==”7″ && $5 == “cbr” {udppkts_rcvd++;}

      # TCP throughput:

      $1==”+” && $3==”0″ && $5 == “tcp” {tcppkts_sent++;}

      $1==”r” && $4==”7″ && $5 == “tcp” {tcppkts_rcvd++;}

      END {

                  udp_pdr = udppkts_rcvd / udppkts_sent * 100;

                  print “UDP PacketDeliveryRatio: ” udp_pdr;

                  tcp_pdr = tcppkts_rcvd / tcppkts_sent * 100;

                  print “TCP PacketDeliveryRatio: ” tcp_pdr;

          }

      عبارت BEGIN که در صورت نیاز در ابتدای فایل نوشته می‌شود، عملیاتی را که قبل از شروع به پارس کردن فایل ورودی باید انجام شود را مشخص می‌کند. هر چه در کروشه‌ی جلوی این بخش نوشته شود فقط یک بار آن هم ابتدای اجرای awk انجام می‌شود. ما در اینجا برای مقداردهی اولیه متغیرها از آن استفاده کردیم. توجه داشته باشید در پارسر awk لزومی به تعریف متغیرها نیست و هر کجا خواستید می‌توایند آنها را استفاده و مقداردهی کنید مانند زبان‌های اسکریپت نویسی مانند JavaScript. دستور END نیز که در انتهای اسکریپت آمده مشابه با دستور BEGIN بوده و لی فقط یک بار و آن هم در انتهای عملیات پاراسر اجرا می‌شود. در این بخش ما تعدادبسته‌های دریافتی را به تعداد بسته‌های ارسالی تقسیم کرده و مقدار آن را چاپ می‌کنیم. اگر دقت کرده باشید دستورات موجود در این دو بخش همان دستورات زبان C هستند.

      حال به قسمت اصلی که پارسر برای هر خط انجام می‌دهد می‌پردازیم. دستوراتی که بین این دو عبارت نوشته شده‌اند برای هر خط تک به تک اجرا می‌شوند. از علامت $ برای دسترسی به فیلد یا رشته‌ی خاصی از متن استفاده می‌شود که این فیلدها با فاصله از هم جدا شده‌اند. عبارت $1==”+”به پارسر می‌گوید که اگر اولین رشته‌ یا فیلد موجود در آن خط مقدار + بود کار خاصی را انجام دهد. به خط سوم از دستورات فوق نگاه کنید. این دستور می‌گوید اگر نوع رویداد از نوع ارسال بسته بود($1==”+”) و ارسال کننده‌ی آن گره‌ی 1 بود ($3==”1″) و همچنین نوع ترافیک از نوع cbr بود ($5 == “tcp”) یک واحد به متغیر udppkts_sent اضافه کن که این متغیر تعداد بسته‌های UDP ارسال شده را مشخص می‌کند. خطوط بعدی نیز به همین ترتیب عمل می‌کنند. تنها نکته‌ی قابل توجه این است که هنگام نوشتن این اسکریپت‌ها باید نوع فیلد‌هایی که برای بدست ‌آوردن پارامتر ارزیابی نیاز دارید را به دقت انتخاب کنید.

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

      # awk -f parser.awk out.tr

      UDP PacketDeliveryRatio: 99.7515

      TCP PacketDeliveryRatio: 67.5325

      شبیه‌ساز ns2 چیست و چگونه کار می‌کند

      شبیه‌ساز ns2 یک ابزار شبیه‌سازی رخداد-گسسته است که امکان ارزیابی پارامترهای مختلف شبکه‌های کامپیوتری را برای پروتکل‌های استداندارد یا دلخواه فراهم می‌کند. این نرم‌افزار امکان شبیه‌سازی لایه‌های TCP/IPرا در بسترهای مختلف سیمی و بی‌سیم مانند LAN، WAN، Ad Hoc، Satelliteو … فراهم می‌کند. همچنین انواع پروتکل‌ها در لایه‌های مختلف مانند TCP، UDP، FTP، AODV، DSR و … در ns2 پیاده‌سازی شده است. در سال‌های اخیر به دلیل انعطاف و قدرت بالای ns2 در شبیه‌سازی شبکه‌های بی‌سیم توجه بسیاری به این شبیه‌ساز شده است. همچنین به دلیل استفاده‌ی اکثر مقالات پژوهشی خصوصا در حوزه‌ی شبکه‌های بی‌سیم از این شبیه‌ساز، اعتبار این شبیه‌ساز در جامعه پژوهشی بسیار بالا می‌باشد.

      آنچه معمولا افراد ناآشنا و مبتدی از شبیه‌ساز ns2 انتظار دارند، آن است که پس از اتمام کار شبیه‌سازی توسط ns2 مقدار پارامتر دلخواه خود را مانند تاخیر انتها به انتها یا کارایی را مشاهده کنند. اما حقیقتا فرایند شبیه‌سازی و تحلیل خروجی اندکی پیچیده‌تر از این است. فرض کنید می‌خواهید برای یک سناریوی خاص میزان کارایی پروتکل‌هایی مانند TCP و UDP را ارزیابی و مقایسه کنید. اولین نکته توجه به این موضوع است که آیا این دو پروتکل در ns2 از قبل پیاده‌سازی شده‌اند یا خیر؟ از آنجا که این دو جز هسته ns2 هستند کار ما اندکی ساده‌تر است.

      برای شبیه‌سازی ابتدا باید یک فایل سناریو بسازیم که در آن جزئیات سناریوی شبیه‌سازی آورده شده است. این فایل را به زبان tcl می‌سازیم و ذخیره می‌کنیم. به طور کلی این فایل شامل اطلاعاتی از قبیل تعداد گره‌ها، لینک‌های ارتباطی، نوع پروتکل‌های مورد استفاده، توپولوژی شبکه، نوع ترافیک‌ها و مبدا و مقصد آنها و به طور کلی هر چیزی که مربوط به یک سناریوی خاص از شبیه‌سازی می‌شود می‌باشد. سپس این فایل را به شبیه‌ساز ns2 داده و آن را اجرا می‌کنیم.

      پس از پایان شبیه‌سازی شما یک یا چند فایل خروجی خواهید داشت. نکته قابل توجه این است که این فایل‌های بسیار بزرگ و حجیم مستقیما حاوی اطلاعات ارزیابی که شما به آنها نیاز دارید نیستند. فایل خروجی (بسته به Optionهایی که شما فعال یا غیرفعال کرده‌اید) حاوی تمام رخدادهایی است که در طول شبیه‌سازی رخ داده است. این رخدادها شامل ارسال بسته‌ها، دریافت بسته‌ها، دور انداختن بسته‌ها و غیره می‌باشد. برای مثال نمونه‌ای از فایل خروجی که به صورت متنی می‌باشد و هر خط آن یک رخداد را نشان می‌دهد، در زیر نشان داده شده است:

      + 0.51 0 1 cbr 500 ——- 0 0.0 1.0 2 2

      – 0.51 0 1 cbr 500 ——- 0 0.0 1.0 2 2

      r 0.514 0 1 cbr 500 ——- 0 0.0 1.0 0 0

      جزئیات این خط‌ها در پست‌های بعد بیشتر بررسی خواهند شد. آنچه شما همیشه باید در نظر داشته باشید این است که پارامترهای ارزیابی مورد نظر شما از تحلیل و بررسی این فایل خروجی بدست می‌آید. بدین منظور می‌توانید از هر زبان برنامه‌نویسی که با آن آشنا هستید استفاده کنید تا این فایل‌ها را تحلیل کنید. یکی از ابزارهای قدرتمند و پرکاربرد در این زمینه، ابزار awk می‌باشد که امکان پارس کردن خط به خط فایل متنی را به شما می‌دهد.

      پس از استخراج پارامترهای ارزیابی، شبیه‌سازی و تحلیل شما  به پایان می‌رسد. در مواردی که شما نیاز به استفاده از پروتکل‌ها یا الگوریتم‌های ابداعی خود دارید، یک مرحله به مراحل قبل اضافه می‌شود و آن هم پیاده‌سازی پروتکل شما می‌باشد. این کار بر خلاف رویه‌ی ایجاد سناریوی شبیه‌سازی که با زبان tcl انجام می‌شود، در زبان C++ انجام می‌شود.

      فرم ثبت سفارش

      • تمامی درخواست های شما شامل: دوره های آموزشی تخصصی شبیه سازی دوره های آموزشی اجرای پیاده سازی مقاله دلخواه شما دوره های آموزشی پیاده سازی مقاله با آموزش ویدیویی دوره های آموزشی پیاده سازی Ns2 دوره های آموزشی شبکه در Ns3 , Cooja دوره های آموزشی پایتون دوره های آموزشی متلب دوره های آموزشی C++ مشاوره در پایان نامه (ایده پردازی) پیاده سازی فصل 4 پایان نامه پیاده سازی و شبیه سازی پایان نامه پیاده سازی و شبیه سازی مقالات پایه دوره های آموزشی درخواستی و غیره... درخواست های مربوط به دوره ها آموزشی تخصصی در رشته سازی های مهندسی کامپیوتر ، فناوری اطلاعات، مخابرات و غیره می تواند به ما ارسال شود.
      • این فیلد بسیار مهم می باشد. درخواست ها بر اساس ایمیل دسته بندی شده و پاسخ داده می شوند. لطفا ایمیل را صحیح وارد کنید.
      • در این بخش موارد مربوط به درخواست خود را توضح دهید عنوان پروژه عنوان درخواست شما ( پیاده سازی ، شبیه سازی مقاله ، دوره های آموزشی و ...) توضیح از کارتون و دقیقا درخواست شما چیست
      • در صورتی که فایلی میخواهید ارسال کنید می توانید از این بخش ارسال کنید - مانند : (jpg, gif, png, pdf)

 

نوشتن دیدگاه

نشانی ایمیل شما منتشر نخواهد شد.

3 × سه =