1、Munoz-Gea 发表在2007年,本文的目的在于向P2P 领域的工作者介绍这个工具。
2、其它P2P 仿真工具的缺点:
1、P2PSim:不易扩展,统计存在局限;
2、PeerSim:底层的TCP/IP网络不是模块化的;
3、PlanetSim:在仿真底层TCP/IP网络时候存在局限性。
3、Oversim的层次结构:
1、构建在OMNET++上,开发的基本步骤是:1)用NED 语言描述系统结构;2)用C++实现简单模块;3)配置和仿真。
2、Application 被分为两层:1)一些简单的引用可以在Tier1实现;2)一些复杂的需要Tier层提供服务的应用则在Tier2实现。
3、Overlay层的程序需继承于BaseOverlay类,而应用层的则需继承于BaseApp类。
4、P2P的分类:
1、Centralized directory model: 存在单点故障;
2、Unstructured Model:采用flooding +TTL 进行查找,traffic非常大,不能够确定所需要数据是否存在;
3、Structured Model: 不支持模糊查询;
5、结构化P2P 的API设计:
1、void route(key k,msg m) 实现在Overlay层;
2、void forward(key k,msg m,nodehandle nexthopnode) 实现在Applicaiton层;
3、void delivery(key k,msg m)实现在Applicaiton层。
6、基于超级节点的P2P网络API:
Common Operations:
1.Super-peer joint 就是普通节点加入到Super-peer节点;
2.Publication 就是发布内容;
3.Lookup 就是查询内容;
4.Download 就是下载所请求的内容。
相互交互的操作:
1、Super-peer 通信:有 SuperPeerRequestMessage 和 SuperPeerResponseMessage,以应对 Super-peer joint、publicaiton of contents、lookup of contents。
2、Peer 之间的通信:有 PeerRequestMessage 和 PeerResponseMessage,用于下载所请求的内容。
3、为了使节点能够接受消息,需实现 bindToPort() 函数,为了使节点能够发送消息,需实现sendToUDP()函数,处理消息函数为handleMessage()。
7、P2P的建模:
1、有必要对queries, the node connection inter-arrival time, session length, the file-time, files arrival rate, the number of peers receiving them进行特征提取和建模.
2、the time until the first query 是通过 weibull (for body) 分布和 log-normal (for tail) 分布进行建模;
3、the query inter-arrival time (for body) 是通过log-normal 分布和 Pareto (for tail ) 分布来建模的;
4、the query popularity 服从zipf-like 分布;
5、inter-arrival time 服从 weibull 分布;
6、 the session length 服从weibull 分布。(注:同一种分布,其参数各不相同)