Google is committed to advancing racial equity for Black communities. See how.
Questa pagina è stata tradotta dall'API Cloud Translation.
Switch to English

Simula reti di thread utilizzando OTNS

5abd22afa2f2ee9a.png

Che cos'è Thread e OTNS

Thread è un protocollo di rete mesh wireless a bassa potenza basato su IP che consente comunicazioni sicure da dispositivo a dispositivo e da dispositivo a cloud. Le reti di thread possono adattarsi alle modifiche della topologia per evitare single point of failure.

OpenThread rilasciato da Google è un'implementazione open source di Thread. Nonostante le dimensioni ridotte del codice e il footprint di memoria, OpenThread supporta tutte le funzionalità definite nella specifica Thread 1.1.1 .

OpenThread Network Simulator (OTNS) può essere utilizzato per simulare reti di thread eseguendo nodi OpenThread simulati su piattaforme posix. OTNS fornisce un'interfaccia Web di facile utilizzo (OTNS-Web) per visualizzare e utilizzare reti Thread simulate.

Cosa imparerai

  • Installa OTNS e le sue dipendenze
  • Crea OpenThread per OTNS
  • Come aggiungere / spostare / eliminare nodi in OTNS-Web
  • Usa le altre utili funzioni di OTNS-Web per gestire la simulazione di rete
  • Verifica l'assenza di un singolo punto di errore di OpenThread

Questo codelab è incentrato su OTNS-CLI e OTNS-Web. Le altre funzionalità di OTNS, come lo scripting Python, non sono coperte.

Di cosa avrai bisogno

  • Linux x86_64 o Mac OS.
  • Git .
  • Vai 1.11+ .
  • Programma di navigazione in rete. OTNS-Web utilizza un browser Web per visualizzare le simulazioni.
  • Thread Primer . Avrai bisogno di conoscere i concetti di base di Thread per capire cosa viene insegnato in questo Codelab.

Installa Go

OTNS richiede Go 1.11+ per essere compilato.

  1. Installa Go da https://golang.org/dl/
  2. Aggiungi $(go env GOPATH)/bin (normalmente $HOME/go/bin ) a $PATH :
$ export PATH=$PATH:$(go env GOPATH)/bin

Ottieni il codice OTNS

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

Installa dipendenze

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

Potrebbe esserti chiesto di inserire una password per sudo .

Installa otns

Installa otns su $GOPATH/bin :

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

Controlliamo se otns è installato correttamente

  1. Esegui which otns per verificare se l'eseguibile otns è ricercabile in $PATH.
  2. Se il comando otns non viene trovato, verificare di aver aggiunto $(go env GOPATH)/bin a $PATH.

Ottieni il codice OpenThread da GitHub

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

Crea OpenThread con OTNS=1

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

Puoi trovare gli eseguibili di OpenThread nella directory di output :

Linux

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

Mac OS

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

Ora è il momento di eseguire OTNS ...

Esegui otns :

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

Una volta avviato correttamente, OTNS accederà a una console CLI ( OTNS-CLI ) e avvierà un browser Web per la visualizzazione e la gestione della rete ( OTNS-Web ):

a0e05178d66929b1.png

Se puoi vedere solo una pagina vuota per OTNS-Web, è probabile che WebGL non sia abilitato nel tuo browser. Fare riferimento a https://superuser.com/a/836833 su come abilitare WebGL.

Nelle sezioni seguenti imparerai a gestire le simulazioni OTNS-CLI tramite OTNS-CLI e OTNS-Web .

OTNS-CLI

OTNS-CLI fornisce una Command Line Interface (CLI) per la gestione delle simulazioni OTNS.

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

È possibile digitare i comandi tramite OTNS-CLI . Fare riferimento al riferimento OTNS CLI per un elenco completo dei comandi. Non preoccuparti, utilizzerai solo alcuni di questi comandi in questo Codelab.

OTNS-Web

