ArticlePDF Available

Dummynet Revisited

Authors:

Abstract

Dummynet is a widely used link emulator, developed long ago to run experiments in user-configurable network environments. Since its original design, our system has been extended in various ways, and has become very popular in the research community due to its features and to the ability to emulate even moderately complex network setups on unmodified operating systems. We have recently made a number of extensions to the emulator, including loadable packet schedulers, support for better MAC layer modeling, the inclusion in PlanetLab, and development of Linux and Windows versions in addition to the native FreeBSD and OS X ones. The goal of this paper is to present in detail the current features of Dummynet, compare it with other emulation solutions, and discuss what operating conditions should be considered and what kind of accuracy to expect when using an emulation system.
Dummynet Revisited
Marta Carbone, Luigi Rizzo
Dipartimento di Ingegneria dell’Informazione
Università di Pisa
Technical Report, 31 may 2009
http://info.iet.unipi.it/luigi/dummynet/
ABSTRACT
1. INTRODUCTION
2
2. RELATED WORK
2.1 Single-link emulators
2.2 Emulating multihop networks
3. DUMMYNET
3.1 Pipes
232
B
tD
T=tD+ (l+lQ)/B l
lQ
3.2 Traffic selection: the packet classifier
3.3 Multipath and multihop networks
3.4 Packet dropping
3.5 Queue management and packet schedul-
ing algorithms
2
2
3.6 Emulating MAC layer effects
3.6.1 Single station model
l/B
3.6.2 Emulating multiple stations
2
3.7 Dummynet accuracy
m
µ
3.8 Scalability
O(1)
O(log N)2N
O(log P)P
·
4. EXTENDING DUMMYNET
4.1 Dynamic reconfiguration
4.2 Adding classifier options
4.3 Extending the emulation part
5. CONCLUSIONS AND FUTURE WORK
6. REFERENCES
... To implement the recommended way on the client, nghttp2, an open-source HTTP/2 library, is used. DummyNet utility Carbone and Rizzo (2010) is run on the client to simulate network conditions such as bandwidth and delay. The 360Lib software transforms the videos into the CubeMap format with the 2890x1920 resolution JVET (2016). ...
Preprint
Full-text available
p>Realistic Virtual Reality is supported by 360° video, which provides viewers with an immersive watching experience. However, 360° video is bulky in size, while the transmission system has limited ability to provide bandwidth. As such, intelligent adaptive delivery solutions play a crucial role in enabling users to stream high-quality 360° video. In this research, we propose a novel approach for 360-degree video streaming over HTTP/2 that can provide consumers with a good watching experience (QoE) even in varying network circumstances and head-eye movements over time. The proposed method deploys the so-called BBAG algorithm (Buffer and Bandwidth Allocation Algorithm) using Scalable Video Coding to choose appropriate tile layers to resolve the trade-off between network and user adaptivity. With the support of HTTP/2's stream termination capability, the delivery of late tile layers is terminated to handle abrupt interruptions. BBAG is proven to improve QoE from 3.56% to 93.71% and the average viewport bitrate from 1.78% to 80.49% compared to state-of-the-art methods.</p
Chapter
Previous work established the importance of selecting the right network protocol for new foreground traffic, based on the current background traffic. The interactions between protocols, such as TCP-CUBIC and TCP-BBR for congestion control, affect fairness and throughput on shared networks. Fortunately, machine-learned (ML) classifiers can be used to identify the current background protocols, then optimization through protocol selection (OPS) can be used to improve performance on shared wide-area networks (WAN).We describe the design, implementation, and evaluation of iPerfOPS, the first tool that uses OPS to perform bulk-data transfer. The new tool is a substantially modified version of the well-known iPerf tool, and is an end-to-end implementation that incorporates previous research results. iPerfOPS introduces (1) a reliable data-transfer capability to iPerf, and (2) an implementation of OPS. We describe some empirical evaluations of iPerfOPS and discuss some of the practical implementation details required to achieve high performance. iPerfOPS shows that it is possible, within one tool, to classify the background network protocols such that high throughput and fairness are achieved.KeywordsiPerfprotocol selectionmachine-learned classifierdata transferwide-area networksfairnessshared network
Article
Full-text available
One of the key issues in providing tight bandwidth and delay guarantees with high speed systems is the cost of packet scheduling. Through timestamp rounding and flow grouping several schedulers have been designed that provide near-optimal bandwidth distribution with O(1) time complexity. However, in one of the two lowest complexity proposals in the literature, the cost of each packet enqueue/dequeue is still proportional to the number of groups in which flows are partitioned. In the other proposal, this cost is independent of the number of groups, but a number of operations proportional to the length of the packet must be executed during each transmission. In this paper we present Quick Fair Queueing (QFQ), a new member of this class of schedulers that provides the same near- optimal guarantees, yet has a constant cost also with respect to the number of groups and the packet length. The peculiarity of QFQ is to partition groups so that enqueue/dequeue can be accomplished in a number of steps independent of the number of groups, without requiring extra operations during packet transmissions. To validate the effectiveness of QFQ, we implemented it in the Linux kernel. QFQ proved able to execute each packet enqueue/dequeue in 340 instructions worst case, irrespective of number of flows and arrival patterns. Furthermore, the instructions used by QFQ are extremely well suited to a hardware implementation.
Article
Full-text available
Network testbeds have become very popular to support research on network protocols and distributed applications. When it comes to reproduce network behaviour, testbeds range between two extremes: use a fully emulated network, as in EmuLab, which yields very reproducible experiments but might be a poor representation of reality; or communicate through the real Internet, as in PlanetLab, resulting in more realistic but less reproducible scenarios. Having both features available in the same testbed, and being able to choose and mix the two at will, is clearly interesting for researchers. In this paper we present an extension of the PlanetLab testbed to add emulation capabilities to all nodes. The work is centered around the Dummynet emulator, which we ported to Linux as part of this project.
Conference Paper
Full-text available
This paper presents ModelNet, a scalable Internet emulation environment that enables researchers to deploy unmodified software prototypes in a configurable Internet-like environment and subject them to faults and varying network conditions. Edge nodes running user-specified OS and application software are configured to route their packets through a set of ModelNet core nodes, which cooperate to subject the traffic to the bandwidth, congestion constraints, latency, and loss profile of a target network topology. This paper describes and evaluates the ModelNet architecture and its implementation, including novel techniques to balance emulation accuracy against scalability. The current ModelNet prototype is able to accurately subject thousands of instances of a distributed application to Internet-like conditions with gigabits of bisection bandwidth. Experiments with several large-scale distributed services demonstrate the generality and effectiveness of the infrastructure.
Article
Full-text available
PlanetLab is a global overlay network for developing and accessing broad-coverage network services. Our goal is to grow to 1000 geographically distributed nodes, connected by a diverse collection of links. PlanetLab allows multiple services to run concurrently and continuously, each in its own slice of PlanetLab. This paper describes our initial implementation of PlanetLab, including the mechanisms used to implement virtualization, and the collection of core services used to manage PlanetLab. 1.
Article
Network protocols are usually tested in operational networks or in simulated environments. With the former approach it is not easy to set and control the various operational parameters such as bandwidth, delays, queue sizes. Simulators are easier to control, but they are often only an approximate model of the desired setting, especially for what regards the various traffic generators (both producers and consumers) and their interaction with the protocol itself.In this paper we show how a simple, yet flexible and accurate network simulator - dummynet - can be built with minimal modifications to an existing protocol stack, allowing experiments to be run on a standalone system. dummynet works by intercepting communications of the protocol layer under test and simulating the effects of finite queues, bandwidth limitations and communication delays. It runs in a fully operational system, hence allowing the use of real traffic generators and protocol implementations, while solving the problem of simulating unusual environments. With our tool, doing experiments with network protocols is as simple as running the desired set of applications on a workstation.A FreeBSD implementation of dummynet , targeted to TCP, is available from the author. This implementation is highly portable and compatible with other BSD-derived systems, and takes less than 300 lines of kernel code.
Conference Paper
Planetary-scale network testbeds like PlanetLab and RON have become indispensable for evaluating prototypes of distributed systems under realistic Internet conditions. However, current testbeds lack the heterogeneity that characterizes the commercial Internet. For example, most testbed nodes are connected to well-provisioned research networks, whereas most Internet nodes are in edge networks. In this paper, we present the design, implementation, and evaluation of SatelliteLab, a testbed that includes nodes from a diverse set of Internet edge networks. SatelliteLab has a two-tier architecture, in which well-provisioned nodes called planets form the core, and lightweight nodes called satellites connect to the planets from the periphery. The application code of an experiment runs on the planets, whereas the satellites only forward network traffic. Thus, the traffic is subjected to the network conditions of the satellites, which greatly improves the testbed's network heterogeneity. The separation of code execution and traffic forwarding enables satellites to remain lightweight, which lowers the barrier to entry for Internet edge nodes. Our prototype of SatelliteLab uses PlanetLab nodes as planets and a set of 32 volunteered satellites with diverse network characteristics. These satellites consist of desktops, laptops, and handhelds connected to the Internet via cable, DSL, ISDN, Wi-Fi, Bluetooth, and cellular links. We evaluate SatelliteLab's design, and we demonstrate the benefits of evaluating applications on SatelliteLab.
Article
Many protocols and applications perform poorly when exposed to real life networks with delay and packet loss. Often, it is costly and difficult to reproduce Internet behavior in a controlled environment. There are tools avail-able for testing, but they are either expen-sive hardware solutions, proprietary software, or limited research projects. NetEm is a recent enhancement of the traffic control facilities of Linux that allows adding delay, packet loss and other scenario's. Documentation and discussion of NetEm is maintained at http://developer.osdl.org/ shemminger/netem. NetEm is built using the existing Quality Of Service (QOS) and Dif-ferentiated Services (diffserv) facilities in the Linux kernel.
Article
Multimedia applications and protocols are constantly being developed to run over the Internet. A new protocol or application after being developed has to be tested on the real Internet or simulated on a testbed for debugging and performance evaluation. In this paper, we present a novel tool, ENDE, that can emulate end-to-end delays between two hosts without requiring access to the second host. The tool enables the user to test new multimedia protocols realistically on a single machine. In a delay-observing mode, ENDE can generate accurate traces of one-way delays between two hosts on the network. In a delay-impacting mode, ENDE can be used to simulate the functioning of a protocol or an application as if it were running on the network. We will show that ENDE allows accurate estimation of one-way transit times and hence can be used even when the forward and reverse paths are asymmetric between the two hosts. Experimental results are also presented to show that ENDE is fairly accurate in the delay-impacting mode.
Conference Paper
Ad hoc networks have gained place in the research area recently. There are many researches regarding different topics related to such networks, such as routing, media access control, security, scalability, and many others. There are two usual methods to test and evaluate ad hoc networks performance: simulations and real test-beds. A network emulator is a tradeoff between pure simulations and real test-beds. Here, we propose a multi-hop wireless ad hoc network emulator that uses the advantages of network simulator (NS-2) and traffic shaping tool (DummyNet), that we called SEDLANE [simple emulation of delay and loss for ad hoc networks environment]. SEDLANE is a network emulator that is based on TCP behaviour characteristics. Using SEDLANE, we can emulate a whole multihop ad hoc network through the data packet loss and round trip time (RTT) values over the TCP connection. SEDLANE helps testing and evaluating ad hoc network protocols using very simple and inexpensive test-bed configuration. The results confirm that; introducing SEDLANE within a simple configuration network (possibly 2 nodes) gives exactly the same results as those obtained when simulating such networks.