19
Outil d’observation d’un réseau pair-à-pair Fabio Picconi – LIP6

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

Embed Size (px)

DESCRIPTION

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 - PowerPoint PPT Presentation

Citation preview

Page 1: Outil d’ observation d’un réseau pair-à-pair

Outil d’observation d’unréseau pair-à-pair

Fabio Picconi – LIP6

Page 2: Outil d’ observation d’un réseau pair-à-pair

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é

Page 3: Outil d’ observation d’un réseau pair-à-pair

Architecture

contrôleur

hôte1 hôte2 hôte3

hôte1 hôte2 hôte3

routeur Modelnet

Page 4: Outil d’ observation d’un réseau pair-à-pair

Gestion du réseau Pastry

contrôleur

eth0:1

eth0:2

eth0:3

eth0:4

JVM

JVM

JVM

JVM

MON

MON

MON

MON

hôte1

créer nœud Pastry

Pastry

Page 5: Outil d’ observation d’un réseau pair-à-pair

Gestion du réseau Pastry

contrôleur

eth0:1

eth0:2

eth0:3

eth0:4

JVM

JVM

JVM

JVM

MON

MON

MON

MON

hôte1 Pastry

créer nœud Pastry

Pastry

bootstrap

Page 6: Outil d’ observation d’un réseau pair-à-pair

Gestion du réseau Pastry

contrôleur

eth0:1

eth0:2

eth0:3

eth0:4

JVM

JVM

JVM

JVM

MON

MON

MON

MON

hôte1 Pastry

Pastry

Pastry

Pastry

tuer nœud Pastry

Page 7: Outil d’ observation d’un réseau pair-à-pair

Gestion du réseau Pastry

contrôleur

eth0:1

eth0:2

eth0:3

eth0:4

JVM

JVM

JVM

JVM

MON

MON

MON

MON

hôte1 Pastry

Pastry

Pastry

Pastry

recréer nœud Pastry

Page 8: Outil d’ observation d’un réseau pair-à-pair

Evaluation de FreePastry

04F2

3A79

5230

834B8909

8954

8957

8BB2

AC78

C52A

E25A

k = 8959

k = 8959

k = 8959

73AB

lookup(8959)

racine

contrôleur

lookup(8959)

lookup(8959)

fausseracine8971

Page 9: Outil d’ observation d’un réseau pair-à-pair

Evaluation de FreePastry

04F2

3A79

5230

834B8909

8954

8957

8BB2

AC78

C52A

E25A

73AB

racine

contrôleur

fausseracine8971

résultat

résultat

résultat

Page 10: Outil d’ observation d’un réseau pair-à-pair

Architecture

JVM

Hôte

JVM

Controller

RMI

Controller

TestBase

ChurnManager

SimulationHost

PastisPast / Pastry

Page 11: Outil d’ observation d’un réseau pair-à-pair

Architecture

void registerNodeStart( Id id, SimulationHost host );

void registerNodeReady( Id id );

void unregisterNode( Id id );

NodeConfigurator registerHost( SimulationHost host );

interface Controller

Page 12: Outil d’ observation d’un réseau pair-à-pair

Architecture

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 );

interface SimulationHost

Page 13: Outil d’ observation d’un réseau pair-à-pair

Architecture

abstract void runTest();

abstract class TestBase

void InitNetwork( NodeConfigurator configurator );

void waitForNodes()

void setChurnRate();

Id pickRandomNodeId();

SimulationHost getHostForNodeId( Id id );

class ControllerImpl

Page 14: Outil d’ observation d’un réseau pair-à-pair

Architecture

registerHost() registerNodeStart()registerNodeReady()unregisterNode()

Interface Controller

startNewNode()killNode()getNodeHandle()sendPing()

Interface SimulationHost

initNetwork()waitForNodes()setChurnRate()pickRandomNodeId()getHostForNodeId()

Class ControllerImpl

runTest()

Class PastryTest

runTest()

Class PastTest

Page 15: Outil d’ observation d’un réseau pair-à-pair

Architecture

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 ); }}

PastryTest.java

Page 16: Outil d’ observation d’un réseau pair-à-pair

Architecture

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 ); }

}

PingApp.java

Page 17: Outil d’ observation d’un réseau pair-à-pair

Architecture

void churnNode() {

Id id = pickRandomNodeId(); SimulationHost host = getHostForNodeId( id ); unregisterNode( id ); host.killNode(); host.startNewNode( generateBootStrap() ); }

ControllerImpl.java

Page 18: Outil d’ observation d’un réseau pair-à-pair

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

Page 19: Outil d’ observation d’un réseau pair-à-pair

Evaluation de Pastis

90 min 45 min 23 min 10 minMST :