Cómo simular un cliente TCP/UDP usando Netcat

En esta guía, presentaremos el modelo cliente-servidor y le mostraremos cómo simular un cliente TCP/UDP usando una herramienta útil llamada Netcat , para que pueda establecer una conexión usando la terminal de su computadora.

Entonces, ¿ cómo funciona el modelo cliente-servidor en el Internet de las cosas? El cliente es el dispositivo que inicia la comunicación. El servidor es Ubidots (o cualquier otra conexión de servidor), que acepta conexiones y gestiona las transferencias de datos mediante un protocolo simple como TCP o UDP.

Para obtener más información sobre cómo administrar sus datos con Ubidots , descubra cómo enviar datos a Ubidots a través de TCP o UDP .

¿Qué es Netcat?

Netcat es una featured que lee y escribe datos a través de conexiones de red mediante el protocolo TCP/IP. Diseñada como una herramienta de back-end fiable, Netcat puede utilizarse directamente con otros programas y scripts para enviar archivos de un cliente a un servidor y viceversa. Además, es una herramienta de depuración y exploración de red con numerosas funciones que permite especificar parámetros de red y, al mismo tiempo, establecer una conexión con un host remoto mediante un túnel.

Aunque Netcat puede hacer muchas cosas, su propósito principal y sus funciones más deseables son:

1. Cree un socket inicial para establecer una conexión del servidor al cliente.
2. Una vez conectado, Netcat generará automáticamente un segundo socket para transmitir archivos del servidor al cliente y viceversa. (Esta es la parte más interesante).

A continuación se muestra un diagrama de la arquitectura del protocolo de datos de Netcat:

Como verá a continuación, esta sencilla solución también es extraordinariamente potente y flexible. Para simplificar, utilizaremos conexiones locales, aunque, por supuesto, también pueden usarse entre diferentes máquinas.

Sintaxis

nc [-opciones] nombre de host puerto[s] [puertos] nc -l -p puerto [-opciones] [nombre de host] [puerto]

Parámetros básicos

  • -l: establece el modo “escuchar”, espera las conexiones entrantes.
  • -p: puerto local.
  • -u: establece el modo UDP.

Pon a prueba tu comprensión de Netcat como cliente-servidor

Abra dos terminales de computadora: la primera actuará como servidor y la segunda como cliente.

Cliente TCP

Con Netcat, tu PC se puede convertir en un servidor. Debes empezar como un servidor que escucha en el puerto 2399 :

$ nc-l 2399

También podemos utilizar el servidor para conectarnos al puerto recientemente abierto ( 2399 ) desde el del cliente :

$ nc localhost 2399

Como se puede ver en la imagen de abajo, la conexión está establecida:

Con la conexión establecida, ahora puedes escribir en el servidor desde el cliente :

$ nc localhost 2399 Hola Servidor

En la terminal donde se ejecuta el servidor , sus archivos de texto aparecerán sin problemas.

$ nc -l 2399 Hola Servidor

Cliente UDP

De forma predeterminada, Netcat utiliza el TCP para comunicarse, pero también puede usar UDP con la -u .

Como mencionamos anteriormente, Netcat te permite convertir tu PC en un servidor. Aquí, estableceremos la conexión entre el servidor y el cliente mediante UDP.

En el servidor , ejecute el siguiente comando. Como puede ver, solo necesita agregar "-u" al comando para establecer la UDP :

$ nc-u-l 2399

Una vez que inicie el servidor, establezca la conexión con el cliente :

$ nc -u localhost 2399

Ahora el cliente y el servidor se comunican mediante UDP. Puede verificar la comunicación con el comando netstat en una nueva (tercera) terminal.

$ netstat | grep 2399 udp 0 0 localhost:2399 localhost:57508 ESTABLECIDO

Como puedes ver a continuación, el mensaje es recibido por el servidor y la transmisión es verificada por la conexión:

Con esta introducción a Netcat, comprenderá mejor cómo usar esta herramienta avanzada para enviar datos de forma rápida y eficiente entre el cliente y el servidor. Consulte la página principal del proyecto Netcat para obtener más información.

¡Feliz hackeo! 🙂