OpenThread propose des commandes TCP à utiliser avec un réseau Thread pour tester la communication peer-to-peer entre les points de terminaison TCP. cli tcp
fournit un exemple de point de terminaison TCP et un exemple d'écouteur TCP avec lesquels toutes les commandes tcp
interagissent.
Les présentations de commandes et l'exemple qui suit fournissent des informations sur l'initialisation de l'exemple de point de terminaison TCP et d'écouteur TCP, de la connexion à un point de terminaison TCP pair et de l'envoi d'un message au pair.
Commandes TCP
Pour obtenir la liste des commandes tcp
, saisissez help
:
tcp help
abort
benchmark
bind
connect
deinit
init
listen
send
sendend
stoplistening
Done
Pour obtenir la description et la syntaxe de toutes les commandes, consultez la documentation de référence sur les commandes CLI.
Les commandes TCP commencent alphabétiquement par tcp abort.
Commande init
Utilisez la commande tcp init
pour initialiser le module TCP afin de commencer la communication TCP.
Le module TCP peut ensuite effectuer de nombreuses fonctions, telles que l'écoute des connexions entrantes à l'aide de l'exemple d'écouteur TCP fourni par la CLI tcp
.
Pour déinitialiser l'exemple d'écouteur TCP et l'exemple de point de terminaison TCP, exécutez la commande tcp deinit
.
Commande bind
Pour lier l'exemple de point de terminaison TCP une fois que vous avez initialisé le module TCP, exécutez une commande tcp bind
pour attribuer une adresse IPv6 et un port au point de terminaison TCP.
Cela permet de lier le point de terminaison pour la communication. L'attribution de l'adresse et du port IPv6
est également appelée « nom du point de terminaison ».
Commande listen
Pour utiliser l'exemple d'écouteur TCP une fois que vous avez initialisé le module TCP, exécutez une commande tcp listen
et spécifiez l'adresse IPv6 et le port d'écoute.
Pour empêcher l'exemple d'écouteur TCP d'écouter les connexions TCP entrantes, exécutez la commande tcp stoplistening
.
Commande connect
Une commande tcp connect
connecte l'exemple de point de terminaison TCP à une adresse de point de terminaison TCP pair.
Commande send
Une fois la connexion établie entre deux nœuds, exécutez une commande tcp send
pour envoyer un message au pair.
Commandes benchmark
Une fois qu'une connexion TCP est établie entre deux nœuds, vous pouvez éventuellement utiliser les commandes benchmark
pour envoyer de grandes quantités de données entre les nœuds afin de tester la bande passante et les performances du réseau. Le nombre d'octets transmis en millisecondes ainsi que le Goodput TCP sont indiqués dans les résultats benchmark
.
Commande abort
Pour mettre fin immédiatement et de manière non cérémonie à une connexion TCP, exécutez la commande tcp abort
sur l'un des nœuds afin de faire passer le point de terminaison TCP à un état fermé.
Commande sendend
Lorsqu'un nœud a fini d'envoyer des données à l'autre nœud, le premier nœud peut émettre une commande tcp sendend
pour alerter le second nœud afin qu'il n'attende plus de données. Le deuxième nœud peut également envoyer un tcp sendend
au premier nœud.
Une fois que chaque nœud reçoit un message TCP: Disconnected
, la connexion TCP entre les deux nœuds est interrompue. Il est recommandé, mais pas obligatoire, d'exécuter cette commande une fois le transfert de données terminé.
Envoyer un message entre deux nœuds
Sur le nœud 1, initialisez le module CLI TCP, puis écoutez les connexions entrantes à l'aide de l'exemple d'écouteur TCP.
tcp init
tcp listen :: 30000
L'utilisation de
::
indique quelisten
doit utiliser l'adresse IPv6 non spécifiée, ce qui permet à la pile TCP/IPv6 d'attribuer l'adresse IPv6. Le port est 30000.Sur le nœud 2, initialisez le module de CLI TCP, connectez-vous au nœud 1, puis envoyez un message simple.
tcp init
tcp connect fe80:0:0:0:a8df:580a:860:ffa4 30000
tcp send hello
Validation
D'après les exemples d'étapes présentés ci-dessus, vous devriez obtenir le résultat suivant:
- Une fois que le nœud 2 a exécuté la commande
tcp connect
, le nœud 2 doit recevoir le messageTCP: Connection established
. - Le nœud 1 doit ensuite recevoir les messages (avec exemple d'adresse IPv6 et de port) :
Accepted connection from [fe80:0:0:0:8f3:f602:bf9b:52f2]:49152
TCP: Connection established
- Une fois que le nœud 2 a exécuté la commande
tcp send
, le nœud 1 doit recevoir le messageTCP: Received 5 bytes: hello
.