Software
Downloadable software.
- Resilient Packet Ring (RPR)
- Simulation used for RELAY's paper at NIME 2006
- The simulation demonstrates the efficiency of several straight-forward strategies for joining and leaving overlay multicast groups. The strategies are distributed, and join and leave mechanisms are implemented in a distributed manner, although communication is simulated.
- Game Latency Simulator used for RELAY's paper at NOSSDAV 2006
- This simulator can emulate a number of game clients on a network - all within one Java application. It allows changing latency hiding algorithms and their parameters and contains a number of evaluation modules. Running in graphics mode requires Java 3D to be installed. This file can be run as-is. To change configuration extract gls.config into the directory you start GLS from and change its contents to your will. To start GLS with different command line parameters have a look at the Perl scripts (rungui*.pl and runbatch.pl) inside the JAR file.
- Late Data Choice for Linux TCP
- Real-time delivery of time-dependent data over the Internet is challenging. UDP has often been used to transport data in a timely manner, but it's lack of congestion control is often criticized. Late data choice (LDC) in DCCP has been proposed to allow adaptive applications to reduce the amount of data that arrives late at the receiver. However, the vast majority of applications today use TCP, for numerous reasons. Plain TCP has several problems with timeliness. We have therefore implemented and tested the LDC ideas for TCP. It allows the application to modify or drop packets that it has already ''sent'' (handed to TCP) as long as they have not actually been transmitted to the network. This is achieved by using a shared packet ring and using indexes to hold the current status. Our experiments show that we by dropping outdated data are able to send more useful data with LDC. We can therefore claim that we have a better utilization of the throughput, giving us a higher useful throughput (or goodput) with LDC than without.
- SCTP thin-stream modifications patch for Linux 2.6.16.13 kernel
- A patch that modifies the 2.6.16.13 Linux kernel SCTP code to reduce latency for thin streams (small packets / high interarrival time). Introduces the following opions in /proc/sys/net/sctp: "thin_bundling_fr" : Enable bundling of unacknowledged data upon fast retransmit. "thin_bundling_outstanding" : Enable aggressive bundling of unacknowledged chunks. "thin_debug_tag_payload" : For analysis. Enable tagging of first payload byte with the retransmission type ( t=timeout, f=fast retransmit, b=bundled). "thin_expbackoff" : Enable removal of exponential backoff. "thin_fr" : Enables fast retransmissions after one duplicate ACK. "thin_minrto" : Lowers minRTO to 200ms. "thin_restart_timer" : Enables a bugfix that repairs a timer issue in the SCTP code. The modifications is triggered only when there are 4 or less packets in flight (thin stream), and will not have an impact on performance when the stream is thick.
- Patch to enable thin-stream modifications for TCP in Linux
- This file is a patch for the 2.6.23.8 Linux kernel. It will enable three modifications to TCP that aims to reduce application layer latency for time-dependent thin-stream applications (like online games, Skype, Remote Desktop) when loss occurs: 1) Redundant data bundling: Bundle unacknowledged data to preempt the experience of loss, and thus avoid retransmissions. 2) Removal of exponential backoff when the stream is thin: If less than 4 packets are in flight (on the wire), fast retransmit cannot be triggered, and exponential backoff is turned off to reduce the delay when consecutive losses occur. 3) Fast retransmit after one dupACK: If less than 4 packets are in flight, fast retransmit cannot be triggered (with 3 dupACKs), a retransmission is then done after receiving one dupACK. The mechanisms can be swithced on on a per-stream basis (using IOCTRLs: TCP_THIN_RDB, TCP_THIN_RM_EXPB, TCP_THIN_DUPACK ), or forced to be active for all TCP connections (using sysctl: net.ipv4.tcp_force_thin_rdb, net.ipv4.tcp_force_thin_rm_expb and net.ipv4._tcp_force_thin_dupack). The modifictions will only be active if a thin stream is detected, and will reduce the experienced application layer latency when loss occurs. For the bundling mechanism, a limit for the size of bundled packets can be set using the sysctl net.ipv4.tcp_rdb_max_bundle_bytes.
- Simple BGP Simulator
- Our simple BGP simulator aims to study the dynamics and propagation of routing updates in an AS-Graph. The simulator is designed with scalability in mind. Thus it is able to simulate BGP dynamics in several thousands nodes network.
- Mail traffic logs
- This is a trace of 1-month email traffic on University of Oslo's email servers, in the period 2008-06-17 to 2008-07-17. The archive contains only postprocessed logs in order to cut down the download size. More information can be found in the README file.
- Code for the MuCoCoS'09 workshop article
- This archive contains the source code compileable on Solaris 10 / AMD64.
- Video streaming and playout in a 3D environment
- This is a prototype is capable of playing back local video files and video streams in a 3D environment. It has been used for testing video quality perception when angles and distances between the virtual camera and virtual video screen increases. It requires the OGRE SDK and FFmpeg, and supports Windows, Mac OS X and Linux.
- Nornir KPN run-time source code
- Source code for an optimized Kahn process network run-time environment. It can be compiled both under POSIX systems (tested under Linux with GCC and Solaris 10 with SunCC) and 64-bit Windows with Visual Studio.
- Ginnungagap migration middleware and experimental Logs
- Ginnungagap is a middleware implemented in C++, it is primarily intended to be used for interactive applications, where distinct groups of interacting clients exist, such as Massively Multi-Player Online Games (MMOGs). Though it can be deployed for use with any number of applications. Ginnungagap supports the migration of objects in a distributed system, utilizing a distributed name service to efficiently handle lookups to locate objects. Ginnungagap also implements a core-selection algorithm for locating an optimal server for a set of interacting clients, which is accomplished by measuring the latencies of the interacting clients to a set of available servers/proxies. The experimental logs contain data collected while running extensive tests in the distributed research network PlanetLab, and also micro-benchmarks of the migration and remote method invocation (RMI) functionality.
- Software used in the evaluation of Multiple Routing Configurations
- This software contains java code used to generate MRC backup configurations, as well code for optimizing the link weights in the original and backup configurations.
