[Necessaire/Base] Architecture en couches

Publié le par Satellite

Bon, je vais tenter de vous expliquer les bases des protocoles réseaux pour faciliter la compréhension de certains des scripts proposés.

Tout d'abord, une comunication réseau est composée exclusivement d'un échange de paquets. C'est comme si vous envoyez une lettre à votre petite amie, qu'elle vous répond, vous lui répondez et ainsi de suite...
Comme toute lettre, il est nécessaire d'avoir une enveloppe sur laquelle on inscrit l'adresse de destination, l'expediteur, et d'autres informations éventuelles. En réseau, c'est pareil : le message que vous écrivez va passer par une série de protocoles (apellées couches), et chaque protocole va inscrire des informations sur l'enveloppe (apellée entête), permettant d'amener le paquet a déstination. Ainsi, un paquet est subdivisé en une série d'informations. Prenons un paquet échangé lors d'une conversation IRC :

On écrit un message à une personne en respectant le protocole IRC:

PRIVMSG Camille :Je t'aime\r\n

C'est le message en question. Ce message, avant l'envoi va transiter par la couche TCP qui va rajouter des informations, par exemple les ports sources et destination. Ainsi, grossièrement, le paquet contiendrait :

Entête TCP : port_source : 49770
             port_destination : 6667 (irc)
Message :  PRIVMSG Camille :Je t'aime\r\n


Le paquet va ensuite transiter par la couche IP. Ce protocole va ajouter, entre autre, les adresses IP sources et destinations (adresse identifiant les ordinateurs sur le net). Le paquet contiendrait:


Entête IP : ip_source : 192.168.1.10 #mon adresse
                   ip_destination : 1.1.1.1 #adresse du serveur
Entête TCP : port_source : 49770
             port_destination : 6667 (irc)
Message :  PRIVMSG Camille :Je t'aime\r\n


Puis  d'autres protocoles vont travailler a la suite pour pouvoir enfin envoyer le paquet vers le serveur. Sous scapy, le paquet serait de la forme

>>>  message = 'PRIVMSG Camille :Je t'aime\r\n'
>>> paquetTCP  = TCP(sport = 49770,dport = 6667)/Raw(message) #ajout de l'entête TCP
>>> paquetIP = IP(src = '192.168.1.10',dst = '1.1.1.1')/paquetTCP #ajout de l'entête IP



A travers ce blog, je vais vous tenter de vous montrer quelques utilisations des protocoles de réseau. Nous allons donc en grande partie travailler sur les entêtes des paquets plus que sur les paquets eux mêmes.

En esperant que vous ayez bien compris le principe de l'architecture en couches, je vous conseille cependant de vous renseigner sur les differents protocoles tels que UDP,ICMP,ARP,TCP,IP.

N'hesitez pas à me poser des questions.

Publié dans Cours

Pour être informé des derniers articles, inscrivez vous :
Commenter cet article