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 propia terminal de su computadora.

Entonces, ¿cómo funciona el modelo cliente-servidor dentro del 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 aceptará conexiones y gestionará las transferencias de datos a través de 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 utilidad de red destacada que lee y escribe datos a través de conexiones de red, utilizando el protocolo TCP/IP. Diseñado como una herramienta "back-end" confiable, Netcat se puede usar directamente con otros programas y scripts para enviar archivos desde un cliente a un servidor y viceversa. Al mismo tiempo, es una herramienta de exploración y depuración de redes rica en funciones que puede especificar parámetros de red y al mismo tiempo establecer una conexión a un host remoto a través de un túnel.

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

1.Cree un socket inicial para establecer una conexión desde el servidor al cliente.
2.Una vez conectado, Netcat generará automáticamente un segundo socket para transmitir archivos desde el servidor al cliente y viceversa. (Esta es la parte realmente 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 poderosa y flexible. Usaremos conexiones locales por simplicidad, aunque, por supuesto, también se pueden usar 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: configura el modo "escuchar", espera las conexiones entrantes.
  • -p: puerto local.
  • -u: configura el modo UDP.

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

Abra dos terminales de computadora: el primero actuará como servidor y el segundo como cliente.

Cliente TCP

Con Netcat, su PC se puede convertir en un servidor. Querrás comenzar como un servidor que escucha en el puerto 2399 :

$ nc -l 2399

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

$ nc localhost 2399

Como puede ver en la imagen a continuación, la conexión está establecida:

Con la conexión establecida, ahora puedes escribir al 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 usa el TCP para comunicarse, pero también puede usar UDP con la opción -u

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

En el del servidor , ejecute el siguiente comando. Como puedes ver, sólo necesitas agregar -u al comando para establecer la conexión 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 utilizan UDP para comunicarse. Puede verificar la comunicación utilizando el comando netstat en una nueva (tercera) terminal de computadora.

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

Como puede 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, ahora comprende mejor cómo utilizar esta herramienta avanzada para enviar datos de forma rápida y eficiente entre el cliente y el servidor. Consulte la página de inicio del proyecto Netcat para obtener más información.

¡Feliz piratería! 🙂