SkayaWiki

NetGraph

JeromePetazzoni :: DerniersChangements :: DerniersCommentaires? :: ParametresUtilisateur :: http://www.enix.org/ :: Vous êtes 216.73.216.79
Ceci est une version archivée de NetGraph à 2006-05-30 16:41:45.

Date de rendu : vendredi midi, lire plus bas


Préliminaires


Le réseau Internet peut être grossièrement assimilé à un graphe, dont les noeuds sont les hôtes (machines, routeurs...) et les arêtes les liens entre ces hôtes. Depuis un noeud A donné, il est très difficile d'avoir une vue d'ensemble du réseau ; cependant, on peut effectuer un « traceroute » vers un autre noeud B, et dans la plupart des cas, obtenir une liste de noeuds formant un chemin entre A et B :

jpetazzo@kapouer:~$ traceroute www.jussieu.fr
traceroute to idf.ext.jussieu.fr (134.157.81.129), 30 hops max, 38 byte packets
1 rumlv.univ-mlv.fr (193.50.159.1) 7.216 ms 5.828 ms 5.485 ms
2 195.220.83.5 (195.220.83.5) 6.229 ms 3.852 ms 1.239 ms
3 marne-g3-3.cssi.renater.fr (193.51.183.118) 1.110 ms 1.975 ms 1.239 ms
4 creteil-g0-2.cssi.renater.fr (193.51.180.133) 2.359 ms 2.262 ms 1.829 ms
5 jussieu-g0-3.cssi.renater.fr (193.51.180.153) 2.609 ms 2.726 ms 5.113 ms
6 gw-rap.rap.prd.fr (193.50.20.73) 5.857 ms 5.845 ms 5.986 ms
7 jussieu-rap.rap.prd.fr (195.221.127.182) 6.857 ms 7.474 ms 8.610 ms
8 r-intercon.reseau.jussieu.fr (134.157.254.123) 13.852 ms 7.589 ms 9.229 ms
9 idf.ext.jussieu.fr (134.157.81.129) 3.111 ms 2.973 ms 5.487 ms
jpetazzo@kapouer:~$

