P2P系统仿真: oversim+INET+omnetPP

来香港半年多了,啥事情没折腾出来,就折腾了p2p的仿真了。 P2P的仿真软件很多, 测量软件也很多,但是挑选了半天,我还是选择了omnetPP + INet + OverSim来做为我的仿真平台。 这里我也只是做个简单的介绍而已, 有兴趣的朋友可以自己去找些资料看看了。

OmnetPP是一个跨平台的离散时间事件仿真程序, 功能蛮强大的,而且还开源。但是我看了一下他的许可证,他并不是基于GPL的。 估计作者希望将来能把这个东西做大盈利,但是目前来看只要不是商业使用,就完全开源和免费,这是很不错的。 同类的仿真软件还有NS2,但是NS2对于p2p的仿真似乎一直没有专门的团队来支持,需要自己付出大量的工作,所以意义不大。其次,OmnetPP的一个吸引我的地方是图形界面和实时显示能力,这个是NS2所没有, NS2是基于仿真结果数据来显示仿真状况,属于电影回放playback类型,而omnetPP是属于现场直播Live, 很适合在早期发现设计中的错误。 OmnetPP只是一个通用的网络仿真软件, 在其上需要对计算机网络进行仿真,需要INET模块。

INET模块是一个独立的计算机通信网络协议集在OmnetPP上的实现, 包括从物理层到应用层的网络协议,真让人叹为观止。 而且这个模块有专门的团队负责维护, 文档方面非常完备。就这点我就没理由不用它了。 INET模块主要用于互联网的仿真, 由于我只是希望对P2P这类特定应用进行仿真,所以INET的细节方面并不是我所关注的,它只是我所需要的Oversim模块所必须的下层模块,所以在这里提一下。

Oversim模块根据他的名字就看出他主要是用于Overlay类型的应用层网络仿真所设计的。 但是在实际的开发中,他却主要用在目前主要的那些P2P应用协议的仿真上了。 Oversim的底层是建立在一套简化的UDP协议之上(依靠了INET里面的实现),在其上,他定义了一套层次框架,由下至上为 Overlay Applicatoin Tier1 Applicatoin Tier2 Applicatoin Tier3 . 根据其设计的说明, Overlay层用于包括通用的底层Overlay协议的实现。而上层具体的应用,可以一层一层的叠加上去,作为Tier1 Tier2 Tier3。拿P2P的仿真来举例,通用的Pastry协议的实现就是放在Overlay这层的,而可以利用Pastry的各种应用,比如p2p存储, 聊天,媒体播放功能可以作为Tier1层堆叠上去。 各个层次的对上层接口都由Oversim定义,也可以自己扩充(我就扩充了一套专门用于媒体数据传输的接口)。 可以说Oversim提供了一个很不错的P2P设计的程序框架的参考。

你可能感兴趣的:(p2p,inet,仿真,oversim,omnet)