﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-伊落丹矩阵_Reservation-随笔分类-Network Simulators  </title><link>http://www.blogjava.net/illidan/category/38684.html</link><description>WLAN, 3GPP, Wireless Mesh</description><language>zh-cn</language><lastBuildDate>Mon, 30 Mar 2009 12:26:36 GMT</lastBuildDate><pubDate>Mon, 30 Mar 2009 12:26:36 GMT</pubDate><ttl>60</ttl><item><title>Monash.Univ::OMNeT++ vs. ns-2</title><link>http://www.blogjava.net/illidan/archive/2009/03/30/262914.html</link><dc:creator>伊落丹</dc:creator><author>伊落丹</author><pubDate>Mon, 30 Mar 2009 08:29:00 GMT</pubDate><guid>http://www.blogjava.net/illidan/archive/2009/03/30/262914.html</guid><wfw:comment>http://www.blogjava.net/illidan/comments/262914.html</wfw:comment><comments>http://www.blogjava.net/illidan/archive/2009/03/30/262914.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/illidan/comments/commentRss/262914.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/illidan/services/trackbacks/262914.html</trackback:ping><description><![CDATA[<br />
<br />
<br />
<form name="main" action="/twiki/bin/view/Simulation/OMNeTppComparison">
    <table border="0" cellpadding="3" cellspacing="0" width="100%">
        <tbody>
            <tr bgcolor="#ccffff">
                <td colspan="2"><br />
                </td>
            </tr>
        </tbody>
    </table>