On obtient une liste de routeurs situés entre la machine "kapouer" et la machine "www.jussieu.fr" ; à chaque fois il y a un numéro, un nom (le nom n'est pas toujours disponible, cf. ligne 2), une adresse IP, et des temps de réponse. On pourra totalement ignorer ces temps de réponse par la suite.

Sur Internet, une machine (ou un routeur, c'est pareil!) peut avoir 1 ou plusieurs adresses IP, et chaque adresse IP peut avoir 0, 1 ou plusieurs noms DNS rattachés. Inversement, un nom DNS peut être rattaché à 0, 1 ou plusieurs adresses IP. Comme les relations entre les adresses IP et les noms DNS sont complexes, on ignorera complètement les noms DNS dans un premier temps, pour ne se focaliser que sur les adresses IP. D'autre part, même si une machine peut avoir plusieurs adresses IP, on n'essaiera pas de « deviner » si plusieurs adresses appartiennent à la même machine ou pas. On raisonnera donc, finalement, en adresses IP plutôt qu'en machines ou routeurs ou noms DNS.

Il existe une option de la commande traceroute qui permet de désactiver la résolution DNS (la conversion des adresses IP en noms) ; n'hésitez pas à l'utiliser, la commande s'exécutera plus rapidement.

Pour convertir un nom DNS en adresse IP ou inversement, on peut utiliser la commande host, par exemple.

Parfois, traceroute donne des résultats bizarres :

jpetazzo@kapouer:~$ traceroute www.enix.fr
traceroute to the-book.enix.fr (193.19.211.129), 30 hops max, 38 byte packets
1 rumlv.univ-mlv.fr (193.50.159.1) 5.136 ms 5.454 ms 5.596 ms
2 195.220.83.5 (195.220.83.5) 5.607 ms 8.224 ms 6.608 ms
3 marne-g3-3.cssi.renater.fr (193.51.183.118) 8.356 ms 5.972 ms 5.612 ms
4 creteil-g0-2.cssi.renater.fr (193.51.180.133) 7.358 ms 7.472 ms 7.986 ms
5 jussieu-g0-3.cssi.renater.fr (193.51.180.153) 10.356 ms 8.845 ms 8.609 ms
6 nri-c-pos2-0.cssi.renater.fr (193.51.180.158) 6.982 ms 7.843 ms 7.486 ms
7 ftld-nri-c.cssi.renater.fr (193.51.185.1) 8.481 ms 9.971 ms 8.485 ms
8 gi0-0.pascr1.Paris.opentransit.net (193.251.243.122) 8.108 ms 7.598 ms 7.236 ms
9 level3-2.GW.opentransit.net (193.251.240.214) 7.608 ms 7.975 ms 12.357 ms
10 so-6-0-0.mp2.Paris1?.Level3?.net (4.68.124.117) 8.480 ms 8.472 ms 8.360 ms
11 ge-11-2.ipcolo2.Paris1?.Level3?.net (212.73.240.118) 8.607 ms ge-11-0.ipcolo2.Paris1?.Level3?.net (212.73.240.40) 8.599 ms ge-11-1.ipcolo2.Paris1?.Level3?.net (212.73.240.84) 11.093 ms
12 212.73.242.2 (212.73.242.2) 7.969 ms 9.100 ms 8.859 ms
13 ge-1-1-0.cr1.itx.fr.bsocom.net (83.243.16.26) 8.482 ms 9.223 ms 9.358 ms
14 castor.enix.org (83.243.23.102) 9.357 ms 10.597 ms 8.233 ms
15 the-book.enix.org (193.19.211.129) 8.982 ms 8.098 ms 9.734 ms

Ici, sur la ligne 11 on a plusieurs adresses IP. En effet, traceroute fait 3 essais pour chaque « distance », et ici les 3 essais ont donné 3 résultats différents - il les indique donc tous les 3. Dans ce cas, le mieux est de considérer que les 3 résultats sont valides ; mais on peut aussi ne considérer que le premier pour des raisons de simplicité.

Autre exemple « étrange » :

jpetazzo@skalinka:~$ traceroute www.enix.fr
traceroute to the-book.enix.fr (193.19.211.129), 30 hops max, 38 byte packets
1 192.168.9.41 (192.168.9.41) 4.064 ms 1.149 ms 1.537 ms
2 82.236.3.254 (82.236.3.254) 40.054 ms 39.327 ms 39.086 ms
3 * * *
4 * * *
5 * * *
6 cbv-6k-2-v828.intf.routers.proxad.net (212.27.51.97) 68.584 ms 46.877 ms 47.791 ms
7 ldc-6k-1-a0.routers.proxad.net (213.228.15.67) 40.230 ms 40.839 ms 39.473 ms
8 bsocom.FreeIX?.net (213.228.3.168) 51.084 ms 39.741 ms 40.147 ms
9 ge-4-1-0.cr2.cap.fr.bsocom.net (83.243.16.49) 39.902 ms 48.228 ms 39.530 ms
10 ge-1-1-0.cr1.itx.fr.bsocom.net (83.243.16.26) 39.901 ms 49.912 ms 39.843 ms
11 castor.enix.org (83.243.23.102) 73.762 ms 40.542 ms 39.883 ms
12 the-book.enix.org (193.19.211.129) 40.968 ms 41.392 ms 41.431 ms

Les étoiles correspondent à une absence de réponse. Ce n'est pas une erreur. En ce cas, cela signifie qu'on n'a pas d'information sur les machines correspondantes ; on ne sait pas ce qu'il y a entre 82.236.3.254 et 212.27.51.97 ; tout au plus peut-on dire qu'il y a probablement 3 autres machines (et encore, ce n'est pas sûr!)

Attention, le graphe d'Internet n'est pas forcément un graphe « idéal », et les chemins que vous verrez apparaître en faisant des « traceroute » ne seront pas forcément les meilleurs ou les plus courts. Ne vous étonnez pas si par exemple, sur un traceroute, vous voyez des chemins non-optimaux !

D'autre part, ce n'est pas non plus un graphe figé ni déterministe, donc d'un jour à l'autre (ou même d'une minute à l'autre) un même traceroute pourra donner des résultats différents.

But du projet


Il s'agit d'écrire un programme (ou un ensemble de programmes) permettant d'effectuer des traceroute automatiquement, en tâche de fond ; et pendant que se font ces traceroute, de rassembler des informations sur le graphe d'Internet. En particulier, pour chaque noeud du graphe (on assimilera un noeud à son adresse IP), on souhaite pouvoir connaître ses voisins, ainsi que sa distance minimale à l' « origine » (la distance n'est pas forcément constante, par exemple entre le noeud A et le noeud B, le noeud X peut apparaître en 5è position ; et le même noeud X peut apparaître en 8è position entre le noeud A et le noeud C -- c'est surprenant, mais c'est possible!).

Il est indispensable de pouvoir :

Optionnellement, vous pourrez développer :

Notation


Chaque ensemble suivant compte environ 5 points :

Pour les options :

Ensuite, si vous faites le projet seul, votre note est divisée par 15 ; à deux, divisée par 20 ; à trois, divisée par 25 ; à quatre, divisée 30. La note finale est multipliée par 20.
Concrètement, si vous avez 12 points et que vous avez fait le projet seul, cela vous fait 12/15*20 = 16 ; si vous avez 22 en faisant le projet à 4, vous vous retrouvez avec 22/30*20 = 14,5 chacun.

Rendu



Le rendu final se fait par l'envoi d'une archive "login1_login2_login3.tar.gz" à allali@univ-mlv.fr.
N'envoyer qu'une seule archive par groupe.
L'archive devra contenir :
- un répertoire "src": avec les sources du projet
- un répertoire "doc": avec la doc du projet
- un fichier "README": indiquant comment compiler le projet ainsi qu'une description des programmes
- un fichier "EXAMPLE": donnant un exemple d'utilisation du projet

L'archive devra arriver dans la boite mail (cachet du serveur faisant foi) avant le Vendredi 2 Juin 12h00 heure locale de l'UMLV (GMT+2)

IMPORTANT : reconsultez ces instructions mercredi midi, elles auront probablement changé (la date limite restera vendredi midi, mais les modalités de rendu seront probablement différentes, sauf incident technique!)


Informations techniques


Une adresse IP = 4 octets. Généralement on la représente sous la forme 134.157.0.129 (sous forme de 4 nombres entiers, en décimal, séparés par des points).
Les plages d'adresses suivantes sont « privées », c'est-à-dire internes :
La plage 224.0.0.0 à 239.255.255.255 est réservée au multicast.
Les adresses de 240.0.0.0 à 255.255.255.255 sont réservées.
Toutes ces plages (adresses privées, multicast, réservées) doivent être traitées de manière spéciale ; il est parfaitement acceptable de ne pas les stocker dans le graphe (de les considérer comme les « * » qui apparaissent parfois dans traceroute).

Le format CSV à utiliser, pour la liste des noeuds : adresse IP, distance
1.2.3.4,17
134.157.0.129,8
193.55.63.92,2

Le format CSV à utiliser, pour la liste des arêtes : adresse IP1, adresse IP2
1.2.3.4,1.2.3.5
134.157.0.129,134.157.254.1
193.55.63.1,193.55.63.29

On utilisera \n comme séparateur de lignes.
Il n'y a pas de commentaire sur cette page. [Afficher commentaires/formulaire]