Google is committed to advancing racial equity for Black communities. See how.
Bu sayfa, Cloud Translation API ile çevrilmiştir.
Switch to English

OTNS kullanarak İş Parçacığı Ağlarını simüle edin

5abd22afa2f2ee9a.png

Konu ve OTNS nedir

Thread, cihazdan cihaza ve cihazdan buluta güvenli iletişim sağlayan, IP tabanlı, düşük güçlü bir kablosuz ağ protokolüdür. İş parçacığı ağları, tek hata noktasından kaçınmak için topoloji değişikliklerine uyum sağlayabilir.

Google tarafından yayınlanan OpenThread, Thread'ın açık kaynaklı bir uygulamasıdır. Küçük kod boyutu ve bellek ayak izine rağmen, OpenThread, Thread 1.1.1 Spesifikasyonunda tanımlanan tüm özellikleri destekler.

OpenThread Ağ Simülatörü (OTNS) , posix platformlarında simüle edilmiş OpenThread düğümleri çalıştırarak Thread ağlarını simüle etmek için kullanılabilir. OTNS, simüle edilmiş Thread ağlarını görselleştirmek ve çalıştırmak için kullanımı kolay bir Web arayüzü (OTNS-Web) sağlar.

Ne öğreneceksin

  • OTNS ve bağımlılıklarını yükleyin
  • OTNS için OpenThread oluşturun
  • OTNS-Web'de düğümler nasıl eklenir / taşınır / silinir
  • Ağ simülasyonunu çalıştırmak için OTNS-Web'in diğer kullanışlı özelliklerini kullanın
  • OpenThread'in tek hata noktası olmadığını doğrulayın

Bu kod laboratuvarı OTNS-CLI ve OTNS-Web'e odaklanmıştır. OTNS'nin Python komut dosyası oluşturma gibi diğer özellikleri kapsanmamaktadır.

Neye ihtiyacın olacak

  • Linux x86_64 veya Mac OS.
  • Git .
  • 1.11+ gidin .
  • İnternet tarayıcısı. OTNS-Web, simülasyonları görüntülemek için bir web tarayıcısı kullanır.
  • Thread Primer . Bu Codelab'de neyin öğretildiğini anlamak için Thread'ın temel kavramlarını bilmeniz gerekecektir.

Go yükleyin

OTNS'nin oluşturulması için Go 1.11+ gerekir.

  1. Go'yu https://golang.org/dl/ adresinden yükleyin
  2. $(go env GOPATH)/bin (normalde $HOME/go/bin ) 'i $PATH $(go env GOPATH)/bin ekleyin:
$ export PATH=$PATH:$(go env GOPATH)/bin

OTNS kodunu alın

$ git clone https://github.com/openthread/ot-ns.git ./otns
$ cd otns

Bağımlılıkları Yükle

$ ./script/install-deps
grpcwebproxy installed: /usr/local/google/home/simonlin/go/bin/grpcwebproxy

sudo için bir şifre girmeniz istenebilir.

Otns yükleyin

otns $GOPATH/bin otns yükleyin:

$ ./script/install
otns installed: /usr/local/google/home/simonlin/go/bin/otns

otns doğru otns kontrol edelim

  1. Çalıştır which otns olmadığını kontrol etmek otns yürütülebilir aranabilir $PATH.
  2. otns komutu bulunamazsa, $PATH. $(go env GOPATH)/bin eklediğinizi doğrulayın $PATH.

OpenThread kodunu GitHub'dan alın

$ mkdir -p ~/src
$ git clone https://github.com/openthread/openthread ~/src/openthread

OTNS=1 ile OTNS=1 oluşturun

$ cd ~/src/openthread
$ ./script/bootstrap
$ ./bootstrap
$ make -f examples/Makefile-simulation OTNS=1

OpenThread yürütülebilir dosyalarını output dizininde bulabilirsiniz:

Linux

$ ls ~/src/openthread/output/simulation/bin
ot-cli-ftd        ot-cli-mtd        ot-ncp-ftd        ot-ncp-mtd        ot-rcp

Mac os işletim sistemi

$ ls ~/src/openthread/output/simulation/bin
ot-cli-ftd        ot-cli-mtd        ot-ncp-ftd        ot-ncp-mtd        ot-rcp

Şimdi OTNS çalıştırma zamanı ...

Run otns :

$ cd ~/src/openthread/output/simulation/bin
$ otns
> ← OTNS-CLI prompt

Başarıyla başlatıldığında OTNS, bir CLI konsoluna ( OTNS-CLI ) OTNS-CLI ve ağ görselleştirme ve yönetimi ( OTNS-Web ) için bir web tarayıcısı başlatacaktır:

a0e05178d66929b1.png

OTNS-Web için sadece boş bir sayfa görebiliyorsanız, tarayıcınızda WebGL etkin değildir. WebGL'yi nasıl etkinleştireceğinizi öğrenmek için lütfen https://superuser.com/a/836833 adresine bakın .

Aşağıdaki bölümlerde, OTNS simülasyonlarını OTNS-CLI ve OTNS-Web üzerinden OTNS-CLI öğreneceksiniz.

OTNS-CLI

