SSFNet is a collection of packages for high-performance scalable modeling and simulation of large, multi-protocol, multi-domain IP networks.


Core SSFNet Packages
SSF.Net Core SSFNet classes for modeling and simulation of network elements (hosts, routers, network interfaces, links) and configuration of arbitrarily complex network topologies.
SSF.Net.Util SSFNet classes supporting model component addressing and automatic IP address allocation for networks and host/router interfaces.
SSF.OS Core SSFNet classes for modeling and simulation of network protocols, protocol messages, and operating system components.
SSF.Util.Plot Provides a simple graph plotting component that (at present) is targeted towards visualization of time-series of collected data.
SSF.Util.Random SSFNet classes supporting the management of multiple random number streams, and encapsulation of high quality pseudorandom number generators and common probability distributions from the package cern.jet.random.
SSF.Util.Streams This package supports efficient multi-point network monitoring infrastructure for collection of streaming data from many Monitors.

Contributed SSFNet Packages

Provides the core functionality of the Border Gateway Protocol version 4 (BGP-4).


Provides the communication functionality and features of the Border Gateway Protocol.


Provides the functionality for the path attribute features of the Border Gateway Protocol.


Provides the functionality for reading and processing ("playing back") data files created when monitoring is used to create data record streams as output.


Provides the functionality for the policy filtering features of the Border Gateway Protocol.


A simple client application which transfers data across a network, used primarily in cooperation with validation tests for the BGP-4 implementation in package SSF.OS.BGP4.


Provides the timing functionality and features (timers) of the Border Gateway Protocol.


Provides functionality which supports the Border Gateway Protocol package (SSF.OS.BGP4) but which is not directly related to the protocol itself.


Provides useful odds-and-ends functionality for various simulations, usually using an internal timer to perform a specific action at a given time.

SSF.OS.NetFlow Classes supporting the monitoring and filtering of IP packets processed by the IP protocol (SSF.OS.IP), for the collection of IP flow data from the routers in the spirit of Cisco's FlowCollector.
SSF.OS.NetFlow.Filter The Filter Package: SSF.OS.NetFlow.Filter

Provides classes which together implement a model of the Open Shortest Path First version 2 protocol (limited static version).


This package provides classes which together implement the Open Shortest Path First protocol Version 2.

SSF.OS.Socket SSFNet implementation of the BSD sockets, used to expedite the implementation of various application-level protocols that use TCP or UDP transport.
SSF.OS.TCP SSFNet implementation of the TCP protocol (Reno and Tahoe variants, delayed ack option).
SSF.OS.TCP.test SSFNet models of client and server application-level protocols using TCP for bulk data transfers.
SSF.OS.UDP SSFNet implementation of the UDP protocol.
SSF.OS.UDP.test SSFNet models of client and server application-level protocols using UDP for streaming traffic generation.
SSF.OS.WWW Classes modeling the empirically observed traffic workload generated by HTTP clients and servers.

Contributed SSFNet Models
SSF.App.DDoS DDoS demo package.
SSF.App.Worm This package models the spread of a worm in a network using a macroscopic epidemic model.

Other Packages
cern.colt A subset of the Colt 1.0.1 distribution required by the package cern.jet.random.
cern.jet.math Tools for basic and advanced mathematics: Arithmetics and Algebra, Polynomials and Chebyshev series, Bessel and Airy functions, Function Objects for generic function evaluation, etc.
cern.jet.random Large variety of probability distributions featuring high performance generation of random numbers, CDF's and PDF's.
cern.jet.random.engine Engines generating strong uniformly distributed pseudo-random numbers; Needed by all JET probability distributions since they rely on uniform random numbers to generate random numbers from their own distribution.
cern.jet.random.sampling Samples (picks) random subsets of data sequences.
cern.jet.stat Tools for basic and advanced statistics: Estimators, Gamma functions, Beta functions, Probabilities, Special integrals, etc.
cern.jet.stat.quantile Scalable algorithms and data structures to compute approximate quantiles over very large data sequences.
com.imsl.math Special mathematical functions and Complex numbers.
edu.cornell.lassp.houle.RngPack More strong uniform pseudo-random number generators.


SSFNet is a collection of packages for high-performance scalable modeling and simulation of large, multi-protocol, multi-domain IP networks.

SSFNet provides Java SSF-based components for modeling and simulation of Internet protocols and networks at and above the IP packet level of detail. Link layer and physical layer modeling can be provided in separate components.

SSFNet models are self-configuring - that is, each SSFNet class instance can autonomously configure itself by querying a configuration database, which may be locally resident or available over the Web. All network configuration files are in the DML format. They are used to configure a complete model, and instantiate a simulation with the help of the scalable DML configuration database package that is distributed with the SSF simulators.

The principal classes used to construct virtually any large or small Internet model are organized into two derivative frameworks, SSF.OS (for modeling of the host and operating system components, esp. protocols) and SSF.Net (for modeling network connectivity, creating node and link configurations).

The frameworks SSF.OS and SSF.Net hide all details of the discrete event simulator SSF API, allowing to implement the protocols like for a real operating system.

Support for modeling global-scale Internet monitoring infrastructures is provided by the package SSF.Util.Streams.

Support for the generation of high quality independent random number streams and a collection of common probability distributions is provided by the package SSF.Util.Random, that manages the random number stream seeds and encapsulates the high quality pseudorandom generators and distributions from the cern.jet.random and related packages used in CERN scientific libraries.

See the directory ssfnet/doc/raceway in the SSFNet distribution for documentation of the SSF parallel simulator kernel and the DML model configuration database.

See the SSFNet tutorials, examples and documentation at the SSFNet website