[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[P2Prg] Simulation tools for p2prg core subgroup



Hi,

For the core subgroup experimental work item, we have prepared the
attached draft summarizing existing free network simulation tools.

If anyone has any comments or contributions they would like to make, they
are most welcome.

Thanks.

-- 
Alan Brown
PhD Research Student
Department of Computing Science and Mathematics
University of Stirling, FK9 4LA
Office: 4B49
Tel: +441786 467449,
Web: http://www.cs.stir.ac.uk/~abr
-- 
The University of Stirling is a university established in Scotland by
charter at Stirling, FK9 4LA.  Privileged/Confidential Information may
be contained in this message.  If you are not the addressee indicated
in this message (or responsible for delivery of the message to such
person), you may not disclose, copy or deliver this message to anyone
and any action taken or omitted to be taken in reliance on it, is
prohibited and may be unlawful.  In such case, you should destroy this
message and kindly notify the sender by reply email.  Please advise
immediately if you or your employer do not consent to Internet email
for messages of this kind.

IRTF P2PRG                                                     A. Brown 
Internet Draft                                                 Stirling 
Expires: July 26, 2006                                       M. Kolberg 
                                                               Stirling 
                                                       January 27, 2006 
                                    
 
                                      
                 Tools for Peer-to-Peer Network Simulation 
                  draft-irtf-p2prg-core-simulators-00.txt 


   Status of this Memo 

   By submitting this Internet-Draft, each author represents that       
   any applicable patent or other IPR claims of which he or she is       
   aware have been or will be disclosed, and any of which he or she       
   becomes aware will be disclosed, in accordance with Section 6 of       
   BCP 79. 

   This document may only be posted in an Internet-Draft. 

   Internet-Drafts are working documents of the Internet Engineering 
   Task Force (IETF), its areas, and its working groups.  Note that 
   other groups may also distribute working documents as Internet-
   Drafts. 

   Internet-Drafts are draft documents valid for a maximum of six months 
   and may be updated, replaced, or obsoleted by other documents at any 
   time.  It is inappropriate to use Internet-Drafts as reference 
   material or to cite them other than as "work in progress." 

   The list of current Internet-Drafts can be accessed at 
        http://www.ietf.org/ietf/1id-abstracts.txt 

   The list of Internet-Draft Shadow Directories can be accessed at 
        http://www.ietf.org/shadow.html 

   This Internet-Draft will expire on June 30,2006. 

Copyright Notice 

   Copyright (C) The Internet Society (2006).  All Rights Reserved. 

Abstract 

   Due to the extremely large scale of P2P overlay networks, complexity 
   has become a major issue. With the number of connected nodes reaching 
   into the millions, a platform which can accurately simulate an 
   overlay  network  is  important.  Many  freely  available  network 
 
 
 
Brown                   Expires July 26, 2006                  [Page 1] 

Internet-Draft     Tools for P2P Network Simulation        January 2006 
    

   simulators exist, ranging from modelling networks at the packet level 
   to  concentrating  purely  on  the  overlay  network.  The  following 
   document provides an overview of these simulators, documenting the 
   maximum number of simulated nodes achieved in experiments, the P2P 
   overlay  architectures  modelled  and  the  chosen  implementation 
   language. 

Conventions used in this document 

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 
   document are to be interpreted as described in RFC-2119 [1]. 

Table of Contents 

   1. Introduction...................................................2 
   2. Overlay Network Simulators.....................................3 
      2.1. Narses....................................................3 
      2.2. 3LS.......................................................4 
      2.3. NeuroGrid.................................................4 
      2.4. PeerSim...................................................5 
      2.5. P2PSim....................................................5 
   3. Packet level Network Simulators................................6 
      3.1. Omnet++...................................................6 
      3.2. NS2.......................................................6 
      3.3. SSFNet....................................................7 
   4. Summary........................................................8 
   5. Security Considerations........................................9 
   6. References....................................................10 
      6.1. Normative References.....................................10 
      6.2. Informative References...................................10 
   Author's Addresses...............................................11 
   Intellectual Property Statement..................................11 
   Disclaimer of Validity...........................................12 
   Copyright Statement..............................................12 
   Acknowledgment...................................................12 
    
1. Introduction 

   To support the performance work of service overlays to be undertaken 
   by the P2PRG CORE subgroup, we are examining existing simulation 
   tools for suitability.  This document summarizes information we have 
   collected to date, covering only freely available simulation tools. 

   Simulating Peer-to-Peer (P2P) overlay networks is a common problem 
   for researchers/developers. Firstly, P2P overlay networks need to be 
   scalable (Kazaa has more than 4 million simultaneous users) and 
 
 
Brown                   Expires July 26, 2006                  [Page 2] 

Internet-Draft     Tools for P2P Network Simulation        January 2006 
    

   creating a simulation for such a large network is difficult due to 
   memory constraints using even the most powerful machines. However, 
   some tools allow a simulation to be distributed over a set of 
   machines. 

   Additionally, it may be desirable that a simulation behaves in 
   accordance to a physical network (packet delay, traffic and network 
   congestion, bandwidth limitations etc). These considerations also 
   increase  the  overhead  on  the  host  machine.  Subsequently,  when 
   choosing a network simulation tool for a given network, a distinction 
   must be made between simulation tools which are suitable for low 
   level networks and those which are suitable for P2P overlay networks.  

   In respect to this decision, this document is split into two further 
   sections. The first section describes simulation tools which are 
   suitable for overlay networks, boasting scalability and small memory 
   footprints. The second section describes some of the heavier network 
   simulators, which boast an array of Internet models and are deemed 
   more suitable for lower level network simulation. 

2. Overlay Network Simulators 

2.1. Narses 

   The Narses simulator is a flow-based network simulator designed to 
   avoid the overhead of packet level simulators [2] [3]. Narses is 
   written in Java and achieves high levels of scalability by simulating 
   aggregate flows rather than individual packets. By simulating a chunk 
   of bytes and not individual packets, Narses reduces the number of 
   events and subsequently the amount of memory used in the simulation. 
   To further reduce memory requirements, Narses assumes that transfers 
   between two end users are limited to the bandwidth allocated on the 
   first link to the network. This ensures there is no need for 
   intermediate  routers  and  reassessment  of  link  bandwidth,  hence 
   further reducing the number of events in the simulation.   

   By taking such measures, Narses trades detail of the underlying 
   network for decreased runtimes and a lower memory footprint. Of the 
   models of Narses, the largest is the bandwidth-share model. This TCP 
   like model tries to replicate the sharing of link bandwidth between 
   independent flows. This model was tested in a network consisting of 
   600 nodes transmitting 200KB flows of data. Narses was reported to be 
   45 times faster and consumed 28% of the memory of NS2. There is no 
   evidence of existing simulations of overlay networks for Narses.  

   Download Simulator: http://sourceforge.net/projects/narses/ 

 
 
Brown                   Expires July 26, 2006                  [Page 3] 

Internet-Draft     Tools for P2P Network Simulation        January 2006 
    

2.2. 3LS  

   3LS (3-Level-Simulator) is a Java based simulator for overlay 
   networks that uses a central step clock [3]. The system is separated 
   into three models: 
  1. Networked 

  2. Protocol 

  3. User 

   The network model is described in terms of distance between nodes in 
   a 2D space. The protocol model is simply the P2P protocol being used. 
   The user model generates input from users using a GUI or file. 
   Communication can only be achieved between directly connected layers. 

   When running the simulator it is possible to either create the models 
   for each of the three described levels or to select existing models 
   from a library. As the simulation runs, each event is displayed on 
   the screen. Once completed, the simulation data is stored to a file 
   and this data is accessed by a visualisation tool named AiSee [15]. 
   Currently, an implementation of Gnutella 0.4 exists and has been 
   tested on a small network of fewer than 20 nodes. 

   Download Simulator: Please e-mail the creators Nyik San Ting and 
   Ralph  Deters  (nyt431 at mail.usask.ca,  deters at cs.usask.ca)  at  the 
   University of Saskatchewan for a copy. 

   Documentation: [3] 

2.3. NeuroGrid 

   NeuroGrid [5][6] is a Java based network simulator designed for 
   comparisons between file sharing P2P systems such as Gnutella, 
   Freenet and other NeuroGrid systems. The NeuroGrid simulator is a 
   single-threaded event simulator and uses a configuration file to 
   define the protocol to simulate and the network properties. These 
   properties include the number of nodes and queries to execute. 
   Statistics including the number of successful queries and messages 
   parsed can be saved into files for later analysis. Currently there 
   are  simulations  available  for  Gnutella,  NeuroGrid,  Freenet  and 
   Pastry. 

   NeruoGrid has been used to simulate networks up to 300,000 nodes on a 
   machine with 4GB of RAM. 

 
 
Brown                   Expires July 26, 2006                  [Page 4] 

Internet-Draft     Tools for P2P Network Simulation        January 2006 
    

   Download Simulator: http://sourceforge.net/projects/neurogrid/ 

   Documentation: http://neurogrid.net/php/simulation.php 

2.4. PeerSim 

   PeerSim [7] is written in Java and offers an array of predefined                                                   *        protocols for P2P simulation. These include: 

  . OverStat: A collection of aggregation protocols. Aggregation is a 
     collective term for a set of functions aimed at providing 
     statistical information over distributed systems, such as the 
     average load of the nodes or the size of the network. 

  . SG-1: A protocol for self-organizing and maintaining a superpeer 
     based topology. 

  . T-Man:  This protocol can be used to build a wide range of 
     different topologies using only a ranking function that defines the 
     preference of each node for neighbours. 

   PeerSim is composed of two simulation engines, one is cycle-based and 
   the other is event driven. This allows it to be both dynamic and 
   scalable. The engines consist of components which may be 'plugged in' 
   and use a simple ASCII file based configuration mechanism which helps 
   reduce the overhead. The cycle-based engine does not model the 
   transport layer and subsequently is more scalable. The event-based 
   engine is less efficient but more realistic. PeerSim can achieve a 
   network consisting of 10^6 nodes using the cycle-based engine.  

   Download Simulator: http://sourceforge.net/projects/peersim/ 

   Documentation: http://peersim.sourceforge.net/#docs, 

   http://peersim.sourceforge.net/tutorial1/tutorial1.html 

2.5. P2PSim 

   P2PSim [10] is a written in C++ and designed for the evaluation of 
   P2P protocols. This multi-threaded, discrete event simulator runs in 
   several UNIX-like operating systems. P2PSim already supports Chord, 
   Accordion,   Koorde,   Kelips,   Tapestry,   and   Kademlia.   These 
   implementations are specific to P2PSim and do not model all features 
                        
   * Description of P2P protocols taken from [7] 

 
 
Brown                   Expires July 26, 2006                  [Page 5] 

Internet-Draft     Tools for P2P Network Simulation        January 2006 
    

   of the protocols. P2PSim has been tested with up to 3000 nodes using 
   the Chord implementation.  

   Download Simulator: http://pdos.csail.mit.edu/p2psim/ 

3. Packet level Network Simulators 

3.1. Omnet++ 

   OMNeT++ [8] is an open-source, component-based simulation environment 
   with a strong focus on supporting the user with a Graphical User 
   Interface  (GUI).  Although  Omnet++  is  not  strictly  a  network 
   simulator, it is gaining popularity in that domain. Components 
   (modules) are programmed in C++ and assembled into larger components 
   using  a  high  level  language  (NED).  It  is  primarily  used  for 
   simulating communication networks, but can additionally be used for 
   protocol   modelling   and   modelling   queuing   networks   and 
   multiprocessors. Available models include but are not limited to IP, 
   TCP, UDP, PPP, Ethernet, MPLS with LDP and RSVP-TE signalling and 
   802.11. Currently there exists a P2P swarming simulation for Omnet++ 
   [16], which has been tested on a network of up to 1000 nodes. The 
   overhead  of  modelling  the  transport  layer  in  this  simulation 
   environment will likely hinder scalability. However, Omnet++ can also 
   run distributed simulations over a number of machines. 

   Download simulator: http://www.omnetpp.org/filemgmt/ 

   Documentation: http://community.omnest.com/doc/tictoc-tutorial/ 

                  http://www.omnetpp.org/doc/manual/usman.html, 

                  http://www.omnetpp.org/doc/api/index.html 

3.2. NS2 

   NS2 [9], developed at UC Berkeley, is a discrete event simulator 
   targeted at networking research and provides substantial support for 
   simulation of many Internet, routing, and multicast protocols. It can 
   be installed on both Windows (using Cygwin) and Linux but evidently 
   is more suited to Linux. NS2 is comprised of many various packages to 
   provide its features (e.g. compatibility with numerous protocols and 
   providing  graphical  representation  of  simulations  etc)  thus  is 
   notoriously difficult to use.  

   NS2 implements a vast array of protocols including TCP and UDP, 
   traffic  source  behavior  such  as  FTP,  Telnet,  VBR  and  CBR. 
   Additionally, there is router queue management mechanisms such as 
 
 
Brown                   Expires July 26, 2006                  [Page 6] 

Internet-Draft     Tools for P2P Network Simulation        January 2006 
    

   Drop Tail, RED and CBQ implemented. NS2 also implements multicasting 
   and some of the MAC layer protocols for LAN simulations. Currently, 
   there is only one P2P simulation available for NS2 (Gnutella). 
   Simulations in NS2 are constructed using a mixture of C++ and OTcl 
   (Object Orientated version of Tcl created by MIT).  

   Simulating in NS2 is a four step model.  

  1. Firstly, add a combination of C++ and OTcl code to the NS2 standard 
     set of libraries to implement your protocol.  

  2. Create the simulated network using an OTcl script (define the 
     nodes, links etc). 

  3. Run the generated scripts. 

  4. Analyze the trace files generated by NS2. A graphical model (NAM) 
     can use the trace files to show a graphical representation of the 
     simulation. Other tools available include graph plotting.  

   Due to the realistic nature of the packet level NS2 simulator, 
   scalability is a major issue. However, like most packet level 
   simulators NS2 can run in parallel with a number of other machines. 
   This can increase the maximum number of nodes for a given simulation 
   but can become difficult to manage. Subsequently, NS2 is commonly 
   used for simulating small networks and is generally unsuitable for 
   modelling overlay networks.  

   Download Simulator: http://www.isi.edu/nsnam/ns/ns-build.html 

   Documentation: http://www.isi.edu/nsnam/ns/, http://nile.wpi.edu/NS/, 

                  http://www.isi.edu/nsnam/ns/ns-tutorial/index.html 

3.3. SSFNet 

   SSFNet [11] is a collection of Java and C++ based components and uses 
   the Domain Modelling Language (DML) to configure networks as a series 
   of configuration files. The principal classes in the SSF.OS Framework 
   (for modelling of the host and OS components) and the SSF.Net 
   Framework (for modelling the network connectivity) can be used to 
   construct virtually any Internet model. The frameworks SSF.OS and 
   SSF.Net hide all details of the discrete event simulator SSF API, 
   which allows implementation of the protocols similar to a real 
   operating system. This was the chosen simulator for Epichord [14].  


 
 
Brown                   Expires July 26, 2006                  [Page 7] 

Internet-Draft     Tools for P2P Network Simulation        January 2006 
    

   SSFNet simulations can be executed independently or in parallel with 
   other simulations running on Linux, Windows or SUN Solaris alike. 
   Regarding  maximum  network  size,  a  network  of  33,000  nodes  is 
   achievable (on a powerful machine with 2GB of RAM). SSFNet also has 
   the ability to run a distributed simulation. 
    
   Download Simulator: http://www.ssfnet.org/ssfImplementations.html 
   Documentation: http://www.ssfnet.org/internetPage.html, 
                  http://www.ssfnet.org/SSFdocs/ssfapiManual.pdf 
4. Summary 

   The following tables summarizes the tools. 

      SIMULATOR       P2P PROTOCOLS       MAX NODES    DISTRIBUTED 
                                                        SIMULATION 

        Narses             None              600           No 

         3LS            Gnutella          < 1,000         No 

      NeuroGrid   Gnutella, NeuroGrid,    300,000         No 
                     Pastry, FreeNet 

       PeerSim        Collection of        > 10^6          No 
                   internally developed 
                        P2P models  

        P2PSim      Chord, Accordion,       3,000          No 
                     Koorde, Kelips, 
                   Tapestry, Kademlia. 

       Omnet++            None             1,000*         Yes 

         NS2            Gnutella            N/A           Yes 

        SSFNet             None             33,000         Yes 

    
                    Table 1. Simulator Characteristics 
                                      
                                      

 
 
Brown                   Expires July 26, 2006                  [Page 8] 

Internet-Draft     Tools for P2P Network Simulation        January 2006 
    

   Max Nodes is the reported maximum based on information from the 
   simulation developers, and refers to number of simulated nodes per 
   host. This number may be hardware dependent.  See the website for the 
   tool for more details.   
   P2P Protocols are those known to have modeled with the given tool and 
   are models available with the downloaded tool. 
   For Omnet++, this data was obtained from the P2P Swarming protocol 
   [15]. This does not mean more nodes cannot be achieved using Omnet++.  
   The following table shows the implementation language. 
    
                        SIMULATOR    LANGUAGE 

                          Narses       Java 

                           3LS         Java 

                        NeuroGrid      Java 

                         PeerSim       Java 

                          P2PSim        C++ 

                         Omnet++     C++/NED 

                           NS2       C++/OTcl 

                          SSFNet   Java/C++/DML 

                                      
          Table 2. Implementation language(s) for each simulator 
                                      
5. Security Considerations 

   There are no new security considerations in this document. 









 
 
Brown                   Expires July 26, 2006                  [Page 9] 

Internet-Draft     Tools for P2P Network Simulation        January 2006 
    

6. References 

6.1. Normative References 

   [1]   Bradner, S., "Key words for use in RFCs to Indicate Requirement 
         Levels", BCP 14, RFC 2119, March 1997. 

6.2. Informative References 

   [2]   TJ Guili and Mary Barker, Narses: A scalable flow based network 
         simulator, arXiv:cs.PF/0211024 v1 20 Nov 2002 

   [3]   Narses Simulator, http://sourceforge.net/projects/narses/, 
         viewed January 23, 2006. 

   [4]   Nyik San Ting, Ralph Deters, 3LS - A Peer-to-Peer Network 
         Simulator, Third International Conference on Peer-to-Peer 
         Computing (P2P 2003). 

   [5]   NeuroGrid, http://www.neurogrid.net, viewed January 23rd, 2006 

   [6]   Sam Joseph and T. Hoshiai. Decentralized meta-data strategies: 
         Effective peer-to-peer search. IEICE Transactions on 
         Communications, E86-B(6):1740-1753, 2003. 

   [7]   PeerSim, http://peersim.sourceforge.net, viewed January 23, 
         2006. 

   [8]   Omnet++, http://www.omnetpp.org, viewed January 23, 2006. 

   [9]   Network Simulator 2, http://www.isi.edu/nsnam/ns/, viewed 
         January 23, 2006. 

   [10]  P2PSim, http://pdos.csail.mit.edu/p2psim/, viewed January 23, 
         2006. 

   [11]  Scalable Simulation Framework Net, http://www.ssfnet.org, 
         viewed January 23, 2006 

   [12]  Kant, K., Iyer, R.: Modeling and simulation of ad-hoc/p2p file-
         sharing networks. In proceedings of Tools 2003. (2003) 

   [13]  Alberto Montresor, Gianni Di Caro, Poul E. Heegaard, BISON: 
         Architecture of the Simulation Environment, IST-2001-38923 



 
 
Brown                   Expires July 26, 2006                 [Page 10] 

Internet-Draft     Tools for P2P Network Simulation        January 2006 
    

   [14]  B. Leong, B. Liskov and E. D. Demaine: EpiChord: Parallelizing 
         the Chord Lookup Algorithm with Reactive Routing State 
         Management, MIT Technical Report, Aug 2004. 

   [15]  AbsInt. AiSee homepage. http://www.aisee.com/, viewed January 
         24th, 2006 

   [16]  Omnet ++ P2P Swarming Protocol, http://me55enger.net/swarm/, 
         viewed January 24th, 2006. 

Author's Addresses 

   Alan Brown 
   Department of Computing Science and Mathematics  
   University of Stirling  
   Stirling FK9 4LA  
   Scotland 
   Email: abr at cs.stir.ac.uk  
    
   Mario Kolberg 
   Room 4B60, Cottrell Building  
   Department of Computing Science and Mathematics  
   University of Stirling  
   Stirling FK9 4LA  
   Scotland 
   Email: mkolberg at ieee.org 

Intellectual Property Statement 

   The IETF takes no position regarding the validity or scope of any 
   Intellectual Property Rights or other rights that might be claimed to 
   pertain to the implementation or use of the technology described in 
   this document or the extent to which any license under such rights 
   might or might not be available; nor does it represent that it has 
   made any independent effort to identify any such rights.  Information 
   on the procedures with respect to rights in RFC documents can be 
   found in BCP 78 and BCP 79. 

   Copies of IPR disclosures made to the IETF Secretariat and any 
   assurances of licenses to be made available, or the result of an 
   attempt made to obtain a general license or permission for the use of 
   such proprietary rights by implementers or users of this 
   specification can be obtained from the IETF on-line IPR repository at 
   http://www.ietf.org/ipr. 

   The IETF invites any interested party to bring to its attention any 
   copyrights, patents or patent applications, or other proprietary 
 
 
Brown                   Expires July 26, 2006                 [Page 11] 

Internet-Draft     Tools for P2P Network Simulation        January 2006 
    

   rights that may cover technology that may be required to implement 
   this standard.  Please address the information to the IETF at 
   ietf-ipr at ietf.org 

Disclaimer of Validity 

   This document and the information contained herein are provided on an 
   "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS 
   OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET 
   ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, 
   INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE 
   INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED 
   WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. 

Copyright Statement 

   Copyright (C) The Internet Society (2006). 

   This document is subject to the rights, licenses and restrictions 
   contained in BCP 78, and except as set forth therein, the authors 
   retain all their rights. 

Acknowledgment 

   Funding for the RFC Editor function is currently provided by the 
   Internet Society. 

    

    

















 
 
Brown                   Expires July 26, 2006                 [Page 12] 

_______________________________________________
P2prg mailing list
P2prg at irtf.org
https://www1.ietf.org/mailman/listinfo/p2prg