پروژه ارزیابی پروتکل TCP و TCP Vegas و TCP Newreno با شبیه ساز NS2
در این پست پروژه ارزیابی پروتکل TCP و TCP Vegas و TCP Newreno با NS2 را آماده کرده ایم که با توجه به توضیحات زیر شبیه سازی و ارزبابی شده شده است. در ادامه این مطلب یک فیلم نیز به صورت آنلاین قابل مشاهده است که اجرای حالت انیمیشن از شبیه سازی TCP Vegas و TCP Reno را در محیط NS2 نشان میدهد.
در این پروژه باید سناریوای ایجاد کنید که بتواند ازدحام در لینک ها را نشان دهد. پس در این سناریو باید در یکی از لینک ها باید یک bottle neck ایجاد شود. مسئله را برای دو حالت بررسی کنید: حالت high-load که باری که وارد لینک می شود خیلی بیشتر از پهنای باند bottle neck است و حالت low-load که ازدحامی رخ نداده است.
در این سناریو اندازه پنجره توان عملیاتی و تاخیر انتها به انتها را برای هر کدام از پروتکل های TCP و TCP Vegas و TCP Newreno بررسی کنید و نتیجه را در نمودار نشان دهید. دقت شود، به طور مثال، برای مقایسه توان عملیاتی در این پروتکل ها، نیاز است که تمامی نمودار های مربوطه روی هم قرار داده شوند.
توضیحات بیشتر، فیلم و تصاویر از خروجی پروژه ارزیابی پروتکل TCP و TCP Vegas و TCP Newreno در ادامه مطلب.
ما در این تمرین ۶ نود و ۷۶ لینک بین انها استفاده کردیم.
تحلیل سناریو (۴٫tcl) :
۱) set ns [new Simulator] $ns color 0 blue $ns color 1 green $ns color 2 red $ns color 3 black
در بخش بالا کلاسی با مشخصه Simulator بوجود آورده و رنگ گره ها را مشخص کردیم تا در مشاهده فایل nam (اجرای حالت انیمیشن) متوجه بشویم که کدام گره فرستنده و کدام گیرنده هست و بسته ی کدام گره dropp و … می شود.
(all out .tr):
در این قسمت نام فایل های خروجی که بعد از اجرا بدست می آیند را تنظیم می کنیم
۳) topology network set node_(0) [$ns node] set node_(1) [$ns node] set node_(2) [$ns node]
در این قسمت تعداد گره ها را با نام های مختلف ایجاد کردیم مثلا گره ۰ با نام ۰ است و در قسمت پایینی لینک های رفت و برگشت و نوع صف و پهنای باند بین گره ها را مشخص کردیم.
ns duplex-link $node_(0) $node_(0) 1Mb 5ms DropTail #set DuplexLink0 [$ns link $node_(0) $node_(0)] $ns duplex-link-op $node_(s0) $node_(r0) orient right-down $ns queue-limit $node_(0) $node_(1) 80 $ns queue-limit $node_(1) $node_(0) 80
به طور مثال:
$ns duplex-link $node_(1) $node_(0) 1Mb 5ms DropTail
لینک دو طرفه بین ۱ و ۰ با پهنای باند ۱Mb و نوع drop tail زمان رفت و برگشت بسته ۵ms است.
از صف تعریف شده در این سناریو خروجی می گیریم. با متغییر های که خودمان اعمال کرده ایم و نیز انواع پروتوکل های UDP و TCP را بر روی گره ها و صف attach کرده ایم و نیز
set tcp5 [new Agent/TCP/reno]
نوع پروتکل را مشخص می کنیم که در اینجا reno است و همچنین پنجره کنترل ازدحام را تعریف می کنیم که در ارسال و دریافت داده پروتکل reno ازدحام شبکه را کنترل کند.
set congestionWin0 [open congWin0.tr w] $tcp4 attach $congestionWin4 $tcp4 trace cwnd_
و همچنین اندازه بسته را نیز مشحص می کنیم .
$tcp4 set packetSize_ 1000 ۵) #start to generate traffic $ns at 0.0 "$ftp2 start" $ns at 30.0 "$ftp1 stop" $ns at 30.0 "$ftp3 stop" $ns at 30.0 "$ftp5 stop" $ns at 60.0 "$ftp1 start" $ns at 60.0 "$ftp3 start" $ns at 60.0 "$ftp5 start" $ns at 90.0 "$ftp0 stop" $ns at 90.0 "$ftp1 stop" $ns at 90.0 "$ftp2 stop" $ns at 90.0 "$ftp3 stop" $ns at 90.0 "$ftp4 stop" $ns at 90.0 "$ftp5 stop" $ns at 90.0 "finish"
در این بخش زمان حرکت گره را مشخص می کنیم:
$ns at 60.0 "$ftp1 start"
مثلا گرهی که ۱ ftp به هم attach شده شروع به ارسال داده کند. مطابق لینکی که ما خودمان تعریف کرده ایم در بخش بالایی.
۶) proc finish:
این تابع کلیه توابع موجود در این سناریو را close می کند.
نمودارهای به دست آمده از ارزیابی پروتکل TCP و TCP Vegas و TCP Newreno :
تصویر خروجی ۱:
تصویر خروجی ۲:
تصویر خروجی ۳:
تصویر خروجی ۴:
تصویر خروجی ۵:
تصویر خروجی ۶:
مشاهده ویدئو در این باره