Prueba la funcionalidad de TCP con la CLI de OT

Ver código fuente en GitHub

OpenThread ofrece comandos TCP para usar con una red Thread para probar la conexión entre pares la comunicación entre extremos TCP. El cli tcp proporciona un TCP de muestra. y un objeto de escucha de TCP de muestra con el que interactúan todos los comandos tcp.

Las descripciones generales de comandos y los siguientes ejemplos proporcionan información sobre cómo inicializar ejemplo, el extremo de TCP y el objeto de escucha de TCP, cómo conectarse a un extremo de TCP de intercambio de tráfico, y cómo enviar un mensaje a pares.

Comandos de TCP

Para obtener una lista de comandos tcp, escribe help:

tcp help
abort
benchmark
bind
connect
deinit
init
listen
send
sendend
stoplistening
Done
Para obtener descripciones y sintaxis de todos los comandos, consulta la Referencia de comandos de la CLI. Los comandos TCP comienzan alfabéticamente con aborto de TCP.

Comando init

Usa el comando tcp init para inicializar el módulo TCP y comenzar la comunicación con TCP. El módulo TCP puede realizar muchas funciones, como detectar los mensajes con el objeto de escucha de TCP de ejemplo que proporciona la CLI de tcp. Para desinicializar el objeto de escucha de TCP de ejemplo y el extremo de TCP de ejemplo, emite el comando tcp deinit.

Comando bind

Para vincular el extremo TCP de ejemplo una vez que hayas inicializado el módulo TCP, ejecuta un comando tcp bind para asignar una dirección IPv6 y un puerto al extremo TCP. Esto vincula el extremo para la comunicación. Asigna la dirección IPv6 y el puerto también se conoce como “nombrar el extremo”.

Comando listen

Para usar el objeto de escucha de TCP de ejemplo una vez que inicialices el módulo TCP, Ejecuta un comando tcp listen y especifica la dirección IPv6 y el puerto de escucha.

Para evitar que el objeto de escucha TCP de ejemplo escuche las conexiones TCP entrantes, emite el comando tcp stoplistening.

Comando connect

Un comando tcp connect conecta el extremo TCP de ejemplo con una dirección de extremo TCP de intercambio de tráfico.

Comando send

Una vez que se establece una conexión entre dos nodos, emite un comando tcp send. para enviar un mensaje a un par.

Comandos benchmark

Cuando se establece una conexión TCP entre dos nodos, puedes usar el Comandos benchmark para enviar grandes cantidades de datos entre los nodos a probar el ancho de banda y el rendimiento de la red. La cantidad de bytes transmitidos en milisegundos. y el Goodput de TCP se proporcionarán en los resultados de benchmark.

Comando abort

Para finalizar una conexión TCP de forma inmediata y sin ceremonias, ejecuta el comando tcp abort en cualquiera de los nodos para hacer la transición del extremo TCP a un estado cerrado.

Comando sendend

Cuando un nodo termina de enviar datos al otro, el primer nodo puede emitir un comando tcp sendend para alertar al segundo nodo de modo que ya no espere de datos no estructurados. El segundo nodo también puede enviar un tcp sendend al primero. Una vez que cada nodo recibe un mensaje TCP: Disconnected, la conexión TCP entre los dos nodos se elimina. Se recomienda, pero no es obligatorio, para y emitir este comando cuando se complete la transferencia de datos.

Envía un mensaje entre dos nodos

  1. En el nodo 1, inicializa el módulo de la CLI de TCP y, luego, escucha las conexiones entrantes. con el objeto de escucha TCP de ejemplo.

    tcp init
    tcp listen :: 30000
    

    El uso de :: indica que listen debe usar la dirección IPv6 no especificada. para que la pila TCP/IPv6 asigne la dirección IPv6. El puerto es 30000.

  2. En el Nodo 2, inicializa el módulo de la CLI de TCP, conéctate al nodo 1 y, luego, envía un es un mensaje sencillo.

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

Verificación

Según los pasos de ejemplo que se muestran arriba, el resultado debería ser el siguiente:

  • Después de que el Nodo 2 ejecute el comando tcp connect, el Nodo 2 debería recibir el mensaje TCP: Connection established.
  • Entonces, el nodo 1 debería recibir los mensajes (con la dirección IPv6 y el puerto como ejemplo):
    • Accepted connection from [fe80:0:0:0:8f3:f602:bf9b:52f2]:49152
    • TCP: Connection established
  • Después de que el Nodo 2 ejecute el comando tcp send, el Nodo 1 debería recibir el mensaje TCP: Received 5 bytes: hello