آموزش شبیه سازی Ns3 محیط توسعه ns3

بدون ديدگاه

این بخش با هدف جابجایی کاربر از حالت کار با دستگاهی شروع می شود که ممکن است هرگز ns-3 را نصب نکند. این برنامه سیستم عامل های پشتیبانی شده ، پیش نیازها ، راه های به دست آوردنns-3 ، راه های ساخت ns-3 و راه های تأیید ساخت و اجرای برنامه های ساده شما را پوشش می دهد.

بررسی اجمالی 

ns-3 به عنوان یک سیستم از کتابخانه های نرم افزاری که با هم کار می کنند ساخته شده است. می توان برنامه های کاربری نوشت که با (یا واردات از) این کتابخانه ها پیوند دارد. برنامه های کاربر به زبان های برنامه نویسی C ++ یا Python نوشته می شوند.

ns-3 به عنوان کد منبع توزیع می شود ، به این معنی که سیستم مورد نظر برای ساخت کتابخانه ابتدا باید دارای یک محیط توسعه نرم افزار باشد ، سپس برنامه کاربر را بسازد. ns-3 می تواند در اصل به عنوان کتابخانه های از پیش ساخته شده برای سیستم های منتخب توزیع شود ، و در آینده ممکن است به این روش توزیع شود ، اما در حال حاضر ، بسیاری از کاربران در واقع کار خود را با ویرایش ns-3 خود انجام می دهند ، بنابراین با داشتن کد منبع در اطراف برای بازسازی کتابخانه ها مفید است. اگر شخصی دوست دارد کار ساخت کتابخانه ها و بسته های از پیش ساخته را برای سیستم عامل ها انجام دهد ، لطفاً با لیست پستی ns-developers تماس بگیرید.

در ادامه به سه روش بارگیری و ساخت ns-3 خواهیم پرداخت. اولین بار بارگیری و ساخت نسخه رسمی از وب سایت اصلی است. دوم واکشی و ساخت نسخه های توسعه ای از نصب اولیه ns-3 . سوم استفاده از یک ابزار ساخت اضافی برای بارگیری برنامه های افزودنی بیشتر برای ns-3 است . هر کدام را مرور خواهیم کرد از آنجا که ابزارهای موجود کمی متفاوت هستند.

کاربران با تجربه لینوکس ممکن است در این مرحله سؤال کنند که چرا ns-3 مانند سایر کتابخانه ها با استفاده از یک ابزار مدیریت بسته ارائه نمی شود؟ اگرچه برخی از بسته های باینری برای توزیع های مختلف لینوکس وجود دارد (به عنوان مثال دبیان) ، بسیاری از کاربران در نهایت ویرایش می شوند و مجبورند خودشان کتابخانه های ns-3 را دوباره بازسازی کنند ، بنابراین داشتن کد منبع در دسترس راحت تر است. بنابراین در این آموزش بر روی نصب منبع تمرکز خواهیم کرد.

در بیشتر موارد استفاده از ns-3 ، مجوزهای ریشه لازم نیست و استفاده از حساب کاربری غیر ممتاز توصیه می شود.

پیش نیازها 

مجموعه كامل كتابخانه های ns-3 دارای تعدادی وابستگی به كتابخانه های شخص ثالث است ، اما بیشتر ns-3 با پشتیبانی از چند مؤلفه معمول (كه اغلب به طور پیش فرض نصب می شوند) ساخته شده و مورد استفاده قرار می گیرد: یك کامپایلر C ++ ، نصب پایتون ، ویرایشگر کد منبع (مانند vim ، emacs یا Eclipse) و در صورت استفاده از مخازن توسعه ، نصب سیستم کنترل کد منبع Git را انجام می دهد. بیشتر کاربران اولیه اگر پیکربندی خود گزارش برخی از ویژگیهای اختیاری ns-3 را بدهند ، نگران نباشند ، اما برای کسانی که مایل به نصب کامل هستند ، این پروژه ویکی را فراهم می کند که شامل صفحات با نکات و نکات مفید بسیاری است. یک صفحه چنین صفحه “نصب” است که دستورالعمل های نصب برای سیستم های مختلف را در دسترس استhttps://www.nsnam.org/wiki/Installation .

بخش “پیش نیازها” در این صفحه ویکی توضیح می دهد که کدام بسته ها برای پشتیبانی از گزینه های مشترک ns-3 مورد نیاز هستند ، و همچنین دستورات مورد استفاده برای نصب آنها را برای انواع رایج لینوکس یا macOS فراهم می کند.

ممکن است بخواهید از این فرصت استفاده کنید تا ویکی ns-3 را کمی یا وب سایت اصلی در https://www.nsnam.org کشف کنید ، زیرا اطلاعات زیادی در آنجا وجود دارد.

از جدیدترین نسخه ns-3 (ns-3.29) ، برای شروع کار با ns-3 به ابزارهای زیر مورد نیاز است :

پيش نيازبسته بندی / نسخه
کامپایلر C ++clang++یا g++(g ++ نسخه 4.9 یا بالاتر)
پایتونpython2نسخه> = 2.7.10 یا python3نسخه> = 3.4
گیتهر نسخه اخیر (برای دسترسی به ns-3 از GitLab.com )
تارهر نسخه اخیر (برای باز کردن نسخه ns-3 )
bunzip2هر نسخه اخیر (برای فشردن نسخه ns-3 )

برای بررسی نسخه پیش فرض Python ، تایپ کنید . برای بررسی نسخه پیش فرض g ++ ، تایپ کنید . اگر نصب شما از بین رفته یا خیلی قدیمی است ، لطفاً برای راهنمایی با ویکی نصبns-3 مشورت کنید .python -Vg++ -v

از این نقطه به بعد می خواهیم فرض کنیم که خواننده در لینوکس ، macOS یا یک محیط شبیه سازی لینوکس کار می کند و حداقل پیش نیازهای فوق را دارد.

بارگیری نسخه ns-3 به عنوان بایگانی منبع 

این گزینه برای کاربر جدیدی است که مایل است آخرین نسخه منتشر شده و بسته بندی شده ns-3 را بارگیری و آزمایش کند . ns-3 نسخه های خود را به عنوان بایگانی منبع فشرده منتشر می کند ، که گاه به آن تاربال گفته می شود. tarball یک قالب خاص از بایگانی نرم افزار است که در آن چندین فایل با هم جمع می شوند و بایگانی معمولاً فشرده می شود. روند بارگیری ns-3 از طریق tarball ساده است. شما فقط باید یک نسخه را انتخاب کنید ، آن را بارگیری کنید و آن را فشرده سازی نکنید.

بیایید فرض کنیم که شما به عنوان یک کاربر می خواهید ns-3 را در یک فهرست محلی بنامید workspace. اگر workspaceرویکرد دایرکتوری را اتخاذ کنید ، می توانید با وارد کردن موارد زیر در پوسته لینوکس ، نسخه ای از نسخه را دریافت کنید (البته شماره های نسخه مناسب را جایگزین کنید)

$ cd
$ mkdir workspace
$ cd workspace
$ wget https://www.nsnam.org/release/ns-allinone-3.29.tar.bz2
$ tar xjf ns-allinone-3.29.tar.bz2

به استفاده از wgetابزار فوق ، که یک ابزار خط فرمان برای واکشی اشیاء از وب است ، توجه کنید. اگر این نصب را ندارید ، می توانید برای این مرحله از یک مرورگر استفاده کنید.

پس از این مراحل ، اگر به دایرکتوری تغییر دهید ns-allinone-3.29، باید تعدادی فایل و فهرست را مشاهده کنید

$ cd ns-allinone-3.29
$ ls
bake      constants.py   ns-3.29                            README
build.py  netanim-3.108  pybindgen-0.17.0.post58+ngcf00cc0  util.py

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

دانلود NS-3 استفاده از Git 

NS-3 کد در مخزنهای Git در این سرویس GitLab.com در دسترس است https://gitlab.com/nsnam/ . نام این گروه nsnamمخازن مختلفی را که توسط پروژه منبع باز استفاده می شود ، سازماندهی می کند.

ساده ترین راه برای شروع استفاده از مخازن Git ، چنگال یا کلون کردن ns-3-allinoneمحیط است. این مجموعه ای از اسکریپت ها است که مدیریت بارگیری و ساخت رایج ترین زیر سیستم های ns-3 را برای شما فراهم می کند. اگر شما تازه به دستگاه گوارش، اصطلاح forkو clone ممکن است خارجی برای شما. در این صورت توصیه می کنیم clone مخزن موجود در GitLab.com را به سادگی (ایجاد ماکت خود را ایجاد کنید) ، به شرح زیر:

$ cd
$ mkdir workspace
$ cd workspace
$ git clone https://gitlab.com/nsnam/ns-3-allinone.git
$ cd ns-3-allinone

در این مرحله ، نظر شما از فهرست ns-3-allinone کمی متفاوت از آنچه در بالا با بایگانی منتشر شد توضیح داده شده است. باید چیزی شبیه به این باشد:

$ ls
build.py  constants.py   download.py  README  util.py

توجه داشته باشید که وجود download.pyاسکریپت ، که باعث خواهد شد بیشتر ns-3 و سورس کد مربوط به آن منتقل شود. در این مرحله ، شما می توانید جدیدترین عکس فوری توسعه ns-3 را بارگیری کنید :

$ python download.py

یا برای انتشار نسخه ns-3 ، با استفاده از -nپرچم برای مشخص کردن شماره انتشار:

$ python download.py -n ns-3.29

پس از این مرحله مخازن اضافی ns-3 ، bake ، pybindgen و netanim در ns-3-allinoneدایرکتوری بارگیری می شود .

دانلود NS-3 با استفاده از پخت 

دو روش فوق (بایگانی منبع ، یا مخزن ns-3-allinone از طریق Git) برای بدست آوردن ابتدایی ترین نصب ns-3 با چند افزونه (pybindgen برای تولید اتصالات پایتون ، و netanim برای انیمیشن های شبکه) مفید هستند. مخزن سوم ارائه شده به طور پیش فرض در ns-3-allinone نامیده می شود bake.

Bake ابزاری برای ساخت نرم افزار هماهنگ از مخازن چندگانه است که برای پروژه ns-3 تهیه شده است. Bake را می توان برای واکشی نسخه های توسعه نرم افزار ns-3 و بارگیری و ساخت برنامه های افزودنی در توزیع پایه ns-3 مانند محیط Direct Code Exactions ، گهواره شبیه سازی شبکه ، امکان ایجاد اتصالات جدید Python و موارد مختلف استفاده کرد. ns-3 “برنامه”. اگر تصور می کنید که نصب ns-3 ممکن است از ویژگی های پیشرفته یا اختیاری استفاده کند ، ممکن است بخواهید این مسیر نصب را دنبال کنید.

در نسخه های اخیر ns-3 ، Bake در تاربال نسخه منتشر شده است. پرونده پیکربندی موجود در نسخه منتشر شده به شما امکان می دهد هر نرم افزاری را که در زمان انتشار وجود داشت بارگیری کند. به عنوان مثال ، نسخه Bake که با ns-3.29نسخه توزیع می شود ، می تواند برای واکشی قطعات برای نسخه ns-3 یا نسخه قبلی استفاده شود ، اما برای واکشی قطعات برای نسخه های بعدی قابل استفاده نیست (مگر اینکه bakeconf.xmlپرونده توضیحات بسته باشد. به روز شده)

همچنین می توانید جدیدترین نسخه را bakeبا تایپ کردن موارد زیر در پوسته لینوکس خود دریافت کنید (با فرض اینکه شما نصب کرده اید Git):

$ cd
$ mkdir workspace
$ cd workspace
$ git clone https://gitlab.com/nsnam/bake.git

با اجرای دستور git ، باید چیزی مانند آنچه در زیر نمایش داده می شود را مشاهده کنید:

Cloning into 'bake'...
remote: Enumerating objects: 2086, done.
remote: Counting objects: 100% (2086/2086), done.
remote: Compressing objects: 100% (649/649), done.
remote: Total 2086 (delta 1404), reused 2078 (delta 1399)
Receiving objects: 100% (2086/2086), 2.68 MiB | 3.82 MiB/s, done.
Resolving deltas: 100% (1404/1404), done.

پس از اتمام فرمان clone ، باید دایرکتوری به نام خود داشته باشید bake، محتویات آن باید چیزی شبیه به موارد زیر باشد:

$ cd bake
$ ls
bake  bakeconf.xml  bake.py  doc  examples  generate-binary.py  test  TODO

توجه کنید که برخی از اسکریپت های پایتون ، ماژول پایتون به نام bakeو یک پرونده پیکربندی XML را بارگیری کرده اید . مرحله بعدی استفاده از آن اسکریپت ها برای بارگیری و ساخت توزیعns-3 مورد نظر شما خواهد بود.

چند هدف پیکربندی موجود است:

  1. ns-3.29: ماژول مربوط به نسخه؛ آن را به اجزای شبیه به تاربال انتشار منتشر خواهد کرد.
  2. ns-3-dev: یک ماژول مشابه اما با استفاده از درخت کد توسعه
  3. ns-allinone-3.29: ماژول که شامل سایر ویژگی های اختیاری مانند مسیریابی کلیک ، Openflow برای ns-3 و گهواره شبیه سازی شبکه
  4. ns-3-allinone: مشابه نسخه منتشر شده ماژول آلینون ، اما برای کد توسعه.

عکس فوری توسعه فعلی (منتشر نشده) از ns-3 ممکن است در https://gitlab.com/nsnam/ns-3-dev.git یافت شود . توسعه دهندگان تلاش می كنند كه این مخازن را در حالت های ثابت و در حال كار نگه داشته ، اما آنها در یك منطقه توسعه با كد منتشر نشده قرار دارند ، بنابراین شاید در صورت عدم نیاز به ویژگی های تازه معرفی شده ، بخواهید در نظر بگیرید كه با نسخه رسمی بمانید.

