KMAX Product Brief

The KMAX Network Emulator

Real world networks have long distance links, satellites, congested routers, firewall inspection, packet interception, hardware failures, and other outages. But the networks in most software development labs are too fast and too clean – not at all like the real Internet. You must test and verify application performance prior to deployment. A poorly performing app can erode user confidence and damage your reputation.

Assure success by emulating real-world network conditions in the lab, and subject the application to the full range of network conditions likely to occur.

KMAX Family Models C, MM, and P.

Front and back views.

Emulate the Real World in Your Lab

The KMAX network emulator helps network engineers test and measure performance in order to identify and remove defects. Network emulators turn well behaved development and test networks into the kind of slow, congested, and less-than-reliable services encountered on the internet.

In addition, unlike the real internet, network emulators allow the operator
to control these conditions so that products and apps can be subjected to controlled and repeatable tests, by routing selected packets through a series of impairment nodes.

The Result:

  • Deliver robust, high quality products and applications

  • Accelerate time to market

  • Eliminate guesswork and surprises

  • Completely characterize your app’s network performance

State of the Art, Fully Intuitive User Interface

Use the KMAX Network Emulator from any web browser on a tablet or desktop. Use the Wizard to guide you through set up and operation. Point and click to select the scenario closest to your production environment. KMAX scenarios contain sets of network impairments -- drops, delay, jitter, etc. — that may be fine tuned and adjusted to match your environment.

Scenarios - predefined models of your operation

Select a pre-defined, network emulation scenario from our library. With more than 70 scenarios to choose from, KMAX will probably have exactly what you need. Pre-built library scenarios feature intuitive controls that appear on top of an end-to-end diagram of the whole network, to provide a bird’s eye view. You can also add your own custom background diagram. Let us show you how it works!

Create Your Own Scenario

Do you already understand the way your app or device will be used in the real world? Do you want to define the most likely routine environments as well as the possible extreme environments? You can create your own scenario! Use one of ours and make adjustments or define your own.

  • Packet Drop/Loss: Add “burst mode” for a realistic emulation.

  • Packet Delay/Latency: From zero to 3600 seconds, with millisecond precision.

  • Packet Jitter, with or without reordering. Specify a custom jitter distribution: Uniform, Gaussian, Pareto, or Pareto-Normal:

Uniform Distribution

Gaussian Distribution

Gaussian Distribution

  • Packet Duplication, with rapid back-to-back transmission.

  • Packet Corruption: Specify packet-centric or bit-centric probabilities of corruption.

  • Rate limiting: Choose From several queue management algorithms.

Pareto Distribution

Pareto Norm Distribution

Model Worst-Case Situations:

  • Turn on burst mode for any impairment, to simulate back-to-back real-world stochastic bursts.

  • Add time-varying expressions to any parameter.

Regardless of the production environment – anything from the routine to the extreme to legacy – KMAX permits customization to precisely emulate that world.

Incorporate Real or Simulated Traffic:

KMAX accommodates all forms of real or simulated network traffic:

  • Use real devices to generate packets, then impair only selected packets and protocols under consideration, while filtering out the rest.

  • Or, use a packet generator to create simulated network traffic for the device under test, then apply impairments only to those packets, leaving the rest of the network unaffected.

Classify Network Traffic

Create filters for the packet classifier using the Classifier Filter Library, or create your own filter, then apply different impairments to different filter outputs. Examples of filter criteria include:

  • IEEE 802 header fields: MAC source/destination addresses, Ethernet type/length, MPLS criteria, VLAN tags.

  • IPv4 or IPv6 header fields, including chained headers, fragment status, and QoS.

  • Higher level protocols: UDP or TCP port numbers.

  • Data within the payload, for any layer.

Equation

Piecewise Linear

The KMAX Smart Classifier Filter System puts you in charge to use intelligent criteria for packet classification:

  • Specify flexible value/mask comparisons: useful for matching addresses, QoS criterion, and payload bytes:

  • Specify lists of values and ranges for comparison: useful for port numbers, VLANIDs, and payload sizes:

Real world networks change their behavior over time: excessive jitter, dropouts, or reductions in bandwidth can vary smoothly, or jump from one value to another, over the course of minutes, or days. Create a network emulation that varies the impairment parameters over any time period:

Shaped Pulses

Specify a time-varying expression for any metric, using equations, piecewise curves, or shaped pulses:

Examples

▶ Test your streaming clients: The device under test should handle time-varying impairments, and perform flawlessly, for days.
▶ Run your protocols continuously, while the time-varying impairments cover all corner cases–perfect for overnight stress testing.

Remote Control via KMAX API

The KMAX web server API provides remote control over all aspects of KMAX, including the impairment engine and statistics gathering. The KMAX API Guide describes the commands that you can use to insert KMAX directly into your testing pipeline:

  • Plug KMAX into your existing diagnostics tools, for custom statistics collection and display.

  • Automate KMAX reconfiguration, to run different configurations for different tests - essential for overnight testing.

  • Add a fully custom user interface, by using any scripting language with an HTTP client.

KMAX Documentation

  • KMAX System Guide

  • KMAX QuickStart Guide

  • KMAX Quick Reference Guides

  • Stencils for creating network diagrams

  • KMAX API Guide

