العناوين: IP وMAC وARP وIPv6
درس 4 من 4
4العناوين: IP وMAC وARP وIPv6
الصورة الكبيرةساعي البريد يحتاج عنوان المدينة ليعرف أين يرسل الرسالة، ثم يحتاج رقم الباب ليسلّمها. الشبكة كذلك: عنوان IP يوصل الحزمة للشبكة الصحيحة، وعنوان MAC يسلّمها للجهاز الصحيح داخلها.
ماذا تشاهد في الرسم: MAC عنوان ثابت للكرت، وIP عنوان منطقي على الشبكة. الأول للقفزة، والثاني للرحلة.
خارطة هذا الجزء
المفاهيم بالترتيب، اضغط أيًّا منها للقفز إليه:
طريقان إلى نفس الفكرة
عنوان MAC مثل رقم الهوية: يولد مع الجهاز ولا يتغير. عنوان IP مثل عنوان السكن: يتغير إذا انتقلت. في بيتك يعطيك الراوتر عنوانًا «داخليًا» مثل 192.168.1.20، وملايين البيوت تستخدم العنوان نفسه لأنه لا يخرج أبدًا؛ للخارج يظهر البيت كله بعنوان واحد عام.
MAC بطول 48 بت (6 بايت ست عشرية، أولها OUI للمصنّع) ويعمل في الطبقة 2. IPv4 بطول 32 بت في أربعة أوكتيتات، ويُقسم لجزء شبكة وجزء مضيف بالبادئة (/24). النطاقات الخاصة في RFC 1918: 10.0.0.0/8 و172.16.0.0/12 و192.168.0.0/16. ARP يربط IP بـ MAC داخل الشبكة. IPv6 بطول 128 بت، بلا بث، ويُختصر بـ ::.
قبل أن تبدأ
🧅الطبقات
MAC في الطبقة 2 وIP في الطبقة 3.
🔢الثنائي
مفيد أن تعرف أن 8 بتات تعطي أرقامًا من 0 إلى 255.
الفكرة الجوهرية
1عنوانان لكل جهاز
ستجد عنوان MAC مكتوبًا تحت الراوتر أو في إعدادات جوالك، مثل 3C:22:FB:9A:10:7E. أول ثلاثة بايتات تخبرك بالشركة المصنّعة. عنوان IP تجده في الإعدادات نفسها، ويتغير حين تنتقل من شبكة البيت لشبكة العمل.
2IPv4 بالثنائي
الحاسوب لا يرى 192.168.1.20؛ يرى 32 صفرًا وواحدًا. كل رقم من الأربعة «أوكتيت» من 8 بتات، أكبر قيمة له 255. فهم الثنائي هو مفتاح الشبكات الفرعية في الجزء التالي.
غيّر العنوان وشاهد بتاته.
address = "192.168.1.20"
octets = [int(part) for part in address.split(".")]
bits = [format(octet, "08b") for octet in octets]
print(" . ".join(bits))
print("as one number:", int("".join(bits), 2))3العناوين الخاصة والعامة
بعض العناوين محجوزة للاستخدام الداخلي ولا يمررها أي موجّه على الإنترنت. لهذا يستطيع بيتك وبيت جارك استخدام 192.168.1.20 في الوقت نفسه. الراوتر يترجمها للعنوان العام بـ NAT، وستراه في جزء التوجيه.
| النطاق | البادئة | العناوين | أين تراه |
|---|---|---|---|
10.0.0.0 – 10.255.255.255 | /8 | 16,777,216 | الشركات الكبيرة والسحابة |
172.16.0.0 – 172.31.255.255 | /12 | 1,048,576 | الشبكات المتوسطة وحاويات Docker |
192.168.0.0 – 192.168.255.255 | /16 | 65,536 | البيوت والمكاتب الصغيرة |
127.0.0.1 | /8 | — | الجهاز نفسه (localhost) |
169.254.x.x | /16 | — | فشل DHCP: الجهاز أعطى نفسه عنوانًا |
لاحظ أن 172.40.1.1 عام: النطاق الخاص من 172.16 إلى 172.31 فقط.
import ipaddress
for text in ["192.168.1.20", "10.4.0.9", "172.20.1.1", "172.40.1.1", "8.8.8.8", "169.254.3.7"]:
ip = ipaddress.ip_address(text)
kind = "private" if ip.is_private else "public"
if ip.is_link_local:
kind = "link-local (DHCP failed?)"
print(f"{text:<14} {kind}")4ARP: من IP إلى MAC
جهازك يعرف عنوان IP للبوابة من الإعدادات، لكن الإطار يحتاج MAC. فيبث سؤالًا للجميع: «من صاحب 192.168.1.1؟» فترد البوابة وحدها بعنوانها، ويحفظه جهازك في جدول ARP دقائق. شغّل arp -a في الطرفية وسترى الجدول.
5IPv6: عناوين لا تنتهي
IPv4 يعطي نحو 4.3 مليار عنوان فقط، وانتهت منذ سنوات. IPv6 بطول 128 بت، يُكتب بثماني مجموعات ست عشرية، ويحذف الأصفار البادئة ويختصر أطول سلسلة أصفار بـ :: مرة واحدة. لا يوجد فيه بث؛ يحل محله البث المتعدد (Multicast).
في 28 مارس 2026 تجاوزت نسبة مستخدمي Google عبر IPv6 نصف الحركة (50.1%) ليوم واحد لأول مرة، ثم عادت بين 45 و48%. الخلاصة العملية: ستعمل مع الإصدارين معًا (Dual Stack) سنوات.
بايثون يختصر العنوان ويوسّعه بالقواعد نفسها.
import ipaddress
full = "2001:0db8:0000:0000:0000:ff00:0042:8329"
ip = ipaddress.ip_address(full)
print("short:", ip.compressed)
print("long: ", ip.exploded)
print("link-local fe80::1 ?", ipaddress.ip_address("fe80::1").is_link_local)مثال محلول
المسألة: شغّلت ipconfig فظهر: IPv4 192.168.1.37، القناع 255.255.255.0، البوابة 192.168.1.1. ماذا تعرف؟ الحل: العنوان خاص (192.168)، والقناع يعني /24، أي الأجهزة من .1 إلى .254 في شبكتك المحلية. أي عنوان آخر خارج هذا المدى يذهب للبوابة .1، وجهازك يحتاج MAC البوابة فقط عبر ARP.
خرافة مقابل حقيقة
| الخرافة | الحقيقة |
|---|---|
| عنوان IP يحدد مكانك بدقة. | يدل غالبًا على مزوّد الخدمة والمدينة تقريبًا، لا البيت. |
| عنوان MAC يعبر الإنترنت. | يبقى داخل الشبكة المحلية؛ كل موجّه يبني إطارًا جديدًا. |
| IPv6 مجرد عنوان أطول. | يغيّر أشياء: لا بث، إعداد تلقائي للعناوين، ولا حاجة لـ NAT في الغالب. |
أين تقابله في العمل
🛠️دعم فني
169.254 أو عنوان من شبكة أخرى يدلّك فورًا على المشكلة.
🐳مطوّر
127.0.0.1 داخل حاوية Docker ليس جهازك؛ لكل حاوية عنوانها.
🔐أمن
تسميم ARP هجوم شهير يدّعي فيه المهاجم أنه البوابة.
اختبر فهمك
أي عنوان من هذه خاص (RFC 1918)؟
النطاق الخاص 172.16.0.0/12 يمتد من 172.16 إلى 172.31.
ماذا يفعل ARP؟
الاسم مهمة DNS، والتوزيع مهمة DHCP. ARP يربط الطبقة 3 بالطبقة 2.
كم بت في عنوان IPv6؟
IPv4 32 بت، وMAC 48، وIPv6 128.
أي اختصار صحيح لـ 2001:0db8:0000:0000:0000:0000:0000:0001؟
:: مرة واحدة فقط، ولا نحذف إلا الأصفار البادئة في كل مجموعة.
أي عنوان خاص حسب RFC 1918؟
النطاقات الخاصة: 10.0.0.0/8 و172.16.0.0/12 و192.168.0.0/16.
كم بتًا في عنوان IPv6؟
IPv4 بـ 32، وMAC بـ 48، وIPv6 بـ 128.
بطاقات مراجعة سريعة
تحقق من فهمك
لماذا يستطيع ملايين البيوت استخدام 192.168.1.20 في الوقت نفسه؟
لأنه عنوان خاص لا يخرج للإنترنت؛ الراوتر يترجمه لعنوان عام فريد.
جهازك يرسل لخادم في قارة أخرى. MAC من يضعه على الإطار؟
MAC البوابة، لأنها القفزة التالية.
اكتب 255 بالثنائي.
11111111: ثمانية آحاد.
مصادر هذا الدرس
مرتّبة بالنوع. ابدأ بالتوثيق الرسمي إذا تبي المرجع الدقيق، وبالمقال أو الفيديو إذا تبي الشرح أولًا.
خلّصت الدرس؟
سجّل الدخول ليُحفظ تقدّمك.