OTNS-CLI , OTNS simülasyonlarını yönetmek için bir Komut Satırı Arayüzü (CLI) sağlar.

$ cd ~/src/openthread/output/simulation/bin
$ otns
> ← OTNS-CLI prompt

OTNS-CLI aracılığıyla komutlar OTNS-CLI . Komutların tam listesi için OTNS CLI referansına bakın. Endişelenmeyin, bu Codelab'de bu komutlardan yalnızca birkaçını kullanacaksınız.

OTNS-Web

OTNS-Web , OTNS'nin ağ görselleştirme ve yönetim aracıdır. Simüle edilmiş Thread ağının düğümlerinin, mesajlarının ve bağlantılarının görsel bir temsilini sağlar. OTNS-Web çeşitli unsurlarına dikkat OTNS-Web :

4c5b43509a2ca0d0.png

OTNS-CLI aracılığıyla düğüm ekleyin

Konumda bir Yönlendirici ekleyin (300, 100)

> add router x 300 y 100
1
Done

OTNS-Web oluşturulan bir düğüm OTNS-Web . Düğüm, Yönlendirici olarak başlar ve birkaç saniye içinde Lider olur:

6ca8c2e63ed9818d.png

OTNS-CLI aracılığıyla daha fazla düğüm ekleyin

> add fed x 200 y 100
2
Done
> add med x 400 y 100
3
Done
> add sed x 300 y 200
4
Done

Düğümlerin bir bölüm halinde birleşmesi için birkaç saniye bekleyin. OTNS-WEB düğümleri OTNS-WEB :

3ee67903c01aa612.png

OTNS-Web düğüm ekleyin

OTNS-Web üzerinden de düğüm ekleyebilirsiniz. Action Bar New Router düğmesini tıklayın. New Router düğmesinin hemen üzerinde oluşturulan bir düğüm görmelisiniz. Düğümü OTNS-CLI oluşturduğunuz Liderin yakınına sürükleyin. Tüm düğümler sonunda tek bir bölümde birleşmelidir:

420258bb92561146.png

Diğer düğüm türlerini oluşturmak için Eylem Çubuğundaki FED, MED ve SED düğmelerine de tıklayın. Söz konusu Thread ağına eklemek için bunları mevcut düğümlerin yakınındaki konumlara sürükleyin:

fe15d6f9726a099e.png

Şimdi birçok düğüm içeren bir bölümden oluşan bir Thread ağı oluşturdunuz. Bir sonraki bölümde, simülasyonun daha hızlı çalışmasını sağlamak için simülasyon hızını ayarlayacağız.

Şu anda simülasyon 1X hızda çalışıyor olmalı, yani şimdiye kadar geçen simülasyon süresi ilk düğümü oluşturduğumuzdan beri geçen gerçek zamanla aynı.

OTNS-CLI hızı ayarlayın

Simülasyon hızını OTNS-CLI aracılığıyla ayarlayabilirsiniz.

Simülasyon hızını 100X ayarlayın

> speed 100
Done

Düğümlerin öncekinden çok daha sık mesaj gönderdiğini görmelisiniz.

Simülasyon hızını MAX ayarlayın

> speed max
Done

Şimdi, OTNS olabildiğince hızlı simüle etmek için en iyisi olmaya çalışıyor, bu nedenle düğümlerin çok sayıda mesaj gönderdiğini görmelisiniz.

Simülasyonu duraklat

> speed 0
Done

Simülasyon hızının 0 ayarlanması simülasyonu duraklatır.

Simülasyonu normal hızda geri yükle

> speed 1
Done

Daha büyük bir değere simüle hızının ayarlanması 0 simülasyon devam eder.

OTNS-Web üzerinden hızı ayarlayın

Hız kontrol düğmeleri

Hız kontrol düğmelerini bulun 9329157c1bd12672.png Action Bar . Düğmeler mevcut simülasyon hızını gösterir ve simülasyon hızını ayarlamak ve simülasyonu duraklatmak / sürdürmek için kullanılabilir.

Simülasyonu hızlandırın

Simülasyonu tıklayarak hızlandırabilirsiniz. 39b88331779277ad.png hız kadar düğme ulaşır MAX : f5f460b2586d299b.png .

Simülasyonu yavaşlat

Simülasyonu tıklayarak yavaşlatabilirsiniz. 31cca8d5b52fa900.png buton.

Simülasyonu duraklat

Tıkla 46cc2088c9aa7ab6.png Simülasyonu çalışırken duraklatmak için düğmesine basın. Düğme olarak değiştirilecek ce25eda3496ffcd4.png .

Simülasyonu devam ettir

Tıkla ce25eda3496ffcd4.png Simülasyonu duraklatıldığında devam ettirmek için düğmesine basın. Düğme şu şekilde değiştirilecek: 46cc2088c9aa7ab6.png .

Simülasyon hızını 10X ayarlayın

Zaman kazanmak için kullanın

OTNS-CLI simülasyon hızını şu şekilde ayarlamak için:

10X böylece ağdaki topoloji değişikliklerini çok daha hızlı gözlemleyebiliyoruz.

> speed 10
Done

