الشبكة والعنوان: من جهازك إلى العالم
درس 1 من 3
1الشبكة والعنوان: من جهازك إلى العالم
الصورة الكبيرةكل صورة ترسلها تُقطّع لحزم صغيرة، كل حزمة تحمل عنوان المرسل والمستقبل، وتقفز بين أجهزة توجيه حتى تصل، ثم تُجمع من جديد.
ماذا تشاهد في الرسم: الحزمة تقفز من جهاز لجهاز. كل راوتر يقرأ عنوان الوجهة فقط ويقرّر الخطوة التالية، ولا أحد يعرف الطريق كاملًا.
خارطة هذا الجزء
المفاهيم بالترتيب، اضغط أيًّا منها للقفز إليه:
طريقان إلى نفس الفكرة
تخيّل البريد: رسالتك في ظرف عليه عنوانك وعنوان المستلم. مكتب البريد في حيّك لا يعرف بيت المستلم، لكنه يعرف أي مكتب أقرب له فيرسلها هناك. الإنترنت نفس الفكرة، والظرف اسمه «حزمة»، والعنوان اسمه «IP».
نموذج TCP/IP بأربع طبقات: الربط (Ethernet/Wi-Fi)، الإنترنت (IP: توجيه الحزم بين الشبكات)، النقل (TCP موثوق ومرتّب بمصافحة ثلاثية وإعادة إرسال، UDP بلا ضمانات وأسرع)، والتطبيقات (HTTP، DNS). العنوان IPv4 من 32 بت وIPv6 من 128 بت، والـNAT يجعل أجهزة بيتك كلها تظهر بعنوان عام واحد.
قبل أن تبدأ
🔌كيف يعمل الحاسوب
تعرف أن كل شيء في الحاسوب بتات.
الفكرة الجوهرية
1عنوان IP: رقم بيت الجهاز
كل جهاز متصل له عنوان، مثل 192.168.1.20 داخل بيتك أو 142.250.74.46 على الإنترنت. العنوان الخاص (يبدأ غالبًا بـ 192.168 أو 10.) لا يُرى من خارج البيت، والراوتر يترجم بينه وبين العنوان العام.
import ipaddress
for text in ["192.168.1.20", "10.0.0.5", "142.250.74.46"]:
ip = ipaddress.ip_address(text)
print(text, "private" if ip.is_private else "public")2الحزمة والراوتر
البيانات لا تسافر قطعة واحدة. تُقسَّم لحزم (عادة أقل من 1500 بايت)، وقد تسلك كل حزمة طريقًا مختلفًا. الراوتر جهاز يقرأ عنوان الوجهة ويرسل الحزمة للقفزة التالية. أمر traceroute (أو tracert في ويندوز) يريك هذه القفزات.
3المنفذ: رقم الشقة داخل العمارة
عنوان IP يوصلك للجهاز، لكن الجهاز يشغّل برامج كثيرة. المنفذ يحدّد أي برنامج: 443 لمواقع HTTPS، و22 لـ SSH، و5432 لقاعدة PostgreSQL. لهذا ترى عناوين مثل localhost:3000.
4TCP مقابل UDP
TCP مثل مكالمة: يبدأ بمصافحة، ويرقّم الحزم، ويعيد إرسال الضائع، فيصل كل شيء بترتيبه. تستخدمه المواقع والبريد. UDP مثل مكبّر صوت: يرسل ولا يتأكّد، أسرع لكن قد تضيع حزم. تستخدمه مكالمات الفيديو والألعاب حيث التأخير أسوأ من فقد إطار.
مثال محلول
المسألة: فتحت https://example.com في المتصفح. ما العنوان والمنفذ والبروتوكول؟ الحل: الاسم يُترجم لعنوان IP (الدرس القادم)، وhttps يعني المنفذ 443 فوق TCP. حزم الطلب تمرّ عبر راوترك ثم مزوّد الخدمة حتى تصل للخادم.
from urllib.parse import urlsplit
DEFAULT = {"http": 80, "https": 443}
for url in ["https://example.com/docs", "http://localhost:3000/api"]:
parts = urlsplit(url)
print(parts.hostname, parts.port or DEFAULT[parts.scheme], parts.scheme)خرافة مقابل حقيقة
| الخرافة | الحقيقة |
|---|---|
| الإنترنت هو الويب. | الويب تطبيق واحد على الإنترنت، ومعه البريد والألعاب ومكالمات الفيديو. |
| الحزمة تسلك طريقًا ثابتًا. | كل راوتر يقرّر لحظيًا، وقد تصل الحزم بطرق وترتيب مختلف ويعيد TCP ترتيبها. |
اختبر فهمك
أي رقم يحدّد البرنامج داخل الجهاز؟
IP يوصلك للجهاز، والمنفذ يوصلك للبرنامج الذي يستمع فيه.
لعبة جماعية سريعة تفضّل أن تخسر إطارًا على أن تتأخّر. أي بروتوكول نقل يناسبها؟
UDP لا ينتظر إعادة الإرسال، فلا يتأخّر بسبب حزمة ضائعة.
ما المنفذ الافتراضي لـ HTTPS؟
80 لـ HTTP بلا تشفير، و443 لـ HTTPS.
بطاقات مراجعة سريعة
تحقق من فهمك
لماذا لا يرى أحد من خارج بيتك عنوان 192.168.1.20؟
لأنه عنوان خاص. الراوتر يستبدله بعنوانه العام عبر NAT، فكل أجهزة البيت تظهر بعنوان واحد.
ما الذي يفعله TCP حين تضيع حزمة؟
يلاحظ أن الاستلام لم يُؤكَّد فيعيد إرسالها، ويرتّب الحزم قبل تسليمها للبرنامج.
ماذا يعني localhost:3000؟
جهازك نفسه (العنوان 127.0.0.1) والبرنامج الذي يستمع على المنفذ 3000، غالبًا خادم تطوير.
مصادر هذا الدرس
مرتّبة بالنوع. ابدأ بالتوثيق الرسمي إذا تبي المرجع الدقيق، وبالمقال أو الفيديو إذا تبي الشرح أولًا.
مقالات1
خلّصت الدرس؟
سجّل الدخول ليُحفظ تقدّمك.