Testar a funcionalidade do UDP com a CLI OT

Veja o código-fonte no GitHub

O OpenThread oferece comandos UDP para uso com uma rede Thread para teste ponto a ponto e comunicação entre soquetes UDP. O cli udp fornece um soquete de amostra com com a qual todos os comandos udp interagem.

Os exemplos a seguir demonstram como abrir e vincular soquetes, como conectar o soquete e como enviar mensagens usando soquetes UDP.

Comandos UDP

Para ver uma lista de comandos udp, digite help:

udp help
bind
close
connect
linksecurity
open
send
Done

Comando open

Use o comando udp open para abrir o soquete e iniciar a comunicação UDP. Em seguida, você terá a opção de vincular o soquete a uma porta e um endereço IP específicos.

Comando bind

Depois de open o soquete, execute um comando udp bind para atribuir um endereço IPv6 e uma porta para o soquete aberto. Isso vincula o soquete para comunicação. A atribuição do O endereço IPv6 e a porta também são chamados de nomear o soquete. Se você não bind o soquete, conectando-o (udp connect) ou usando-o um comando udp send vincula o soquete a uma porta temporária.

Comando connect

Um comando udp connect pode ser usado para conectar o soquete de exemplo a um endereço de soquete de peering. Em seguida, você pode emitir um comando udp send para enviar uma mensagem ao peering. Se o soquete ainda não estiver vinculado, emitir o comando udp connect também vinculará o soquete.

Comando send

Um comando udp send envia uma mensagem usando o soquete de exemplo para um destino com endereço IP e porta UDP que podem ser especificados com as variáveis de comando. Se o endereço IP e a porta não forem especificados no udp send, a mensagem será enviada usando o soquete de exemplo para o destino especificado no comando udp connect. A emissão do comando udp send vincula o soquete a uma porta temporária caso o soquete ainda não tenha sido vinculado.

Comando close

É recomendável usar o comando udp close para fechar o soquete quando o soquete não é mais necessário.

Comando linksecurity

O comando udp linksecurity pode ser usado para ativar ou desativar a segurança da camada de enlace de dados nas mensagens.

Enviar uma mensagem entre dois nós

  1. No Nó 1, abra o soquete UDP.

    udp open
    Done
    
  2. No Nó 1, vincule o soquete.

    udp bind :: 1234
    Done
    

    O uso de :: indica que bind precisa usar o endereço IPv6 não especificado. fazendo com que a pilha UDP/IPv6 atribua o endereço IPv6 de vinculação. Para concluir opções com udp bind, como vinculação a uma interface de rede, Consulte Vinculação de udp.

1 No Nó 2, abra o soquete UDP.

udp open
   Done
   

  1. No Nó 2, envie uma mensagem simples para o Nó 1.

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

    Esse comando pressupõe que o Nó 2 já descobriu o endereço do Nó 1. Além disso, neste exemplo, o administrador do Nó 2 optou por não vincular o soquete. Isso ocorre porque o administrador do nó 2 quer enviar uma mensagem para o Nó 1 sem se preocupar com quais endereços IP e portas são usados como a origem do nó 2. Nesse cenário, o soquete escolhe um endereço IP e uma porta aleatoriamente.

    Para conferir as opções completas com udp send, consulte udp send.

  2. O Nó 1 confirma o recebimento da mensagem do Nó 2:

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

Conectar o soquete ao endereço do soquete de mesmo nível e enviar uma mensagem entre dois nós

Este exemplo é semelhante ao anterior, mas demonstra parte da flexibilidade no uso de soquetes UDP. Com esse método, você primeiro conecta o soquete ao do peering, não será preciso especificar o endereço IP e a porta sempre que fizer um udp send.

  1. No Nó 1, abra o soquete UDP.

    udp open
    Done
    
  2. No Nó 1, vincule o soquete.

    udp bind :: 1234
    Done
    
  3. No Nó 2, abra o soquete UDP.

    udp open
    Done
    
  4. No Nó 2, use o comando udp connect para abrir a comunicação com o Nó 1.

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

    Para conferir as opções completas com udp connect, consulte Conexão UDP

  5. No Nó 2, use o comando udp send para enviar uma mensagem para o Nó 1, mas não especifique ip e port na sintaxe do comando udp send.

    udp send hello
    Done
    

    Se não especificar ip e port, o comando udp send usará o ip e o port. especificados no comando udp connect.