Kaynağı GitHub'da görüntüleyin
Thread'in ağdaki her cihazı nasıl tanımladığına ve cihazların birbiriyle iletişim kurmak için kullandığı adres türlerine göz atalım.
Kapsamlar
Thread ağında tek noktaya yayın adresleme için üç kapsam vardır:
- Bağlantı yerel: Tek bir radyo iletimiyle erişilebilen tüm arayüzler
- Mesh-Local: Aynı Thread ağında tüm arayüzlere erişilebilir.
- Global: Thread ağının dışından erişilebilen tüm arayüzler
İlk iki kapsam, bir Thread ağı tarafından belirlenen öneklerle eşleşir.
Link-Local'in ön eki fe80::/16, Mesh-Local'in ön eki ise fd00::/8'dir.
Unicast
Tek bir Thread cihazını tanımlayan birden fazla IPv6 tek noktaya yayın adresi vardır. Her birinin kapsam ve kullanım alanına göre farklı bir işlevi vardır.
Her türü ayrıntılı olarak incelemeden önce, Yönlendirme Konum Belirleyicisi (RLOC) adı verilen yaygın bir tür hakkında daha fazla bilgi edinelim. RLOC, ağ topolojisindeki konumuna göre bir Thread arayüzünü tanımlar.
Yönlendirme Konum Belirleyicisi nasıl oluşturulur?
Tüm cihazlara bir yönlendirici kimliği ve bir alt kimlik atanır. Her üst öğe, tüm alt öğelerinin tablosunu tutar. Bu tablonun birleşimi, topolojideki bir cihazı benzersiz şekilde tanımlar. Örneğin, aşağıdaki topolojide vurgulanan düğümleri ele alalım. Burada, Mesh Extender'daki (beşgen) sayı yönlendirici kimliği, End Device'taki (daire) sayı ise alt cihaz kimliğidir:
Her çocuğun yönlendirici kimliği, üst öğesine (Mesh Genişletici) karşılık gelir. Mesh genişletici bir alt öğe olmadığından, Mesh genişletici için alt öğe kimliği her zaman 0'dır. Bu değerler, Thread ağındaki her cihaz için benzersizdir ve RLOC'un son 16 bitini temsil eden RLOC16'yı oluşturmak için kullanılır.
Örneğin, sol üstteki düğüm (Yönlendirici Kimliği = 1 ve Alt Öğe Kimliği = 1) için RLOC16 şu şekilde hesaplanır:
RLOC16, IPv6 adresinin son 64 bitine karşılık gelen Arayüz Tanımlayıcısı'nın (IID) bir parçasıdır. Bazı IID'ler, belirli Thread arayüzü türlerini tanımlamak için kullanılabilir. Örneğin, RLOC'ler için IID her zaman şu biçimdedir:
0000:00ff:fe00:RLOC16
IID, Mesh-Local Prefix ile birleştiğinde RLOC'u oluşturur. Örneğin, fde5:8dba:82e1:1::/64 Mesh-Local Prefix'i kullanıldığında RLOC16 = 0x401 olan bir düğümün RLOC'u şöyledir:
Aynı mantık, yukarıdaki örnek topolojide vurgulanan tüm düğümlerin RLOC'sini belirlemek için de kullanılabilir:
Ancak RLOC, topolojideki düğümün konumuna dayandığından topoloji değiştikçe düğümün RLOC'si de değişebilir.
Örneğin, 0x400 düğümü Thread ağından kaldırılmış olabilir. 0x401 ve 0x402 düğümleri farklı Mesh Extender'lara yeni bağlantılar oluşturur. Sonuç olarak her birine yeni bir RLOC16 ve RLOC atanır:
Tek noktaya yayın adresi türleri
RLOC, bir Thread cihazının sahip olabileceği birçok IPv6 tek noktaya yayın adresinden yalnızca biridir. Bir diğer adres kategorisi ise uç nokta tanımlayıcıları (EID) olarak adlandırılır. Bu tanımlayıcılar, bir Thread ağ bölümündeki benzersiz bir Thread arayüzünü tanımlar. EID'ler, Thread ağ topolojisinden bağımsızdır.
Yaygın tek noktaya yayın türleri aşağıda ayrıntılı olarak açıklanmıştır.
Bağlantı Yerel Adresi (LLA) |
|
|---|---|
| Tek bir radyo iletimiyle erişilebilen bir Thread arayüzünü tanımlayan EID. | |
| Örnek | fe80::54db:881c:3845:57f4 |
| IID | 802.15.4 Genişletilmiş Adresine dayalı |
| Kapsam | Link-Local |
| Ayrıntılar |
|
Örgü Yerel EID'si (ML-EID) |
|
|---|---|
| Ağ topolojisinden bağımsız olarak bir Thread arayüzünü tanımlayan EID. Aynı Thread bölümündeki bir Thread arayüzüne ulaşmak için kullanılır. Benzersiz yerel adres (ULA) olarak da adlandırılır. | |
| Örnek | fde5:8dba:82e1:1:416:993c:8399:35ab |
| IID | Devreye alma işlemi tamamlandıktan sonra rastgele seçilir. |
| Kapsam | Mesh-Local |
| Ayrıntılar |
|
Yönlendirme Bulucusu (RLOC) |
|
|---|---|
| Ağ topolojisindeki konumuna göre bir Thread arayüzünü tanımlar. | |
| Örnek | fde5:8dba:82e1:1::ff:fe00:1001 |
| IID | 0000:00ff:fe00:RLOC16 |
| Kapsam | Mesh-Local |
| Ayrıntılar |
|
Anycast Locator (ALOC) |
|
|---|---|
| Bir hedefin RLOC'si bilinmediğinde RLOC araması aracılığıyla bir Thread arayüzünü tanımlar. | |
| Örnek | fde5:8dba:82e1:1::ff:fe00:fc01 |
| IID | 0000:00ff:fe00:fcXX |
| Kapsam | Mesh-Local |
| Ayrıntılar |
|
Global Tek Noktaya Yayın Adresi (GUA) |
|
|---|---|
| Bir Thread arayüzünü Thread ağının ötesinde, global kapsamda tanımlayan bir EID. | |
| Örnek | 2000::54db:881c:3845:57f4 |
| IID |
|
| Kapsam | Global |
| Ayrıntılar |
|
Çoklu yayın
Çoklu yayın, bilgileri aynı anda birden fazla cihaza iletmek için kullanılır. Thread ağında, kapsama bağlı olarak farklı cihaz gruplarıyla çoklu yayın kullanımı için belirli adresler ayrılır.
| IPv6 Adresi | Kapsam | Mesajın teslim edildiği kişiler |
|---|---|---|
ff02::1 |
Link-Local | Tüm FTD'ler ve MED'ler |
ff02::2 |
Link-Local | Tüm FTD'ler |
ff03::1 |
Mesh-Local | Tüm FTD'ler ve MED'ler |
ff03::2 |
Mesh-Local | Tüm FTD'ler |
Uykuda olan uç cihazların (SED'ler) yukarıdaki çoklu yayın tablosunda alıcı olarak yer almadığını fark edebilirsiniz. Bunun yerine Thread, SED'ler de dahil olmak üzere tüm Thread düğümleri için kullanılan bağlantı yerel ve alan yerel kapsamlı tek yayın ön eki tabanlı IPv6 çoklu yayın adresini tanımlar. Bu çoklu yayın adresleri, tekli yayın Mesh-Local öneki üzerine kurulu olduğundan Thread ağına göre değişir (tekli önek tabanlı IPv6 çoklu yayın adresleri hakkında daha fazla bilgi için RFC 3306'ya bakın).
Thread cihazları için, halihazırda listelenenlerin dışındaki rastgele kapsamlar da desteklenir.
Anycast
Anycast, bir hedefin RLOC'si bilinmediğinde trafiği bir Thread arayüzüne yönlendirmek için kullanılır. Anycast Konumlandırıcı (ALOC), bir Thread bölümündeki birden fazla arayüzün konumunu tanımlar. ALOC16 olarak adlandırılan bir ALOC'nin son 16 biti, ALOC türünü temsil eden 0xfcXX biçimindedir.
Örneğin, 0xfc01 ile 0xfc0f arasındaki bir ALOC16, DHCPv6 aracılar için ayrılmıştır. Belirli DHCPv6 Aracısı RLOC'si bilinmiyorsa (örneğin, ağ topolojisi değiştiği için) RLOC'yi almak üzere bir DHCPv6 Aracısı ALOC'sine mesaj gönderilebilir.
Thread, aşağıdaki ALOC16 değerlerini tanımlar:
| ALOC16 | Tür |
|---|---|
0xfc00 |
Lider |
0xfc01 - 0xfc0f |
DHCPv6 Aracısı |
0xfc10 - 0xfc2f |
Hizmet |
0xfc30 - 0xfc37 |
Başkan |
0xfc40 - 0xfc4e |
Komşu Keşfi Aracısı |
0xfc38 – 0xfc3f0xfc4f – 0xfcff |
Rezervasyon yapıldı |
Özet
Öğrendikleriniz:
- Thread ağı üç kapsamdan oluşur: Bağlantı Yereli, Ağ Yereli ve Küresel
- Bir Thread cihazının birden fazla tek noktaya yayın IPv6 adresi vardır.
- RLOC, bir cihazın Thread ağındaki konumunu ifade eder.
- ML-EID, bir bölümdeki Thread cihazına özgüdür ve uygulamalar tarafından kullanılmalıdır.
- Thread, verileri düğüm gruplarına iletmek için çoklu yayın kullanır.
- Hedefin RLOC'si bilinmediğinde Thread, anycast kullanır.
Thread'in IPv6 adreslemesi hakkında daha fazla bilgi edinmek için Thread Spesifikasyonu'nun 5.2 ve 5.3 bölümlerine bakın.
Bilgilerinizi sınayın
ff03::2
çoklu yayın adresine abone olur. Bu durum cihaz hakkında bize ne anlatıyor?ff03::2 çoklu yayın adresine abone olur. Bu işlemi Mesh-Local (Yerel Ağ) kapsamında yaparlar.