22 janvier 2025

NetCat, communication TCP & UDP

NetCat est un logiciel qui permet d’ouvrir des communications TCP/UDP, dans notre usage, nous allons réaliser des communications dans ces protocoles à l’aide d’ordinateur et d’Arduino.

UDP vs TCP

Ces deux protocoles situés au dessus du protocole IP, permettent à des services de pouvoir échanger sur le réseau Internet. Nous pouvons voir cela en deux catégories :

  • TCP : Transmission de données fiable avec une détection et une correction d’erreurs de bout en bout, orienté connexion, la transmission de données est contrôlée.
  • UDP : Transmission de données sans correction, moins fiable mais plus rapide, efficace pour des services de diffusion/multidiffusion.

Prise en main de NetCat

Pour les plus novices, l’utilisation de NetCat peut faire peur, tout se passe en ligne de commande, pour se faire nous pouvons l’utiliser depuis :

  • Invite de commande Windows
  • Terminal linux (Ubuntu/Debian etc)
  • Powershell

Dès l’instant où Netcat est reconnu sur l’ordinateur, celui-ci est en mesure de fonctionner depuis la commande « nc« 
Analysons l’image ci-dessous.

« nc » signifie « netcat » c’est la commande à saisir à chaque fois qu’on souhaite utiliser le programme.
« -h » est une option de la commande, celle-ci permet d’avoir l’aide.
Nous pouvons ajouter des arguments aux options qui le permettent.

Communication UDP

Nous pouvons créer deux types de communication, soit Serveur, soit Client. Un client se connectera à un serveur, le serveur écoute le réseau jusqu’à ce qu’un client souhaite s’y connecter. Tel un serveur d’un restaurant qui attend que les clients viennent à lui pour engager la communication.

Serveur UDP

Pour réaliser un serveur UDP, il faut :

  • Qu’il écoute (un port en particulier)
  • Qu’il soit en mode UDP

En relisant l’image plus haut nous voyons plusieurs options qui nous intéressent alors

  • « -u » pour être en mode UDP
  • « -p » pour choisir le port d’écoute (option qui demande un argument)
  • « -l » pour écouter

Nous aurons alors cette commande

nc -u -l -p 1234

Nous avons placé « 1234 » après « -p » qui permet de préciser le port de notre serveur.
Lorsque nous ajoutons des options sur notre commande, nous ne sommes pas obliger de conserver chaque tiret, ce format fonctionne également :

nc -ulp 1234

Attention tout de même à bien conserver l’ordre des options.

Client UDP

Maintenant que nous avons réaliser un Serveur, il faut s’y connecter et pour cela, rien de plus simple ! Ouvrons une nouvelle fenêtre de commande sans fermer la première et saisissons ça :

nc -u localhost 1234

Nous avons maintenant plus besoin d’écouter ni d’ajouter l’option du port. Cependant nous devons préciser vers où nous nous connectons et à quel port. La syntaxe ressemble à au dessus, on indique seulement le mode UDP.

« localhost » signifie que nous allons nous connecté à notre propre ordinateur, comme nous avons un serveur, la connexion s’y fera directement et nous pourrons communiquer en écrivant dans l’invite de commande, des messages !

Et pour le TCP ?

Rien de plus simple ! Reprenez tout ce qui a été dit jusqu’à maintenant et retirez l’option « -u », par défaut netcat communique en TCP, donc supprimer cette option permettra de changer de protocole (Le client et le serveur doivent être du même protocole pour fonctionner).

Direction l’Arduino

Direction le prochaine Article pour savoir comment réaliser cela avec un Arduino : Lien ici

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *