Archive

Archive for January 20th, 2010

EBook:《The Quick Python Book》2nd Edition

January 20th, 2010 leeing No comments
the quick python book 2nd edition
the quick python book

The Quick Python Book, Second Edition, is a clear, concise introduction to Python 3, aimed at programmers new to Python. This updated edition includes all the changes in Python 3, itself a significant shift from earlier versions of Python. The book begins with basic but useful programs that teach the core features of syntax, control flow, and data structures. It then moves to larger applications involving code management, object-oriented programming, web development, and converting code from earlier versions of Python. True to his audience of experienced developers, the author covers common programming language features concisely, while giving more detail to those features unique to Python.

格式: PDF

ISBN: 193518220X

出版日期:  2010 年 1 月 15 日 

大小:2.88 MB

下载:>> 这里 <<

Categories: Python Tags: ,

常用的 P2P 仿真平台

January 20th, 2010 leeing No comments

由于网络的研究和设计的复杂度很大,不能给出抽象的模型,且实验成本很高。研究人员对真实或接近真实的大规模网络实验环境的需求越来越强烈。大规模网络试验环境是当前计算机网络研究迫切需要解决的问题。

首先看一下目前使用较多的一些开源的P2P网络仿真器情况,其它的一些仿真器由于使用的人较少或者多年没有更新,所以没有在这里提及。

  • PeerSim 

PeerSim 是一个模拟P2P overlay网络的软件,支持结构化和非结构化P2P网络模拟。PeerSim有两种模拟方式,cycle-based和event-driven。event-driven模式相对精确,cycle-based模式缺少传输层的模拟而且不能起到并发控制的作用,但占用资源少以适合于大规模的模拟,根据官方所发表的一篇最新论文,在拥有4GB内存的情况下,event-driven模式目前最多支持十万节点级别,而cycle-based模式则支持千万个节点级别。 

PeerSim本身不带任何具体的协议实现,但是提供了很好的扩展性,目前已经有研究人员在其基础上实现了Bandwidth management protocol,a fault-tolerant FSM,Pastry,Chord,Skipnet,BitTorrent,Aggregation,SG-1,Peer sampling service,T-Man,PdProtocol,Slacer等协议,可以在项目主页上下载,但官方并不提供直接支持。

PeerSim采用Java语言,截止到2009年12月,PeerSim 下载次数已经超过12000次,已经有150多篇重要的P2P方面论文中使用PeerSim 模拟器,当中很少一部分是由 PeerSim 的作者编写的,但是PeerSim不支持分布式模拟。

更新情况:最新的主要版本1.0.0发布于2005年11月11日,后续的版本的更新修改事实上都极小,目前最高版本是2009年9月29日发布的1.0.5版本。

文档情况:官方只发布三篇文档,无论是cycle-based还是event-driven模式的文档都很少,源代码虽然不是很多,但是缺少必要的注释。

项目主页http://peersim.sourceforge.net/

  • Oversim

OverSim运行在类UNIX系统,采取OMNeT++ 实现其网络层,支持无结构和结构化P2P协议,已经实现了Chord, Pastry, Bamboo, Koorde, Broose, Kademlia, GIA, Vast和Publish-Subscribe for MMOGs协议。

OverSim 拥有图形化的交互界面,方便验证和调试。有INETUnderlying 网络和 Simple Underlying网络用于模拟网络层。能够模拟10万节点以上的规模,模拟代码易转化成为仿真代码,现在 OverSim 已经成功将一个基于P2P的DNS系统部署在PlanetLab 当中,实现了P2PNS系统,部署于450个节点上。

OverSim的实现语言为C++,综合来看,Oversim也是一个优秀的仿真工具。

更新情况:最近更新时间为2009年9月28日,近年来更新最频繁的模拟软件。

文档情况:很少。

项目主页http://www.oversim.org/

 

  • P2Psim

