Unicast وMulticast وBroadcast في MAC Address: كيف تميزها؟

مشاركة

في Ethernet لا يعني عنوان MAC دائمًا جهازًا واحدًا. حقل Destination MAC داخل الـFrame يمكن أن يشير إلى واجهة واحدة Unicast، أو إلى مجموعة من الواجهات Multicast، أو إلى جميع الأجهزة داخل نطاق البث المحلي Broadcast.

Unicast وMulticast وBroadcast في MAC Address: كيف تميزها؟

أسرع طريقة للتمييز بينها ليست حفظ بادئات مثل 01:00:5E، بل فحص أقل بت أهمية في أول Octet من عنوان MAC، وهو البت المعروف باسم I/G bit أو M bit. إذا كانت قيمته 0 فالعنوان Individual/Unicast، وإذا كانت 1 فهو Group Address، أي Multicast أو Broadcast.

القاعدة الأساسية: ماذا يخبرنا I/G bit؟

عنوان MAC الشائع في Ethernet يتكون من 48 بت، لكن البت الأقل أهمية في الـOctet الأول له معنى خاص. توضح إرشادات IEEE الخاصة بعناوين EUI أن I/G bit يحدد ما إذا كان العنوان فرديًا أم جماعيًا، بينما يوضح RFC 9542 المعنى نفسه باستخدام تسمية M bit أو Group/Multicast bit.

نوع Destination MAC I/G bit مثال المقصود بالاستقبال
Unicast 0 00:00:5E:00:53:21 واجهة واحدة
Multicast 1 01:00:5E:01:02:03 مجموعة من الواجهات
Broadcast 1 FF:FF:FF:FF:FF:FF جميع الأجهزة ضمن Broadcast Domain المناسب

هناك حيلة عملية عند قراءة العنوان بصيغة Hex: إذا كانت قيمة الـOctet الأول عددًا زوجيًا، فإن أقل بت فيه يساوي صفرًا، ولذلك يكون العنوان Unicast. وإذا كانت القيمة فردية، فإن أقل بت يساوي واحدًا، ولذلك يكون العنوان Group Address.

مثلًا 02 بالهيكساديسيمال عدد زوجي، لذلك العنوان الذي يبدأ بـ02: يمكن أن يكون Unicast رغم أن البت الآخر الخاص بالإدارة المحلية مفعّل. أما 01 و33 وFF فهي قيم فردية، ولذلك يكون I/G bit فيها مساويًا للواحد.

ما هو Unicast MAC Address؟

عنوان Unicast أو Individual Address يمثل وجهة واحدة على مستوى MAC. عندما يعرف Ethernet Switch المنفذ المرتبط بعنوان الوجهة من خلال جدول MAC الخاص به، يستطيع إرسال الـFrame إلى ذلك المنفذ فقط بدل نشره على بقية المنافذ.

مثلًا، إذا كان Destination MAC هو 00:00:5E:00:53:21، فإن أول Octet هو 00، وأقل بت فيه يساوي صفرًا، لذلك العنوان Unicast.

من المهم هنا التفريق بين نوع العنوان وبين طريقة تعامل السويتش معه في لحظة معينة. إذا وصل Frame يحمل Unicast Destination لم يتعلم السويتش موقعه بعد، فقد يقوم بعملية Unknown Unicast Flooding داخل الـVLAN. هذا لا يحوّل عنوان MAC إلى Broadcast؛ فهو يظل عنوان Unicast، لكن السويتش لا يعرف بعد المنفذ الصحيح الذي يقود إليه.

لفهم أين يظهر عنوان الوجهة داخل الإطار نفسه، يشرح مقال بنية الـFrame وحقوله العلاقة بين Destination MAC وSource MAC وبقية مكونات إطار Ethernet.

ما هو Multicast MAC Address؟

Multicast MAC هو Group Address مخصص لمجموعة من الواجهات بدل واجهة واحدة. تكون قيمة I/G bit فيه مساوية للواحد، لكن العنوان ليس القيمة الخاصة بالبث الشامل FF:FF:FF:FF:FF:FF.

وهنا يوجد أحد أكثر الأخطاء شيوعًا: ليس كل عنوان Multicast في Ethernet يبدأ بـ01:00:5E. هذه البادئة مرتبطة أساسًا بطريقة تمثيل IPv4 Multicast على Ethernet، وليست تعريفًا عامًا لكل عناوين MAC الجماعية.

لماذا نرى 01:00:5E مع IPv4 Multicast؟

يحدد RFC 1112 طريقة ربط IPv4 Multicast بعناوين Ethernet. تُستخدم البادئة 01:00:5E، ثم توضع أقل 23 بت من عنوان IPv4 Multicast في الجزء المتبقي من عنوان MAC.

ولهذا تقع عناوين Ethernet المستخدمة لهذا الغرض في المجال من:

01:00:5E:00:00:00

إلى:

01:00:5E:7F:FF:FF

