
شبیه سازی شبکه های رادیو شناختی (CRCN) با NS2
در این بخش آموزش نصب شبیه ساز CRCN در نرم افزار NS2 ارائه شده که در کنار آن یک محیط گرافیکی که تحت جاوا ساخته شده نیز معرفی می گردد. در ادامه توضیحاتی از معرفی رادیو شناختی ، آشنایی با شبیه ساز CRCN و مراحل نصب و راه اندازی آن قرار داده شده است.
رادیو شناختی (Cognitive Radio)
رادیو شناختی (CR) رادیویی است که می تواند به صورت پویا برنامه ریزی و پیکربندی شود تا از بهترین کانال های بی سیم در مجاورت خود استفاده کند تا از تداخل و تراکم کاربر جلوگیری شود. چنین رادیویی به طور خودکار کانال های موجود در طیف بی سیم را شناسایی می کند، سپس پارامتر های انتقال یا دریافت خود را تغییر می دهد تا ارتباطات بی سیم همزمان بیشتری را در یک باند طیف معین در یک مکان امکان پذیر کند [3].
شبیه ساز CRCN
همانطور که تحقیقات رادیویی شناختی در حال ظهور است، محققان بیشتری به دنبال یک ابزار مناسب برای شبیه سازی شبکه های رادیو شناختی هستند. در مرجع [4] محققان یک شبیه ساز CRCN تحت نرم افزار NS2 توسعه داده اند که آن نسخه به طور گسترده ای در زمینه دانشگاهی مورد استفاده قرار گرفته است. شبیه ساز CRCN از ارزیابی عملکرد برای تخصیص منابع طیف پویا، الگوریتم های کنترل توان و پروتکل های شبکه رادیویی شناختی تطبیقی از جمله پروتکل های مک در شبکه رادیو شناختی (CR MAC) و پروتکل های مسیریابی در شبکه رادیو شناختی (CR Routing) پشتیبانی می کند. این شبیه ساز از NS2 برای ایجاد ترافیک واقعی و الگو های توپولوژی استفاده می کند. همچنین در این شبیه ساز برای هر گره یک لایه فیزیکی چند کاناله چند رادیویی (MRMC) قابل تنظیم و سفارشی سازی پارامترهای طیف مانند قدرت انتقال، انتشار و غیره موجود است [4]. شکل زیر معماری شبیه ساز CRCN را نشان می دهد. این شبیه ساز انتقال پارامتر های رابط را بین لایه های مختلف، همانطور که در تصویر زیر در فلش های با رنگ آبی نشان داده شده، فعال می کند. کاربران فقط باید الگوریتم های مسیریابی و MAC خود را طبق الزامات طراحی پروتکل در NS2 با الگوریتم های موجود در CRCN جایگزین کنند.

