انتقل إلى المحتوى الرئيسي

نموذج OSI

عند إرسال البيانات عبر الشبكة، هناك سلسلة من التحويلات، الترميزات والإجراءات اللازمة لكي تنتقل البيانات من جهاز إلى آخر. يسمح نموذج OSI (Open Systems Interconnection) بتقسيم هذه العملية المعقدة إلى خطوات منطقية، تسمى طبقات، لكل منها دور محدد.

فوائد نموذج OSI​

  • يسهل تصميم وفهم الشبكات.
  • يسمح بالتشغيل البيني بين الشركات المصنعة المختلفة.
  • ينظم البروتوكولات والمسؤوليات.

نظرة عامة على الطبقات السبع​

المصدر: Wikipedia

تفاصيل كل طبقة​

الطبقة 1 – الفيزيائية (Physical Layer)​

الدور:
تنقل البتات الخام (0 و 1) عبر وسيط فيزيائي: كابل، ألياف بصرية، موجات راديو...

الوظائف:

  • تعريف الإشارات الكهربائية، البصرية أو الراديوية.
  • تزامن البتات.
  • الموصلات والأسلاك.

أمثلة:

  • كابل Ethernet (RJ45)
  • الألياف البصرية
  • Wi-Fi (على مستوى التعديل)
  • Bluetooth

ما الذي يراه المبرمج؟ ليس كثيرًا. هذه الطبقة تدار بالكامل بواسطة الأجهزة.

الدور:
تسمح بالتواصل المحلي بين جهازين متصلين بنفس الشبكة الفيزيائية.

الوظائف:

  • تقطيع البيانات إلى إطارات (frames بالإنجليزية).
  • تخصيص والتحقق من عنوان MAC (Media Access Control، فريد لكل جهاز).
  • كشف الأخطاء.

أمثلة على البروتوكولات:

  • Ethernet
  • Wi-Fi (IEEE 802.11)

عنوان MAC:

  • فريد لكل بطاقة شبكة (مثال: 00:1A:2B:3C:4D:5E)
  • محفور في الأجهزة

الأجهزة:

  • Switch
  • بطاقة الشبكة (NIC)

ما الذي يراه المبرمج؟ عنوان MAC، الإطارات (frames)، تكوين الشبكة المحلية، أحيانًا معالجة الحزم على مستوى Ethernet (مثال: Wireshark، Scapy).

الطبقة 3 – الشبكة (Network Layer)​

الدور:
يضمن توجيه الحزم من شبكة إلى أخرى (ربط الشبكات).

الوظائف:

  • تخصيص عناوين IP (Internet Protocol).
  • التوجيه بين الشبكات الفرعية.
  • تجزئة الحزم.

أمثلة على البروتوكولات:

  • IP (Internet Protocol)
  • ICMP (يستخدم بواسطة ping)
  • ARP (ترجمة IP ↔ MAC)

الأجهزة:

  • الموجهات

ما الذي يراه المبرمج؟ عنوان IP، الشبكة الفرعية، ping، التواصل عبر sockets (IP/port).


الطبقة 4 – النقل (Transport Layer)​

الدور:
يضمن نقل البيانات الموثوق أو غير الموثوق بين جهازين.

الوظائف:

  • التقسيم وإعادة التجميع.
  • التحكم في الأخطاء.
  • التحكم في التدفق.

البروتوكولات الرئيسية:

  • TCP (Transmission Control Protocol)
    • موثوق، مع إيصال استلام.
    • مثال: HTTP، FTP، SSH
  • UDP (User Datagram Protocol)
    • غير موثوق، سريع.
    • مثال: DNS، الألعاب عبر الإنترنت، VoIP

المنافذ:

  • تحدد التطبيقات على جهاز (مثال: المنفذ 80 لـ HTTP)

ما الذي يراه المبرمج؟ معالجة sockets TCP/UDP، إدارة المنافذ، إدارة أخطاء الاتصال، timeouts، إعادة الإرسال، الاختيار بين الموثوقية (TCP) والسرعة (UDP).

