أوراق المراجعة والنماذج الذهنية
لاحظ
افتح هذا الملف فقط بعد أن تبني المفهوم في مرحلته. هنا ذاكرتك الخارجية، لا طريق اختصارٍ للفهم. إن نظرتَ هنا قبل أن تشتقّ، حفظتَ بدل أن تفهم — وذلك نقيض المنهج كله.
المحتوى
🧠 النموذج الذهني #1 — العنوانان (أهم نموذجٍ في المنهج)
| MAC | IP | |
|---|---|---|
| التشبيه | اسمك | عنوانك |
| البنية | مسطّح (flat) | هرمي (hierarchical) |
| يقول | من أنت | أين أنت |
| المصدر | محروقٌ في العتاد (مصنع) | يُعطى/يتغيّر حسب الشبكة |
| النطاق | محلّيٌّ (على الـ LAN) | عالميٌّ (end-to-end) |
| عبر الرحلة | يتغيّر كل قفزة | ثابتٌ من المصدر للوجهة |
| الطبقة | 2 (Data Link) | 3 (Network) |
لاحظ
الجملة الذهبية: الـ IP يقرّر الوجهة النهائية؛ الـ MAC ينفّذ القفزة الواحدة. والجسر بينهما هو ARP.
🧠 النموذج الذهني #2 — التغليف (Encapsulation)
textعند الإرسال (تنزل الطبقات، كلٌّ تلفّ ما فوقها): [ Ethernet | IP | TCP | GET / HTTP/1.1 | FCS ] └─ L2 ──┘ └L3┘ └L4┘ └────── L7 ──────┘ MAC IP port بيانات التطبيق عند الاستقبال: تُزال من الخارج للداخل (decapsulation). عبر كل راوتر: غلاف L2 (MAC) يُنزَع ويُعاد بناؤه؛ ما بداخله (IP+...) لا يُمَسّ. مؤشّرات «الطبقة الأعلى» التي تقود فكّ التغليف: Ethernet.Type → 0x0800=IP, 0x0806=ARP IP.Protocol → 6=TCP, 17=UDP, 1=ICMP TCP/UDP.port → 22=SSH, 80=HTTP, 443=HTTPS
🧠 النموذج الذهني #3 — جدول الطبقات الموحّد
| # | OSI | TCP/IP الواقعي | الوحدة | العنوان | أمثلة | المنظار |
|---|---|---|---|---|---|---|
| 7 | Application | Application | data | — | HTTP, SSH, DNS | curl, telnet |
| 6 | Presentation | (داخل التطبيق) | — | — | TLS, ASCII | — |
| 5 | Session | (داخل التطبيق) | — | — | — | — |
| 4 | Transport | Transport | segment/datagram | port | TCP, UDP | ss, netstat |
| 3 | Network | Internet | packet | IP | IP, ICMP | ip route, ping |
| 2 | Data Link | Link | frame | MAC | Ethernet, ARP | ip link, ip neigh |
| 1 | Physical | Link | bit | — | كيبل، راديو | — |
لاحظ
الحقيقة: الإنترنت يشغّل 4 طبقات (TCP/IP)؛ السبع (OSI) إطارٌ مرجعيٌّ مثالي.
📋 ورقة العناوين الخاصّة
text127.0.0.0/8 loopback — لا يغادر الجهاز (127.0.0.1 = localhost, ::1 لـ IPv6) 0.0.0.0 (bind) = كل الواجهات | (route) = الافتراضي/المجهول 255.255.255.255 broadcast محلّي النطاقات الخاصّة (RFC1918): 10.0.0.0/8 172.16.0.0/12 192.168.0.0/16 أمثلة شائعة: 10.0.2.15 (شبكة VirtualBox NAT)، 192.168.x.x (راوتر منزلي)
📋 ورقة المنافذ
textاحفظ هذه الثلاثة (هولبرتون يطلبها): 22 SSH 80 HTTP 443 HTTPS للسياق فقط (لا تحفظها — افهم المبدأ): 20/21 FTP 23 telnet 25 SMTP 53 DNS 110 POP3 143 IMAP 3306 MySQL 5432 PostgreSQL 8080 HTTP-alt المدى: 0–65535 (16 بِتّة). 0–1023 = well-known/privileged (تحتاج root للربط). socket = IP:port. المحادثة = (IP المصدر, port المصدر, IP الوجهة, port الوجهة).
📋 ورقة TCP مقابل UDP
textTCP UDP اتصال: موجَّه باتصال (handshake) بلا اتصال (fire & forget) الموثوقية: تسلسل + ACK + إعادة لا شيء (best-effort) الترتيب: مضمون غير مضمون السرعة: أبطأ (ثمن الضمانات) أسرع التحكّم: تدفّق + ازدحام لا الاستخدام: ويب، SSH، نقل ملفات بثٌّ حيّ، ألعاب، DNS، VoIP الجوهر: طبقة ثقةٍ فوق IP IP عارٍ + منافذ المصافحة: SYN → SYN-ACK → ACK —
📋 ورقة الأوامر (منظارٌ لكل طبقة)
bash# L2 — Data Link ip link show # الواجهات + MAC ip neigh # ذاكرة ARP (IP↔MAC للجيران) # L2+L3 ip addr show # العناوين على كل واجهة (inet=v4, inet6=v6) ip -4 -o addr show # IPv4، سطرٌ لكل واجهة (سهل التحليل) ifconfig # القديم (net-tools) — قد يحتاج تثبيتاً # L3 — Network / ICMP ip route # جدول التوجيه (default via = gateway) ping -c 5 8.8.8.8 # 5 طلبات ICMP echo traceroute 8.8.8.8 # الراوترات على المسار (استغلال TTL) # L4 — Transport ss -tulpn # كل المنافذ (TCP/UDP, listening, numeric, +PID) netstat -lp # listening + PID/program (يشمل unix) — sudo للـ PID # L4→L7 — كن العميل/الخادم nc -l 98 # خادمٌ يستمع على 98 nc HOST PORT # عميل telnet HOST PORT # عميل TCP خام (افحص المنافذ، تكلّم HTTP بيدك) # حلّ الأسماء (L7) cat /etc/hosts # جدول الأسماء المحلّي (يُستشار قبل DNS) getent hosts NAME # حلّ اسمٍ كما يفعل النظام فعلاً
📋 ورقة Bash للتاسكات
bash#!/usr/bin/env bash # السطر 1 (إلزامي بالضبط). env → يجد bash في PATH # تعليقٌ يشرح السكربت # السطر 2 (إلزامي) $1 $2 ... # المعاملات الموضعية (وسائط السطر) $# # عدد الوسائط "$@" # كل الوسائط (مقتبسة، كلٌّ منفصلة) [ -z "$1" ] # هل $1 فارغ؟ | [ "$#" -eq 0 ] echo -e "a\tb" # تفسير \t (تبويب) و \n chmod +x script # اجعله قابلاً للتنفيذ shellcheck script # يجب أن يمرّ بلا أخطاء (أشهر: SC2086 → اقتبس متغيّراتك)
🗺️ الشجرة وقد اكتملت
text[00] المحادثة المستحيلة (المشكلة الأم: حاسبان يريدان المعنى) │ ┌───────────────────┴───────────────────┐ الجذع أ: المكدّس الجذع ب: الأدوات │ │ [01] سلكٌ واحد ─ L1/L2 ip link / ip neigh MAC، frame، LAN │ │ │ [02] شبكاتٌ كثيرة ─ L3 ip addr/route, traceroute IP، subnet، router، ARP، │ public/private، NAT، IPv6، ◄──── ARP يربط ──► │ WAN، الإنترنت │ │ │ [03] الميل الأخير ─ L4 ss / netstat port، socket، TCP/UDP، │ المصافحة الثلاثية │ │ │ [04] للمكدّس اسم ─ التركيب ◄── OSI/TCP-IP، التغليف │ │ │ [05] التحكّم ─ ICMP/ping، 127.0.0.1، 0.0.0.0 ─ ping / traceroute │ │ [06] الأسماء ─ /etc/hosts، ترتيب الاستشارة getent │ │ └──────────────► [07] يداك على السلك ◄─────┘ التحم الجذعان: nc, telnet، Bash │ التاسكات السبعة = لعب أطفال