شرح الـ TCP/IP Model
المقدمة
لو فاكر OSI Model اللي شرحناه قبل كده، ده كان نموذج نظري مثالي بـ 7 طبقات. بس في الواقع العملي، الإنترنت كله بيشتغل على نموذج تاني اسمه TCP/IP Model، وده أبسط وأكتر عملية.
تخيل OSI زي كتاب نظريات الميكانيكا، و TCP/IP زي الورشة اللي فعلاً بتصلح العربيات. الاتنين مهمين، بس واحد للفهم والتاني للتطبيق.
يعني إيه TCP/IP Model؟
TCP/IP اختصار لـ Transmission Control Protocol / Internet Protocol. النموذج ده اتطور في السبعينات وهو الأساس اللي بني عليه الإنترنت.
النموذج ده بيتكون من 4 طبقات بس (مش 7 زي OSI)، وكل طبقة بتدمج أكتر من طبقة من OSI.
الطبقات الأربعة
الترتيب (من فوق لتحت)
- Application Layer (طبقة التطبيقات)
- Transport Layer (طبقة النقل)
- Internet Layer (طبقة الإنترنت)
- Network Access Layer (طبقة الوصول للشبكة)
مقارنة سريعة: TCP/IP vs OSI
OSI Model (7) TCP/IP Model (4)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Application ┐
Presentation │──────────→ Application
Session ┘
Transport ──────────→ Transport
Network ──────────→ Internet
Data Link ┐
Physical ┘──────────→ Network Access
يعني TCP/IP دمج الطبقات عشان يبقى أبسط وأسرع في التطبيق.
Layer 4 - Application Layer (طبقة التطبيقات)
الوصف
دي الطبقة اللي المستخدم بيتعامل معاها. بتدمج 3 طبقات من OSI (Application, Presentation, Session) في طبقة واحدة.
البروتوكولات المشهورة
| البروتوكول | الوظيفة | المنفذ |
|---|---|---|
| HTTP | تصفح المواقع | 80 |
| HTTPS | تصفح المواقع بشكل آمن | 443 |
| FTP | نقل الملفات | 21 |
| SMTP | إرسال البريد | 25 |
| POP3 | استقبال البريد | 110 |
| DNS | ترجمة أسماء النطاقات | 53 |
| SSH | الدخول الآمن للأجهزة | 22 |
| Telnet | الدخول غير الآمن | 23 |
مثال عملي - HTTP Request
لما بتفتح موقع، المتصفح بيبعت طلب HTTP زي ده:
GET /index.html HTTP/1.1
Host: www.example.com
User-Agent: Mozilla/5.0
Accept: text/html
Connection: keep-alive
والسيرفر بيرد:
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 1234
<!DOCTYPE html>
<html>
...
من ناحية السيكيورتي
معظم الهجمات بتحصل في الطبقة دي:
- SQL Injection
- XSS (Cross-Site Scripting)
- Command Injection
- File Upload Vulnerabilities
تجربة عملية
اعمل HTTP Request بنفسك باستخدام curl:
curl -v http://example.com
النتيجة هتوريك كل التفاصيل:
* Connected to example.com (93.184.216.34) port 80
> GET / HTTP/1.1
> Host: example.com
> User-Agent: curl/7.68.0
> Accept: */*
>
< HTTP/1.1 200 OK
< Content-Type: text/html
< Content-Length: 1256
Layer 3 - Transport Layer (طبقة النقل)
الوصف
مسؤولة عن توصيل البيانات من تطبيق لتطبيق. هنا بنستخدم إما TCP أو UDP.
TCP (Transmission Control Protocol)
البروتوكول الموثوق - بيضمن وصول كل البيانات بالترتيب الصحيح.
خصائص TCP
- Connection-Oriented: لازم يعمل اتصال الأول (3-Way Handshake)
- Reliable: بيضمن وصول البيانات
- Ordered: البيانات بتوصل بنفس الترتيب
- Error Checking: بيكتشف ويصلح الأخطاء
TCP Three-Way Handshake
Client Server
│ │
│───────── SYN ──────→│ (طلب اتصال)
│ │
│←────── SYN-ACK ─────│ (موافقة)
│ │
│───────── ACK ──────→│ (تأكيد)
│ │
│═══ Connection Open ═══│
مثال عملي - مراقبة TCP
# شوف الاتصالات TCP النشطة
netstat -tn
# النتيجة:
Proto Local Address Foreign Address State
tcp 192.168.1.5:54321 142.250.185.46:443 ESTABLISHED
tcp 192.168.1.5:54322 172.217.16.46:80 TIME_WAIT
UDP (User Datagram Protocol)
البروتوكول السريع - مش بيضمن حاجة، بس سريع جداً.
خصائص UDP
- Connectionless: مفيش handshake، بيبعت على طول
- Unreliable: مش مضمون وصول البيانات
- No Ordering: ممكن البيانات توصل مش مرتبة
- Fast: أسرع من TCP
استخدامات UDP
- DNS Queries: سؤال سريع ومش مهم لو ضاع
- Video Streaming: لو فريم ضاع، مش مشكلة
- Online Gaming: السرعة أهم من الدقة
- VoIP: المكالمات الصوتية
مثال عملي - DNS Query (UDP)
# استخدم dig عشان تشوف DNS query
dig google.com
# النتيجة:
;; Query time: 23 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Mon Jan 06 11:30:15 EET 2026
;; MSG SIZE rcvd: 55
الـ DNS Query دي استخدمت UDP على المنفذ 53.
من ناحية السيكيورتي
هجمات TCP
- SYN Flood: إرسال آلاف الـ SYN بدون إكمال الـ handshake
- TCP Reset Attack: إرسال RST لقطع الاتصال
- Session Hijacking: سرقة Session نشط
هجمات UDP
- UDP Flood: إغراق السيرفر بـ packets UDP
- DNS Amplification: استخدام DNS عشان تكبر حجم الهجوم
تجربة عملية - كشف المنافذ
# فحص منفذ TCP معين
nc -zv example.com 80
# فحص منفذ UDP
nc -zvu example.com 53
# مسح شامل بـ nmap
nmap -sS -sU -p 1-1000 192.168.1.1
Layer 2 - Internet Layer (طبقة الإنترنت)
الوصف
مسؤولة عن توجيه البيانات من شبكة لشبكة عبر الإنترنت. هنا بنتعامل مع IP Addresses.
البروتوكولات الرئيسية
1. IP (Internet Protocol)
البروتوكول الأساسي للتوجيه. في نسختين:
- IPv4: عناوين من 4 أجزاء (مثلاً 192.168.1.1)
- IPv6: عناوين أطول بكتير (مثلاً 2001:0db8:85a3::8a2e:0370:7334)
2. ICMP (Internet Control Message Protocol)
بروتوكول للرسائل الإدارية والأخطاء. أشهر استخدام ليه هو ping.
3. ARP (Address Resolution Protocol)
بيربط بين IP Address و MAC Address.
مثال عملي - Ping
ping -c 4 google.com
النتيجة:
PING google.com (142.250.185.46): 56 data bytes
64 bytes from 142.250.185.46: icmp_seq=0 ttl=116 time=12.3 ms
64 bytes from 142.250.185.46: icmp_seq=1 ttl=116 time=11.8 ms
64 bytes from 142.250.185.46: icmp_seq=2 ttl=116 time=12.1 ms
64 bytes from 142.250.185.46: icmp_seq=3 ttl=116 time=12.0 ms
--- google.com ping statistics ---
4 packets transmitted, 4 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 11.8/12.1/12.3/0.2 ms
كل سطر فيهم packet ICMP راح وجه.
Traceroute - تتبع المسار
traceroute google.com
النتيجة:
1 192.168.1.1 1.2 ms 1.0 ms 1.1 ms
2 10.5.5.1 5.8 ms 5.5 ms 5.9 ms
3 62.114.x.x 12 ms 11 ms 13 ms
4 213.x.x.x 18 ms 17 ms 19 ms
...
10 142.250.185.46 45 ms 44 ms 46 ms
كل سطر = جهاز Router في الطريق.
من ناحية السيكيورتي
- IP Spoofing: تزييف IP المصدر
- ICMP Tunneling: استخدام ICMP لنقل بيانات مخفية
- Ping of Death: إرسال ping بحجم ضخم
- Smurf Attack: استخدام broadcast لمضاعفة هجوم ICMP
تجربة عملية - فحص الـ Routing Table
# على Linux/Mac
route -n
# على Windows
route print
# النتيجة:
Destination Gateway Genmask Flags Iface
0.0.0.0 192.168.1.1 0.0.0.0 UG eth0
192.168.1.0 0.0.0.0 255.255.255.0 U eth0
دي الجداول اللي بتحدد البيانات هتروح فين.
Layer 1 - Network Access Layer (طبقة الوصول للشبكة)
الوصف
دي الطبقة الأقرب للأجهزة المادية. بتدمج طبقتين من OSI (Data Link + Physical).
الوظيفة
- التعامل مع MAC Addresses
- تحويل البيانات لإشارات (كهربائية، ضوئية، لاسلكية)
- النقل عبر الوسط المادي (كابل، WiFi، Fiber)
البروتوكولات والتقنيات
- Ethernet: الكوابل السلكية
- WiFi (802.11): الشبكات اللاسلكية
- PPP: Point-to-Point Protocol
- ARP: ربط IP بـ MAC
MAC Address
كل كرت شبكة ليه عنوان فريد مكون من 6 أزواج:
00:1A:2B:3C:4D:5E
- أول 3 أزواج: الشركة المصنعة
- آخر 3 أزواج: رقم الجهاز
مثال عملي - معرفة MAC Address بتاعك
# على Linux/Mac
ifconfig
# على Windows
ipconfig /all
# النتيجة:
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.5 netmask 255.255.255.0
ether 00:1a:2b:3c:4d:5e txqueuelen 1000
ARP - ربط IP بـ MAC
# شوف جدول ARP
arp -a
# النتيجة:
? (192.168.1.1) at 00:11:22:33:44:55 on en0 ifscope [ethernet]
? (192.168.1.10) at aa:bb:cc:dd:ee:ff on en0 ifscope [ethernet]
ده بيقولك: الجهاز اللي IP بتاعه 192.168.1.1، الـ MAC بتاعه 00:11:22:33:44:55.
من ناحية السيكيورتي
- ARP Spoofing: تزييف جدول ARP عشان تعترض البيانات
- MAC Flooding: إغراق الـ Switch بـ MAC addresses
- Evil Twin: عمل WiFi مزيف بنفس الاسم
- Packet Sniffing: التقاط الـ packets اللي عدية على الشبكة
تجربة عملية - Packet Sniffing
# استخدم tcpdump عشان تشوف الـ packets
sudo tcpdump -i eth0 -n
# النتيجة:
12:30:15.123456 IP 192.168.1.5.54321 > 142.250.185.46.443: Flags [P.], seq 1:100, ack 1, win 502
12:30:15.125678 IP 142.250.185.46.443 > 192.168.1.5.54321: Flags [.], ack 100, win 1024
التدفق الكامل في TCP/IP
السيناريو
أنت بتفتح https://google.com
المسار من جهازك للسيرفر
Layer 4 - Application:
├─ المتصفح بيعمل HTTPS Request
├─ DNS Query للحصول على IP
└─ بيانات جاهزة للإرسال
↓
Layer 3 - Transport:
├─ TCP 3-Way Handshake للمنفذ 443
├─ تقسيم البيانات لـ Segments
└─ إضافة Source Port & Destination Port
↓
Layer 2 - Internet:
├─ إضافة Source IP (192.168.1.5)
├─ إضافة Destination IP (142.250.185.46)
└─ تحويل Segments لـ Packets
↓
Layer 1 - Network Access:
├─ ARP Query للحصول على MAC Address الراوتر
├─ إضافة Source MAC & Destination MAC
├─ تحويل لـ Frames
└─ إرسال كإشارات كهربائية/لاسلكية
ليه TCP/IP مهم في السيكيورتي؟
1. فهم الهجمات حسب الطبقة
Application Layer → Web Attacks (SQLi, XSS)
Transport Layer → Port Scanning, SYN Flood
Internet Layer → IP Spoofing, DDoS
Network Access → ARP Poisoning, Sniffing
2. اختيار الدفاع المناسب
Application Layer → WAF, Input Validation
Transport Layer → Firewall, Rate Limiting
Internet Layer → Router ACLs, Anti-DDoS
Network Access → Port Security, Encryption
3. Penetration Testing
في كل مرحلة من Pentest، بتتعامل مع طبقة معينة:
# Network Access - ARP Scan
arp-scan --local
# Internet Layer - Ping Sweep
nmap -sn 192.168.1.0/24
# Transport Layer - Port Scan
nmap -sS -p- target.com
# Application Layer - Web Scan
nikto -h https://target.com
TCP/IP vs OSI: أنهي أحسن؟
| المقارنة | TCP/IP | OSI |
|---|---|---|
| عدد الطبقات | 4 | 7 |
| التطبيق | عملي (مستخدم فعلاً) | نظري (للتعليم) |
| المرونة | أقل دقة، أكثر عملية | دقيق جداً |
| التطوير | طور مع الإنترنت | طور كنموذج مثالي |
الخلاصة:
- استخدم TCP/IP لما تشتغل فعلياً
- استخدم OSI لما تشرح أو تتعلم
خلاصة
TCP/IP Model هو النموذج العملي المستخدم فعلياً في الإنترنت، ومكون من 4 طبقات:
- Application: التطبيقات (HTTP, DNS, SSH)
- Transport: النقل الموثوق (TCP) أو السريع (UDP)
- Internet: التوجيه عبر الشبكات (IP, ICMP)
- Network Access: الوصول للوسط المادي (Ethernet, WiFi)
فهمك للنموذج ده ضروري عشان:
- تفهم كيف الإنترنت بيشتغل فعلياً
- تعرف تحدد الهجوم في أنهي طبقة
- تختار الأداة والدفاع المناسب
- تعمل Troubleshooting بكفاءة
في المقالات الجاية هنتعمق أكتر في البروتوكولات والهجمات الخاصة بكل طبقة.