Tester la fonctionnalité UDP avec OT CLI

Voir la source sur GitHub

OpenThread propose des commandes UDP utilisables avec un réseau Thread pour tester la communication peer-to-peer entre les sockets UDP. cli udp fournit un exemple de socket avec lequel toutes les commandes udp interagissent.

Les exemples suivants montrent comment ouvrir et lier des sockets, comment les connecter et comment envoyer des messages à l'aide de sockets UDP.

Commandes UDP

Pour obtenir la liste des commandes udp, saisissez help :

udp help
bind
close
connect
linksecurity
open
send
Done

Commande open

Utilisez la commande udp open pour ouvrir le socket et commencer la communication UDP. Vous avez ensuite la possibilité de lier le socket à une adresse IP et à un port spécifiques.

Commande bind

Après avoir open le socket, vous pouvez exécuter une commande udp bind pour attribuer une adresse IPv6 et un port au socket ouvert. Cela lie le socket pour la communication. L'attribution de l'adresse et du port IPv6 est également appelée nom du socket. Si vous n'exécutez pas directement la commande bind sur le socket, le fait de le connecter (udp connect) ou de l'utiliser dans une commande udp send lie le socket à un port éphémère.

Commande connect

Une commande udp connect peut être utilisée pour connecter l'exemple de socket à une adresse de socket pair. Vous pouvez ensuite exécuter une commande udp send pour envoyer un message au pair. Si le socket n'est pas déjà lié, l'exécution de la commande udp connect le lie également.

Commande send

Une commande udp send envoie un message à l'aide de l'exemple de socket à une destination dont l'adresse IP et le port UDP peuvent être spécifiés avec les variables de commande. Si l'adresse IP et le port ne sont pas spécifiés dans la commande udp send, le message est envoyé à l'aide de l'exemple de socket vers la destination spécifiée dans la commande udp connect. L'exécution de la commande udp send lie le socket à un port éphémère s'il n'a pas déjà été lié.

Commande close

Il est recommandé d'utiliser la commande udp close pour fermer le socket lorsqu'il n'est plus nécessaire.

Commande linksecurity

La commande udp linksecurity permet d'activer ou de désactiver la sécurité de la couche de liaison de données pour les messages.

Envoyer un message entre deux nœuds

  1. Sur le nœud 1, ouvrez le socket UDP.

    udp open
    Done
    
  2. Sur le nœud 1, liez le socket.

    udp bind :: 1234
    Done
    

    L'utilisation de :: indique que bind doit utiliser l'adresse IPv6 non spécifiée, ce qui permet à la pile UDP/IPv6 d'attribuer l'adresse IPv6 de liaison. Pour obtenir des options complètes avec udp bind, telles que la liaison à une interface réseau, reportez-vous à la section udp Lia.

1 Sur le nœud 2, ouvrez le socket UDP.

udp open
   Done
   

  1. Sur le nœud 2, envoyez un message simple au nœud 1.

    udp send fdde:ad00:beef:0:bb1:ebd6:ad10:f33 1234 hello
    Done
    

    Cette commande suppose que le nœud 2 a déjà découvert l'adresse du nœud 1. De plus, dans cet exemple, l'administrateur du nœud 2 a choisi de ne pas lier le socket. En effet, l'administrateur du nœud 2 souhaite envoyer un message au nœud 1 sans se soucier des adresses IP et des ports utilisés comme source du nœud 2. Dans ce scénario, le socket choisit une adresse IP et un port de manière aléatoire.

    Pour obtenir des options complètes avec udp send, consultez la section udp send.

  2. Le nœud 1 confirme la réception du message du nœud 2:

    5 bytes from fdde:ad00:beef:0:dac3:6792:e2e:90d8 49153 hello
    

Connectez le socket à l'adresse du socket pair, puis envoyez un message entre deux nœuds

Cet exemple est semblable au précédent, mais il démontre une partie de la flexibilité dont vous disposez pour utiliser les sockets UDP. Avec cette méthode, vous devez d'abord connecter le socket à l'adresse du socket pair. Vous n'avez ensuite pas besoin de spécifier l'adresse IP et le port du pair chaque fois que vous effectuez une opération udp send.

  1. Sur le nœud 1, ouvrez le socket UDP.

    udp open
    Done
    
  2. Sur le nœud 1, liez le socket.

    udp bind :: 1234
    Done
    
  3. Sur le nœud 2, ouvrez le socket UDP.

    udp open
    Done
    
  4. Sur le nœud 2, utilisez la commande udp connect pour ouvrir la communication avec le nœud 1.

    udp connect fdde:ad00:beef:0:bb1:ebd6:ad10:f33 1234
    Done
    

    Pour obtenir des options complètes avec udp connect, consultez la page udp connect.

  5. Sur le nœud 2, utilisez la commande udp send pour envoyer un message au nœud 1, mais ne spécifiez pas ip ni port dans la syntaxe de la commande udp send.

    udp send hello
    Done
    

    Si vous ne spécifiez pas ip ni port, la commande udp send utilise les valeurs ip et port spécifiées dans la commande udp connect.