A Tool for Deterministic Network Calculus
Deterministic network calculus is a methodology for worst-case modeling and analysis of communication networks. It enables to derive deterministic bounds on a server’s backlog as well as a flow’s end-to-end delay. Given a directed graph of servers (server graph) and the flows crossing these servers, the Disco Deterministic Network Calculator (DiscoDNC) automates the derivation of bounds.
We provide a Java implementation of the three most common network calculus analyses:
- Total Flow Analysis (TFA)
- This analysis derives server-local bounds for delay and backlog along the analyzed flow’s path.
- The flow's end-to-end delay bound is computed by summing up the individual delays on its path.
- Separated Flow Analysis (SFA) and Pay Multiplexing Only Once (PMOO) Analysis
- These analyses derive the analyzed flow’s end-to-end delay bound as well as its end-to-end backlog bound (maximum amount of data in transit).
- The bounds compete against each other, i.e., each analysis can outperform the other, depending on the network setting.
- Flow delay bounds derived by the SFA or the PMOO Analysis are more accurate than the TFA bounds.
- Server-local bounds are not derived by these analyses.
In version 2 of the DiscoDNC, we focussed on stability, performance and extensibility of the provided analyses.
If you encounter any problem or if you have questions, please contact Steffen Bondorf.
- Steffen Bondorf, 2011 - 2017, DiscoDNC v2 maintainer, lead developer
- Philipp Schon, 2016 - 2017, curve backend modularization
- Andreas Kiefer, 2008 - 2010, code modularization
- Nicos Gollan, 2008 - 2009, dnclib-1.x maintainer
- Frank A. Zdarsky, 2005 - 2007, dnclib-1.x author, maintainer, lead developer
- Jens B. Schmitt, 2005 - 2017, project initiator
News and Info
- We present DiscoDNC v2.4.0 beta 1 beta 2 beta 3. We plan to have a fourth beta before the final release of the DiscoDNC v2.4.0.
- We are proud to announce the DiscoDNC v2.3.5
- Version 2.3.4 delivers the flow prolongation code! For more information, please see
- We are proud to announce the DiscoDNC v2.3.0 2.3.1 2.3.2 2.3.3
- It is API incompatible to previous versions (2.2.x) but porting should be straight-forward.
- Many fixes and improvements made their way into this version (see Changelog) and we highly recommend an upgrade.
- Version 2.2.7 2.2.8 is available.
- Steffen Bondorf's postdoc project "Integrated End-to-End Modeling and Analysis of Heterogeneous Distributed Systems with Real-time Constraints" will be funded by the Carl Zeiss foundation. Development of the DiscoDNC is part of it. Stay tuned for updates!
- The MMB 2016 chnges are now available in the DiscoDNC version 2.2.6. See the changelog for further information.
- We landed a deterministic network calculus paper at MMB 2016! Work to implement the improvement on cross-traffic burstiness is under way. Stay tuned.
- We have a new web server and are planning to create a shiny home for the DiscoDNC.
- The DiscoDNC JavaDocs already moved from 184.108.40.206/discodnc-doc/ to 220.127.116.11/javadocs-latest/
- In our recent publication at ValueTools 2015, we presented the state-of-the-art approach to bound cross-traffic arrivals. It is already enabled by default in our DiscoDNC, you do not need to download a new version to gain from this paper's contribution.
- If you have questions about the network model for the DiscoDNC, please check Section 2 of our ValueTools 2015 paper as well as the demo classes provided with the source code. Here's a small wrap-up:
- The DiscoDNC does not use a specific modeling language, it's plain Java. You directly create a network object (a server graph) consisting of servers that possess a service curve, directed links connecting the servers, and flows that are shaped by an arrival curve at their entry to the network and then cross it on a specific path.
- Next, you need to create an object of the analysis you want to run. Then, run it for the flow you want to analyze and read your results from the analysis object.
- Curves are encoded as a list of linear segments that start in a coordinate and continue with a rate; an exclamation mark indicates that a segment is left-open.
- The current version of our tool is: 2.4.0beta3 "Chimera" (2017-Sep-01). (Changelog, JavaDocs, Download)
- You can also follow us on Twitter to stay up to date!
- For feedback, questions, etc., please contact Steffen Bondorf.
- If you use the Disco Deterministic Network Calculator for research, please include the following reference in any resulting publication.
If you let us know of your work we will also tweet about it!
The DiscoDNC provides an open-source implementation of deterministic network calculus analyses, containing classes for
- piecewise-linear curves,
- network configurations,
- min-plus-algebraic operations,
- simple network calculus operations and
- network calculus analyses.
The code base is modularized along these lines such that we allow for the use of our toolbox as a stand-alone tool for worst-case analysis as well as a network calculus library for adoption and refinement. The source code has been licensed under the GNU Lesser General Public License (LGPL) version 2.1 to facilitate the integration of our code into interested projects.
The modularization enabled to decouple the arrival bounding process from the analysis of the designated flow of interest. Thus, when using the DiscoDNC as a tool, it is possible to freely combine the above mentioned analyses with alternative approaches to bound cross-traffic arrivals that either possess
- the Pay Bursts Only Once property of SFA (PBOO-AB) or
- the PMOO property (PMOO-AB).
We have also augmented our tool with an extensive, well-documented set of manually computed network calculus scenarios that are published under Creative Commons license. These tests provide insight in the algorithmic procedure of network calculus as implemented in our tool. For quality assurance we implemented these scenarios and test a multitude of alternative configurations of the DiscoDNC against them.
For more detailed information about the changes to version 1.1 please refer to the development of the DiscoDNC v2.0.0.
We have also started work on the JavaDocs for the DiscoDNC (still incomplete).
- The code of the network calculator version 1.0 -- developed by Frank Zdarsky -- is available as an all in one archive including all libraries necessary to run the calculator (download) or a plain version without the dependencies (download).
- Version 1.0.1 is also available as an all in one or a plain version.
- Version 1.1, the previous major release, can be found here. An archive containing some of the functional tests of version 2.0.0 backported to v1.1 is also available on that page.
- The development leading to version 2.0 of our deterministic network calculus tool can be traced here and the referenced pre-release versions are available here.