Simülasyon şimdi 2 Yönlendirici (altıgen şekil) ve birçok alt öğe içermeli ve 10X hızında çalışmalıdır.

2 Yönlendiricinin mevcut Lideri'ni (kırmızı kenarlık) bulun, seçmek için tek tıklayın:

8c6a2e191cdae0c7.png

Radyoyu kapat

Tıkla 7ca085f470491dd4.png Lider düğümünün radyosunu kapatmak için Eylem Çubuğundaki düğmesi:

a3bf58d9d125f95f.png

Lider, radyo kapalıyken mesaj gönderip alamaz.

Diğer Yönlendiricinin yeni Lider olması için yaklaşık 12 saniye (simülasyon süresinde 120 saniye) bekleyin:

e3d32f85c4a1b990.png

Thread ağı, yeni bir Lider ile yeni bir bölüm oluşturarak Lider arızasından otomatik olarak kurtulur. Yeni bölüm ayrıca yeni bir bölüm rengine sahiptir.

Radyoyu aç

Telsizi kapalı olan Lideri seçin. Tıkla 2d9cecb8612b42aa.png Radyo bağlantısını geri yüklemek için Action Bar düğmesi:

7370a7841861aa3a.png

Lider, radyo bağlantısı yeniden kurulduktan sonra ağa yeniden bağlanmalıdır.

OTNS, kullanıcıların düğümleri OTNS-CLI veya OTNS-Web üzerinden kolayca hareket ettirmelerini sağlar.

Düğümü OTNS-CLI üzerinden taşı

Düğüm 5'i yeni bir konuma taşıyın:

> move 5 600 300
Done

Şimdi düğüm 5 diğer Yönlendiriciden uzak olduğundan, birbirleriyle olan bağlantılarını kaybetmeleri gerekir ve yaklaşık 12 saniye sonra (simülasyon süresinde 120 saniye) her ikisi de kendi bölümlerinin Liderleri olur:

c06b4d0a4f183299.png

Düğümü OTNS-Web üzerinden taşı

Düğüm 5'i sürükleyerek orijinal konumuna geri taşıyın. İki bölüm bir bölüm halinde birleşmelidir:

9ba305c4c5a5f892.png

OTNS-CLI aracılığıyla düğümleri silin

8. düğümü sil:

> del 8
Done

Düğüm 8 simülasyondan kaybolmalıdır:

18156770d9f8bf83.png

OTNS-Web üzerinden düğümleri silin

Düğüm 5'i seçin ve 7ff6afd565f4eafc.png 5. düğümü silmek için Action Bar düğmesi:

d4079cceea0105f0.png

Node 1 Lider olmalı ve Node 7 herhangi bir Yönlendiriciye ulaşamadığı için ayrılmalıdır.

Simülasyonu temizle (tüm düğümleri sil)

OTNS-Web üzerinden tüm düğümleri silerek simülasyonu temizleyebilirsiniz.

Tıklayın 89618191721e79a0.png Action Bar. düğmesine basın Action Bar. Tüm düğümler bir anda kaybolacak.

Devam etmeden önce...

Simülasyona kendi kendinize bazı düğümler ekleyin, böylece bu eğiticiye devam edebilirsiniz.

OTNS-CLI , geliştiricilerin bir düğümün durumunu teşhis etmesine yardımcı olmak için düğümlerle kolay etkileşim için düğüm bağlam modu sağlar.

Düğüm bağlam moduna girin

Düğüm 1'in düğüm bağlamını girin:

> node 1
Done
node 1>

CLI istemi, geçerli düğüm içeriğini gösteren node 1> değiştirildi. Düğümle doğrudan etkileşim kuruyormuşsunuz gibi düğümde yürütülecek OpenThread CLI komutlarını yazabilirsiniz .

Düğüm bağlamında komutları yürütün

node 1> state
leader
Done
node 1> channel
11
Done
node 1> panid
0xface
Done
node 1> networkname
OpenThread
Done
node 1> ipaddr
fdde:ad00:beef:0:0:ff:fe00:fc00
fdde:ad00:beef:0:0:ff:fe00:d800
fdde:ad00:beef:0:2175:8a67:1000:6352
fe80:0:0:0:2075:82c2:e9e9:781d
Done

Başka bir düğüm içeriğine geç

node 1> node 2
Done
node 2> 

Düğüm bağlamından çık

node 1> exit
Done
>

Tebrikler, ilk OTNS simülasyonunuzu başarıyla gerçekleştirdiniz!

OTNS'yi ve bağımlılıklarını nasıl kuracağınızı öğrendiniz. OTNS için OpenThread oluşturdunuz ve OpenThread simülasyon örnekleri ile OTNS simülasyonunu başlattınız. Hem OTNS-CLI hem de OTNS-Web aracılığıyla simülasyonu çeşitli şekillerde nasıl değiştireceğinizi öğrendiniz.

Artık OTNS'nin ne olduğunu ve OpenThread ağlarını simüle etmek için OTNS'yi nasıl kullanabileceğinizi biliyorsunuz.

Sıradaki ne?

Bu kod laboratuvarlarından bazılarına göz atın ...

Referans dokümanlar