RFC 6985
IMIX Genome: Specification of Variable Packet Sizes for Additional Testing
RFC 6985: IMIX Genome: Specification of Variable Packet Sizes for Additional Testing π
Author: A. Morton (AT&T Labs) Category: Informational π Date: July 2013 π ISSN: 2070-1721 Obsoletes / Updates: nothing listed, so this one doesn't replace or change any earlier RFC π
Abstract β¨
Okay so benchmarking has always been all about constant packet sizes, bestie. The goal is to figure out what a network device can actually handle π. Fixed-size tests show off the device's raw capabilities, but real life is messy and mixes sizes all the time, so people sometimes run tests with a mix of packet sizes, which is called an "IMIX" ("Internet Mix") π. The right mix is super variable and depends on a ton of stuff, so an IMIX that's perfect for one device might be totally wrong for another π. But if the mix is already known, the tester might be asked to add it on top of the fixed-size tests. To cover that need, and the forever goal of repeatable test conditions, this doc shows how to write down the exact repeating sequence of packet sizes, using the usual fixed sizes or other mixed-size formats π.
Status of This Memo π
This document is not an Internet Standards Track specification. It's published for information only π.
It's a product of the Internet Engineering Task Force (IETF), so it reflects what the IETF community agreed on. It got public review and was approved for publication by the Internet Engineering Steering Group (IESG). Not everything the IESG approves can become any level of Internet Standard, see Section 2 of RFC 5741 π§.
For the current status, any errata, and how to give feedback, check http://www.rfc-editor.org/info/rfc6985 π.
Copyright Notice Β©οΈ
Copyright (c) 2013 IETF Trust and the persons identified as the document authors. All rights reserved π.
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) as they were in effect on the publication date. Please read these carefully, because they spell out your rights and restrictions for this document π. Code Components pulled out of this document must include Simplified BSD License text, as described in Section 4.e of the Trust Legal Provisions, and they come without warranty, as described in the Simplified BSD License βοΈ.
Table of Contents ποΈ
1. Introduction ....................................................2
2. Requirements Language ...........................................3
3. Scope and Goals .................................................3
4. Specification of the IMIX Genome ................................4
5. Specification of a Custom IMIX ..................................6
6. Reporting Long or Pseudorandom Packet Sequences .................7
6.1. Run-Length Encoding ........................................7
6.2. Table of Proportions .......................................7
6.3. Deterministic Algorithm ....................................7
6.4. Pseudorandom Length Algorithm ..............................8
6.5. Pseudorandom Sequence Algorithm ............................8
7. Security Considerations .........................................8
8. Acknowledgements ................................................8
9. References ......................................................9
9.1. Normative References .......................................9
9.2. Informative References .....................................9
1. Introduction π
This memo is all about a way to pin down, without any wiggle room, the exact sequence of packet sizes used in a load test π―.
Benchmarking methodologies [RFC2544] have always leaned on constant packet sizes, so we know what a network device can do. The smallest size stresses header processing, and the largest size stresses the overall bit-processing capacity. Sizes in between can show where the device switches from one of those limits to the other πͺ.
Constant-size streams are very different from what happens in real deployments, so people also run extra tests with a mix of packet sizes. The set of sizes they use is often called an Internet Mix, or "IMIX" [Spirent] [IXIA] [Agilent] πΈ.
The mix of sizes a networking device sees is super variable and depends on lots of factors. An IMIX that fits one device and deployment won't fit another π. Still, the mix might be known, and the tester might be asked to add it on top of the fixed-size tests. The references above cover the original studies and their methods. You can use similar methods to find new size mixes on a link or network π. Also, the architecture for IP Flow Information Export [RFC5470] is one way to gather packet-size info on private networks π΅οΈββοΈ.
To cover that need, and the eternal goal of repeatable test conditions, this memo proposes a way to specify the exact repeating sequence of packet sizes from the usual set of fixed sizes, called the IMIX Genome π§¬. Other, less exact ways of specifying sizes are also recommended for super complicated or custom mixes π¨. We use the word "genome" because if this info is known, the whole test packet-size sequence can be copied, just like biological information is needed for biological replication π§ͺ.
This memo admits that nobody can prove, in every possible situation, that the packet-size sequence doesn't affect the test result. So a standard way to specify the sequence is valuable π .
2. Requirements Language π
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 [RFC2119] π«Ά.
3. Scope and Goals π
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 lets an exact sequence of packet sizes be shared as a single-line name. That fixes the current confusion with results that just say "IMIX" π΅βπ«. This matters a LOT, because nobody has shown they can extrapolate results from one IMIX to another, and definitely not to other circumstances, even when the mix only changes a little bit π ββοΈ.
Documenting the exact sequence is ideal, but this memo also covers cases where the sequence is very long or might be generated by a pseudorandom process π².
It is a colossal non-goal to standardize one or more versions of the IMIX π . This topic has come up many times on the BMWG mailing list [IMIXonList]. The goal is to allow customization with minimal constraints while encouraging repeatable testing once the fixed-size testing is done β¨. So the requirements in this specification, written with [RFC2119] terms, are meant for people doing or reporting laboratory tests, to improve clarity and repeatability π§ͺπ.
4. Specification of the IMIX Genome π§¬
The IMIX Genome uses this format:
IMIX - 123456...x
Each number gets replaced by the letter for the size of the packet at that spot in the sequence π€. The table below gives the letter codes for the [RFC2544] standard sizes (64, 128, 256, 512, 1024, 1280, and 1518 bytes) and the "jumbo" sizes (2112, 9000, and 16000 bytes). Heads up: the 4-octet Ethernet frame check sequence may fail to detect bit errors in the larger jumbo frames [Jumbo1] [Jumbo2] π.
+--------------+--------------------+
| 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 written as:
IMIX - aaafg
If z (MTU) is used, the tester MUST specify the length of the MTU in the report π. This is non-negotiable, bestie π«Ά.
This approach is flexible, but it does come with a few limits π₯Ί:
- Packet sizes that RFC 2544 doesn't define have to be approximated using the sizes in the table.
- The genome for very long sequences can become impossible for humans to decode π« .
When you use the IMIX Genome, there are some questions testers must ask and answer π§:
- 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 gets expressed in this general form:
+-------------------+------------------------+---------------------+
| Source Address + | Destination Address + | Corresponding IMIX |
| Port AND/OR Blade | Port AND/OR Blade | |
+-------------------+------------------------+---------------------+
| x.x.x.x Blade2 | y.y.y.y Blade3 | IMIX - aaafg |
+-------------------+------------------------+---------------------+
Testers can specify the IMIX used between any two entities in the test architecture. (Blade is a component in a multi-component device chassis π₯οΈ.)
to be continued in part 2, bestie π¦π
5. Specification of a Custom IMIX β¨
okay so this section is about making your own IMIX π when the standard packet sizes just aren't cutting it, bestie. π
The custom IMIX gets written out in this format:
CUSTOM IMIX - 123456...x
Each number gets swapped for the letter that matches the size of the packet in that spot in the sequence. π¦ And the tester MUST fill in the table below, giving a letter code for every size they use. Where it says three lowercase letters, you put in the actual 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 |
+--------------+--------------------+
Here's an example so it clicks π§. Say you've got a five-packet sequence with sizes aaa=64, aaa=64, aaa=64, ggg=1020, ggg=1020. That gets written as:
CUSTOM IMIX - AAAGG
6. Reporting Long or Pseudorandom Packet Sequences π
okay so sometimes the IMIX Genome just can't be used, like when the sequence is so long that writing it out would be totally unmanageable π. When that happens there are five options, and we're going through them in the subsections below. π
6.1. Run-Length Encoding π
When a sequence can be broken down into a bunch of short repeating sequences, a run-length encoding approach MAY be specified, like in the table below (using the single lowercase Genome Codes from Section 4). β¨
+------------------------------+----------------------+
| Count of Repeating Sequences | Packet-Size Sequence |
+------------------------------+----------------------+
| 20 | abcd |
| 5 | ggga |
| 10 | dcba |
+------------------------------+----------------------+
The run-length encoding approach also works for the custom IMIX from Section 5, except you'd use the single uppercase letter Genome Codes instead. π
6.2. Table of Proportions π¦
When the sequence is meant to vary within some proportional limits, a table that just gives the proportion 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 |
+-----------+---------------------+---------------------------+
Heads up that the table of proportions also lets you use non-standard packet sizes π, but you give up the short genome spec and the ability to pin down the exact sequence. It's a trade-off, bestie.
6.3. Deterministic Algorithm π₯
If a deterministic packet-size generation method is used (like a steady increase by 1 octet from a start value up to the MTU), then the generation algorithm SHOULD be reported. π
6.4. Pseudorandom Length Algorithm πΈ
If a pseudorandom length generation capability is used, then the generation algorithm SHOULD be reported along with the results and the seed value that was used. π§ We also see the opportunity to randomize inter-packet spacing from a test sender as well as the size, and both the spacing and length pseudorandom generation algorithms and seeds SHOULD be reported when used. π
6.5. Pseudorandom Sequence Algorithm π
And last but not least, there's one more possibility β¨: a pseudorandom sequence generates an index into the table of packet lengths, and the generation algorithm SHOULD be reported with the results, along with the seed value if used. π
7. Security Considerations π
This part is seriously important, so pay attention π
Benchmarking activities described in this memo are limited to technology characterization using controlled stimuli in a laboratory environment, with dedicated address space and other constraints [RFC2544]. π§ͺ
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. π«Ά
8. Acknowledgements π
Thanks to Sarah Banks, Aamer Akhter, Steve Maxwell, and Scott Bradner for their reviews and comments. π Ilya Varlashkin suggested the run-length encoding approach in Section 6.1. π
9. References π
9.1. Normative References π
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC2544] Bradner, S. and J. McQuaid, "Benchmarking Methodology for
Network Interconnect Devices", RFC 2544, March 1999.
9.2. Informative References π¦
[Agilent] Agilent, "The Journal of Internet Test Methodologies",
September 2007, <http://www.ixiacom.com/pdfs/test_plans/
agilent_journal_of_internet_test_methodologies.pdf>.
[IMIXonList]
IETF Benchmarking Methodology Working Group, "Discussion
on IMIX", October 2003, <http://www.ietf.org/mail-archive/
web/bmwg/current/msg00691.html>.
[IXIA] IXIA, "Testing PPPoX and L2TP Broadband Access Devices",
2004, <http://www.ixiacom.com/library/test_plans/
display?skey=testing_pppox>.
[Jumbo1] Dykstra, P., "Gigabit Ethernet Jumbo Frames, and why you
should care", WareOnEarth Communications, Inc., December
1999, <http://sd.wareonearth.com/~phil/jumbo.html>.
[Jumbo2] Mathis, M., "The Ethernet CRC limits packets to about
12 kBytes. (NOT)", Pittsburgh Supercomputing Center,
April 2003,
<http://staff.psc.edu/mathis/MTU/arguments.html#crc>.
[RFC5470] Sadasivan, G., Brownlee, N., Claise, B., and J. Quittek,
"Architecture for IP Flow Information Export", RFC 5470,
March 2009.
[Spirent] Spirent, "Test Methodology Journal: IMIX (Internet Mix)
Journal", January 2006, <http://gospirent.com/whitepaper/
IMIX%20Test%20Methodolgy%20Journal.pdf>.
Author's Address π
Al Morton
AT&T Labs
200 Laurel Avenue South
Middletown, NJ 07748
USA
Phone: +1 732 420 1571
Fax: +1 732 368 1192
EMail: acmorton@att.com
URI: http://home.comcast.net/~acmacm/
π¦ where this page comes from
- ietf: rfc6985 2013-07
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms