Testar a funcionalidade do TCP com a CLI OT

Veja o código-fonte no GitHub

O OpenThread oferece comandos TCP para uso com uma rede Thread para teste ponto a ponto a comunicação entre endpoints TCP. O cli tcp fornece uma amostra de TCP endpoint e um listener TCP de amostra com o qual todos os comandos tcp interagem.

As informações gerais do comando e o exemplo a seguir fornecem informações sobre a inicialização exemplo de endpoint TCP e listener TCP, como se conectar a um endpoint TCP de peering, e como enviar uma mensagem para o colega.

Comandos TCP

Para ver uma lista de comandos tcp, digite help:

tcp help
abort
benchmark
bind
connect
deinit
init
listen
send
sendend
stoplistening
Done
Para descrições e sintaxe de todos os comandos, consulte a referência de comandos da CLI. Os comandos TCP começam em ordem alfabética cancelamento de tcp (em inglês).

Comando init

Use o comando tcp init para inicializar o módulo TCP e iniciar a comunicação TCP. O módulo TCP pode executar muitas funções, como detectar usando o listener TCP de exemplo fornecido pela CLI tcp. Para desinicializar o listener TCP e o endpoint TCP de exemplo, emita o comando tcp deinit.

Comando bind

Para vincular o endpoint TCP de exemplo depois de inicializar o módulo TCP, executar um comando tcp bind para atribuir um endereço IPv6 e uma porta ao endpoint TCP. Isso vincula o endpoint para comunicação. Como atribuir o endereço IPv6 e a porta também é conhecido como “nomeação do endpoint”.

Comando listen

Para usar o exemplo de listener TCP depois de inicializar o módulo TCP, executar um comando tcp listen e especificar o endereço IPv6 e a porta de detecção.

Para impedir que o listener TCP de exemplo detecte conexões TCP de entrada, emita o comando tcp stoplistening.

Comando connect

Um comando tcp connect conecta o endpoint TCP de exemplo a um endereço de endpoint TCP de peering.

Comando send

Depois que uma conexão for estabelecida entre dois nós, emita um comando tcp send para enviar uma mensagem ao colega.

benchmark commands

Depois que uma conexão TCP é estabelecida entre dois nós, é possível usar o Comandos benchmark para enviar grandes quantidades de dados entre os nós e testar desempenho e largura de banda da rede. Número de bytes transmitidos em milissegundos assim como o Goodput do TCP serão fornecidos nos resultados de benchmark.

Comando abort

Para encerrar uma conexão TCP de maneira imediata e sem marcação, execute o tcp abort em qualquer nó para fazer a transição do endpoint TCP para um estado fechado.

Comando sendend

Quando um nó termina de enviar dados para o outro, o primeiro nó emitir um comando tcp sendend para alertar o segundo nó para não esperar mais dados. O segundo nó também pode enviar um tcp sendend para o primeiro nó. Quando cada nó recebe uma mensagem TCP: Disconnected, a conexão TCP entre os dois nós é removido. É recomendável, mas não obrigatório, emita esse comando quando a transferência de dados é concluída.

Enviar uma mensagem entre dois nós

  1. No nó 1, inicialize o módulo da CLI TCP e detecte as conexões de entrada. usando o listener TCP de exemplo.

    tcp init
    tcp listen :: 30000
    

    O uso de :: indica que listen precisa usar o endereço IPv6 não especificado. fazendo com que a pilha TCP/IPv6 atribua o endereço IPv6. A porta é 30000.

  2. No Nó 2, inicialize o módulo da CLI TCP, conecte-se ao nó 1 e envie uma mensagem simples.

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

Verificação

Com base nas etapas de exemplo mostradas acima, a saída é esperada:

  • Depois que o Nó 2 executar o comando tcp connect, o Nó 2 receberá a mensagem TCP: Connection established.
  • O nó 1 receberá as mensagens (com exemplo de endereço IPv6 e porta):
    • Accepted connection from [fe80:0:0:0:8f3:f602:bf9b:52f2]:49152
    • TCP: Connection established
  • Depois que o Nó 2 executar o comando tcp send, o Nó 1 receberá a mensagem TCP: Received 5 bytes: hello