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
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
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 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 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 mensagemTCP: 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 mensagemTCP: Received 5 bytes: hello