أمثلة:

  • في Python: socket(AF_INET, SOCK_STREAM) (TCP)
  • curl http://... → يستخدم TCP المنفذ 80

الطبقة 5 – الجلسة (Session Layer)​

الدور:
يدير جلسات الاتصال بين جهازين. الجلسة هي رابط منطقي بين تطبيقين.

الوظائف:

  • فتح، إدارة وإغلاق الجلسة.
  • الاستعادة بعد الانقطاع.

أمثلة على البروتوكولات:

  • NetBIOS
  • RPC (Remote Procedure Call)

ملاحظات:

  • غير مرئية بشكل كبير في التطبيقات الحديثة (غالبًا ما يتم دمجها مع طبقة النقل).

الطبقة 6 – العرض (Presentation Layer)​

الدور:
يضمن الترجمة، الضغط والتشفير للبيانات.

الوظائف:

  • تحويل الصيغ (مثال: نص عادي ↔ ثنائي).
  • الترميز: ASCII، UTF-8، JPEG
  • تشفير SSL/TLS.

أمثلة ملموسة:

  • HTTPS = HTTP + TLS (طبقة العرض)
  • OpenSSL، GnuTLS

ما الذي يراه المبرمج؟ يمكن التعامل مع طبقة العرض عبر مكتبات مثل ssl في Python.


الطبقة 7 – التطبيق​

الدور:
يوفر خدمات الشبكة لتطبيقات المستخدم.

البروتوكولات:

  • HTTP / HTTPS
  • FTP
  • SMTP / IMAP / POP3
  • DNS

أمثلة على التطبيقات:

  • متصفحات الويب
  • عملاء البريد الإلكتروني
  • عملاء FTP
  • عملاء DNS

ما الذي يراه المبرمج؟ تستخدم طبقة 7 يوميًا: fetch()، requests.get()، socket، إلخ.

ملخص الطبقات​

N°الطبقةالوظيفة الرئيسيةأمثلة على البروتوكولات/الأجهزة
7التطبيقواجهة المستخدم الشبكيةHTTP، FTP، DNS
6العرضالترجمة، التشفير، الضغطSSL/TLS، ASCII، JPEG
5الجلسةإدارة الجلسات/الاتصالاتNetBIOS، RPC
4النقلالنقل الموثوق، التقسيمTCP، UDP
3الشبكةالتوجيه والعنونة المنطقيةIP، ICMP
2الربطالتواصل المحلي، عنوان MACEthernet، Wi-Fi (802.11)، PPP
1الفيزيائيةنقل البتات عبر الوسيطRJ45، الألياف، الإشارة الراديوية

مثال على رحلة رسالة​

تخيل أنك ترسل رسالة HTTP إلى خادم بعيد:

  1. التطبيق (HTTP) → المتصفح يجهز الطلب.
  2. العرض (TLS) → يتم تشفير الطلب.
  3. الجلسة → يتم فتح جلسة آمنة.
  4. النقل (TCP) → يتم تقسيم الطلب إلى أجزاء.
  5. الشبكة (IP) → يتم تغليف الأجزاء في حزم IP.
  6. الربط (Ethernet) → يتم وضع الحزم في إطارات.
  7. الفيزيائية (كابل) → يتم تحويل الإطارات إلى إشارات كهربائية.

يتلقى الخادم بالترتيب العكسي: فيزيائية → ربط → شبكة … حتى التطبيق.

للمبرمجين​

  • طبقة التطبيق تتعلق باستدعاءات HTTP/HTTPS الخاصة بك.
  • طبقة النقل (TCP/UDP) تشرح مشاكل الكمون، timeout، فقدان الحزم.
  • طبقة الشبكة تساعدك على فهم العنونة IP، الاتصال بين العملاء/الخوادم.
  • الطبقات الربط والفيزيائية مفيدة لمعرفة تشخيص مشاكل الشبكة المحلية.

المراجع​