والتفصيل المهم هو أن عنوان IPv4 Multicast يحتوي على عدد أكبر من البتات المهمة مقارنة بعدد البتات المستخدمة في هذا الربط. لذلك يمكن لما يصل إلى 32 عنوان IPv4 Multicast مختلفًا أن ينتج عنه Destination MAC واحد. لهذا لا يكفي MAC وحده دائمًا لتحديد مجموعة IPv4 Multicast النهائية؛ قد يحتاج المضيف إلى فحص طبقة IP أيضًا لتصفية البيانات غير المطلوبة.

وماذا عن IPv6 Multicast؟

IPv6 يستخدم نطاقًا مختلفًا على Ethernet. وفق RFC 2464، يُحوّل عنوان IPv6 Multicast إلى Ethernet Destination MAC يبدأ بـ:

33:33

ثم تُستخدم آخر 32 بت من عنوان IPv6 Multicast لإكمال العنوان.

مثلًا، مجرد رؤية عنوان يبدأ بـ33:33: يجب أن تلفت الانتباه إلى أنه Group Address؛ فالـOctet الأول 33 قيمته فردية، وبالتالي M bit فيه يساوي واحدًا. ويؤكد RFC 9542 تخصيص نطاق 33:33:00:00:00:00 إلى 33:33:FF:FF:FF:FF لهذا الاستخدام مع IPv6.

ما هو Broadcast MAC Address؟

في Ethernet توجد قيمة خاصة معروفة للبث الشامل:

FF:FF:FF:FF:FF:FF

جميع البتات الـ48 في هذا العنوان تساوي واحدًا. لذلك فهو Group Address من ناحية I/G bit، لكنه يمثل الحالة الخاصة التي تستهدف جميع محطات Ethernet ضمن Broadcast Domain المناسب.

عندما يستقبل Switch إطار Broadcast، فإنه يرسله عادة إلى المنافذ الأخرى التابعة لنفس الـVLAN أو نطاق Layer 2، بدل اختيار منفذ واحد كما يفعل مع Known Unicast. ولا يقوم Router بتمرير Ethernet Frame نفسه من شبكة Layer 2 إلى أخرى؛ عند عبور الراوتر تنتهي تلك الـFrame ويُنشأ إطار جديد على الوصلة التالية حسب التقنية والوجهة.

من أشهر الحالات التي يظهر فيها Ethernet Broadcast طلب ARP في شبكات IPv4 عندما يريد جهاز اكتشاف عنوان MAC المرتبط بعنوان IPv4 محلي ولا يعرفه بعد.

هل IPv6 يستخدم FF:FF:FF:FF:FF:FF؟

يجب الفصل هنا بين طبقتين مختلفتين. IPv6 لا يملك مفهوم IP Broadcast Address، ويستخدم Multicast بدلًا منه في وظائف عديدة مثل Neighbor Discovery. لكن هذا لا يعني أن Ethernet نفسه فقد قدرته على حمل Broadcast Frame.

بعبارة أخرى، FF:FF:FF:FF:FF:FF هو عنوان Broadcast على Layer 2. أما القول إن IPv6 لا يستخدم Broadcast فيشير إلى بنية العنونة على Layer 3. وجود IPv6 فوق Ethernet لا يغيّر تعريف عنوان Ethernet Broadcast نفسه.

وهذا الاختلاف بين الطبقات هو السبب في فصل هذا الموضوع عن مقال Unicast وBroadcast وMulticast وAnycast في الشبكات؛ ذلك المقال يشرح أنماط إيصال Traffic وعناوين IP بصورة أوسع، بينما التركيز هنا على بتات Destination MAC وسلوك Ethernet.

كيف تميز عنوان MAC بسرعة؟

  1. إذا كان العنوان كاملًا FF:FF:FF:FF:FF:FF فهو Broadcast.
  2. إذا لم يكن Broadcast، افحص أقل بت في أول Octet.
  3. إذا كان هذا البت 0 فالعنوان Individual/Unicast.
  4. إذا كان هذا البت 1 فالعنوان Group/Multicast.

مثلًا العنوان 02:42:AC:11:00:02 يبدأ بـ02. تمثيل 02 ثنائيًا هو 00000010، وبالتالي أقل بت يساوي صفرًا: العنوان Unicast.

أما 33:33:FF:12:34:56 فيبدأ بـ33، وهي القيمة الثنائية 00110011. أقل بت يساوي واحدًا، لذلك العنوان Group/Multicast.

لا تخلط بين I/G bit وU/L bit

أول Octet في عنوان MAC يحتوي أيضًا على بت مهم آخر هو U/L bit أو Universal/Local bit. هذا البت لا يحدد ما إذا كانت الوجهة Unicast أم Multicast؛ بل يرتبط بطريقة إدارة العنوان وما إذا كان ضمن مساحة الإدارة العالمية أو المحلية.

