IMIX Genome: Specification of Variable Packet
Sizes for Additional Testing
AT&T Labs
200 Laurel Avenue South
Middletown
NJ
07748
USA
+1 732 420 1571
+1 732 368 1192
acmorton@att.com
http://home.comcast.net/~acmacm/
Traffic, Pattern, Benchmarking
Benchmarking methodologies have always relied on test conditions with
constant packet sizes, with the goal of understanding what network
device capability has been tested. Tests with a constant packet size
reveal device capabilities but differ significantly from the conditions
encountered in operational deployment, so additional tests are
sometimes conducted with a mixture of packet sizes, or "IMIX"
("Internet Mix"). The mixture of sizes a networking device will
encounter is highly variable and depends on many factors. An IMIX
suited for one networking device and deployment will not be
appropriate for another. However, the mix of sizes may be known,
and the tester may be asked to augment the fixed-size tests.
To address this need and the perpetual goal of specifying
repeatable test conditions, this document defines a way to specify the
exact repeating sequence of packet sizes from the usual set of fixed
sizes and from other forms of mixed-size specification.
This memo defines a method to unambiguously specify the sequence of
packet sizes used in a load test.
Benchmarking methodologies have always
relied on test conditions with constant packet sizes, with the goal of
understanding what network device capability has been tested. Tests with
the smallest size stress the header processing capacity, and tests with
the largest size stress the overall bit-processing capacity. Tests with
sizes in between may determine the transition between these two
capacities.
Streams of constant packet size differ significantly from the
conditions encountered in operational deployment, so additional
tests are sometimes conducted with a mixture of packet sizes. The set of
sizes used is often called an Internet Mix, or "IMIX" .
The mixture of sizes a networking device will encounter is highly
variable and depends on many factors. An IMIX suited for one networking
device and deployment will not be appropriate for another. However, the
mix of sizes may be known, and the tester may be asked to augment the
fixed-size tests. The references above cite the original studies and
their methodologies. Similar methods can be used to determine new size
mixes present on a link or network. We note that the architecture for IP
Flow Information Export provides one method to
gather packet-size information on private networks.
To address this need and the perpetual goal of specifying repeatable
test conditions, this memo proposes a way to specify the exact repeating
sequence of packet sizes from the usual set of fixed sizes: the IMIX
Genome. Other, less exact forms of size specification are also
recommended for extremely complicated or customized size mixes. We apply
the term "genome" to infer that the entire test packet-size sequence can
be replicated if this information is known -- a parallel to the
information needed for biological replication.
This memo takes the position that it cannot be proven for all
circumstances that the sequence of packet sizes does not affect the test
result; thus, a standardized specification of sequence is valuable.
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in RFC 2119.
This memo defines a method to unambiguously specify the sequence of
packet sizes that have been used in a load test, assuming that a
relevant mix of sizes is known to the tester and the length of the
repeating sequence is not very long (<100 packets).
The IMIX Genome will allow an exact sequence of packet sizes to be
communicated as a single-line name, resolving the current ambiguity with
results that simply refer to "IMIX". This aspect is critical
because no ability has been demonstrated to extrapolate results from
one IMIX to another IMIX -- and certainly no ability to extrapolate
results to other circumstances -- even when the mix varies only
slightly from another IMIX.
While documentation of the exact sequence is ideal, the memo also
covers the case where the sequence of sizes is very long or may be
generated by a pseudorandom process.
It is a colossal non-goal to standardize one or more versions of the
IMIX. This topic has been discussed on many occasions on the
BMWG mailing list . The goal is to enable
customization with minimal constraints while fostering repeatable
testing once the fixed-size testing is complete. Thus, the requirements
presented in this specification, expressed in
terms, are intended for those performing/reporting laboratory tests to
improve clarity and repeatability.
The IMIX Genome is specified in the following format:
IMIX - 123456...x
where each number is replaced by the letter corresponding to the size
of the packet at that position in the sequence. The following table
gives the letter encoding for the standard
sizes (64, 128, 256, 512, 1024, 1280, and 1518 bytes) and "jumbo" sizes
(2112, 9000, and 16000 bytes). Note that the 4-octet Ethernet frame
check sequence may fail to detect bit errors in the larger jumbo
frames .
Size (Bytes)
Genome Code Letter
64
a
128
b
256
c
512
d
1024
e
1280
f
1518
g
2112
h
9000
i
16000
j
MTU
z
For example, a five-packet sequence with sizes 64,64,64,1280,1518
would be designated:
IMIX - aaafg
If z (MTU) is used, the tester MUST specify the length of the MTU in
the report.
While this approach allows some flexibility, there are also
constraints.
Packet sizes not defined by RFC 2544 would need to be approximated by those
available in the table.
The genome for very long sequences can become undecipherable by
humans.
Some questions testers must ask and answer when using the IMIX
Genome are:
Multiple source-destination address pairs: Is the IMIX sequence
applicable to each pair, across multiple pairs in sets, or across
all pairs?
Multiple tester ports: Is the IMIX sequence applicable to each
port, across multiple ports in sets, or across all ports?
The chosen configuration would be expressed in the following
general form:
Source Address + Port AND/OR Blade
Destination Address + Port AND/OR Blade
Corresponding IMIX
x.x.x.x Blade2
y.y.y.y Blade3
IMIX - aaafg
where testers can specify the IMIX used between any two entities in
the test architecture (and "Blade" is a component in a multi-component
device chassis).
This section describes how to specify an IMIX with locally selected
packet sizes.
The custom IMIX is specified in the following format:
CUSTOM IMIX - 123456...x
where each number is replaced by the letter corresponding to the size
of the packet at that position in the sequence. The tester MUST complete
the following table, giving the letter encoding for each size used,
where each set of three lower-case letters would be replaced by the
integer size in octets.
Size (Bytes)
Custom Code Letter
aaa
A
bbb
B
ccc
C
ddd
D
eee
E
fff
F
ggg
G
etc.
up to Z
For example, a five-packet sequence with sizes
aaa=64,aaa=64,aaa=64,ggg=1020,ggg=1020 would be designated:
CUSTOM IMIX - AAAGG
When the IMIX Genome cannot be used (when the sheer length of the
sequence would make the genome unmanageable), five options are possible,
as noted in the following subsections.
When a sequence can be decomposed into a series of short repeating
sequences, then a run-length encoding approach MAY be specified as shown
in the table below (using the single lower-case letter Genome Codes from
):
Count of Repeating Sequences
Packet-Size Sequence
20
abcd
5
ggga
10
dcba
The run-length encoding approach is also applicable to the custom IMIX
as described in (where
the single upper-case letter Genome Codes would be used instead).
When the sequence is designed to vary within some proportional
constraints, a table simply giving the proportions of each size MAY be
used instead.
IP Length
Percentage of Total
Length(s) at Other Layers
64
23
82
128
67
146
1000
10
1018
Note that the table of proportions also allows non-standard packet
sizes but trades the short genome specification and ability to specify
the exact sequence for other flexibilities.
If a deterministic packet-size generation method is used (such as
a monotonic increase by 1 octet from start value to MTU), then the
generation algorithm SHOULD be reported.
If a pseudorandom length generation capability is used, then the
generation algorithm SHOULD be reported with the results along with the
seed value used. We also recognize the opportunity to randomize
inter-packet spacing from a test sender as well as the size, and both
spacing and length pseudorandom generation algorithms and seeds SHOULD
be reported when used.
Finally, we note another possibility: a pseudorandom sequence
generates an index to the table of packet lengths, and the generation
algorithm SHOULD be reported with the results, along with the seed value
if used.
Benchmarking activities as described in this memo are limited to
technology characterization using controlled stimuli in a laboratory
environment, with dedicated address space and other constraints
.
The benchmarking network topology will be an independent test setup
and MUST NOT be connected to devices that may forward the test traffic
into a production network or misroute traffic to the test management
network.
Further, benchmarking is performed on a "black-box" basis, relying
solely on measurements observable external to the Device Under Test (DUT)
or System Under Test (SUT).
Special capabilities SHOULD NOT exist in the DUT/SUT specifically for
benchmarking purposes. Any implications for network security arising
from the DUT/SUT SHOULD be identical in the lab and in production
networks.
Thanks to Sarah Banks, Aamer Akhter, Steve Maxwell, and Scott Bradner
for their reviews and comments. Ilya Varlashkin suggested the
run&nbhy;length encoding approach
in .
Test Methodology Journal: IMIX (Internet Mix) Journal
Spirent
Testing PPPoX and L2TP Broadband Access Devices
IXIA
The Journal of Internet Test Methodologies
Agilent
Discussion on IMIX
IETF Benchmarking Methodology Working Group
Gigabit Ethernet Jumbo Frames, and why you should care
The Ethernet CRC limits packets to about 12 kBytes. (NOT)