مبحث “كنترل ازدحام” در شبكه هاي كامپيوتري، مبحث گسترده اي است كه امروزه تحقيقات بسياري از پژوهشگران صنعت شبكه را به خود اختصاص داده است. هدف از اين پايان نامه نيز، بررسي و شبيه سازي الگوريتمهاي كنترل ازدحام در شبكه هاي كامپيوتري است. شبيه ساز مورد استفاده براي ارائه اين پايان نامه، شبيهساز NS2 است. به دليل اهميت اين نرم افزار در پروژه هاي تحقيقاتي و دانشگاهي، و همچنين آشنايي اندك دانشجويان كارشناسي با اين نرم افزار، سعي شده است تا در اين پايان نامه، به صورت مفصلي به اين نرم افزار پرداخته شود. در واقع اين تحقيق به نوعي يك تحقيق آموزشي محسوب مي گردد. به اين منظور، مطالب موجود به اين صورت سازماندهي شده اند كه:  ابتدا در فصل اول نگاهي مختصر به برخي از مباحث شبكه هاي كامپيوتري خواهيم داشت. سپس به موضوع اصلي، يعني كنترل ازدحام مي پردازيم. پس از آن در چند فصل مجزا، با معماري شبيه ساز NS2، نصب آن در محيط هاي لينوكس و ويندوز، مباني كار با NS2 و ابزارهاي AWK، grep و XGraph آشنا خواهيم شد. دليل طولاني شدن مباحث مربوط به NS2 اين است كه به عقيده ما نمي توان اين مبحث كاربردي را آنگونه كه قصد داريم تا به شما آموزش دهيم، در يك يا دو فصل قرار داد. در اين فصول، با مباني كار با NS2 به خوبي آشنا خواهيم شد و پس از آن مي توانيم به بررسي الگوريتمهاي كنترل ازدحام با اين شبيه ساز بپردازيم. اينكار، موضوع فصل پاياني را تشكيل مي دهد. در اين فصل، سه الگوريتم كنترل ازدحام به نامهاي: Tahoe TCP، Reno TCP و Vegas TCP را در قالب سناريوهاي مختلفي بررسي كرده و نتايج لازم را از اين مقايسه ها به دست خواهيم آورد.
كلمات كليدي:
شبيه ساز NS2، برنامه نويسي OTCL، مدل مرجع IP/TCP، پروتكل TCP، كنترل ازدحام TCP، TCP Tahoe، Reno TCP، Vegas TCP ، Throughput و RTT

فهرست مطالب
مقدمه………………………………………………………………………………………………. 1
فصل اول: شبكه هاي كامپيوتري ……………………………………………………………….. 3

مقدمه ………………………………………………………………………………………………..4

زندگي امروزه بشر، با پردازش و انتقال اطلاعات عجين شده است و كامپيوترها به عنوان عنصر اصلي اين حوزه نقش گسترده و حياتي را بر عهده دارند. ارتباط كامپيوترها با يكديگر در ابعاد مختلف يك نياز اساسي بود كه شبكه هاي كامپيوتري به آن پاسخ دادند و باعث حذف محدوديت هاي جغرافيايي شدند. بدين ترتيب شبكه هاي كامپيوتري به مهمترين صنعت ارتباطي تبديل شدند. نقطه اوج اين صنعت ظهور پديده اي به نام اينترنت بود. امروزه برنامه هاي كاربردي بسياري در ادارات و منازل در بستر شبكه و به خصوص اينترنت اجرا مي شوند و كاربردهايي از جستجوي مقاله ها و معاني واژه ها گرفته تا اهدافي مانند بازي و گفتگو در سايت هاي اجتماعي، انسانهاي بسياري را در سراسر جهان به اين شبكه جهاني پيوند مي دهند. به عنوان يك كاربر عادي، مي توان در مورد نقش اينترنت در زندگي روزمره، بسيار بيشتر از آنچه كه گفته شد به بحث و گفتگو پرداخت، اما در پشت اين قابليت اعتماد و سهولت استفاده از اينترنت و به طور كلي ديگر شبكه هاي كامپيوتري، پژوهشگراني قرار دارند كه دائماً در حال بررسي و كنكاش مسائل موجود در زمينه شبكه هاي كامپيوتري مي باشند. يك از مهمترين اين مسائل، “ازدحام” 1 است: واژه اي آشنا!. همانطور كه اگر انسانهاي زيادي در صف اتوبوس و يا مترو منتظر باشند شاهد ازدحام خواهيم بود، درست در شبكه هاي كامپيوتري نيز وضعيت به همين صورت است؛ يعني اگر درخواست هاي زيادي از منابع شبكه (از جمله بافر مسيريابها و يا ظرفيت لينكها) وجود داشته باشد، ازدحام رخ مي دهد. امروزه با توجه به گستردگي اينترنت و درخواستهاي همزمان كاربران از منابع موجود، ازدحام امر طبيعي محسوب مي شود. در راستاي اين مشكل، زمينه اي
به نام “كنترل ازدحام”2 گسترش يافت. اگر به مقاله ها و كارهاي انجام شده در اين زمينه نگاهي بياندازيم، متوجه گستردگي اين موضوع خواهيم شد. با توجه به اينكه امروزه موضوع كنترل ازدحام در شبكه هاي كامپيوتري، زمينه اي فعال و گسترده بوده و به يكي از مباحث مهم روز تبديل شده است، پژوهشگران بسياري از سراسر جهان، در اينزمينه فعاليت مي كنند كه هر كدام از آنها داراي ديدگاه متفاوتي نسبت به اين قضيه هستند. دانشجويان و پژوهشگران مجموعه مهندسي برق نيز از جمله افرادي هستند كه به اين موضوع مي پردازند و البته تعداد بسياري را نيز در اين مجموعه شامل مي شوند.

