22 octobre 2008
Réseaux et protocoles
Le modèle OSI de l’ISO
ISO : International Standard Organization
OSI : Open System Interconnection
En pratique le modèle OSI suit ceci :
|4 |Application (ftp, ssh, …)| |3 |TCP / UDP| |2 |IP| |1 |Matériel|
|4 |Application| |4 |Présentation| |4 |Session| |3 |Transport| |2 |Réseau| |1 |Liaison| |1 |Physique|
| TCP | DATE ||
| IP |TCP | DATA |||
Quand on développe une application on travaille au niveau des sockets, donc juste au dessus de la couche transport, entre Session et transport.
Physique : Codage
Le codage est une suite de bits que nous voulons transformer (passage de l’analogique au numérique).
Théorème de Fournier : Somme infinie de signaux sinusoïdaux.
Liaison
- évitement de collision
- code correcteur
- adressage MAC
Réseau
- Adressage IP => routage
(_R2_)
/ <br/>
-->(_R1_) (__)
<br/> /
(_R3_)
Transport
- Mécanisme datagramme, d’acquittements …
Adressage IPv4
Sur 4 octets (32bits)
Notation “décimal pointé” A.B.C.D => unique
Découpé en 2 :
- adresse de réseau
- identification locale de la machine
3 principales classes d’adresse :
- Classe A : 1.x.y.z à 127.x.y.z
- premier bit à 0
- 127 réseaux, 16 777 216 machines c’est à dire 2 puissance 24 machines
- Classe B : 128.0.x.y à 191.255.y.z
- premier bits à 10
- 16 384 réseaux, 65 536 machines ((191 - 128 + 1) x 256 )
- Classe C : 192.0.0.2 à 223.255.255.z
- premiers bits à 110
- 2 097 152 réseaux, 256 machines
- Classe D : réservée au multicast
- premiers bits à 1110
- Classe E : destiné à la recherche … pour le futur …
Adresses non routables
-
10.0.0.0 –> 10.255.255.255
-
172.16.0.0 –> 172.31.255.255
-
192.168.0.0 –> 192.168.255.255
-
169.254.0.0 –> 169.254.255.255 : équivalent sous windows du serveur dhcp
Adresse loopback
- 127.0.0.1 : pour la communication interne de la machine
- Tous les bits de la portée machine à 0 –> le réseau
- tous les bits de la portée machine à 1 –> broadcast
- 0.0.0.0 –> pour DHCP
CIDR
Classless Inter - Domain routing
-
Notation de classe s’est avérée incompatible avec l’évolution de l’internet
-
Cet adressage ne tient plus compte des classes globales et autorise l’utilisation de sous - réseaux au sein de chaque classe.
-
Plus de découpage arbitraire et peu flexible en classe
-
Notation : a.b.c.d/x => adresse/préfixe (nombre de bits pour l’adresse réseau, le rest est pour la machine)
Exemple :
- 130.79.90.72/32 => cette machine
- 130.79.90.72/16 => 2 puissance 16 machines
On fait 2 puissance (32 - x), par exemple pour 130.79.90.72/8, ça fait 2 puissance 24 machines possibles.
On utilise le principe de plus grande correspondance dans la table de routage.
Le datagramme IP
| 0 | 4 | 8 | 15 / 16 | 31 | |Version | IHL | Type de service | Longueur totale || | Identification ||| Flags | Position Fragment | | TTL || Protocole | Checksum sur l’entête || | @ SRC ||||| | @DST ||||| | DATA |||||
- Version du protocole IP
- IHL ou longueur de l’entête sur 4 bits : longueur en nombre de ??? de 32 bits de l’entête
- Type de service ou TOS : indique la manière dont le datagramme doit être traité
- 3 premiers bits sur la priorité
- 4 bits suivants (D,T,R,C) permet de signifier ce qu’on souhaite protéger
- Les champs identificateur, flags et position sont utilisés pour la fragmentation
- identificateur : numérotation de l’émetteur
- Flags :
- 001 -> encore des fragments
- 000 -> dernier framgent
- 01x -> ne pas fragmenter
- position : positionnement du fragment dans le datagrame d’origine par multiple de 8 octets commançant par 0
- TTL : durée de vie, nombre maximal de routeurs que peut traverser le datagramme
- Protocole : permet de connaître le protocole de plus haut niveau :
-
- ICMP
-
- IGMP
-
- TCP
-
- UDP
-
- Checksum de l’entête : assume l’intégrité de l’entête
- Le champ option est de longueur variable mais toujours couplé par des bits de bourrage pour obtenir un mutliple de 32 bits
ARP
Adress Resolution Protocol
RFC 826
Permet d’associer une adresse IP à une adresse MAC.
ICMP
Internet Message Control Protocol
- RFC 792
- Implémentée dans tous les équipements IP
- Message encapsulé dans le DATA d’un datagramme IP
| 0 | | 31 | | Type | Code | Checksum | | Identifiant || N° de séquence | | Masque d’adresse |||
Type sur 8 bits :
-
0 : écho reply
-
3 : destination “unreachable”
-
4 : source quench (contrôle de flux)
-
5 : redirects
-
8 : echo request
-
11 : TTL exceeded
-
12 : parameter problem
-
13 : timestamp request
-
14 : timestamp reply
-
30 : traceroute
-
Identifiant (16 bits) : identifie l’échange (en pratique souvent à 0)
-
Numéro de séquence : qualifie les réponses / requêtes
L’exemple de traceroute
Principe :
- L’émetteur envoie un datagramme avec TTL=1
- Le premier routeur envoie un message de type 11
- L’émetteur affiche l’adresse du premier routeur
- Il recommence en incrémentant le TTL jusqu’à la destination.