outil d’ observation d’un réseau pair-à-pair
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 PresentationTRANSCRIPT
Outil d’observation d’unré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– observation des clients– injection de volatilité
Architecture
contrôleur
hôte1 hôte2 hôte3
hôte1 hôte2 hôte3
routeur Modelnet
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
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
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
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
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
Evaluation de FreePastry
04F2
3A79
5230
834B8909
8954
8957
8BB2
AC78
C52A
E25A
73AB
racine
contrôleur
fausseracine8971
résultat
résultat
résultat
Architecture
JVM
Hôte
JVM
Controller
RMI
Controller
TestBase
ChurnManager
SimulationHost
PastisPast / Pastry
Architecture
void registerNodeStart( Id id, SimulationHost host );
void registerNodeReady( Id id );
void unregisterNode( Id id );
NodeConfigurator registerHost( SimulationHost host );
interface Controller
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
Architecture
abstract void runTest();
abstract class TestBase
void InitNetwork( NodeConfigurator configurator );
void waitForNodes()
void setChurnRate();
Id pickRandomNodeId();
SimulationHost getHostForNodeId( Id id );
class ControllerImpl
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
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
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
Architecture
void churnNode() {
Id id = pickRandomNodeId(); SimulationHost host = getHostForNodeId( id ); unregisterNode( id ); host.killNode(); host.startNewNode( generateBootStrap() ); }
ControllerImpl.java
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
Evaluation de Pastis
90 min 45 min 23 min 10 minMST :