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.
[1]
Janey C. Hoe,et al.
Start-up dynamics of TCP's congestion control and avoidance schemes
,
1995
.
[2]
Larry L. Peterson,et al.
TCP Vegas: new techniques for congestion detection and avoidance
,
1994
.
[3]
Kevin R. Fall.
Comparisons of Tahoe, Reno, and Sack TCP
,
1995
.
[4]
Larry L. Peterson,et al.
Performance problems in BSD4. 4TCP
,
1995,
CCRV.
[5]
Srinivasan Seshan,et al.
Improving TCP/IP performance over wireless networks
,
1995,
MobiCom '95.
[6]
Jon Crowcroft,et al.
Eliminating periodic packet losses in the 4.3-Tahoe BSD TCP congestion control algorithm
,
1992,
CCRV.
[7]
Larry L. Peterson,et al.
The x-Kernel: An Architecture for Implementing Network Protocols
,
1991,
IEEE Trans. Software Eng..
[8]
Van Jacobson,et al.
Congestion avoidance and control
,
1988,
SIGCOMM '88.
[9]
QUTdN QeO,et al.
Random early detection gateways for congestion avoidance
,
1993,
TNET.
[10]
Larry Peterson,et al.
TCP Vegas: new techniques for congestion detection and avoidance
,
1994,
SIGCOMM 1994.
[11]
Srinivasan Keshav,et al.
REAL: A Network Simulator
,
1988
.