البت عندما يساوي 0 عندما يساوي 1
I/G أو M Individual / Unicast Group / Multicast أو Broadcast
U/L أو X Universal / Global Local

لذلك يمكن أن يكون عنوان MAC Locally Administered وفي الوقت نفسه Unicast. مثال واضح هو عنوان يبدأ بـ02: U/L bit فيه يساوي واحدًا، لكن I/G bit يساوي صفرًا.

هذه نقطة مهمة خصوصًا مع الأنظمة الحديثة التي يمكنها استخدام عناوين MAC محلية أو عشوائية لأغراض الخصوصية؛ لا يجوز استنتاج أن العنوان Multicast فقط لأنه ليس عنوانًا عالميًا تقليديًا صادرًا من مساحة IEEE.

كيف يتعامل Ethernet Switch مع الأنواع الثلاثة؟

مع Known Unicast، يبحث السويتش عن Destination MAC في جدول التوجيه الخاص بالطبقة الثانية، وغالبًا يرسل الـFrame إلى المنفذ المرتبط به فقط.

مع Unknown Unicast، يكون Destination MAC نفسه Unicast، لكن السويتش لم يتعلم مكانه بعد، لذلك قد يرسل نسخة إلى عدة منافذ ضمن الـVLAN بحثًا عن الوجهة.

مع Broadcast، تكون الوجهة FF:FF:FF:FF:FF:FF ويُرسل الإطار إلى نطاق Layer 2 المعني.

أما Multicast فالسلوك يعتمد أيضًا على قدرات السويتش وإعداده. في شبكة لا تعرف عضوية مجموعات Multicast، يمكن أن تنتشر الحركة إلى منافذ متعددة. أما تقنيات مثل IGMP Snooping في IPv4 وMLD Snooping في IPv6 فتسمح للسويتش بتعلم المنافذ المهتمة بالمجموعة وتقليل إرسال البيانات إلى الأجهزة غير المشاركة.

هل Destination MAC هو دائمًا عنوان الجهاز النهائي؟

لا. داخل شبكة Ethernet المحلية قد يكون Destination MAC هو MAC الخاص بالجهاز النهائي مباشرة. لكن إذا كانت حزمة IP متجهة إلى شبكة بعيدة، فعادة يحتاج الجهاز أولًا إلى إيصال الـFrame إلى الـNext Hop، مثل Default Gateway.

في هذه الحالة قد يحمل الـPacket عنوان IP لخادم بعيد، بينما يحمل Ethernet Frame عنوان MAC الخاص بواجهة الراوتر الموجودة على الشبكة المحلية. عند انتقال الـPacket إلى وصلة أخرى، يُبنى Frame جديد بعناوين MAC تناسب تلك الوصلة.

يمكن تتبع هذه العملية بتفصيل أكبر في شرح كيف يعمل MAC وIP معًا من طرف إلى طرف، وهو ما يوضح سبب تغيّر عناوين Layer 2 أثناء الرحلة مقابل دور عناوين Layer 3.

مقارنة Unicast وMulticast وBroadcast في MAC Address

الخاصية Unicast Multicast Broadcast
نوع MAC Individual Group Group خاص
I/G bit 0 1 1
عدد الوجهات المقصودة واجهة واحدة مجموعة جميع الأجهزة في نطاق البث
مثال 00:00:5E:00:53:21 01:00:5E:01:02:03 FF:FF:FF:FF:FF:FF
IPv4 Multicast يستخدم عادة نطاق 01:00:5E...
IPv6 Multicast يستخدم 33:33... IPv6 نفسه لا يملك IP Broadcast

الخلاصة

القاعدة التي تستحق الحفظ هي أن I/G bit في أول Octet هو الذي يفرق بين Individual وGroup MAC Address. إذا كانت قيمته صفرًا فالعنوان Unicast، وإذا كانت واحدًا فهو عنوان Group. وبعد ذلك تمثل القيمة FF:FF:FF:FF:FF:FF الحالة الخاصة لـEthernet Broadcast، بينما بقية عناوين Group المستخدمة لهذا الغرض تكون Multicast.

ولا تعتمد على بادئة واحدة للحكم على كل Multicast MAC. 01:00:5E مرتبطة بربط IPv4 Multicast مع Ethernet، بينما يستخدم IPv6 Multicast عناوين تبدأ بـ33:33، كما توجد عناوين Group أخرى لأغراض وبروتوكولات مختلفة.

وفهم هذه التفاصيل يصبح أسهل عندما توضع ضمن الصورة الكاملة لـأساسيات الشبكات وعمل Switch وRouter وMAC وIP، لأن نوع Destination MAC ليس مجرد صيغة عنوان؛ بل هو جزء أساسي من القرار الذي يحدد كيف تتحرك الـFrame داخل شبكة Layer 2.

شارك برأيك

لديك إضافة، سؤال أو تجربة مرتبطة بالموضوع؟ اكتبها وشارك بها القراء.