</form>
<table border="1" cellpadding="1" cellspacing="0">
    <tbody>
        <tr>
            <th bgcolor="#99cccc"> <strong>.</strong> </th><th bgcolor="#99cccc"> <strong>OMNeT++</strong> </th><th bgcolor="#99cccc"> <strong>ns-2</strong> </th>
        </tr>
        <tr>
            <th bgcolor="#99cccc"> <strong>Flexibility</strong> </th>
            <td>
            OMNeT++ is a flexible and generic simulation framework. One can
            simulate anything that can be mapped to active components that
            communicate by passing messages. For example, it can be used for
            simulating queueing networks, multiprocessor systems, hardware
            architectures (routers, optical switches, file servers etc.), or
            business processes. Several model frameworks available for different
            problem domains (INET Fw, Mobility Fw, OverSim, NesCT, MACSimulator,
            etc.) </td>
            <td> ns-2 has been designed as a (TCP/IP) network
            simulator, and it difficult to impossible to simulate things other than
            packet-switching networks and protocols with it. It has highly detailed
            and <strong>hardcoded</strong> concepts about nodes, agents,
            protocols, links, packet representation, and network adresses etc,
            which is good, but makes it very hard if you want to do things a little
            differently. </td>
        </tr>
        <tr>
            <th bgcolor="#99cccc"> <strong>Programming Model</strong> </th>
            <td>
            Object-oriented, event-driven simulator, written in C++. Topology
            descriptions are either written as text files (NED language), or can be
            dynamically created in run-time. There is also a graphical interface
            (GNED) for creating and editing the topologies, which automatically
            creates the topology file. </td>
            <td> Mixed-mode: OTcl (Object-Tcl)
            with underlying C++ classes. OTcl is also used for creating and
            configuring networks, recording results etc. </td>
        </tr>
        <tr>
            <th bgcolor="#99cccc"> <strong>Model Management</strong> </th>
            <td>
            The OMNeT++ simulation kernel is a class library, i.e., models in
            OMNeT++ are independent of the simulation kernel. The researcher writes
            their components (simple modules) against the OMNeT++ simulation kernel
            API. OMNeT++ sources are never patched by models. Simple modules are
            then reusable, and can be freely combined like LEGO blocks to create
            simulations,. </td>
            <td> In ns-2, boundary between simulation core and
            models is blurred, without a clear API. Install instructions for 3rd
            party models usually begin like: "download ns2 2.xx.x, unpack it, then
            apply the following patch..." </td>
        </tr>
        <tr>
            <th bgcolor="#99cccc"> <strong>Support for Hierarchical Models</strong> </th>
            <td>
            Hierarchical module structure in OMNeT++ facilitates dealing with
            complexity in a methodical manner. Model designer assembles a complex
            model from self-contained building blocks (i.e. simple modules and
            compound modules) which are resuable in other simulations as they are. </td>
            <td>
            In ns-2, models are "flat": creating subnetworks, or implementing a
            complex protocol as a composition of several independent units (that
            appear as one unit) are not possible in ns-2. </td>
        </tr>
        <tr>
            <th bgcolor="#99cccc"> <strong>Debugging and Tracing Support</strong> </th>
            <td>
            OMNeT++ can show packet transmissions while a simulation is running.
            OMNeT++'s Tkenv is an interactive execution environment, which allows
            one to examine the progress of simulation and change parameters. There
            is also extensive library support for packet tracing etc. </td>
            <td>  ?  </td>
        </tr>
        <tr>
            <th bgcolor="#99cccc"> <strong>Variety of Models Available</strong> </th>
            <td>
            OMNeT++ has a good variety of models for simulating computer systems,
            queueing systems etc., but lags behind the ns-2 simulator on
            availability of communication protocol models. </td>
            <td> ns-2 has a
            rich set of communication protocol models (since it has been designed
            as a network protocol simulator, this is not surprising). </td>
        </tr>
        <tr>
            <th bgcolor="#99cccc"> <strong>Documentation</strong> </th>
            <td>
            OMNeT++ has a well written and up-to-date manual (there are also
            tutorials for quick introduction). OMNeT++'s simulation API is more
            mature and much more powerful than ns-2's. </td>
            <td> ns-2
            documentation is fragmented (there is a good tutorial for quick
            introduction). There is no clear dividing line between the models and
            the ns-2 simulation library. </td>
        </tr>
        <tr>
            <th bgcolor="#99cccc"> <strong>Ability to Run Large Networks</strong> </th>
            <td> OMNeT++ can simulate very large scale network topologies. The limit is the virtual memory capacity of the computer used.  </td>
            <td>  ns-2 has scalability problems on simulating large network topologies (more details needed here).  </td>
        </tr>
        <tr>
            <th bgcolor="#99cccc"> <strong>Support for Parallel Simulation</strong> </th>
            <td>
            Supports conservative parallel distributed simulation. The Null Message
            Algorithm (Chandy-Misra-Bryant) and Ideal Simulation Protocol (Bagrodia
            et al) are supported; others can be plugged in. Lookahead models for
            NMA can be plugged in. Communication layer is pluggable: currently
            implemented ones are MPI, named pipe, and file-based (for debugging).
            Unlike PADS, models do not need to be modified or instrumented for
            parallel simulation -- it is just a matter of configuration. </td>
            <td>  The PADS research group at Georgia Tech. has developed <a href="http://www.cc.gatech.edu/computing/compass" target="_top">extensions and enhancements to the ns-2</a> to allow a network simulation to be run in a parallel and distributed fashion on a network of workstations.  </td>
        </tr>
        <tr>
            <th bgcolor="#99cccc"> <strong>Experiment Design</strong> </th>
            <td>  Parameters of a simulation experiments are written in the <code>omnetpp.ini</code>, which enforces the concept of separating model from experiments.  </td>
            <td>
            Models and experiments are usually interwoven in ns-2: topology,
            parameters, model customizations, result collection etc usually in the
            same Tcl script, which makes "separation of concerns" difficult. </td>
        </tr>
        <tr>
            <th bgcolor="#99cccc"> <strong>Embeddability</strong> </th>
            <td>
            OMNeT++ simulation kernel can be embedded in other applications (where
            one can use alternative means of intpu/output, e.g., use databases).
            The existing user interfaces can be extended via plug-ins, modified or
            replaced. </td>
            <td>  ?  </td>
        </tr>
    </tbody>
