محاكي الشبكات بين الماضي والحاضر
بدأ هذا المحاكي في عام 1989 بواسطة مشروع 171111 والذي هو شكل من أشكال
المحاكي 8111011118101 1181770116 18601 في جامعة كاليفورنيا في معامل بركلي
1,8 136:1:[6<7 وهذا هو شعار الجامعة.
ويبلغ عدد المستخدمين لهذا المحاكي في عام 2006 كالتالي :
أكثر من 1000 معهد في أكثر من خمسين دولة وأكثر من
0 مستخدم حول العالم ويصل شهرياً حوالي 300 رسالة
على الموقع الرئيسي للجامعة .
كما يوجد عدد من الإصدارات آخرها الإصدارة 118-211111006-2.33 وفي عام 2008
في شهر 006[ تم تطوير 1082 إلى الإصدار الجديد والذي تمت تسميته 1583 والذي إلى
كما يتم عقد ورشة عمل كل سنتين والتي تعقد في اليونان في مدينة أثينا ؛ والتي بدأت
سنة 2006 وحققت نجاحاً كبيراً ثم عقدت الورشة الثانية في سنة 2008 ؛ وأطلق عليها
(182 5100ء117152)011 ؛ وكان الهدف الرئيسي لهذه الورشة جلب الباحثين في
مجال الشبكات من المجالين الصناعي والأكاديمي ليناقشوا التطور الحاصل ولكي
يحددوا الاتجاه المستقبلي لمحاكاة الشبكات 5111011181101١ 161170116 .
أساسيات محاكي الشبكات
يعتبر المحاكي غني جدآً بالعديد من مكونات وبروتوكولات الشبكات والتي يتم
وكما تلاحظ هناك فرق شاسع بين اللغتين فلغة ++0 هي لغة تستخدم 001١7116:
فاستخدام لغة +04 لكفاءتها وسرعتها في التنفيذ وكتبت بها البروتوكولات والمكونات
الثابتة والتي لا تتغير وتحتاج لسرعة في التنفيذ بينما لغة ,101 مع كونها بطيئة في
التنفيذ لكن سريعة في التعديل وهي شيء مهم بالنسبة للمستخدم فكتبت بها أوامر
المستخدم مما جمع بين سرعة التنفيذ وسرعة التعديل من هاتين اللغتين .
- طريقة المحاكاة | المحاا
محاكي 11582 هو عبارة عن 51101118101 678111 01501618 يعني يستخدم مفهوم
الأحداث المتقطعة والتي تعتبر واحدة من طرق المحاكاة ؛ حيث يتم جدولة الأحداث
باستخدام نوع معين من المجدولات بأزمانها ويتم ترتيبها وحسب هذه الأزمان يحصل
الحدث ويتم معالجته ويأخذ رقم متفرد 10 .
فمثلاً في الزمن 0.2 يتم إرسال حزمة من نوع 717 فعندما تصل ساعة المحاكاة إلى
هذا الزمن يتم ربط الإجراء المعالج برقم هذا الحدث ليقوم بمعالجته ؛ ويسمى الإجراء
الذي يقوم بمعالجة الأحداث :11071016 ؛ ويحتوى المحاكي على مجموعة من الأصناف
5 التي ترتبط مع بعضها البعض وتساعد في عملية التخاطب ما بين اللغتين.
يعتبر هذا الكلاس هو الكلاس الأساسي في المحاكي والذي عن طريقة تتم عملية
المحاكاة واختيار النوع المناسب من أنواع المجدولات .
وبعد ذلك نداء العديد من الدوال المندرجة تحته لإنشاء الشبكة وتهيئتها وتنسيقها .
أساسيات برمجة 161
تندرج تحت هذا التصنيف مثل 58:1 ,ااا ,18178501101 ,0110 وهي عبارة عن
لغة تستخدم مفسر لتفسير أوامرها ولكي تدعم مفهوم 01180160 01802 لذلك تم
المحاكي هي دوال مكتوبة بلغة [010 وهي تقوم بدورها بالإتصال بلغة ++0 ومن ثم
تنفيذ أوامر المستخدم.
ف نذكر فقط الأوامر والتعبيرات التي نحتاج إليها في هذا الكتاب فهي لغة برمجة
مستقلة بذاتها وهي تشمل :
- عبارات التحكم
- حلقة التكرار وأنواعها
- التعامل مع الملفات .
طريقة تعريف المتغيرات في لغة ,آ10 هي :
نضع عبارة ]86 ثم | سم المتغير ثم بعد ذلك القيمة التي نريد وضعها في المتغير وهي
إما تكون قيمة أو قيمة من متغير آخر أو قيمة من تعبير رياضي أو سلسلة نصية لأنه لا
يوجد نوع بيانات للمتغير وهذه هي ميزة لغات 18118018865 5012700118 فهي لا تحدد
نوع معين لنوع البيانات مثلا 3001617 ,201016 , 1081 ,1718861 وغيره بل تقوم
بأخذ نوع البيانات حسب القيمة المسندة للمتغير .
مثال :
5125 فحم :الترقع1
نلاحظ هنا العبارتين الأولى والثانية تعريف متغيرين اج وفي الثالثة قمنا بتغيير قيمة 8
إلى القيمة الموجودة في ا وهي 4 وفي التعبير الذي يليه قمنا بوضع تعبير رياضي
يضيف 5 إلى قيمة (ا ويضع الناتج في 8 وفي آخر تعبير قمنا بوضع قيمة «ا وألحقنا به
كسر 0.3 لتصبح القيمة 4.3 .
التعبيرات الرياضية للقيام بالعمليات الحسابية من جمع وطرح وضرب وقسمة وغيره
من العمليات ويتم تعريف الكلمة المحجوزة بلغة ,[10 وهي :6:00 وهي اختصار
لعبارة 8700126558101 وتوضع بين القوسين [001658100<© 001<©] ثم بعدها التعبير
الرياضي .
مثال :
فهنا قمنا بتعريف متغير « به القيمة 5 ثم المتغير 8 وبه قيمة حسابية وهي 5 مجموع
لها قيمة المتغير (ا وهي 5 ومضروبه في 2 وتصبح قيمة 8 تساوي 15.
ثالثاً : عبارات التحكم :
صيغة شرط]1:
مثال :
رابعاً : حلقة التكرار وأنواعها :
حلقة 160 101 :
صيغة الحلقة : | أدرتددة أمرتدعة سودت أدرتددة 101
مثال :
(...) 2< علناب
حلقة نزوه1 د[ع10188:
وهي حلقة تعمل مع مصفوفة أو سلسلة من العناصر .
مثال :
0 لماه 56
1 23 1) مسد طعمع:10
فناتج تنفيذ هذه الحلقة هو أن المتغير 10101 سيأخذ القيمة 15 .
وطريقة تعريف الإجراء هي :
مثال :
لتعريف إجراء يستقبل قيمة واحدة ويقوم بطرح واحد منها :
ولا يوجد عبارة 161001 في الإجراء فهو يقوم بإرجاع القيمة ضمنياً في أخر عبارة
سادساً : التعامل مع الملفات :
طريقة فتح ملف والتعامل معه كالتالي :
في السطر الأول عرفنا متغير عادي اسمه 01100101516 ثم قمنا بفتح ملف اسمه
© وهو الصلاحية التي نريدها هنا الكتابة /» اختصار 0116 .
طريقة كتابة برنامج في 1752:
في 1152 وهنا سنكتب بلغة 0401 .
برنامج في 1152 يتكون من الخطوات التالية:
لل [يستعمم طناء5]
ا (سمتادعتاتة) مقلم عام0:8
تعتبر الخطوات التي بين الأقواس [] ليست أساسية في كتابة أي برنامج وهي عبارة
عن مواضيع متقدمة ولكن ذكرتها للمعرفة فقط ولن تشرحها في هذه الإصدارة .
وهي عبارة عن إنشاء 011804 من كلاس 5101118101 والذي من خلاله سيتم إجراء
عملية المحاكاة ؛ ويكون بالطريقة التالية :
حيث ع(( هنا عبارة عن متغير ولا يشترط تسميته بهذا الاسم ولكن لسهولة التعامل معه
ولأنه يأخذ اسم المحاكي وهو الشائع في الإستخدام بالنسبة للأمثلة في الكتب؛ فيمكنك
تعريف أي اسمه ترغبه أو تفضله .
في هذه الخطوة يتم تعريف شكل الشبكة 100010 وربطها مع بعضها البعض.
هذه الخطوة يتم إنشاء البروتوكول الذي سيتم استخدامه في الإرسال
200,110 وتحديد المصدر والهدف أو المصب لأي نوع منهما ويسمى 86:17
ا («عتادمتاتنة) مقلم عاد0:8
يتم في هذه الخطوة يتم تعريف تطبيق يقوم بإرسال حزم بشكل معين مثل
عاء...1731 ب031 ,باعدا17170,1 وإسناده بالنسبة لمصدر 6110ع8.
ويتم هنا جدولة الأحداث يعني التطبيقات متى تبداً ومتى تنتهي ومتى يتم نداء دالة
إنهاء المحاكاة وتكون بالصيغة:
يعني الحدث هنا ممكن يكون أمر عادي من أوامر 105/001 ويمكن نداء دالة أو إجراء
من خلاله وتكون بين علامتي التنصيص "" ؛ وإليك بعض الأمثلة :
يث دالة 110151 يتم كتابتها في البرنامج ومحتوياتها سيتم شرحها في المثال العملي
بينما تطبيق (2 فيتم تحديد وقت البداية ووقت النهاية كما هو موضح.
بداية المحاكاة وذلك بالعبارة التالية
إنشاء شبكة وربطها :
الشبكة بطبيعتها تتكون من أجهزة وفي المحاكي يتم تعريف الأجهزة على شكل عقد
100 ؛ فعلى سبيل المثال إذا أردنا تعريف شبكة مكونة ثلاثة أجهزة وجهاز :10116
نقوم بكتابتها كالتالي :
[علعمد قدد؟] :101116 561
حيث كلمة 11006 هي عبارة عن كلمة محجوزة تخبر المفسر على أن هذا المتغير 1:61
هو من نوع الصنف 10608 أما عبارة 8:15 فنحن في الخطوة الأولى قمنا بتعريف
متغير اسمه 115 وهو عبارة عن 01664 من الكلاس 51101118401 الذي يحتوى كل
التفاصيل المتعلقة بعملية المحاكاة فنقوم باختيار الصنف أو الدالة المناسبة منه وذلك عن
طريق 01858/00160100 8:05 فإما كلاس أو دالة .
قمنا حتى الآن فقط بتعريف الأجهزة لكن لم نقم بربطها ؛ فللقيام بربطها نستخدم الدالة
كلدئنا.16زبل والتي تعني وجود رابط من الجهتين رابط من الجهاز الأول إلى الجهاز
الثاني ومن الجهاز الثاني إلى الجهاز الأول ؛ إذا كنا نريد رابط واحد فقط نستخدم الدالة
8111016-11 وهي تعني رابط واحد فقط ؛ أما كيفية الكتابة فصيغته على النحو
التالي :
1م1010 قنصد2 ططصدك اتوت 5001 علستاجدة 1دزتتل قري
دالة كلاونا-*16تزنل تستقبل مجموعة من 12181116181 وهي سعة الناقل ومقدار التأخير
18016 هو عبارة عن مجموعة من الخوارزميات مثل 039 ,1221 ,اث 11071
يمكن الرجوع إلى الإنترنت لمعرفة كيف تعمل هذه الخوارزميات وليس المجال مجال
تفصيلها لكن نذكر واحدة فقط وهي 127017111 والتي في عملها تعني امتلاء 0116116
فتقوم هذه الخوارزمية بحذف الحزم من الذيل أو من الآخر ؛ حسنا نوضحها بشكل