عملکرد CRCN
عملکرد ارائه شده توسط این شبیه ساز به صورت زیر خلاصه می شود:
پشتیبانی از مسیریابی رادیو شناختی
- پشتیبانی از چند کانال چند رادیویی (MRMC)
- پشتیبانی از چند کانال تک رادیویی
- رابط برای انتخاب رادیو
- رابط برای انتخاب کانال
- محیط رادیویی و طیفی ناهمگن
- اطلاعات مورد نیاز در طول فرآیند مسیریابی
پشتیبانی از MAC رادیو شناختی
- پشتیبانی از چند کانال تک رادیویی
- پشتیبانی از چند کانال چند رادیویی
- رابط برای انتخاب کانال
- اطلاعات مورد نیاز در طول دسترسی به طیف پویا
پشتیبانی از CR PHY
- پارامترهای طیف و پارامترهای رادیویی قابل تنظیم مجدد
- اطلاعات تداخل
- مدل فیزیکی SINR/SNR
الگوریتم های مسیریابی CR/CR MAC
چندین الگوریتم نمونه برای مسیریابی CR و CR MAC در شبیه سازهای CRCN آورده شده است. این الگوریتم ها نحوه استفاده از عملکرد ارائه شده توسط این شبیه ساز را نشان می دهد. همچنین، این الگوریتم ها یک محیط شبیه سازی برای پروتکل های شبکه CR فراهم می کنند. کاربران می توانند این مؤلفه ها را با الگوریتم های خود جایگزین کرده و عملکرد طرح های خود را آزمایش کنند.
ارزیابی عملکرد برای الگوریتم های CR
این شبیه ساز شامل چندین معیار ارزیابی برای ارزیابی عملکرد الگوریتم ها در لایه های مختلف است. در حال حاضر معیار ارزیابی شامل جمع و تداخل است.
آموزش نصب CRCN در NS2.31
در این مقاله قصد داریم تا آموزش نصب CRCN در NS2.31 را تحت لینوکس نسخه Debian chroot Jail با شما به اشتراک بگذاریم که ابتدا نحوه نصب NS2.31 و سپس نصب ابزار CRCN بر روی NS2.31 ارائه شده است. شما می توانید از همین رویه برای نصب crcn روی لینوکس معمولی نیز استفاده نمایید.
مراحل نصب NS2.31
مرحله اول: پیش نیاز ها وابستگی های لازم ns-2 را نصب کنید
1 2 3 4 5 | # refresh the database of available packages $ apt-get update #install the dependencies $ apt-get install perl xgraph libxt-dev libx11-dev libxmu-dev $ apt-get install gcc-4.4 cpp-4.4 gcc-4.4 gcc-4.4-base |
مرحله دوم: NS2.31 را از لینک زیر دانلود کنید:
1 2 3 4 5 | https://serverfiles.ir/dl/netsimulate/software/ns-allinone-2.31.tar.gz # copy the download ns-allinone-2.31.tar.gz file to the home directory $ cd /home/your_home $ tar -xvf ./ns-allinone-2.31.tar.gz #or extract the compressed file using your own way |
مرحله سوم: نصب ns-allinone-2.31
ابتدا باید NS2 را کامپایل کنیم تا بررسی کنیم که آیا درست کامپایل می شود یا خیر.
1 2 3 4 | #Installing ns-allinone-2.31 $ cd /home/your_home/ns-allinone-2.31/ #Run the main installation script (that will compile and install everything) $ ./install |
خروجی نهایی زیر از فرآیند نصب در ترمینال، نصب موفقیت آمیز ns-2.31 و سایر موارد مرتبط را نشان می دهد.

خروجی های ترمینال زیر در پایان فرآیند نصب، کار هایی را که باید در اسکریپت راه اندازی .bashrc برای .profile انجام دهیم را نشان می دهد که بتوانیم فهرست اصلی کاربر را پیدا کنیم.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | Ns-allinone package has been installed successfully. Here are the installation places: tcl8.4.14: /home/ns-allinone-2.31/{bin,include,lib} tk8.4.14: /home/ns-allinone-2.31/{bin,include,lib} otcl: /home/ns-allinone-2.31/otcl-1.13 tclcl: /home/ns-allinone-2.31/tclcl-1.19 ns: /home/ns-allinone-2.31/ns-2.31/ns nam: /home/ns-allinone-2.31/nam-1.13/nam gt-itm: /home/ns-allinone-2.31/itm, edriver, sgb2alt, sgb2ns, sgb2comns, sgb2hierns ———————————————————————————- Please put /home/ns-allinone-2.31/bin:/home/ns-allinone-2.31/tcl8.4.14/unix:/home/ns-allinone-2.31/tk8.4.14/unix into your PATH environment; so that you’ll be able to run itm/tclsh/wish/xgraph. IMPORTANT NOTICES: (1) You MUST put /home/ns-allinone-2.31/otcl-1.13, /home/ns-allinone-2.31/lib, into your LD_LIBRARY_PATH environment variable. If it complains about X libraries, add path to your X libraries into LD_LIBRARY_PATH. If you are using csh, you can set it like: setenv LD_LIBRARY_PATH <paths> If you are using sh, you can set it like: export LD_LIBRARY_PATH=<paths> (2) You MUST put /home/ns-allinone-2.31/tcl8.4.14/library into your TCL_LIBRARY environmental variable. Otherwise ns/nam will complain during startup. After these steps, you can now run the ns validation suite with cd ns-2.31; ./validate For trouble shooting, please first read ns problems page http://www.isi.edu/nsnam/ns/ns-problems.html. Also search the ns mailing list archive for related posts. root@AsusK55:/home/ns-allinone-2.31# |
بنابراین باید خطوط لازم را در اسکریپت راه اندازی اضافه کنید تا دستورات ns و nam و exgraph را بتوان در هر پوشه ای از سیستم اجرا کرد.
مرحله چهارم: تست نصب
1 2 3 4 | #Testing the working of ns-2 (keep in mind that you should add the #path of ns binary correctly in the startup script before running ns $ ns % |
بنابراین دستور ns فقط یک فرمان % را در ترمینال باز می کند. در واقع ns-2 چیزی نیست جز یک نسخه توسعه یافته ازtcl بنابراین آنچه در اینجا می بینیم خط فرمان tcl است، همین. ترمینال فقط منتظر دستور tcl/ns2 شماست. با توجه به اینکه قرار نیست از آن به این شکل استفاده کنیم، کافی است کلید Ctrl+C را فشار دهید تا از این دستور خارج شوید. تصویر زیر خروجی تست دستور ns را نشان می دهد. توجه کنید اگر با خطای command not found مواجه شدید، به این معنی است که متغیر PATH را به درستی تنظیم نکرده اید یا اصلاً ns-2 را با موفقیت کامپایل نکرده اید.