</table>
<br />
<br />
<a href="http://ctieware.eng.monash.edu.au/twiki/bin/view/Simulation/OMNeTppComparison">http://ctieware.eng.monash.edu.au/twiki/bin/view/Simulation/OMNeTppComparison</a><br />
<br />
<img src ="http://www.blogjava.net/illidan/aggbug/262914.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/illidan/" target="_blank">伊落丹</a> 2009-03-30 16:29 <a href="http://www.blogjava.net/illidan/archive/2009/03/30/262914.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SEACORN::网络仿真器比较</title><link>http://www.blogjava.net/illidan/archive/2009/03/30/262886.html</link><dc:creator>伊落丹</dc:creator><author>伊落丹</author><pubDate>Mon, 30 Mar 2009 06:54:00 GMT</pubDate><guid>http://www.blogjava.net/illidan/archive/2009/03/30/262886.html</guid><wfw:comment>http://www.blogjava.net/illidan/comments/262886.html</wfw:comment><comments>http://www.blogjava.net/illidan/archive/2009/03/30/262886.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/illidan/comments/commentRss/262886.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/illidan/services/trackbacks/262886.html</trackback:ping><description><![CDATA[There are numerous network simulation tools on the market today, both
commercial and non-commercial. For example ns2 and its contributed
extensions and models, OMNeT++, TANGRAM-II, Parsec, SMURPH, Ptolemy,
NetSim++, C++SIM, CLASS, ANGLES, GloMoSim for ad-hock and wireless
networks, and DASSF/ SSFNET for large networks are commonly used
non-commercial simulators. OPNET, QualNet and COMNET III are typical
commercial tools. In the commercial category, OPNET is widely held to
be the state of the art in network simulation. ns2 is considered the
most popular among the non commercial simulation tools. OMNeT++ is
targeted at roughly the same segment of network simulation as OPNET. <br />
<br />
The objective is to reuse any suitable software, or selection of
software, that is well acknowledged and tested. The selection of the
software tool (s) to be used in the project will be decided in the
beginning of the project by the consortium members. <br />
<br />
Validation and assessment is a hard 'nut to crack' even for existing,
widely used (integrated) commercial and non-commercial simulation
tools. The complexity of the protocols and the level of abstraction
required are such that make it a very difficult task. The experience of
the partners, for example with OPNET and with ns2 (also evidenced
through discussion lists) bring to light the fact that even well tested
simulation software can still have 'bugs' for the seemingly well tested
TCP/IP protocol suite (IPv4), either due to the code or the protocol
interpretation. (A recent study has identified more than 400 different
implementations and versions of the TCP/IP stack). The tradeoffs
between simulation tractability and oversimplification of results is
not an easy task. Striking the right balance between the fundamental
underlying dynamics in packet behaviour in the Enhanced UMTS
environment and specific performance in particular environments and
specific protocols in a future scenario is by no means an easy task. <br />
<br />
A recent paper by Sally Floyd and Vern Paxon, 'Difficulties in
Simulating the Internet', IEEE/ACM transactions in Networking, Vol. 9,
No. 4, August 2001, highlights above difficulties. In the abstract it
is clearly stated that simulating how the global Internet (a live,
running network) behaves is an extremely challenging undertaking
because of the network's great heterogeneity and rapid change. One of
the biggest problems in simulating the Internet is the lack of typical
'operational' data or traces (the Internet traffic has proven to be
rapidly evolving and dynamic), which can be used to validate the
simulator behaviour. This is expected to worsen, as the current
networking paradigm is expected to be different from a future
networking environment, based on high speed wired and wireless access
(especially for Enhanced UMTS), supported by a new set of protocols and
a rich set of (new) applications. Measurement and experimentation with
current Internet traffic have limitations; they can possibly be used to
explore particular new environments, but not new architectures and
applications for the future Internet. Adding mobility and high-speed
wireless networking increases the complexity further since radio
propagation and node mobility are difficult and expensive to model, and
lack of experience with networking scenario in such networks.
<br />
<br />
Another recent paper, by J. Heidemann, K. Mills, S. Kumar,
'Expanding Confidence in Network Simulations', IEEE Networks,
September/October 2001, discusses best practices for validating
simulations and for validating TCP models across various simulation
environments. Despite the almost universal use of simulation to predict
performance of complex networks, and to understand the behavior of
existing and the correctness and performance of new protocol designs,
there are no widely accepted practices and techniques to help validate
network simulations and to evaluate the trustworthiness of their
results. Validation is the process of assuring that a model provides
meaningful, trustworthy, answers to the questions being investigated,
in accordance with real world behavior. As models often involve
approximations or abstractions from reality, validation provides
confidence that these approximations do not substantially alter the
answers to the questions being posed. Furthermore, different situations
require different levels of validation; the level of validation
required for a network simulation is influenced by the questions being
asked and by the systems being used. The paper discusses issues (and
difficulties) that need to be considered when validating network
simulations. These include: <br />
<ul>
    <li>Establishment of 'ground truth' and comparison with simulator results with direct comparison with reality, whenever possible.</li>
    <li>Clarity of specifications vs implementation. Some protocol
    parameter settings (e.g. window size) may affect performance
    substantially (e.g. steady state throughput changes by a factor of 2-10
    has been reported).</li>
    <li>Comparing simulations as protocol designs evolve. As the Internet
    is dynamic and protocol designs evolve, care must be exercised when
    comparing specific implementations and in the way general conclusions
    are drawn.</li>
    <li>Comparing simulations as network traffic changes. Validation
    against yesterdays or today's traffic mix, may not have much to do with
    the future networking traffic patterns and scenarios.</li>
    <li>Choosing appropriate metrics for comparisons. Given the 'ground
    truth' metrics must be derived to compare simulation results against
    the truth. Evaluating against the full real world behavior is not
    practical, thus often specific aspects are evaluated. Generalising from
    the specifics is still an open research question.</li>
    <li>Evaluating the sensitivity of simulations. Once validation has been
    performed under one set of conditions, sensitivity analysis helps
    understand how varying configurations change the accuracy of the
    simulation.</li>
    <li>Large scale simulation and validation. Two complimentary approaches
    to large scale simulation are widely adopted: parallel executions and
    abstraction. Also hierarchical (recursive) composition, build from
    well-validated components, and a well validated framework can be
    usefully employed.</li>
    <li>Incorporating mathematical models as subsystems in discrete event simulations can greatly help.</li>
    <li>Assessing cost-benefit tradeoffs. The extent, and therefore the
    cost of validation must be considered against the likely benefits.</li>
