الاطّلاع على المصدر على GitHub
لنلقِ نظرة على الطريقة التي تحدد بها شبكة Thread كل جهاز من الأجهزة المتصلة بالشبكة. وأنواع العناوين التي يستخدمونها للتواصل مع بعضهم البعض.
المستويات
هناك ثلاثة نطاقات في شبكة Thread للمعالجة الأحادية:
- رابط محلي: جميع الواجهات التي يمكن الوصول إليها من خلال إرسال لاسلكي واحد
- شبكة متداخلة (Mesh-Local): جميع الواجهات التي يمكن الوصول إليها ضمن شبكة Thread نفسها
- عالمي: جميع الواجهات التي يمكن الوصول إليها من خارج شبكة Thread
يتوافق أول نطاقين مع البادئات التي تحددها شبكة Thread.
تحتوي Link-Local على بادئات fe80::/16
، بينما تحتوي Mesh-Local على بادئات
fd00::/8
Unicast
هناك العديد من عناوين البث الأحادي IPv6 التي تحدِّد جهاز Thread واحد. ولكل منهما دالة مختلفة بناءً على النطاق وحالة الاستخدام.
قبل أن نتناول كل نوع بالتفصيل، لنتعرف أكثر على نوع شائع يسمى محدد مواقع التوجيه (RLOC). يحدد RLOC واجهة Thread استنادًا إلى وموقعه في طوبولوجيا الشبكة.
كيفية إنشاء محدِّد مواقع التوجيه
يتم تخصيص "معرّف جهاز التوجيه" و"معرّف ثانوي" لجميع الأجهزة. يحتفظ كل جهاز توجيه جدول جميع أطفالهم، الذي يعرّف مجموعتهم بشكل فريد ضمن المخطط. على سبيل المثال، ضع في الاعتبار العُقد المميزة في التالي، حيث يكون الرقم في جهاز التوجيه (الخماسي) هو معرف الموجه، والرقم في جهاز النهاية (الدائرة) هو رقم تعريف الطفل:
يتوافق "رقم تعريف جهاز التوجيه" لكل طفل مع رقم تعريفه الرئيسي (جهاز التوجيه). لأن جهاز التوجيه ليست طفلاً، تكون قيمة الرقم التعريفي الفرعي لجهاز التوجيه دائمًا 0. تُعد هذه القيم معًا فريدة من نوعها لكل جهاز في شبكة Thread، كما تُستخدم لإنشاء RLOC16، الذي يُمثل آخر 16 بت من RLOC.
على سبيل المثال، إليك كيفية حساب RLOC16 للعقدة العلوية اليسرى (جهاز التوجيه رقم التعريف = 1 والرقم التعريفي الفرعي = 1):
RLOC16 هو جزء من معرّف الواجهة (IID)، الذي يتجاوب مع آخر 64 بت من عنوان IPv6. يمكن استخدام بعض معرّفات IID لتحديد بعض أنواع من واجهات Thread. على سبيل المثال، يكون معرّف IID لـ RLOC دائمًا على النحو التالي:
0000:00ff:fe00:RLOC16
ينتج عن معرّف IID، بالإضافة إلى بادئة شبكة محلية متداخلة، RLOC. على سبيل المثال:
باستخدام بادئة Mesh-Local لـ fde5:8dba:82e1:1::/64
، RLOC للعقدة حيث
قيمة RLOC16 = 0x401
هي:
يمكن استخدام هذا المنطق نفسه لتحديد RLOC لجميع العُقد المميزة في طوبولوجيا العينة أعلاه:
ومع ذلك، ونظرًا لأن RLOC يعتمد على موقع العقدة في المخطط، يمكن أن يتغير RLOC في أي جزء كلما تغيرت المخطط.
على سبيل المثال، ربما تمت إزالة العقدة 0x400
من شبكة Thread. العُقد
ينشئ 0x401
و0x402
روابط جديدة إلى أجهزة توجيه مختلفة، ونتيجةً لذلك.
يتم تعيين RLOC16 وRLOC جديد لكل منهما:
أنواع العناوين ذات البث الأحادي
RLOC هو واحد فقط من العديد من عناوين IPv6 الأحادية التي يمكن أن يحتوي عليها جهاز Thread. هناك فئة أخرى من العناوين تُسمى معرّفات نقاط النهاية (EIDs)، والتي تحديد واجهة Thread فريدة ضمن قسم شبكة Thread. معرّفات EID هي بشكل مستقل عن طوبولوجي شبكة Thread.
في ما يلي شرح تفصيلي لأنواع البث الأحادي الشائعة.
عنوان الرابط المحلي (LLA) |
|
---|---|
معرّف شريحة SIM المضمّنة (EID) الذي يحدّد واجهة Thread التي يمكن الوصول إليها من خلال إرسال لاسلكي واحد | |
مثال | fe80::54db:881c:3845:57f4 |
IID | استنادًا إلى معيار 802.15.4 الموسع |
المستوى | رابط محلي |
التفاصيل |
|
معرّف شريحة SIM المضمّنة (EID) الشبكة المحلية (ML-EID) |
|
---|---|
معرّف شريحة SIM المضمّنة (EID) الذي يحدّد واجهة Thread بشكل مستقل عن طوبولوجيا الشبكة يُستخدَم للوصول إلى واجهة Thread ضمن قسم Thread نفسه. يُعرف أيضًا باسم العنوان المحلي الفريد (ULA). | |
مثال | fde5:8dba:82e1:1:416:993c:8399:35ab |
IID | يتم اختياره عشوائيًا بعد اكتمال عملية الإعداد. |
المستوى | شبكة محلية |
التفاصيل |
|
محدد مواقع التوجيه (RLOC) |
|
---|---|
يحدّد واجهة Thread بناءً على مكانها في هيكل الشبكة. | |
مثال | fde5:8dba:82e1:1::ff:fe00:1001 |
IID | 0000:00ff:fe00:RLOC16 |
المستوى | شبكة محلية |
التفاصيل |
|
محدِّد موقع Anycast (ALOC) |
|
---|---|
تحدد واجهة Thread عبر بحث RLOC، عندما يكون RLOC لجهة غير معروفة. | |
مثال | fde5:8dba:82e1:1::ff:fe00:fc01 |
IID | 0000:00ff:fe00:fcXX |
المستوى | شبكة محلية |
التفاصيل |
|
عنوان عالمي أحادي (GUA) |
|
---|---|
معرّف شريحة SIM المضمّنة (EID) الذي يحدّد واجهة Thread على نطاق عام خارج شبكة Thread | |
مثال | 2000::54db:881c:3845:57f4 |
IID |
|
المستوى | عالمي |
التفاصيل |
|
البث المتعدد
يُستخدم البث المتعدد لتوصيل المعلومات إلى أجهزة متعددة في وقت واحد. في شبكة Thread، يتم حجز عناوين محدَّدة لاستخدام البث المتعدد مع مجموعات من الأجهزة، اعتمادًا على النطاق.
عنوان IPv6 | النطاق | تم التسليم إلى |
---|---|---|
ff02::1 |
رابط محلي | جميع FTD وMED |
ff02::2 |
رابط محلي | جميع FTD |
ff03::1 |
شبكة محلية | جميع FTD وMED |
ff03::2 |
شبكة محلية | جميع FTD |
قد تلاحظ أن الأجهزة الطرفية النعاسة (SEDs) غير مدرجة كـ المستلم في جدول البث المتعدد أعلاه. بدلاً من ذلك، تحدد Thread البث المتعدد عبر IPv6 باستخدام بادئة link-local ونطاق محلي حقيقي العنوان المستخدم لجميع عُقد سلسلة التعليمات، بما في ذلك وحدات SED. تعمل أحداث البث المتعدد هذه تختلف العناوين حسب شبكة Thread، لأنها تعتمد على البث الأحادي بادئة الشبكة المحلية (Mesh-Local) (راجِع RFC 3306 للحصول على مزيد من التفاصيل حول عناوين البث المتعدد لـ IPv6 المستندة إلى بادئة أحادية البث).
تتوفّر أيضًا في Thread النطاقات العشوائية غير المدرَجة من قبل الأجهزة.
البث العشوائي
ويتم استخدام Anycast لتوجيه حركة البيانات إلى واجهة Thread عندما يجري RLOC
الوجهة غير معروفة. يُحدِّد محدِّد موقع Anycast (ALOC) موقع
واجهات متعددة في قسم Thread. آخر 16 بت من ALOC،
التي تسمى ALOC16، بالتنسيق 0xfcXX
، الذي
نوع ALOC.
على سبيل المثال، يتم حجز ALOC16 بين 0xfc01
و0xfc0f
لـ DHCPv6
موظّفو الدعم. إذا كان RLOC لوكيل DHCPv6 المحدد غير معروف (ربما بسبب
قد تغيرت طوبولوجيا الشبكة)، فيمكن إرسال رسالة إلى وكيل DHCPv6 ALOC إلى
الحصول على RLOC.
تحدّد سلسلة التعليمات قيم ALOC16 التالية:
ALOC16 | النوع |
---|---|
0xfc00 |
صاحب الصدارة |
0xfc01 – 0xfc0f |
وكيل DHCPv6 |
0xfc10 – 0xfc2f |
الخدمة |
0xfc30 – 0xfc37 |
المفوّض |
0xfc40 – 0xfc4e |
وكيل استكشاف الجيران |
0xfc38 – 0xfc3f 0xfc4f – 0xfcff |
تم الحجز |
ملخّص
ما تعلمته:
- تتألّف شبكة Thread من ثلاثة نطاقات: محلّي الروابط ونطاق محلي متداخل وعالمي
- جهاز Thread يتضمّن عدة عناوين IPv6 أحادية الإرسال
- يُمثِّل RLOC الموقع الجغرافي للجهاز في شبكة Thread.
- يُعد معرّف ML-EID فريدًا لجهاز Thread داخل قسم ويجب استخدامه من خلال التطبيقات.
- تستخدم سلسلة المحادثات البث المتعدد لإعادة توجيه البيانات إلى مجموعات من العُقد والموجهات.
- تستخدم سلسلة المحادثات أي إرسال عندما يكون RLOC للوجهة غير معروف.
لمعرفة المزيد عن عنونة IPv6 في Thread، راجع القسمين 5.2 و5.3 من مواصفات سلسلة المحادثات:
التحقق من فهمك
ff03::2
.
عنوان البث المتعدد. ماذا يخبرنا هذا عن الجهاز؟ff03::2
. وهو يفعل ذلك في الشبكة المحلية
النطاق.