بهینه سازی پروتکل TCP با نرم افزار NS2
در این بخش پروژه شبیه سازی بهینه سازی پروتکل TCP با تغییر در ساختار آن در نرم افزار NS2 را به همراه داکیومنت آماده کرده ایم که در این پروژه شبیه ساز NS از یک ارسال کننده به نام TCP و یک گیرنده به نام TCPsink استفاده می کند که گیرنده TCPsink وظیفه ساخت و ارسال بسته تصدیق را بر عهده دارد. پروتکل مسیریابی مورد استفاده نیز پروتکل DSDV می باشد.
سناریو شبیه سازی
در پروتکل TCP وقتی از نود A به نود B یک جریان TCP برقرار می شود، گیرنده ی جریان یعنی نود B به محض دریافت هر بسته ی داده، یک بسته ACK ارسال می کند، حال ما می خواهیم در این پروژه بسته های ACK را به طور کامل حذف کنیم یعنی در ازای هر بسته ی داده، هیچ بسته ی ACK دریافت نشود. تنها در زمانی که بسته ای گم شد یا با خطا دریافت شد گیرنده، یک بسته NACK ارسال کند و فرستنده یعنی A با دریافت بسته NACK ارسال مجدد را نسبت به آن بسته انجام می دهد. در اینجا مفهوم ACK به طور کلی حذف می شود.
فرستنده فقط داده ارسال می کند و گیرنده نیز به ازای بسته های که دریافت می کند، هیچ عکس العملی نشان نمی دهد یعنی بسته ی ACK ارسال نمی کند و فقط زمانی که بسته ای را بعد از تایمری که مشخص شده دریافت نکرد، یا بسته ای را با خطا دریافت کرد، آنگاه یک بسته ی NACK ارسال می کند و فرستنده نیز به ازای آن بسته NACK بسته ی مربوطه را ارسال خواهد کرد. پس از شبیه سازی شبکه مورد نظر، در خروجی به دست آمده، مکانیزم Timeout و ارسال مجدد این کار را بیان می کنیم و نشان می دهیم که گیرنده بعد از چه مدت زمانی متوجه می شود که Packet loss یا از دست دادن بسته در شبکه صورت گرفته و باید بسته NACK ارسال کند و این مدت زمان چطور محاسبه می شود.
دیاگرام پروتکل TCP استاندارد و تغییر یافته
دیاگرام پروتکل TCP :
دیاگرام پروتکل TCP بهبود یافته :
توضیحات و تفاوت ها
در پروتکل TCP ، گیرنده بعد از دریافت هر بسته، یک بسته تصدیق با ACK ارسال می کند و با این بسته به گیرنده اعلام می کند که بسته با شماره بعدی را ارسال کند. در صورتی که بسته ای گم شود، ارتباط از بین می رود و باید مجددا ارتباط بین گیرنده و فرستند برقرار شود. در پروتکل TCP علاوه بر بسته FIN یک بسته ACK نیز ارسال می شود و ارتباط این دو ایجاد و سپس بسته گم شده دوباره ارسال می شود. اما همانطور که در تصویر پروتکل بهبود یافته TCP مشخص است، چنین اتفاقی رخ نمی دهد و در صورتی که بسته ای گم شود گیرنده با مکانیزی به نام Timeout یک بسته NACK را برای فرستنده ارسال و اعلام می کند که بسته با شماره خاص گم شده است و بعد از مدت زمانی به نام Timeout بعلاوه زمان ارسال بسته توسط گیرنده، فرستند متوجه خواهد شد که بسته خاص گم شده و باید آن را دوباره ارسال نمود. در نهایت فرستنده بسته، بسته با شماره خاص (در اینجا z) را برای گیرنده ارسال می کند.
نتایج شبیه سازی
زمان Timeout:
d -t 1.160000000 -Hs 8 -Hd -2 -Ni 8 -Nx 666.00 -Ny 491.00 -Nz 0.00 -Ne -1.000000 –
Nl RTR -Nw IFQ -Ma 0 -Md 0 -Ms 0 -Mt 0 -Is 8.0 -Id 7.0 -It tcp -Il 1060
زمان NACK:
s -t 1.282134960 -Hs 9 -Hd -2 -Ni 9 -Nx 488.01 -Ny -12.00 -Nz 0.00 -Ne -1.000000 -Nl AGT -Nw — -Ma 0 -Md 0 -Ms 0 -Mt 0 -Is 9.1 -Id 20.0 -It nack -Il 40
همانطور که مشخص است، زمان دراپ شدن بسته 1.160000000 ثانیه است و زمان ارسال بسته 1.282134960 ثانیه می باشد که از تفریق این دو زمان 0.12213496 ثانیه حاصل می شود که زمان تشخیص و ارسال مجدد آن می باشد. این نتایج از فایل tr به دست آمده که پس از اجرای کد tcl تولید می شود.
هیچ نظری ثبت نشده است