Archive

Archive for June, 2010

PeerSim 中文教程:解析 Cycle-based 模式仿真

June 30th, 2010 leeing 6 comments

本文介绍了PeerSim的基本概念,并解析了两个示例以更清晰地说明PeeSim的仿真流程。

Peersim支持两种仿真模式,即Cycle-based的模型和传统的event-based的模型,本文专注于前者,

Cycle-based模型是一个简化的模型,拥有更好的伸缩性及性能,在拥有4GB内存的情况下,event-driven模式目前最多支持十万节点级别,而cycle-based模式则支持千万个节点级别。 但是Cycle-based模型缺少对传输层的仿真和并行处理,节点之间是直接通信的,仿真核心以一定的顺序周期性地给以节点控制。在运行时,可以进行任意的操作,如调用其它对象的方法并执行一些计算。

Cycle-based模型损失了一些真实性,虽然一些简单的协议可以忽略这些差别,但是在选择使用这个模型时,需要注意这些区别。我们可以相对简单地将Cycle-based的仿真移植到Event-driven引擎上,但在本文中不讨论这个话题。

一.基本介绍

PeerSim鼓励基于接口的模块化编程,每一个组件都能被其它实现了相同接口的组件代替,一般的仿真过程如下:

  1. 选择网络大小(即节点数量)。
  2. 选择要实验的一个或多个协议并进行初始化。
  3. 选择一个或多个Control对象来监视感兴趣的属性,并在仿真时修改一些参数(比如,网络大小,协议的内部状态,等等)。
  4. 根据配置文件,调用Simulator类运行仿真。

在仿真时创建的对象都是实现了一个或多个接口的类的实例,主要的接口如下所示:

Node P2P网络是由节点组成的,节点是协议的容器。Node接口提供了对节点所包含的协议的访问方法,并为节点提供了固定的ID。
CDProtocol 这是一个特定的协议,被设计用来在Cycle-based模型中运行,它只定义了在每一个周期中要运行的操作。
Linkable 一般都由协议来实现,这个接口为其它协议提供了访问邻居节点集合的服务,节点间相同的linkable协议类的实例定义了一个覆盖网络。
Control 实现了这个接口的类可以在仿真期间的某个时间点调度执行,这些类一般用于观察或修改仿真过程。

Cycle-based仿真的生命周期是这样的:

  1. 读取配置文件(通过命令行参数传递进来),然后仿真器初始化网络中的节点和节点中的协议,每个节点都拥有相同的协议栈。节点和协议的实例是通过克隆来创建的,只有一个原型是通过构造方法创建,其它的节点和协议都是从这个原型中克隆而来。基于这个原因,协议类中clone方法的实现是很重要的。
  2. 初始化操作,设置每个协议的初始状态。初始化阶段是由Control对象控制运行的,仅在实验开始时运行一次。在配置文件中,初始化的组件可以由init前缀识别,在下面讨论的initializer对象也是controls,但为了标记其功能以区别于一般的Control对象,它被配置用来在初始阶段运行。
  3. 在初始化完成后,Cycle-based引擎在每一个周期中调用所有组件(protocols和controls)一次,直到完成了指定的周期数,或者某个组件决定终止仿真为止。在PeerSim中每一个对象(controls和protocols)都被赋以一个Scheduler对象,它定义了什么时候本组件将会被执行。在默认情况下,所有对象都会在每个周期中运行。但我们也可以配置一个protocol或control只在某些特定的周期中运行,也可以在每一个周期中指定组件的执行顺序。

Read more…

Categories: PeerSim Tags: ,

随笔

June 20th, 2010 leeing 1 comment

每次都是想说很多话,却每次都无从下笔。

刚刚看了一篇日志,一字一句地,看了好多好多遍,也想了好久好久。

在漫漫的人生之中,不免留下许多遗憾,那些错过的,失去的,常常令人难以释怀。一句说错的话,足以改变人生的轨迹。无论再怎么认真地去挽留,都已经找不到来时的路。许多曾在自己心里最珍重的东西,蓦然回首,却发现是如水中月镜中花,显得那么的虚幻与不真实。

人生之中,没有如果,失去就不再来。随着时光的流逝,可能有些等待不能太漫长,最初的触动与感伤,都已经渐渐地枯萎在心里。窗边的晚风吹拂着我的脸颊,也同样扰乱着我的思绪,日复一日,渐渐地习惯了这种平凡而单调的日子,可心中的梦想,未曾忘记。

保持一种从容的心态,不喜欢刻意地去追求什么,一切顺其自然。莫愁前路无知己, 天下谁人不识君。

晴天娃娃

晴天娃娃

人生如梦,缘起缘灭。时光若白驹过隙,待黎明初起,浓雾散尽,生活还会继续。

Read more…

Categories: 朝花夕拾 Tags: