1 / 19

Outil d’ observation d’un réseau pair-à-pair

Outil d’ observation d’un réseau pair-à-pair. Fabio Picconi – LIP6. Motivations. Emulation : évaluation d’un réseau P2P (Pastry, PAST, Pastis) Modelnet : plate-forme répartie (~100 nœuds réels) Vision globale du réseau P2P utile pour : démarrage du réseau

kelly-cox
Download Presentation

Outil d’ observation d’un réseau pair-à-pair

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Outil d’observation d’unréseau pair-à-pair Fabio Picconi – LIP6

  2. Motivations • Emulation : évaluation d’un réseau P2P (Pastry, PAST, Pastis) • Modelnet : plate-forme répartie (~100 nœuds réels) • Vision globale du réseau P2P utile pour : • démarrage du réseau • observation des clients • injection de volatilité

  3. Architecture routeur Modelnet hôte1 hôte2 hôte3 hôte1 hôte2 hôte3 contrôleur

  4. Gestion du réseau Pastry MON Pastry hôte1 eth0:1 JVM créer nœud Pastry MON eth0:2 JVM MON eth0:3 JVM contrôleur MON eth0:4 JVM

  5. Gestion du réseau Pastry MON Pastry hôte1 eth0:1 JVM bootstrap MON Pastry eth0:2 JVM créer nœud Pastry MON eth0:3 JVM contrôleur MON eth0:4 JVM

  6. Gestion du réseau Pastry MON Pastry hôte1 eth0:1 JVM MON Pastry eth0:2 JVM tuer nœud Pastry MON Pastry eth0:3 JVM contrôleur MON Pastry eth0:4 JVM

  7. Gestion du réseau Pastry MON Pastry hôte1 eth0:1 JVM MON Pastry eth0:2 JVM recréer nœud Pastry MON Pastry eth0:3 JVM contrôleur MON Pastry eth0:4 JVM

  8. Evaluation de FreePastry 04F2 E25A lookup(8959) contrôleur 3A79 lookup(8959) k = 8959 C52A AC78 k = 8959 5230 8BB2 fausse racine k = 8959 8971 lookup(8959) 8957 racine 8954 73AB 8909 834B

  9. Evaluation de FreePastry 04F2 E25A contrôleur 3A79 résultat C52A résultat AC78 5230 8BB2 fausse racine 8971 résultat 8957 racine 8954 73AB 8909 834B

  10. Architecture Controller Hôte TestBase Controller SimulationHost RMI PastisPast / Pastry ChurnManager JVM JVM

  11. Architecture interface Controller void registerNodeStart( Id id, SimulationHost host ); void registerNodeReady( Id id ); void unregisterNode( Id id ); NodeConfigurator registerHost( SimulationHost host );

  12. Architecture interface SimulationHost void startNewNode( InetSockAddress bootstrapHost ); void killNode( Id id ); NodeHandle getNodeHandle( Id id ); InetSocketAddress getNodeISA( Id id ); void sendPing( Id sender, Id dest, int pingId, PingManager pm );

  13. Architecture abstract class TestBase abstract void runTest(); class ControllerImpl void InitNetwork( NodeConfigurator configurator ); void waitForNodes() void setChurnRate(); Id pickRandomNodeId(); SimulationHost getHostForNodeId( Id id );

  14. Architecture Interface Controller Interface SimulationHost registerHost() registerNodeStart() registerNodeReady() unregisterNode() startNewNode() killNode() getNodeHandle() sendPing() Class ControllerImpl Class PastryTest initNetwork() waitForNodes() setChurnRate() pickRandomNodeId() getHostForNodeId() runTest() Class PastTest runTest()

  15. Architecture PastryTest.java void runTest() { controller.InitNetwork(); controller.waitForNodes(); controller.setChurnRate( 30 ); pingLauncher.setRate( 0.1 ); } void sendPing() { PingManager pm = new PingManager(); for( i = 0; i<num_senders; i++ ) { nid = controller.getRandomNodeId(); host = controller.getHostForNodeId(nid); host.sendPing( dest, pm ); } }

  16. Architecture PingApp.java class PingApp extends CommonAPIAppl { void sendPing( Id dest, int pingId, PingManager pm ) { Message msg = new PingMsg(); pastry.routeMsg( dest, msg ); } void deliver(Id Key, Message msg ) { PingManager pm = msg.getPingManager(); pm.recordReciept( msg ); } }

  17. Architecture ControllerImpl.java void churnNode() { Id id = pickRandomNodeId(); SimulationHost host = getHostForNodeId( id ); unregisterNode( id ); host.killNode(); host.startNewNode( generateBootStrap() ); }

  18. Evaluation de FreePastry Métriques d’évaluation de FreePastry : • Nb. de lookups réussis • Nb. de lookups cohérents • Latence • Nb. de hops • Distance par rapport à la vraie racine

  19. Evaluation de Pastis MST : 90 min 45 min 23 min 10 min

More Related