شرح الـ 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.


الطبقات الأربعة

الترتيب (من فوق لتحت)

  1. Application Layer (طبقة التطبيقات)
  2. Transport Layer (طبقة النقل)
  3. Internet Layer (طبقة الإنترنت)
  4. 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

  1. Connection-Oriented: لازم يعمل اتصال الأول (3-Way Handshake)
  2. Reliable: بيضمن وصول البيانات
  3. Ordered: البيانات بتوصل بنفس الترتيب
  4. 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

  1. Connectionless: مفيش handshake، بيبعت على طول
  2. Unreliable: مش مضمون وصول البيانات
  3. No Ordering: ممكن البيانات توصل مش مرتبة
  4. 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).

الوظيفة

  1. التعامل مع MAC Addresses
  2. تحويل البيانات لإشارات (كهربائية، ضوئية، لاسلكية)
  3. النقل عبر الوسط المادي (كابل، 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 طبقات:

  1. Application: التطبيقات (HTTP, DNS, SSH)
  2. Transport: النقل الموثوق (TCP) أو السريع (UDP)
  3. Internet: التوجيه عبر الشبكات (IP, ICMP)
  4. Network Access: الوصول للوسط المادي (Ethernet, WiFi)

فهمك للنموذج ده ضروري عشان:

  • تفهم كيف الإنترنت بيشتغل فعلياً
  • تعرف تحدد الهجوم في أنهي طبقة
  • تختار الأداة والدفاع المناسب
  • تعمل Troubleshooting بكفاءة

في المقالات الجاية هنتعمق أكتر في البروتوكولات والهجمات الخاصة بكل طبقة.