Bakenam
01-14-2009, 09:59 AM
بسم الله الرحمن الرحيم
قبل البدء. عليك بمعرفة عامة بماهو عنوان البرودكاست Broadcast Address وما هو عنوان اليوني كاست Unicast Address:
عنوان ال broadcast "بشكل عام" هو عنوان عند ارسال اي بيانات اليه من جهاز ما، فان هذه البيانات يتم استقبالها ومعالجتها من جميع الاجهزة الموجودة في نفس الشبكة المحلية مع هذا الجهاز.
عنوان ال unicast "بشكل عام" هو عنوان خاص بجهاز واحد فقط وعند ارسال بيانات اليه من جهاز ما، تتم معالجة هذه البيانات من الجهاز المعني فقط.
نبدأ بتناول أجهزتنا الاربعة بدأ الجهاز الاقل تعقيدا الى الاعلى تعقيدا وذكاء:
1- الهب Hub:
جهاز يستخدم لربط عدة اجهزة مع بعضها البعض في شبكة داخلية ويحتوي على عدة منافذ لربط الاجهزة (Interfaces) ويكون عددها 4 بورتات او 8 او 16 او 24 او 32 غالبا.
يعتبر الهب جهاز غبي لانه لا يجتهد ليعرف ماذا يوجد داخل البيانات المرسلة اليه (تسمى فريمات وتكون على شكل نبضات كهربائية تمثل 0 او 1 "لغة الالة") حيت انه فقط يقوم باستقبال هذه الاشارات الكهربائية ويقوم بتكريرها واعادة ارسالها عبر جميع المنافذ الاخرى بخلاف المنفذ الذي اتت منه هذه البيانات. (يمكن تشبيهه بتوصيلة الكهرباء التي توصل اكثر من جهاز بفيش كهرباء واحد)
الان فكر معي، ماذا يحدث اذا ارسلنا بيانات الى عنوان ال broadcast؟
سيستقبل البيانات ال Hub اولا صح؟ لانه اول جهاز متصل بجهازنا.. ثم سيقوم بارسال هذه البيانات عبر جميع المنافذ (ما عدا المنفذ الذي اتت منه) وبالتالي سوف تستقبل جميع الاجهزة الاخرى هذه البيانات.. وهو المطلوب تماما بما ان البيانات موجهة الى عنوان Broadcast.
لكن، ماذا سيحدث اذا ارسلنا بيانات الى عنوان Unicast (عنوان موجه لجهاز واحد معين في الشبكة المحلية)؟
مرة اخرى سيقوم ال Hub باستقبال هذه البيانات وارسالها عبر جميع المنافذ الاخرى (غبي صح؟ http://www.absba.org/vb/images/smilies/smile.gif ) وستستلم هذه البيانات جميع الاجهزة مرة اخرى لكنها ستقوم بالتغاضي عن هذه البيانات عندما تبدأ بمعالجتها لانها ستكتشف انها ليست موجهة اليها.. ما عدا جهاز واحد طبعا سيقوم بمعالجة البيانات كاملة لانها موجهة اليه.
اليس في هذا اهدار للزمن و لموارد الشبكة (حيث ان الاجهزة لاتستطيع الارسال طالما ان هناك بيانات تمر خلال اسلاك الشبكة .. وهذا عيب اخر لل Hub ساتناوله فيما بعد) .
هذه صورة تبين طريقة عمل الهب وكيف انه يمرر البيانات الى جميع الاجهزة المتصلة به سواء كانت هذه البيانات تهمها ام لا:
http://absba9.absba.org/teamwork2/596480/1.jpg
الخط المقطع يبين ان البيانات ذاهبة الى اجهزة لا تهمها البينات وسوف تبدأ بمعالجتها لتكتشف فيما بعد انها ليست موجهة اليها فتهمل الباقي، مما فيه اهدار للوقت ولسعة (Bandwidth) الشبكة.
الخلاصة:
*يوصل ال Hub مجموعة من الاجهزة ببعضها البعض لتكوين شبكة محلية.
* يقوم بتكرير الاشارة التي تصله عبر منفذ ما ثم يقوم باعادة ارسالها عبر جميع المنافذ الاخرى المتصلة به ما عدا المنفذ الذي اتت منه هذه البيانات، و دون التدقيق في محتواها.
2- الجسر Bridge:
يستخدم لربط شبكتين محليتين مع بعضهما (يربط بين هبين مثلا 2 Hubs بحيث كل Hub يربط مجموعة من الاجهزة) وهو اذكى من الهب.. نأتي لمعرفة كيف ولماذا؟
* معلومة لا بد منها: لكل جهاز به كرت شبكة، يوجد عنوان خاص بهذا الكرت (يسمى MAC Address) ويكون هذا العنوان محفوظ بالكرت من المصنع.. وكل كرت له عنوان لا يوجد في اي كرت ثاني (مثل بصمة اليد) لكي يتم تمييز الجهاز عن غيره (بعبارة اخرى.. هذا هو عنوان ال Unicast الذي تحدثت عنه سابقا)
عندما يرسل اي جهاز اي بيانات خلال الشبكة.. يضع هذا العنوان (Unicast) الخاص به ضمن الفريم المرسل (وللاضافة، فهو يضع ال Unicast الخاص بالجهاز الاخر المرسل اليه ايضا) حتى يعرف الجهاز الذي سيستلم هذه البيانات الى اي عنوان يرد اذا احتاج ان يرد. (مثلا لماذا عندما تقوم بكتابة www.google.com (http://www.google.com/) في المتصفح مثلا لا تأتي هذه الصفحة لجهاز اخر معك في الشبكة الداخلية؟ لان البيانات العائدة الى الشبكة لديك موجهة لعنوان ال MAC الذي يخص جهازك فقط.. هذا كمثال).
هنا يظهر مستوى ذكاء الجسر bridge حيث انه لا يستقبل الاشارة القادمة فقط .. انما يدخل في تفاصيلها حتى يكتشف هذا ال MAC.
و يأتي الجسر بمنفذين فقط غالبا ويستخدم لتقسيم شبكة كبيرة الى قسمين كما اسلفت، ولكن كيف؟
يقوم بعمل جدول (يسمى MAC Table) ثم يقوم بتعبئته قليلا قليلا .. كيف؟
عندما يستقبل بيانت قادمة من خلال المنفذ 1 فيه مثلا، فانه يستخرج عنوان ال MAC للجهاز المرسل (بكسر السين) لهذه البيانات. بهذا يعرف ان هذا الجهاز هو احد الاجهزة الموجودة في الشبكة المتصلة بالمنفذ 1 (ولنسمها الشبكة 1) ويقوم بتخزين هذه المعلومة (الجهاز صاحب ال MAC الفلاني موجود في الشبكة المتصلة بالمنفذ رقم 1) وبهذا بعد ان تقوم جميع الاجهزة بارسال بيانات يكون الجسر قد عرف تقريبا ماهي جميع الاجهزة الموجودة في الشبكة 1 وجميع الاجهزة الموجودة في الشبكة 2. وهذه العملية مستمرة ولا تنتهي طبعا، فاحتمال اضافة جهاز جديد بأي شبكة دائما وارد).
الان، وبالنظر الى الصورة ادناه، لنفترض اننا قمنا بارسال بيانات من جهازنا (الجهاز اقصى اليسار) الى الجهاز A، عندما يستقبل الجسر هذه البيانات المرسلة الى عنوان Unicast والذي يخص الجهاز A فانه سوف يستخرج هذا العنوان من الفريم الذي ارسله جهازنا، ثم يقوم بمقارنته بجدول ال MAC الذي قام بتكوينه، فاذا وجد ان هذا العنوان (والذي يخص الجهاز A) موجود مع جهازنا في نفس الشبكة (لان البيانات جائت عن طريق المنفذ 1 وال MAC للجهاز A ايضا في الشبكة المتصلة بالمنفذ 1) فانه لن يمرر هذه البيانات الى المنفذ 2 وبالتالي لن تصل الى الشبكة 2.. لكن عند ارسالنا بيانات الى الجهاز B، فان الجسر سوف يمررها لعلمه ان الجهاز B متصل بالمنفذ 2 فيه. وهذا هو المنطق الذي يستخدمه الجسر. بسيط لكنه فعال جدا.
عموما، وفي وقتنا الحاضر، فقد انقرض الجسر. وذلك لعدم الحاجة اليه بعد ظهور ال Switch .. فقد كان السبب الرئيسي لاستخدامه هو التقليل من مساوئ ال Hub السابقة الذكر. وبعدم الحاجة لل Hub الان، انعدمت الحاجة للجسر كذلك.
هذه صورة تبين الوظيفة المهمة التي يقوم بها الجسر من اجل تقليل فيضان البيانات الذي لا داعي له بتقسيم الشبكة منطقيا الى قسمين:
http://absba9.absba.org/teamwork2/596480/2.jpg
لاحظ ان البيانات المرسلة الى الجهاز A تم اعتراضها لان الجسر يعلم ان الجهاز A موجود في نفس الشبكة مع الجهاز الذي ارسل البيانات ولا داعي لتمرير هذه البيانات الى الجزء الاخر من الشبكة.
كذلك لاحظ ان ال Hub في كل شبكة مرر البيانات التي اتته الى جميع الاجهزة الموصولة به سواء همتها هذه البيانات ام لا مما يستهلك Bandwidth لاداعي له.
الخلاصة:
*يقوم الجسر بتقسيم الشبكة منطقيا الى اكثر من قسم لتقليل استهلاك ال bandwidth للشبكة.
*يقوم الجسر بتمرير البيانات الى المنفذ الاخر فيه في احد الحالات التالية:
أ- اذا كانت البيانات مرسلة لعنوان ال Broadcast حيث ان هذه البيانات يفترض ان تصل الى جميع الاجهزة.
ب- اذا لم يجد العنوان المرسل اليه في جدول ال MAC الخاص به
ج- اذا وجد العنوان المرسل اليه في جدول ال MAC الخاص به ولكنه في الشبكة الاخرى.
3- السويتش Switch:
السويتش يستخدم نفس المنطق الذي يستخدمه الجسر. ويكون نفس الجدول (MAC Table) ليحدد بأي عنوان MAC (او Unicast "نفس المعنى") يرتبط كل منفذ.
الفرق بين السويتش والجسر هو عدد المنافذ (Interfaces) حيث يقتصر عددها بمنفذين في حالة الجسر، بينما يزيد عددها عن ذلك بكثير في حالة السويتش (4 ، 8 ، 16، 24، 32،...).
الان وبما ان السويتش العبقري يعرف تماما باي منفذ يتصل كل جهاز (تعلم ذلك بنفس طريقة الجسر) اصبح الوضع مختلفا، فاذا ارسل جهاز ما بيانت الى جهاز اخر، فان السويتش يوجه هذه البيانات الى الجهاز المعني فقط (بالنظر الى ال Unicast للجهاز المرسل اليه ومقارنته بجدول ال MAC المخزن فيه) دون ازعاج بقية الاجهزة.
طبعا هناك امتيازات اخرى كثيرة جدا للسويتش تتعلق بالامان والسرعة واستخدام الشبكات الافتراضية VLANs وال Full Duplex غيرها لكننا لسنا بصددها هنا (لكنى سأحاول توضيح الفرق بين ال Full Duplex و ال Half Duplex).
هذه صورة تبين كيف ان السويتش لا يبدد اي Bandwidth في الشبكة حيث ان البيانت تذهب الى الجهاز المعني فقط وتكون الشبكة متوفرة لبقية الاجهزة متى ما شائت ارسال اي بيانات.
http://absba9.absba.org/teamwork2/596480/3.jpg
لكن السويتش يقوم بارسال البيانات التي استقبلها من احد الاجهزة عبر جميع المنافذ الاخرى (ماعدا المنفذ الذي اتت منه) في احدى الحالتين التاليتين:
*اذا كانت البيانات مرسلة الى عنوان Broadcast.
* اذا لم يجد عنوان الجهاز المرسلة اليه البيانات في جدول ال MAC لديه.
4- الراوتر Router:
بينما الهب والجسر والسويتش يعنون بربط الاجهزة داخل شبكة محلية واحدة... يعنى الراوتر بالربط بين الشبكات وبعضها البعض ... وهو الاساس للانترنت كلها (الانترنت ليست سوى مجموعة ضخمة من الشبكات المربوطة ببعضها البعض).
لربط شبكتين في موقعين مختلفين، فانت تبحث عن راوتر.
الراوتر يتعامل بعناوين ال IP ولا يهمه كثيرا عناوين ال MAC، هذه مهمة الاجهزة التي دونه السابقة الذكر.
فكر في طريقة عمله كطريق سفري بين مدينتين، ولنفترض الرياض والدمام، السويتش يربط شوارع الرياض مع بعضها البعض وكذلك شوارع الدمام، بينما يربط الراوتر بين الرياض والدمام (الطريق السفري) دون ان تهمه تفاصيل كل مدينة منهما.
مثال اخر اوضح، البريد .. لارسال اي رسالة تحتاج الى شيئين رئيسين: الرمز البريدي، وصندوق البريد، الرمز البريدي يستخدمه اهل البريد للدلالة على مدينة معينة (شبكة Network) مثلا، بينما الصندوق البريدي يرمز الى بيت معين ومحدد (عنوان MAC ) .. اذن تنتهي مهمة الراوتر بمجرد وصول الرسالة البريدية الى المدينة (الشبكة) المعينة، وتبدأ مسئولية السويتش (مكتب البريد المحلي) والتي تنتهي بتوصيل الرسالة الى صندوق البريد (عنوان ال MAC او ال Unicast) للبيت (الجهاز) المعين.
موضوع الراوتر طويل ومعقد وتوجد كتب يزيد حجمها عن 500 صفحة لهذا الموضوع فقط لذلك لا مجال لشرح ولو جزء عنه هنا.. فقط اعرف انه يهتم بتوصيل البيانات بين الشبكات.
اتمنى ان يكون شرحي واضح للجميع، وانا جاهز للاجابة عن اي استفسارات (ليس عبر الخاص) حتى تعم المنفعة
كل هذه التفاصيل واكثر بكثير تجدونها في اي كتاب مؤهل لشهادة CCNA من سيسكو.
نقطة اخيرة ذكرتها في اول الشرح عن احد عيوب ال Hub والذي يخص عدم امكانية اي جهاز ان يرسل طالما ان هناك بيانات تمر عبر اسلاك الشبكة. هذه نقطة مهمة سأحاول شرحها بصورة مبسطة قدر الامكان لانها مهمة ومقدمة لمعرفة ما هو الفرق بين ال Full Duplex و ال Half Duplex (ايضا تفاصيل اكثر تجدونها في كتب CCNA):
عند ربط مجموعة اجهزة ب Hub (وليس Switch) .. تسمى هذه الشبكة بشبكة ناقل مشترك (Shared Bus) ويكون فيها امكانية حدوث تصادم بيانات اذا قام اكثر من جهاز بارسال بيانات في نفس الوقت.
(اعرف انه كلام غير مفهوم لكن مهلا..)
بما ان الهب يقوم بتكرار الاشارة وارسالها عبر جميع المنافذ (ما عدا المنفذ الذي اتت منه) فان ارسال اي جهاز لاي بيانات يشغل جميع الاسلاك في هذه الشبكة اليس كذلك؟
ماذا سيحدث اذا قام جهازين بارسال بيانات في نفس اللحظة؟
سيحدث تصادم (Collison) للبيانات المرسلة. وتصبح غير مفيدة وسيضطر كل من الجهازين الى اعادة ارسال هذه البيانات مرة اخرى. لكن متى وكيف؟
في هذا النوع من الشبكات، تضطر الاجهزة لاتباع طريقة (او الغوريثم) معينة اسمها CSMA/CD او Carrier Sense Multiple Access with Collision Detect
بالعربي تقريبا (الترجمة مني انا) " تحسس الناقل ذو المداخل المتعددة مع كشف التصادم.
ماذا يقول هذا الالغوريثم:
*يقول في اي شبكة تتشارك فيها عدة اجهزة في ناقل بيانات واحد (مثل شبكة ال Hub) يجب على كل جهاز ان يستمر بتحسس الناقل باستمرار (بما ان الهب يقوم باعادة ارسال البيانات عبر كل المنافذ، فان كل جهاز سيعرف اذا كان هناك جهاز اخر يقوم بارسال بيانات.. او نقول سيعرف اذا كان الناقل "كيبل الشبكة" مشغول).. ويقوم بارسال البيانات عند خلو الناقل من اي بيانات (لاحظ كمية الوقت التي سيضطر الجهاز لانتظارها قبل ان يرسل اذا كانت الشبكة مزحومة).
*اذا ارسل البيانات، فانه يستمر بتحسس الناقل ليتأكد من عدم حدوث تصادم.
*اذا شعر بحدوث تصادم، فانه يرسل اشارة تصادم، هذه الاشارة تنبه بقية الاجهزة بحدوث تصادم وتجبرها على عدم ارسال اي بيانات.
*تقوم جميع الاجهزة بتشغيل مؤقت عشوائي (Timer) يختلف بين جميع الاجهزة.
* عند انتهاء المؤقت ويوجد بيانات لارسالها، يبدأ باتباع نفس هذه الخطوات.
لا بأس بمثال لتوضيح طريقة عمله اكثر:
انت شخصية مهمة http://www.absba.org/vb/images/smilies/cool.gif ولديك مؤتمر صحفي.. عندما وقفت في المنصة تهافت صحفي من مجموعة الصحفين الكبيرة التي تطوق لتوجيه اسئلة لك.. سألك بوضوح واجبت عليه.. عندما انتهيت من الاجابة عليه، تهافت صحفيان هذه المرة لسؤالك، وسألاك تقريبا في نفس الوقت!! عندما بدأ كلاهما بطرح سؤاله في نفس اللحظة تقريبا هناك عدة احتمالات:
الاول ان ينتبه احدهما ان الاخر قد بدأ بالسؤال قبله فيسكت وتسمع انت سؤال الاخر بوضوح
الثاني ان يسكت كلاهما فجأة كل يريد ان يعطي الاخر فرصة ليتم سؤاله من باب اللباقة، لكنهما سكتا في نفس الوقت! كل واحد منهما يعطي من الوقت ما يراه مناسبا للاخر ليبدأ سؤاله من جديد (Timer) ثم يبدأ الذي وضع الفرصة الاضيق للاخر (الاقل لباقة http://www.absba.org/vb/images/smilies/smile.gif )
الاحتمال الثالث ان يصر كل منهما على اكمال سؤاله دون التراجع. المحصلة انك لن تفهم لا هذا ولا ذاك (Collision).
هذا الالغوريثم يتم اتباعه في جميع انواع الشبكات المشاركة (مثال اخر غير الشبكات الموصلة بهب، الشبكات من نوع BUS القديمة، والتي كانت تستخدم كيبل Coax مشترك بين جميع الاجهزة)
يظهر لنا سؤال جميل هو: كيف يعرف الجهاز اذا حصل تصادم ام لا؟
في عالم الشبكات التي تستخدم كيبل من نوع UTP او Unshielded Twisted Pair والتي تستخدم الان في اغلب (ان لم يكن كل) الشبكات المحلية الان (وتسمى Ethernet)، تستخدم الاسلاك 1 و 2 من اجل ارسال البيانات، والاسلاك 3 و 6 من اجل استقبال البيانات بين اجهزة الكمبيوتر.
في كروت الشبكة باجهزة الكمبيوتر ايضا، تستخدم الاسنان المقابلة لهذه الاسلاك، يعني الاسنان 1،2 للارسال و 3،6 للاستقبال. لكن، عندما تكون الشبكة مشاركة (باستخدام هب) فانه عند الارسال، يقوم الكرت بما يسمى (Loop Back) بان يقوم بارسال هذه البيانات عبر الاسنان 1 و 2 الى الهب، لكنه ايضا يرسلها الى نفسه على الاسنان 3 و 6!!!
وبما ان الهب لا يعيد البيانات الى المنفذ الذي اتت منه وانما يرسلها عبر المنافذ الاخرى، فاذا اتت اشارات الى كرت الشبكة (الاسنان 3 و 6) غير التي يرسلها الكرت الى نفسه اثناء ارساله لبيانات ما، فانه يعلم انها اتت من جهاز اخر وبهذا يعلم ان تصادما قد حدث بين البيانات التي ارسلها هو، والبيانات التي ارسلها الجهاز الاخر، واصبحت كلا البيانات غير مفيدة ولابد من اعادة ارسالهاـ حيث لا يمكن ان يرسل هو وجهاز اخر في نفس الوقت. وكذلك لا يمكن ان يرسل ويستقبل في نفس الوقت. ويبدأ باتباع ما يمليه الالغوريثم CSMA/CD عند حدوث تصادم.
عدم قدرة جهاز على الارسال والاستقبال في نفس الوقت تسمى Half Duplex، لذلك فاعلم انه لايمكن العمل ك Full Duplex (الارسال والاستقبال في نفس الوقت) في شبكة مربوطة بهب.
اذا كانت سرعة ارسال واستقبال البيانات 100Mbps في الشبكة، فان هذه السرعة تكون مقسمة بين الاجهزة جميعا في حالة الهب.
بينما في حالة السويتش مثلا، لا حاجة لالغوريثم CSMA/CD حيث يثق كل جهاز بالسويتش ولا يعمل Loop Back عند الارسال حيث ان السويتش لا يكرر الاشارة عبثا، وحتى اذا ارسل جهازين او اكثر بيانات لجهاز واحد،فان السويتش يستخدم ذاكرته (Buffer) لتخزين هذه البيانات مؤقتا ولا يوجد اي احتمال لحدوث تصادم. كل عمليات الارسال فيه تتم بشكل مدروس لذلك فان جميع الاجهزة المتصلة بسويتش تعمل Full Duplex اي يمكن ان ترسل وتستقبل في نفس الوقت ودون الحوجة ل CSMA/CD مما يسرع عمل واداء الشبكة بشكل ملفت وكذلك فان ال Bandwidth اذا كان 100Mbps فهو يعني ان كل جهاز يستخدمه كاملا بدون مشاركة او تقسيم.
هذا يبين الفرق الكبير بين السويتش والهب. انتبهو لما تجدونه بالسوق، معظم السويتشات (كما يصفونها) هي في الحقيقة مجرد هب وليست سويتش على الاطلاق!!
هذه الصورة مثلا لسويتش Edimax
http://www.packingshed.co.nz/prodpics/8/EDmax8PortSwitch2.jpe
هذا مجرد هب على رغم ما كتب عليه.. لا تقعوا ضحية هذا الغش التجاري..
احدى الطرق التي استخدمها انا للتفريق هي بالنظر للمبات التي تبين نقل البيانات.. اذا كانت تضيء معا بنفس التوقيت، فهذا هب اليس كذلك؟
وفق الله الجميع
قبل البدء. عليك بمعرفة عامة بماهو عنوان البرودكاست Broadcast Address وما هو عنوان اليوني كاست Unicast Address:
عنوان ال broadcast "بشكل عام" هو عنوان عند ارسال اي بيانات اليه من جهاز ما، فان هذه البيانات يتم استقبالها ومعالجتها من جميع الاجهزة الموجودة في نفس الشبكة المحلية مع هذا الجهاز.
عنوان ال unicast "بشكل عام" هو عنوان خاص بجهاز واحد فقط وعند ارسال بيانات اليه من جهاز ما، تتم معالجة هذه البيانات من الجهاز المعني فقط.
نبدأ بتناول أجهزتنا الاربعة بدأ الجهاز الاقل تعقيدا الى الاعلى تعقيدا وذكاء:
1- الهب Hub:
جهاز يستخدم لربط عدة اجهزة مع بعضها البعض في شبكة داخلية ويحتوي على عدة منافذ لربط الاجهزة (Interfaces) ويكون عددها 4 بورتات او 8 او 16 او 24 او 32 غالبا.
يعتبر الهب جهاز غبي لانه لا يجتهد ليعرف ماذا يوجد داخل البيانات المرسلة اليه (تسمى فريمات وتكون على شكل نبضات كهربائية تمثل 0 او 1 "لغة الالة") حيت انه فقط يقوم باستقبال هذه الاشارات الكهربائية ويقوم بتكريرها واعادة ارسالها عبر جميع المنافذ الاخرى بخلاف المنفذ الذي اتت منه هذه البيانات. (يمكن تشبيهه بتوصيلة الكهرباء التي توصل اكثر من جهاز بفيش كهرباء واحد)
الان فكر معي، ماذا يحدث اذا ارسلنا بيانات الى عنوان ال broadcast؟
سيستقبل البيانات ال Hub اولا صح؟ لانه اول جهاز متصل بجهازنا.. ثم سيقوم بارسال هذه البيانات عبر جميع المنافذ (ما عدا المنفذ الذي اتت منه) وبالتالي سوف تستقبل جميع الاجهزة الاخرى هذه البيانات.. وهو المطلوب تماما بما ان البيانات موجهة الى عنوان Broadcast.
لكن، ماذا سيحدث اذا ارسلنا بيانات الى عنوان Unicast (عنوان موجه لجهاز واحد معين في الشبكة المحلية)؟
مرة اخرى سيقوم ال Hub باستقبال هذه البيانات وارسالها عبر جميع المنافذ الاخرى (غبي صح؟ http://www.absba.org/vb/images/smilies/smile.gif ) وستستلم هذه البيانات جميع الاجهزة مرة اخرى لكنها ستقوم بالتغاضي عن هذه البيانات عندما تبدأ بمعالجتها لانها ستكتشف انها ليست موجهة اليها.. ما عدا جهاز واحد طبعا سيقوم بمعالجة البيانات كاملة لانها موجهة اليه.
اليس في هذا اهدار للزمن و لموارد الشبكة (حيث ان الاجهزة لاتستطيع الارسال طالما ان هناك بيانات تمر خلال اسلاك الشبكة .. وهذا عيب اخر لل Hub ساتناوله فيما بعد) .
هذه صورة تبين طريقة عمل الهب وكيف انه يمرر البيانات الى جميع الاجهزة المتصلة به سواء كانت هذه البيانات تهمها ام لا:
http://absba9.absba.org/teamwork2/596480/1.jpg
الخط المقطع يبين ان البيانات ذاهبة الى اجهزة لا تهمها البينات وسوف تبدأ بمعالجتها لتكتشف فيما بعد انها ليست موجهة اليها فتهمل الباقي، مما فيه اهدار للوقت ولسعة (Bandwidth) الشبكة.
الخلاصة:
*يوصل ال Hub مجموعة من الاجهزة ببعضها البعض لتكوين شبكة محلية.
* يقوم بتكرير الاشارة التي تصله عبر منفذ ما ثم يقوم باعادة ارسالها عبر جميع المنافذ الاخرى المتصلة به ما عدا المنفذ الذي اتت منه هذه البيانات، و دون التدقيق في محتواها.
2- الجسر Bridge:
يستخدم لربط شبكتين محليتين مع بعضهما (يربط بين هبين مثلا 2 Hubs بحيث كل Hub يربط مجموعة من الاجهزة) وهو اذكى من الهب.. نأتي لمعرفة كيف ولماذا؟
* معلومة لا بد منها: لكل جهاز به كرت شبكة، يوجد عنوان خاص بهذا الكرت (يسمى MAC Address) ويكون هذا العنوان محفوظ بالكرت من المصنع.. وكل كرت له عنوان لا يوجد في اي كرت ثاني (مثل بصمة اليد) لكي يتم تمييز الجهاز عن غيره (بعبارة اخرى.. هذا هو عنوان ال Unicast الذي تحدثت عنه سابقا)
عندما يرسل اي جهاز اي بيانات خلال الشبكة.. يضع هذا العنوان (Unicast) الخاص به ضمن الفريم المرسل (وللاضافة، فهو يضع ال Unicast الخاص بالجهاز الاخر المرسل اليه ايضا) حتى يعرف الجهاز الذي سيستلم هذه البيانات الى اي عنوان يرد اذا احتاج ان يرد. (مثلا لماذا عندما تقوم بكتابة www.google.com (http://www.google.com/) في المتصفح مثلا لا تأتي هذه الصفحة لجهاز اخر معك في الشبكة الداخلية؟ لان البيانات العائدة الى الشبكة لديك موجهة لعنوان ال MAC الذي يخص جهازك فقط.. هذا كمثال).
هنا يظهر مستوى ذكاء الجسر bridge حيث انه لا يستقبل الاشارة القادمة فقط .. انما يدخل في تفاصيلها حتى يكتشف هذا ال MAC.
و يأتي الجسر بمنفذين فقط غالبا ويستخدم لتقسيم شبكة كبيرة الى قسمين كما اسلفت، ولكن كيف؟
يقوم بعمل جدول (يسمى MAC Table) ثم يقوم بتعبئته قليلا قليلا .. كيف؟
عندما يستقبل بيانت قادمة من خلال المنفذ 1 فيه مثلا، فانه يستخرج عنوان ال MAC للجهاز المرسل (بكسر السين) لهذه البيانات. بهذا يعرف ان هذا الجهاز هو احد الاجهزة الموجودة في الشبكة المتصلة بالمنفذ 1 (ولنسمها الشبكة 1) ويقوم بتخزين هذه المعلومة (الجهاز صاحب ال MAC الفلاني موجود في الشبكة المتصلة بالمنفذ رقم 1) وبهذا بعد ان تقوم جميع الاجهزة بارسال بيانات يكون الجسر قد عرف تقريبا ماهي جميع الاجهزة الموجودة في الشبكة 1 وجميع الاجهزة الموجودة في الشبكة 2. وهذه العملية مستمرة ولا تنتهي طبعا، فاحتمال اضافة جهاز جديد بأي شبكة دائما وارد).
الان، وبالنظر الى الصورة ادناه، لنفترض اننا قمنا بارسال بيانات من جهازنا (الجهاز اقصى اليسار) الى الجهاز A، عندما يستقبل الجسر هذه البيانات المرسلة الى عنوان Unicast والذي يخص الجهاز A فانه سوف يستخرج هذا العنوان من الفريم الذي ارسله جهازنا، ثم يقوم بمقارنته بجدول ال MAC الذي قام بتكوينه، فاذا وجد ان هذا العنوان (والذي يخص الجهاز A) موجود مع جهازنا في نفس الشبكة (لان البيانات جائت عن طريق المنفذ 1 وال MAC للجهاز A ايضا في الشبكة المتصلة بالمنفذ 1) فانه لن يمرر هذه البيانات الى المنفذ 2 وبالتالي لن تصل الى الشبكة 2.. لكن عند ارسالنا بيانات الى الجهاز B، فان الجسر سوف يمررها لعلمه ان الجهاز B متصل بالمنفذ 2 فيه. وهذا هو المنطق الذي يستخدمه الجسر. بسيط لكنه فعال جدا.
عموما، وفي وقتنا الحاضر، فقد انقرض الجسر. وذلك لعدم الحاجة اليه بعد ظهور ال Switch .. فقد كان السبب الرئيسي لاستخدامه هو التقليل من مساوئ ال Hub السابقة الذكر. وبعدم الحاجة لل Hub الان، انعدمت الحاجة للجسر كذلك.
هذه صورة تبين الوظيفة المهمة التي يقوم بها الجسر من اجل تقليل فيضان البيانات الذي لا داعي له بتقسيم الشبكة منطقيا الى قسمين:
http://absba9.absba.org/teamwork2/596480/2.jpg
لاحظ ان البيانات المرسلة الى الجهاز A تم اعتراضها لان الجسر يعلم ان الجهاز A موجود في نفس الشبكة مع الجهاز الذي ارسل البيانات ولا داعي لتمرير هذه البيانات الى الجزء الاخر من الشبكة.
كذلك لاحظ ان ال Hub في كل شبكة مرر البيانات التي اتته الى جميع الاجهزة الموصولة به سواء همتها هذه البيانات ام لا مما يستهلك Bandwidth لاداعي له.
الخلاصة:
*يقوم الجسر بتقسيم الشبكة منطقيا الى اكثر من قسم لتقليل استهلاك ال bandwidth للشبكة.
*يقوم الجسر بتمرير البيانات الى المنفذ الاخر فيه في احد الحالات التالية:
أ- اذا كانت البيانات مرسلة لعنوان ال Broadcast حيث ان هذه البيانات يفترض ان تصل الى جميع الاجهزة.
ب- اذا لم يجد العنوان المرسل اليه في جدول ال MAC الخاص به
ج- اذا وجد العنوان المرسل اليه في جدول ال MAC الخاص به ولكنه في الشبكة الاخرى.
3- السويتش Switch:
السويتش يستخدم نفس المنطق الذي يستخدمه الجسر. ويكون نفس الجدول (MAC Table) ليحدد بأي عنوان MAC (او Unicast "نفس المعنى") يرتبط كل منفذ.
الفرق بين السويتش والجسر هو عدد المنافذ (Interfaces) حيث يقتصر عددها بمنفذين في حالة الجسر، بينما يزيد عددها عن ذلك بكثير في حالة السويتش (4 ، 8 ، 16، 24، 32،...).
الان وبما ان السويتش العبقري يعرف تماما باي منفذ يتصل كل جهاز (تعلم ذلك بنفس طريقة الجسر) اصبح الوضع مختلفا، فاذا ارسل جهاز ما بيانت الى جهاز اخر، فان السويتش يوجه هذه البيانات الى الجهاز المعني فقط (بالنظر الى ال Unicast للجهاز المرسل اليه ومقارنته بجدول ال MAC المخزن فيه) دون ازعاج بقية الاجهزة.
طبعا هناك امتيازات اخرى كثيرة جدا للسويتش تتعلق بالامان والسرعة واستخدام الشبكات الافتراضية VLANs وال Full Duplex غيرها لكننا لسنا بصددها هنا (لكنى سأحاول توضيح الفرق بين ال Full Duplex و ال Half Duplex).
هذه صورة تبين كيف ان السويتش لا يبدد اي Bandwidth في الشبكة حيث ان البيانت تذهب الى الجهاز المعني فقط وتكون الشبكة متوفرة لبقية الاجهزة متى ما شائت ارسال اي بيانات.
http://absba9.absba.org/teamwork2/596480/3.jpg
لكن السويتش يقوم بارسال البيانات التي استقبلها من احد الاجهزة عبر جميع المنافذ الاخرى (ماعدا المنفذ الذي اتت منه) في احدى الحالتين التاليتين:
*اذا كانت البيانات مرسلة الى عنوان Broadcast.
* اذا لم يجد عنوان الجهاز المرسلة اليه البيانات في جدول ال MAC لديه.
4- الراوتر Router:
بينما الهب والجسر والسويتش يعنون بربط الاجهزة داخل شبكة محلية واحدة... يعنى الراوتر بالربط بين الشبكات وبعضها البعض ... وهو الاساس للانترنت كلها (الانترنت ليست سوى مجموعة ضخمة من الشبكات المربوطة ببعضها البعض).
لربط شبكتين في موقعين مختلفين، فانت تبحث عن راوتر.
الراوتر يتعامل بعناوين ال IP ولا يهمه كثيرا عناوين ال MAC، هذه مهمة الاجهزة التي دونه السابقة الذكر.
فكر في طريقة عمله كطريق سفري بين مدينتين، ولنفترض الرياض والدمام، السويتش يربط شوارع الرياض مع بعضها البعض وكذلك شوارع الدمام، بينما يربط الراوتر بين الرياض والدمام (الطريق السفري) دون ان تهمه تفاصيل كل مدينة منهما.
مثال اخر اوضح، البريد .. لارسال اي رسالة تحتاج الى شيئين رئيسين: الرمز البريدي، وصندوق البريد، الرمز البريدي يستخدمه اهل البريد للدلالة على مدينة معينة (شبكة Network) مثلا، بينما الصندوق البريدي يرمز الى بيت معين ومحدد (عنوان MAC ) .. اذن تنتهي مهمة الراوتر بمجرد وصول الرسالة البريدية الى المدينة (الشبكة) المعينة، وتبدأ مسئولية السويتش (مكتب البريد المحلي) والتي تنتهي بتوصيل الرسالة الى صندوق البريد (عنوان ال MAC او ال Unicast) للبيت (الجهاز) المعين.
موضوع الراوتر طويل ومعقد وتوجد كتب يزيد حجمها عن 500 صفحة لهذا الموضوع فقط لذلك لا مجال لشرح ولو جزء عنه هنا.. فقط اعرف انه يهتم بتوصيل البيانات بين الشبكات.
اتمنى ان يكون شرحي واضح للجميع، وانا جاهز للاجابة عن اي استفسارات (ليس عبر الخاص) حتى تعم المنفعة
كل هذه التفاصيل واكثر بكثير تجدونها في اي كتاب مؤهل لشهادة CCNA من سيسكو.
نقطة اخيرة ذكرتها في اول الشرح عن احد عيوب ال Hub والذي يخص عدم امكانية اي جهاز ان يرسل طالما ان هناك بيانات تمر عبر اسلاك الشبكة. هذه نقطة مهمة سأحاول شرحها بصورة مبسطة قدر الامكان لانها مهمة ومقدمة لمعرفة ما هو الفرق بين ال Full Duplex و ال Half Duplex (ايضا تفاصيل اكثر تجدونها في كتب CCNA):
عند ربط مجموعة اجهزة ب Hub (وليس Switch) .. تسمى هذه الشبكة بشبكة ناقل مشترك (Shared Bus) ويكون فيها امكانية حدوث تصادم بيانات اذا قام اكثر من جهاز بارسال بيانات في نفس الوقت.
(اعرف انه كلام غير مفهوم لكن مهلا..)
بما ان الهب يقوم بتكرار الاشارة وارسالها عبر جميع المنافذ (ما عدا المنفذ الذي اتت منه) فان ارسال اي جهاز لاي بيانات يشغل جميع الاسلاك في هذه الشبكة اليس كذلك؟
ماذا سيحدث اذا قام جهازين بارسال بيانات في نفس اللحظة؟
سيحدث تصادم (Collison) للبيانات المرسلة. وتصبح غير مفيدة وسيضطر كل من الجهازين الى اعادة ارسال هذه البيانات مرة اخرى. لكن متى وكيف؟
في هذا النوع من الشبكات، تضطر الاجهزة لاتباع طريقة (او الغوريثم) معينة اسمها CSMA/CD او Carrier Sense Multiple Access with Collision Detect
بالعربي تقريبا (الترجمة مني انا) " تحسس الناقل ذو المداخل المتعددة مع كشف التصادم.
ماذا يقول هذا الالغوريثم:
*يقول في اي شبكة تتشارك فيها عدة اجهزة في ناقل بيانات واحد (مثل شبكة ال Hub) يجب على كل جهاز ان يستمر بتحسس الناقل باستمرار (بما ان الهب يقوم باعادة ارسال البيانات عبر كل المنافذ، فان كل جهاز سيعرف اذا كان هناك جهاز اخر يقوم بارسال بيانات.. او نقول سيعرف اذا كان الناقل "كيبل الشبكة" مشغول).. ويقوم بارسال البيانات عند خلو الناقل من اي بيانات (لاحظ كمية الوقت التي سيضطر الجهاز لانتظارها قبل ان يرسل اذا كانت الشبكة مزحومة).
*اذا ارسل البيانات، فانه يستمر بتحسس الناقل ليتأكد من عدم حدوث تصادم.
*اذا شعر بحدوث تصادم، فانه يرسل اشارة تصادم، هذه الاشارة تنبه بقية الاجهزة بحدوث تصادم وتجبرها على عدم ارسال اي بيانات.
*تقوم جميع الاجهزة بتشغيل مؤقت عشوائي (Timer) يختلف بين جميع الاجهزة.
* عند انتهاء المؤقت ويوجد بيانات لارسالها، يبدأ باتباع نفس هذه الخطوات.
لا بأس بمثال لتوضيح طريقة عمله اكثر:
انت شخصية مهمة http://www.absba.org/vb/images/smilies/cool.gif ولديك مؤتمر صحفي.. عندما وقفت في المنصة تهافت صحفي من مجموعة الصحفين الكبيرة التي تطوق لتوجيه اسئلة لك.. سألك بوضوح واجبت عليه.. عندما انتهيت من الاجابة عليه، تهافت صحفيان هذه المرة لسؤالك، وسألاك تقريبا في نفس الوقت!! عندما بدأ كلاهما بطرح سؤاله في نفس اللحظة تقريبا هناك عدة احتمالات:
الاول ان ينتبه احدهما ان الاخر قد بدأ بالسؤال قبله فيسكت وتسمع انت سؤال الاخر بوضوح
الثاني ان يسكت كلاهما فجأة كل يريد ان يعطي الاخر فرصة ليتم سؤاله من باب اللباقة، لكنهما سكتا في نفس الوقت! كل واحد منهما يعطي من الوقت ما يراه مناسبا للاخر ليبدأ سؤاله من جديد (Timer) ثم يبدأ الذي وضع الفرصة الاضيق للاخر (الاقل لباقة http://www.absba.org/vb/images/smilies/smile.gif )
الاحتمال الثالث ان يصر كل منهما على اكمال سؤاله دون التراجع. المحصلة انك لن تفهم لا هذا ولا ذاك (Collision).
هذا الالغوريثم يتم اتباعه في جميع انواع الشبكات المشاركة (مثال اخر غير الشبكات الموصلة بهب، الشبكات من نوع BUS القديمة، والتي كانت تستخدم كيبل Coax مشترك بين جميع الاجهزة)
يظهر لنا سؤال جميل هو: كيف يعرف الجهاز اذا حصل تصادم ام لا؟
في عالم الشبكات التي تستخدم كيبل من نوع UTP او Unshielded Twisted Pair والتي تستخدم الان في اغلب (ان لم يكن كل) الشبكات المحلية الان (وتسمى Ethernet)، تستخدم الاسلاك 1 و 2 من اجل ارسال البيانات، والاسلاك 3 و 6 من اجل استقبال البيانات بين اجهزة الكمبيوتر.
في كروت الشبكة باجهزة الكمبيوتر ايضا، تستخدم الاسنان المقابلة لهذه الاسلاك، يعني الاسنان 1،2 للارسال و 3،6 للاستقبال. لكن، عندما تكون الشبكة مشاركة (باستخدام هب) فانه عند الارسال، يقوم الكرت بما يسمى (Loop Back) بان يقوم بارسال هذه البيانات عبر الاسنان 1 و 2 الى الهب، لكنه ايضا يرسلها الى نفسه على الاسنان 3 و 6!!!
وبما ان الهب لا يعيد البيانات الى المنفذ الذي اتت منه وانما يرسلها عبر المنافذ الاخرى، فاذا اتت اشارات الى كرت الشبكة (الاسنان 3 و 6) غير التي يرسلها الكرت الى نفسه اثناء ارساله لبيانات ما، فانه يعلم انها اتت من جهاز اخر وبهذا يعلم ان تصادما قد حدث بين البيانات التي ارسلها هو، والبيانات التي ارسلها الجهاز الاخر، واصبحت كلا البيانات غير مفيدة ولابد من اعادة ارسالهاـ حيث لا يمكن ان يرسل هو وجهاز اخر في نفس الوقت. وكذلك لا يمكن ان يرسل ويستقبل في نفس الوقت. ويبدأ باتباع ما يمليه الالغوريثم CSMA/CD عند حدوث تصادم.
عدم قدرة جهاز على الارسال والاستقبال في نفس الوقت تسمى Half Duplex، لذلك فاعلم انه لايمكن العمل ك Full Duplex (الارسال والاستقبال في نفس الوقت) في شبكة مربوطة بهب.
اذا كانت سرعة ارسال واستقبال البيانات 100Mbps في الشبكة، فان هذه السرعة تكون مقسمة بين الاجهزة جميعا في حالة الهب.
بينما في حالة السويتش مثلا، لا حاجة لالغوريثم CSMA/CD حيث يثق كل جهاز بالسويتش ولا يعمل Loop Back عند الارسال حيث ان السويتش لا يكرر الاشارة عبثا، وحتى اذا ارسل جهازين او اكثر بيانات لجهاز واحد،فان السويتش يستخدم ذاكرته (Buffer) لتخزين هذه البيانات مؤقتا ولا يوجد اي احتمال لحدوث تصادم. كل عمليات الارسال فيه تتم بشكل مدروس لذلك فان جميع الاجهزة المتصلة بسويتش تعمل Full Duplex اي يمكن ان ترسل وتستقبل في نفس الوقت ودون الحوجة ل CSMA/CD مما يسرع عمل واداء الشبكة بشكل ملفت وكذلك فان ال Bandwidth اذا كان 100Mbps فهو يعني ان كل جهاز يستخدمه كاملا بدون مشاركة او تقسيم.
هذا يبين الفرق الكبير بين السويتش والهب. انتبهو لما تجدونه بالسوق، معظم السويتشات (كما يصفونها) هي في الحقيقة مجرد هب وليست سويتش على الاطلاق!!
هذه الصورة مثلا لسويتش Edimax
http://www.packingshed.co.nz/prodpics/8/EDmax8PortSwitch2.jpe
هذا مجرد هب على رغم ما كتب عليه.. لا تقعوا ضحية هذا الغش التجاري..
احدى الطرق التي استخدمها انا للتفريق هي بالنظر للمبات التي تبين نقل البيانات.. اذا كانت تضيء معا بنفس التوقيت، فهذا هب اليس كذلك؟
وفق الله الجميع