Test della funzionalità TCP con OT CLI

Visualizza il codice sorgente su GitHub

OpenThread offre comandi TCP da utilizzare con una rete Thread per testare il peer-to-peer la comunicazione tra gli endpoint TCP. cli tcp fornisce un protocollo TCP di esempio e un listener TCP di esempio con cui interagiscono tutti i comandi tcp.

Le panoramiche dei comandi e l'esempio che segue forniscono informazioni sull'inizializzazione l'endpoint TCP e il listener TCP di esempio, come connettersi a un endpoint TCP peer, e come inviare un messaggio al collega.

Comandi TCP

Per un elenco di comandi tcp, digita help:

tcp help
abort
benchmark
bind
connect
deinit
init
listen
send
sendend
stoplistening
Done
Per le descrizioni e la sintassi di tutti i comandi, consulta la documentazione di riferimento dei comandi dell'interfaccia a riga di comando. I comandi TCP iniziano in ordine alfabetico con tcp interrompi.

Comando init

Utilizza il comando tcp init per inizializzare il modulo TCP e iniziare la comunicazione TCP. Il modulo TCP può quindi eseguire molte funzioni, come l'ascolto di segnali in entrata utilizzando il listener TCP di esempio fornito dall'interfaccia a riga di comando di tcp. Per deinizializzare il listener TCP di esempio e l'endpoint TCP di esempio, invia il comando tcp deinit.

Comando bind

Per associare l'endpoint TCP di esempio dopo aver inizializzato il modulo TCP, Esegui un comando tcp bind per assegnare un indirizzo IPv6 e una porta all'endpoint TCP. In questo modo l'endpoint viene associato per la comunicazione. Assegnazione dell'indirizzo e della porta IPv6 è anche noto come "denominazione dell'endpoint".

Comando listen

Per usare il listener TCP di esempio dopo aver inizializzato il modulo TCP, esegui un comando tcp listen e specifica l'indirizzo IPv6 e la porta di ascolto.

Per impedire al listener TCP di esempio di ascoltare le connessioni TCP in entrata, invia il comando tcp stoplistening.

Comando connect

Un comando tcp connect connette l'endpoint TCP di esempio a un indirizzo dell'endpoint TCP peer.

Comando send

Dopo aver stabilito una connessione tra due nodi, esegui un comando tcp send per inviare un messaggio al compagno.

Comandi benchmark

Una volta stabilita una connessione TCP tra due nodi, utilizza facoltativamente Comandi benchmark per inviare grandi quantità di dati tra i nodi da testare la larghezza di banda e le prestazioni della rete. Il numero di byte trasmessi in millisecondi così come il Goodput TCP, verranno forniti nei risultati di benchmark.

Comando abort

Per terminare una connessione TCP immediatamente e senza cerimonie, esegui tcp abort su uno dei nodi per eseguire la transizione dell'endpoint TCP a uno stato chiuso.

Comando sendend

Quando un nodo ha finito di inviare dati all'altro nodo, il primo nodo può emetti un comando tcp sendend per avvisare il secondo nodo che non e i dati di Google Cloud. Il secondo nodo può anche inviare un tcp sendend al primo nodo. Quando ogni nodo riceve un messaggio TCP: Disconnected, la connessione TCP tra i due nodi viene eliminata. È consigliato, ma non è obbligatorio, eseguire questo comando una volta completato il trasferimento dei dati.

Invia un messaggio tra due nodi

  1. Nel nodo 1, inizializza il modulo dell'interfaccia a riga di comando TCP, quindi ascolta le connessioni in entrata utilizzando il listener TCP di esempio.

    tcp init
    tcp listen :: 30000
    

    L'utilizzo di :: indica che listen deve utilizzare l'indirizzo IPv6 non specificato, facendo in modo che lo stack TCP/IPv6 assegni l'indirizzo IPv6. Il numero della porta è 30.000.

  2. Sul nodo 2, inizializza il modulo dell'interfaccia a riga di comando TCP, connettiti al nodo 1 e invia un un messaggio semplice.

    tcp init
    tcp connect fe80:0:0:0:a8df:580a:860:ffa4 30000
    tcp send hello
    

Verifica

In base ai passaggi di esempio mostrati sopra, l'output previsto sarebbe il seguente:

  • Dopo che il nodo 2 ha eseguito il comando tcp connect, il nodo 2 dovrebbe ricevere il messaggio TCP: Connection established.
  • Il nodo 1 dovrebbe quindi ricevere i messaggi (con esempio di indirizzo e porta IPv6):
    • Accepted connection from [fe80:0:0:0:8f3:f602:bf9b:52f2]:49152
    • TCP: Connection established
  • Dopo che il nodo 2 ha eseguito il comando tcp send, il nodo 1 dovrebbe ricevere il messaggio TCP: Received 5 bytes: hello