Fondamentaux IoT

Comment simuler un client TCP/UDP à l'aide de Netcat

Maria Hernández
· 3 min de lecture
Envoyer par email

Dans ce guide, nous présenterons le modèle client-serveur et vous montrerons comment simuler un client TCP/UDP à l'aide d'un outil utile appelé Netcat – afin que vous puissiez établir une connexion à l'aide du propre terminal de votre ordinateur.

Alors, comment fonctionne le modèle client-serveur dans l’Internet des objets ? Le client est l'appareil qui initie la communication. Le serveur est Ubidots (ou tout autre serveur de connexion), qui acceptera les connexions et gérera les transferts de données via un protocole simple comme TCP ou UDP.

Pour en savoir plus sur la gestion de vos données avec Ubidots , découvrez comment envoyer des données à Ubidots via TCP ou UDP .

Qu’est-ce que Netcat ?

Netcat est un utilitaire réseau qui lit et écrit des données sur les connexions réseau, à l'aide du protocole TCP/IP. Conçu comme un outil « back-end » fiable, Netcat peut être utilisé directement avec d'autres programmes et scripts pour envoyer des fichiers d'un client à un serveur et inversement. En même temps, il s'agit d'un outil de débogage et d'exploration de réseau riche en fonctionnalités qui peut spécifier les paramètres du réseau tout en établissant une connexion à un hôte distant via un tunnel.

Bien que Netcat puisse faire beaucoup de choses, son objectif principal et ses fonctions les plus souhaitables sont les suivants :

1.Créez un socket initial pour établir une connexion du serveur au client.
2.Une fois connecté, Netcat générera automatiquement un deuxième socket pour transmettre les fichiers du serveur au client et vice versa. (C'est la partie vraiment cool).

Un diagramme de l'architecture du protocole de données de Netcat est présenté ci-dessous :

Comme vous le verrez ci-dessous, cette solution simple est également extraordinairement puissante et flexible. Nous utiliserons des connexions locales par souci de simplicité, même si bien sûr, elles peuvent également être utilisées entre différentes machines.

Syntaxe

nc [-options] nom d'hôte port[s] [ports] nc -l -p port [-options] [nom d'hôte] [port]

Paramètres de base

  • -l : définit le mode « écouter », attend les connexions entrantes.
  • -p : port local.
  • -u : définit le mode UDP.

Testez votre compréhension de Netcat en tant que client-serveur

Ouvrez deux terminaux informatiques – le premier fera office de serveur et le second de client.

Client TCP

Avec Netcat, votre PC peut être converti en serveur. Vous souhaiterez commencer en tant que serveur qui écoute sur le port 2399 :

$ nc -l 2399

Nous pouvons également utiliser le serveur pour nous connecter au port récemment ouvert ( 2399 ) côté client :

$ nc hôte local 2399

Comme vous pouvez le voir sur l'image ci-dessous, la connexion est établie :

La connexion étant établie, vous pouvez désormais écrire sur le serveur depuis le client :

$ nc localhost 2399 Bonjour serveur

Dans le terminal où s'exécute le serveur , vos fichiers texte apparaîtront de manière transparente.

$ nc -l 2399 Bonjour serveur

Client UDP

Par défaut, Netcat utilise le TCP pour communiquer – mais il peut également utiliser UDP avec l' -u .

Comme nous l'avons mentionné ci-dessus, Netcat vous permet de convertir votre PC en serveur. Ici, nous allons établir la connexion entre le serveur et le client via UDP.

Côté serveur , exécutez la commande ci-dessous. Comme vous pouvez le constater, il vous suffit d'ajouter -u à ​​la commande pour établir la connexion UDP 

$ nc -u -l 2399

Une fois le serveur démarré, établissez la connexion avec le client :

$ nc -u hôte local 2399

Désormais, le client et le serveur utilisent UDP pour communiquer. Vous pouvez vérifier la communication à l'aide de la commande netstat dans un nouveau (3ème) terminal informatique.

$ netstat | grep 2399 udp 0 0 localhost:2399 localhost:57508 ÉTABLI

Comme vous pouvez le voir ci-dessous, le message est reçu par le serveur et la transmission est vérifiée par la connexion :

Avec cette introduction à Netcat, vous comprenez désormais mieux comment utiliser cet outil avancé pour envoyer des données rapidement et efficacement entre le client et le serveur. Consultez la page d'accueil du projet Netcat pour plus d'informations.

Bon piratage ! 🙂