تست ابزار xgraph
1 2 3 | #Testing the working of xgraph $ xgraph _ |
کافی است کلید Ctrl+C را فشار دهید تا از این دستور خارج شوید.
تست ابزار nam
1 2 | #Testing name with some example simulation $ nam |
دستور بالا رابط کاربری گرافیکی اصلی nam را باز می کند. پس از آن، می توانیم خروجی هر شبیه سازی قبلی را باز کرده و آن اجرای آن را با تحرک گره ها به صورت انیمیشن مشاهده کنیم.
مراحل نصب CRCN
مرحله پنجم: دانلود ابزار CRCN
توجه کنید که برای استفاده از رابط کاربری گرافیکی ارائه شده توسط این شبیه ساز، لازم است بر روی سیستم شما محیط اجرای جاوا (JRE) 6 یا بالاتر نصب شده باشد.
شما می توانید ابزار CRCN را از لینک زیر دانلود کنید:
https://serverfiles.ir/dl/netsimulate/software/crcn.zip
مطمئن شوید که ns شما می تواند از هر دایرکتوری فراخوانی شود. سپس فایل crcn.zip را از حالت فشرده خارج کنید. فایل های داخل هر زیر پوشه که در crcn وجود دارد را در پوشه های مربوطه در XXX/ns-allinone-2.31/ns-2.31/ کپی کنید. به عنوان مثال، فایل های داخل مسیر crcn/mac/ را در داخل پوشه XXX/ns-allinone-2.31/ns-2.31/mac/ کپی کنید. لطفا توجه داشته باشید که برخی از فایل های ns شما را در همان فهرست باز نویسی (Replace) میکند. بنابراین، قبل از اجرای این دستور، از دایرکتوری ns بک آپ بگیرید.

در مرحله بعد باید سه خط زیر را در Makefile اضافه کنید که داخل XXX/ns-allinone-2.31/ns-2.31/ قرار دارد.
1 2 3 | wcett/wcett_logs.o wcett/wcett.o wcett/wcett_rtable.o wcett/wcett_rqueue.o mac/macng.o mac/maccon.o |

دستورات زیر را در پوشه XXX/ns-allinone-2.31/ns-2.31/ اجرا کنید:
1 2 3 4 | ./configure make clean make depend make |
اکنون مجموعه دستورات فوق با موفقیت ns-2.31 را بدون هیچ خطایی کامپایل می کند.
تصویر زیر کامپایل مجدد موفق ns-2.31 با ماژول پسوند crcn را نشان می دهد. (قسمت هایلایت شده را بررسی کنید)

اکنون یوزرها می توانند از اجزای NS2 بدون استفاده از رابط کاربری گرافیکی استفاده کنند.
تست نصب CRCN
اکنون می توانیم با اجرای یک مثال مناسب عملکرد ابزار crcn را آزمایش کنیم.
1 | $ ns test4wcett.tcl |
اگر test4wcett.tcl را اجرا کنیم، با خروجی ترمینال زیر به پایان می رسد. این نشان دهنده تکمیل موفقیت آمیز شبیه سازی است.

