OpenThread ofrece comandos de TCP que se pueden usar con una red Thread para probar la comunicación entre pares entre extremos de TCP. cli tcp
proporciona un extremo TCP de muestra y un objeto de escucha de TCP de muestra con los que interactúan todos los comandos tcp
.
Las descripciones generales de los comandos y el siguiente ejemplo proporcionan información sobre cómo inicializar el extremo TCP y el objeto de escucha de TCP de ejemplo, cómo conectarse a un extremo TCP de intercambio de tráfico y cómo enviar un mensaje al intercambio de tráfico.
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 de TCP comienzan en orden alfabético con tcp abort.
Comando init
Usa el comando tcp init
para inicializar el módulo TCP y comenzar la comunicación de TCP.
Luego, el módulo de TCP puede realizar muchas funciones, como escuchar conexiones entrantes con el objeto de escucha de TCP de ejemplo que proporciona la CLI de tcp
.
Para anular la inicialización del objeto de escucha de TCP de ejemplo y el extremo 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
a fin de asignar una dirección IPv6 y un puerto al extremo TCP.
Esto vincula el extremo para la comunicación. La asignación de 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 hayas inicializado 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 de 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 a 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 al intercambio de tráfico.
Comandos benchmark
Una vez que se establece una conexión TCP entre dos nodos, puedes usar los comandos benchmark
de forma opcional para enviar grandes cantidades de datos entre los nodos a fin de probar el ancho de banda y el rendimiento de la red. En los resultados de benchmark
, se proporcionarán la cantidad de bytes transmitidos en milisegundos y el Goodput de TCP.
Comando abort
Para finalizar una conexión TCP de inmediato y sin problemas, ejecuta el comando tcp abort
en cualquier nodo para hacer la transición del extremo TCP a un estado cerrado.
Comando sendend
Cuando un nodo termina de enviar datos al otro nodo, el primer nodo puede emitir un comando tcp sendend
para alertar al segundo nodo que ya no espera datos. El segundo nodo también puede enviar un tcp sendend
al primer nodo.
Una vez que cada nodo recibe un mensaje TCP: Disconnected
, se interrumpe la conexión TCP entre los dos nodos. Se recomienda, aunque no es obligatorio, emitir este comando cuando se completa la transferencia de datos.
Envía un mensaje entre dos nodos
En el nodo 1, inicializa el módulo de la CLI de TCP y, luego, detecta conexiones entrantes con el objeto de escucha de TCP de ejemplo.
tcp init
tcp listen :: 30000
El uso de
::
indica quelisten
debe usar la dirección IPv6 no especificada, por lo que la pila de TCP/IPv6 asigna la dirección IPv6. El puerto es 30000.En el nodo 2, inicializa el módulo de la CLI de TCP, conéctate al nodo 1 y, luego, envía un mensaje simple.
tcp init
tcp connect fe80:0:0:0:a8df:580a:860:ffa4 30000
tcp send hello
Verificación
En función de los pasos de ejemplo que se muestran arriba, se espera el siguiente resultado:
- Después de que el nodo 2 ejecute el comando
tcp connect
, debería recibir el mensajeTCP: Connection established
. - Luego, el nodo 1 debería recibir los mensajes (con un puerto y una dirección IPv6 de 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
, este debería recibir el mensajeTCP: Received 5 bytes: hello
.