1、模拟的一般思路是这样的
(1)选择网络大小即设定节点数
(2)选择要实验的一个或多个协议并进行初始化
(3)选择一个或多个Control对象来监视所关心的属性,并在模拟过程中修改一些参数(例如网络大小,协议的内部状态等)
(4)根据配置文件,调用Simulator类进行模拟
2、如何在PeerSim中表示protocol协议、Contorol等组件对象?
在peersim中所有的组件对象实际上就是一些Java对象,表现为协议类、控制类、初始化类等。
P2P网络Network是由很多对等节点Node组成的,每个Node是一个容器,是协议的容器,即在Peersim中Network是一个包含所有网络节点的数组,Node的状态、动作用若干协议来描述,而节点之间的连接Linkable用于访问和管理节点视图。
Node接口提供了对节点所包含协议的访问方法,并为节点提供固定的ID,唯一标识该节点。通过clone()方法实例化。
Linkabe接口:一般都由protocol来实现,这个接口为其它邻居节点的protocol提供服务,相同linkable协议类的实例定义了一个覆盖网络。主要方法:addNeighbor(Node neighbor),getNeighbor(int i),degree()。
Control接口:实现了这个接口的类可以在模拟期间某个时间点调度执行,这些类一般用于监控或修改仿真操作,用于全局的初始化和性能分析。仅包含一个方法execute()。
CDProtocol:描述每个周期节点的动作。一般的节点可以执行本地的动作(CDProtocol),也可以管理本地视图(Linkable)