نموذج OSI بالتفصيل: الطبقات السبع من الكابل إلى التطبيق
في كل مرة تفتح فيها موقعًا إلكترونيًا أو ترسل رسالة أو تشاهد فيديو، تمر البيانات بعدة مراحل قبل أن تصل إلى شاشتك. فهي تنتقل من الإشارات الكهربائية في كابل إيثرنت أو الموجات الراديوية في Wi-Fi وصولًا إلى البرنامج الذي تستخدمه. ويمنحك فهم هذا التسلسل صورة واضحة عن طريقة عمل الشبكات، ويساعدك على تشخيص مشكلات الإنترنت بترتيب منطقي. والنموذج الأكثر استخدامًا لوصف هذا التسلسل هو نموذج OSI، وهو إطار مرجعي يقسّم الاتصال الشبكي إلى سبع طبقات. تشرح هذه المقالة نشأة النموذج، ووظيفة كل طبقة، وكيفية انتقال البيانات بينها، ومقارنته بنموذج TCP/IP، وكيفية استخدامه لحل المشكلات الفعلية.
ما هو نموذج OSI
OSI اختصار لعبارة Open Systems Interconnection، أي التوصيل بين الأنظمة المفتوحة. وهو نموذج مرجعي يحدد كيف ينبغي تقسيم الاتصال بين الحواسيب إلى طبقات. لكل طبقة مهمتها الخاصة، وتتواصل مع الطبقتين المجاورتين عبر واجهات محددة. وهذا يسمح للشركات المصنعة بتطوير أجهزة أو برمجيات لطبقة واحدة دون الحاجة إلى معرفة التفاصيل الداخلية للطبقات الأخرى.
والنقطة الجوهرية أن OSI نموذج وليس مجموعة بروتوكولات تُستخدم مباشرة على الإنترنت. فالبروتوكولات التي تشغّل الإنترنت فعليًا، مثل TCP وIP، تنتمي إلى نموذج مختلف. ومع ذلك، ما زالت فكرة تقسيم الطبقات في OSI لغة مشتركة يستخدمها مهندسو الشبكات حول العالم لشرح المشكلات وتشخيصها.
نشأة النموذج
في أواخر السبعينيات كانت شبكات الحواسيب ما تزال جزرًا معزولة. فكل شركة مصنعة تستخدم بروتوكولاتها الخاصة، ولا يستطيع جهاز من IBM التواصل مع جهاز من DEC، وكانت أجهزة كل شركة تعتمد على منتجات الشركة نفسها. فبدأت المنظمة الدولية للتوحيد القياسي ISO عام 1977 بتطوير نموذج مشترك يتيح للشبكات المختلفة التعامل مع بعضها.
وكانت النتيجة المعيار ISO 7498 الذي نُشر عام 1984، والمعروف باسم نموذج OSI المرجعي. ورغم أن النموذج لاقى احترامًا واسعًا كفكرة، فإن البروتوكولات التي وُضعت لتطبيقه، مثل X.400 للبريد الإلكتروني وX.500 للأدلة، لم تحظَ بالانتشار المتوقع. في المقابل، طُوّر TCP/IP في الولايات المتحدة ضمن DARPA، ونُشر على شبكة ARPANET، ثم أصبح أساس الإنترنت، فانتشر على نطاق أوسع بكثير.
نظرة عامة على الطبقات السبع
تُرقَّم الطبقات من الأسفل إلى الأعلى. فالطبقة الأولى أقرب ما تكون إلى الوسط الفيزيائي، والطبقة السابعة أقرب ما تكون إلى المستخدم.
1. الطبقة الفيزيائية (Physical Layer)
2. طبقة ربط البيانات (Data Link Layer)
3. طبقة الشبكة (Network Layer)
4. طبقة النقل (Transport Layer)
5. طبقة الجلسة (Session Layer)
6. طبقة العرض (Presentation Layer)
7. طبقة التطبيق (Application Layer)
ومن العبارات الإنجليزية الشائعة لتذكّر الترتيب "Please Do Not Throw Sausage Pizza Away"، وهي تبدأ من الطبقة الأولى حتى السابعة. وبمجرد أن تتذكرها، تستطيع معرفة الطبقة التي ينتمي إليها جهاز أو بروتوكول معيّن.
الطبقة الأولى: الطبقة الفيزيائية
تهتم هذه الطبقة بإرسال البتات الخام عبر وسط فيزيائي، مثل الجهد الكهربائي في أسلاك النحاس، أو الضوء في الألياف البصرية، أو الموجات الراديوية في Wi-Fi. وهي تحدد كيف يُمثَّل الصفر والواحد بمستويات الجهد أو الترددات أو شدة الضوء، إضافة إلى أشكال الموصلات وسرعات الإشارة وحدود الجهد.
تشمل أجهزة هذه الطبقة كابلات الإيثرنت مثل Cat 6، والكابلات الليفية، والمحاور (Hubs) التي تعيد بث الإشارة، والمرسلات المستقبلات (Transceivers). ومن المشكلات الشائعة الكابلات المفكوكة أو التالفة، والموصلات الرديئة، وأطوال الكابلات التي تتجاوز المعيار، والتداخل الكهرومغناطيسي.
الطبقة الثانية: طبقة ربط البيانات
تتولى هذه الطبقة التسليم بين الأجهزة الموجودة على الشبكة المحلية نفسها أو المتصلة مباشرة ببعضها. وهي تجمع البتات في إطارات (Frames)، يحتوي كل منها على عنوان الوجهة وعنوان المصدر والبيانات وقيمة للتحقق من الأخطاء مثل CRC. والعنوان المستخدم في هذه الطبقة هو عنوان MAC، وهو معرّف من 48 بتًا تحدده الشركة المصنعة لبطاقة الشبكة، ويُكتب عادة بالنظام السداسي عشر، مثل 00-1A-2B-3C-4D-5E.
كما تنظم هذه الطبقة طريقة مشاركة الأجهزة للوسط. فإيثرنت تستخدم قواعد لتجنب الإرسال المتزامن على الكابل، وتستخدم Wi-Fi آلية CSMA/CA لتقليل التصادم في الهواء. والجهاز الرئيسي هنا هو المحوّل (Switch)، الذي يتعلم عناوين MAC المرتبطة بكل منفذ، ويرسل كل إطار إلى المنفذ الصحيح فقط. وتتيح شبكات VLAN، المعرّفة في المعيار 802.1Q، تقسيم محوّل واحد إلى شبكات افتراضية منفصلة.
الطبقة الثالثة: طبقة الشبكة
تنقل طبقة الشبكة الحزم (Packets) عبر شبكات كثيرة، وتستخدم عناوين IP لتحديد الوجهة. عناوين IPv4 طولها 32 بتًا، مثل 192.168.1.10، أما عناوين IPv6 فطولها 128 بتًا لتوفير مساحة عناوين أكبر بكثير. ومهمتها الأساسية التوجيه (Routing)، أي اختيار أفضل مسار للحزمة، ويقوم بذلك الموجّهات (Routers) بالرجوع إلى جداول التوجيه.
تتضمن هذه الطبقة أيضًا بروتوكول ICMP الذي يحمل رسائل التشخيص. فأوامر ping وtraceroute تستخدم ICMP للتحقق من استجابة الوجهة، ولمعرفة عدد القفزات على المسار. ومن المشكلات الشائعة في هذه الطبقة إعدادات IP الخاطئة، مثل قناع الشبكة الفرعية (Subnet Mask) أو البوابة الافتراضية (Default Gateway) غير الصحيحة، أو مسارات غير موجودة.
الطبقة الرابعة: طبقة النقل
تنقل طبقة النقل البيانات من برنامج على جهاز إلى برنامج على جهاز آخر. وتستخدم أرقام المنافذ (Ports) لتحديد الخدمات، فالمنفذ 80 لـ HTTP، والمنفذ 443 لـ HTTPS، والمنفذ 53 لـ DNS.
البروتوكولان الرئيسيان هنا هما TCP وUDP. فـ TCP موثوق، إذ يجري مصافحة ثلاثية قبل الإرسال، ويؤكد الاستلام بالإقرارات (Acknowledgements)، ويعيد إرسال البيانات المفقودة، ويتحكم في تدفق البيانات حتى لا يُغرَق المستقبِل. أما UDP فأبسط وأسرع لكنه لا يضمن الوصول، ولذلك يناسب البث المباشر للفيديو والألعاب الإلكترونية وDNS. ووحدة البيانات في هذه الطبقة تسمى قطعة (Segment) في TCP، وتسمى بيانات مستقلة (Datagram) في UDP.
الطبقة الخامسة: طبقة الجلسة
تفتح طبقة الجلسة المحادثات بين برنامجين وتديرها وتنهيها، وتسمى هذه المحادثات جلسات (Sessions). ومن وظائفها إنشاء نقاط تفتيش (Checkpoints) حتى يمكن استئناف النقل بعد انقطاع، وتنظيم من يتحدث في وقت معيّن، والحفاظ على الاتصال نشطًا أثناء الاستخدام.
ومن الأمثلة الواقعية NetBIOS وRPC اللذان يسمحان لبرنامج باستدعاء وظائف على جهاز آخر. وفي الممارسة، تُدمج وظائف الجلسة غالبًا داخل التطبيقات أو المكتبات بدلًا من أن تكون طبقة مستقلة، ولذلك تكون هذه الطبقة الأصعب في تحديدها في أسئلة الاختبارات.
الطبقة السادسة: طبقة العرض
تحوّل طبقة العرض البيانات إلى شكل يفهمه الطرفان. وتشمل ترميز المحارف والضغط والتشفير. فمثلًا تفسير النص المرمّز بـ UTF-8، والتعامل مع صيغ الصور مثل JPEG وPNG، وضغط الملفات بـ gzip، وتشفير البيانات بـ TLS الذي يحمي مواقع HTTPS من التنصت.
وفي الممارسة تصنّف بعض الكتب TLS ضمن طبقة الجلسة وبعضها ضمن طبقة العرض، وفي نموذج TCP/IP يقع بين TCP وHTTP. ومن المفيد تذكر هذه النقطة عند شرح النموذج للآخرين.
الطبقة السابعة: طبقة التطبيق
تُعد طبقة التطبيق الأقرب إلى المستخدم، فبرامج مثل متصفحات الويب وعملاء البريد ومنصات الدردشة تستخدم بروتوكولات هذه الطبقة للتواصل مع أجهزة أخرى. ومن أمثلتها HTTP وHTTPS للويب، وSMTP وIMAP وPOP3 للبريد الإلكتروني، وFTP لنقل الملفات، وDNS لتحويل أسماء النطاقات إلى عناوين IP، وDHCP لتوزيع عناوين IP تلقائيًا.
ومن المهم أن تفهم أن طبقة التطبيق تشير إلى البروتوكولات التي يستخدمها التطبيق، لا إلى التطبيق نفسه. فمثلًا يستخدم Chrome وFirefox بروتوكول HTTP نفسه.
كيف تنتقل البيانات عبر الطبقات
عندما يرسل برنامج بيانات، تنتقل من الطبقة السابعة إلى الأولى. وتضيف كل طبقة ترويستها الخاصة، وتسمى هذه العملية التغليف (Encapsulation). فطبقة النقل تضيف أرقام المنافذ، وطبقة الشبكة تضيف عناوين IP، وطبقة ربط البيانات تضيف عناوين MAC وCRC. ثم تحول الطبقة الفيزيائية كل ذلك إلى إشارات كهربائية أو ضوئية أو موجات راديوية.
ويحدث العكس عند الطرف المستقبِل، وتسمى هذه العملية فك التغليف (Decapsulation). فكل طبقة تقرأ ترويستها وتتحقق منها، ثم تمرر الباقي إلى الطبقة الأعلى. وعندما تصل البيانات إلى الطبقة السابعة، يتسلم البرنامج المستقبِل الرسالة الأصلية.
ولكل طبقة اسم مختلف لوحدة البيانات. فالطبقة الأولى تتعامل مع البتات، والثانية مع الإطارات، والثالثة مع الحزم، والرابعة مع القطع أو البيانات المستقلة، أما الطبقات من الخامسة إلى السابعة فتُجمع غالبًا تحت اسم البيانات.
مثال: تحميل صفحة إلكترونية واحدة
لنرَ كيف تمر عملية فتح صفحة على example.com عبر النموذج.
1. طبقة التطبيق: يحتاج المتصفح إلى HTML الصفحة، فيبني طلب HTTP GET. وأولًا يحتاج إلى عنوان IP للموقع، فيسأل DNS.
2. طبقة العرض: في حالة HTTPS يُشفَّر الطلب بـ TLS قبل إرساله.
3. طبقة الجلسة: يُفتح الاتصال ويُحافظ عليه طوال التبادل.
4. طبقة النقل: يقسّم TCP البيانات إلى قطع، ويضيف المنفذ الوجهة 443، ويجري مصافحة مع الخادم.
5. طبقة الشبكة: تُضاف إلى الحزمة عناوين IP للمصدر والوجهة، ويختار الموجّه المنزلي المسار إلى الإنترنت.
6. طبقة ربط البيانات: يُضاف إلى الإطار عنوان MAC للجهاز التالي على الشبكة المحلية، وهو الموجّه.
7. الطبقة الفيزيائية: يُرسل الإطار إشارات عبر الكابل أو عبر Wi-Fi إلى الموجّه.
وعندما يرد الخادم، تعود البيانات في الاتجاه المعاكس، وتزيل كل طبقة ترويستها تباعًا.
مقارنة OSI بـ TCP/IP
يتكون نموذج TCP/IP من أربع طبقات، هي طبقة الوصول إلى الشبكة (Network Access)، وطبقة الإنترنت (Internet)، وطبقة النقل (Transport)، وطبقة التطبيق (Application). وفي هذا النموذج تجمع طبقة الوصول إلى الشبكة بين الطبقتين الفيزيائية وربط البيانات في OSI. وتقابل طبقة الإنترنت طبقة الشبكة، وتقابل طبقة النقل طبقة النقل في OSI. أما طبقة التطبيق فتجمع طبقات الجلسة والعرض والتطبيق في OSI.
وتبيّن هذه المقارنة أن النموذجين يصفان الشيء نفسه بدرجات مختلفة من التفصيل. فنموذج OSI أدق وملائم للتدريس والشرح المفاهيمي، بينما يعكس TCP/IP طريقة عمل الإنترنت الفعلية.
استخدام OSI لحل المشكلات الفعلية
يتيح التفكير في الطبقات تحديد العطل خطوة بخطوة، سواء بدءًا من الأسفل أو من الأعلى. ومن الفحوص المعتادة:
- **الطبقة الأولى:** تأكد من إحكام توصيل الكابلات وإضاءة مؤشرات الربط. إذا كانت المؤشرات مطفأة، فقد تكون المشكلة في الكابل أو المنفذ.
- **الطبقة الثانية:** تحقق من عناوين MAC وARP لتتأكد من رؤية الأجهزة بعضها بعضًا على الشبكة نفسها، وتحقق من إعدادات VLAN.
- **الطبقة الثالثة:** استخدم ping لاختبار الوصول إلى عنوان IP، وtraceroute لمعرفة المسار. وتأكد من صحة عنوان IP وقناع الشبكة الفرعية والبوابة الافتراضية.
- **الطبقة الرابعة:** استخدم telnet أو nc لاختبار ما إذا كان المنفذ مفتوحًا. فقد يكون جدار الحماية يحجبه.
- **الطبقتان الخامسة والسادسة:** تحقق من مصافحة TLS ومن انتهاء صلاحية الشهادة.
- **الطبقة السابعة:** استخدم nslookup أو dig لفحص DNS، وراقب رموز حالة HTTP مثل 404 أو 500 لتعرف هل المشكلة في الخادم.
يتجنب هذا الأسلوب التخمين العشوائي. فعندما تعمل الطبقات السفلى بشكل صحيح، تكون المشكلة غالبًا في الطبقات العليا، والعكس صحيح.
أجهزة الشبكة في كل طبقة
إن معرفة الأجهزة التي تعمل في كل طبقة تجعل النموذج أسهل في التذكر.
- **الطبقة الأولى:** المحاور (Hubs) وكابلات الإيثرنت والمكررات (Repeaters)
- **الطبقة الثانية:** المحوّلات (Switches) والجسور (Bridges) وبطاقات الشبكة
- **الطبقة الثالثة:** الموجّهات (Routers) والمحوّلات من الطبقة الثالثة
- **الطبقة الرابعة:** بعض جدران الحماية وموازنات الأحمال التي تعمل مع TCP وUDP
- **الطبقة السابعة:** الخوادم الوكيلة (Proxy) وجدران حماية التطبيقات وWAF التي تفحص محتوى HTTP
وبعض الأجهزة تعمل في عدة طبقات في وقت واحد. فمثلًا يجمع المحوّل من الطبقة الثالثة بين وظيفتي المحوّل والموجّه في جهاز واحد.
أهمية OSI في الممارسة
رغم أن OSI ليس بروتوكولًا يُستخدم مباشرة، فإن له فوائد عديدة. فهو يمنح المهندسين لغة مشتركة، ويفصل بين مسؤوليات الأجهزة والبرمجيات، ويدعم تشخيص الأعطال خطوة بخطوة، ويشكّل أساسًا لتعلم الشبكات. وما زالت شهادات مثل CompTIA Network+ وCisco CCNA تستخدم نموذج الطبقات السبع لشرح المفاهيم.
الأمان في كل طبقة
يساعد نموذج OSI أيضًا على تحديد الطبقات التي يمكن أن تقع فيها هجمات الشبكات، وكيفية الدفاع عنها. ويجب أن يغطي الأمان الجيد كل طبقة، لأن حماية طبقة واحدة وحدها قد يُتجاوز بسهولة.
- **الطبقة الفيزيائية:** يجب قصر الدخول إلى غرف الخوادم وخزائن الكابلات على الموظفين المصرّح لهم. ويجب تعطيل الكابلات التي يسهل التنصت عليها والمنافذ غير المستخدمة أو إزالتها.
- **طبقة ربط البيانات:** يتيح انتحال ARP لجهاز أن ينتحل هوية جهاز آخر على الشبكة المحلية. ويقلل Port Security وDynamic ARP Inspection على المحوّلات من هذا الخطر.
- **طبقة الشبكة:** يمكن لانتحال عناوين IP والفيضانات المعتمدة على ICMP أن تُثقل النظام. وتساعد قوائم التحكم في الوصول (ACL) التي تُرشّح الحزم، والتحقق من المصدر الحقيقي للحركة، في الوقاية منها.
- **طبقة النقل:** تستغل هجمات SYN flood مصافحة TCP، بينما تكشف عمليات مسح المنافذ الخدمات التي تستمع إلى الاتصالات. وتساعد جدران الحماية ذات الحالة (Stateful) وتحديد معدل الاتصالات في التصدي لها.
- **طبقة الجلسة:** قد يختطف المهاجمون جلسة مُصادَقًا عليها، مثلًا بسرقة ملف تعريف الارتباط (Cookie). ويجب إدارة المخاطر الناتجة عن الرموز طويلة الأمد وتجديد الجلسات غير الضروري.
- **طبقة العرض:** استخدم إصدارات TLS الحديثة، وعطّل حزم التشفير الضعيفة، وتأكد من أن الشهادات صالحة وغير منتهية.
- **طبقة التطبيق:** توجد هنا أكثر الثغرات شيوعًا، مثل حقن SQL والبرمجة النصية عبر المواقع (XSS) والتصيّد الاحتيالي. ويمكن لجدار حماية تطبيقات الويب (WAF) فحص المدخلات، ويجب تحديث البرمجيات باستمرار.
المبدأ الأساسي هو الدفاع متعدد الطبقات (Defense in Depth)، أي تكديس عدة ضوابط أمنية بحيث يضطر المهاجم إلى تجاوز عقبات كثيرة قبل الوصول إلى البيانات الحساسة.
رؤية الحزم الحقيقية باستخدام Wireshark
أوضح طريقة لرؤية نموذج OSI أثناء العمل هي فحص الحزم الحقيقية بأداة تحليل مثل Wireshark. فهو يفكك كل حزمة إلى طبقاتها، من الإطار (الطبقتان 1 و2) إلى Ethernet II (الطبقة 2) وIPv4 (الطبقة 3) وTCP أو UDP (الطبقة 4) وHTTP (الطبقة 7). وعند اختيار طبقة، تُبرز الأداة البايتات المقابلة لها.
تمرين بسيط هو بدء التقاط على حاسوبك، وفتح موقع اختبار يعمل بـ HTTP العادي لا HTTPS، ثم إيقاف الالتقاط والبحث عن حزمة HTTP GET. ستشاهد طلب طبقة التطبيق، وأرقام المنافذ في طبقة النقل، وعناوين IP في طبقة الشبكة، وعناوين MAC في طبقة ربط البيانات، كما وصفتها هذه المقالة تمامًا. فرؤية البيانات الحقيقية تحوّل النموذج من مخطط إلى شيء ملموس.
لا تلتقط إلا حركة الشبكات التي تملك الإذن باستخدامها، مثل شبكتك المنزلية أو مختبر تديره بنفسك. فاعتراض حركة الآخرين دون إذن غير قانوني في معظم البلدان.
دروس من نموذج OSI
- تقسيم النظام المعقد إلى طبقات يجعله أسهل في الفهم والإصلاح.
- قد يكون المعيار الذي يقبله أطراف كثيرون أهم من المعيار الكامل. فقد فاز TCP/IP في السوق لأنه كان عمليًا رغم عدم كماله.
- يأتي الفهم الحقيقي من ربط المفاهيم بالاختبارات العملية مثل ping وtraceroute وفحص السجلات.
الخلاصة
نموذج OSI أكثر من جدول للحفظ. إنه طريقة للتفكير في الاتصال الشبكي، من الإشارات الكهربائية في الكابل وعناوين IP، مرورًا بالتسليم الموثوق للبيانات، وصولًا إلى التطبيقات التي يراها المستخدم. وعندما تفهم أي طبقة تمر بها البيانات وماذا تفعل كل طبقة، تستطيع تشخيص مشكلات الشبكة بطريقة منهجية، وتفهم وثائق الأجهزة بصورة أفضل بكثير.