شرح الـ OSI Model
المقدمة
تخيل إنك عايز تبعت جواب لصاحبك في بلد تانية. الجواب مش هيطير كده ويوصل، لأ في خطوات:
- بتكتب الجواب
- بتحطه في ظرف
- بتكتب العنوان
- بتنزل تحطه في صندوق البريد
- عامل البوسطة بياخده
- بيتنقل بين مكاتب بريد
- لحد ما يوصل لصاحبك
ده بالظبط اللي بيحصل في الشبكات، بس بدل الجواب، عندنا بيانات. والخطوات دي اسمها OSI Model.
يعني إيه OSI Model؟
OSI اختصار لـ Open Systems Interconnection. ده نموذج نظري اتعمل سنة 1984 عشان يوحد طريقة فهمنا لكيفية انتقال البيانات بين الأجهزة.
النموذج ده بيقسم عملية الاتصال لـ 7 طبقات، كل طبقة ليها شغلها الخاص ومعزولة عن التانية.
الطبقات السبعة (من فوق لتحت)
تذكر الترتيب
في جملة بنستخدمها عشان نفتكر الطبقات:
“All People Seem To Need Data Processing”
- Application
- Presentation
- Session
- Transport
- Network
- Data Link
- Physical
Layer 7 - Application Layer (طبقة التطبيقات)
الوصف
دي الطبقة اللي إنت بتتعامل معاها مباشرة. المتصفح، البريد الإلكتروني، برامج المحادثة - كلها في الطبقة دي.
الوظيفة
- توفير واجهة للمستخدم للتفاعل مع الشبكة
- تطبيقات زي HTTP, FTP, SMTP, DNS
يعنى مثلا لما بتفتح المتصفح وتكتب google.com، المتصفح (Chrome مثلاً) بيشتغل في الطبقة دي وبيستخدم بروتوكول HTTP/HTTPS.
من ناحية السيكيورتي
معظم الثغرات اللي في الويب بتحصل هنا:
- SQL Injection
- XSS
- CSRF
- Command Injection
وده طلب HTTP بسيط بيحصل في Application Layer
GET /index.html HTTP/1.1
Host: example.com
User-Agent: Mozilla/5.0
Accept: text/html
Layer 6 - Presentation Layer (طبقة العرض)
الوصف
المترجم بين التطبيق والشبكة. بتاخد البيانات وتحولها لصيغة مفهومة للطبقات اللي تحتها.
الوظيفة
- Encryption/Decryption: التشفير وفك التشفير
- Compression: ضغط البيانات
- Translation: تحويل الصيغ (مثلاً ASCII لـ Unicode)
مثال
لما بتفتح موقع HTTPS:
- البيانات بتتشفر هنا باستخدام SSL/TLS
- بعدين بتنزل للطبقات اللي تحت
من ناحية السيكيورتي
- التشفير الضعيف بيحصل هنا
- هجمات Man-in-the-Middle بتستهدف الطبقة دي
مثال تقني
# شوف نوع التشفير المستخدم
openssl s_client -connect google.com:443 -tls1_2
Layer 5 - Session Layer (طبقة الجلسة)
الوصف
مسؤولة عن فتح وإدارة وإنهاء “الجلسات” (Sessions) بين التطبيقات.
الوظيفة
- فتح Session بين جهازين
- الحفاظ على الـ Session مفتوحة
- إنهاء الـ Session لما الاتصال يخلص
مثال
يعنى لما بتعمل Login على موقع:
- بيتعملك Session ID
- الـ Session ده بيفضل مفتوح طول ما إنت متصفح
- لما تعمل Logout، الـ Session بيتقفل
من ناحية السيكيورتي
- Session Hijacking: سرقة الـ Session بتاع المستخدم
- Session Fixation: فرض Session ID معين
مثال تقني
Cookie اللي بيتبعت في كل طلب:
Cookie: PHPSESSID=abc123xyz789
ده الـ Session ID اللي بيربطك بالـ Session بتاعك على السيرفر.
Layer 4 - Transport Layer (طبقة النقل)
الوصف
الطبقة دي مسؤولة عن توصيل البيانات بشكل موثوق من جهاز للتاني. هنا بنستخدم TCP أو UDP.
الوظيفة
- تقسيم البيانات لـ Segments
- ضمان التسليم (في حالة TCP)
- إعادة ترتيب الـ Segments
- التحكم في السرعة (Flow Control)
الفرق بين TCP و UDP
| TCP | UDP |
|---|---|
| موثوق (Reliable) | غير موثوق |
| بطيء نسبياً | سريع |
| يستخدم في: HTTP, HTTPS, FTP | يستخدم في: DNS, Gaming, Video Streaming |
مثال عملي - TCP Three-Way Handshake
قبل ما يبدأ أي اتصال TCP، بيحصل “مصافحة” من 3 خطوات:
Client → Server: SYN (هل ممكن نتصل؟)
Server → Client: SYN-ACK (أيوة، تمام)
Client → Server: ACK (خلاص، يلا نبدأ)
مثال تقني
شوف الاتصالات النشطة على جهازك:
netstat -an | grep ESTABLISHED
النتيجة:
tcp 0 0 192.168.1.5:54321 142.250.185.46:443 ESTABLISHED
يعني جهازك (192.168.1.5) متصل بسيرفر Google (142.250.185.46) على المنفذ 443 (HTTPS).
Layer 3 - Network Layer (طبقة الشبكة)
الوصف
مسؤولة عن التوجيه (Routing) - يعني إزاي البيانات هتوصل من جهازك لأي جهاز تاني في العالم.
الوظيفة
- تحديد أفضل مسار للبيانات
- التعامل مع الـ IP Addresses
- تقسيم البيانات لـ Packets
البروتوكولات
- IP (Internet Protocol)
- ICMP (Ping بيستخدمه)
- Routing Protocols (مثل OSPF, BGP)
مثال عملي
لما بتبعت طلب لموقع في دولة تانية، البيانات مش بتروح في خط مستقيم. بتعدي على عشرات الأجهزة (Routers) وكل واحد بيقرر: “الخطوة الجاية فين؟”
من ناحية السيكيورتي
- IP Spoofing: تزييف الـ IP Address
- Routing Attacks: تغيير مسار البيانات
- DDoS: إغراق السيرفر بطلبات
مثال تقني - Traceroute
traceroute google.com
النتيجة:
1 192.168.1.1 1.2 ms (الراوتر بتاعك)
2 10.5.5.1 5.8 ms (ISP)
3 62.114.x.x 12 ms (عقدة في الطريق)
...
10 142.250.185.46 45 ms (سيرفر Google)
كل سطر = Router في الطريق.
Layer 2 - Data Link Layer (طبقة ربط البيانات)
الوصف
مسؤولة عن نقل البيانات بين جهازين متصلين مباشرة (مثلاً جهازك والـ Switch).
الوظيفة
- استخدام MAC Addresses بدل IP
- تقسيم البيانات لـ Frames
- كشف الأخطاء في الإرسال
MAC Address
كل كرت شبكة (Network Card) في العالم له عنوان فريد اسمه MAC Address، بيبقى شكله كده:
00:1A:2B:3C:4D:5E
مثال عملي - ARP
لما جهازك عايز يكلم جهاز تاني في نفس الـ LAN:
- بيعرف الـ IP بتاعه
- بيستخدم بروتوكول ARP عشان يعرف الـ MAC Address
- بعد كده بيبعت البيانات
من ناحية السيكيورتي
- ARP Spoofing: تزييف جدول ARP عشان تعترض البيانات
- MAC Flooding: إغراق الـ Switch
مثال تقني
شوف جدول ARP على جهازك:
arp -a
النتيجة:
192.168.1.1 00:11:22:33:44:55 dynamic
192.168.1.10 AA:BB:CC:DD:EE:FF dynamic
ده بيقولك: الجهاز اللي IP بتاعه 192.168.1.1 (الراوتر غالباً)، الـ MAC Address بتاعه هو 00:11:22:33:44:55.
Layer 1 - Physical Layer (الطبقة الفيزيائية)
الوصف
دي الطبقة اللي فيها الأسلاك والكوابل والإشارات الكهربائية. كل حاجة ملموسة.
الوظيفة
- تحويل البيانات لإشارات كهربائية أو ضوئية
- نقل الإشارات عبر الوسط (كابل، WiFi، Fiber)
- استقبال الإشارات وتحويلها لبيانات
أمثلة
- كابلات Ethernet
- WiFi Signals
- Fiber Optic
- Bluetooth
من ناحية السيكيورتي
- Wiretapping: التنصت على الكوابل
- Jamming: تشويش على الإشارات اللاسلكية
- Physical Access: الوصول المادي للأجهزة
مثال عملي
لما بتوصل كابل Ethernet من جهازك للراوتر، البيانات بتتحول لإشارات كهربائية بتمشي في الأسلاك النحاسية جوه الكابل.
التدفق الكامل: مثال حي
لما بتفتح موقع https://example.com:
الإرسال (من جهازك)
Layer 7: المتصفح بيعمل HTTP Request
↓
Layer 6: التشفير بـ SSL/TLS
↓
Layer 5: إنشاء Session
↓
Layer 4: تقسيم لـ TCP Segments + إضافة Port Numbers
↓
Layer 3: إضافة IP Addresses (مصدر ووجهة)
↓
Layer 2: إضافة MAC Addresses + تحويل لـ Frames
↓
Layer 1: تحويل لإشارات كهربائية وإرسالها
الاستقبال (على السيرفر)
Layer 1: استقبال الإشارات الكهربائية
↓
Layer 2: قراءة الـ Frame والـ MAC
↓
Layer 3: قراءة الـ IP وتوجيه الـ Packet
↓
Layer 4: إعادة ترتيب الـ Segments
↓
Layer 5: التعامل مع الـ Session
↓
Layer 6: فك التشفير
↓
Layer 7: السيرفر بيفهم الـ HTTP Request ويرد
ليه OSI Model مهم للسيكيورتي؟
1. تحديد مكان الهجوم
كل طبقة ليها هجمات مختلفة:
- Layer 7: SQL Injection, XSS
- Layer 4: SYN Flood
- Layer 3: IP Spoofing
- Layer 2: ARP Poisoning
- Layer 1: Physical Tampering
2. فهم الدفاعات
كل طبقة ليها دفاعات:
- Layer 7: WAF (Web Application Firewall)
- Layer 4: Stateful Firewall
- Layer 3: Router ACLs
- Layer 2: Port Security
3. Troubleshooting
لما حاجة مش شغالة، بتقدر تحدد المشكلة في أنهي طبقة.
OSI vs الواقع العملي
OSI هو نموذج نظري مثالي. في الواقع:
- مش كل البروتوكولات بتلتزم بيه 100%
- TCP/IP Model (4 طبقات) هو المستخدم فعلياً وده اللي هشرحه في المقاليه الجايه
- لكن OSI مهم جداً للفهم والتعليم
خلاصة
OSI Model هو طريقة لفهم كيف البيانات بتتنقل من جهاز لجهاز عبر 7 طبقات:
- Physical: الكوابل والإشارات
- Data Link: MAC Addresses و Frames
- Network: IP Addresses و Routing
- Transport: TCP/UDP و Ports
- Session: إدارة الجلسات
- Presentation: التشفير والضغط
- Application: التطبيقات اللي بتستخدمها
فهمك للنموذج ده هيساعدك:
- تفهم ازاي الشبكات بتشتغل
- تحدد الثغرات في أي طبقة
- تختار الدفاع المناسب
- تعمل Troubleshooting صح