سوالات رایج در Ns2

شبیه‌ساز ns2 یک ابزار شبیه‌سازی رخداد-گسسته است که امکان ارزیابی پارامترهای مختلف شبکه‌های کامپیوتری را برای پروتکل‌های استداندارد یا دلخواه فراهم می‌کند. این نرم‌افزار امکان شبیه‌سازی لایه‌های TCP/IPرا در بسترهای مختلف سیمی و بی‌سیم مانند LAN، WAN، Ad Hoc، Satelliteو ... فراهم می‌کند. همچنین انواع پروتکل‌ها در لایه‌های مختلف مانند TCP، UDP، FTP، AODV، DSR و ... در ns2 پیاده‌سازی شده است. در سال‌های اخیر به دلیل انعطاف و قدرت بالای ns2 در شبیه‌سازی شبکه‌های بی‌سیم توجه بسیاری به این شبیه‌ساز شده است. همچنین به دلیل استفاده‌ی اکثر مقالات پژوهشی خصوصا در حوزه‌ی شبکه‌های بی‌سیم از این شبیه‌ساز، اعتبار این شبیه‌ساز در جامعه پژوهشی بسیار بالا می‌باشد.
Administrator
Site Admin
پست: 293
تاریخ عضویت: چهار شنبه ژولای 17, 2019 10:01 am

سوالات رایج در Ns2

پست توسط Administrator » شنبه آگوست 03, 2019 1:04 pm

کلاس گره
برنامه نویسی OTcl قبل از یادگیریبعدی - ایجاد پیوند در ns2


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

فرمان:


گره [شبیه ساز-نمونه]


؟
1
set ns [new Simulator] set n0 [$ns node]


تغییر شکل گره
شکل گره را می توان با استفاده از روش شکل کلاس گره تغییر داد. شکل های ns2 موجود در جعبه ، شش گوش و دایره است. شکل پیش فرض دایره ای است. هنگامی که یک شکل تعریف می شود ، پس از شروع شبیه سازی قابل تغییر نیست.


Sytanx:

[گره نمونه] شکل <دایره | شش گوش | کادر>


مثال :

؟
1
2
# Box shape will be shown in network animator(NAM)
$n0 shape box





تنظیم مجدد کلیه عوامل گره
دستور تنظیم مجدد برای تنظیم مجدد کلیه عوامل متصل به گره استفاده می شود.


Sytanx:

[گره نمونه] تنظیم مجدد


مثال :

؟
1
$n0 reset


شناسه گره را بارگیری کنید
شناسه گره را می توان در ns2 گرفت.


Sytanx:

[گره نمونه] شناسه


مثال :

؟
1
2
$n0 id
0 ;# 0 returned by above command.



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


Sytanx:

[گره نمونه] ضمیمه [عامل-نمونه] اختیاری: <Port_no


نمونه:

؟
1
2
$n0 id
0 ;# 0 returned by above command.


برچسب را به گره وصل کنید
برای درک بهتر ، برچسب را می توان به گره در NAM متصل کرد.


Sytanx:

برچسب [گره نمونه]


مثال :

؟
1
$n0 label "first Node"





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


Sytanx:

[گره نمونه] اختصاص_پورت null_agent


مثال :

؟
1
$n0 alloc-port null_agent
گرفتن لیست همسایگان
هر گره لیستی از همسایگان را که به آن گره متصل هستند ، حفظ می کند.

نحو:

[گره نمونه] همسایه


مثال :

$ n0 همسایه

Administrator
Site Admin
پست: 293
تاریخ عضویت: چهار شنبه ژولای 17, 2019 10:01 am

تراکم تراکم در ns2

پست توسط Administrator » شنبه آگوست 03, 2019 1:06 pm

اگر ترافیک شبکه از ظرفیت شبکه فراتر رود ، احتقان در شبکه وارد می شود که باعث از بین رفتن بسته ها می شود.
در حالی که اتصال tcp برای انتقال داده استفاده می شود از طریق تنظیم خودکار سرعت انتقال داده کنترل می شود
در حالی که اتصال udp برای انتقال داده ها استفاده می شود ، احتقان را دنبال می کند

Administrator
Site Admin
پست: 293
تاریخ عضویت: چهار شنبه ژولای 17, 2019 10:01 am

نحوه نمایش نوع بسته در Trace File

پست توسط Administrator » شنبه آگوست 03, 2019 1:07 pm

برای نمایش نوع بسته در ردیابی ، اصلاح باید در پرونده های packet.h ، cmu-trace.h و cmu-trace.cc در بسته ns-allinone انجام شود. انواع بسته های از پیش تعریف شده یا انواع بسته های جدید به روش بسته بندی نشده int بسته شده تعریف می شوند و نام متنی از نوع بسته در کلاس p_info در پرونده packet.h تعریف می شود. قالب جدید پرونده نوع بسته به روش format_newpackettype اضافه می شود ، که در پرونده cmu-trace.cc تعریف شده است. روش format_newpackettype در پرونده cmu-trace.h اعلام شده است.


void
CMUTrace::format_gpsr(Packet *p, int offset)
{
struct hdr_cmn *ch = HDR_CMN(p);
struct hdr_rtp *rh = HDR_RTP(p);
struct hdr_ip *ih = HDR_IP(p);
Node* thisnode = Node::get_node_by_address(src_);

//hacking, needs to change later,
int dst = Address::instance().get_nodeaddr(ih->daddr());

if (dst == src_){
// I just received a cbr data packet
if (thisnode->energy_model() &&
thisnode->energy_model()->powersavingflag()) {
thisnode->energy_model()->set_node_state(EnergyModel::INROUTE);
}
}

if (pt_->tagged()) {
sprintf(pt_->buffer() + offset,
"-cbr:s %d -cbr:f %d -cbr:o %d ",
rh->seqno_,
ch->num_forwards(),
ch->opt_num_forwards());
} else if (newtrace_) {
sprintf(pt_->buffer() + offset,
"-Pn cbr -Pi %d -Pf %d -Po %d ",
rh->seqno_,
ch->num_forwards(),
ch->opt_num_forwards());
} else {
sprintf(pt_->buffer() + offset,
"[%d] %d %d",
rh->seqno_,
ch->num_forwards(),
ch->opt_num_forwards());
}
}
Modification of cmu-trace.h
void format_gpsr(Packet *p, int offset);

ارسال پست

بازگشت به “شبیه سازی با Ns2 - شبیه سازی با ان اس 2”