Confira o código-fonte no GitHub
O OpenThread oferece comandos TCP para uso com uma rede Thread para testar a comunicação ponto a ponto entre endpoints TCP. O cli tcp
fornece um exemplo de endpoint TCP e um exemplo de listener TCP com que todos os comandos tcp
interagem.
As visões gerais dos comandos e o exemplo a seguir fornecem informações sobre como inicializar o endpoint TCP e o listener TCP de exemplo, como se conectar a um endpoint TCP de peering e como enviar uma mensagem ao peering.
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 com tcp cancel.
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 conexões
de entrada usando o listener TCP de exemplo fornecido pela CLI tcp
.
Para desinicializar o listener TCP de exemplo 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, execute um comando tcp bind
para atribuir um endereço IPv6 e uma porta ao endpoint TCP.
Isso vincula o endpoint para comunicação. A atribuição do endereço e da porta IPv6 também é chamada de "nomear o endpoint".
Comando listen
Para usar o listener TCP de exemplo depois de inicializar o módulo TCP, execute um comando tcp listen
e especifique o endereço IPv6 e a porta de detecção.
Para interromper a detecção de conexões TCP de entrada no listener TCP de exemplo,
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 peering.
benchmark
commands
Depois que uma conexão TCP for estabelecida entre dois nós, você pode usar os
comandos benchmark
para enviar grandes quantidades de dados entre os nós e testar
a largura de banda e o desempenho da rede. O número de bytes transmitidos em milissegundos, bem como o Goodput do TCP, serão fornecidos nos resultados de benchmark
.
Comando abort
Para encerrar uma conexão TCP de forma imediata e sem cerimônia, execute o comando tcp abort
em qualquer um dos nós para fazer a transição do endpoint TCP para um estado fechado.
Comando sendend
Quando um nó terminar de enviar dados para o outro, o primeiro nó poderá 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ó.
Depois que cada nó recebe uma mensagem TCP: Disconnected
, a conexão TCP
entre os dois nós é eliminada. É recomendável, mas não obrigatório,
emitir esse comando quando a transferência de dados for concluída.
Enviar uma mensagem entre dois nós
No nó 1, inicialize o módulo TCP CLI e detecte conexões de entrada usando o listener TCP de exemplo.
tcp init
tcp listen :: 30000
O uso de
::
indica quelisten
precisa usar o endereço IPv6 não especificado, fazendo com que a pilha TCP/IPv6 atribua o endereço IPv6. A porta é 30000.No nó 2, inicialize o módulo TCP CLI, 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 seguinte saída é esperada:
- Depois que o nó 2 executar o comando
tcp connect
, ele receberá a mensagemTCP: Connection established
. - O nó 1 receberá as mensagens com o endereço IPv6 e a porta de exemplo:
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 mensagemTCP: Received 5 bytes: hello
.