با بازرسی در لیست مخزن یا با مراجعه به صفحه وب “ns-3 نسخه” و کلیک بر روی آخرین لینک انتشار ، می توانید آخرین نسخه کد را پیدا کنید . ما در این مثال آموزشی با ns-3.29.

اکنون می خواهیم از ابزار پخت برای پایین آوردن قطعات مختلف ns-3 که استفاده می کنید استفاده کنیم. در ابتدا ، ما یک کلمه در مورد اجرای پخت خواهیم گفت.

کارهای پخت را با بارگیری بسته‌های منبع در فهرست منبع و نصب کتابخانه‌ها در یک فهرست ساخت. bake را می توان با ارجاع دودویی اجرا کرد ، اما اگر کسی انتخاب کرد که از خارج فهرستی که در آن بارگیری شده است ، پخت را اجرا کند ، توصیه می شود که از این طریق پخت را مانند مسیر زیر وارد کنید. ابتدا به فهرست “پخت” تغییر دهید و متغیرهای محیط زیر را تنظیم کنید:

$ export BAKE_HOME=`pwd`
$ export PATH=$PATH:$BAKE_HOME:$BAKE_HOME/build/bin
$ export PYTHONPATH=$PYTHONPATH:$BAKE_HOME:$BAKE_HOME/build/lib

این برنامه bake.py را وارد مسیر پوسته می کند و به سایر برنامه ها امکان می دهد اجرایی و کتابخانه ای را که توسط پخت ایجاد شده است پیدا کنند. اگرچه چندین مورد استفاده پخت مانند تنظیمات بالا به تنظیم PATH و PYTHONPATH احتیاج ندارد ، اما ساخت کامل ns-3-allinone (با بسته های اختیاری) به طور معمول انجام می شود.

وارد پوشه فضای کاری شوید و موارد زیر را در پوسته خود تایپ کنید:

$ ./bake.py configure -e ns-3.29

در مرحله بعد ، از bake خواهیم پرسید که آیا ابزار کافی برای بارگیری اجزای مختلف داریم یا خیر. نوع:

$ ./bake.py check

شما باید چیزی شبیه به موارد زیر را ببینید:

> Python - OK
> GNU C++ compiler - OK
> Mercurial - OK
> Git - OK
> Tar tool - OK
> Unzip tool - OK
> Make - OK
> cMake - OK
> patch tool - OK
> Path searched for tools: /usr/local/sbin /usr/local/bin /usr/sbin /usr/bin /sbin /bin ...

به طور خاص ، ابزارهای بارگیری مانند Mercurial ، CVS ، Git و Bazaar اصلی ترین دغدغه های ما در این مرحله هستند ، زیرا آنها به ما اجازه می دهند کد را بارگیری کنیم. لطفاً در این مرحله ، ابزارهای مفقود شده را به روش معمول برای سیستم خود نصب کنید (در صورت امکان) یا برای نصب این ابزارها ، با مدیر سیستم خود تماس بگیرید.

بعد ، سعی کنید نرم افزار را بارگیری کنید:

$ ./bake.py download

باید چیزی مانند:

>> Searching for system dependency setuptools - OK
>> Searching for system dependency libgoocanvas2 - OK
>> Searching for system dependency gi-cairo - OK
>> Searching for system dependency pygobject - OK
>> Searching for system dependency pygraphviz - OK
>> Searching for system dependency python-dev - OK
>> Searching for system dependency qt - OK
>> Searching for system dependency g++ - OK
>> Downloading pybindgen-0.19.0.post4+ng823d8b2 (target directory:pybindgen) - OK
>> Downloading netanim-3.108 - OK
>> Downloading ns-3.29 - OK

موارد فوق حاکی از بارگیری سه منبع است. sourceاکنون دایرکتوری را بررسی کنید و تایپ کنید ls. باید دید:

$ cd source
$ ls
netanim-3.108  ns-3.29  pybindgen

اکنون شما آماده ساختن توزیع ns-3 هستید .

ساختمان NS-3 

مانند دانلود ns-3 ، چند روش برای ساخت ns-3 وجود دارد . نکته اصلی که می خواهیم تأکید کنیم موارد زیر است. ns-3 با ابزاری برای ساخت به نام Wafزیر ساخته شده است. اکثر کاربران به طور مستقیم با Waf کار می کنند ، اما برخی از اسکریپت های راحتی برای شروع کار یا ساخت سازهای پیچیده تر وجود دارند. بنابراین ، لطفاً قبل از مطالعه درباره وف در زیر ، نگاهی بهbuild.pyساختمان bakeبنمایید.

نوشتن دیدگاه

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

سیزده − 7 =