<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>格物致知 &#187; P2P</title>
	<atom:link href="http://leeing.org/tag/p2p/feed/" rel="self" type="application/rss+xml" />
	<link>http://leeing.org</link>
	<description>keep Thinking</description>
	<lastBuildDate>Wed, 14 Mar 2012 06:47:01 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.4</generator>
		<item>
		<title>PeerSim 中文教程：解析 Cycle-based 模式仿真</title>
		<link>http://leeing.org/2010/06/30/peersim-turtorial-analyse-of-cycle-based-model/#utm_source=feed&#038;utm_medium=feed&#038;utm_campaign=feed</link>
		<comments>http://leeing.org/2010/06/30/peersim-turtorial-analyse-of-cycle-based-model/#comments</comments>
		<pubDate>Wed, 30 Jun 2010 08:33:50 +0000</pubDate>
		<dc:creator>leeing</dc:creator>
				<category><![CDATA[PeerSim]]></category>
		<category><![CDATA[P2P]]></category>

		<guid isPermaLink="false">http://leeing.org/?p=574</guid>
		<description><![CDATA[本文介绍了PeerSim的基本概念，并解析了两个示例以更清晰地说明PeeSim的仿真流程。 Peersim支持两种仿真模式，即Cycle-based的模型和传统的event-based的模型，本文专注于前者， Cycle-based模型是一个简化的模型，拥有更好的伸缩性及性能，在拥有4GB内存的情况下，event-driven模式目前最多支持十万节点级别，而cycle-based模式则支持千万个节点级别。 但是Cycle-based模型缺少对传输层的仿真和并行处理，节点之间是直接通信的，仿真核心以一定的顺序周期性地给以节点控制。在运行时，可以进行任意的操作，如调用其它对象的方法并执行一些计算。 Cycle-based模型损失了一些真实性，虽然一些简单的协议可以忽略这些差别，但是在选择使用这个模型时，需要注意这些区别。我们可以相对简单地将Cycle-based的仿真移植到Event-driven引擎上，但在本文中不讨论这个话题。 一．基本介绍 PeerSim鼓励基于接口的模块化编程，每一个组件都能被其它实现了相同接口的组件代替，一般的仿真过程如下： 选择网络大小（即节点数量）。 选择要实验的一个或多个协议并进行初始化。 选择一个或多个Control对象来监视感兴趣的属性，并在仿真时修改一些参数（比如，网络大小，协议的内部状态，等等）。 根据配置文件，调用Simulator类运行仿真。 在仿真时创建的对象都是实现了一个或多个接口的类的实例，主要的接口如下所示： Node P2P网络是由节点组成的，节点是协议的容器。Node接口提供了对节点所包含的协议的访问方法，并为节点提供了固定的ID。 CDProtocol 这是一个特定的协议，被设计用来在Cycle-based模型中运行，它只定义了在每一个周期中要运行的操作。 Linkable 一般都由协议来实现，这个接口为其它协议提供了访问邻居节点集合的服务，节点间相同的linkable协议类的实例定义了一个覆盖网络。 Control 实现了这个接口的类可以在仿真期间的某个时间点调度执行，这些类一般用于观察或修改仿真过程。 Cycle-based仿真的生命周期是这样的： 读取配置文件（通过命令行参数传递进来），然后仿真器初始化网络中的节点和节点中的协议，每个节点都拥有相同的协议栈。节点和协议的实例是通过克隆来创建的，只有一个原型是通过构造方法创建，其它的节点和协议都是从这个原型中克隆而来。基于这个原因，协议类中clone方法的实现是很重要的。 初始化操作，设置每个协议的初始状态。初始化阶段是由Control对象控制运行的，仅在实验开始时运行一次。在配置文件中，初始化的组件可以由init前缀识别，在下面讨论的initializer对象也是controls，但为了标记其功能以区别于一般的Control对象，它被配置用来在初始阶段运行。 在初始化完成后，Cycle-based引擎在每一个周期中调用所有组件（protocols和controls）一次，直到完成了指定的周期数，或者某个组件决定终止仿真为止。在PeerSim中每一个对象（controls和protocols）都被赋以一个Scheduler对象，它定义了什么时候本组件将会被执行。在默认情况下，所有对象都会在每个周期中运行。但我们也可以配置一个protocol或control只在某些特定的周期中运行，也可以在每一个周期中指定组件的执行顺序。 下图展示了对controls和protocols的调度，其中C代表Control而P代表一个协议。图下方的数字代表PeerSim的周期，在最后一个周期后，可以运行一个control来获取最后的快照（snapshot）。 在一个Control收集数据时，数据将会被格式化并发送到标准输出或重定向到一个文件以进行后续的处理。 配置文件只是一个普通的ASCII文本，本质上就是java.util.Properties，以#开头的行代表注释。 用以下的方式在命令行的模式下运行，比如： java -cp peersim.Simulator config-edexample.txt 具体来说，可能是： java -cp D:\library\peersim-1.0.5\jep-2.3.0.jar;D:\library\peersim-1.0.5\djep-1.0.0.jar;D:\library\peersim-1.0.5\peersim-1.0.5.jar;D:\library\peersim-1.0.5\peersim-doclet.jar peersim.Simulator D:\library\peersim-1.0.5\example\config-edexample.txt 当然你的jar包和配置文件的位置可能有所不同，也可以将这个jar包直接加到 classpath上，就不必使用-cp参数来显示指定classpath。 二．配置文件示例一 Gossip-based Aggregation协议，Aggregation是聚集的意思，这里是指对一个分布于网络中的数值集合运行一个特定的函数进行计算（如求平均数，最大值，最小值等等），每个节点周期性地选择一个邻居节点进行通讯（基于覆盖网），并且在每次通讯时，基于前一个取得的近似值，相互更新它们下次计算的近似值。 本例将创建一个由50000个节点组成的固定P2P随机拓扑，选定的协议是使用average函数的Aggregation协议，每个节点中用于求平均的值使用一个区间在(0,100)的线性分布来初始化，最后再定义一个Control监视平均值。 # PEERSIM EXAMPLE 1 random.seed 1234567890 simulation.cycles 30 control.shf Shuffle network.size [...]


Related posts:<ol><li><a href='http://leeing.org/2010/07/04/peersim-tutorial-example-of-event-driven-model/' rel='bookmark' title='Permanent Link: PeerSim 中文教程：Event-driven 模型'>PeerSim 中文教程：Event-driven 模型</a></li>
<li><a href='http://leeing.org/2010/07/02/peersim-turtorial-topology-generator/' rel='bookmark' title='Permanent Link: PeerSim 中文教程：拓扑生成器'>PeerSim 中文教程：拓扑生成器</a></li>
<li><a href='http://leeing.org/2010/07/02/peersim-turtorial-how-to-write-a-new-protocol/' rel='bookmark' title='Permanent Link: PeerSim 中文教程：编写一个新协议'>PeerSim 中文教程：编写一个新协议</a></li>
<li><a href='http://leeing.org/2011/03/17/peersim-%e6%ba%90%e4%bb%a3%e7%a0%81%e5%88%86%e6%9e%90%e4%b9%8b%e4%b8%80%ef%bc%9a%e7%a8%8b%e5%ba%8f%e5%85%a5%e5%8f%a3/' rel='bookmark' title='Permanent Link: PeerSim 源代码分析之一：程序入口'>PeerSim 源代码分析之一：程序入口</a></li>
</ol>]]></description>
		<wfw:commentRss>http://leeing.org/2010/06/30/peersim-turtorial-analyse-of-cycle-based-model/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>PlanetLab</title>
		<link>http://leeing.org/2009/12/31/planetlab/#utm_source=feed&#038;utm_medium=feed&#038;utm_campaign=feed</link>
		<comments>http://leeing.org/2009/12/31/planetlab/#comments</comments>
		<pubDate>Thu, 31 Dec 2009 12:54:44 +0000</pubDate>
		<dc:creator>leeing</dc:creator>
				<category><![CDATA[P2P]]></category>
		<category><![CDATA[分布式计算]]></category>
		<category><![CDATA[计算机网络]]></category>

		<guid isPermaLink="false">http://leeing.org/?p=57</guid>
		<description><![CDATA[         估计明年主要工作都集中在P2P-CDN的仿真器上，之前做过一些调研，是关于PlanetLab的，而国内关注的人极少，只有少数一些大学的实验室有过相关的应用，而且由于Cernet作为一个整体被除名，中国的使用人数应当大减了。就实验室的项目来说，原本我以为是要设计一个P2P-CDN的混合系统，现在已经变更为设计一个P2P-CDN的模拟器，所以PlanetLab是不可能得到应用，不过这里的一些信息可能对需要它的人有用。 &#8212;&#8212;&#8212;&#8212;&#8212;&#8211;华丽丽的分割线&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;          PlanetLab是一个全球性的研究网络，用于新型网络服务的开发。自从2003年起，超过1,000个来自顶级学术机构和业界实验室在PlanetLab上开发了新技术包括：分布式存储、网络印射、P2P系统、DHT（分布式哈希表）和查询处理。并且值得关注的是在这个平台上，P2P分布式计算的项目很多，甚至是基于P2P的CDN实现和部署。  http://www.planet-lab.org/          截止至2009年12月，PlanetLab目前拥有1063个节点和491个站点，很多世界一流大学和行业研究实验室成为PlanetLab计划的联盟成员，其中包括AT&#38;T实验室、剑桥大学、法国电信、HP、Google、NEC实验室、哈佛大学、普林斯顿大学和加州大学伯克利分校连同中国华为集团、以及Internet2机构。2009年5月，PlanetLab中心升级至4.3版本，可以支持新的节点类型（如无线节点），同时加入一些新的GUI特性。           PlanetLab的主要目标之一是用作重叠网络的一个测试床。研究组能够请求一个PlanetLab分片，其中他们能够试验各种全球规模的服务，包括文件共享和网络内置存储、内容分发网络、路由和组播重叠网、QoS重叠网、可扩展的对象定位、可扩展的事件传播、异常检测机制和网络测量工具。目前有数百个活跃的研究项目运行于PlanetLab之上。          对研究人员而言使用PlanetLab的好处是：可以在真实世界条件下大规模试验新服务，因为节点广泛分布于Internet，是一个由遍布世界各地的服务器组成的网络，能够观察并对网络行为做出反应；从位于许多数据源和数据终点的邻近范围而受益；从分布于多个管理的边界而受益。          PlanetLab是一个大规模互联网服务的测试床，在其上更多的狭窄定义的虚拟测试床能够被部署）。网络研究人员能够使用这项基础设施来试验对于Internet协议簇的修改和扩展。除了支持短期试验外，PlanetLab也设计用来支持长期运行的服务，这些服务支持一个用户基础（用户群）。即PlanetLab不但是一个测试床，也是一个部署平台，支持一个应用的无缝迁移，从早期原型，通过多次设计迭代，最后转变为一项持续演进的成熟服务。           2004 年12月27日中国教育和科研计算机网(CERNET)宣布，CERNET已加入PlanetLab，首先在中国20个城市的25所大学( 包括清华，北大，北航，北邮 )中设立50个 PlanetLab节点，这使得CERNET成为亚洲第一个地区性PlanetLab研究中心，但是在2009年6月1日，PlanetLab重新考虑了CERNET地位，指出PlanetLab接受的成员是研究机构/大学，而不是“国家组织”如CERNET，因此要求所有CERNET地址的中国大学重新申请为独立成员。个人不能直接参与到PlanetLab中，必须是PlanetLab的成员。截止到写这篇文章为止，国内也仅有少数的大学通过审批，更多的则是处于pending状态，更多被除名的大学则没有重新提交过申请。           建立在PlanetLab之上的一些成功案例，在这里主要是针对P2P-CDN系统来说明的： CoralCDN 基于P2P的CDN网络：www.coralcdn.org/ CoralCDN是一个免费的P2P内容分发网络，由世界范围内的web代理和域名服务器组成，它允许用户在之上建立一个高性能大需求的web网站。它于2004年的3月，在PlanetLab上进行测试。可以免费地下载CoralCDN的源代码，源代码是由C++完成的，超过一万行。 CoDeeN：A Content Distribution Network for PlanetLab 主页：http://codeen.cs.princeton.edu/ CoDeeN是由普林斯顿大学开发的学术性的CDN网络实验平台，且这个CDN网络由众多的PlanetLab节点组成，当前很多缓存服务器部署在PlanetLab的节点之上，这些缓存服务器同时作为request redirectors和server surrogates，它们相互合作提供了一个快速而健壮的web内容分发服务。 同时，它还包括以下的子项目： CoBlitz, a scalable Web-based distribution service for large files. CoDeploy, an efficient synchronization tool for PlanetLab slices. CoDNS, a fast and reliable name [...]


No related posts.]]></description>
		<wfw:commentRss>http://leeing.org/2009/12/31/planetlab/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

