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
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
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 chelisten
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.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 messaggioTCP: 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 messaggioTCP: Received 5 bytes: hello