|
Lundi 5 Mars 2001 |
Mise
en place du réseau :
Raccordement du matériel :
PC1 PC2 PC3 PC4
Paire Torsadée
Commande de configuration d’interface (spwr0 dans notre cas):
Ø Ifconfig spwr0 plumb Initialisation de l'interface.
Ø Ifconfig spwr0 195.0.0.1 Connexion de l’interface au réseau et attribution
de son adresse Internet.
Ø Ifconfig spwr0 up Activation de l'interface.
Vérification
de l’état des interfaces :
Commande : Ifconfig spwr0
Nom Officiels |
Adresses Internet(Classe C) |
Adresses Ethernet |
Sparc1 |
195.0.0.1 |
00 :e0 :29 :2b :78 :de |
Sparc2 |
195.0.0.2 |
00 :e0 :29 :2b :78 :dd |
Sparc3 |
195.0.0.3 |
00 :b0 :d0 :5c :5a :d8 |
Sparc4 |
195.0.0.4 |
00 :b0 :d0 :5c :59 :d8 |
Contenu
du fichier /etc/hosts :
La machine réalisera alors les mêmes opérations que celle de la configuration manuelle que nous avons effectuée.
On peut également associer un nom symbolique à chaque machine du réseau (nom qu’elle prendront dans chaque communication sur le réseau) en complétant le fichier etc/hosts pour y mettre son adresse Internet et le nom officiel de chaque machine correspondant.
Contenu du fichier :
195.0.0.1 Sparc1
195.0.0.2 Sparc2
195.0.0.3 Sparc3
195.0.0.4 Sparc4
Explication
sommaire :
Quand une machine lance un ping pour savoir si une autre machine est sur le réseau elle lui envoie un paquet (par son adresse Ethernet) et reçoit un paquet de réponse de la machine concernée si elle est bien connectée.
Une machine A lance un ping vers
une machine B : ping sparc2
Messages captés par le capt lancé sur une machine C (4 paquets):
- Un paquet de type ARP C de A vers toutes les machines du réseau (broadcast) pour connaître l’adresse Ethernet de la machine B car A ne connaît que son nom officiel et son adresse Internet (contenu du fichier Hosts).
- Un paquet de type ARP R de B vers A qui envoie son adresse Ethernet c’est à dire celle qui correspond au nom officiel mis sur le réseau.
195.0.0.2 ,sparc2
is 00 :e0 :29 :2b :78 :dd
- Un paquet de type ICMP Echo request de A vers B qui connaît maintenant l’adresse Ethernet de la machine B et peut vérifier qu’elle est bien connectée et configurée.
(rmq la machine A ne sait pas que c’est B qui a répondu au paquet ARP C car une autre machine peu également répondre à cette requête).
ICMP Echo request
- Un paquet de type ICMP Echo reply de B vers A qui répond qu’elle est connectée par le message ‘Sparc2 is alive’.
ICMP Echo reply
Interprétation de la présence des paquets de type
ARP :
La machine A possède une table des entrées correspondances entre les adresses Internet et nom officiels des machines et leur adresses Ethernet qui permet de communiquer sur le réseau.
Quand dans la table de A il y a une entrée pour B l’exécution du ping vers B depuis A ne donne lieu qu’a l’ envoie des 2 paquet de type ICMP alors que quand elle n’y est pas on peut également capturer les 2 paquets de type ARP (une entrée pour B dans la table de A est alors créée).
On observe également que si A possède une entrée pour B dans sa table mais que l’on attend un certain temps avant de lancer un ping de A vers B l’exécution du ping donne lieu quand même aux paquets de type ARP car l’entré B à disparu de la table (le timer de la table est d’environ 3 minutes) et donc A à d’abord du retrouver l’adresse Ethernet de B en envoyant un paquet ARP C.
On peut alors comparer la table des correspondances d’une machine comme une mémoire à durée limitée.
Observation du protocoles CSMA/CD (commande netstat)
Description du mécanisme :
Avant d’émettre sur le réseau, une machine ‘écoute’ le câble et attends qu’aucune autre machine ne soit en train d’envoyer de message (rmq :une machine ne regarde pas le réseau quand elle ne veut pas émettre).
Si deux machines émettent en même temps, il y a alors collision et les deux paquets (trames) émis sont perdues.
Dans le cas d’une collision chaque machine stoppe son émission et attends pendant un laps de temps aléatoire avant de re-émettre toute la trame.
Observation sur le nombre de collisions :
La commande netperf lancée par la machine A génère un trafic à destination de la machine B . En plus la machine C génère un trafic à destination de la machine D.
Notons le nombre de
collisions sur le câble (en fonction du nombre de netperfs) grâce à
la commande netstat :
Ø Le nombre de collisions augmente en fonction du nombre de netperf lancés sur le réseau.
Explication : Netperf envoie des trames de taille constante pour mesurer le débit du réseau et donc plus il y a de paquets émis plus la probabilité d'avoir une collision est importante donc leur nombre augmente logiquement.
De plus les machine qui n’envoient pas de trames pas ne regardent pas le câble et donc un netstat lancé sur ces machine ne repère pas les collisions.
Notons le nombre de
collisions sur le câble (en fonction de la taille des paquets
envoyés) :
Ø Plus les paquets envoyés sont petits plus le nombre de collisions augmente .
Explication : Comme les paquets sont petits les machines en envoient plus dans un même laps de temps et donc le nombre de collisions en est d’autant plus grand.
Vient aussi s’ajouter le fait que si les paquets émis sont grands les machines qui veulent émettre attendent plus longtemps avant d’émettre et donc dans une même période de temps le nombre de collisions est plus bas.
Notons le nombre d’erreurs
détectées :
Ce nombre est faible et varie de 0 à 2.
Analyse des performances du réseau (utilitaire netperf)
Débit réel : débit observé par l’utilisateur .
Débit effectif : débit caractéristique de la ligne (10 Mb/s).
Pour calculer le débit réel nous envoyons des paquets de taille connue sur le réseau de A vers B et nous observons le temps que le paquet met pour arriver à sa cible.
Commande : netperf host [taille en octets] [nb de paquets]
Nombre de
paquets (octets) |
Taille des paquets |
Temps (s) |
Débit réel (Mb
/s) (donné par
netperf) |
100 |
60 |
0.002 |
2.9 |
100 |
1500 |
0.116 |
9.6 |
Exemple d’ envoi de paquets
- 100 paquets de 100 octets à 10 000 octets de données
- réception de 22 paquets pour un taille de 11 310 octets
-11 310 –22*(60) = 9 900 octets.
Explications : on enlève à chaque paquets reçu la taille des 3 entêtes et on retrouve bien la quantité de données envoyées (les erreurs proviennent de l’approximation faite sur la taille des entêtes qui peuvent n’être que de 50 octets pour certains paquets).
Différences entre débit effectif et réel :
Le débit réel est inférieur au débit effectif car des octets sont ajoutés aux paquets avant d’être envoyés.
En effet le protocole TCP utilisé pour envoyer les messages rajoute des octets de contrôle en entête de la trame à envoyer puis passe le message au protocole IP qui fait de même et fait passer le message « grossit » au protocole Ethernet qui met aussi une entête.
En lançant la commande capt sur la machine C pendant l’exécution de netperf on peut observer la nature et la taille des messages circulant sur le câble :
Ø La tailles des trois entêtes est constante et égale à 20 octets par entêtes.
Ø Les paquets sont regroupés afin d’en envoyer moins de petits et diminuer ainsi le risque de collision et le ratio(nb d’octets de données/nb d’octets d’entêtes).
Ø On observe également un paquet d’acquittement de B vers A de taille de donnés de 0 octets mais avec les trois entêtes (fréquence environ 1 pour 4 paquets envoyés).
Explications :
Comme des octets sont rajoutés, la taille de paquet utilisé pour le calcul est inférieur à la taille réelle des trames envoyées, le débit chute.
Comme la taille des entêtes est constante, plus les paquets sont petits (même si ils sont regroupés) plus le ratio est petit et donc le débit est réduit.
Les messages d’acquittement sans données réduisent également ce débit en occupant le réseau.
Cas de plusieurs trafics :
Protocole : A et C lancent un netperf respectivement vers B et D.
Observations :
En observant la colonne Avg de la commande netperf on note que le débit de chaque machines est équitable et correspond à la moitié de celui d’une seule machine générant un netperf pour la même taille de paquet.
Le protocole CSMA/CD gère cette répartition de l’envoie des messages car chaque machine attend que le réseau soit libre, et donc que l'autre machine est envoyé sont paquet, pour émettre le sien.
De plus en cas de collision, le délai avant de re-émettre est aléatoire donc le nombre de fois où chaque machine à ré-émis en premier est le même pour les deux ordinateurs (si nous considérons un grand nombre de paquets envoyés).
Conclusion :
On observe que plus le nombre de netperf générés est important plus le débit diminue jusqu’a effondrement pour un nombre de netperf >5 .
En effet le nombre de collisions devient trop important car le réseau est constamment occupé et chaque machine ne fait qu’attendre sans pouvoir émettre.