اين مسائل ما را بر آن داشت تا به عنوان يك گام كوچك، به بررسي موضوع ازدحام و چند الگوريتم معرفي شده در اين زمينه بپردازيم. از ميان موضوعات بسيار و الگوريتمهاي متنوعي كه وجود دارند، با هدف آشنايي پايه اي، انگشت بر شبكه هاي سيمي و الگوريتمهاي كنترل ازدحام TCP كه بر پايه پنجره هستند، گذاشته ايم. در واقع، از نظرتاريخي، پايه الگوريتمهاي كنترل ازدحام جزء همين دسته اي است كه قرار است با هم به بررسي آنها بپردازيم. به همين منظور، اين پايان نامه با عنوان “بررسي و شبيه سازي الگوريتمهاي كنترل ازدحام در شبكه هاي كامپيوتري”تعريف شده است.  در اين راستا، ابتدا فصل جداگانه اي را به آشنايي با شبكه هاي كامپيوتري اختصاص داده ايم. در اين فصل، مفاهيم پايه اي شبكه، به طوري كه در ادامه كار براي ما مفيد هستند، ارائه مي شود. همچنين اگر با اين مفاهيم آشنا هستيد، توصيه مي كنيم كه با توجه به حجم كم اين فصل، براي مرور مطالب گذشته، آن را مطالعه كنيد. سپس در فصل بعدي، به موضوع كنترل ازدحام TCP خواهيم پرداخت. در اين فصل موضوعاتي مانند ازدحام، تاريخچه آن، كنترل جريان و الگوريتمهاي كنترل ازدحام را بررسي مي كنيم. اين فصل قلب مطالب اين پايان نامه را تشكيل مي دهد. همانطور كه از نام اين پايان نامه بر مي آيد، يكي ديگر از اهداف ما در راستاي بررسي الگوريتمهاي كنترل ازدحام، شبيه سازي اين الگوريتمها است. شبيه سازهاي متعددي براي اين منظور وجود دارند، اما بنا به دلايلي (از جمله كاربرد شبيه سازها در ارائه مقالات علمي)، ترجيح داده ايم تا از شبيه ساز NS2 استفاده كنيم. اين شبيه ساز يكي از معروف ترين و پر كاربرد ترين شبيه سازها در انجام پروژه هاي تحقيقاتي و دانشگاهي محسوب مي شود.
كمبود منابع فارسي در اين مورد و همچنين ساده و قابل فهم نبودن راهنماهاي موجود براي كاربران مبتدي، ما را بر آن داشت تا در فصلهاي جداگانه اي به طور مفصل به اين شبيه ساز بپردازيم، تا هم براي اهداف بعدي ما در اين پايان نامه مفيد باشد و هم اطلاعات با ارزشي را از اين طريق به شما خواننده گرامي، انتقال دهيم. پس از آنكه به طور قابل قبولي با شبيه ساز NS2 آشنا شديم، به موضوع اصلي بازگشته و الگوريتمهاي كنترل ازدحام TCP را با NS2 شبيه سازي و مقايسه خواهيم كرد. در واقع تمام مطالب موجود در اين پايان نامه، به همان صورتي كه گفته شد خواهد بود.  در پايان اميدواريم، اين پايان نامه بتواند آنگونه كه شايسته است، دين خود را به جامعه علمي ادا نمايد

1- 1 انواع شبكه ها ……………………………………………………………………………….4

1- 1- 1 از نظر تكنولوژي انتقال ……………………………………………………………………5

1- 1-2 از نظر اندازه …………………………………………………………………………………5

1-2 معماري شبكه…………………………………………………………………………………..8

1-3 سرويسهاي اتصال-گرا و غير متصل ……………………………………………………….. 10

1-4 مدلهاي مرجع ………………………………………………………………………………… 11

1-4- 1 مدل مرجع OSI ……………………………….ا……………………………………….. 12

2-4- TCP/IP مدل مرجع………………………………………………………………………….15
فصل دوم : كنترل ازدحام TCP …………………ا……………………………………………….18

مقدمه …………………………………………………………………………………………….. 19

شايد اولين مفهومي كه از واژه “ازدحام” در ذهن ما ايجاد مي شود، مفهوم شلوغي و ترافيك است. به خصوص اگر در يك كلان شهر زندگي مي كنيد، با اين واقعيت بهتر آشنا هستيد. چنين وضعيتي را مي شود به شبكه هاي كامپيوتري نيز تعميم داد و براي درك ازدحام، شلوغي لينكها و ورودي مسيريابها1 را در نظر گرفت. در واقع محدوديتهاي زندگي انسان هميشه و در همه عرصه ها خودنمايي مي كند و ما را در برابر شرايطي نامطمئن قرار مي دهد. محدوديت در طول بافرهاي مسيريابها و ظرفيت لينكها نيز نمونه هايي از اين واقعيت هستند كه شبكه را با مشكلي به نام ازدحام روبرو مي كنند. از نظر تاريخي، اين مشكل در دهه 80 در اينترنت روي داد و شخصي به نام “وان ژاكوبسن2” جزء اولين كساني بود كه به بررسي آن پرداخت. حاصل تلاشهاي اوليه وي و همكارانش براي رفع اين مشكل الگوريتمي به نام “Tahoe” بود. اين الگوريتم اولين مكانيزم كنترل ازدحام است كه پايه الگوريتمهاي بعدي نظير “Reno” قرار گرفت. اين مكانيزمها در گره هاي انتهايي كاربرد داشته و الگوريتمهاي ضمني محسوب مي شوند. از ديگر الگوريتمهاي بعدي كه با مكانيزمهاي ياد شده تفاوت دارند، مي توان به “Vegas” و “RED3” اشاره كرد كه به ترتيب الگوريتمهاي ضمني و صريح كنترل ازدحام هستند. الگوريتم RED تلاشي است در مورد مديريت بافر در مسيريابها، محل وقوع ازدحام، براي پيش بيني و جلوگيري از ازدحام.  پروتكلهاي قديمي تر TCP در برابر مشكل ازدحام، رويكرد ارسال مجدد را داشتند كه باعث افت شديد توان مفيد4 در شبكه مي شد و در شبكه حالتي را به وجود مي آورد كه به آن اصطلاحاً “فروريختگي ازدحامي5” گفته مي شود.  در اين سطح از ازدحام، هيچ بسته اي به مقصد نخواهد رسيد. در مقابل، امروزه از مكانيزمهاي قدرتمند و پيشرفته اي براي مديريت ازدحام شبكه استفاده مي شود. البته تأكيد ما بر روي الگوريتمهايي است كه در لايه انتقال و پروتكل TCP كاربرد دارند. دليل اين كار را به زودي بيان خواهيم كرد.  در واقع، مكانيزمهايي را كه در صدد هستيم تا آنها را بررسي كنيم، كاربردشان محدود به شبكه هاي سيمي است. در شبكه هاي بيسيم، اوضاع كمي متفاوت تر است. در واقع، اين الگوريتمها،عملكردشان بر اين فرض استوار است كه 99% از خطاي ايجاد شده در مورد ارسال يك بسته مربوط به وجود ازدحام در شبكه بوده و تنها حدود 1% آن، خطاي ناشي از لينك است. اين موضوع در شبكه هاي سيمي صادق است، در حالي كه در شبكه هاي بيسيم خطاي ارسال حتي در شرايط معمولي نيز بالا است و نمي توان اين روشها را دقيقاً مشابه با پياده سازيهاي مربوط به شبكههاي سيمي به كار برد و بايد اصلاحاتي را براي بهبود عملكرد آنها انجام داد.  مطالب گفته شده فوق، مختصري از مطالبي هستند كه در ادامه قصد داريم تا آنها را بررسي كنيم. البته هدف ما آشنايي با الگوريتمهاي كنترل ازدحام در TCP و همچنين بررسي آنها با NS2 است. به همين خاطر اين فصل را به صورت زير سازماندهي كرده ايم:  ابتدا، دوباره نگاهي به مفهوم ازدحام خواهيم داشت و سپس انواع برخورد با آن را از چند ديدگاه دسته بندي مي كنيم. پس از آن، به معرفي چند مفهوم در TCP خواهيم پرداخت. مفاهيمي مانند كنترل جريان و پنچره لغزان كه ديدگاه مناسبي را براي بررسي الگوريتمهاي مورد نظر براي ما ايجاد خواهند كرد. سپس با سه الگوريتم كنترلازدحام TCP به نامهاي: Tahoe، Reno و Vegas آشنا خواهيم شد. اين الگوريتمها از مفهوم پنچره در TCP استفاده مي كنند. در پايان، دو مدل ساده و پيچيده را براي محاسبه Throughput بيان خواهيم كرد.  پس از آنكه آشنايي كافي را مكانيزمهاي كنترل ازدحام كسب كرديم، مي توانيم در فصل بعدي پارامترهاي مختلف آنها را با NS2 بررسي و مقايسه كنيم. براي اين منظور سناريوهاي مختلفي را در نظر گرفته و اين الگوريتمها را در آن به كار خواهيم گرفت

2- 1 دانش اوليه در مورد ازدحام………………………………………………………………… 21

2- 1- 1 مفهوم ازدحام ………………………………………………………………………….. 21

2- 1-2 انواع برخورد با ازدحام ……………………………………………………………………24

2- 1-3 اهميت كنترل ازدحام در TCP ……………………….ا…………………………………..27

2- 1-4 تاريخچه ازدحام و كنترل آن در شبكه هاي كامپيوتري ……………………………… 30

2-2 كنترل جريان (control flow) ………………………………………..ا…………………….33

2-2- 1 پروتكهاي پنجره لغزان در لايه پيوند داده ………………………………………………34

2-2- 1- 1 پروتكل پنجره لغزان تك بيتي ……………………………………………………….35

2-2- 1-2 پروتكل ” n تا به عقب برگرد ” ……………………………………………………….36

2-2-2 كنترل جريان در TCP …………………………….ا………………………………………38

2-3 كنترل ازدحام در TCP ………….ا…………………………………………………………. 40

2-3- 1 قانون بقاي بسته ها ………………………………………………………………….. 40

2-3- 1- 1 Start-Slow، شروع آهسته……………………………………………………….. 41

2-3- 1-2 مديريت تايمرها در TCP ……………ا………………………………………………45

2-3- 1-3 جلوگيري از ازدحام، Avoidance Congestion ……………….ا…………………. 49

2-4 الگوريتم هاي Vegas , Reno ,Tahoe TCP ……ا…………………………………….. 52
1-4-2-الگوریتم TCP tahoe …………………………ا………………………………………..53

2-4-2- الگوریتم TCP Reno………………………..ا…………………………………………55

2-4-3-الگوریتم TCP Vegas …………ا………………………………………………………66

2-4-3-1-فاز افزایش / کاهش ………………………………………………………………..67

2-4-3-2 فاز Start-Slow اصلاح شده ……………………………………………………… 67

2-5 مدلسازي عملكرد TCP ………………..ا…………………………………………….. 68

2-5- 1 مدل ساده …………………………………………………………………………… 68

2-5-2 مدل پيچيده …………………………………………………………………………… 70
فصل سوم مباني NS2 ………………………………..ا…………………………………….72

مقدمه …………………………………………………………………………………………..73

