مبحث “کنترل ازدحام” در شبکه های کامپیوتری، مبحث گسترده ای است که امروزه تحقیقات بسیاری از پژوهشگران صنعت شبکه را به خود اختصاص داده است. هدف از این پایان نامه نیز، بررسی و شبیه سازی الگوریتمهای کنترل ازدحام در شبکه های کامپیوتری است. شبیه ساز مورد استفاده برای ارائه این پایان نامه، شبیهساز 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تومان