Maxwell Pro — Maxwell Resequencing Plugin

A new Maxwell plugin that can do user controlled re-sequencing of packets is available as part of the latest Maxwell TCP testing package.

The plugin is able to re-arrange packets in a flow so that, for example, packets that originate in sequence A, B, C, D, E, F will arrive in the order C, B, A, D, F, E.

The plugin allows user control of the re-sequence pattern and several other parameters.

Two scenarios have been created to allow the user to launch this plugin with a mouse click:

  • A basic scenario that gives user access on the graphical user interface to all of the re-sequencing plugin controls.
  • A scenario to subject a TCP connection to test that stresses the TCP stack’s congestion avoidance code.  This scenario will re-sequence TCP ACK packets while simultaneously subjecting other packets in the TCP connection to a sawtooth pattern of rising and falling delay and packet loss.

This plugin gives the user greater control over packet reordering than is possible using the standard jitter impairment.

Areas in which this plugin may prove useful:

  • Testing VoIP and IPTV devices to evaluate how well they can handle media streams with reordered media packets.
  • DNSSEC where delayed responses arrive in an order different than the query sequence.
  • DHCP client’s ability to handle multiple answers.
  • etc.

The plugin works on the concept of a “group” of packets (where the group size is from 1 to 9 packets.)

For instance, the user can define a group size and specify the order in which the packets are released from the group.  Thus with a group size of 4 containing packets A, B, C, and D the user could specify that they are released in order C, D, B, A.

There is another parameter to specify a number of packet between groups.

And another parameter to specify a limit on the time to accumulate the N packets of a group – if that limit is reached the group is drained, with a flag specifying whether to apply as much of the release pattern as usable, or not.

Note: re-sequencing causes packets to be delayed as they wait for the re-sequence group to be accumulated.  Consequently, re-sequencing will override the effect of any delay or jitter added by the standard impairments on the flow being re-sequenced.