OTNS-Web è lo strumento di visualizzazione e gestione della rete di OTNS. Fornisce una rappresentazione visiva dei nodi, dei messaggi e dei collegamenti della rete Thread simulata. Nota i vari elementi di OTNS-Web :

4c5b43509a2ca0d0.png

Aggiungi nodi tramite OTNS-CLI

Aggiungi un router alla posizione (300, 100)

> add router x 300 y 100
1
Done

Dovresti vedere un nodo creato in OTNS-Web . Il nodo parte come Router e in pochi secondi diventa Leader:

6ca8c2e63ed9818d.png

Aggiungi altri nodi tramite OTNS-CLI

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

Attendi alcuni secondi affinché i nodi si uniscano in una partizione. Dovresti vedere i nodi in OTNS-WEB :

3ee67903c01aa612.png

Aggiungi nodi tramite OTNS-Web

Puoi anche aggiungere nodi tramite OTNS-Web . Fare clic sul pulsante New Router barra delle Action Bar . Dovresti vedere un nodo creato proprio sopra il pulsante New Router . Trascina il nodo per essere vicino al Leader che hai creato tramite OTNS-CLI . Tutti i nodi dovrebbero alla fine fondersi in una partizione:

420258bb92561146.png

Fare anche clic sui pulsanti FED, MED e SED sulla barra delle azioni per creare altri tipi di nodi. Trascinali nelle posizioni vicino ai nodi esistenti per collegarli a quella rete di thread:

fe15d6f9726a099e.png

Ora hai creato una rete di thread di una partizione che contiene molti nodi. Nella prossima sezione, regoleremo la velocità di simulazione per rendere la simulazione più veloce.

Attualmente, la simulazione dovrebbe essere eseguita a velocità 1X , il che significa che il tempo di simulazione trascorso finora è lo stesso del tempo effettivo da quando abbiamo creato il primo nodo.

Regola la velocità tramite OTNS-CLI

È possibile regolare la velocità di simulazione tramite OTNS-CLI .

Imposta la velocità di simulazione su 100X

> speed 100
Done

Dovresti vedere i nodi inviare messaggi molto più frequentemente di prima.

Imposta la velocità di simulazione su MAX

> speed max
Done

Ora OTNS sta cercando di simulare il più velocemente possibile, quindi dovresti vedere i nodi che inviano un gran numero di messaggi.

Metti in pausa la simulazione

> speed 0
Done

L'impostazione della velocità di simulazione su 0 interrompe la simulazione.

Ripristina la simulazione a velocità normale

> speed 1
Done

L'impostazione della velocità di simulazione su un valore maggiore di 0 riprende la simulazione.

Regola la velocità tramite OTNS-Web

Pulsanti di controllo della velocità

Trova i pulsanti di controllo della velocità 9329157c1bd12672.png sulla Action Bar . I pulsanti mostrano la velocità di simulazione corrente e possono essere utilizzati per regolare la velocità di simulazione e mettere in pausa / riprendere la simulazione.

Velocizza la simulazione

È possibile accelerare la simulazione facendo clic su 39b88331779277ad.png fino a quando la velocità non raggiunge MAX : f5f460b2586d299b.png .

Rallenta la simulazione

È possibile rallentare la simulazione facendo clic su 31cca8d5b52fa900.png pulsante.

Metti in pausa la simulazione

Clicca il 46cc2088c9aa7ab6.png per mettere in pausa la simulazione quando è in esecuzione. Il pulsante verrà modificato in ce25eda3496ffcd4.png .

Riprendi la simulazione

Clicca il ce25eda3496ffcd4.png pulsante per riprendere la simulazione quando è in pausa. Il pulsante verrà nuovamente modificato in 46cc2088c9aa7ab6.png .

Imposta la velocità di simulazione su 10X

Per risparmiare tempo, usa

OTNS-CLI per regolare la velocità di simulazione

10X modo da poter osservare i cambiamenti della topologia nella rete molto più velocemente.

> speed 10
Done

Ora, la simulazione dovrebbe contenere 2 router (forma esagonale) e molti bambini e funziona a una velocità 10X.