ما در قرني به نام قرن اطلاعات زندگي مي كنيم. قرني كه زندگي مادي در آن بر مبناي پردازش و انتقال اطلاعات بنا شده است. كامپيوتر ها عنصر محوري پردازش اطلاعات به شمار مي روند و در كنار آن، شبكه هاي كامپيوتري و بالاخص اينترنت، نقش چشمگيري را در زندگي روزمره ما بر عهده دارند: انتقال اطلاعات. اينكه تمامي كامپيوترهاي متصل به اينترنت مي توانند همانند يك هارد ديسك براي شما عمل كنند و منبعي از هزاران هزار اطلاعات گوناگون را در هر زمان و در هر مكاني در اختيار شما قرار دهند، مي تواند بسيار هيجان انگيز و البته حياتي باشد. انتقال اطلاعات در بستر شبكه ها نيازمند قابليت اطمينان بالا است؛ بنابراين تحليل و بررسي جوانب مختلف شبكه ها براي ايجاد قابليت اعتماد و كارايي بالاتر و پيشرفت هاي بعدي، از جمله ي ضروريات است. همچنين پياده سازي پروتكل هاي جديد و مقايسه آن با پروتكل هاي قبلي نيز نيازمند بررسي شبكه ها به صورت عملي مي باشد. اما پيچيده تر شدن شبكه هاي كامپيوتري و وجود مشكلاتي از قبيل: هزينه و مقياس پذيري، عملاً پياده سازيهاي متعدد را براي انجام آزمايشهاي مورد نظر غير ممكن مي سازد. فرض كنيد كه يك دانشجو قصد داشته باشد تا يك پروتكل خاص را در يك شبكه با وجود 100 گره و ابعادي در گستره 1000 كيلومتر مورد بررسي قرار دهد!. در فرض دوم، هزار دانشجو ميخواهند شبكه هاي مختلفي را با همين ابعاد بررسي كنند!!. نعمت وجود شبيه سازها در اينجا كاملاً روشن مي شود. با وجود شبيه سازها مي توان به صورت مجازي توپولوژي دلخواه را تحت شرايط مختلفي پياده سازي و آن را بارها اجرا كرد. همچنين مي توان بدون صرف هزينه مالي به بررسي پروتكل هاي جديد پرداخت و نتايج آنها را با پروتكل هاي موجود مقايسه كرد. شبيه سازهاي متعددي براي شبكه هاي كامپيوتري وجود دارند. از جمله : NS2، OPNET، GLOMOSIM، QUALNET، SSFNET و … . اين شبيه سازها از منظرهاي مختلفي با هم تفاوت دارند و انتخاب يكي از آنها مي تواند تحت شرايط مختلف، متغير باشد. مثلاً براي دانشجويان ممكن است وجود رابط گرافيكي خوب از اهميت بالايي برخوردار بوده و حتي الامكان در اختيار داشتن شبيه ساز هزينه كمتري داشته باشد.  يا مثلاً محققان احتياج به شبيه سازي دارند كه اضافه كردن مدلهاي جديد به مدلهاي موجود، به سادگي امكان پذير باشد. هدف ما اين است كه با شبيه ساز NS2 آشنا شويم. شبيه ساز NS2 يك برنامه مشهور و جهاني است كه شيء گرا بوده و مبتني بر رخدادهاي گسسته است. NS2 پركاربردترين و مشهورترين شبيه سازها به خصوص در پروژه هاي دانشگاهي و تحقيقاتي است.  نرم افزار (Simulator Network) NS2 يك نرم افزار قدرتمند جهت شبيه سازي طيف گسترده اي از شبكه هاي IP  مي باشد. اين نرم افزار در دانشگاه كاليفرنيا بركلي توسعه پيدا كرده است و از پروتكل هاي شبكه از قبيل TCP و UDP، منابع ترافيك مانند: CBR, Telnet, FTP، مكانيزم هاي مديريت صف از جمله: SFQ ,DropTail, RED، الگوريتم هاي مسير يابي مانند Dijkstra و … پشتيباني مي كند.  NS2 اكنون قسمتي از پروژه (Testbed Internet Virtual) VINT به شمار مي رود كه با همكاري انيستيتوهاي بسياري ازجمله: Berkeley UC، T&AT، PARC XEROX و ETH شكل گرفت. پروژه VINT، اين شبيه ساز را به همراه ابزارهايي براي نمايش گرافيكي نتايج شبيه سازي توسعه مي دهد. به خاطر مسائل راندماني، در NS2 مسير داده از مسير كنترل مجزا شده است و در واقع NS2 را مي توان يك مفسر Tcl شي گرا دانست. از اين نرم افزار به صورت گسترده اي، مخصوصا براي ارائه نتايج مقاله ها در مجامع علمي، استفاده مي شود. اين امر دلايلي دارد از جمله :
الف- مورد تاييد مجامع علمي است،
ب- به صورت رايگان در دسترس است،
ج- كد آن نيز در دسترس بوده و مي توان به اين شبيه ساز كدهايي را اضافه يا كم نمود،
د- اكثر پروتكل هاي شبكه در آن پياده سازي شده است،
ه- هم بر روي لينوكس و هم بر روي ويندوز قابل نصب و اجرا است.
در اين شبيه ساز از دو زبان شي گراي ++C و OTcl استفاده مي شود. در واقع بوسيله زبان OTcl مي توانيم طرح برنامه از جمله : گره ها، لينك ها، پروتكل ها و … را تعيين كنيم. همچنين بوسيله زبان ++C، مي توان هسته2 برنامه مانند بسته ها، مسيريابي و … را تعيين كرد. براي شروع كار، فعلا آشنايي با زبان OTcl كافي است. اين زبان حالت شي گراي زبان دست نويس Tcl است كه يكسري دستورات به آن اضافه شده است. رابطه بين اين دو زبان را مي توان مشابه دو زبان C و ++C در نظر گرفت. اگر شما از آندسته افراد باشيد كه مايل به ادامه كار با NS2 هستيد، بعدها خواهيد دانست كه بوسيله كد نويسي (به زبان ++C) مي توان پروتكل هاي موجود را تغيير داد و نتايج مورد نظر خود را مشاهده كرد. اين كار فعلا از سطح ما بالاتر است و مايل نيستيم كه در اين زمينه تا بدست آوردن اطلاعات كافي در زمينه شبكه و NS2 كار كنيم. پس، بهتر است كه بر روي زبان OTcl تمركز كنيم.  اين نرم افزار بر روي هر دو پلت فرم WINDOWS و LINUX قابل نصب است. همچنين مي توان ادعا نمود كه كار با اين نرم افزار ساده تر از آنچه است كه فكر مي كنيد. اما تجربيات نگارنده و دوستان وي اين امر را اثبات كرده كه براي فرد مبتدي برداشتن گام اول تا حدودي دشوار است. نبود متن هاي ساده و رواني كه بتواند فرد را با اين نرم افزار آشنا نمايد و او را در قدم اول ياري كند، نيز مزيد بر علت شده است. به خصوص براي علاقه مندان فارسي زبان، كه اكثر فايل هاي در دسترس آنها ترجمه عيني از متن هاي زبان اصلي مي باشد، و اين مي تواند از رواني و قابل درك بودن مطلب بكاهد، مخصوصا هنگامي كه متن ها براي سطحي بالاتر از سطح يك مبتدي نوشته شده باشند.  به هر حال تا كنون ( زمان نگارش اين مطالب) كتاب خوبي كه راهگشاي اين عرصه باشد به چشم نويسنده نخورده است. اين مسايل ما را بر آن داشت تا تجربيات خود را در استفاده از اين نرم افزار، در اختيار شما خواننده ارجمند بگذاريم. البته در اين فصل مختصري در مورد معماري NS2 خواهيم گفت و در فصلهاي بعدي بيشتر به اين شبيه ساز خواهيم پرداخت

3- 1 معماري NS2…………………………………..ا………………………………………..76
فصل چهارم : نصب NS2 ……………………….ا…………………………………………..79

مقدمه ………………………………………………………………………………………… 80

4- 1 نصب تحت ويندوز ………………………………………………………………………. 80

4- 1- 1 دانلود و نصب Cygwin ………ا……………………………………………………. 80

4- 1-2 نصب NS2 در محيط ويندوز …………………………………………………………86

4-2 نصب در لينوكس ………………………………………………………………………. 90
فصل پنجم : OTcl ……………….ا…………………………………………………………92

مقدمه ……………………………………………………………………………………….93

5- 1 دستور شرطيif ………………….ا………………………………………………….96

5-2 دستور دوشرطي ………………………………………………………………………97

5-3 دستورات حلقه …………………………………………………………………………97

5-4 محاسبات رياضي……………………………………………………………………….98

5-5 دستور ايجاد تابع و فراخواني آن…………………………………………………….. 99

5-6 ايجاد يك شيء……………………………………………………………………….. 102

5-7 آرايه ……………………………………………………………………………………. 105

5-8 ليست دستورات اين فصل …………………………………………………………. 108

فصل ششم : ايجاد توپولوژي دلخواه……………………………………………………. 110

مقدمه …………………………………………………………………………………….. 111

6- 1 يك تعريف ساده ……………………………………………………………………. 112

6-2 بررسي يك توپولوژي ساده ……………………………………………………….. 112

6-2- 1 گره ها……………………………………………………………………………. 114

6-2-2 لايه انتقال …………………………………………………………………………. 114

6-2-3 لايه كاربرد………………………………………………………………………… 118

6-2-4 مفهوم زمانبندي و استفاده از آن در لايه كاربرد ………………………………. 120

6-2-5 لينك ها…………………………………………………………………………… 123

6-2-6 بررسي نهايي و ايجاد برنامه “tcl.net1” ………….ا………………………… 127
فصل هفتم : خروجي هاي NS2 ……….ا……………………………………………132

مقدمه ………………………………………………………………………………….. 133

7- 1 جمع آوري داده ها در NS2 ………………ا……………………………………. 135

7-2 خروجي nam …….ا…………………………………………………………….. 137

7-3 خروجي tr ……ا…………………………………………………………………. 150

7-4 تكميل برنامه “tcl.net1” ……..ا………………………………………………… 155
فصل هشتم : ابزارهاي AWK، grep و XGraph …..ا………………………….. 160

مقدمه ………………………………………………………………………………… 161

grep 1 -8……………………………………………………….ا………………………162

AWK 2-8……………………………….ا………………………………………………164

XGraph 3-8 ………………………………………………ا……………………………178

بررسي چند سناريو………………………………………………………………….. 185
فصل نهم : شبيه سازي الگوريتمهاي كنترل ازدحام TCP با NS2 ……ا……… 211

مقدمه ………………………………………………………………………………… 212

9- 1 سناريوي شماره1 (tcl.net5) …………………….ا…………………………… 213

9- 1- 1 برنامه tcl.net5 …………ا……………………………………………………. 214

9- 1-2 شبيه سازي …………………………………………………………………. 217

Tahoe 1 – 2-1 -9 ………………………….ا……………………………………….. 217

Reno 2-2-1 -9 …………………………….ا……………………………………….. 218

Vegas 3-2-1 -9………………………ا………………………………………………..128
9- 1-3 نتيجه سناريوي 1 …………………………………………………………… 221

9-2 سناريوي شماره 2 (tcl.net6) …………………………..ا………………….. 222

9-2-1- برنامه net6.tcl ………………………………….ا……………………………223

9-2-2 شبيه سازي ………………………………………………………………….. 227

9-2-2- 1 پنجره ازدحام …………………………………………………………….. 227

Throughput 2-2-2-9…………………ا……………………………………………..228

3-2-2-9- RTT………………………………………………….ا…………………….229

9-3-2 شبيه سازي ………………………………………………………………….. 236

9-3-2- 1 پنجره ازدحام در حالتي كه هر دو فرستنده از يك نوع هستند……….. 236

9-3-2-2 پنجره ازدحام در حالتي كه دو فرستنده با هم متفاوت هستند……….. 237

9-3-2-3 Throughput، در حالتي كه هر دو فرستنده يكسان هستند ………….. 238

9-3-2-4 Throughput، در حالتي كه دو فرستنده متفاوت هستند ……………….. 239

9-3-2-5 جدول ساير پارامترها……………………………………………………………240

9-3-3 نتيجه سناريوي 3 ………………………………………………………………. 242

9-4 سناريوي شماره 4 (tcl.net8) …………………………ا……………………….. 243

1-4-9-برنامه net8.tcl ……………………………………….ا………………………..224

9-4-2 شبيه سازي ………………………………………………………………….. 250

9-4-2- 1 پنجره ازدحام ……………………………………………………………….. 250

Throughput 2-2-4-9……………………………………….ا…………………………251

9-4-2-3 جدول ساير پارامترها ………………………………………………………. 251

RTT 4-2-4-9………………………………………………………ا…………………….253

9-4-3 نتيجه سناريوي شماره 4 …………………………………………………….. 252

9-5 نتيجه ……………………………………………………………………………….. 253
فهرست جدول ها
فصل اول: شبكه هاي كامپيوتري ………………………………………………………………………… 3
جدول 1- 1 طبقه بندي شبكه ها بر اساس اندازه و فاصله پردازنده ها (برگرفته شده از [ 1])……. 8