Charts, Graphs and Tables

View network emulation statistics in tables and charts (graphs). Add any number of tables or graphs to one or more browser windows, then monitor the values while you change impairment settings. You have the flexibility to see everything going on in the KMAX server:

  • Display packet rates and packet counts at all points in the KMAX impairment process, such as interface ports and flow inputs, for precise analysis.

  • Display individual impairment statistics: packets dropped / duplicated / jittered / delayed, etc: A total of 17 metrics.

  • Select any unit of representation: bytes/sec, bits/sec, packets/sec, total bytes, total bits, and total packets.

Graph highlights:

  • Each graph can chart two parameters ,for side-by-side comparison.

  • Switch between linear or semi-log axes: essential for analyzing metrics that vary over many orders of magnitude.

Table highlights:

  • The table can display dozens of parameters simultaneously

  • The table allows quick identification of many correlated metrics, for enhanced troubleshooting and understanding.

KMAX Specifications

System Packages:

  • Hardware Configurations:

    • Cube: 8.47" (W) x 7.13" (H) x 11.22" (D)

    • Lunchbox: 5.31” (W) x 2.09” (H) x 6.1” (D)

    • Tablet: 158 mm (W) x 28 mm (H) x 155 mm (D). 6.22” (W) x 1.1” (H) x 6.1” (D)

  • Software Only Configuration: Virtual Machine (VM)

  • Interfaces: 10/100/1000 Mbits/sec and 2.5/10 Gbits/sec

  • Operating System: FreeBSD

  • Layer 2 transparent bridge

Impairment Engine: Kernel-driven impairment engine

User Interface:

  • Web-based graphical user interface

  • Command Line Interface

  • Script control with Python or Java

  • Script control with RESTful interface

  • Script control with JSON interface

  • Script control with YAML interface

Standard Impairments:

Packet Delay/Latency:

  • Specify packet delay / latency

  • Vary packet delay / latency over time *

  • Add jitter to the delay

  • Add jitter to the delay with packet reordering

Packet Jitter

  • Jitter Distribution:

    • Normal / Gaussian / Bell curve

    • Pareto

    • Pareto-Normal

    • Uniform (equal)

    • Piecewise distribution function / user defined

Packet Duplication:

  • Specify duplication probability

  • Vary duplication probability over time *

    • Enable bursts:

    • Specify burst probability

  • Specify burst window duration

  • Vary burst probability over time: *

  • Enable burst skew

Packet Drop / Loss:

  • Specify drop probability

  • Vary drop probability over time * :

  • Enable bursts:

    • Specify burst probability

    • Specify burst window duration

  • Vary burst probability over time: *

  • Enable burst skew

Manipulate contents of headers and payloads:

  • Randomly corrupt a packet

  • Intelligently corrupt a packet

  • Create a packet and selectively insert into the flow

  • Dynamically create and change distinct flows of packets

  • Inspect packet headers to select packets for modification

  • Rewrite packet headers

  • Rewrite packet data

Rate Limitation:

  • Specify:

    •  target rate

    •  queue length

    •  overhead bits

    • minimum packet size

    •  maximum packet size

    • Vary any of the above over time: *

    • Support bit clocking rate control

    • Support token bucket rate control

    • Mark for drop or random early detection

    • Specify transition action on queued packets

    • Flush queue

Packet Corruption:

  • Specify corruption probability

  • Limit corruption to Ethernet payload

  • Specify burst probability

  • Vary burst probability over time *

Emulated Links / Multiple Flows:

  • Unidirectional and bidirectional packet flow

  • At least 5 flows in each direction; 10 total

  • Larger models: 64 flows in each direction; 128 total

Classify packets based on:

  • IPv4 header fields

  • IPv6 header fields

  • MAC source or destination addresses

  • Ethernet type or length field

  • IEEE 802 header fields (includes VLAN tags)

  • Data within the packet

Classify packets based on fields in protocols:

  • Low-level protocols:

    • arp

    • dhcp

    • icmp

    • mpls

    • spanning-tree

  • IP layer:

    • IPv4 packets of varying lengths

    • IPv6 fragment

    • IPv6 fragment_last

    • IPv6 flow range

  • TCP / UDP layer:

    • Any TCP packet

    • TCP port numbers

    • Any UDP packet

    • UDP port numbers

    • http

    • DNS

    • SIP

  • Applications layer:

    • VoIP

    • VoIP with QoS bits in various configs

    • Apply different impairments on each emulated link

Select and modify packets based on:

  • The content of that packet

  • The content of predecessor packets

  • The content of packets in other flows

  • The mathematical model of packet flows

  • The position in the protocol handshake

*This can be done by selecting a simple pulse model or using a list of value/duration pairs

Maxwell Patent No 7310316

Testing device US 7310316 B2

ABSTRACT
A test device (21) sits between two or more nodes (20, 22). The nodes (20, 22) communicate in conversations, according to some predetermined protocol. The test device (21), under user control, may introduce jitter, drop packets, create new packets, reroute packets, and reorder packets in the conversations. Particular conversations are detected and tracked by respective virtual state machines (38, 39, 40) within the test device.