مقاله در مورد آشنایی با ساختار و نحوة عملکرد نرمافزار شبیهسازی شبکه فایل ورد (word) دارای 29 صفحه می باشد و دارای تنظیمات در microsoft word می باشد و آماده پرینت یا چاپ است
فایل ورد مقاله در مورد آشنایی با ساختار و نحوة عملکرد نرمافزار شبیهسازی شبکه فایل ورد (word) کاملا فرمت بندی و تنظیم شده در استاندارد دانشگاه و مراکز دولتی می باشد.
این پروژه توسط مرکز مرکز پروژه های دانشجویی آماده و تنظیم شده است
توجه : در صورت مشاهده بهم ریختگی احتمالی در متون زیر ،دلیل ان کپی کردن این مطالب از داخل فایل ورد می باشد و در فایل اصلی مقاله در مورد آشنایی با ساختار و نحوة عملکرد نرمافزار شبیهسازی شبکه فایل ورد (word) ،به هیچ وجه بهم ریختگی وجود ندارد
بخشی از متن مقاله در مورد آشنایی با ساختار و نحوة عملکرد نرمافزار شبیهسازی شبکه فایل ورد (word) :
. مقدمه
1-1 هدف
NS شبیهسازی شئ گراست که بصورت گسسته مبتنی بر رویدادها شبکه را شبیه سازی میکند، این برنامه در دانشگاه برکلی با زبانهای C++ و Otcl ایجاد شده و بسط یافته است. NS اساساً برای پیادهسازی شبکههای محلی و گسترده مفید میباشد. هرچند استفاده از NS برای افرادی که با اصول شبیهسازها آشنا هستند ساده خواهد بود اما بکارگرفتن این برنامه برای کاربران مبتدی استفاده از شبیه سازها کاملاً دشوار است زیرا تعداد وستندات و راهنماهای مناسب برای کاربران
مبتدی بسیار اندک میباشد. با وجود این مستندات زیادی وجود دارد که بوسیله افراد حرفهای در شبیه سازی برای کاربران حرفهای NS نوشته شده است. هدف از این نوشته ارائه برخی ایده از چگونگی عملکرد شبیه سازها، راهنمایی برای توسعه و ادامه راه، آشنایی با اجزای شبکه در کدهای شبیه ساز، چگونگی ایجاد اجزای شبکه جدید و …. میباشد. عمده مطالب با پرداختن به مثالهای ساده و توضیحات مختصر مبتنی بر تجربیات مختلف بیان شده است.
2-1 نمای کلی
NS یک شبیه ساز رویدادگراست که در دانشگاه برکلی برای شبیهسازی شبکههای مبتنی بر IP ایجاد گردیده. در این شبیه ساز پروتکلهای شبکه از قبیل TCP و UDP ، رفتار منابع ترافیک زا مانند Ftp ، Telnet و Web ، مکانیزم مدیریت صف در مسیریابها از قبیل DropTail ، RED و CBQ ، الگوریتمهای مسیریابی مانند Dijkestra و …. قابل اجرا میباشند. همچنین در NS، ارسال چندتایی (Multicast) و برخی از پروتکلهای لایه فیزیکی برای شبیه سازی LANها نیز قابل اجرا میباشند.
پروژه NS در حال حاضر بخشی از پروژه VINT میباشد که ابزارهایی را برای نمایش نتایج شبیه سازی، آنالیز و تبدیل توپولوژهای شبکه ایجاد کرده و توسعه میدهد. توسعه VINT از طریق تولید کنندههایی که بخوبی توانایی بکارگیری NS را دارند. NS رایج کنونی در محیط C++ و Otcl ( Otcl یک زبان اسکریپت با الحاقات شئ گراست که در MIT ایجاد شده است)، نوشته شده و در دسترس میباشد. در این مقاله در مورد ساختار NS مختصری بحث میشود اما چگونگی استفاده بیشتر از NS بطور جزئی با مثالهایی توضیح داده خواهد شد.
شکل 1: NS از دیدگاهی ساده شده برای کاربر
همانگونه که در شکل 1 نشان داده شده است از دیدگاهی ساده شده برای کاربر، NS مفسر اسکریپت TCL بصورت شئ گراست که دارای یک فهرست کننده رویدادهای شبیه سازی و کتابخانه Object های اجزاء شبکه و کتابخانههای راهاندازی و تنظیم شبکه میباشد. بعبارت دیگر برای استفاده از NS شما در زبان اسکریپت Otcl برنامه مینویسید. برای تنظیم و راهاندازی شبکه، کاربر باید اسکریپت Otcl بنویسد که یک فهرست کننده رویداد (زمانبند) را ایجاد کند، برای تنظیم کردن توپولوژیهای شبکه از Objectهای شبکه و توابع موجود در کتابخانهها و بیان منابع ترافیک زا در هنگام شروع و توقف انتقال بستهها از طریق زمانبند رویدادها استفاده میشود. لغت عمودی برای تنظیم شبکه استفاده شده است چون تنظیم نمودن شبکه بصورت عمودی (عمقی) امکان مسیرهای داده را از میان Objectهای شبکه بوسیله تنظیم اشارهگر از یک Object به آدرس Object دیگر، فراهم میکند. هنگامیکه یک کاربر بخواهد یک Object شبکه جدید ایجاد کند بسهولت میتواند با نوشتن یک Object جدید یا ایجاد یک Object مرکب از کتابخانه Object یک Object جدید ایجاد نماید و جریان داده را از طریق Objectها برقرار سازد.
از اجزاء مهم NS در کنار Objectهای شبکه زمتنبند رویدادهاست. هر رویداد در NS یک ID منحصر بفردی با زمان تنظیم شده برای هر بسته است که به یک Object که رویدادها را موجب میشود، اشاره میکند. در NS یک زمنبند رویداد، زمان شبیه سازی و شروع همه رویدادها را نگه میدارد. اجزاء شبکه از طریق ارسال بستهها با یکدیگر ارتباط برقرار میکنند، هرچند که این امر موجب مصرف زمان حقیقی شبیه سازی نمیشود. همه اجزاء شبکه بخشی از زمان شبیه سازی را صرف بکاربردن
بستهها میکنند. برای مثال سوئیچی در شبکه که با 20 میکروثانیه تاٌخیر خروج یک رویداد برای یک بسته شبیه سازی شدهاست، در جدول زمانبندی تاٌخیر هر رویداد برای آن 20 میکروثانیه تنظیم گردیده، زمانبند بعد از 20 میکروثانیه رویداد را از صف خارج کرده و آنرا به عنصر سوئیچ ارسال میکند، که آنهم بعد بسته را یک عنصر مرتبط خروجی مشخص ارسال مینماید. استفاده دیگری که از زمانبند رویداد میشود بعنوان تایمر است. برای مثال TCP نیازمند یک تایمر برای نگهداری زمان
سرآمدن انتقال بستهها میباشد. تنها تفاوت بین تایمرها و زمانبندها، آنست که تایمر مقدار زمان مرتبط با یک بسته را اندازهگیری میکند و یک عمل خاص را به آن بسته بعد از سپری شدن یک زمان مشخص نسبت میدهد.
NS نتنها در Otcl بلکه در C++ نیز نوشته شده است. بدلیل کارآمد بودن، NS مسیرهای عبوری دادهها را از مسیرهای عبوری کنترلی تفکیک ساخته است. بخاطر کاهش دادن بستهها زمان پردازش رویدادها (نه زمان شبیه سازی)، زمانبند و Object های اجزای شبکه اصلی در مسیر دادهها با زبان C++ نوشته و کمپایل شدهاند. این Objectهای کمپایل شده از طریق یک اتصال Otcl در دسترس مفسر Otcl قرار گرفتهاند که هر اتصال Otcl یک Otcl Object جفت برای هر C++ Object ایجاد کرده و توابع کنترلی را میسازند. متغیرهای قابل تنظیم مشخص شده با Objectهای C++ بعنوان توابع و متغیرهای عضو Objectهای Otcl مخابره شده عمل میکنند. بدین طریق کنترل Objectهای C++ به Otcl واگذار شده است. همچنین افزودن توابع عضو و متغیرها به یک اتصال C++ در Otcl Object امکانپذیر است.
سیر دادهها) بطور کامل میتواند در Otcl اجرا شود.
شکل 2: همزادی C++ و Otcl
شکل 2 نشاندهنده یک مثال سلسله مراتبی در C++ و Otcl است. چیزی که در این شکل قابل توجه میباشد Objectهای C++ی هستند که دارای یک اتصال سلسله مراتبی Otcl میباشند همانطور که نشان داده شده یک جفت سلسله مراتبی Otcl Object بسیار مشابه به نوع C++ وجود دارد.
شکل3: معماری NS
شکل 3 معماری کلی NS را نشان میهد. در این تصویر یک کاربر عمومی (نه یک کاربر حرفهای NS) میتواند با قرار گرفتن در گوشه سمت چپ پایین، طراحی و اجرای شبیه سازی را در Tcl با استفاده از Objectهای شبیه سازی موجود در کتابخانه Otcl انجام دهد. زمانبند رویدادها و اغلب اجزای شبکه در C++ اجرا میشوند و از طریق یک اتصال Otcl که با استفاده از Tclcl ایجاد شده در دسترس Otcl قرار میگیرند. تمام این چیزها با یکدیگر NS را که یک مفسر Tcl از نوع شئ گراست را با کتابخانههایش میسازند.
در اینجا چیزی که میتواند جالب توجه باشد چگونگی بدست آوردن نتایج حاصل از شبیه سازی NS است. همانطور که در شکل 1 ملاحظه میشود، زمانیکه یک شبیه سازی پایان مییابد، NS یک یا چند فایل خروجی متنی که محتویات آنها جزئیات دادههای شبیه سازی را شامل میشود، تولید میکند. این دادهها میتواند برای آنالیز کردن شبیه سازی (که در بخش بعد 2 مثال از آنالیز نتایج شبیه سازی ارائه شده است)، یا بعنوان یک ورودی یرای ابزار نمایش گرافیکی شبیه سازی که Network Animator نامیده میشود و در بخشی از پروژه VINT ایجاد شده، بکار رود. NAM (Network Animator)، دارای محیط گرافیکی مناسبی برای کاربران همانند یک برنامه CD Player (که دارای دکمههای Play، Fast Forward و ; است) میباشد. همچنین در NAM یک کنترل کننده سرعت نمایش نیز تعبیه شده است. بعلاوه NAM میتواند اطلاعات را از قبیل توان گذردهی و تعداد افت بستهها در هر اتصال بصورت گرافیکی نمایش دهد هرچند که از نتایج گرافیکی برای آنالیز دقیق شبیه سازی نمیتوان استفاده کرد.
2 مبانی NS
1-2 Otcl : زبانی برای کاربر
همانگونه که در بخش قبل ذکر گردید. NS اساساً یک مفسر Otcl با با کتابخانههای Object شبیه سازی شبکه میباشد. دانستن چگونگی برنامهنویسی در محیط Otcl برای NS مفید خواهد بود که در این بخش مثالهایی به این منظور ارائه خواهد میگردد.
مثال 1 یک اسکریپت Tcl عمومیست که چگونگی ایجاد یک روال و فراخواندن آن، چگونگی مقدار دهی به متغیرها و چگونگی ایجاد یک حلقه را نشان میهد. دانستن اینکه Otcl تعمیم یافته شئ گرایی از Tcl است مشخص خواهد کرد که همه فرمانهای Tcl در Otcl قابل استفادهاند. وابستگی بین Tcl و Otcl عیناً مشابه C و C++ میباشد. برای اجرای این اسکریپت باید از برنامه ex-tcl.tcl در محیط NS استفاده نمود.
مثال1: مثالی از اسکریپت Tcl
در Tcl کلمه کلیدی proc برای تعریف یک روال بکار میرود، بدنبال آن یک نام روال و آرگومانها در دو براکت مشخص میگردند. کلمه کلیدی set برای نسبت دادن مقدار به یک متغیر استفاده میشود. [expr;] مقادیر مشخص شده در براکتهای بعد از کلمه کلیدی را محاسبه میکند. نکته قابل توجه گرفتن مقدار نسبت داده شده به یک متغیر است، $ بهمراه نام متغیر به این منظور بکار میرود . کلمه کلیدی puts رشتههای زیر را درون دو علامت گیومه چاپ میکند.
نتایج حاصل از مثال یک در اینجا نشان داده شده است.
مثال بعدی یک مثال برنامه نویسی شئ گرا در Otcl است. این مثال بسیار ساده است اما روش چگونگی ایجاد کردن و استفاده از Objectها را در Otcl نشان میدهد. شانس نوشتن یک Object برای یک کاربر مبتدی بسیار نادر است. بهرحال از اینرو همه Objectهای NSی که ما در برنامهنویسی شبیه سازی NS استفاده خواهیم کرد، چه در Otcl نوشته شد باشد چه در ++C ، اساساً Objectهای Otcl هستند.
مثال 2: مثالی از اسکریپت Tcl
مثال 2 یک اسکریپت Otcl است که 2 کلاس Object را تعریف میکند. “mom” و “kid” بطوریکه “kid” یک کلاس فرزند از “mom” است و یک تابع عضو برای هر کلاس بنام “greet” تعیین شده است. بعد از تعریف کردن کلاسها هر Object همان لحظه ایجاد و مشخص میگردد، متغیر “age” برای “mom” مقدار 45 و برای “kid” مقدار 15 تنظیم میشود و “greet” تابع عضو هر یک از Objectهای ایجاد شده میباشد. کلمه کلیدی class برای ایجاد یک کلاس شئی و کلمه instproc برای تعریف یک تابع عضو برای یک کلاس Object میباشند.
فرزندان کلاس با استفاده از کلمه کلیدی superclass مشخص شدهاند. در تعریف توابع عضو، $self همانند اشارهگر “this” دز C++ عمل میکند. و instvar چک میکند که آیا نام متغیر در کلاس خودش تعریف شدهاست یا در سوپرکلاسش. اگر نام متغیر گرفته شده کنونی قبلاً تعریف شده باشد، متغیر به نام جدید دیگری ارجاع داده میشود. در نهایت برای ایجاد یک Object کلمه کلیدی new در مثال نشان داده شده است. اجرای برنامه ex-otcl.tcl در محیط NS روی این مثال نتایج زیر را نشان خواهد داد.
2-2 مثال سادهای از شبیه سازی
در این بخش یک اسکریپت ساده NS نشان داده شده و عملیاتی که در هر سطر انجام میپذیرد توضیح داده شده است. مثال 3 یک اسکریپت Otcl است که پیکربنندی شبکه سادهای را ایجاد کرده و عملیات شبیهسازی شکل 4 را انجام میدهد. برای اجرای این شبیهسازی، باید از برنامه ns-simple.tcl در محیط استفاده شود.
شکل4: یک توپولوژی ساده شبکه و سناریوی شبیه سازی
این شبکه دارای 4 گره میباشد که در شبکل فوق دیده میشوند. اتصالات دوطرفه بین n0 و n2 ، n1 و n2 با پهنای باند 2 Mbps و تاٌخیر 10 ms برقرار است. اتصالات دو طرفه بین n2 و n3 دارای 17 Mbps پهنای باند و 20 ms تاٌخیر میباشد. هر گره از یک صف دنباله دار بطول حداکثر 10 خانه استفاده میکند. یک نماینده (agent) ، Tcp به n0 پیوست شده است و یک اتصال به یک نماینده “sink” ، Tcp در n3 برقرار میباشد. بعنوان پیشفرض حداکثر اندازه بستههایی که نماینده Tcp
میتواند تولید نماید 1 Kbyte میباشد. نماینده “sink” Tcp، بستههای ack را برای فرستنده تولید و ارسال میکند و بستههای دریافتی را آزاد میسازد. نماینده “udp” که به n1 پیوست شده به نماینده “null” در n3 متصل گردیده است. یک نماینده “null” فقط بستههای دریافتی را آزاد میکند. یک تولید کننده ترافیک “ftp” و یک تولید کننده ترافیک “cbr” بترتیب به نماینده Tcp و Udp پیوست میشوند، و “cbr” برای تولید بستههای 1 Kbyte در نرخ 1 Mbps پیکربندی شده است. “cbr” برای شروع در ثانیه 01 و توقف در ثانیه 45 و ftp نیز برای شروع در ثانیه 01 و توقف در ثانیه 4 تنظیم شدهاند.
مثال3: مثالی از اسکریپت Tcl
در اینجا اسکریپت بالا را توضیح میدهیم. عموماً یک اسکریپت NS با ایجاد یک Object شبیهساز آغاز میشود.
• set ns [new Simulator]:
یک Object شبیهساز NS ایجاد میکند و آنرا به متغیر ns نسبت میدهد و بعد از آن این عملیاتها انجام میگیرند.
• تعریف کردن شکل بسته
• ایجاد یک زمتنبند
• انتخاب شکل آدرس دهی پیش فرض
Object ؛شبیهساز؛ توابع عضوی دارد که اعمال زیر را انجام میدهند.
• ایجاد Objectهای مرکب از قبیل گرهها، اتصالها
• اتصال Objectهای ایجاد شده اجزاء شبکه
• تنظیم پارامترهای اجزای شبکه
• ایجاد ارتباط بین نمایندهها
• مشخص کردن انتخابهای نمایش NAM
اغلب توابع عضو برای تنظیم و زمانبندی شبیهسازی بکار میروند، هر چند برخی از آنها برای نمایش NAM استفاده میشوند.
• $ns color fid color:
برای تنظیم رنگ بستهها در هنگام گردش در شبکه استفاده میشود. این تابع عضو برای نمایش NAM است وتاٌثیری بر شبیهسازی واقعی ندارد.
• $ns namtrace-all file-descriptor:
این تابع عضو موجب میشود شبیهساز رکوردهای نتیجه را در یک فایل با فرمتی که برای ورودی NAM بکار رود، ذخیره کند.
• proc finish {}:
این تابع بعد از پایان یافتن شبیهسازی فراخوانی میشود. در این تابع پردازشهای بعد از شبیهسازی مشخص شدهاند.
• set n0 [$ns node]:
تابع عضو node یک گره ایجاد میکند. هر گره در NS یک Object مرکب است که دارای آدرس و پورت میباشد و کاربران میتوانند بترتیب با یک آدرس و یک Object پورت گره ایجاد کنند و آنها را با هم اتصال دهند.
• $ns duplex-link node1 node2 bandwidth delay queue-type:
2 اتصال ساده با پهنای باند و تاٌخیر مشخص شده ایجاد میکند و 2 گره مشخص را بهم متصل مینماید. در NS صف خروجی هر گره بعنوان بخشی از یک اتصال محسوب میشوند از اینرو کاربران باید نوع صف را زمان ایجاد اتصالات مشخص کنند. در اسکریپت شبیهسازی بالا، صف دنباله دار استفاده شده است. اگر خواننده بخواهد از یک صف RED استفاده کند، بسادگی فقط کلمه Droptail را با RED جابجا مینماید. همانند یک گره هر اتصال یک Object مرکب میباشد و ک
اربران میتوانند Sub-Objectهای خود و ارتباطات آنها و گرهها را ایجاد نمایند.
• $ns queue-limit node1 node2 number:
این خط محدوده صف را بین دو اتصال سادهای که گره 1 و 2 را بهم متصل میکند، با عددهای مشخص شده تنظیم مینماید.
• $ns duplex-link-op node1 node2 ;:
هر دو خط بعدی برای نمایش NAM استفاده شدهاند. برای مشاهده تاٌثیر این خطوط، کاربر میتواند آنها را بعنوان توضیح مشخص کند و بعد شبیهسازی را تکرار نماید.
حال که تنظیمهای اولیه شبکه انجام شده، نوبت تنظیم نمایندههای ترافیکی از قبیل Tcp و Udp ، منابع ترافیک زا از قبیل ftp و cbr و پیوست آنها بترتیب به گرهها و نمایندهها میباشد.
• set tcp [new Agent/TCP]:
این خط چگونگی ایجاد نماینده را نشان میدهد. عموماً کاربران توانایی ایجاد هر نماینده یا منبع ترافیک زا را به این روش خواهند داشت. نمایندهها و منابع ترافیک زا در حقیقت Objectهای پایهای میباشند (نه مرکب). غالباً در C++ ایجاد شده و به Otcl متصل شدهاند. بدین جهت توابع عضو Object شبیهسازی مشخصی که بتوان این Objectها را در لحظه ایجاد کند، وجود ندارد. برای ایجاد نمایندهها یا منابع ترافیک زا هر کاربر باید نامهای کلاسهای این Object ها را بداند. این اطلاعات در مستندات NS موجود میباشند.
• $ns attach-agent node agent:
تابع عضو attach-agent یک Object نماینده ایجاد شده را به یک Object گره پیوست میکند.
• $ns connect agent1 agent2:
بعد از اینکه 2 نمایندهای که با همدیگر در ارتباط هستند ایجاد شدند نوبت به برقراری اتصال یک شبکه منطقی بیت آنها میرسد. این خط یک اتصال شبکه بوسیله تنظیم آدرس مقصد و آدرس پورت برای هر نماینده برقرار میکند با این فرض تمام پیکربندی شبکه انجام پذیرفته است نوبت به نوشتن یک سناریو برای شبیهسازی میرسد (زمانبندی شبیهسازی). Object شبیهساز دارای تعدادی تابع عضو زمانبندی است. اما غالباً تابع زیر بیشترین کاربرد را در آن دسته دارد.
• $ns at time “string”:
این تابع عضو یک Object شبیهساز زمانبند را برای زمانبندی اجرای رشتههای مشخص شده در زمان شبیهسازی، ایجاد میکند.
در NS معمولاً یک منبع ترافیک زا دادههای واقعی و درستی را انتقال نمیدهند، اما نماینده در نظر گرفته شده را برای آمادگی ارسال دیتا آگاه میسازد و نماینده فقط از مقدار داده جهت انتقال مطلع است و ایجاد و ارسال بستهها را انجام میدهد. بعد از پیکربندی تمام شبکه، زمانبندی و مشخص کردن رولهای بعد از شبیهسازی تنها عمل باقی مانده اجرای شبیهسازیست که آن نیز با $ns run انجام میپذیرد.
3-2 زمانبند رویداد
در این بخش پیرامون زمانبند رویدادهای گسسته در NS صحبت میشود. همانگونه که در بخشهای قبل آمده، استفاده کنندههای اصلی زمانبند رویدادها اجزایی از شبکهاند که تاٌخیرهای بستهها یا زمانهای مورد نیاز آنها را شبیهسازی میکنند. شکل 5 نشان میهد که هر Object شبکه از یک زمانبند رویداد استفاده میکند، بیاد داشته باشیم که یک Object از شبکه که یک رویداد را منتشر
میکند کسی است که بعداً در زمانبندی، یک رویداد را بکار میبرد. همچنین باید دانست که مسیر داده بین Objectهای شبکه و مسیر رویدادها از هم متفاوتند. در حقیقت بستهها بین یک Object شبکه و Object شبکه دیگر با استفاده از روش send(Packet* p) {target_->recv(p)}; برای ارسال و روش recv(Packet*, Handler* h = 0) برای دریافت، دست به دست میشوند.
شکل5: زمانبند رویداد گسسته
NS دارای 2 نوع زمانبند رویداد متفاوت میباشد. نوع همزمان (Real Time) و نوع غیر همزمان (Un-RealTime) . برای یک زمانبند غیر همزمان 3 نوع اجرا برقرار میباشد (نوع فهرستی، کومهای و تقویمی) با این وجود همگی بطور منطقی به یک صورت اجرا میگردند. وجود این تعدد بدلیل سازگاری با متدهای مانده از قبل میباشد. زمانبند غیرهمزمان تقویمی بعنوان پیش فرض تنظیم شده است. در زیر یک مثال از یک زمانبند رویداد مشخص انتخاب شده است،
. . .
set ns [new Simulator]
$ns use-scheduler Heap
. .
دیگر استفاده از زمانبند رویداد، زمانبندی رویدادهای شبیهسازی است، از قبیل اینکه چه وقتی کاربرد ftp شروع میشود، در چه زمان یک شبیهسازی متوقف میشود یا اینکه از آن برای تولید سناریوی شبیهسازی قبل از انجام یک شبیهسازی استفاده میشود. یک Object “AtEvent” در واقع یک کلاس فرزند از رویداد است، بطوریکه دارای یک متغیر اضافی برای نگهداری رشته گرفته شده، میباشد. هر چند که در زمانبند رویداد با آن همانند یک رویداد معمولی رفتار میشود.
هنگامیکه یک شبیهسازی آغاز گردد و یک زمان برای یک tras در صف رویدادها رسید، AtEven به یک “AtEvent handler”داده میشود که یکبار برای همه AtEven ها ایجاد شده است و دستور Otcl مشخص شده بوسیله فیلد string از AtEven اجرا میگردد. در زیر خط زمانبندی رویدادهای شبیهسازی به مثال بالا افزوده شده است.
لیست کل یادداشت های این وبلاگ
مقاله رابطه هوش عاطفی و مهارت های ارتباطی با راهبردهای مدیریت تع
مقاله انواع غنیسازی در فرآورده های ماکارونی تحت فایل ورد (word)
مقاله تبیین رابطه سرمایه اجتماعی با خلق دانش و انتقال دانش سازما
مقاله پارامترهای موثر در استخراج نیکل توسط D2EHPA با اصلاح کننده
[عناوین آرشیوشده]