P2Psim 是一个免费的,多线程的,不关联的事件模拟器,用来评估,审查,和探索peer-to-peer协议,运行在UNIX-Like系统上,采用C++语言。P2Psim支持搅动、支持迭代和递归路由查询、可以通过继承来实现新协议、支持多种底层网络拓扑格式、支持一种网络时延模型;但是不支持分布式模拟和带宽变动,节点规模小(3000节点)。已经实现的协议有:Chord, Koorde, Kelips, Tapestry, Kademlia。

更新情况:最新版本发布于 2005年4月18日,四年半没有任何更新。

文档情况:不完善,基本没有文档。

项目主页http://pdos.csail.mit.edu/P2Psim/

综合各方面考虑,觉得 Oversim 和 PeerSim 都是比较好的选择。

Categories: P2P Tags: , ,

CDN 仿真器现状和 CDNsim

January 20th, 2010 leeing No comments

开发新的网络服务需要大量的投资,因此有必要在一个可控的仿真环境下建立原型,监控和预测服务的行为。很多技术已经被提出以提高CDN的性能,但是大部分却没有被CDN提供商采用,这是因为这些技术并没有广泛地在一个仿真测试床上进行评估,而一些学术性的CDN网络,如CoralCDN和Codeen则是运行上PlanetLab上,但PlanetLab是一个黑箱且需要大量学术界的人员参与,在这样的环境下开发新技术显得很困难甚至不可能。

因此有必要开发一种在真实仿真环境下的CDN模拟器,而且必须是可靠和节省内存的,要求对大规模的CDN网络能进行较细节的仿真。大部分的CDN仿真系统没有考虑几个关键的因素,如网络中可能出现的瓶颈,每个网络元素(router,surrogate server等)可以处理的的session数目等等。这样,仿真结果可能产生误导。因为它们只是通过遍历每个节点来测量而没有考虑TCP/IP的网络架构;另一方面,现存的很多网络模拟器不能有效地仿真Internet的架构,例如NS-2是一个离散事件仿真框架,通常用来仿真TCP/IP协议,流量控制等,然而它需要大量的内存来仿真大规模的网络。同样的,一些测试床不能由非研究机构自由进行仿真,且PlanetLab的一个显著缺点是仿真不可以重复进行。

Testbed TCP/IP 内存占用 可重复性 规模 可用性 运行环境
CDNsimulator

(ns2&logsim)

本地
CDN simulator

[Bent et al 2004]

本地
CDN simulator

[Kulkarni et al. 2003]

本地
Codeen 限制 实时
CoralCDN 限制 实时
Globule 开源 实时
CDNsim 开源 本地

从上面的讨论可以看出,目前缺少可靠而且可伸缩的CDN仿真器,且CDN仿真器只能以有限的细节来模拟真实的网络(例如对网络的传输时间进行静态估计),总的来说,开发一个完整的CDN仿真器,包括相关的应用程序和网络工具,是一个极消耗时间的任务,因为典型的网络或缓存仿真器不能用在CDN仿真中使用。

专门用于CDN仿真的CDNsim是基于OMNet++仿真环境和INET框架开发的,其中:

  1. 基于离散事件的OMNeT++,是一个免费的、开源的多协议网络仿真软件,在网络仿真领域中占有十分重要的地位。OMNeT++英文全称是Objective Modular Network Testbed in C++,是近年来在科学和工业领域里逐渐流行的一种基于组件的模块化的开放的网络仿真平台。OMNeT++作为离散事件仿真器,具备强大完善的图形界面接口。
  2. INET框架则是在OMNet++环境中的开源通信网络仿真包,它包括几个Internet协议,如UDP,TCP,SCTP,IP,IPV6,Ethernet,PPP,IEEE 802.11,MPLS,OSPF等等。

CDNsim只是使用OMNet++中的基本的网络操作,如TCP/IP传送和离散事件的调度。请求路由,内容分发和管理以及所有CDN的特性则是由CDNsim本身完成的。

Categories: P2P Tags: ,