|
Platform
|
Dedicated 32-bit low power single board computer (PC Engines ALIX2c3).
AMD Geode LX 800 (500mhz), 256M memory.
1 gigabyte (or more) 80x flash memory file system.
No rotating media or fans.
|
Dedicated high performance computer.
|
|
Operating System and distribution
|
Linux 2.6.28.6 (or later) - 32-bit.
Ursaminor Linux
|
Fedora 14 - 64-bit.
|
|
Interfaces
|
One Ethernet for control.
Two Ethernets for impairments.
All interfaces full or half duplex.
All interfaces 10/100.
Auto MDI/MDI-X (auto crossover)
|
One Ethernet for control.
Two Ethernets for impairments.
All interfaces full or half duplex.
All interfaces 10/100/1000.
Auto MDI/MDI-X (auto crossover)
|
|
Fiber optical links
|
Supported via external converters.
|
Supported via external converters.
|
|
Additional interfaces
|
No
|
Yes, but special-order chassis may be required.
|
|
Transparency
|
Layer 2 bridge with IEEE 802 forwarding table.
|
Layer 2 bridge, forwarding defined by impairments.
|
|
Impairment engine
|
Netem, a standard Linux kernel module
|
IWL impairment server, a real-time multi-threaded process.
|
|
Delay
|
Yes
|
Yes
|
|
Jitter
|
Yes
|
Yes (May be highly customized with user-defined jitter distributions.)
|
|
Separate fixed and variable delay components
|
No
|
Yes
|
|
Jitter Distribution
|
Normal (bell curve), Pareto, Paretonormal
|
Uniform, Normal (bell curve/Gaussian), piecewise distribution function defined by user.
|
|
User defined jitter distributions
|
No
|
Yes
|
|
Reordering
|
Yes
|
Yes, user selectable.
|
|
Add delay/jitter to every Nth packet
|
No
|
Yes
|
|
Hold packets then release all – Dam bursting
|
No
|
Yes, via a plugin
|
|
IP Fragmentation
|
No
|
Yes, via a plugin and also part of IP test suite.
|
|
Protocol specific test suites
|
No
|
Yes
|
|
Maximum packet delay
|
About 10 seconds
|
More than an hour
|
|
Timer resolution
|
1 millisecond
|
1 millisecond
|
|
Drop
|
Yes
|
Yes
|
|
Duplication
|
Yes
|
Yes
|
|
Corruption
|
Yes - single bit error in randomly selected packets. Packet error probability is independent of packet size.
|
Yes - bit errors in randomly selected bits. Packet error probability is dependent on packet size.
|
|
Rate Limitation
|
Yes, using a token bucket rate limiter.
|
Yes, using an algorithm that takes many parameters into account such as bit propagation delay, link framing overhead, etc.
|
|
Bit-Serial Link Emulation
|
No. (For many users the rate limitation feature is sufficient.)
|
Yes, using an algorithm that takes many parameters into account such as bit propagation delay, link framing overhead, etc.
|
|
Modify packet contents?
|
No
|
Yes
|
|
Protocol specific packet rewriting
|
No
|
Yes
|
|
User written impairment
|
No
|
Yes
|
|
Stateful
|
No
|
Yes, in protocol and user defined impairments.
|
|
Low Frequency changes to individual impairments
|
Yes, using a spreadsheet template to define the sequence of impairment steps, impairment values, and inter-step delay. Minimum inter-step interval is 1 second.
|
Yes. Frequency range from 0.1 second to about two weeks.
Several ways to define the shape of the changes over time:
-
Pulse model using linear, sine, and square waveforms for ramp-up and ramp-down. Ramp-up and ramp-down may have different waveforms.
-
User specified list of (X,Y) coordinates.
-
User specified mathematical function.
|
|
Burst impairments
|
“Correlation” chain in which event probability is partially dependent on proceeding event probability.
|
Yes, using a Markov probability chain with modifier based on packet inter-arrival time.
The probability value used to decay the Markov chain is different from the probability used to trigger the burst.
A time window may be used to skew the decay probability.
Algorithm is extension of that used in ITU network impairment model.
|
|
Traffic classification into flows or bands
|
Yes - Packets may be classified into 5 categories in each direction (10 categories total) based on IPv4 header fields and UDP/TCP port numbers.
|
Yes - Packets may be classified into up to 64 categories in each direction (128 categories total) based on Ethernet header fields, IEEE 802 header fields (including VLAN tags), IPv4 or IPv6 header fields, UDP/TCP port numbers, and data within the packet.
|
|
Scriptable
|
Yes, using a spreadsheet template to define the sequence of impairment steps, impairment values, and inter-step delay.
|
Yes from Python, Java, Perl, TCL, and Bash (shell)
|
|
Can scripts run on other computers (i.e. scripting over the network.)
|
No
|
Yes
|
|
IEEE tagged VLANs
|
Partial support. Tagged ethernet packets are bridged. However, filters do not operate on tagged packets. Consequently, when used on a tagged VLAN trunk, all packets are classified into the default band, Band #5. All impairments may be applied to tagged packets.
|
Yes
|
|
Jumbograms
|
No
|
Yes
|
|
Intrinsic delay
|
Much less than one millisecond
|
100 to 150 microseconds
|
|
Throughput
|
Packet (Ethernet frame) thoughput varies depending on packet size and the impairments that are imposed.
- 1500 byte Ethernet packets:
- 8224 packets/second (100% of 100Mbit Ethernet) in each direction (i.e. full duplex.)
(Delay timing accuracy degrades above 6188 packets/second, 75% of 100Mbit Ethernet.)
- 64-byte Ethernet packets:
- Half duplex (one direction at a time): 26,800 packets/second
- Full duplex (both directions simultaneously): 12,000 packets/second in each direction.
User interface responsivity diminishes at about 75% of these rates.
|
25,000 packets/second
|