1 / 14

JSwitchSim – Java Switch Simulator

JSwitchSim is a Java-based network switch simulator developed by the Stanford High-Performance Networking Group. It allows experimentation with algorithms and data structures for networking. It is not a topology simulator like ns2, but can be extended with plugins. JSwitchSim has an object-oriented modular design and supports event-based or sequential time progression. It has a GUI and can be configured through file-based settings. It follows a similar program structure to SIM and includes various components like traffic generation, input queues, fabric, and output queues. Additional plugins can be created to extend its functionality. JSwitchSim can be used for benchmarking and comparison with other simulators like SIM. A demo version is available for testing and future work involves developing more plugins.

cdrake
Download Presentation

JSwitchSim – Java Switch Simulator

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. JSwitchSim – Java Switch Simulator Stanford High-Performance Networking Group Paul Tarjan Nick Mckeown

  2. What is JSwitchSim? • Network switch simulator • Not a topology simulator (like ns2) (Although it could be with plugins) • Allows experimentation with other algorithms and data structures • Replacement and upgrade for Sim (written in C, by Nick)

  3. What is JSwitchSim? (2) • Object-oriented modular design • Easily pluggable • Either event based (Calendar Queue) or sequential time progression • Has a GUI or configuration file based (GUI can save to config files)

  4. Program Structure • Very similar structure to SIM

  5. Program Structure (2) • Traffic : Generates Traffic • Splitter : Creates fixed sized cells from packets • Input Action : Moves cells to the Input Queues • Input Queues : An n x m matrix of FIFO queues (where n is # of inputs and m is # of outputs) • Algorithm : Decides how to configure fabric • Fabric : Moves the data from Input Queues to Output Queues using the Algorithm's output • Output Queue : m FIFO queues (m is # of outputs) • Output Action : Takes cells from the Output Queues and disposes of them • Stats : Records statistics

  6. Code Structure • Everything implements Event • Helper Classes DefaultEvent, RepeatableSimEvent • All plugin classes extend RepeatableSimEvent • To create plugins extend the corresponding abstract class and implement the abstract method (saving in the corresponding folder) • For example: Algorithms extend algorithm.Algorithm and implement getMatrix() saved in the folder “algorithm”

  7. Code Structure (2) • Each run of the program instantiates all new plugins (don't worry about state) • Main method : common.Main • Parser : common.Parser • Gui : common.Gui • Iterating loop (or queue executer) : common.GlobalData • All Global Data : common.GlobalData.globaldata

  8. Benchmark – Sequential EventsBernoulli IID 0.5 prob Traffic

  9. Benchmark – Unordered EventsBernoulli IID 0.5 prob Traffic

  10. Benchmark – Ordered Queued Events Bernoulli IID 0.5 prob Traffic

  11. Benchmark – Java vs C

  12. Benchmark – SIM vs JSIM (bare)

  13. Demo • Just run “java common.Main” or use the jar • Uses java 1.5

  14. Future Work • Need tons of plugins to be built • This is where you can come in!

More Related