OverSim [Baumgart, 2007] is an open source, powerful, and fast Peer-to-Peer (P2P) simulation platform based on the OMNet++ simulation environment. It is a component-based and layered simulation package built on top of the OMNet++ platform that utilizes object oriented features of C++. OverSim includes many well-known P2P protocols and applications that can be easily extend and modified. You can always build your protocols and applications when existing ones are inadequate. OverSim API is based on the Structured P2P API proposed by Dabek et al. [Dabek, 2003]. Below we discuss features, current applications, and high-level architecture of OverSim. You are encouraged to read the relevant publications (e.g., [Baumgart, 2007; Dabek, 2003]) to get a better understanding of protocols and applications that you may need to use or modify. Note that OverSim may not have all the features or may have introduced new features that were not discussed in the original publications.
OverSim is designed based on a layered architecture and its implementation tightly reflects the architecture of OMNet++. It is recommended that the reader gain good understanding of OMNet++, particularly if new overlay protocols or applications need to be developed. See Chapter 2 for a quick introduction on OMNet++. Even for a relatively small program you may have to modify code in multiple layers. Figure 1.1 show an abstract layered view of the architecture.
Fig. 1.1 - High-level OverSim architecture.
More detailed view of the architecture given in Fig. 1.2.
Fig 1.2 - Detailed OverSim architecture (extracted from OverSim.org)
Many additional modules provided to enhance the functionality, visualize the topology and messages passing, and collect statistics. For example, Node List keeps track of current list of nodes in system, churn generators are used to simulate peer churn and failure, network coordinates are used for latency estimation, RPC handling provides simple messaging, trace manager is used to replay a given sequence of messages, etc. Later some of these modules will be discussed in detailed.
Chapter 2 presents how to install OverSim in Windows, Linux, and Mac. Several demos that explain how to run simple simulations is Presented in Chapter 3. Overview of OMNet++ is presented in Chapter 4. Chapter 5 introduce the Overlay layer and key functions. Key application layer (also refereed to as Tier 1) functions are presented in Chapter 6 and Tier 2 applications are presented in Chapter 7. How to write your own overlay and application is presented in Chapter 8. Chapter 9 discuss current implementations of various protocols in OverSim. Issues and possible optimizations related to simulating large-scale networks are discussed in Chapter 10.Various resources and a FAQ is presented in Chapter 11 and 12, respectively.
OverSim is a feature rich overlay/P2P simulation platform based on OMNet++. It comes with several well know overlay networks and P2P applications. You can always extend existing code or develop your own protocols and applications. Though it may initially appear intimidating, you will appreciate its features and flexibility as you develop a better understanding.
<< Previous – Welcome >> Next – Installing OverSim