جدول 1-2 شش نوع سرويس مختلف ([ 1]) ………………………………………………………. 12
فصل دوم : كنترل ازدحام TCP …………………………ا…………………………………………….18
جدول 2- 1 سياستهايي كه بر ازدحام تأثير دارند (برگرفته شده از [ 1]) …………………………27
فصل پنجم : OTcl …………………………………………….ا………………………………………92
جدول 5- 1 خلاصه اي از دستورات فصل 5 …………………………………………………………108
فصل ششم : ايجاد توپولوژي دلخواه………………………………………………………………. 110
جدول 6- 1 ليست پارامترهاي CBR …………………………….ا………………………………….119

جدول 6-2 ليست پارامترهاي Pareto ………………….ا………………………………………… 119
فصل هفتم : خروجي هاي NS2 ……………………ا……………………………………………..132
جدول 7- 1 ساختار كلي يك فايل tr استاندارد…………………………………………………….152
فصل نهم : شبيه سازي الگوريتمهاي كنترل ازدحام TCP با NS2 ………….ا………………. 211
جدول 9- 1 ديگر پارامترهاي سناريوي شماره 1 …………………………………………………218

چدول 9-2 برخي از نتيج شبيه سازي سناريوي شماره 2 ……………………………………. 230

جدول 9-3 ديگر پارامترهاي سناريوي شماره 3 …………………………………………………. 240

جدول 9-4 ديگر پارامترهاي سناريوي شماره4 ………………………………………………….. 251
فهرست شكل ها
فصل اول: شبكه هاي كامپيوتري ………………………………………………………………….. 3

شكل 1- 1 يك شبكه كامپيوتري، مجموعه اي از كامپيوترهايي است كه به نوعي …………..4

به هم متصل شده و اطلاعات رد و بدل مي كنند.

شكل 1-2 انواع توپولوژي (به هم بندي) شبكه. (الف) توپولوژي حلقوي. ……………………………….6

(ب) توپولوژي باس. شكل 1-3 لايه ها، پروتكل ها و واسط ها. خط چين ها نشان دهنده يك ارتباط ….9

مجازي و خطوط توپر نشان دهنده ارتباط واقعي هستند. شكل 1-4 مدل مرجع OSI. …..ا…………..13

شكل 1-5 مدل مرجع IP/TCP ([ 1]). ……………………………ا………………………………………..16
فصل دوم : كنترل ازدحام TCP …….ا……………………………………………………………………….18

شكل 2- 1 تعداد بسته هاي ارسالي در شبكه بر حسب تعداد بسته هاي ………………………… 21

دريافت شده (برگرفته شده از [ 1]). شكل 2-2 منحني Throughput بر حسب بار شبكه. ……….. 22

شكل 2-3 مجموعه n گره كه از طريق يك شبكه متشكل از دو مسيرياب r1 و r2 ……..ا……………..23

و يك لينك گلوگاه با ظرفيت C، با n گره گيرنده در ازتباط هستند. ظرفيت ارسالي فرستنده Sn برابر با Ln است.

شكل 2-4 دو سناريوي مختلف براي تفكيك مفهوم كنترل جريان از مفهوم كنترل ازدحام ………….. 29

الف) كنترل جريان: نرخ ارسال فرستنده به خاطر گيرنده كندتر به Kbps 100 محدود مي شود، در حالي فرستنده امكان ارسال داده را با نرخي معادل Kbps 500 دارد و شبكه، دو برابر اين ظرفيت را ساپورت مي كند. ب) كنترل ازدحام: اين بار گيرنده توان پردازشي بيشتري از فرستنده دارد، اما به خاطر ظرفيت پايين شبكه، باز هم نرخ ارسال به Kbps 100 محدود مي شود.

شكل 2-5 دو سناريو براي پروتكل پنجره لغزان تك بيتي. (الف) حالت عادي. ………………………..35

(ب) حالت غير عادي. اعداد داخل پرانتز از چپ به راست به ترتيب عبارتند از (number packet ,ack ,seq). بسته هايي كه لايه شبكه آنها را تحويل گرفته است، با “*” مشخص شده اند. ( برگرفته شده از [ 1]).

شكل 2-6 لوله كشي و مقابله با خطا (الف) اندازه پنجره گيرنده 1 است. (ب) اندازه ……………..38

پنجره گيرنده بزرگ است. (برگرفته شده از [ 1]).

شكل 2-7 سرآيند قطعه TCP. ………………………………………………ا………………………….. 39

شكل 2-8 كنترل جريان پنجره “clocking-Self” (برگرفته شده از [2]). ……………………………… 42

شكل 2-9 تبادل بسته ها در يك اتصال، الگوريتم Start-Slow. ……………ا……………………………44

شكل 2- 10 منحني Throughput و زمان پاسخ بر حسب بار شبكه (برگرفته شده از [4]). …….. 50

شكل 2- 11 الگوريتم جلوگيري از ازدحام. (الف) منحني cwnd بر حسب زمان …………………… 51
ز (ب) ارتباط فرستنده و گيرنده با الگوريتم جلوگيري از ازدحام. شكل 2-12 الگوريتم Tahoe TCP. ا…54

شكل 2-13 نمونه اي از ارسال بسته ها و پيغام هاي Ack آنها بين فرستنده و ……………………….56

گيرنده. در اين شكل مي توانيد چگونگي ايجاد سه Ack تكراري (در اينجا مربوط به بسته شماره 4 كه البته حاوي پيامي مبني بر ارسال بسته شماره 5 است) را مشاهده كنيد.

شكل 2-14 الگوريتم Reno TCP. ……………………………………….ا………………………………… 59

شكل 2-15 الگوريتم Reno با يك بسته دراپ شده (برگرفته شده از [5]). …………………………. 60

شكل 2-16 پنجره ازدحام (cwnd) و حد آستانه شروع آهسته (ssthresh) …ا…………………….. 65

بر حسب زمان، در الگوريتم Reno TCP

. شكل 2-17 پنجره ازدحام TCP در حالت ايستا. ………………………………………………………. 69
فصل سوم : مباني NS2 …………………….ا…………………………………………………………….72

شكل 3- 1 معماري ساده شده شبيه ساز NS از ديدگاه كاربر…………………………………………76

شكل 3-2 ++C و OTcl: دوگانگي…………………………………………………………………………78

شكل 3-3 معماري NS2 ……………………………………ا……………………………………………..78
فصل چهارم : نصب NS2 ……………..ا……………………………………………………………………79