Trova il Leader corrente (bordo rosso) dei 2 Router, fai clic per selezionarlo:

8c6a2e191cdae0c7.png

Spegni la radio

Clicca il 7ca085f470491dd4.png pulsante sulla barra delle azioni per spegnere la radio del nodo Leader:

a3bf58d9d125f95f.png

Il Leader non potrà inviare o ricevere messaggi con la radio spenta.

Attendi circa 12 secondi (120 secondi nel tempo di simulazione) affinché l'altro router diventi il ​​nuovo Leader:

e3d32f85c4a1b990.png

La rete Thread si ripristina automaticamente dall'errore di Leader formando una nuova partizione con un nuovo Leader. La nuova partizione ha anche un nuovo colore della partizione.

Accendi la radio

Seleziona il Leader la cui radio è stata spenta. Clicca il 2d9cecb8612b42aa.png pulsante sulla Action Bar per ripristinare la connettività radio:

7370a7841861aa3a.png

Il Leader dovrebbe ricollegarsi alla rete dopo il ripristino della connettività radio.

OTNS consente agli utenti di spostare facilmente i nodi tramite OTNS-CLI o OTNS-Web .

Sposta il nodo tramite OTNS-CLI

Sposta il nodo 5 in una nuova posizione:

> move 5 600 300
Done

Poiché ora il nodo 5 è lontano dall'altro Router, dovrebbero perdere la connettività tra loro e dopo circa 12s (120s nel tempo di simulazione) entrambi diventano Leader della propria partizione:

c06b4d0a4f183299.png

Sposta il nodo tramite OTNS-Web

Riportare il nodo 5 nella posizione originale trascinando. Le due partizioni dovrebbero unirsi di nuovo in una partizione:

9ba305c4c5a5f892.png

Elimina i nodi tramite OTNS-CLI

Elimina nodo 8:

> del 8
Done

Il nodo 8 dovrebbe scomparire dalla simulazione:

18156770d9f8bf83.png

Elimina i nodi tramite OTNS-Web

Seleziona il nodo 5 e fai clic su 7ff6afd565f4eafc.png pulsante sulla barra delle Action Bar per eliminare il nodo 5:

d4079cceea0105f0.png

Node 1 dovrebbe diventare Leader e il Node 7 dovrebbe staccarsi poiché non può raggiungere alcun Router.

Cancella simulazione (elimina tutti i nodi)

È possibile cancellare la simulazione eliminando tutti i nodi tramite OTNS-Web .

Clic 89618191721e79a0.png pulsante sulla Action Bar. Tutti i nodi scompariranno contemporaneamente.

Prima di continuare ...

Aggiungi alcuni nodi alla simulazione da solo in modo da poter continuare in questo tutorial.

OTNS-CLI fornisce la modalità contesto del nodo per una facile interazione con i nodi per aiutare gli sviluppatori a diagnosticare lo stato di un nodo.

Entra in modalità contesto nodo

Immettere il contesto del nodo del nodo 1:

> node 1
Done
node 1>

Il prompt della CLI è stato modificato in node 1> , a indicare il contesto del nodo corrente. È possibile digitare i comandi della CLI OpenThread da eseguire sul nodo come se si stesse interagendo direttamente con il nodo.

Esegui comandi nel contesto del nodo

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

Passa a un altro contesto di nodo

node 1> node 2
Done
node 2> 

Esci dal contesto del nodo

node 1> exit
Done
>

Congratulazioni, hai eseguito con successo la tua prima simulazione OTNS!

Hai imparato come installare OTNS e le sue dipendenze. Hai creato OpenThread per OTNS e avviato la simulazione OTNS con istanze di simulazione OpenThread. Hai imparato a manipolare la simulazione in vari modi tramite OTNS-CLI e OTNS-Web .

Ora sai cos'è OTNS e come puoi utilizzare OTNS per simulare reti OpenThread.

Qual è il prossimo?

Dai un'occhiata ad alcuni di questi codelab ...

Documenti di riferimento