_________________________________________________________________________________________________________
------
------/~~~~~~~~~~~\
---------=< |-
Sommaire -|
>=--
------\~~~~~~~~~~~/
I. "Prelude of TCP/IP Knowledge" (1ère partie)--by CL@D
II. "Wireless Network Introduction"--by TheTchesk
III. "Escape Shell for All"--by Nocte
IV. "PGP Introducing"--by JaCkEr
V. "SQL Injection : Black Hole Security"--by Skin
VI. "Include Vulnerability"--by Sps6m3n
_________________________________________________________________________________________________________
------/~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\
---------=< |-
Prelude of TCP/IP Knowledge (1ère
partie) -| >=--
------\~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~/
Sommaire
:
===========
I. Qu'est-ce que TCP/IP ?
A - Définition
B - Réseaux et protocoles
C - Historique
II. Caractéristique de TCP/IP
A - Adressage
1) Introduction2) Protocole Internet (IP)
3) Champs d'en-tête IP
4) Adressage IP
5) Convertion d'une adresse binaire de 32 bits au format décimal pointé
6) Protocole de résolution d'adresse (ARP)
7) RARP
B - Routage
C - Résolution d'adresses
D - Contrôle d'erreur et des flots de données
III. Le fonctionnement de TCP/IP
A - Système de protocoles TCP/IP
1) Introduction
2) Survol des couches
3) L'encapsulation
B - TCP/IP et le modèle OSI
C - Rapide récapitulatif (scénario de base de l'envoie d'une trame sur un réseau)
IV. Conclusion
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
I. Qu'est-ce que TCP/IP ?
A - Définition
TCP/IP signifie Transfert Control Protocol / Internet Protocol ; c'est un système -une suite de protocoles- pour l'exploitation des réseaux de communication.
B - Réseaux et protocoles
Un réseau est un ensemble d'ordinateurs ou de machines informatiques qui communiquent grâce à une technique commune de transmission.
Figure 1 : Structure d'un réseau local
Des données et des appels de données sont ainsi échangés entre les machines sur un câble dédié, ou plus simplement sur une ligne téléphonique. Dans le cas de la figure précédente, la machine A doit pouvoir envoyer un message ou une requête vers la machine B qui , à son tour, doit comprendre le message de la machine A afin de lui répondre.
Un ordinateur intéragit avec le monde extérieur en exécutant une ou plusieurs applications informatiques, en effectuant des tâches et en gérant des entrées-sorties. Lorsqu'il travaille en réseau, ses applications doivent dialoguer avec les applications d'autres machines du réseau grâce à une suite de protocoles -un ensemble de règles reconnues par toutes les machines du réseau pour effectuer sur celui-ci des opérations de transfert complexes-.
Les données transitent de l'application en cours sur la machine A vers l'application ayant émis la requête de la machine B via la carte réseau de la machine A, la liaison physique réseau et la carte réseau de la machine B :
Figure 2 : le rôle d'une suite de protocoles réseau
Les protocoles TCP/IP définissent les modalités de communication sur le réseau et, en particulier, le format des données ainsi que les éléments d'information à leur adjoindre pour que le destinataire puisse interpréter convenablement le message. TCP/IP et ses protocoles associés forment un système complet qui définit la manière de traiter, de transmettre et d'exploiter les informations transmises sur un réseau (qui fonctionne sous TCP/IP). Un système de protocoles liés les uns aux autres, comme TCP/IP, est appelé suite de protocoles.
La tâche consistant à traiter les transmissions TCP/IP est effectuée par un logiciel qui est une implémentation fournisseur de TCP/IP. Par exemple, "Microsoft TCP/IP" est un logiciel qui permet à Windows NT de traiter les données au format TCP/IP, et donc d'exploiter le réseau à la norme TCP/IP. Il faut bien faire la différence entre "Standard TCP/IP", qui est un ensemble de règles qui gèrent les communications sur réseau TCP/IP, et "Implémentation TCP/IP", qui est un logiciel effectuant les opérations qui permettent à une machine donnée de se connecter à un réseau TCP/IP. Le but des "Standard TCP/IP" est d'assurer la compatibilité entre toutes les implémentations TCP/IP, quels que soient les fournisseurs ou les implémentation. En gros le modèle TCP/IP n'offre aucun service, mais définit les services qui doivent être offerts. Les implémentations logicielles TCP/IP du fournisseur offrent ces services.
C - Historique
Les réseaux TCP/IP sont issus de la synthèse de deux développement commencés en 1970, et qui ont, depuis, révolutionné le monde de l'informatique :
_Internet
_Les réseaux locaux (LAN)
INTERNET
A la fin des années 60, les officiels du "Departement Of Defense" s'aperçoivent que les militaires possèdent une grande quantité de machines informatiques diverses, dont certaines travaillent isolément et d'autres en réseaux fermés de dimension modeste, dont les protocoles d'exploitation sont incompatible.
Les autorités militaires se sont alors demandé s'il était possible, pour ces machines aux profils très différents, de traiter des informations mises en commun. Habitués comme ils le sont aux problèmes de sécurité, les responsables de la Défense se sont immédiatement rendu compte qu'un réseau de grande ampleur deviendrait une cible idéal en cas de conflit. La caractéristique essentielle de ce réseau devait donc d'être un réseau "non -centralisé", il ne devait présenter aucun point physiquement vulnérables. C'est ainsi que les militaires ont mis au point un réseau baptisé ARPAnet, parce qu'il est issu de l' Advanced Research Projects Agency du DOD. Le système de protocoles permettant d'exploiter ce réseau interconnecté et décentralisé est à l'origine de ce qui existe aujourd'hui sous le nom de TCP/IP.
Les deux principes essentiels de TCP/IP sur lesquels repose cet environnement de caractère décentralisé sont les suivants :
_Vérification des noeuds terminaux : les deux ordinateurs en train d'échanger des informations (appelés noeuds terminaux parce qu'ils sont placés aux deux extrémités de la chaîne qui achemine le message) ont pour obligation d'accuser la réception de la transmission et d'en vérifier le contenu. Tous les ordinateurs fonctionnent de façon banalisée, car aucun site centralisé ne surveille les échanges.
_Routage dynamique : les noeuds du réseau peuvent être connectés par de multiples itinéraires, dont la configuration dépend des opportunités du moment.
LES LAN, RESEAU LOCAUX
Tandis qu'Internet se propage dans les universités, entreprises..., un autre concept prend forme, celui du réseau local, le Local Area Network (LAN).
Les protocoles LAN ne donnent pas tous accès à Internet et ce dernier devenant de plus en plus populaire, les utilisateurs de LAN désirent à leur tour accéder à ce réseau, ce qui fait apparaître une multitude de solutions pour raccorder les possesseurs de LAN. Des passerelles (routeur qui connecte un LAN à un grand réseau. Ce terme est utilisé parfois pour désigner un routeur qui effectue des conversions de protocoles), spécialisées leur offrent les convertions de protocoles indispensables pour accéder à Internet. Les versions récentes de Netware, de MacOS et de Windows ont continué d'accroître la prépondérance de TCP/IP dans les réseaux locaux. La popularité croissante des systèmes Unix, tels sue Linux, BSD, Solaris et Apple OS X, a également contribué à la prédominance de TCP/IP dans le monde des réseaux.
Figure 3 : connection d'un LAN à un grand réseau
II. Caractéristique de TCP/IP
A - Adressage
1) Introduction
Une carte réseau possède une adresse physique unique et permanente. L'adresse physique est un nombre attribué à cette carte lors de sa fabrication. Sur un réseau local, les protocoles de bas niveau, liés au matériel, acheminent des données sur le réseau en utilisant cette adresse physique. Il existe des réseaux de genres très divers et chacun achemine les données à sa façon. Dans le cas d'une liaison Ethernet (désigne une architecture de réseau local) standard, par exemple, l'ordinateur expédie ses messages directement sur la liaison. La carte réseau de chaque ordinateur examine la totalité du traffic sur le réseau local afin d'en extraire les messages qui concernent sa propre adresse physique.
Dans le cas des grands réseaux, il est évident que la carte réseau d'une machine ne peut examiner la totalité du trafic. En effet, étant donné le nombre croissant des machines connectés à Internet, le principe de l'adressage physique serait intenable. Ces grands réseaux sont pour la plupart subdiviser en sous-réseaux ou subnet (subdivision logique de l'espace d'adressage définie par un identificateur de réseau TCP/IP) pour leur permettre de maîtriser le trafic du réseau. Ces mêmes sous-réseaux sont hierarchisés de manière à ce qu'un message soit acheminé de façon optimale vers sa destination. TCP/IP offre cette possibilité de subdivision grâce à l'adressage logique. Cette adresse est élaborée par le logiciel de communication. Sous TCP/IP, l'adressage logique d'un ordinateur est une adresse IP (adresse logique permettant de localiser un ordinateur sur un réseau TCP/IP).
Une adresse physique ressemble à ça :
00-E0-98-07-8E-39 |
Ainsi TCP/IP masque l'adresse physique de la carte réseau et organise le réseau en un shéma d'adressage logique et hierarchique. Ce shéma d'adressage logique est géré par le protocole IP (Internet Protocole) de la couche Internet (j'expliquerai plus loin le foctionnement des différentes couches de TCP/IP). Un autre protocole de la couche Internet, appelé ARP (Address Resolution Protocole) maintient une certaine correspondance entre les adresses IP et les adresses physiques. Cette table ARP consttitue le lien entre l'adresse IP et l'adresse physique d'une interface réseau.
Afin d'envoyer des données sur un réseau routé ( c'est à dire où le trafic est réorienté grâce à un routeur), le logiciel TCP/IP utilise les stratégies suivantes :
1. Si l'adresse de destination est sur le même segment de réseau que la machine émettrice, celle-ci envoie le paquet de données (trame) directement à la destination. L'adresse IP est transformée en adresse physique grâce à ARP et les données sont redirigées vers l'interface réseau de destination.
2.Si l'adresse de destination est située sur un autre segment de réseau que celui de la machine émettrice, le processus suivant commence :
_Le datagramme est dirigé vers une passerelle. L'adresse de la passerelle est transformée en adresse physique à l'aide de ARP et les données sont envoyées à l'interface réseau de la passerelle.
_Le datagremme est routé, au travers de la passerelle, vers un segment de plus haut niveau où ce processus est répété. Si l'adresse de destination appartient au nouveau segment, les données sont transmises à la destination. Sinon le datagramme est retransmis à un autre routeur.
_Le datagramme traverse une chaîne de routeurs jusqu'au segment de destination sur lequel ARP établit une correspondance entre l'adresse IP de destination et l'adresse physique. Ainsi, les données sont retransmises à l'interface réseau de destination.
Figure 4 : la passerelle reçoit des datagrammes (paquets de données) destinés à d'autres réseaux
Afin de délivrer des données sur un réseau routé, les protocoles de la couche Internet doivent, par conséquent, être capables :
_d'identifier toute machine du réseau ;
_de déterminer si un message doit transiter par un routeur ;
_de fournir un moyen permettant de déterminer le segment réseau de destination ;
_de fournir un moyen permettant de convertir l'adresse IP logique de la machine de destinationen une adresse physique pour que les données soient délivrées à l'interface réseau de la machine de destination.
2) Protocole Internet (IP)
Le protocole IP permet un système d'adressage hierarchique, indépendant du matériel, et offre les services nécessaires à la délivrance de données au travers d'un réseau routé, il est responsable de l'élaboration des datagrames, de leur acheminement et de leur traitement à la réception. Chaque interface (carte) réseau d'un réseau TCP/IP dispose d'une adresse IP unique.
Les adresses IP d'un réseau sont organisées de telle façon que l'emplacement d'une machine soit défini par son adresse.
Une adresse IP est un nombre codé sur 32 bits ( 4 octets ) qui ressemble à ça :
190.154.28.15 |
Une adresse IP contient :
_ une partie désignant le réseau et le
sous réseau : on parle d'ID
réseau ---> ici : 154
_ une partie désignant vôtre machine sur
ce réseau : on parle d'ID hôte
---> ici : 15
3) Champs d'en-tête IP
Chaque datagramme IP commence par un en-tête IP. C'est le logiciel TCP/IP de la machine émettrice qui construit l'en-tête IP. Le logiciel TCP/IP de la machine de destination utilise l'informmation codée dans l'en-tête IP afin de traiter ce datagramme.
La taille minimale d'un en-tête IP est de 20 octets :
Version |
IHL |
TOS |
Longueur
totale |
Identification |
Drapeau |
Décalage
de framents |
Durée
de vie |
Protocole |
Somme
de contrôle de l'en-tête |
Adresse
IP source |
Adresse
IP de destination |
Options
IP (optionnel) |
Bits
de bourrage |
Données |
Champs
réservé à d'autres possibles données |
Les champs de l'en-tête IP sont :
_"Version" : ce champ de 4 bits indique la version IP. La version actuelle est la 4.
_"IHL" ou "Internet Hearder Lenght" : longueur de l'en-tête. Ce champ de 4 bits représente la longueur de l'en-tête IP en mots de 32 bits.
_"TOS" ou "Type Of Service" : type de service. Le but initial de ce champ de 8 bits est de prioriser le passage de datagrammes au travers d'un routeur. Il est souvent remplit par des 0.
_"Longueur total" : ce champs de 16 bits représente la longueur, en octet, du datagramme IP. Cette longueur inclut l'en-tête IP et les données utiles.
_"Identification" : ce champs de 16 bits est un numéro de séquence assigné aux messages émis par la source IP.
_"Drapeaux" : ce champs précise les possiblités de framentation. En effet lorsqu'un message est envoyé à la couche IP et qu'il est trop large pour être contenu dans un datagramme, IP le framente en plusieurs datagrammes en attribuant le même identificateur à chaque datagramme.
_"Décalage(offset ) de framents" : ce champs de 13 bits est une valeur numérique assignée à chaque frament sucessif. A la destination, IP utilise ce paramètre pour réassembler les framents dans l'ordre.
_"Durée de vie" ou "TTL"(=Time To Live) : ce champs de 8 bits indique la durée en secondes, ou le nombre de sauts de routeurs, pendant laquelle le datagramme peut survivre avant d'être rejeté.
_"Protocole" : ce champs de 8 bits indique quel est le protocole qui traitera les données utiles. Par exemple l'identificateur de protocole de TCP est 6.
_"Somme de contrôle de l'en-tête" : ce champs est un entier calculé de 16 bits permettant de vérifier la seule intégrité de l'en-tête.
_"Adresse IP source" : ce champs de 32 bits contient l'adresse de la source du datagramme.
_"Adresse IP de destination" : ce champs de 32 bits contient l'adresse de destination du datagramme et il est utilisé pour assurer la délivrance correcte à la machine destinatrice.
_"Options IP" : ce champs contient des paramètres optionnels de l'en-tête, destinés initialement aux tests, au débogage et à la sécurité.
_"Le bourrage" : ce champs de bourrage rajoute des 0 de telle façon que la longueur totale de l'en-tête soit un multiple de 32 bits.
_"Charge utile" : ce champs contient les données destinées à être transmises aux couches TCP, UDP, ICMP ou IGMP.
4) Adressage IP
Rappel : une adresse IP est un nombre de binaire de 32 bits. Cette adresse de 32 bits est sous-divisée en quatre segments de 8 bits appelée octet.
Une partie de l'adresse IP est utilisée pour l'identificateur de réseau et une autre pour l'identificateur de machine. La partie de l'adresse correspondant à l'identificateur de réseau varie en fonction de celle-ci. La plupart des adresses IP sont regroupées dans les classes suivantes :
Premier
segment de l'adresse IP |
Classe
d'adresse |
0 à 127 |
A |
128 à 191 |
B |
192 à 223 |
C |
5) Convertion d'une adresse binaire de 32 bits au format décimal pointé
Une adresse IP au format binaire de 32 bits est très difficile à manipuler, il est donc indispensable de savoir l'a convertire au format décimal pointé.
Conversion format binaire au format décimal
Les nombres binaires (base 2) sont identiques
aux nombres décimaux (base 10), si ce n'est qu'il s'agit de multiples
de 2 au lieu de multiples de 10. La valeur d'un nombre décimal est la
somme des valeurs de chaque rang. Par exemple, la valeur du nombre décimal
126.325 s'exprime sous la forme : (1*100.000) + (2*10.000) + (6*1000) + (3*100)
+ (2*10) + (5*1) = 126.325.
Pour déterminer l'équivalent décimal d'une valeur binaire,
il faut ajouter les valeurs de chaque bit valant 1. N'oubliez pas que l'adresse
IP est constitué de quatre octets qui doivent être convertis séparément
au format décimal. Voici un exemple de conversion d'une adresse IP binaire
sur 32 bits au format décimal pointé :
Convertissons l'adresse binaire -> 01011001000111011100110000011000
1ère étape
-> Eclatons l'adresse en octet de 8 bits :
OCTET 1 : 01011001
OCTET 2 : 00011101
OCTET 3 : 11001100
OCTET 4 : 00011000
2ème étape
-> Convertissons chaque octet en nombre décimal :
Prenez l'octet 1 et réécrivez le en partant du début et
en écrivant de haut en bas puis multipliez chaque terme par le multiple
de 2 qui lui correspond en partant toujours de 1 et cette fois en partant du
bas por allez vers le haut :
0*128 = 0
1*64 = 64
0*32 = 0
1*16 = 16
1*8 = 8
0*4 = 0
0*2 = 0
1*1 = 1
On obtient ainsi pour le 1er octet : 1+0+0+8+16+0+64+0 = 89
Par la même méthode on obtient pour l'octet 2 : 1+4+8+16 = 29
---------------------------------------------3 : 4+8+64+128 = 204
---------------------------------------------4 : 8+16 = 24
3ème étape -> Ecrivons les valeurs décimales équivalentes de la gauche vers la droite, en les séparant par des points : l'adresse devient 89.29.204.24
Conversion d'un nombre décimal en un octet
binaire
Si vous souhaitez convertir une adresse décimale pointée en une
adresse binaire sur 32 bits, convertissez chaque segment de cette adresse en
un octet binaire, convertissons le décimal 207 en un octet binaire :
1.Comparons le décimal 207 à 128. Si le
nombre décimal est supérieur ou égal à 128, ôtons
128 et reportons un 1. Si le nombre décimal est inférieur à
128, soustrayons 0 et écrivons un 0.
207>128
207-128 = 79
Ecrivons 1 dans le bit de poids 128
La réponse est 1
2.Prenons le résultat de l'étape 1 (79
dans ce cas) et comparons-le au nombre 64. Si le nombre décimal es t
supérieur ou égal à 64, ôtons 64 et reportons 1.
Si le nombre décimal est inférieur à 64, ôtons 0
et reportons un 0.
79>64
79-64 = 15
Ecrivons 1 dans le bit de poids 64
La réponse est 11
3.Prenons le résultat de l'étape 2 (15
dans ce cas) et comparons-le au nombre 32. Si le nombre décimal est supérieur
ou égal à 32, ôtons 32 et reportons un 1. Si le nombre décimal
est inférieur à 32, ôtons 0 et reportons un 0.
15<32
15-0 = 15
Ecrivons 0 dans le bit de poids 32
La réponse est 110
4.Comparons le résultat de l'étape 3 au
nombre 16. Si le nombre est supérieur à 16, ôtons 16 et
reportons un 1. Si le nombre est inférieur à 16, ôtons 0
et reportons un 0.
15<16
15-0 = 15
Ecrivons 0 dans le bit de poids 16
La réponse est 1100
5.Comparons le résultat de l'étape 4 au
nombre 8. Si le nombre décimal est supérieur ou égal à
8, ôtons 8 et reportons un 1. Si le nombre décimal est inférieur
à 8, ôtons 0 et reportons un 0.
15>8
15-8 = 7
Ecrivons 1 dans le bit de poids 8
La réponse est 11001
6.Comparons le résultat de l'étape 5 au
nombre 4. Si le nombre décimal est inférieur à 4, ôtons
0 et reportons un 1. Si le nombre décimal est inférieur à
4, ôtons 0 et reportons un 0.
7>4
7-4 = 3
Ecrivons 1 dans le bit de poids 4
La réponse est 110011
7.Comparons le résulat de l'étape 6 au
nombre 2. Si le nombre décimal est supérieur à 2, ôtons
2 et reportons un 1. Si le nombre décimal est inférieur à
2, ôtons 0 et reportons un 0.__________________________________________________________________________________________________________
3>2
3-2 = 1
Ecrivons 1 dans le bit de poids 2
La réponse est 1100111
8.Si le résultat de l'étape 8 est un 1,
reportons un 1. Si le résultat de l'étape 8 est un 0, reportons
0.
1=1
Ecrivons 1 à la place des unités
La réponse finale est 11001111
Nous venons ainsi de convertir le nombre décimal
207 en son équivalent
binaire 11001111.
Pour vous faciliter la tâche, voici un le code source d'un programme en C codé par NeoFox (de la team IOC) qui va convertir une adresse IP au format binaire :
Binary v.1 par Neo_Fox [IOC]
6) Protocole de résolution d'adresse (ARP)
Comme nous l'avons vu précedemment, les machines d'un réseau local utilisent un protocole de la couche Internet, appelé ARP (Adresse Resolution Protocole), pour faire correspondre les adresse IP aux adresse physiques. Afin de lui envoyer des données, une machine source doit connaitre l'adresse physique de la carte réseau de la machine de destination. C'est pour cela que ARP est un protocole très important.
Chaque machine du segment de réseau doit maintenir en mémoire une table appelée table ARP ou cache ARP. Le cache ARP associe les adresses IP d'autres machines du segment à leurs adresses physiques. Lorsqu'une machine a besoin d'envoyer des données à une autre machine du segment, elle vérifie le segment le cahe ARP afin de déterminer l'adresse physique du destinataire. Si l'adresse réceptrice des données n'est pas dans le cache ARP, la machine envoie un broadcast appelé trame de requête ARP.
La trame de requête ARP contient l'adresse IP non résolue. Elle contient également l'adresse IP et l'adresse physique de lam achine qui a envoyé la requête. Les autres machines du segment de réseau reçoivent la requête ARP et la machine dont l'adresse n'était pas résolue répond en retournant son adresse physique à celle qui a émis la requête. Cette nouvelle correpondance adresse IP-adresse physique est alors ajoutée au cache ARP de la machine ayant émis la requête.
7) RARP
RARP (Reverse ARP) fait le contraire de ARP. En effet ARP est utilisé lorsque l'adresse IP est connue, mais pas l'adresse physique. RARP est utilisé lorsque l'adresse physique est connue, mais pas l'adresse l'adressse IP.
Figure 5 : ARP établit une correspondance entre les adresses IP et les adresses physiques
B - Routage
Un routeur est un dispositif particulier qui lit les adresses logiques et oriente les données à transmettre sur le réseau vers leur destinataire.
Au niveau le plus bas, un routeur isole un sous-réseau local d'un grand réseau (voir Figure 3).
Les données adressées à une autre machine ou à un autre équipement du sous réseau local ne franchiront pas le routeur et n'encombreront pas les lignes de communication du grand réseau. Les données destinées à une machine extérieure au réseau local seront prises en charge par le routeur qui les expédiera à destination. Les très grands réseaux tel Internet comprennent de nombreux routeurs qui fournissent des voies d'acheminement multiples entre origine et destination.
Figure 6 : un réseau interconnecté au moyen de routeurs
C - Résolution d'adresses
Il peut-être difficile de se rappeler que l'adresse d'une machine est 113.102.114.163. TCP/IP offre parc consequent une structure d'adressage en langage de tous les jours qui gère des noms de domaines : DNS, (Domain Name Service, service de noms de domaines). La correspondance entre adresse physique IP et nom de domaine est appelé résolution de noms de domaines, ou plus simplement résolution d'adresses. Des machines dédiées, appelées serveur DNS, conservent les tables de correspondances entre nom de domaine et adresse IP.
Le service DNS de TCP/IP offre une hierarchie de serveurs d'adresses qui fournissent une correspondance entre nom de domaine et adresse physique IP pour les machines du réseau enregistrées par DNS. Ainsi l'utilisateur n'a pas à connaître ou à déchiffrer les adresses IP.
D - Contrôle d'erreur et des flots de données
La suite de protocole TCP/IP assure la fiabilité des données transmises sur réseau en contrôlant les erreurs de transmission éventuelles et en émettant des accusés de réception qui confirme le succès de l'opération. C'est la couche Transport de TCP/IP qui gère la plupart de ces contrôles, les flots de donnnées et les accusés de réception au sein du réseau interconnecté sous protocoles TCP. Des protocoles de plus bas niveau de la couche Accès réseau jouent aussi un rôle dans le processus global de contrôle d'erreur.
III. Le fonctionnement de TCP/IP
A - Système de protocoles TCP/IP
1) Introduction
Un système de protocoles de la dimension de TCP/IP doit assurer les fonctions suivantes :
.Fractionnement des messages en segments faciles à mettre sur la ligne de communication
.Interface avec la carte réseau
.Adressage : l'emetteur doit envoyer ses messages à la bonne adresse. Le récepteur doit savoir d'où viennent les messages qui le concernent
Routage : le système doit acheminer les données sur le sous-réseau auquel appartient le destinataire, même si ses caractéristiques physiques sont différentes de celles du réseau auquel appartient l'emetteur
.Contrôle d'erreur : contrôle des flots de données et acquittements. La fiabilité de la liaison impose que les partenaires soient capables d'identifier et de corriger les erreurs de transmission ainisi que de contrôler le flot de données
.Transfert de données d'une application au réseau
.Réception des données en provenance du réseau et transmission de celles-ci à l'application
Pour accomplir toutes ces fonctions, les créateurs de TCP/IP ont adopté une approche modulaire, c'est à dire que le système de protocoles TCP/IP se décompose en modules qui fonctionnent en toutes indépendance. Chaque module est chargé d'une tâche précise dans le fonctionnement du processus de communication.
Ceci permet aux fournisseurs tel que "Microsoft" d'adapter les logiciels du protocole aux machines et systèmes d'exploitation qu'ils proposent. Autrement dit ils n'ont pas à créer deux logiciels différents pour les réseaux TCP/IP en anneaux à jeton et pour les réseaux Ethernet TCP/IP par exemple(Je reviendrai plus loin sur les différentes formes des LAN). Dans ce cas précis seul la couche Accès réseau change et pas les couches supérieures (Internet...)
Depuis le début de cette introduction à TCP/IP je parle de couches, mais quelles sont-elles exactement ?
Et bien le système de protocole TCP/IP est organisé en couches dont chacune effectue des tâches spécifiques, il faut d'abord comprendre que le terme couche en informatique désigne les divers niveaux d'un protocole. Le modèle ci-dessous est appélé : modèle TCP/IP ou pile TCP/IP :
Figure 7 : les couches du modèle TCP/IP
2) Survol des couches
Les couches du modèle officiel de protocole TCP/IP ont des rôles multiples :
.Couche Accès Réseau :
Elle assure l'interface physique avec le réseau. Elle formate les données aux normes du réseau et élabore les adresses de sous-réseaux en tenant compte des adresses physiques des machines destinataires. Elle effectue les contrôles d'erreur au niveau des données mises sur le réseau physique.
.Couche Internet :
Elle fournit un adressage logique, indépendant du matériel, de façon à faire transiter des données sur des réseaux dont les architectures physiques sont très diverses. Cette couche met en place des routages qui tempèrent le trafic et permettent l'acheminement de messages vers des réseaux interconnectés (internetworks). Le terme réseaux interconnectés désigne un ensemble de réseaux locaux (LAN) connectés entre eux, comme on peut trouver dans les grandes sociétésou sur Internet. La couche Internet établit la correspondance entre adresse physique et adresse logique.
.Couche Transport :
Elle assure le contrôle des flots de données, les contrôles d'erreurs et les accusés de réception sur les réseaux interconnectés. Elle sert aussi d'interface pour les applications réseau.
.Couche Application :
Elle offre des applications pour le dépannage réseau, le transfert de fichiers et les besoins d'Internet. Elle supporte aussi les API réseau qui autorisent l'accès au réseau à des programmes écrits sous un système d'exploitation particulier.
3) L'encapsulation
Lorsque le système de protocoles TCP/IP traite un élément de donnée pour l'expédier sur le réseau, chaque couche de la machine expéditrice ajoute une couche d'information à cet élément à l'attention de la couche correspondante de la machine réceptrice. Par exemple , la couche Internet de l'ordinateur qui expédie des données ajoute un en-tête contenant de l'information, laquelle sera exploitée au niveau de la couche Internet de la machine réceptrice. Ce processus est appelé encapsulation. A l'extrémité réceptrice, ces en-têtes sont supprimés dès lors que les données traversent la pile de protocoles.
Il est important de mémoriser , en ce qui concerne la pile de protocoles TCP/IP, que chaque couche joue un rôle dans le processus de comunication, en offrant les services requis à son niveau. Lorsqu'une transmission est établie, elle descend l'empilement des couches du modèle, chacune des couches rajoute aux données un ensemble d'informations spécifiques appelé en-tête. L'entité qui se compose des données et d'un en-tête devient un ensemble de données qui est "repaqueté" par la couche immédiatement inférieure, avec adjonction d'un nouvel en-tête. L'opération inverse est effectués lors de l'arrivée du message sur la machine réceptrice. Chaque couche analyse et reconstitue ce qu'elle reçoit jusqu'à restitution à l'état originel des informations qui ont été expédiées. C'est un peu le principe de la poupée russe.
A destination, la couche Internet exploite l'en-tête qui la concerne puis l'élimine, la couche Transport fait de même, et ainsi de suite. Une fois le dernier niveau franchi, seule subsiste l'information dans son état originel.
Figure 8 : chaque couche ajoute son en-tête aux données
Le paquetage des données change donc radicalement d'aspect à chaque traversée de couche, d'où des changements de noms... Voici la liste de ces applications, suivant les couches traversées :
_Au niveau de la couche Application, on parle de message.
_Dans la couche Transport, le message est encapsulé sous la forme d'un segment s'il s'agit de données transmises sous protocole TCP, d'un datagramme si l'on est sous protocole UDP.
_La couche Internet encapsule les segments de la couche Transport sous forme de datagrammes.
_L'encapsulation, et parfois la framentation, des datagrammes au niveau de la couche Accès réseau produit des trames. Une trame devient un train de bit dans la sous-couche de plus bas-niveau de la couche Accès réseau.
B - TCP/IP et le modèle OSI
Le marché des réseaux utilise un modèle standard à sept couches appelé modèle OSI ( Open Systems Interconnections) qui est apparue alors que le développement de TCP/IP était en cours et qui a fortement influencé le développement des implémentations de protocoles. Le modèle OSI est composé de 7 couches semblables à TCP/IP dans le sens où ce modèle répartit les tâches de la couche Application en trois couches (sous-couches) : Application, Présentation et Session. De plus OSI coupe la couche Accès Réseau de TCP/IP en deux couches : la couche Liaison Données et la couche Physique. Cette organisation complique un peu les chose mais les développeurs y gagnent en facilité d'adaptation de chacune de ces couches à leurs besoins spécifiques.
Figure 9 : le modèle à 7 couches d'OSI
Les septs couches du modèle OSI ont les rôles suivants :
.Couche physique : elle convertit les données en signaux numériques propres à transiter sur le moyen de communication et gère leur transmission.
.Couche Liaison Données : elle assure l'interface avec la carte réseau, entretient les liens logiques sur le sous-réseau.
.Couche Réseau : elle gère l'adressage logique et le routage.
.Couche Transport : elle contrôle le flot des données et gère les erreurs.
.Couche Session : elle ouvre les sessions reliant les applications qui tournent sur les machines interconnectées.
.Couche Présentation : elle met les données au format standard, gère le cryptage et la compression.
.Couche Applicartion : elle assure l'interface entre les applications, gère les transferts de fichiers, les communications,etc.
C - Rapide récapitulatif (scénario de base de l'envoie d'une trame sur un réseau)
1. Les données passent d'une application TCP/IP issue d'une interface API via le port TCP ou UDP vers l'un ou l'autre des protocoles Transport TCP ou UDP.
2. Le segment de données passe dans la couche Internet, où le protocole IP ajoute un datagramme avec des informations d'adressage diverses.
3. Le datagramme IP entre dans la couche Accès réseau pour y être traité par les logiciels d'interface avec le réseau physique. ARP (Adress Resolution Protocol) traduit les adresses IP en adresse physique, tandis que RARP (Reverse Address Resolution Protocol) fait l'inverse.
4.La trame de données est convertie en une chaîne de bits confiée au réseau.
IV. Conclusion
Et voilà c'est terminé pour cette introduction à TCP/IP (1ère partie), j'espère avoir été assez clair mais si quelque chose vous échappe vous pouvez toujours poser vos questions à MIB@ArenHack.com ou m'écrire à Clad@ArenHack.com
Dans la deuxième partie ,qui paraîtra dans M.I.B #2, je parlerai de la couche accès réseau et transport ainsi que des protocoles qui les composent, des différents types de réseau ainis que de leur équipement, des protocoles TCP et UDP et je terminerai par la sécurité sous TCP/IP où je parlerai de cryptographie théorique ainsi que des problèmes de sécurité.
CL@D
Copyrirght © 2003 ArenHack
Voici l'oeuvre sur laquelle je me suis basé pour réalisé cette introduction à TCP/IP (1ère partie) :
Teach yourself TCP/IP Second Edition in 24 hours par Joe CASAD