Reverse Ingeneering de protocole TCP/IP avec C#

Objectif :

Realiser le Reverse Ingeneering de protocole TCP/IP avec C#.

1) Introduction:

Dans ce document, nous allons aborder les techniques de base de la programmation réseau, réseau signifiant ici aussi bien réseau local que réseau Internet. Nous allons aussi apprendre à faire communiquer deux machines en utilisant le protocole TCP/IP, le protocole retenu par Internet.
Le langage C# offre une simplicité de programmation qui rend ce domaine un peu moins obscure qu'il ne peut l'être en langage C. Nous allons donc voir comment tirer parti des avantages de ce nouveau langage dans notre code.

2) Les sockets :

Faire communiquer deux ou plusieurs systèmes hétérogènes implique évidemment l'adoption de protocoles standardisés. Dans notre cas, nous supposerons qu'il s'agit du protocole TCP/IP adopté par Internet, bien que la classe Socket soit bien plus générale et puisse s'appliquer à d'autres protocoles (UPD, IP, IGMP, ICMP, etc ...).Les objets présentés dans ce chapitre sont issus du namespace System.Net.Sockets.

1. Connexion type client :

Connexion type client

Commentaires :

2. Création d'un serveur :

Création d'un serveur

Commentaires :

2. Connexion TCP/IP :

Pour simplifier la programmation de l'accès à des sites Internet, larchitecture .NET fournit les classes TcpClient et TcpListener. Ces classes sont plus simples que la classe Socket et elles conviennent généralement pour accéder à un site en utilisant le protocole TCP/IP. Elles n'offrent cependant qu'un accès restreint au paramétrage des liaisons. La mise en oeuvre des sockets par la classe Socket sera traitée au second chapitre.

1. La classe TcpClient :

a. Procédure de connexion :

Procédure de connexion

Commentaires :

b. Envoi et réception :

Envoi et réception

Commentaires :

c. Envoi et réception asynchrones :

Ces méthodes servent à effectuer les opérations qu'elles désignent en parallèle du code, elles sont mises en Thread.

Envoi et réception asynchrones

Commentaires :

2. La classe TcpListener :

La classe TcpListener est semblable à TcpClient mais s'applique au côté serveur.

La classe TcpListener

Commentaires :

4) Résolutions DNS :

1. Résolution de nom :

Résolutions DNS

Commentaires :

2. Résolution d'adresse :

Résolution d'adresse

Commentaires :

Conclusion

Les programmes orientés réseau sont généralement introduit par ces deux lignes:
using System.Net;
using System.Net.Sockets;

Mots clé :
  1. AddressFamily : spécifie le modèle d'adresse pouvant être utilisé par une instance de la classe System.Net.Sockets.Socket.
  2. AsyncCallback : fait référence à la méthode de rappel à appeler lorsque l'opération asynchrone est terminée.
  3. Dns : Fournit des fonctionnalités de résolution de noms de domaines simples.
  4. GetHostByAddress : retourne une IPHostEntry à partir d'une adresse IP.
  5. GetHostByName : retourne une IPHostEntry à partir d'un nom d'hôte.
  6. GetHostName : obtient le nom d'hôte de l'ordinateur local.
  7. IAsyncResult : représente l'état d'une opération asynchrone.
  8. AsyncState :
  9. IPAddress : fournit une adresse IP.
  10. IPEndPoint : représente un point de terminaison du réseau comme une adresse IP et un numéro de port.
  11. IPHostEntry : fournit une classe conteneur pour les informations sur l'adresse de l'hôte Internet.
  12. AddressList : liste d'IPAddress de l'hôte.
  13. HostName : nom de l'hôte.
  14. ProtocolType : spécifie les protocoles pris en charge par la classe System.Net.Sockets.Socket.
  15. Socket : implémente l'interface de sockets Berkeley.
  16. Accept : retourne un objet Socket correspondant à une connexion entrante
  17. Bind : associe System.Net.Sockets.Socket à un point de terminaison local.
  18. Send : envoie des données à un System.Net.Sockets.Socket connecté.
  19. SetSocketOption : affecte la valeur spécifiée à l'option spécifiée.
  20. Receive : reçoit des données d'un System.Net.Sockets.Socket connecté.
  21. SocketType : spécifie le type de socket que représente une instance de la classe System.Net.Sockets.Socket.
  22. SocketException : exception levée lorsqu'une erreur de socket se produit.
  23. Stream : donne une vue générique d'une séquence d'octets.
  24. NetWorkStream : fournit le flux de données sous-jacent pour l'accès au réseau.
  25. StreamWriter : implémente System.IO.TextWriter pour écrire les caractères dans un flux selon un codage particulier.
  26. StreamReader : implémente System.IO.TextReader qui lit les caractères à partir d'un flux d'octets dans un codage particulier.
  27. Flush : vide le buffer de sortie, forcant ainsi l'envoi des données.
  28. Write : écrit une séquence d'octets à partir du flux actuel.
  29. Read : lit une séquence d'octets à partir du flux actuel.
  30. TcpClient : fournit des connexions client pour des services réseau TCP.
  31. BeginRead : démarre une lecture asynchrone d'un flux.
  32. BeginWrite : démarre une écriture asynchrone dans un flux.
  33. EndRead : gère la fin d'une lecture asynchrone.
  34. EndWrite : gère la fin d'une écriture asynchrone.
  35. GetStream : obtient un objet NetWorkStream associé à cette connexion.
  36. TcpListener : écoute des connexions de clients réseau TCP.
  37. AcceptTcpClient : renvoi un objet TcpClient construit à partir d'une connexion entrante.
  38. Pending : indique si un client est dans la file d'attente.
  39. Start : démarre l'écoute du serveur.
  40. Stop : termine l'écoute de ce serveur.
  41. Thread : crée et contrôle un thread.
  42. ThreadPool : fournit un pool de threads qui peuvent servir à publier des opérations, à gérer des E/S asynchrones, à attendre au nom d'autres threads et à gérer des minuteries.

cours Réseaux application programme algorithme exercice analyse protocoles capture trames Ethernet

Révisé le :02-12-2017 www.technologuepro.com Facebook Twitter RSS