شكل 4- 1 سايت مورد نظر براي دانلود برنامه Cygwin. ……………ا……………………………….. 81

شكل 4-2 اجراي شيلد Cygwin. …………………………ا…………………………………………… 81

شكل 4-3 انتخاب نوع نصب cygwin …………..ا…………………………………………………….. 82

شكل 4-4 انتخاب مسير root ………………………ا…………………………………………………. 82

شكل 4-5 انتخاب مسير نصب بسته ها. ………………………………………………………………83

شكل 4-6 انتخاب نحوه اتصال به اينترنت. ………………………………………………………………83

شكل 4-7 انتخاب سايت براي دانلود. ………………………………………………………………….84

شكل 4-8 مرحله پاياني، انتخاب بسته ها ……………………………………………………………85

شكل 4-9 اتمام نصب Cygwin …………………………….ا………………………………………….85

شكل 4- 10 با دستورات cd و ls به ترتيب مي توان وارد مسير دلخواه شد. ……………………87

و فايل هاي موجود در اين مسير را مشاهده كرد شكل 4- 11 دستور install/. و آغاز نصبNS2…..ا…87

شكل 4-12 نكات پيكره بندي در انتهاي نصب NS2…….ا…………………………………………….88

شكل 4-13 مراحل تغيير پارامتر PATH…………………..ا…………………………………………… 89

شكل4-14 اجراي دستور validate/……………..ا……………………………………………………. 89
فصل پنجم : OTcl ………………ا……………………………………………………………………….92
ح شكل 5- 1 خروجي مثال4 ……………………………………………………………………………95

شكل 5-2 خروجي مثال 6 ………………………………………………………………………………97

شكل 5-3 خروجي مثال 7 ……………………………………………………………………………. 99

شكل 5-4 خروجي مثال 8 …………………………………………………………………………… 100
.شكل 5-5 خروجي مثال 9 ………………………………………………………………………….. 101

شكل 5-6 خروجي مثال 9-.1 ……………………………………………………………………….. 102

شكل 5-7 خروجي مثال 10 ………………………………………………………………………… 105

شكل 5-8 خروجي مثال 11 ……………………………………………………………………….. 107
فصل ششم : ايجاد توپولوژي دلخواه……………………………………………………………… 110
شكل 6- 1 يك توپولوژي ساده ……………………………………………………………………..112

شكل 6-2 نتيجه سفر به آينده: نمايش خروجي NS2………ا………………………………….. 113

شكل 6-3 نمايش يك روتر ……………………………………………………………………….. 115

شكل 6-5 مدل لينك در NS2…..ا………………………………………………………………… 121

شكل 6-6 (الف) در اين خروجي محل قرارگيري گره ها تنظيم نشده است………………… 123

و NS2 به صورت انتخابي آنها را مي چيند. (ب) در اين خروجي محل قرارگيري گره ها تنظيم شده اند و دكمه هاي reset و
layout-re ديگر وجود ندارند. شكل 6-7 گره n0 در سمت چپ (left) گره n1 قرار دارد ………………………………. 125

شكل 6-7 گره n0 در سمت چپ (left) گره n1 قرار دارد ………………………………………………………………… 126

شكل 6-8 گره n0 در سمت چپ و پايين (down-left) گره n1 قرار دارد …………………………………………………. 126

شكل 6-9 در اين شكل صف لينك بين گره هاي 2 و 3، …………………………………………………………………. 127

در ابتداي لينك و در وضعيت قائم نمايش داده مي شود. شكل 6- 10 توپولوژي دلخواهي كه مورد نظر ما است. در اين شكل يك فرستنده TCP ……ا…….. 128

با پروتكل كاربردي FTP وجود دارد كه در زمان 1 ثانيه فعال شده و در 4 ثانيه اتصال قطع مي شود. گيرنده گره n1 است كه به صورت TCPSink تعريف مي شود. لينك ارتباطي يك لينك دوطرفه با پهناي باند 2Mbps و تأخير 10ms و نوع صف بندي
DropTail مي باشد. رنگ بسته هاي ارسالي، قرمز هستند كه در اين شكل نشان داده نشده است.
فصل هفتم : خروجي هاي NS2 ………………………………………..ا……………………………………….132

شكل 7- 1 انواع خروجي هاي NS2 ……………………………ا………………………………………………… 133
شكل 7-2 ساختار يك لينك يكطرفه ………………………………………………………………………………..137

شكل 7-3 با اجراي برنامه net1 دو پنچره مربوط به خروجي انيميشني باز مي شوند ……………………… 139
ط الف) پنچره مربوط به اجراي خروجي برنامه هاي قبلي كه ذخيره شده اند و همچنين ترسيم گرافيكي يك شبكه. ب) پنجره مربوط به اجراي خروجي nam برنامه net1. شكل 7-4 پنجره Server X. با دستور نشان داده شده در شكل به آدرسي كه در آن …………………………………….. 140

برنامه هاي ما ذخيره مي شوند، تغيير مسير مي دهيم. در اين شكل شما مي توانيد تمامي فايل هاي موجود در اين مسير را مشاهده كنيد. nam.out، فايل مورد نظر ما نيز در اينجا ديده مي شود. از طريق اين پنجره مي توان خروجي nam مورد نظر را اجرا كرد.
شكل 7-5 پس از اجراي exe.XWin اين دو پنجره باز مي شوند. ………………………………………………. 141

پنجره (ب) محل اجراي خروجي nam است شكل 7-6 سه پيام خطا در هنگام اجراي XWin ممكن است به شما داده شود ……………….. 142

اين سه پيام، ناشي از نبودن سه جزء است كه بايد آنها را در اين مسير كپي كنيد. شكل 7-7 پنحره هاي nam مربوط به برنامه tcl.net1. …..ا….. 143
شكل 7-8 قسمت هاي مختلف خروجي nam ……………………………………………..ا…………………….144
شكل 7-9 محيط Editor Nam، براي ترسيم يك شبكه …………………………………………………………146
شكل 7- 10 ايجاد يك شبكه با Editor nam و اجراي آن ……………………………………………………….148
شكل 7- 11 قطعه اي از يك فايل tr …………………..ا…………………………………………………………152
شكل 7-12 رديابي بسته با شماره يكتاي “0 0” (دو شماره مربوط به دو فيلد پاياني) …………………….155

شكل 7-13 نتيجه حاصل از شبيه سازي برنامه “tcl.net1” ……………ا………………………………………. 159
فصل هشتم : ابزارهاي AWK، grep و XGraph ……………..ا……………………………………………….. 160
شكل 8- 1 محتواي tr.File1 …..ا………………………………………………………………………………… 162

شكل 8-2 محتواي tr.File2 پس از اجراي دستور (8- 1) يا (8-2) ………………………………………………………. 163

شكل 8-3 محتواي tr.File2 پس از اجراي (8-3) …………………………………………………………………………. 163

شكل 8-4 محتواي tr.File2 پس از دستور (8-4) …………………………………………………………………………. 163

شكل 8-5 محتواي فايل tr.out. ……………….ا…………………………………………………………………………… 166

شكل 8-6 اجراي XGraph براي رسم tr.plot1…………………ا…………………………………………………………. 180

شكل 8-7 نمودار Throughput. ……………………….ا…………………………………………………………………… 181

شكل 8-8 نمودار تأخير. ……………………………………………………………………………………………………. 183

شكل 8-9 توپولوژي مثال 8-.14…………………………………………………………………………………………… 186

شكل 8- 10 نتايج شبيه سازي برنامه “tcl.net2”. ………ا………………………………………………………………… 195

(الف) خروجي nam. (ب) cygwin. (ج) XGraph و نمايش تأخير بسته هاي TCP. شكل 8- 11 توپولوژي مورد نظر براي برنامه “tcl.net3” …………ا…………………………………………………………. 196

شكل 8-12 خروجيهاي برنامه tcl.net3. …………………….ا…………………………………………………………….. 201
ي شكل 8-13 شبكه مورد نظر در مثال 8-16 ……………………………………………………………………………….. 201

شكل 8-14 نتايج شبيه سازي برنامه “tcl.net4”. ………………………………………………………..ا………………… 210

الف) خروجي nam. ب) پنجره ازدحام TCP، كه با استفاده از trace هاي NS رسم شده است. ج) پنجره ازدحام TCP، كه با استفاده از نمونه برداري رسم شده است. د) متوسط نرخ دريافتي در گيرنده هاي TCP.
فصل نهم : شبيه سازي الگوريتمهاي كنترل ازدحام TCP با NS2 ………..ا……………………………………. 211
شكل 9- 1 توپولوژي مورد نظر در برنامه net5 …………ا…………………………………………………………213
شكل 9-2 خروجي nam سناريوي شماره 1 ……………………………………………………………………..216
شكل 9-3 نتايج الگوريتم Tahoe TCP. (الف) پنجره ازدحام. (ب) Throughput ……ا………………………….217
شكل 9-4 نتايج الگوريتم Reno TCP. (الف) پنجره ازدحام. (ب) Throughput ……………..ا…………………218
شكل 9-5 نتايج الگوريتم Vegas TCP. (الف) پنجره ازدحام. (ب) Throughput ………ا………………………. 220
شكل 9-6 نمودار RTT بر حسب زمان اندازه گيري. (الف) در Tahoe (ب) در Reno …………………….ا…… 221

(ج) در Vegas.
شكل 9-7 توپولوژي برنامه tcl.net6 ………ا……………………………………………………………………..222
9-8 تصويري از خروجي nam مربوط به برنامه tcl.net6. ………..ا………………………………………………226
شكل 9-9 نتايج شبيه سازي سناريوي شماره 2، پنجره ازدحام. (الف) Tahoe TCP …………ا…………………227

(ب) Reno TCP (ج) Vegas TCP.
شكل 9- 10 نتايج شبيه سازي سناريوي شماره 2، Throughput ……..ا…………………………………………228

(الف) Tahoe TCP. (ب) Reno TCP (ج) Vegas TCP.
شكل 9- 11 نتايج شبيه سازي سناريوي شماره 2، RTT . (الف) Tahoe TCP ………..ا………………………..229

(ب) Reno TCP (ج) Vegas TCP.
شكل 9-12 توپولوژي مورد نظر در سناريوي شماره 3 ………………………………………………………….. 230
شكل 9-13 خروجي nam برنامه tcl.net7 ……………….ا………………………………………………………236
شكل 9-14پنجره ازدحام (الف) Reno/Reno. (ب) Tahoe/Tahoe………………………………………….ا…..236

(ج) Vegas/Vegas.
شكل 9-15 پنجره ازدحام (الف) Reno/Tahoe. (ب) Vegas/Reno. …………….ا……………………………..237

(ج) Tahoe/Vegas.
شكل 9-16 منحني Throughput. (الف) Reno/Reno. (ب) Tahoe/Tahoe …….ا………………………………238

(ج) Vegas/Vegas.
شكل 9-17 منحني Throughput. (الف) Reno/Tahoe. (ب) Vegas/Reno. ………ا…………………………..239

(ج) Vegas/Vegas.
شكل 9-18 نمودارهاي RTT بر حسب زمان اندازه گيري……………………………………………………….. 241
ك (الف) هر دو فرستنده از نوع Tahoe هستند (Tahoe/Tahoe) (ب) Reno/Reno. (ج) Vegas/Vegas. (د) Reno/Tahoe. (ه) .Vegas/Tahoe (و) .Reno/Vegas
شكل 9-19 توپولوژي مورد نظر در سناريوي شماره 4 …………………………………………………………..243
شكل 9- 20 خروجي nsm برنامه tcl.net8 ……..ت……………………………………………………………….. 250
شكل 9- 21 منحني پنجره ازدحام سه الگوريتم Tahoe، Reno و Vegas در سناريوي شماره 4 ………………. 250
شكل 9-22 منحني Throughput سه الگوريتم Tahoe، Reno و Vegas در سناريوي شماره 4 ……………….. 251
شكل 9-23 نمودار RTT الگوريتمهاي Tahoe، Reno و Vegas در سناريوي شماره 4 …………………………254



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


فایل pdf غیر قابل ویرایش

قیمت25000تومان

خرید فایل word

قیمت35000تومان