استكشاف عملية توصيل الرزم
نحن نعلم أنَّ الطبقة الأولى تتعامل مع الوسائط (media) الفيزيائيّة؛ وهي تتعلق بالبتات والإشارات (signals) والواصلات (connectors) والأكبال وغيرها من المكّونات الفيزيائيّة. أمثلة هي: الاتصالات التسلسلية (serial connections) لشبكات WAN، والمُكرِّرات (repeaters) للشبكات الضوئية (optical networks)، والبروتوكولات الأخرى والمواصفات الفيزيائية للبطاقات الشبكيّة، التي قد تكون مثلًا «إيثرنت» (Ethernet).
أجهزة الطبقة الثانية
نتعامل في الطبقة الثانية مع الوصول إلى الوسائط (media)، لذلك نقوم بتقسيم المعلومات إلى إطارات (framing of information) لتوفيرها إلى الطبقة الفيزيائية؛ ونقوم أيضًا في الطبقة الثانية بإسناد العناوين، وإنشاء الجسور، والتبديل (switching) لتجاوز محدودية الوسائط الفيزيائيّة ولتجميع اتصالاتٍ متعددة من عدِّة نهايات؛ وبهذا تملك البطاقة الشبكيّة وصولًا «ذكيًّا» إلى الوسائط؛ وتتمكن المبدِّلات من وصل عدِّة أجهزة؛ وتُستخدَم الجسور تقليديًّا (مع غيرها من الأجهزة) لزيادة المسافة العظمى لبعض الوسائط الفيزيائية.
إسناد العناوين (addressing) في الطبقة الثانية مهمٌ جدًا، لأننا نتكلم عن اتصالات «النّد-للنّد» (peer-to-peer)؛ ومثالٌ عن ذلك هو عنوان MAC (media access control address) في شبكات إيثرنت؛ فجميع النهايات الشبكيّة تملك عنوان MAC، وحتى في بعض الأحيان يكون للمبدِّلات (switches) عناوين MAC.
أجهزة الطبقة الثالثة
يمكن أن تُفصَل الشبكات عن بعضا اعتمادًا على المسافة أو المكان الجغرافي، أو ربما تريد تقسيم شبكتك إلى عدِّة أجزاء؛ ففي هذه المرحلة، ستحتاج إلى جهازٍ في الطبقة الثالثة للقيام بدور التوجيه واختيار أفضل طريق؛ وستتمكن النهايات الشبكيّة من اتخاذ قراراتٍ عن مكان إرسال الرزم عبر طبقة الشبكة؛ فلو كانت الوجهة في قسمٍ أو شبكةٍ مختلفة، فإن الموجهات ستعرف الطريق إلى الشبكة الهدف، وستعطيه لتلك الرزم.
إن عناوين الطبقة الثالثة مهمة ليس اتباعًا لنموذج اتصالات الند للند، وإنما أيضًا لإضافة هيكليّة إلى تسمية الأجهزة والتعرّف إليها؛ فكل نظام تشغيل خاص بالشبكة له صيغة عناوين خاصة به... فمثلًا، يستخدم بروتوكول TCP/IP عناوين IP. نماذج OSI الشاملة تَستخدم عناوين NSAP؛ لكن حصول كل جهاز على عنوان IP فريد خاص به، بالإضافة إلى الهيكليّة الموجودة في عناوين IP ستخدم هدف السماح للأجهزة والنهايات الشبكية والموجهات بمعرفة أين يجب أن تكون العقدة التوجيهية (next-hop) التالية لكي نصل إلى الوجهة المطلوبة.
شرح عملية ARP
نحن نعلم مدى أهميّة التفاعل بين الطبقات في النموذج الطبقي؛ في الحقيقة، نعلم أن الاتصالات العمودية بين الطبقات مهمة في نموذج اتصالات الند للند؛ حيث ستفدينا عناوين IP في سدّ الفجوة بين الطبقتين الثالثة والثانية؛ وعندما تُجمَّع الرزم الشبكيّة وتُنشَأ الاتصالات، فستحتاج الأجهزة إلى الوصول إلى الوسائط الفيزيائية، أي أن علينا الانتقال إلى الطبقة الثانية، ولهذا سنحتاج عنوان MAC إن كنّا نستخدم بروتوكول إيثرنت؛ إذ أنَّ المعلومات القادمة من الطبقات الأعلى هي عنوان IP، ويستطيع ARP التحويل بينهما. في هذا المثال، سيكون لدينا الجهاز A الذي سيحاول إرسال رزم شبكيّة إلى 172.16.3.2، ولكي يستبين ويتعرَّف على عنوان MAC لذاك IP، فإننا نستخدمARP لإذاعة السؤال الآتي: «من هو 172.16.3.2؟» وسيستلم كل جهازٍ على الشبكة هذا السؤال، لكن سيرد الجهاز صاحب عنوان IP الموافق فقط، ويعطي عنوان MAC الخاص به. وبالتالي سيحصل المُرسِل على معلومات عنوان MAC ويستطيع إنشاء الاتصال في الطبقة الثانية.
من المهم أن تُخزَّن (cached) معلومات ARP في كل جهاز على الشبكة، لأن الإذاعة «مكلفة» بتعابير الشبكة، ويجب أن تبقى تلك المعلومات لفترةٍ محددة، ﻷنها من غير المحتمل أن تتغير خلال الاتصال؛ ولهذا، سيحتوي جدول ARP على معلومات الربط (mapping information) وهو ديناميكي لتعلم ARP، وإبقاء جدول الربط لفترة، ومن ثم التخلص منه بعد انقضاء فترة صلاحيته للاستجابة إلى أيّة تغيرات قد حصلت في الربط؛ وتكون المهلة عادةً هي 300 ثانية، لكن هذا يعتمد أيضًا على نظام التشغيل؛ يمكن مثلًا الحصول على جدول ARP على نظام ويندوز باستخدام الأمر:
arp -a
C:\Users\Administrator>arp -a Interface: 192.168.0.7 --- 0xe Internet Address Physical Address Type 192.168.0.1 a0-f3-c1-05-a4-96 dynamic 192.168.0.6 e4-ce-8f-9c-19-b3 dynamic 192.168.0.12 00-26-96-00-18-5e dynamic 192.168.0.255 ff-ff-ff-ff-ff-ff static
أدوات المضيف
طريقة جيّدة للتحقق من قابلية الاتصال دون الحاجة إلى وجود تطبيق لإرسال البيانات هي استخدام الأدوات المختلفة الموجودة في طبقة الشبكة. أحد الأمثلة على تلك الأدوات هو ping، الذي يُرسِل طلبات ICMP echo إلى عنوان IP معيّن أو اسم مضيف كما في هذا المثال؛ وبالطبع، سيتحوَّل اسم المضيف إلى عنوان IP، ثم ستستخدمه الأداة ping. فإذا وصلت رسالة الاختبار (probe) إلى الوجهة، وكانت الوجهة قادرةً على الرد على ICMP echo، فسيعلم المُرسِل أنَّ المستقبِل يعمل ويمكن الوصول إليه؛ لكن الأمر سيكون عديم الفائدة إن لم نحسب الزمن اللازم للوصول إلى الوجهة؛ حيث تحسب الأداة ping الزمن اللازم لإتمام الرحلة إلى الهدف؛ ويعطيك ناتج الأمر الزمن الأدنى والأقصى والمتوسط للرحلات؛ ونسبة مئوية للرزم المفقودة؛ ويوجد لهذا الأمر خياراتٌ لتحديد حجم الرزمة، وعدد الطلبيات التي ستُرسَل، والمهلة التي يجب انتظارها لكل عملية رد.
أداةٌ أخرى مفيدةٌ جدًا هي trace، واسم الأمر في حالة نظام ويندوز هو tracert؛ حيث سيُظهِر هذه الأمر جميع الموجِّهات بين المُرسِل والمُستقبِل؛ لذا فإنه يعرض الطريق إلى الوجهة، مُظهِرًا جميع العقد التوجيهيّة (hops) والموجِّهات؛ ويعرض أيضًا معلومات الرحلة إلى كل بوابة، ويُظهِر آخر سطرٍ معلومات الرحلة الإجمالية إلى الوجهة. تعمل هذه الأداة عملًا مختلفًا وفقًا لنظام التشغيل، بعضها يستخدم رزم UDP، وبعضها يستخدم ICMP؛ ويكون لديها خياراتٌ كغيرها من الأوامر، يمكنك على سبيل المثال أن تُحدِّد العدد الأقصى من العقد التوجيهية لتضمِّنها في الناتج، أو أن تُحدِّد قائمةً بالبوابات التي تريد العبور خلالها للوصول إلى الوجهة.