</ul>
<br />
For validation and assessment, in SEACORN we plan to include a selection of complimentary approaches, as for example:
<br />
<ul>
    <li> Clearly and explicitly document the assumptions, abstractions, and limitations.</li>
    <li>Identify the dependencies between any assumptions and
    simplifications, thus allowing for the error to be controlled and taken
    into account.</li>
    <li>Identify and explore the dangers and pitfalls in modelling and simulating Enhanced UMTS.</li>
    <li>Whenever possible, complement and compare simulation results with
    models, analysis, measurements, and experiments keeping in mind the
    limitations of each method.</li>
    <li>Review of existing literature on methodologies and best practices with regard to validation and assessment.</li>
    <li>Define metrics and criteria for assessing and validating the simulation software.</li>
    <li>Construct confidence intervals so that the reliability of the simulation results can be identified.</li>
    <li>Design in as many means as possible for examining the state of simulation (including animations where practicable).</li>
    <li>Identifying any behaviour that has been shown empirically to hold
    in a very wide range of environments (Invariants in behaviour) and
    backing these with a sound theoretical analysis. Caution will be
    exercised as to the validity of the 'invariant' in a future networking
    scenario in Enhanced UMTS. Development of heuristics for evaluation of
    Enhanced UMTS network performance.</li>
    <li>Identify and explore a representative parameter space (sensitivity analysis) of behaviour.</li>
    <li>Design validation tests that will include standards tests and run
    these validation tests regularly, including for each simulator release.</li>
    <li>Use reference scenarios, as for example those defined by 3GPP in TR25.942 and TR101.112.</li>
    <li>Ensure that simulation results are reproducible. Care is required
    in generating pseudo-random numbers sequences, mitigation of rounding
    due to floating point representation errors, which may affect event
    concurrency (especially when using parallel simulation).</li>
    <li>Make simulation scripts and simulation scenario publicly available,
    so that other researchers can easily check for themselves (and
    validate) the effect of changing network conditions and assumptions.</li>
</ul>
<br />
<br />
<a title="http://seacorn.ptinovacao.pt/sim_tools.html" href="http://seacorn.ptinovacao.pt/sim_tools.html">http://seacorn.ptinovacao.pt/sim_tools.html</a><br />
<br />
<img src ="http://www.blogjava.net/illidan/aggbug/262886.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/illidan/" target="_blank">伊落丹</a> 2009-03-30 14:54 <a href="http://www.blogjava.net/illidan/archive/2009/03/30/262886.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>