اکنون می توانیم خروجی nam را باز کره و محیط گرافیکی آن را مشاهده کنیم.

انیمیشن گیف زیر خروجی شبیه سازی را نشان می دهد.

رابط کاربری گرافیکی برای شبیه سازی CRCN
یک رابط کاربری گرافیکی مبتنی بر جاوا وجود دارد که می توان از آن برای تولید سناریو های CRCN بدون نوشتن کد زیاد استفاده کرد.
ما می توانیم این رابط کاربری گرافیکی را به صورت زیر نصب کنیم:
بخش اول: جاوا JRE نسخه 6 (یا JDE) یا بالاتر را تحت لینوکس از یکی از لینک های زیر دانلود و نصب کنید. (برای IP های ایران مسدود شده)
http://www.java.com/en/download/manual.jsp
https://www.oracle.com/java/technologies/downloads/#jdk18-linux
بخش دوم: ابزار gnuplot را از لینک زیر دانلود و نصب کنید:
بخش سوم: فایل throughput.pl را در دایرکتوری کاری ns خود XXX/ns-allinone-2.31/ns-2.31/ قرار دهید.
بخش چهار: فایل CRCN.jar را از لینک زیر دانلود کنید:
https://serverfiles.ir/dl/netsimulate/software/CRCN.jar
سپس آن را اجرا کنید، یا در پنجره فرمان دایرکتوری که CRCN.jar در آن ذخیره شده، عبارت:
1 | ./CRCN.jar |
را تایپ کنید. در روش دوم، از طریق پنجره فرمان می توانید خطا های شبیه سازی را مشاهده کنید.
بخش پنجم: اگر می خواهید از این رابط کاربری گرافیکی استفاده کنید، برای اجرای رابط کاربری گرافیکی به راهنمای CRCN GUI در لینک زیر مراجعه کنید:
https://faculty.uml.edu//Tricia_Chigan/Research/helpv4.htm
تصویر زیر رابط کاربری گرافیکی مبتنی بر جاوا برای تولید سناریو های CRCN را نشان می دهد.

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

توجه: اگر شما یک شبیه سازی بزرگ برای یک کار تحقیقاتی علمی در CRCN انجام می دهید، در این صورت این رابط جاوا هیچ کاربردی برای آن نخواهد داشت. منظور ما این است که نمی توان با استفاده از این رابط جاوا که به شکل ابتدایی ساخته شده، یک کار تحقیقاتی با کیفیت روی CRCN انجام داد. یک کار تحقیقاتی علمی نیاز به نوشتن دستی بسیاری از دستورات tcl و اسکریپت های دیگر دارد.
به روز رسانی و نسخه پیشرفته CRCN
یک شبیه سازی CRCN بسیار پیشرفته وجود دارد که تحت نرم افزار NS3 در حال توسعه است. این ابزار جدید در آینده در مرجع [6] در دسترس خواهد بود. این شبیه ساز از NS-3 برای ایجاد ترافیک و الگوهای توپولوژی واقعی استفاده می کند. برای هر گره در این شبیه ساز، یک لایه فیزیکی چند کاناله چند رادیویی قابل تنظیم مجدد با سفارشی سازی پارامترهای طیف مانند توان انتقال و غیره در دسترس است. شکل زیر از مرجع [6] نمای کلی از این شبیه ساز را نشان می دهد.

ما نیز در آینده آموزش نصب و استفاده از این CRCN تحت NS3 را ارائه خواهیم داد.
منابع:
- https://sourceforge.net/projects/nsnam/files/allinone/ns-allinone-2.31/ns-allinone-2.31.tar.gz/download
- https://faculty.uml.edu/tricia_chigan/Research/NS3/CRCN%20-%20NS3.htm
- https://en.wikipedia.org/wiki/Cognitive_radio
- https://faculty.uml.edu/tricia_chigan/
- https://faculty.uml.edu//Tricia_Chigan/Research/helpv4.htm
- https://faculty.uml.edu/tricia_chigan/Research/NS3/CRCN%20-%20NS3.htm













































هیچ نظری ثبت نشده است