rfc9411.original | rfc9411.txt | |||
---|---|---|---|---|
Benchmarking Methodology Working Group B. Balarajah | Internet Engineering Task Force (IETF) B. Balarajah | |||
Internet-Draft | Request for Comments: 9411 | |||
Obsoletes: 3511 (if approved) C. Rossenhoevel | Obsoletes: 3511 C. Rossenhoevel | |||
Intended status: Informational EANTC AG | Category: Informational EANTC AG | |||
Expires: 25 April 2023 B. Monkman | ISSN: 2070-1721 B. Monkman | |||
NetSecOPEN | NetSecOPEN | |||
22 October 2022 | March 2023 | |||
Benchmarking Methodology for Network Security Device Performance | Benchmarking Methodology for Network Security Device Performance | |||
draft-ietf-bmwg-ngfw-performance-15 | ||||
Abstract | Abstract | |||
This document provides benchmarking terminology and methodology for | This document provides benchmarking terminology and methodology for | |||
next-generation network security devices including next-generation | next-generation network security devices, including next-generation | |||
firewalls (NGFW) and next-generation intrusion prevention systems | firewalls (NGFWs) and next-generation intrusion prevention systems | |||
(NGIPS). The main areas covered in this document are test | (NGIPSs). The main areas covered in this document are test | |||
terminology, test configuration parameters, and benchmarking | terminology, test configuration parameters, and benchmarking | |||
methodology for NGFW and NGIPS. (It is assumed that readers have a | methodology for NGFWs and NGIPSs. (It is assumed that readers have a | |||
working knowledge of these devices and the security functionality | working knowledge of these devices and the security functionality | |||
they contain.) This document aims to improve the applicability, | they contain.) This document aims to improve the applicability, | |||
reproducibility, and transparency of benchmarks and to align the test | reproducibility, and transparency of benchmarks and to align the test | |||
methodology with today's increasingly complex layer 7 security- | methodology with today's increasingly complex layer 7 security- | |||
centric network application use cases. As a result, this document | centric network application use cases. As a result, this document | |||
makes RFC3511 obsolete. | makes RFC 3511 obsolete. | |||
Status of This Memo | Status of This Memo | |||
This Internet-Draft is submitted in full conformance with the | This document is not an Internet Standards Track specification; it is | |||
provisions of BCP 78 and BCP 79. | published for informational purposes. | |||
Internet-Drafts are working documents of the Internet Engineering | ||||
Task Force (IETF). Note that other groups may also distribute | ||||
working documents as Internet-Drafts. The list of current Internet- | ||||
Drafts is at https://datatracker.ietf.org/drafts/current/. | ||||
Internet-Drafts are draft documents valid for a maximum of six months | This document is a product of the Internet Engineering Task Force | |||
and may be updated, replaced, or obsoleted by other documents at any | (IETF). It represents the consensus of the IETF community. It has | |||
time. It is inappropriate to use Internet-Drafts as reference | received public review and has been approved for publication by the | |||
material or to cite them other than as "work in progress." | Internet Engineering Steering Group (IESG). Not all documents | |||
approved by the IESG are candidates for any level of Internet | ||||
Standard; see Section 2 of RFC 7841. | ||||
This Internet-Draft will expire on 25 April 2023. | Information about the current status of this document, any errata, | |||
and how to provide feedback on it may be obtained at | ||||
https://www.rfc-editor.org/info/rfc9411. | ||||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2022 IETF Trust and the persons identified as the | Copyright (c) 2023 IETF Trust and the persons identified as the | |||
document authors. All rights reserved. | document authors. All rights reserved. | |||
This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
Provisions Relating to IETF Documents (https://trustee.ietf.org/ | Provisions Relating to IETF Documents | |||
license-info) in effect on the date of publication of this document. | (https://trustee.ietf.org/license-info) in effect on the date of | |||
Please review these documents carefully, as they describe your rights | publication of this document. Please review these documents | |||
and restrictions with respect to this document. Code Components | carefully, as they describe your rights and restrictions with respect | |||
extracted from this document must include Revised BSD License text as | to this document. Code Components extracted from this document must | |||
described in Section 4.e of the Trust Legal Provisions and are | include Revised BSD License text as described in Section 4.e of the | |||
provided without warranty as described in the Revised BSD License. | Trust Legal Provisions and are provided without warranty as described | |||
in the Revised BSD License. | ||||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 4 | 1. Introduction | |||
2. Requirements . . . . . . . . . . . . . . . . . . . . . . . . 4 | 2. Requirements Language | |||
3. Scope . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 | 3. Scope | |||
4. Test Setup . . . . . . . . . . . . . . . . . . . . . . . . . 5 | 4. Test Setup | |||
4.1. Testbed Configuration . . . . . . . . . . . . . . . . . . 5 | 4.1. Testbed Configuration | |||
4.2. DUT/SUT Configuration . . . . . . . . . . . . . . . . . . 6 | 4.2. DUT/SUT Configuration | |||
4.2.1. Security Effectiveness Configuration . . . . . . . . 12 | 4.2.1. Security Effectiveness Configuration | |||
4.3. Test Equipment Configuration . . . . . . . . . . . . . . 12 | 4.3. Test Equipment Configuration | |||
4.3.1. Client Configuration . . . . . . . . . . . . . . . . 13 | 4.3.1. Client Configuration | |||
4.3.2. Backend Server Configuration . . . . . . . . . . . . 17 | 4.3.2. Backend Server Configuration | |||
4.3.3. Traffic Flow Definition . . . . . . . . . . . . . . . 18 | 4.3.3. Traffic Flow Definition | |||
4.3.4. Traffic Load Profile . . . . . . . . . . . . . . . . 19 | 4.3.4. Traffic Load Profile | |||
5. Testbed Considerations . . . . . . . . . . . . . . . . . . . 20 | 5. Testbed Considerations | |||
6. Reporting . . . . . . . . . . . . . . . . . . . . . . . . . . 21 | 6. Reporting | |||
6.1. Introduction . . . . . . . . . . . . . . . . . . . . . . 21 | 6.1. Introduction | |||
6.2. Detailed Test Results . . . . . . . . . . . . . . . . . . 23 | 6.2. Detailed Test Results | |||
6.3. Benchmarks and Key Performance Indicators . . . . . . . . 23 | 6.3. Benchmarks and Key Performance Indicators | |||
7. Benchmarking Tests . . . . . . . . . . . . . . . . . . . . . 25 | 7. Benchmarking Tests | |||
7.1. Throughput Performance with Application Traffic Mix . . . 25 | 7.1. Throughput Performance with Application Traffic Mix | |||
7.1.1. Objective . . . . . . . . . . . . . . . . . . . . . . 25 | 7.1.1. Objective | |||
7.1.2. Test Setup . . . . . . . . . . . . . . . . . . . . . 26 | 7.1.2. Test Setup | |||
7.1.3. Test Parameters . . . . . . . . . . . . . . . . . . . 26 | 7.1.3. Test Parameters | |||
7.1.4. Test Procedures and Expected Results . . . . . . . . 28 | 7.1.4. Test Procedures and Expected Results | |||
7.2. TCP/HTTP Connections Per Second . . . . . . . . . . . . . 29 | 7.2. TCP Connections Per Second with HTTP Traffic | |||
7.2.1. Objective . . . . . . . . . . . . . . . . . . . . . . 29 | 7.2.1. Objective | |||
7.2.2. Test Setup . . . . . . . . . . . . . . . . . . . . . 29 | 7.2.2. Test Setup | |||
7.2.3. Test Parameters . . . . . . . . . . . . . . . . . . . 29 | 7.2.3. Test Parameters | |||
7.2.4. Test Procedures and Expected Results . . . . . . . . 31 | 7.2.4. Test Procedures and Expected Results | |||
7.3. HTTP Throughput . . . . . . . . . . . . . . . . . . . . . 32 | 7.3. HTTP Throughput | |||
7.3.1. Objective . . . . . . . . . . . . . . . . . . . . . . 32 | 7.3.1. Objective | |||
7.3.2. Test Setup . . . . . . . . . . . . . . . . . . . . . 32 | 7.3.2. Test Setup | |||
7.3.3. Test Parameters . . . . . . . . . . . . . . . . . . . 32 | 7.3.3. Test Parameters | |||
7.3.4. Test Procedures and Expected Results . . . . . . . . 35 | 7.3.4. Test Procedures and Expected Results | |||
7.4. HTTP Transaction Latency . . . . . . . . . . . . . . . . 36 | 7.4. HTTP Transaction Latency | |||
7.4.1. Objective . . . . . . . . . . . . . . . . . . . . . . 36 | 7.4.1. Objective | |||
7.4.2. Test Setup . . . . . . . . . . . . . . . . . . . . . 36 | 7.4.2. Test Setup | |||
7.4.3. Test Parameters . . . . . . . . . . . . . . . . . . . 36 | 7.4.3. Test Parameters | |||
7.4.4. Test Procedures and Expected Results . . . . . . . . 38 | 7.4.4. Test Procedures and Expected Results | |||
7.5. Concurrent TCP/HTTP Connection Capacity . . . . . . . . . 39 | 7.5. Concurrent TCP Connection Capacity with HTTP Traffic | |||
7.5.1. Objective . . . . . . . . . . . . . . . . . . . . . . 39 | 7.5.1. Objective | |||
7.5.2. Test Setup . . . . . . . . . . . . . . . . . . . . . 39 | 7.5.2. Test Setup | |||
7.5.3. Test Parameters . . . . . . . . . . . . . . . . . . . 39 | 7.5.3. Test Parameters | |||
7.5.4. Test Procedures and Expected Results . . . . . . . . 41 | 7.5.4. Test Procedures and Expected Results | |||
7.6. TCP/QUIC Connections per Second with HTTPS Traffic . . . 42 | 7.6. TCP or QUIC Connections per Second with HTTPS Traffic | |||
7.6.1. Objective . . . . . . . . . . . . . . . . . . . . . . 43 | 7.6.1. Objective | |||
7.6.2. Test Setup . . . . . . . . . . . . . . . . . . . . . 43 | 7.6.2. Test Setup | |||
7.6.3. Test Parameters . . . . . . . . . . . . . . . . . . . 43 | 7.6.3. Test Parameters | |||
7.6.4. Test Procedures and Expected Results . . . . . . . . 45 | 7.6.4. Test Procedures and Expected Results | |||
7.7. HTTPS Throughput . . . . . . . . . . . . . . . . . . . . 46 | 7.7. HTTPS Throughput | |||
7.7.1. Objective . . . . . . . . . . . . . . . . . . . . . . 46 | 7.7.1. Objective | |||
7.7.2. Test Setup . . . . . . . . . . . . . . . . . . . . . 46 | 7.7.2. Test Setup | |||
7.7.3. Test Parameters . . . . . . . . . . . . . . . . . . . 46 | 7.7.3. Test Parameters | |||
7.7.4. Test Procedures and Expected Results . . . . . . . . 48 | 7.7.4. Test Procedures and Expected Results | |||
7.8. HTTPS Transaction Latency . . . . . . . . . . . . . . . . 49 | 7.8. HTTPS Transaction Latency | |||
7.8.1. Objective . . . . . . . . . . . . . . . . . . . . . . 49 | 7.8.1. Objective | |||
7.8.2. Test Setup . . . . . . . . . . . . . . . . . . . . . 49 | 7.8.2. Test Setup | |||
7.8.3. Test Parameters . . . . . . . . . . . . . . . . . . . 49 | 7.8.3. Test Parameters | |||
7.8.4. Test Procedures and Expected Results . . . . . . . . 51 | 7.8.4. Test Procedures and Expected Results | |||
7.9. Concurrent TCP/QUIC Connection Capacity with HTTPS | 7.9. Concurrent TCP or QUIC Connection Capacity with HTTPS | |||
Traffic . . . . . . . . . . . . . . . . . . . . . . . . . 52 | Traffic | |||
7.9.1. Objective . . . . . . . . . . . . . . . . . . . . . . 52 | 7.9.1. Objective | |||
7.9.2. Test Setup . . . . . . . . . . . . . . . . . . . . . 52 | 7.9.2. Test Setup | |||
7.9.3. Test Parameters . . . . . . . . . . . . . . . . . . . 53 | 7.9.3. Test Parameters | |||
7.9.4. Test Procedures and Expected Results . . . . . . . . 55 | 7.9.4. Test Procedures and Expected Results | |||
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 56 | 8. IANA Considerations | |||
9. Security Considerations . . . . . . . . . . . . . . . . . . . 56 | 9. Security Considerations | |||
10. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 57 | 10. References | |||
11. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 57 | 10.1. Normative References | |||
12. References . . . . . . . . . . . . . . . . . . . . . . . . . 57 | 10.2. Informative References | |||
12.1. Normative References . . . . . . . . . . . . . . . . . . 57 | Appendix A. Test Methodology - Security Effectiveness Evaluation | |||
12.2. Informative References . . . . . . . . . . . . . . . . . 57 | A.1. Test Objective | |||
Appendix A. Test Methodology - Security Effectiveness | A.2. Testbed Setup | |||
Evaluation . . . . . . . . . . . . . . . . . . . . . . . 59 | A.3. Test Parameters | |||
A.1. Test Objective . . . . . . . . . . . . . . . . . . . . . 59 | A.3.1. DUT/SUT Configuration Parameters | |||
A.2. Testbed Setup . . . . . . . . . . . . . . . . . . . . . . 60 | A.3.2. Test Equipment Configuration Parameters | |||
A.3. Test Parameters . . . . . . . . . . . . . . . . . . . . . 60 | A.4. Test Results Validation Criteria | |||
A.3.1. DUT/SUT Configuration Parameters . . . . . . . . . . 60 | A.5. Measurement | |||
A.3.2. Test Equipment Configuration Parameters . . . . . . . 60 | A.6. Test Procedures and Expected Results | |||
A.4. Test Results Validation Criteria . . . . . . . . . . . . 60 | A.6.1. Step 1: Background Traffic | |||
A.5. Measurement . . . . . . . . . . . . . . . . . . . . . . . 61 | A.6.2. Step 2: CVE Emulation | |||
A.6. Test Procedures and Expected Results . . . . . . . . . . 62 | Appendix B. DUT/SUT Classification | |||
A.6.1. Step 1: Background Traffic . . . . . . . . . . . . . 62 | Acknowledgements | |||
A.6.2. Step 2: CVE Emulation . . . . . . . . . . . . . . . . 62 | Contributors | |||
Appendix B. DUT/SUT Classification . . . . . . . . . . . . . . . 63 | Authors' Addresses | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 63 | ||||
1. Introduction | 1. Introduction | |||
18 years have passed since IETF initially recommended test | It has been 18 years since the IETF initially recommended test | |||
methodology and terminology for firewalls ([RFC3511]). Firewalls | methodology and terminology for firewalls [RFC3511]. Firewalls have | |||
have evolved significantly from the days of simple ACL filters. As | evolved significantly from the days of simple access control list | |||
the underlying technology progresses and improves, recommending test | (ACL) filters. As the underlying technology progresses and improves, | |||
methodology and terminology for firewalls, requirements, and | recommending test methodology and terminology for firewalls, | |||
expectations for network security elements has increased | requirements, and expectations for network security elements has | |||
tremendously. Security function implementations have evolved and | increased tremendously. Security function implementations have | |||
diversified into intrusion detection and prevention, threat | evolved and diversified into intrusion detection and prevention, | |||
management, analysis of encrypted traffic, and more. In an industry | threat management, analysis of encrypted traffic, and more. In an | |||
of growing importance, well-defined and reproducible key performance | industry of growing importance, well-defined and reproducible key | |||
indicators (KPIs) are increasingly needed to enable fair and | performance indicators (KPIs) are increasingly needed to enable fair | |||
reasonable comparison of network security functions. These reasons | and reasonable comparisons of network security functions. These | |||
led to the creation of a new next-generation network security device | reasons led to the creation of a new next-generation network security | |||
benchmarking document, which makes [RFC3511] obsolete. Measurement | device benchmarking document, which makes [RFC3511] obsolete. The | |||
of performance for processing of IP fragmented traffic (see | measurement of performance for processing IP-fragmented traffic (see | |||
Section 5.9 of [RFC3511]) was not included in this document since IP | Section 5.9 of [RFC3511])is not included in this document since IP | |||
fragmentation does today not commonly occur in traffic anymore, | fragmentation does not commonly occur in traffic anymore, unlike how | |||
unlike it might have been at the time when [RFC3511] was written. It | it might have at the time when [RFC3511] was written. It should also | |||
should also be noted that [RFC2647] retains significant value and has | be noted that [RFC2647] retains significant value and was consulted | |||
been consulted frequently while creating this document. | frequently while creating this document. | |||
For a more detailed explanation of what an NGFW is see the Wikipedia | For a more detailed explanation of what an NGFW is, see the Wikipedia | |||
article [Wiki-NGFW]. | article [Wiki-NGFW]. | |||
2. Requirements | 2. Requirements Language | |||
The keywords "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | |||
"OPTIONAL" in this document are to be interpreted as described in BCP | "OPTIONAL" in this document are to be interpreted as described in | |||
14 [RFC2119], [RFC8174] when, and only when, they appear in all | BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all | |||
capitals, as shown here. | capitals, as shown here. | |||
3. Scope | 3. Scope | |||
This document provides testing terminology and testing methodology | This document provides testing terminology and testing methodology | |||
for modern and next-generation network security devices that are | for modern and next-generation network security devices that are | |||
configured in Active ("Inline", see Figure 1 and Figure 2) mode. It | configured in Active ("Inline", see Figures 1 and 2) mode. It covers | |||
covers the validation of security effectiveness configurations of | the validation of security effectiveness configurations of network | |||
network security devices, followed by performance benchmark testing. | security devices, followed by performance benchmark testing. This | |||
This document focuses on advanced, realistic, and reproducible | document focuses on advanced, realistic, and reproducible testing | |||
testing methods. Additionally, it describes testbed environments, | methods. Additionally, it describes testbed environments, test tool | |||
test tool requirements, and test result formats. | requirements, and test result formats. | |||
The performance testing methodology described in this document is not | The performance testing methodology described in this document is not | |||
intended for security devices/systems that rely on machine learning | intended for security devices or systems that rely on machine | |||
or behavioral analysis. If such features are present in a Device | learning or behavioral analysis. If such features are present in a | |||
Under Test/System Under Test (DUT/SUT), they should be disabled. | Device Under Test / System Under Test (DUT/SUT), they should be | |||
disabled. | ||||
4. Test Setup | 4. Test Setup | |||
The test setup defined in this document applies to all benchmarking | The test setup defined in this document applies to all benchmarking | |||
tests described in Section 7. The test setup MUST be contained | tests described in Section 7. The test setup MUST be contained | |||
within an Isolated Test Environment (see Section 3 of [RFC6815]). | within an isolated test environment (see Section 3 of [RFC6815]). | |||
4.1. Testbed Configuration | 4.1. Testbed Configuration | |||
Testbed configuration MUST ensure that any performance implications | Testbed configuration MUST ensure that any performance implications | |||
that are discovered during the benchmark testing aren't due to the | that are discovered during the benchmark testing aren't due to the | |||
inherent physical network limitations such as the number of physical | inherent physical network limitations, such as the number of physical | |||
links and forwarding performance capabilities (throughput and | links and forwarding performance capabilities (throughput and | |||
latency) of the network devices in the testbed. For this reason, | latency) of the network devices in the testbed. For this reason, | |||
this document recommends avoiding external devices such as switches | this document recommends avoiding external devices, such as switches | |||
and routers in the testbed wherever possible. | and routers, in the testbed wherever possible. | |||
In some deployment scenarios, the network security devices (DUT/SUT) | In some deployment scenarios, the network security devices (DUT/SUT) | |||
are connected to routers and switches, which will reduce the number | are connected to routers and switches, which will reduce the number | |||
of entries in MAC or ARP/ND (Address Resolution Protocol/ Neighbor | of entries in MAC (Media Access Control) or Address Resolution | |||
Discovery) tables of the DUT/SUT. If MAC or ARP/ND tables have many | Protocol / Neighbor Discovery (ARP/ND) tables of the DUT/SUT. If MAC | |||
entries, this may impact the actual DUT/SUT performance due to MAC | or ARP/ND tables have many entries, this may impact the actual DUT/ | |||
and ARP/ND table lookup processes. This document also recommends | SUT performance due to MAC and ARP/ND table lookup processes. This | |||
using test equipment with the capability of emulating layer 3 routing | document also recommends using test equipment with the capability of | |||
functionality instead of adding external routers in the testbed. | emulating layer 3 routing functionality instead of adding external | |||
routers in the testbed. | ||||
The testbed setup Option 1 (Figure 1) is the RECOMMENDED testbed | The testbed setup for Option 1 (Figure 1) is the RECOMMENDED testbed | |||
setup for the benchmarking test. | setup for the benchmarking test. | |||
+-----------------------+ +-----------------------+ | +-----------------------+ +-----------------------+ | |||
| +-------------------+ | +-----------+ | +-------------------+ | | | +-------------------+ | +-----------+ | +-------------------+ | | |||
| | Emulated Router(s)| | | | | | Emulated Router(s)| | | | | Emulated Router(s)| | | | | | Emulated Router(s)| | | |||
| | (Optional) | +----- DUT/SUT +-----+ (Optional) | | | | | (Optional) | +----- DUT/SUT +-----+ (Optional) | | | |||
| +-------------------+ | | | | +-------------------+ | | | +-------------------+ | | | | +-------------------+ | | |||
| +-------------------+ | +-----------+ | +-------------------+ | | | +-------------------+ | +-----------+ | +-------------------+ | | |||
| | Clients | | | | Servers | | | | | Clients | | | | Servers | | | |||
| +-------------------+ | | +-------------------+ | | | +-------------------+ | | +-------------------+ | | |||
| | | | | | | | | | |||
| Test Equipment | | Test Equipment | | | Test Equipment | | Test Equipment | | |||
+-----------------------+ +-----------------------+ | +-----------------------+ +-----------------------+ | |||
Figure 1: Testbed Setup - Option 1 | Figure 1: Testbed Setup - Option 1 | |||
If the test equipment used is not capable of emulating OSI layer 3 | If the test equipment used is not capable of emulating OSI layer 3 | |||
routing functionality or if the number of used ports is mismatched | routing functionality or if the number of used ports is mismatched | |||
between the test equipment and the DUT/SUT (need for test equipment | between the test equipment and the DUT/SUT (which is needed for test | |||
port aggregation), the test setup can be configured as shown in | equipment port aggregation), the test setup can be configured as | |||
Figure 2. | shown in Figure 2. | |||
+-------------------+ +-----------+ +--------------------+ | +-------------------+ +-----------+ +--------------------+ | |||
|Aggregation Switch/| | | | Aggregation Switch/| | |Aggregation Switch/| | | | Aggregation Switch/| | |||
| Router +------+ DUT/SUT +------+ Router | | | Router +------+ DUT/SUT +------+ Router | | |||
| | | | | | | | | | | | | | |||
+----------+--------+ +-----------+ +--------+-----------+ | +----------+--------+ +-----------+ +--------+-----------+ | |||
| | | | | | |||
| | | | | | |||
+-----------+-----------+ +-----------+-----------+ | +-----------+-----------+ +-----------+-----------+ | |||
| | | | | | | | | | |||
skipping to change at page 7, line 5 ¶ | skipping to change at line 277 ¶ | |||
4.2. DUT/SUT Configuration | 4.2. DUT/SUT Configuration | |||
The same DUT/SUT configuration MUST be used for all benchmarking | The same DUT/SUT configuration MUST be used for all benchmarking | |||
tests described in Section 7. Since each DUT/SUT will have its own | tests described in Section 7. Since each DUT/SUT will have its own | |||
unique configuration, users MUST configure their devices with the | unique configuration, users MUST configure their devices with the | |||
same parameters and security features that would be used in the | same parameters and security features that would be used in the | |||
actual deployment of the device or a typical deployment. The DUT/SUT | actual deployment of the device or a typical deployment. The DUT/SUT | |||
MUST be configured in "Inline" mode so that the traffic is actively | MUST be configured in "Inline" mode so that the traffic is actively | |||
inspected by the DUT/SUT. | inspected by the DUT/SUT. | |||
Table 2 and Table 3 below describe the RECOMMENDED and OPTIONAL sets | Tables 2 and 3 below describe the RECOMMENDED and OPTIONAL sets of | |||
of network security features for NGFW and NGIPS, respectively. If | network security features for NGFWs and NGIPSs, respectively. If the | |||
the recommended security features are not enabled in the DUT/SUT for | recommended security features are not enabled in the DUT/SUT for any | |||
any reason, the reason MUST be reported with the benchmarking test | reason, the reason MUST be reported with the benchmarking test | |||
results. For example, one reason for not enabling the anti-virus | results. For example, one reason for not enabling the anti-virus | |||
feature in NGFW may be that this security feature was not required | feature in an NGFW may be that this security feature was not required | |||
for a particular customer deployment scenario. It MUST be also noted | for a particular customer deployment scenario. It MUST be also noted | |||
in the benchmarking test report that not enabling the specific | in the benchmarking test report that not enabling the specific | |||
recommended security features may impact the performance of the DUT/ | recommended security features may impact the performance of the DUT/ | |||
SUT. The selected security features MUST be consistently enabled on | SUT. The selected security features MUST be consistently enabled on | |||
the DUT/SUT for all benchmarking tests described in Section 7. | the DUT/SUT for all benchmarking tests described in Section 7. | |||
To improve repeatability, a summary of the DUT/SUT configuration | To improve repeatability, a summary of the DUT/SUT configuration, | |||
including a description of all enabled DUT/SUT features MUST be | including a description of all enabled DUT/SUT features, MUST be | |||
published with the benchmarking results. | published with the benchmarking results. | |||
The following table provides a brief description of the security | The following table provides a brief description of the security | |||
features and these are approximate taxonomies of features commonly | feature; these are approximate taxonomies of features commonly found | |||
found in currently deployed NGFW and NGIDS. The features provided by | in currently deployed NGFWs and NGIPSs. The features provided by | |||
specific implementations may be named differently and not necessarily | specific implementations may be named differently and not necessarily | |||
have configuration settings that align with the taxonomy. | have configuration settings that align with the taxonomy. | |||
+================+================================================+ | +================+==================================================+ | |||
| DUT/SUT | Description | | | DUT/SUT | Description | | |||
| Features | | | | Features | | | |||
+================+================================================+ | +================+==================================================+ | |||
| TLS Inspection | DUT/SUT intercepts and decrypts inbound HTTPS | | | TLS Inspection | The DUT/SUT intercepts and decrypts | | |||
| | traffic between servers and clients. Once the | | | | inbound HTTPS traffic between servers and | | |||
| | content inspection has been completed, DUT/SUT | | | | clients. Once the content inspection has | | |||
| | encrypts the HTTPS traffic with ciphers and | | | | been completed, the DUT/SUT encrypts the | | |||
| | keys used by the clients and servers. For | | | | HTTPS traffic with ciphers and keys used | | |||
| | TLS1.3, the DUT works as a middlebox (proxy) | | | | by the clients and servers. For TLS 1.3, | | |||
| | and it holds the certificates and Pre-Shared | | | | the DUT works as a middlebox (proxy) and | | |||
| | Keys (PSK) that are trusted by the client and | | | | holds the certificates and Pre-Shared Keys | | |||
| | represent the identity of the real server. | | | | (PSKs) that are trusted by the client and | | |||
+----------------+------------------------------------------------+ | | | represent the identity of the real server. | | |||
| IDS/IPS | DUT/SUT detects and blocks exploits targeting | | +----------------+--------------------------------------------------+ | |||
| | known and unknown vulnerabilities across the | | | IDS/IPS | The DUT/SUT detects and blocks exploits | | |||
| | monitored network. | | | | targeting known and unknown | | |||
+----------------+------------------------------------------------+ | | | vulnerabilities across the monitored | | |||
| Anti-Malware | DUT/SUT detects and prevents the transmission | | | | network. | | |||
| | of malicious executable code and any | | +----------------+--------------------------------------------------+ | |||
| | associated communications across the monitored | | | Anti-Malware | The DUT/SUT detects and prevents the | | |||
| | network. This includes data exfiltration as | | | | transmission of malicious executable code | | |||
| | well as command and control channels. | | | | and any associated communications across | | |||
+----------------+------------------------------------------------+ | | | the monitored network. This includes data | | |||
| Anti-Spyware | Anti-Spyware is a subcategory of Anti Malware. | | | | exfiltration as well as command and | | |||
| | Spyware transmits information without the | | | | control channels. | | |||
| | user's knowledge or permission. DUT/SUT | | +----------------+--------------------------------------------------+ | |||
| | detects and blocks initial infection or | | | Anti-Spyware | Anti-Spyware is a subcategory of Anti- | | |||
| | transmission of data. | | | | Malware. Spyware transmits information | | |||
+----------------+------------------------------------------------+ | | | without the user's knowledge or | | |||
| Anti-Botnet | DUT/SUT detects and blocks traffic to or from | | | | permission. The DUT/SUT detects and | | |||
| | botnets. | | | | blocks the initial infection or | | |||
+----------------+------------------------------------------------+ | | | transmission of data. | | |||
| Anti-Evasion | DUT/SUT detects and mitigates attacks that | | +----------------+--------------------------------------------------+ | |||
| | have been obfuscated in some manner. | | | Anti-Botnet | The DUT/SUT detects and blocks traffic to | | |||
+----------------+------------------------------------------------+ | | | or from botnets. | | |||
| Web Filtering | DUT/SUT detects and blocks malicious websites | | +----------------+--------------------------------------------------+ | |||
| | including defined classifications of websites | | | Anti-Evasion | The DUT/SUT detects and mitigates attacks | | |||
| | across the monitored network. | | | | that have been obfuscated in some manner. | | |||
+----------------+------------------------------------------------+ | +----------------+--------------------------------------------------+ | |||
| DLP | DUT/SUT detects and prevents data breaches and | | | Web Filtering | The DUT/SUT detects and blocks malicious | | |||
| | data exfiltration, or it detects and blocks | | | | websites, including defined | | |||
| | the transmission of sensitive data across the | | | | classifications of websites across the | | |||
| | monitored network. | | | | monitored network. | | |||
+----------------+------------------------------------------------+ | +----------------+--------------------------------------------------+ | |||
| Certificate | DUT/SUT validates certificates used in | | | Data Loss | The DUT/SUT detects and prevents data | | |||
| Validation | encrypted communications across the monitored | | | Protection | breaches and data exfiltration, or it | | |||
| | network. | | | (DLP) | detects and blocks the transmission of | | |||
+----------------+------------------------------------------------+ | | | sensitive data across the monitored | | |||
| Logging and | DUT/SUT logs and reports all traffic at the | | | | network. | | |||
| Reporting | flow level across the monitored network. | | +----------------+--------------------------------------------------+ | |||
+----------------+------------------------------------------------+ | | Certificate | The DUT/SUT validates certificates used in | | |||
| Application | DUT/SUT detects known applications as defined | | | Validation | encrypted communications across the | | |||
| Identification | within the traffic mix selected across the | | | | monitored network. | | |||
| | monitored network. | | +----------------+--------------------------------------------------+ | |||
+----------------+------------------------------------------------+ | | Logging and | The DUT/SUT logs and reports all traffic | | |||
| DPI | DUT/SUT inspects the content of the data | | | Reporting | at the flow level across the monitored | | |||
| | packet. | | | | network. | | |||
+----------------+------------------------------------------------+ | +----------------+--------------------------------------------------+ | |||
| Application | The DUT/SUT detects known applications as | | ||||
| Identification | defined within the traffic mix selected | | ||||
| | across the monitored network. | | ||||
+----------------+--------------------------------------------------+ | ||||
| Deep Packet | The DUT/SUT inspects the content of the | | ||||
| Inspection | data packet. | | ||||
| (DPI) | | | ||||
+----------------+--------------------------------------------------+ | ||||
Table 1: Security Feature Description | Table 1: Security Feature Description | |||
+============================+=============+==========+ | +============================+=============+==========+ | |||
| DUT/SUT (NGFW) Features | RECOMMENDED | OPTIONAL | | | DUT/SUT (NGFW) Features | RECOMMENDED | OPTIONAL | | |||
+============================+=============+==========+ | +============================+=============+==========+ | |||
| TLS Inspection | x | | | | TLS Inspection | x | | | |||
+----------------------------+-------------+----------+ | +----------------------------+-------------+----------+ | |||
| IDS/IPS | x | | | | IDS/IPS | x | | | |||
+----------------------------+-------------+----------+ | +----------------------------+-------------+----------+ | |||
skipping to change at page 10, line 10 ¶ | skipping to change at line 422 ¶ | |||
| Anti-Evasion | x | | | | Anti-Evasion | x | | | |||
+------------------------------+-------------+----------+ | +------------------------------+-------------+----------+ | |||
Table 3: NGIPS Security Features | Table 3: NGIPS Security Features | |||
Note: With respect to TLS Inspection, there are scenarios where it | Note: With respect to TLS Inspection, there are scenarios where it | |||
will be optional. | will be optional. | |||
Below is a summary of the DUT/SUT configuration: | Below is a summary of the DUT/SUT configuration: | |||
* DUT/SUT MUST be configured in "inline" mode. | * The DUT/SUT MUST be configured in "Inline" mode. | |||
* "Fail-Open" behavior MUST be disabled. | * "Fail-Open" behavior MUST be disabled. | |||
* All RECOMMENDED security features are enabled. | * All RECOMMENDED security features are enabled. | |||
* Logging and reporting MUST be enabled. DUT/SUT SHOULD log all | * Logging and reporting MUST be enabled. The DUT/SUT SHOULD log all | |||
traffic at the flow level (5-tuple). If the DUT/SUT is designed | traffic at the flow level (5-tuple). If the DUT/SUT is designed | |||
to log all traffic at different levels (e.g. IP packet levels), | to log all traffic at different levels (e.g., IP packet levels), | |||
it is acceptable to conduct tests. However, this MUST be noted in | it is acceptable to conduct tests. However, this MUST be noted in | |||
the test report. Logging to an external device is permissible. | the test report. Logging to an external device is permissible. | |||
* Geographical location filtering SHOULD be configured. If the DUT/ | * Geographical location filtering SHOULD be configured. If the DUT/ | |||
SUT is not designed to perform geographical location filtering, it | SUT is not designed to perform geographical location filtering, it | |||
is acceptable to conduct tests without this feature. However, | is acceptable to conduct tests without this feature. However, | |||
this MUST be noted in the test report. | this MUST be noted in the test report. | |||
* Application Identification and Control MUST be configured to | * Application Identification and Control MUST be configured to | |||
trigger applications from the defined traffic mix. | trigger applications from the defined traffic mix. | |||
In addition, a realistic number of access control rules (ACL) SHOULD | In addition, a realistic number of access control lists (ACLs) SHOULD | |||
be configured on the DUT/SUT where ACLs are configurable and | be configured on the DUT/SUT where ACLs are configurable and | |||
reasonable based on the deployment scenario. For example, it is | reasonable based on the deployment scenario. For example, it is | |||
acceptable not to configure ACLs in an NGIPS since NGIPS devices do | acceptable not to configure ACLs in an NGIPS since NGIPS devices do | |||
not require the use of ACLs in most deployment scenarios. This | not require the use of ACLs in most deployment scenarios. This | |||
document determines the number of access policy rules for four | document determines the number of access policy rules for four | |||
different classes of DUT/SUT: Extra Small (XS), Small (S), Medium | different classes of the DUT/SUT: Extra Small (XS), Small (S), Medium | |||
(M), and Large (L). A sample DUT/SUT classification is described in | (M), and Large (L). A sample DUT/SUT classification is described in | |||
Appendix B. | Appendix B. | |||
The Access Control Rules (ACL) defined in Figure 3 MUST be configured | The ACLs defined in Table 4 MUST be configured from top to bottom in | |||
from top to bottom in the correct order as shown in the table. This | the correct order, as shown in the table. This is due to ACL types | |||
is due to ACL types listed in specificity decreasing order, with | listed in specificity-decreasing order, with "block" first, followed | |||
"block" first, followed by "allow", representing a typical ACL-based | by "allow", representing a typical ACL-based security policy. The | |||
security policy. The ACL entries MUST be configured with routable IP | ACL entries MUST be configured with routable IP prefixes by the DUT/ | |||
prefixes by the DUT/SUT, where applicable. (Note: There will be | SUT, where applicable. (Note: There will be differences between how | |||
differences between how security vendors implement ACL decision- | security vendors implement ACL decision making.) The configured ACL | |||
making.) The configured ACL MUST NOT block the test traffic used for | MUST NOT block the test traffic used for the benchmarking tests. | |||
the benchmarking tests. | ||||
+---------------+ | +===================================================+==============+ | |||
| DUT/SUT | | | |DUT/SUT | | |||
| Classification| | | |Classification| | |||
| # Rules | | | |# Rules | | |||
+-----------+-----------+--------------------+------+---+---+---+---+ | +=============+=============+==============+========+===+==+===+===+ | |||
| | Match | | | | | | | | | Rules Type | Match | Description | Action |XS |S |M |L | | |||
| Rules Type| Criteria | Description |Action| XS| S | M | L | | | | Criteria | | | | | | | | |||
+-------------------------------------------------------------------+ | +=============+=============+==============+========+===+==+===+===+ | |||
|Application|Application| Any application | block| 5 | 10| 20| 50| | | Application | Application | Any | block |5 |10|20 |50 | | |||
|layer | | not included in | | | | | | | | layer | | application | | | | | | | |||
| | | the measurement | | | | | | | | | | not included | | | | | | | |||
| | | traffic | | | | | | | | | | in the | | | | | | | |||
+-------------------------------------------------------------------+ | | | | measurement | | | | | | | |||
|Transport |SRC IP and | Any SRC IP prefix | block| 25| 50|100|250| | | | | traffic | | | | | | | |||
|layer |TCP/UDP | used and any DST | | | | | | | +-------------+-------------+--------------+--------+---+--+---+---+ | |||
| |DST ports | ports not used in | | | | | | | | Transport | SRC IP and | Any SRC IP | block |25 |50|100|250| | |||
| | | the measurement | | | | | | | | layer | TCP/UDP DST | prefix used | | | | | | | |||
| | | traffic | | | | | | | | | ports | and any DST | | | | | | | |||
+-------------------------------------------------------------------+ | | | | ports not | | | | | | | |||
|IP layer |SRC/DST IP | Any SRC/DST IP | block| 25| 50|100|250| | | | | used in the | | | | | | | |||
| | | subnet not used | | | | | | | | | | measurement | | | | | | | |||
| | | in the measurement | | | | | | | | | | traffic | | | | | | | |||
| | | traffic | | | | | | | +-------------+-------------+--------------+--------+---+--+---+---+ | |||
+-------------------------------------------------------------------+ | | IP layer | SRC/DST IP | Any SRC/DST | block |25 |50|100|250| | |||
|Application|Application| Half of the | allow| 10| 10| 10| 10| | | | | IP subnet | | | | | | | |||
|layer | | applications | | | | | | | | | | not used in | | | | | | | |||
| | | included in the | | | | | | | | | | the | | | | | | | |||
| | | measurement traffic| | | | | | | | | | measurement | | | | | | | |||
| | |(see the note below)| | | | | | | | | | traffic | | | | | | | |||
+-------------------------------------------------------------------+ | +-------------+-------------+--------------+--------+---+--+---+---+ | |||
|Transport |SRC IP and | Half of the SRC | allow| >1| >1| >1| >1| | | Application | Application | Half of the | allow |10 |10|10 |10 | | |||
|layer |TCP/UDP | IPs used and any | | | | | | | | layer | | applications | | | | | | | |||
| |DST ports | DST ports used in | | | | | | | | | | included in | | | | | | | |||
| | | the measurement | | | | | | | | | | the | | | | | | | |||
| | | traffic | | | | | | | | | | measurement | | | | | | | |||
| | | (one rule per | | | | | | | | | | traffic (see | | | | | | | |||
| | | subnet) | | | | | | | | | | the note | | | | | | | |||
+-------------------------------------------------------------------+ | | | | below) | | | | | | | |||
|IP layer |SRC IP | The rest of the | allow| >1| >1| >1| >1| | +-------------+-------------+--------------+--------+---+--+---+---+ | |||
| | | SRC IP prefix | | | | | | | | Transport | SRC IP and | Half of the | allow |>1 |>1|>1 |>1 | | |||
| | | range used in the | | | | | | | | layer | TCP/UDP DST | SRC IPs used | | | | | | | |||
| | | measurement | | | | | | | | | ports | and any DST | | | | | | | |||
| | | traffic | | | | | | | | | | ports used | | | | | | | |||
| | | (one rule per | | | | | | | | | | in the | | | | | | | |||
| | | subnet) | | | | | | | | | | measurement | | | | | | | |||
+-----------+-----------+--------------------+------+---+---+---+---+ | | | | traffic (one | | | | | | | |||
| | | rule per | | | | | | | ||||
| | | subnet) | | | | | | | ||||
+-------------+-------------+--------------+--------+---+--+---+---+ | ||||
| IP layer | SRC IP | The rest of | allow |>1 |>1|>1 |>1 | | ||||
| | | the SRC IP | | | | | | | ||||
| | | prefix range | | | | | | | ||||
| | | used in the | | | | | | | ||||
| | | measurment | | | | | | | ||||
| | | traffic (one | | | | | | | ||||
| | | rule per | | | | | | | ||||
| | | subnet) | | | | | | | ||||
+-------------+-------------+--------------+--------+---+--+---+---+ | ||||
Figure 3: DUT/SUT Access List | Table 4: DUT/SUT Access List | |||
Note 1: Based on the test customer's specific use case, the testers | Note 1: Based on the test customer's specific use case, the testers | |||
can increase the number of rules. | can increase the number of rules. | |||
Note 2: If half of the applications included in the test traffic is | Note 2: If half of the applications included in the test traffic are | |||
less than 10, the missing number of ACL entries (dummy rules) can be | less than 10, the missing number of ACL entries (placeholder rules) | |||
configured for any application traffic not included in the test | can be configured for any application traffic not included in the | |||
traffic. | test traffic. | |||
Note 3: In the event, the DUT/SUT is designed to not use ACLs it is | Note 3: In the event that the DUT/SUT is designed to not use ACLs, it | |||
acceptable to conduct tests without them. However, this MUST be | is acceptable to conduct tests without them. However, this MUST be | |||
noted in the test report. | noted in the test report. | |||
4.2.1. Security Effectiveness Configuration | 4.2.1. Security Effectiveness Configuration | |||
The selected security features (defined in Table 2 and Table 3) of | The selected security features (defined in Tables 2 and 3) of the | |||
the DUT/SUT MUST be configured effectively to detect, prevent, and | DUT/SUT MUST be configured effectively to detect, prevent, and report | |||
report the defined security vulnerability sets. This section defines | the defined security vulnerability sets. This section defines the | |||
the selection of the security vulnerability sets from the Common | selection of the security vulnerability sets from the Common | |||
Vulnerabilities and Exposures (CVE) list for testing. The | Vulnerabilities and Exposures (CVEs) list [CVE] for testing. The | |||
vulnerability set should reflect a minimum of 500 CVEs from no older | vulnerability set should reflect a minimum of 500 CVEs from no older | |||
than 10 calendar years to the current year. These CVEs should be | than 10 calendar years to the current year. These CVEs should be | |||
selected with a focus on in-use software commonly found in business | selected with a focus on in-use software commonly found in business | |||
applications, with a Common Vulnerability Scoring System (CVSS) | applications, with a Common Vulnerability Scoring System (CVSS) | |||
Severity of High (7-10). | Severity of High (7-10). | |||
This document is primarily focused on performance benchmarking. | This document is primarily focused on performance benchmarking. | |||
However, it is RECOMMENDED to validate the security features | However, it is RECOMMENDED to validate the security features | |||
configuration of the DUT/SUT by evaluating the security effectiveness | configuration of the DUT/SUT by evaluating the security effectiveness | |||
as a prerequisite for performance benchmarking tests defined in | as a prerequisite for performance benchmarking tests defined in | |||
section 7. In case the benchmarking tests are performed without | Section 7. In case the benchmarking tests are performed without | |||
evaluating security effectiveness, the test report MUST explain the | evaluating security effectiveness, the test report MUST explain the | |||
implications of this. The methodology for evaluating security | implications of this. The methodology for evaluating security | |||
effectiveness is defined in Appendix A. | effectiveness is defined in Appendix A. | |||
4.3. Test Equipment Configuration | 4.3. Test Equipment Configuration | |||
In general, test equipment allows configuring parameters in different | In general, test equipment allows configuring parameters in different | |||
protocol layers. Extensive proof of concept tests conducted to | protocol layers. Extensive proof-of-concept tests conducted to | |||
support preparation of this document showed that benchmarking results | support preparation of this document showed that benchmarking results | |||
are strongly affected by the choice of protocol stack parameters; | are strongly affected by the choice of protocol stack parameters, | |||
especially OSI layer 4 transport protocol parameters. For more | especially OSI layer 4 transport protocol parameters. For more | |||
information on how TCP and QUIC parameters will impact performance | information on how TCP and QUIC parameters will impact performance, | |||
review [fastly]. To achieve reproducible results that will be | review [fastly]. To achieve reproducible results that will be | |||
representative for real deployment scenarios, careful specification | representative of real deployment scenarios, careful specification | |||
and documentation of the parameters are required. | and documentation of the parameters are required. | |||
This section specifies common test equipment configuration parameters | This section specifies common test equipment configuration parameters | |||
applicable for all benchmarking tests defined in Section 7. Any | applicable for all benchmarking tests defined in Section 7. Any | |||
benchmarking test specific parameters are described under the test | benchmarking-test-specific parameters are described under the test | |||
setup section of each benchmarking test individually. | setup section of each benchmarking test individually. | |||
4.3.1. Client Configuration | 4.3.1. Client Configuration | |||
This section specifies which parameters should be considered while | This section specifies which parameters should be considered while | |||
configuring emulated client endpoints in the test equipment. Also, | configuring emulated client endpoints in the test equipment. Also, | |||
this section specifies the RECOMMENDED values for certain parameters. | this section specifies the RECOMMENDED values for certain parameters. | |||
The values are the defaults typically used in most of the client | The values are the defaults typically used in most of the client | |||
operating system types. | operating system types. | |||
Pre-standard evaluations have shown that it is possible to set a wide | Pre-standard evaluations have shown that it is possible to set a wide | |||
range of arbitrary parameters for OSI layer 4 transport protocols on | range of arbitrary parameters for OSI layer 4 transport protocols on | |||
test equipment leading to client-specific results optimization; | test equipment leading to optimization of client-specific results; | |||
however, only well-defined common parameter sets help to establish | however, only well-defined common parameter sets help to establish | |||
meaningful and comparable benchmarking results. For these reasons, | meaningful and comparable benchmarking results. For these reasons, | |||
this document recommends specific sets of transport protocol | this document recommends specific sets of transport protocol | |||
parameters to be configured on test equipment used for benchmarking. | parameters to be configured on test equipment used for benchmarking. | |||
4.3.1.1. TCP Stack Attributes | 4.3.1.1. TCP Stack Attributes | |||
The TCP stack of the emulated client endpoints MUST fulfill the TCP | The TCP stack of the emulated client endpoints MUST fulfill the TCP | |||
requirements defined in [RFC9293] (See Appendix B.). In addition, | requirements defined in Appendix B of [RFC9293]. In addition, this | |||
this section specifies the RECOMMENDED values for TCP parameters | section specifies the RECOMMENDED values for TCP parameters | |||
configured using the following parameters: | configured using the parameters described below. | |||
The IPv4 and IPv6 Maximum Segment Size (MSS) are set to 1460 bytes | The IPv4 and IPv6 Maximum Segment Sizes (MSSs) are set to 1460 bytes | |||
and 1440 bytes respectively. TX and RX initial receive window sizes | and 1440 bytes, respectively. TX and RX initial receive window sizes | |||
are set to 65535 bytes. The client's initial congestion window | are set to 65535 bytes. The client's initial congestion window | |||
should not exceed 10 times the MSS. Delayed ACKs are permitted and | should not exceed 10 times the MSS. Delayed ACKs are permitted, and | |||
the maximum client delayed ACK should not exceed 10 times of the MSS | the maximum client delayed ACK should not exceed 10 times of the MSS | |||
before a forced ACK also, the maximum delayed ACK timer is allowed to | before a forced ACK; also, the maximum delayed ACK timer is allowed | |||
be set to 200 ms. Up to three retries are allowed before a timeout | to be set to 200 ms. Up to three retries are allowed before a | |||
event is declared. TCP PSH flag is set to high in all traffic. The | timeout event is declared. The TCP PSH flag is set to high in all | |||
source port range is in the range of 1024 - 65535. The clients | traffic. The source port range is 1024-65535. The clients initiate | |||
initiate TCP connections via a three-way handshake (SYN, SYN/ACK, | TCP connections via a three-way handshake (SYN, SYN/ACK, ACK) and | |||
ACK) and close TCP connections via either a TCP three-way close (FIN, | close TCP connections via either a TCP three-way close (FIN, FIN/ACK, | |||
FIN/ACK, ACK) or a TCP four-way close (FIN, ACK, FIN, ACK). | ACK) or a TCP four-way close (FIN, ACK, FIN, ACK). | |||
4.3.1.2. QUIC Specification | 4.3.1.2. QUIC Specification | |||
QUIC stack emulation on the test equipment MUST conform to [RFC9000] | QUIC stack emulation on the test equipment MUST conform to [RFC9000] | |||
and [RFC9001]. This section specifies the RECOMMENDED values for | and [RFC9001]. This section specifies the RECOMMENDED values for | |||
certain QUIC parameters to be configured on test equipment used for | certain QUIC parameters to be configured on test equipment used for | |||
benchmarking purposes only. QUIC Stream type (defined in section 2.1 | benchmarking purposes only. The QUIC stream type (defined in | |||
of [RFC9000]) is set to "Client-Initiated, Bidirectional". 0-RTT and | Section 2.1 of [RFC9000]) is set to "Client-Initiated, | |||
early data are Disabled. QUIC Connection termination method is | Bidirectional". 0-RTT and early data are disabled. The QUIC | |||
Immediate close (section 10.2 of [RFC9000]. Flow control is enabled. | connection termination method is an immediate close (Section 10.2 of | |||
UDP payloads are set to datagram size of 1232 bytes for IPv6 and 1252 | [RFC9000]). Flow control is enabled. UDP payloads are set to the | |||
bytes for IPv4. In addition, transport parameters and default values | datagram size of 1232 bytes for IPv6 and 1252 bytes for IPv4. In | |||
defined in section 18.2 of [RFC9000] are RECOMMENDED to configure on | addition, transport parameters and default values defined in | |||
test equipment. Also, this document references Appendixes B.1 and | Section 18.2 of [RFC9000] are RECOMMENDED to configure on test | |||
B.2 of [RFC9002] for congestion control related constants and | equipment. Also, this document references Appendices B.1 and B.2 of | |||
variables. Any configured QUIC and UDP parameter(s) MUST be | [RFC9002] for congestion-control-related constants and variables. | |||
documented in the test report. | Any configured QUIC and UDP parameter MUST be documented in the test | |||
report. | ||||
4.3.1.3. Client IP Address Space | 4.3.1.3. Client IP Address Space | |||
The client IP space contains the following attributes. | The client IP space contains the following attributes. | |||
* If multiple IP blocks are used, they MUST be consist of multiple | * If multiple IP blocks are used, they MUST consist of multiple | |||
unique, discontinuous static address blocks. | unique, discontinuous static address blocks. | |||
* A default gateway MAY be used. | * A default gateway MAY be used. | |||
* The DSCP (differentiated services code point) marking should be | * The differentiated services code point (DSCP) marking should be | |||
set to DF (Default Forwarding) '000000' on IPv4 Type of Service | set to Default Forwarding (DF) '000000' on the IPv4 Type of | |||
(ToS) field and IPv6 traffic class field. | Service (ToS) field and IPv6 Traffic Class field. | |||
* Extension header(s) MAY be used for IPv6 clients. If multiple | * One or more extension headers MAY be used for IPv6 clients. If | |||
extension headers are needed for traffic emulation, this document | multiple extension headers are needed for traffic emulation, this | |||
references [RFC8200] to choose the correct order of the extension | document references [RFC8200] to choose the correct order of the | |||
headers within an IPv6 packet. Testing with extension header(s) | extension headers within an IPv6 packet. Testing with one or more | |||
may impact the performance of the DUT. The extension headers MUST | extension headers may impact the performance of the DUT. The | |||
be documented and reported. | extension headers MUST be documented and reported. | |||
The following equation can be used to define the total number of | The following equation can be used to define the total number of | |||
client IP addresses that need to be configured on the test equipment. | client IP addresses that need to be configured on the test equipment. | |||
Desired total number of client IP addresses = Target throughput | Desired total number of client IP addresses = Target throughput | |||
[Mbit/s] / Average throughput per IP address [Mbit/s] | [Mbit/s] / Average throughput per IP address [Mbit/s] | |||
As shown in the example list below, the value for "Average throughput | As shown in the example list below, the value for "Average throughput | |||
per IP address" can be varied depending on the deployment and use | per IP address" can be varied depending on the deployment and use | |||
case scenario. | case scenario. | |||
(Example 1) DUT/SUT deployment scenario 1 : 6-7 Mbit/s per IP (e.g. | Example 1 DUT/SUT deployment scenario 1: 6-7 Mbit/s per IP (e.g., | |||
1,400-1,700 IPs per 10Gbit/s of throughput) | 1,400-1,700 IPs per 10 Gbit/s of throughput) | |||
(Example 2) DUT/SUT deployment scenario 2 : 0.1-0.2 Mbit/s per IP | Example 2 DUT/SUT deployment scenario 2: 0.1-0.2 Mbit/s per IP | |||
(e.g. 50,000-100,000 IPs per 10Gbit/s of throughput) | (e.g., 50,000-100,000 IPs per 10 Gbit/s of throughput) | |||
Client IP addresses MUST be distributed between IPv4 and IPv6 based | Client IP addresses MUST be distributed between IPv4 and IPv6 based | |||
on deployment and use case scenario. The following options MAY be | on the deployment and use case scenario. The following options MAY | |||
considered for a selection of ratios for both IP addresses and | be considered for a selection of ratios for both IP addresses and | |||
traffic load distribution. | traffic load distribution. | |||
(Option 1) 100 % IPv4, no IPv6 | Option 1 100 % IPv4, no IPv6 | |||
(Option 2) 80 % IPv4, 20% IPv6 | Option 2 80 % IPv4, 20% IPv6 | |||
(Option 3) 50 % IPv4, 50% IPv6 | Option 3 50 % IPv4, 50% IPv6 | |||
(Option 4) 20 % IPv4, 80% IPv6 | Option 4 20 % IPv4, 80% IPv6 | |||
(Option 5) no IPv4, 100% IPv6 | Option 5 no IPv4, 100% IPv6 | |||
Note: IANA has assigned IP address ranges for testing purposes as | Note: IANA has assigned IP address ranges for testing purposes, as | |||
described in Section 8. If the test scenario requires more IP | described in Section 8. If the test scenario requires more IP | |||
addresses or subnets than IANA has assigned, this document recommends | addresses or subnets than IANA has assigned, this document recommends | |||
using private IPv4 address ranges or Unique Local Address (ULA) IPv6 | using private IPv4 address ranges or Unique Local Address (ULA) IPv6 | |||
address ranges for the testing. | address ranges for the testing. | |||
4.3.1.4. Emulated Web Browser Attributes | 4.3.1.4. Emulated Web Browser Attributes | |||
The client (emulated web browser) contains attributes that will | The client (emulated web browser) contains attributes that will | |||
materially affect the traffic load. The objective is to emulate | materially affect the traffic load. The objective is to emulate | |||
modern, typical browser attributes to improve the relevance of the | modern, typical browser attributes to improve the relevance of the | |||
result set for typical deployment scenarios. | result set for typical deployment scenarios. | |||
The emulated browser MUST negotiate HTTP version 1.1 or higher. The | The emulated browser MUST negotiate HTTP version 1.1 or higher. The | |||
emulated browser SHOULD advertise a User-Agent header. The emulated | emulated browser SHOULD advertise a User-Agent header. The emulated | |||
browser MUST enforce content length validation. HTTP header | browser MUST enforce content length validation. HTTP header | |||
compression MAY be set to enable. If HTTP header compression is | compression MAY be set to enable. If HTTP header compression is | |||
configurable in the test equipment, it MUST be documented if it was | configurable in the test equipment, it MUST be documented if it was | |||
enabled or disabled. Depending on test scenarios and chosen HTTP | enabled or disabled. Depending on test scenarios and the chosen HTTP | |||
version, the emulated browser MAY open multiple TCP or QUIC | version, the emulated browser MAY open multiple TCP or QUIC | |||
connections per Server endpoint IP at any time depending on how many | connections per server endpoint IP at any time, depending on how many | |||
sequential transactions need to be processed. | sequential transactions need to be processed. | |||
For HTTP/2 traffic emulation, the emulated browser opens multiple | For HTTP/2 traffic emulation, the emulated browser opens multiple | |||
concurrent streams per connection (multiplexing). For HTTPS | concurrent streams per connection (multiplexing). For HTTPS | |||
requests, the emulated browser MUST send "h2" protocol identifier | requests, the emulated browser MUST send an "h2" protocol identifier | |||
using the TLS extension Application Layer Protocol Negotiation | using the TLS extension Application-Layer Protocol Negotiation | |||
(ALPN). The following default values (see [Undertow]) are the | (ALPN). The following default values (see [Undertow]) are the | |||
RECOMMENDED setting for certain HTTP/2 parameters to be configured on | RECOMMENDED settings for certain HTTP/2 parameters to be configured | |||
test equipment used for benchmarking purposes only: | on test equipment used for benchmarking purposes only: | |||
* Maximum Frame size: 16384 bytes | * Maximum frame size: 16384 bytes | |||
* Initial Window size: 65535 bytes | * Initial window size: 65535 bytes | |||
* HPACK Header table size: 4096 bytes | * HPACK header field table size: 4096 bytes | |||
* Server PUSH enable: false (Note: in [Undertow] the default setting | * Server push enable: false (Note: In [Undertow], the default | |||
is true. However, for testing purposes, this document recommends | setting is true. However, for testing purposes, this document | |||
setting the value false for server push.) | recommends setting the value to false for server push.) | |||
This document refers to [RFC9113] for further details of HTTP/2. If | This document refers to [RFC9113] for further details of HTTP/2. If | |||
any additional parameters are used to configure the test equipment, | any additional parameters are used to configure the test equipment, | |||
they MUST be documented. | they MUST be documented. | |||
For HTTP/3 traffic emulation, the emulated browsers initiate secure | For HTTP/3 traffic emulation, the emulated browsers initiate secure | |||
QUIC connections using TLS 1.3 ([RFC9001] describes how TLS is used | QUIC connections using TLS 1.3 ([RFC9001] describes how TLS is used | |||
to secure QUIC). This document refers to [RFC9114] for HTTP/3 | to secure QUIC). This document refers to [RFC9114] for HTTP/3 | |||
specifications. The specification for transport protocol parameters | specifications. The specification for transport protocol parameters | |||
is defined in Section 4.3.1.2. QPACK configuration settings such as | is defined in Section 4.3.1.2. QPACK configuration settings, such as | |||
MAX_TABLE_CAPACITY and QPACK_BLOCKED_STREAMS are set to zero | MAX_TABLE_CAPACITY and QPACK_BLOCKED_STREAMS, are set to zero | |||
(default) as defined in [RFC9204]. Any HTTP/3 parameters used for | (default), as defined in [RFC9204]. Any HTTP/3 parameters used for | |||
test equipment configuration MUST be documented. | test equipment configuration MUST be documented. | |||
For encrypted traffic, the following attributes are defined as the | For encrypted traffic, the following attributes are defined as the | |||
negotiated encryption parameters. The test clients MUST use TLS | negotiated encryption parameters. The test clients MUST use TLS | |||
version 1.2 or higher. The TLS record size MAY be optimized for the | version 1.2 or higher. The TLS record size MAY be optimized for the | |||
HTTPS response object size up to a record size of 16 KBytes. If | HTTPS response object size, up to a record size of 16 KB. If Server | |||
Server Name Indication (SNI) is required (especially if the server is | Name Indication (SNI) is required (especially if the server is | |||
identified by a domain name), the client endpoint MUST send TLS | identified by a domain name), the client endpoint MUST send TLS | |||
extension Server Name Indication (SNI) information when opening a | extension SNI information when opening a security tunnel. Each | |||
security tunnel. Each client connection MUST perform a full TLS | client connection MUST perform a full TLS handshake, and session | |||
handshake and session reuse or resumption MUST be disabled. (Note: | reuse or resumption MUST be disabled. (Note: Real web browsers use | |||
Real web browsers use session reuse or resumption. However, for | session reuse or resumption. However, for testing purposes, this | |||
testing purposes, this feature must not be used to measure the DUT/ | feature must not be used to measure the DUT/SUT performance in the | |||
SUT performance in the worst-case scenario.) | worst-case scenario.) | |||
The following TLS 1.2 supported ciphers and keys are RECOMMENDED for | The following ciphers and keys supported by TLS 1.2 are RECOMMENDED | |||
HTTPS based benchmarking tests defined in Section 7. | for the HTTPS-based benchmarking tests defined in Section 7. | |||
1. ECDHE-ECDSA-AES128-GCM-SHA256 with Prime256v1 (Signature Hash | 1. ECDHE-ECDSA-AES128-GCM-SHA256 with Prime256v1 (Signature Hash | |||
Algorithm: ecdsa_secp256r1_sha256 and Supported group: secp256r1) | Algorithm: ecdsa_secp256r1_sha256 and Supported group: secp256r1) | |||
2. ECDHE-RSA-AES128-GCM-SHA256 with RSA 2048 (Signature Hash | 2. ECDHE-RSA-AES128-GCM-SHA256 with RSA 2048 (Signature Hash | |||
Algorithm: rsa_pkcs1_sha256 and Supported group: secp256r1) | Algorithm: rsa_pkcs1_sha256 and Supported group: secp256r1) | |||
3. ECDHE-ECDSA-AES256-GCM-SHA384 with Secp384r1 (Signature Hash | 3. ECDHE-ECDSA-AES256-GCM-SHA384 with Secp384r1 (Signature Hash | |||
Algorithm: ecdsa_secp384r1_sha384 and Supported group: secp384r1) | Algorithm: ecdsa_secp384r1_sha384 and Supported group: secp384r1) | |||
4. ECDHE-RSA-AES256-GCM-SHA384 with RSA 4096 (Signature Hash | 4. ECDHE-RSA-AES256-GCM-SHA384 with RSA 4096 (Signature Hash | |||
Algorithm: rsa_pkcs1_sha384 and Supported group: secp384r1) | Algorithm: rsa_pkcs1_sha384 and Supported group: secp384r1) | |||
Note: The above ciphers and keys were those commonly used for | Note: The above ciphers and keys were those commonly used for | |||
enterprise-grade encryption cipher suites for TLS 1.2 as of the time | enterprise-grade encryption cipher suites for TLS 1.2 at of the time | |||
of publication (2022). Individual certification bodies should use | of publication (2023). Individual certification bodies should use | |||
ciphers and keys that reflect evolving use cases. These choices MUST | ciphers and keys that reflect evolving use cases. These choices MUST | |||
be documented in the resulting test reports with detailed information | be documented in the resulting test reports with detailed information | |||
on the ciphers and keys used along with reasons for the choices. | on the ciphers and keys used, along with reasons for the choices. | |||
IANA recommends the following cipher suites for use with TLS 1.3 | IANA recommends the following cipher suites for use with TLS 1.3, as | |||
defined in [RFC8446]. | defined in [RFC8446]. | |||
1. TLS_AES_128_GCM_SHA256 | 1. TLS_AES_128_GCM_SHA256 | |||
2. TLS_AES_256_GCM_SHA384 | 2. TLS_AES_256_GCM_SHA384 | |||
3. TLS_CHACHA20_POLY1305_SHA256 | 3. TLS_CHACHA20_POLY1305_SHA256 | |||
4. TLS_AES_128_CCM_SHA256 | 4. TLS_AES_128_CCM_SHA256 | |||
4.3.2. Backend Server Configuration | 4.3.2. Backend Server Configuration | |||
This section specifies which parameters should be considered while | This section specifies which parameters should be considered while | |||
configuring emulated backend servers using test equipment. | configuring emulated backend servers using test equipment. | |||
4.3.2.1. TCP Stack Attributes | 4.3.2.1. TCP Stack Attributes | |||
The TCP stack on the server-side MUST be configured similar to the | The TCP stack on the server-side MUST be configured similarly to the | |||
client-side configuration described in Section 4.3.1.1 | client-side configuration described in Section 4.3.1.1. | |||
4.3.2.2. QUIC Specification | 4.3.2.2. QUIC Specification | |||
The QUIC parameters on the server-side MUST be configured similar to | The QUIC parameters on the server-side MUST be configured similarly | |||
the client-side configuration. Any configured QUIC Parameter(s) MUST | to the client-side configuration. Any configured QUIC parameter MUST | |||
be documented in the report. | be documented in the report. | |||
4.3.2.3. Server Endpoint IP Addressing | 4.3.2.3. Server Endpoint IP Addressing | |||
The sum of the server IP space MUST contain the following attributes. | The sum of the server IP space MUST contain the following attributes. | |||
* The server IP blocks MUST consist of unique, discontinuous static | * The server IP blocks MUST consist of unique, discontinuous static | |||
address blocks with one IP per server Fully Qualified Domain Name | address blocks with one IP per server Fully Qualified Domain Name | |||
(FQDN) endpoint per test port. | (FQDN) endpoint per test port. | |||
* A default gateway is permitted. The DSCP (differentiated services | * A default gateway is permitted. The DSCP marking is set to DF | |||
code point) marking is set to DF (Default Forwarding) '000000' on | '000000' on the IPv4 ToS field and IPv6 Traffic Class field. One | |||
IPv4 Type of Service (ToS) field and IPv6 traffic class field. | or more extension headers for the IPv6 server are permitted. If | |||
Extension header(s) for the IPv6 server is permitted. If multiple | multiple extension headers are required, this document references | |||
extension headers are required, this document referenced [RFC8200] | [RFC8200] to choose the correct order of the extension headers | |||
to choose the correct order of the extension headers within an | within an IPv6 packet. | |||
IPv6 packet. | ||||
* The server IP address distribution between IPv4 and IPv6 MUST be | * The server IP address distribution between IPv4 and IPv6 MUST be | |||
identical to the client IP address distribution ratio. | identical to the client IP address distribution ratio. | |||
Note: The IANA has assigned IP address blocks for the testing purpose | Note: IANA has assigned IP address blocks for the testing purpose | |||
as described in Section 8. If the test scenario requires more IP | described in Section 8. If the test scenario requires more IP | |||
addresses or address blocks than the IANA assigned, this document | addresses or address blocks than IANA has assigned, this document | |||
recommends using private IPv4 address ranges or Unique Local Address | recommends using private IPv4 address ranges or Unique Local Address | |||
(ULA) IPv6 address ranges for the testing. | (ULA) IPv6 address ranges for the testing. | |||
4.3.2.4. HTTP / HTTPS Server Pool Endpoint Attributes | 4.3.2.4. HTTP/HTTPS Server Pool Endpoint Attributes | |||
The HTTP 1.1 and HTTP/2 server pools listen on TCP ports 80 and 443 | The HTTP 1.1 and HTTP/2 server pools listen on TCP ports 80 and 443 | |||
for HTTP and HTTPS. HTTP/3 server pool listens on UDP port 443 or | for HTTP and HTTPS. The HTTP/3 server pool listens on any UDP port. | |||
any port. The server MUST emulate the same HTTP version (HTTP 1.1 or | The server MUST emulate the same HTTP version (HTTP 1.1, HTTP/2, or | |||
HTTP/2 or HTTP/3) and settings chosen by the client (emulated web | HTTP/3) and settings chosen by the client (emulated web browser). | |||
browser). For the HTTPS server, TLS 1.2 or higher MUST be used with | For the HTTPS server, TLS version 1.2 or higher MUST be used with a | |||
a maximum record size of 16 KByte. Ticket resumption or session ID | maximum record size of 16 KB. Ticket resumption or session ID reuse | |||
reuse MUST NOT be used for TLS 1.2 and also session Ticket or session | MUST NOT be used for TLS 1.2; also, session ticket or session cache | |||
cache MUST NOT be used for TLS 1.3. The server MUST serve a | MUST NOT be used for TLS 1.3. The server MUST serve a certificate to | |||
certificate to the client. Cipher suite and key size on the server- | the client. The cipher suite and key size on the server-side MUST be | |||
side MUST be configured similar to the client-side configuration | configured similarly to the client-side configuration described in | |||
described in Section 4.3.1.4. | Section 4.3.1.4. | |||
4.3.3. Traffic Flow Definition | 4.3.3. Traffic Flow Definition | |||
This section describes the traffic pattern between client and server | At the beginning of the test (the init phase; see Section 4.3.4), the | |||
endpoints. At the beginning of the test, the server endpoint | server endpoint initializes, and the server endpoint will be ready to | |||
initializes and will be ready to accept connection states including | accept TCP or QUIC connections as well as inbound HTTP and HTTPS | |||
initialization of the TCP or QUIC stack as well as bound HTTP and | requests. The client endpoints initialize and are given attributes | |||
HTTPS servers. When a client endpoint is needed, it will initialize | such as a MAC and IP address. After the init phase of the test, each | |||
and be given attributes such as a MAC and IP address. The behavior | client sweeps through the given server IP space, generating a service | |||
of the client is to sweep through the given server IP space, | recognizable by the DUT. Sequential and pseudorandom sweep methods | |||
generating a recognizable service by the DUT. Sequential and | are acceptable. The method used MUST be stated in the final report. | |||
pseudorandom sweep methods are acceptable. The method used MUST be | Thus, a balanced mesh between client endpoints and server endpoints | |||
stated in the final report. Thus, a balanced mesh between client | will be generated in a client IP and port to server IP and port | |||
endpoints and server endpoints will be generated in a client IP and | combination. Each client endpoint performs the same actions as other | |||
port to server IP and port combination. Each client endpoint | endpoints, with the difference being the source IP of the client | |||
performs the same actions as other endpoints, with the difference | endpoint and the target server IP pool. The client MUST use the | |||
being the source IP of the client endpoint and the target server IP | server IP address or FQDN in the host header. | |||
pool. The client MUST use the server IP address or FQDN in the host | ||||
header. | ||||
4.3.3.1. Description of Intra-Client Behavior | 4.3.3.1. Description of Intra-Client Behavior | |||
Client endpoints are independent of other clients that are | Client endpoints are independent of other clients that are | |||
concurrently executing. When a client endpoint initiates traffic, | concurrently executing. When a client endpoint initiates traffic, | |||
this section describes how the client steps through different | this section describes how the client steps through different | |||
services. Once the test is initialized, the client endpoints | services. Once the test is initialized, the client endpoints | |||
randomly hold (perform no operation) for a few milliseconds for | randomly hold (perform no operation) for a few milliseconds for | |||
better randomization of the start of client traffic. Each client | better randomization of the start of client traffic. Each client | |||
(HTTP 1.1 or HTTP/2) will either open a new TCP connection or connect | (HTTP 1.1 or HTTP/2) will either open a new TCP connection or connect | |||
to an HTTP persistent connection still open to that specific server. | to an HTTP persistent connection that is still open to that specific | |||
HTTP/3 clients will open UDP streams within QUIC connections. At any | server. HTTP/3 clients will open UDP streams within QUIC | |||
point that the traffic profile may require encryption, a TLS | connections. At any point that the traffic profile may require | |||
encryption tunnel will form presenting the URL or IP address request | encryption, a TLS encryption tunnel will form, presenting the URL or | |||
to the server. If using SNI, the server MUST then perform an SNI | IP address request to the server. If using SNI, the server MUST then | |||
name check with the proposed FQDN compared to the domain embedded in | perform an SNI name check by comparing the proposed FQDN to the | |||
the certificate. Only when correct, will the server process the | domain embedded in the certificate. Only when correct will the | |||
HTTPS response object. The initial response object to the server is | server process the HTTPS response object. The initial response | |||
based on benchmarking tests described in Section 7. Multiple | object to the server is based on benchmarking tests described in | |||
additional sub-URLs (response objects on the service page) MAY be | Section 7. Multiple additional sub-URLs (response objects on the | |||
requested simultaneously. This MAY be to the same server IP as the | service page) MAY be requested simultaneously. This MAY be to the | |||
initial URL. Each sub-object will also use a canonical FQDN and URL | same server IP as the initial URL. Each sub-object will also use a | |||
path. | canonical FQDN and URL path. | |||
4.3.4. Traffic Load Profile | 4.3.4. Traffic Load Profile | |||
The loading of traffic is described in this section. The loading of | The loading of traffic is described in this section. The loading of | |||
a traffic load profile has five phases: Init, ramp up, sustain, ramp | a traffic load profile has five phases: Init, ramp up, sustain, ramp | |||
down, and collection. | down, and collection. | |||
1. Init phase: Testbed devices including the client and server | Init phase: | |||
endpoints should negotiate layer 2-3 connectivity such as MAC | Testbed devices, including the client and server endpoints, should | |||
learning and ARP/ND. Only after successful MAC learning or ARP/ | negotiate layer 2-3 connectivity, such as MAC learning and ARP/ND. | |||
ND SHALL the test iteration move to the next phase. No | Only after successful MAC learning or ARP/ND SHALL the test | |||
measurements are made in this phase. The minimum recommended | iteration move to the next phase. No measurements are made in | |||
time for the Init phase is 5 seconds. During this phase, the | this phase. The minimum recommended time for the Init phase is 5 | |||
emulated clients MUST NOT initiate any sessions with the DUT/SUT, | seconds. During this phase, the emulated clients MUST NOT | |||
in contrast, the emulated servers should be ready to accept | initiate any sessions with the DUT/SUT; in contrast, the emulated | |||
requests from DUT/SUT or emulated clients. | servers should be ready to accept requests from the DUT/SUT or | |||
emulated clients. | ||||
2. Ramp up phase: The test equipment MUST start to generate the test | Ramp Up phase: | |||
traffic. It MUST use a set of the approximate number of unique | The test equipment MUST start to generate the test traffic. It | |||
client IP addresses to generate traffic. The traffic MUST ramp | MUST use a set of the approximate number of unique client IP | |||
up from zero to desired target objective. The target objective | addresses to generate traffic. The traffic MUST ramp up from zero | |||
is defined for each benchmarking test. The duration for the ramp | to the desired target objective. The target objective is defined | |||
up phase MUST be configured long enough that the test equipment | for each benchmarking test. The duration for the ramp up phase | |||
does not overwhelm the DUT/SUTs stated performance metrics | MUST be configured long enough that the test equipment does not | |||
defined in Section 6.3 namely, TCP or QUIC Connections Per | overwhelm the DUT's/SUT's stated performance metrics defined in | |||
Second, Inspected Throughput, Concurrent TCP or QUIC Connections, | Section 6.3, namely TCP or QUIC connections per second, inspected | |||
and Application Transactions Per Second. No measurements are | throughput, concurrent TCP or QUIC connections, and application | |||
made in this phase. | transactions per second. No measurements are made in this phase. | |||
3. Sustain phase: Starts when all required clients are active and | Sustain phase: | |||
operating at their desired load condition. In the sustain phase, | This phase starts when all required clients are active and | |||
the test equipment MUST continue generating traffic to a constant | operating at their desired load condition. In the sustain phase, | |||
target value for a constant number of active clients. The | the test equipment MUST continue generating traffic to a constant | |||
minimum RECOMMENDED time duration for sustain phase is 300 | target value for a constant number of active clients. The minimum | |||
seconds. This is the phase where measurements occur. The test | RECOMMENDED time duration for the sustain phase is 300 seconds. | |||
equipment MUST measure and record statistics continuously. The | This is the phase where measurements occur. The test equipment | |||
sampling interval for collecting the raw results and calculating | MUST measure and record statistics continuously. The sampling | |||
the statistics MUST be less than 2 seconds. | interval for collecting the raw results and calculating the | |||
statistics MUST be less than 2 seconds. | ||||
4. Ramp down phase: The test traffic slows down from the target | Ramp Down phase: | |||
number to 0, and no measurements are made. | The test traffic slows down from the target number to 0, and no | |||
measurements are made. | ||||
5. Collection phase: The last phase is administrative and will occur | Collection phase: | |||
when the test equipment merges and collates the report data. | The last phase is administrative and will occur when the test | |||
equipment merges and collates the report data. | ||||
5. Testbed Considerations | 5. Testbed Considerations | |||
This section describes steps for a reference test (pre-test) that | This section describes steps for a reference test (pre-test) that | |||
control the test environment including test equipment, focusing on | controls the test environment, including test equipment, focusing on | |||
physical and virtualized environments and as well as test equipment. | physical and virtualized environments and test equipment. Below are | |||
Below are the RECOMMENDED steps for the reference test. | the RECOMMENDED steps for the reference test. | |||
1. Perform the reference test either by configuring the DUT/SUT in | 1. Perform the reference test either by configuring the DUT/SUT in | |||
the most trivial setup (fast forwarding) or without the presence | the most trivial setup (fast forwarding) or without the presence | |||
of the DUT/SUT. | of the DUT/SUT. | |||
2. Generate traffic from traffic generator. Choose a traffic | 2. Generate traffic from the traffic generator. Choose a traffic | |||
profile used for the HTTP or HTTPS throughput performance test | profile used for the HTTP or HTTPS throughput performance test | |||
with the smallest object size. | with the smallest object size. | |||
3. Ensure that any ancillary switching or routing functions added in | 3. Ensure that any ancillary switching or routing functions added in | |||
the test equipment do not limit the performance by introducing | the test equipment do not limit performance by introducing packet | |||
network metrics such as packet loss and latency. This is | loss or latency. This is specifically important for virtualized | |||
specifically important for virtualized components (e.g., | components (e.g., vSwitches or vRouters). | |||
vSwitches, vRouters). | ||||
4. Verify that the generated traffic (performance) of the test | 4. Verify that the generated traffic (performance) of the test | |||
equipment matches and reasonably exceeds the expected maximum | equipment matches and reasonably exceeds the expected maximum | |||
performance of the DUT/SUT. | performance of the DUT/SUT. | |||
5. Record the network performance metrics packet loss and latency | 5. Record the network performance metrics packet loss and latency | |||
introduced by the test environment (without DUT/SUT). | introduced by the test environment (without the DUT/SUT). | |||
6. Assert that the testbed characteristics are stable during the | 6. Assert that the testbed characteristics are stable during the | |||
entire test session. Several factors might influence stability | entire test session. Several factors might influence stability, | |||
specifically, for virtualized testbeds. For example, additional | specifically for virtualized testbeds, for example, additional | |||
workloads in a virtualized system, load balancing, and movement | workloads in a virtualized system, load balancing, and movement | |||
of virtual machines during the test, or simple issues such as | of virtual machines during the test or simple issues, such as | |||
additional heat created by high workloads leading to an emergency | additional heat created by high workloads leading to an emergency | |||
CPU performance reduction. | CPU performance reduction. | |||
The reference test MUST be performed before the benchmarking tests | The reference test MUST be performed before the benchmarking tests | |||
(described in section 7) start. | (described in Section 7) start. | |||
6. Reporting | 6. Reporting | |||
This section describes how the benchmarking test report should be | This section describes how the benchmarking test report should be | |||
formatted and presented. It is RECOMMENDED to include two main | formatted and presented. It is RECOMMENDED to include two main | |||
sections in the report: the introduction and the detailed test | sections in the report: the introduction and the detailed test | |||
results sections. | results sections. | |||
6.1. Introduction | 6.1. Introduction | |||
The following attributes should be present in the introduction | The following attributes should be present in the introduction | |||
section of the test report. | section of the test report. | |||
1. The time and date of the execution of the tests | 1. Time and date of the execution of the tests | |||
2. Summary of testbed software and hardware details | 2. Summary of testbed software and hardware details | |||
a. DUT/SUT hardware/virtual configuration | a. DUT/SUT hardware/virtual configuration | |||
* This section should clearly identify the make and model of | * Make and model of the DUT/SUT, which should be clearly | |||
the DUT/SUT | identified | |||
* The port interfaces, including speed and link information | * Port interfaces, including speed and link information | |||
* If the DUT/SUT is a Virtual Network Function (VNF), host | * If the DUT/SUT is a Virtual Network Function (VNF) | |||
(server) hardware and software details, interface | ||||
acceleration type such as DPDK and SR-IOV, used CPU cores, | ||||
used RAM, resource sharing (e.g. Pinning details and NUMA | ||||
Node) configuration details, hypervisor version, virtual | ||||
switch version | ||||
* details of any additional hardware relevant to the DUT/SUT | * Host (server) hardware and software details | |||
such as controllers | ||||
* Interface acceleration type (such as Data Plane | ||||
Development Kit (DPDK) and single-root input/output | ||||
virtualization (SR-IOV)) | ||||
* Used CPU cores | ||||
* Used RAM | ||||
* Resource sharing (e.g., pinning details and Non-Uniform | ||||
Memory Access (NUMA) node) configuration details | ||||
* Hypervisor version | ||||
* Virtual switch version | ||||
* Details of any additional hardware relevant to the DUT/ | ||||
SUT, such as controllers | ||||
b. DUT/SUT software | b. DUT/SUT software | |||
* Operating system name | * Operating system name | |||
* Version | * Version | |||
* Specific configuration details (if any) | * Specific configuration details (if any) | |||
c. DUT/SUT enabled features | c. DUT-/SUT-enabled features | |||
* Configured DUT/SUT features (see Table 2 and Table 3) | * Configured DUT/SUT features (see Tables 2 and 3) | |||
* Attributes of the above-mentioned features | * Attributes of the abovementioned features | |||
* Any additional relevant information about the features | * Any additional relevant information about the features | |||
d. Test equipment hardware and software | d. Test equipment hardware and software | |||
* Test equipment vendor name | * Test equipment vendor name | |||
* Hardware details including model number, interface type | * Hardware details, including model number and interface | |||
type | ||||
* Test equipment firmware and test application software | * Test equipment firmware and test application software | |||
version | version | |||
* If the test equipment is a virtual solution, the host | * If the test equipment is a virtual solution | |||
(server) hardware and software details, interface | ||||
acceleration type such as DPDK and SR-IOV, used CPU cores, | * The host (server) hardware and software details | |||
used RAM, resource sharing (e.g. Pinning details and NUMA | ||||
Node) configuration details, hypervisor version, virtual | * Interface acceleration type (such as DPDK and SR-IOV) | |||
switch version | ||||
* Used CPU cores | ||||
* Used RAM | ||||
* Resource sharing (e.g., pinning details and NUMA node) | ||||
configuration details | ||||
* Hypervisor version | ||||
* Virtual switch version | ||||
e. Key test parameters | e. Key test parameters | |||
* Used cipher suites and keys | * Used cipher suites and keys | |||
* IPv4 and IPv6 traffic distribution | * IPv4 and IPv6 traffic distribution | |||
* Number of configured ACL | * Number of configured ACLs | |||
* TCP, UDP stack parameter if tested | * TCP and UDP stack parameter, if tested | |||
* QUIC, HTTP/2, and HTTP/3 parameters if tested | * QUIC, HTTP/2, and HTTP/3 parameters, if tested | |||
f. Details of application traffic mix used in the benchmarking | f. Details of the application traffic mix used in the | |||
test "Throughput Performance with Application Traffic Mix" | benchmarking test Throughput Performance with Application | |||
(Section 7.1) | Traffic Mix (Section 7.1) | |||
* Name of applications and layer 7 protocols | * Name of applications and layer 7 protocols | |||
* Percentage of emulated traffic for each application and | * Percentage of emulated traffic for each application and | |||
layer 7 protocols | layer 7 protocols | |||
* Percentage of encrypted traffic and used cipher suites and | * Percentage of encrypted traffic, used cipher suites, and | |||
keys (The RECOMMENDED ciphers and keys are defined in | keys (the RECOMMENDED ciphers and keys are defined in | |||
Section 4.3.1.4) | Section 4.3.1.4) | |||
* Used object sizes for each application and layer 7 | * Used object sizes for each application and layer 7 | |||
protocols | protocols | |||
3. Results Summary / Executive Summary | 3. Results Summary / Executive Summary | |||
a. Results should be presented with an introduction section | a. Results should be presented with an introduction section | |||
documenting the summary of results in a prominent, easy to | documenting the summary of results in a prominent, easy-to- | |||
read block. | read block. | |||
6.2. Detailed Test Results | 6.2. Detailed Test Results | |||
In the result section of the test report, the following attributes | In the results section of the test report, the following attributes | |||
should be present for each benchmarking test. | should be present for each benchmarking test. | |||
a. KPIs MUST be documented separately for each benchmarking test. | a. KPIs MUST be documented separately for each benchmarking test. | |||
The format of the KPI metrics MUST be presented as described in | The format of the KPI metrics MUST be presented as described in | |||
Section 6.3. | Section 6.3. | |||
b. The next level of detail should be graphs showing each of these | b. The next level of details should be graphs showing each of these | |||
metrics over the duration (sustain phase) of the test. This | metrics over the duration (sustain phase) of the test. This | |||
allows the user to see the measured performance stability changes | allows the user to see the measured performance stability changes | |||
over time. | over time. | |||
6.3. Benchmarks and Key Performance Indicators | 6.3. Benchmarks and Key Performance Indicators | |||
This section lists key performance indicators (KPIs) for overall | This section lists key performance indicators (KPIs) for overall | |||
benchmarking tests. All KPIs MUST be measured during the sustain | benchmarking tests. All KPIs MUST be measured during the sustain | |||
phase of the traffic load profile described in Section 4.3.4. Also, | phase of the traffic load profile described in Section 4.3.4. Also, | |||
the KPIs MUST be measured from the result output of test equipment. | the KPIs MUST be measured from the result output of test equipment. | |||
* Concurrent TCP Connections | Concurrent TCP Connections | |||
The aggregate number of simultaneous connections between hosts | The aggregate number of simultaneous connections between hosts | |||
across the DUT/SUT, or between hosts and the DUT/SUT (defined in | across the DUT/SUT or between hosts and the DUT/SUT (defined in | |||
[RFC2647]). | [RFC2647]). | |||
* Concurrent QUIC Connections | Concurrent QUIC Connections | |||
The aggregate number of simultaneous connections between hosts | The aggregate number of simultaneous connections between hosts | |||
across the DUT/SUT. | across the DUT/SUT. | |||
* TCP Connections Per Second | TCP Connections Per Second | |||
The average number of successfully established TCP connections per | The average number of successfully established TCP connections per | |||
second between hosts across the DUT/SUT, or between hosts and the | second between hosts across the DUT/SUT or between hosts and the | |||
DUT/SUT. As described in Section 4.3.1.1, the TCP connections are | DUT/SUT. As described in Section 4.3.1.1, the TCP connections are | |||
initiated by clients via a TCP three-way handshake (SYN, SYN/ACK, | initiated by clients via a TCP three-way handshake (SYN, SYN/ACK, | |||
ACK). Then the TCP session data is sent and then the TCP sessions | ACK). Then, the TCP session data is sent, and then the TCP | |||
are closed via either a TCP three-way close (FIN, FIN/ACK, ACK) or | sessions are closed via either a TCP three-way close (FIN, FIN/ | |||
a TCP four-way close (FIN, ACK, FIN, ACK). The TCP sessions MUST | ACK, ACK) or a TCP four-way close (FIN, ACK, FIN, ACK). The TCP | |||
NOT be closed by RST. | sessions MUST NOT be closed by RST. | |||
* QUIC Connections Per Second | ||||
QUIC Connections Per Second | ||||
The average number of successfully established QUIC connections | The average number of successfully established QUIC connections | |||
per second between hosts across the DUT/SUT. As described in | per second between hosts across the DUT/SUT. As described in | |||
Section 4.3.1.2, the QUIC connections are initiated by clients. | Section 4.3.1.2, the QUIC connections are initiated by clients. | |||
Then the data is sent and then the QUIC sessions are closed by | Then, the data is sent, and then the QUIC sessions are closed by | |||
"immediate close" method. | the "immediate close" method. | |||
Since QUIC specification defined in Section 4.3.1.2 recommends | Since the QUIC specification defined in Section 4.3.1.2 recommends | |||
disabling 0-RTT and early data, this KPI focused on 1-RTT | disabling 0-RTT and early data, this KPI is focused on the 1-RTT | |||
handshake. If required, 0-RTT can be also measured in separate | handshake. If required, 0-RTT can be also measured in separate | |||
test runs while enabling 0-RTT and early data in the test | test runs while enabling 0-RTT and early data in the test | |||
equipment. | equipment. | |||
* Application Transactions Per Second | Application Transactions Per Second | |||
The average number of successfully completed transactions per | The average number of successfully completed transactions per | |||
second. For a particular transaction to be considered successful, | second. For a particular transaction to be considered successful, | |||
all data MUST have been transferred in its entirety. In case of | all data MUST have been transferred in its entirety. In case of | |||
HTTP(S) transactions, it MUST have a valid status code (200 OK). | an HTTP(S) transaction, it MUST have a valid status code (200 OK). | |||
* TLS Handshake Rate | ||||
TLS Handshake Rate | ||||
The average number of successfully established TLS connections per | The average number of successfully established TLS connections per | |||
second between hosts across the DUT/SUT, or between hosts and the | second between hosts across the DUT/SUT or between hosts and the | |||
DUT/SUT. | DUT/SUT. | |||
For TLS1.3 the handshake rate can be measured with 0-RTT or 1-RTT | For TLS 1.3, the handshake rate can be measured with the 0-RTT or | |||
handshake. The transport protocol can be either TCP or QUIC. | 1-RTT handshake. The transport protocol can be either TCP or | |||
QUIC. | ||||
* Inspected Throughput | ||||
Inspected Throughput | ||||
The number of bits per second of examined and allowed traffic a | The number of bits per second of examined and allowed traffic a | |||
network security device is able to transmit to the correct | network security device is able to transmit to the correct | |||
destination interface(s) in response to a specified offered load. | destination interface(s) in response to a specified offered load. | |||
The throughput benchmarking tests defined in Section 7 SHOULD | The throughput benchmarking tests defined in Section 7 SHOULD | |||
measure the average Layer 2 throughput value when the DUT/SUT is | measure the average layer 2 throughput value when the DUT/SUT is | |||
"inspecting" traffic. It is also acceptable to measure other OSI | "inspecting" traffic. It is also acceptable to measure other OSI | |||
Layer throughput. However, the measured layer (e.g. Layer 3 | layer throughput. However, the measured layer (e.g., layer 3 | |||
throughput) MUST be noted in the report and the user MUST be aware | throughput) MUST be noted in the report, and the user MUST be | |||
of the implication while comparing the throughput performance of | aware of the implication while comparing the throughput | |||
multiple DUT/SUTs measured in different OSI Layers. This document | performance of multiple DUTs/SUTs measured in different OSI | |||
recommends presenting the inspected throughput value in Gbit/s | layers. This document recommends presenting the inspected | |||
rounded to two places of precision with a more specific Kbit/s in | throughput value in Gbit/s rounded to two places of precision with | |||
parenthesis. | a more specific kbit/s in parenthesis. | |||
* Time to First Byte (TTFB) | ||||
TTFB is the elapsed time between the start of sending the TCP SYN | Time to First Byte (TTFB) | |||
packet or QUIC initial Client Hello from the client and the client | The elapsed time between the start of sending the TCP SYN packet | |||
or QUIC initial Client Hello from the client and the client | ||||
receiving the first packet of application data from the server via | receiving the first packet of application data from the server via | |||
DUT/SUT. The benchmarking tests HTTP Transaction Latency | the DUT/SUT. The benchmarking tests HTTP transaction latency | |||
(Section 7.4) and HTTPS Transaction Latency (Section 7.8) measure | (Section 7.4) and HTTPS transaction latency (Section 7.8) measure | |||
the minimum, average and maximum TTFB. The value should be | the minimum, average, and maximum TTFB. The value should be | |||
expressed in milliseconds. | expressed in milliseconds. | |||
* URL Response time / Time to Last Byte (TTLB) | URL Response Time / Time to Last Byte (TTLB) | |||
The elapsed time between the start of sending the TCP SYN packet | ||||
URL Response time / TTLB is the elapsed time between the start of | or QUIC initial Client Hello from the client and the client | |||
sending the TCP SYN packet or QUIC initial Client Hello from the | receiving the last packet of application data from the server via | |||
client and the client receiving the last packet of application | the DUT/SUT. The benchmarking tests HTTP transaction latency | |||
data from the server via DUT/SUT. The benchmarking tests HTTP | (Section 7.4) and HTTPS transaction latency (Section 7.8) measure | |||
Transaction Latency (Section 7.4) and HTTPS Transaction Latency | the minimum, average, and maximum TTLB. The value should be | |||
(Section 7.8) measure the minimum, average and maximum TTLB. The | expressed in milliseconds. | |||
value should be expressed in milliseconds. | ||||
7. Benchmarking Tests | 7. Benchmarking Tests | |||
This section mainly focuses on the benchmarking tests with HTTP/1.1 | This section mainly focuses on the benchmarking tests with HTTP/1.1 | |||
or HTTP/2 traffic which uses TCP as the transport protocol. In | or HTTP/2 traffic, which uses TCP as the transport protocol. In | |||
particular, this section does not define specific benchmarking tests | particular, this section does not define specific benchmarking tests | |||
for QUIC or HTTP/3 related KPIs. However, the test methodology | for KPIs related to QUIC or HTTP/3. However, the test methodology | |||
defined in the benchmarking tests TCP/QUIC Connections Per Second | defined in the benchmarking tests TCP or QUIC connections per second | |||
with HTTPS Traffic (Section 7.6), HTTPS Transaction Latency | with HTTPS traffic (Section 7.6), HTTPS transaction latency | |||
(Section 7.8), HTTPS Throughput (Section 7.7), and Concurrent TCP/ | (Section 7.8), HTTPS throughput (Section 7.7), and concurrent TCP or | |||
QUIC Connection Capacity with HTTPS Traffic (Section 7.9) can be used | QUIC connection capacity with HTTPS traffic (Section 7.9) can be used | |||
to test QUIC or HTTP/3 related KPIs. The throughput performance test | to test KPIs related to QUIC or HTTP/3. The throughput performance | |||
with the application traffic mix defined in Section 7.1 can be | test with the application traffic mix defined in Section 7.1 can be | |||
performed with any other application traffic including HTTP/3. | performed with any other application traffic, including HTTP/3. | |||
7.1. Throughput Performance with Application Traffic Mix | 7.1. Throughput Performance with Application Traffic Mix | |||
7.1.1. Objective | 7.1.1. Objective | |||
Using a relevant application traffic mix, determine the sustainable | Using a relevant application traffic mix, determine the sustainable | |||
inspected throughput supported by the DUT/SUT. | inspected throughput supported by the DUT/SUT. | |||
Based on the test customer's specific use case, testers can choose | Based on the test customer's specific use case, testers can choose | |||
the relevant application traffic mix for this test. The details | the relevant application traffic mix for this test. The details | |||
about the traffic mix MUST be documented in the report. At least the | about the traffic mix MUST be documented in the report. At least, | |||
following traffic mix details MUST be documented and reported | the following traffic mix details MUST be documented and reported | |||
together with the test results: | together with the test results: | |||
Name of applications and layer 7 protocols | * Name of applications and layer 7 protocols | |||
Percentage of emulated traffic for each application and layer 7 | * Percentage of emulated traffic for each application and layer 7 | |||
protocol | protocol | |||
Percentage of encrypted traffic and used cipher suites and keys | * Percentage of encrypted traffic and used cipher suites and keys | |||
(The RECOMMENDED ciphers and keys are defined in Section 4.3.1.4.) | (the RECOMMENDED ciphers and keys are defined in Section 4.3.1.4) | |||
Used object sizes for each application and layer 7 protocols | * Used object sizes for each application and layer 7 protocols | |||
7.1.2. Test Setup | 7.1.2. Test Setup | |||
Testbed setup MUST be configured as defined in Section 4. Any | The testbed setup MUST be configured as defined in Section 4. Any | |||
benchmarking test specific testbed configuration changes MUST be | benchmarking-test-specific testbed configuration changes MUST be | |||
documented. | documented. | |||
7.1.3. Test Parameters | 7.1.3. Test Parameters | |||
In this section, the benchmarking test specific parameters are | In this section, the benchmarking-test-specific parameters are | |||
defined. | defined. | |||
7.1.3.1. DUT/SUT Configuration Parameters | 7.1.3.1. DUT/SUT Configuration Parameters | |||
DUT/SUT parameters MUST conform to the requirements defined in | DUT/SUT parameters MUST conform to the requirements defined in | |||
Section 4.2. Any configuration changes for this specific | Section 4.2. Any configuration changes for this specific | |||
benchmarking test MUST be documented. In case the DUT/SUT is | benchmarking test MUST be documented. If the DUT/SUT is configured | |||
configured without TLS inspection, the test report MUST explain the | without TLS inspection, the test report MUST explain how this impacts | |||
implications of this to the relevant application traffic mix | the encrypted traffic of the relevant application traffic mix. | |||
encrypted traffic. | ||||
7.1.3.2. Test Equipment Configuration Parameters | 7.1.3.2. Test Equipment Configuration Parameters | |||
Test equipment configuration parameters MUST conform to the | Test equipment configuration parameters MUST conform to the | |||
requirements defined in Section 4.3. The following parameters MUST | requirements defined in Section 4.3. The following parameters MUST | |||
be documented for this benchmarking test: | be documented for this benchmarking test: | |||
Client IP address ranges defined in Section 4.3.1.3 | * Client IP address ranges defined in Section 4.3.1.3 | |||
Server IP address ranges defined in Section 4.3.2.3 | * Server IP address ranges defined in Section 4.3.2.3 | |||
Traffic distribution ratio between IPv4 and IPv6 defined in | * Traffic distribution ratio between IPv4 and IPv6 defined in | |||
Section 4.3.1.3 | Section 4.3.1.3 | |||
Target inspected throughput: Aggregated line rate of the | ||||
interface(s) used in the DUT/SUT or the value defined based on the | * Target inspected throughput: Aggregated line rate of one or more | |||
interfaces used in the DUT/SUT or the value defined based on the | ||||
requirement for a specific deployment scenario | requirement for a specific deployment scenario | |||
Initial throughput: 10% of the "Target inspected throughput" Note: | * Initial throughput: 10% of the "Target inspected throughput" | |||
Initial throughput is not a KPI to report. This value is | ||||
configured on the traffic generator and used to perform Step 1: | Note: Initial throughput is not a KPI to report. This value is | |||
"Test Initialization and Qualification" described under | configured on the traffic generator and used to perform Step 1 | |||
(Test Initialization and Qualification) described in | ||||
Section 7.1.4. | Section 7.1.4. | |||
One of the ciphers and keys defined in Section 4.3.1.4 are | * One of the ciphers and keys defined in Section 4.3.1.4 is | |||
RECOMMENDED to use for this benchmarking test. | RECOMMENDED to use for this benchmarking test. | |||
7.1.3.3. Traffic Profile | 7.1.3.3. Traffic Profile | |||
Traffic profile: This test MUST be run with a relevant application | This test MUST be run with a relevant application traffic mix | |||
traffic mix profile. | profile. | |||
7.1.3.4. Test Results Validation Criteria | 7.1.3.4. Test Results Validation Criteria | |||
The following criteria are the test results validation criteria. The | The following criteria are the test results validation criteria. The | |||
test results validation criteria MUST be monitored during the whole | test results validation criteria MUST be monitored during the whole | |||
sustain phase of the traffic load profile. | sustain phase of the traffic load profile. | |||
a. Number of failed application transactions MUST be less than | a. The number of failed application transactions MUST be less than | |||
0.001% (1 out of 100,000 transactions) of total attempted | 0.001% (1 out of 100,000 transactions) of the attempted | |||
transactions. | transactions. | |||
b. Number of Terminated TCP connections due to unexpected TCP RST | b. The number of terminated TCP connections due to unexpected TCP | |||
sent by DUT/SUT MUST be less than 0.001% (1 out of 100,000 | RST sent by the DUT/SUT MUST be less than 0.001% (1 out of | |||
connections) of total initiated TCP connections. | 100,000 connections) of the total initiated TCP connections. | |||
c. If HTTP/3 is used, the number of failed QUIC connections due to | c. If HTTP/3 is used, the number of failed QUIC connections due to | |||
unexpected HTTP/3 error codes MUST be less than 0.001% (1 out of | unexpected HTTP/3 error codes MUST be less than 0.001% (1 out of | |||
100,000 connections) of total initiated QUIC connections. | 100,000 connections) of the total initiated QUIC connections. | |||
7.1.3.5. Measurement | 7.1.3.5. Measurement | |||
The following KPI metrics MUST be reported for this benchmarking | The following KPI metrics MUST be reported for this benchmarking | |||
test: | test: | |||
Mandatory KPIs (benchmarks): Inspected Throughput and Application | * Mandatory KPIs (benchmarks): inspected throughput and application | |||
Transactions Per Second | transactions per second | |||
Note: TTLB MUST be reported along with the object size used in the | Note: The TTLB MUST be reported along with the object size used in | |||
traffic profile. | the traffic profile. | |||
Optional TCP stack related KPIs: TCP Connections Per Second, TLS | * Optional TCP-stack-related KPIs: TCP connections per second, TLS | |||
Handshake Rate, TTFB (minimum, average, and maximum), TTLB (minimum, | handshake rate, TTFB (minimum, average, and maximum), TTLB | |||
average, and maximum) | (minimum, average, and maximum) | |||
Optional QUIC stack related KPIs: QUIC connection per second and | * Optional QUIC-stack-related KPIs: QUIC connections per second and | |||
concurrent QUIC connections | concurrent QUIC connections | |||
7.1.4. Test Procedures and Expected Results | 7.1.4. Test Procedures and Expected Results | |||
The test procedures are designed to measure the inspected throughput | The test procedures are designed to measure the inspected throughput | |||
performance of the DUT/SUT at the sustaining period of the traffic | performance of the DUT/SUT at the sustaining period of the traffic | |||
load profile. The test procedure consists of three major steps: Step | load profile. The test procedure consists of three major steps. | |||
1 ensures the DUT/SUT is able to reach the performance value (initial | Step 1 ensures the DUT/SUT is able to reach the performance value | |||
throughput) and meets the test results validation criteria when it | (initial throughput) and meets the test results validation criteria | |||
was very minimally utilized. Step 2 determines whether the DUT/SUT | when it was very minimally utilized. Step 2 determines whether the | |||
is able to reach the target performance value within the test results | DUT/SUT is able to reach the target performance value within the test | |||
validation criteria. Step 3 determines the maximum achievable | results validation criteria. Step 3 determines the maximum | |||
performance value within the test results validation criteria. | achievable performance value within the test results validation | |||
criteria. | ||||
This test procedure MAY be repeated multiple times with different IP | This test procedure MAY be repeated multiple times with different IP | |||
types: IPv4 only, IPv6 only, and IPv4 and IPv6 mixed traffic | types: IPv4 only, IPv6 only, and IPv4 and IPv6 mixed traffic | |||
distribution. | distribution. | |||
7.1.4.1. Step 1: Test Initialization and Qualification | 7.1.4.1. Step 1: Test Initialization and Qualification | |||
Verify the link status of all connected physical interfaces. All | Verify the link status of all connected physical interfaces. All | |||
interfaces are expected to be in "UP" status. | interfaces are expected to be in "UP" status. | |||
Configure the traffic load profile of the test equipment to generate | Configure the traffic load profile of the test equipment to generate | |||
test traffic at the "Initial throughput" rate as described in | test traffic at the "initial throughput" rate, as described in | |||
Section 7.1.3.2. The test equipment MUST follow the traffic load | Section 7.1.3.2. The test equipment MUST follow the traffic load | |||
profile definition as described in Section 4.3.4. The DUT/SUT MUST | profile definition described in Section 4.3.4. The DUT/SUT MUST | |||
reach the "Initial throughput" during the sustain phase. Measure all | reach the "initial throughput" during the sustain phase. Measure all | |||
KPI as defined in Section 7.1.3.5. The measured KPIs during the | KPIs, as defined in Section 7.1.3.5. The measured KPIs during the | |||
sustain phase MUST meet all the test results validation criteria | sustain phase MUST meet all the test results validation criteria | |||
defined in Section 7.1.3.4. | defined in Section 7.1.3.4. | |||
If the KPI metrics do not meet the test results validation criteria, | If the KPI metrics do not meet the test results validation criteria, | |||
the test procedure MUST NOT be continued to step 2. | the test procedure MUST NOT be continued to Step 2. | |||
7.1.4.2. Step 2: Test Run with Target Objective | 7.1.4.2. Step 2: Test Run with Target Objective | |||
Configure test equipment to generate traffic at the "Target inspected | Configure test equipment to generate traffic at the "Target inspected | |||
throughput" rate defined in Section 7.1.3.2. The test equipment MUST | throughput" rate defined in Section 7.1.3.2. The test equipment MUST | |||
follow the traffic load profile definition as described in | follow the traffic load profile definition described in | |||
Section 4.3.4. The test equipment MUST start to measure and record | Section 4.3.4. The test equipment MUST start to measure and record | |||
all specified KPIs. Continue the test until all traffic profile | all specified KPIs. Continue the test until all traffic profile | |||
phases are completed. | phases are completed. | |||
Within the test results validation criteria, the DUT/SUT is expected | Within the test results validation criteria, the DUT/SUT is expected | |||
to reach the desired value of the target objective ("Target inspected | to reach the desired value of the target objective ("Target inspected | |||
throughput") in the sustain phase. Follow step 3, if the measured | throughput") in the sustain phase. Follow Step 3 if the measured | |||
value does not meet the target value or does not fulfill the test | value does not meet the target value or does not fulfill the test | |||
results validation criteria. | results validation criteria. | |||
7.1.4.3. Step 3: Test Iteration | 7.1.4.3. Step 3: Test Iteration | |||
Determine the achievable average inspected throughput within the test | Determine the achievable average inspected throughput within the test | |||
results validation criteria. The final test iteration MUST be | results validation criteria. The final test iteration MUST be | |||
performed for the test duration defined in Section 4.3.4. | performed for the test duration defined in Section 4.3.4. | |||
7.2. TCP/HTTP Connections Per Second | 7.2. TCP Connections Per Second with HTTP Traffic | |||
7.2.1. Objective | 7.2.1. Objective | |||
Using HTTP traffic, determine the sustainable TCP connection | Using HTTP traffic, determine the sustainable TCP connection | |||
establishment rate supported by the DUT/SUT under different | establishment rate supported by the DUT/SUT under different | |||
throughput load conditions. | throughput load conditions. | |||
To measure connections per second, test iterations MUST use different | To measure connections per second, test iterations MUST use different | |||
fixed HTTP response object sizes (the different load conditions) | fixed HTTP response object sizes (the different load conditions) | |||
defined in Section 7.2.3.2. | defined in Section 7.2.3.2. | |||
7.2.2. Test Setup | 7.2.2. Test Setup | |||
Testbed setup MUST be configured as defined in Section 4. Any | The testbed setup MUST be configured as defined in Section 4. Any | |||
specific testbed configuration changes (number of interfaces and | specific testbed configuration changes (number of interfaces, | |||
interface type, etc.) MUST be documented. | interface type, etc.) MUST be documented. | |||
7.2.3. Test Parameters | 7.2.3. Test Parameters | |||
In this section, benchmarking test specific parameters are defined. | In this section, benchmarking-test-specific parameters are defined. | |||
7.2.3.1. DUT/SUT Configuration Parameters | 7.2.3.1. DUT/SUT Configuration Parameters | |||
DUT/SUT parameters MUST conform to the requirements defined in | DUT/SUT parameters MUST conform to the requirements defined in | |||
Section 4.2. Any configuration changes for this specific | Section 4.2. Any configuration changes for this specific | |||
benchmarking test MUST be documented. | benchmarking test MUST be documented. | |||
7.2.3.2. Test Equipment Configuration Parameters | 7.2.3.2. Test Equipment Configuration Parameters | |||
Test equipment configuration parameters MUST conform to the | Test equipment configuration parameters MUST conform to the | |||
requirements defined in Section 4.3. The following parameters MUST | requirements defined in Section 4.3. The following parameters MUST | |||
be documented for this benchmarking test: | be documented for this benchmarking test: | |||
Client IP address ranges defined in Section 4.3.1.3 | * Client IP address ranges defined in Section 4.3.1.3 | |||
Server IP address ranges defined in Section 4.3.2.3 | ||||
Traffic distribution ratio between IPv4 and IPv6 defined in | * Server IP address ranges defined in Section 4.3.2.3 | |||
Section 4.3.1.3 | ||||
Target connections per second: Initial value from product datasheet | * Traffic distribution ratio between IPv4 and IPv6 defined in | |||
or the value defined based on the requirement for a specific | Section 4.3.1.3 | |||
deployment scenario | ||||
Initial connections per second: 10% of "Target connections per | * Target connections per second: Initial value from the product | |||
second" (Note: Initial connections per second is not a KPI to report. | datasheet or the value defined based on the requirement for a | |||
This value is configured on the traffic generator and used to perform | specific deployment scenario | |||
Step1: "Test Initialization and Qualification" described under | ||||
Section 7.2.4.) | * Initial connections per second: 10% of "Target connections per | |||
second" | ||||
Note: Initial connections per second is not a KPI to report. This | ||||
value is configured on the traffic generator and used to perform | ||||
Step 1 (Test Initialization and Qualification) described in | ||||
Section 7.2.4. | ||||
* The RECOMMENDED response object sizes are 1, 2, 4, 16, and 64 KB. | ||||
The client MUST negotiate HTTP and close the connection with FIN | The client MUST negotiate HTTP and close the connection with FIN | |||
immediately after the completion of one transaction. In each test | immediately after the completion of one transaction. In each test | |||
iteration, the client MUST send a GET request requesting a fixed HTTP | iteration, the client MUST send a GET request requesting a fixed HTTP | |||
response object size. | response object size. | |||
The RECOMMENDED response object sizes are 1, 2, 4, 16, and 64 KByte. | ||||
7.2.3.3. Test Results Validation Criteria | 7.2.3.3. Test Results Validation Criteria | |||
The following criteria are the test results validation criteria. The | The following criteria are the test results validation criteria. The | |||
Test results validation criteria MUST be monitored during the whole | test results validation criteria MUST be monitored during the whole | |||
sustain phase of the traffic load profile. | sustain phase of the traffic load profile. | |||
a. Number of failed application transactions (receiving any HTTP | a. The number of failed application transactions (receiving any HTTP | |||
response code other than 200 OK) MUST be less than 0.001% (1 out | response code other than 200 OK) MUST be less than 0.001% (1 out | |||
of 100,000 transactions) of total attempted transactions. | of 100,000 transactions) of the attempted transactions. | |||
b. Number of terminated TCP connections due to unexpected TCP RST | b. The number of terminated TCP connections due to unexpected TCP | |||
sent by DUT/SUT MUST be less than 0.001% (1 out of 100,000 | RST sent by the DUT/SUT MUST be less than 0.001% (1 out of | |||
connections) of total initiated TCP connections. | 100,000 connections) of the total initiated TCP connections. | |||
c. During the sustain phase, traffic MUST be forwarded at a constant | c. During the sustain phase, traffic MUST be forwarded at a constant | |||
rate (considered as a constant rate if any deviation of traffic | rate (it is considered as a constant rate if any deviation of the | |||
forwarding rate is less than 5%). | traffic forwarding rate is less than 5%). | |||
d. Concurrent TCP connections MUST be constant during steady state | d. Concurrent TCP connections MUST be constant during steady state, | |||
and any deviation of concurrent TCP connections MUST be less than | and any deviation of concurrent TCP connections MUST be less than | |||
10%. This confirms the DUT opens and closes TCP connections at | 10%. This confirms the DUT opens and closes TCP connections at | |||
approximately the same rate. | approximately the same rate. | |||
7.2.3.4. Measurement | 7.2.3.4. Measurement | |||
TCP Connections Per Second MUST be reported for each test iteration | TCP connections per second MUST be reported for each test iteration | |||
(for each object size). | (for each object size). | |||
7.2.4. Test Procedures and Expected Results | 7.2.4. Test Procedures and Expected Results | |||
The test procedure is designed to measure the TCP connections per | The test procedure is designed to measure the DUT/SUT's rate of TCP | |||
second rate of the DUT/SUT at the sustaining period of the traffic | connections per second during the sustaining period of the traffic | |||
load profile. The test procedure consists of three major steps: Step | load profile. The test procedure consists of three major steps. | |||
1 ensures the DUT/SUT is able to reach the performance value (Initial | Step 1 ensures the DUT/SUT is able to reach the performance value | |||
connections per second) and meets the test results validation | (Initial connections per second) and meets the test results | |||
criteria when it was very minimally utilized. Step 2 determines | validation criteria when it was very minimally utilized. Step 2 | |||
whether the DUT/SUT is able to reach the target performance value | determines whether the DUT/SUT is able to reach the target | |||
within the test results validation criteria. Step 3 determines the | performance value within the test results validation criteria. Step | |||
maximum achievable performance value within the test results | 3 determines the maximum achievable performance value within the test | |||
validation criteria. | results validation criteria. | |||
This test procedure MAY be repeated multiple times with different IP | This test procedure MAY be repeated multiple times with different IP | |||
types: IPv4 only, IPv6 only, and IPv4 and IPv6 mixed traffic | types: IPv4 only, IPv6 only, and IPv4 and IPv6 mixed traffic | |||
distribution. | distribution. | |||
7.2.4.1. Step 1: Test Initialization and Qualification | 7.2.4.1. Step 1: Test Initialization and Qualification | |||
Verify the link status of all connected physical interfaces. All | Verify the link status of all connected physical interfaces. All | |||
interfaces are expected to be in "UP" status. | interfaces are expected to be in "UP" status. | |||
Configure the traffic load profile of the test equipment to establish | Configure the traffic load profile of the test equipment to establish | |||
"Initial connections per second" as defined in Section 7.2.3.2. The | "Initial connections per second", as defined in Section 7.2.3.2. The | |||
traffic load profile MUST be defined as described in Section 4.3.4. | traffic load profile MUST be defined as described in Section 4.3.4. | |||
The DUT/SUT MUST reach the "Initial connections per second" before | The DUT/SUT MUST reach the "Initial connections per second" before | |||
the sustain phase. The measured KPIs during the sustain phase MUST | the sustain phase. The measured KPIs during the sustain phase MUST | |||
meet all the test results validation criteria defined in | meet all the test results validation criteria defined in | |||
Section 7.2.3.3. | Section 7.2.3.3. | |||
If the KPI metrics do not meet the test results validation criteria, | If the KPI metrics do not meet the test results validation criteria, | |||
the test procedure MUST NOT continue to "Step 2". | the test procedure MUST NOT continue to Step 2. | |||
7.2.4.2. Step 2: Test Run with Target Objective | 7.2.4.2. Step 2: Test Run with Target Objective | |||
Configure test equipment to establish the target objective ("Target | Configure test equipment to establish the target objective ("Target | |||
connections per second") defined in Section 7.2.3.2. The test | connections per second") defined in Section 7.2.3.2. The test | |||
equipment MUST follow the traffic load profile definition as | equipment MUST follow the traffic load profile definition described | |||
described in Section 4.3.4. | in Section 4.3.4. | |||
During the ramp up and sustain phase of each test iteration, other | During the ramp up and sustain phases of each test iteration, other | |||
KPIs such as inspected throughput, concurrent TCP connections, and | KPIs, such as inspected throughput, concurrent TCP connections, and | |||
application transactions per second MUST NOT reach the maximum value | application transactions per second, MUST NOT reach the maximum value | |||
the DUT/SUT can support. The test results for specific test | the DUT/SUT can support. The test results for specific test | |||
iterations MUST NOT be reported as valid results if the above | iterations MUST NOT be reported as valid results if the | |||
mentioned KPI (especially inspected throughput) reaches the maximum | abovementioned KPI (especially inspected throughput) reaches the | |||
value. (Example: If the test iteration with 64 KByte of HTTP | maximum value. (For example, if the test iteration with 64 KB of | |||
response object size reached the maximum inspected throughput | HTTP response object size reached the maximum inspected throughput | |||
limitation of the DUT/SUT, the test iteration MAY be interrupted and | limitation of the DUT/SUT, the test iteration MAY be interrupted and | |||
the result for 64 KByte must not be reported.) | the result for 64 KB must not be reported.) | |||
The test equipment MUST start to measure and record all specified | The test equipment MUST start to measure and record all specified | |||
KPIs. Continue the test until all traffic profile phases are | KPIs. Continue the test until all traffic profile phases are | |||
completed. | completed. | |||
Within the test results validation criteria, the DUT/SUT is expected | Within the test results validation criteria, the DUT/SUT is expected | |||
to reach the desired value of the target objective ("Target | to reach the desired value of the target objective ("Target | |||
connections per second") in the sustain phase. Follow step 3, if the | connections per second") in the sustain phase. Follow Step 3 if the | |||
measured value does not meet the target value or does not fulfill the | measured value does not meet the target value or does not fulfill the | |||
test results validation criteria. | test results validation criteria. | |||
7.2.4.3. Step 3: Test Iteration | 7.2.4.3. Step 3: Test Iteration | |||
Determine the achievable TCP connections per second within the test | Determine the achievable TCP connections per second within the test | |||
results validation criteria. | results validation criteria. | |||
7.3. HTTP Throughput | 7.3. HTTP Throughput | |||
7.3.1. Objective | 7.3.1. Objective | |||
Determine the sustainable inspected throughput of the DUT/SUT for | Determine the sustainable inspected throughput of the DUT/SUT for | |||
HTTP transactions varying the HTTP response object size. | HTTP transactions varying the HTTP response object size. | |||
7.3.2. Test Setup | 7.3.2. Test Setup | |||
Testbed setup MUST be configured as defined in Section 4. Any | The testbed setup MUST be configured as defined in Section 4. Any | |||
specific testbed configuration changes (number of interfaces and | specific testbed configuration changes (number of interfaces, | |||
interface type, etc.) MUST be documented. | interface type, etc.) MUST be documented. | |||
7.3.3. Test Parameters | 7.3.3. Test Parameters | |||
In this section, benchmarking test specific parameters are defined. | In this section, benchmarking-test-specific parameters are defined. | |||
7.3.3.1. DUT/SUT Configuration Parameters | 7.3.3.1. DUT/SUT Configuration Parameters | |||
DUT/SUT parameters MUST conform to the requirements defined in | DUT/SUT parameters MUST conform to the requirements defined in | |||
Section 4.2. Any configuration changes for this specific | Section 4.2. Any configuration changes for this specific | |||
benchmarking test MUST be documented. | benchmarking test MUST be documented. | |||
7.3.3.2. Test Equipment Configuration Parameters | 7.3.3.2. Test Equipment Configuration Parameters | |||
Test equipment configuration parameters MUST conform to the | Test equipment configuration parameters MUST conform to the | |||
requirements defined in Section 4.3. The following parameters MUST | requirements defined in Section 4.3. The following parameters MUST | |||
be documented for this benchmarking test: | be documented for this benchmarking test: | |||
Client IP address ranges defined in Section 4.3.1.3 | * Client IP address ranges defined in Section 4.3.1.3 | |||
Server IP address ranges defined in Section 4.3.2.3 | * Server IP address ranges defined in Section 4.3.2.3 | |||
Traffic distribution ratio between IPv4 and IPv6 defined in | * Traffic distribution ratio between IPv4 and IPv6 defined in | |||
Section 4.3.1.3 | Section 4.3.1.3 | |||
Target inspected throughput: Aggregated line rate of the interface(s) | * Target inspected throughput: Aggregated line rate of one or more | |||
used in the DUT/SUT or the value defined based on the requirement for | interfaces used in the DUT/SUT or the value defined based on the | |||
a specific deployment scenario | requirement for a specific deployment scenario | |||
Initial throughput: 10% of "Target inspected throughput" Note: | * Initial throughput: 10% of "Target inspected throughput" | |||
Initial throughput is not a KPI to report. This value is configured | ||||
on the traffic generator and used to perform Step 1: "Test | ||||
Initialization and Qualification" described under Section 7.3.4. | ||||
Number of HTTP response object requests (transactions) per | Note: Initial throughput is not a KPI to report. This value is | |||
connection: 10 | configured on the traffic generator and used to perform Step 1 | |||
(Test Initialization and Qualification) described in | ||||
Section 7.3.4. | ||||
RECOMMENDED HTTP response object size: 1, 16, 64, 256 KByte, and | * Number of HTTP response object requests (transactions) per | |||
mixed objects defined in Table 4. | connection: 10 | |||
+=====================+============================+ | * RECOMMENDED HTTP response object size: 1, 16, 64, and 256 KB and | |||
| Object size (KByte) | Number of requests/ Weight | | mixed objects defined in Table 5 | |||
+=====================+============================+ | ||||
| 0.2 | 1 | | ||||
+---------------------+----------------------------+ | ||||
| 6 | 1 | | ||||
+---------------------+----------------------------+ | ||||
| 8 | 1 | | ||||
+---------------------+----------------------------+ | ||||
| 9 | 1 | | ||||
+---------------------+----------------------------+ | ||||
| 10 | 1 | | ||||
+---------------------+----------------------------+ | ||||
| 25 | 1 | | ||||
+---------------------+----------------------------+ | ||||
| 26 | 1 | | ||||
+---------------------+----------------------------+ | ||||
| 35 | 1 | | ||||
+---------------------+----------------------------+ | ||||
| 59 | 1 | | ||||
+---------------------+----------------------------+ | ||||
| 347 | 1 | | ||||
+---------------------+----------------------------+ | ||||
Table 4: Mixed Objects | +==================+=============================+ | |||
| Object size (KB) | Number of requests / Weight | | ||||
+==================+=============================+ | ||||
| 0.2 | 1 | | ||||
+------------------+-----------------------------+ | ||||
| 6 | 1 | | ||||
+------------------+-----------------------------+ | ||||
| 8 | 1 | | ||||
+------------------+-----------------------------+ | ||||
| 9 | 1 | | ||||
+------------------+-----------------------------+ | ||||
| 10 | 1 | | ||||
+------------------+-----------------------------+ | ||||
| 25 | 1 | | ||||
+------------------+-----------------------------+ | ||||
| 26 | 1 | | ||||
+------------------+-----------------------------+ | ||||
| 35 | 1 | | ||||
+------------------+-----------------------------+ | ||||
| 59 | 1 | | ||||
+------------------+-----------------------------+ | ||||
| 347 | 1 | | ||||
+------------------+-----------------------------+ | ||||
Table 5: Mixed Objects | ||||
7.3.3.3. Test Results Validation Criteria | 7.3.3.3. Test Results Validation Criteria | |||
The following criteria are the test results validation criteria. The | The following criteria are the test results validation criteria. The | |||
test results validation criteria MUST be monitored during the whole | test results validation criteria MUST be monitored during the whole | |||
sustain phase of the traffic load profile. | sustain phase of the traffic load profile. | |||
a. Number of failed application transactions (receiving any HTTP | a. The number of failed application transactions (receiving any HTTP | |||
response code other than 200 OK) MUST be less than 0.001% (1 out | response code other than 200 OK) MUST be less than 0.001% (1 out | |||
of 100,000 transactions) of attempt transactions. | of 100,000 transactions) of the total attempted transactions. | |||
b. Traffic MUST be forwarded at a constant rate (considered as a | b. Traffic MUST be forwarded at a constant rate (it is considered as | |||
constant rate if any deviation of traffic forwarding rate is less | a constant rate if any deviation of the traffic forwarding rate | |||
than 5%). | is less than 5%). | |||
c. Concurrent TCP connections MUST be constant during steady state | c. Concurrent TCP connections MUST be constant during steady state, | |||
and any deviation of concurrent TCP connections MUST be less than | and any deviation of concurrent TCP connections MUST be less than | |||
10%. This confirms the DUT opens and closes TCP connections at | 10%. This confirms the DUT opens and closes TCP connections at | |||
approximately the same rate. | approximately the same rate. | |||
7.3.3.4. Measurement | 7.3.3.4. Measurement | |||
Inspected Throughput and HTTP Transactions per Second MUST be | Inspected throughput and HTTP transactions per second MUST be | |||
reported for each object size. | reported for each object size. | |||
7.3.4. Test Procedures and Expected Results | 7.3.4. Test Procedures and Expected Results | |||
The test procedure is designed to measure HTTP throughput of the DUT/ | The test procedure is designed to measure HTTP throughput of the DUT/ | |||
SUT. The test procedure consists of three major steps: Step 1 | SUT. The test procedure consists of three major steps. Step 1 | |||
ensures the DUT/SUT is able to reach the performance value (Initial | ensures the DUT/SUT is able to reach the performance value (initial | |||
throughput) and meets the test results validation criteria when it | throughput) and meets the test results validation criteria when it | |||
was very minimal utilized. Step 2 determines whether the DUT/SUT is | was very minimally utilized. Step 2 determines whether the DUT/SUT | |||
able to reach the target performance value within the test results | is able to reach the target performance value within the test results | |||
validation criteria. Step 3 determines the maximum achievable | validation criteria. Step 3 determines the maximum achievable | |||
performance value within the test results validation criteria. | performance value within the test results validation criteria. | |||
This test procedure MAY be repeated multiple times with different | This test procedure MAY be repeated multiple times with different | |||
IPv4 and IPv6 traffic distribution and HTTP response object sizes. | IPv4 and IPv6 traffic distributions and HTTP response object sizes. | |||
7.3.4.1. Step 1: Test Initialization and Qualification | 7.3.4.1. Step 1: Test Initialization and Qualification | |||
Verify the link status of all connected physical interfaces. All | Verify the link status of all connected physical interfaces. All | |||
interfaces are expected to be in "UP" status. | interfaces are expected to be in "UP" status. | |||
Configure the traffic load profile of the test equipment to establish | Configure the traffic load profile of the test equipment to establish | |||
"Initial inspected throughput" as defined in Section 7.3.3.2. | "initial throughput", as defined in Section 7.3.3.2. | |||
The traffic load profile MUST be defined as described in | The traffic load profile MUST be defined as described in | |||
Section 4.3.4. The DUT/SUT MUST reach the "Initial inspected | Section 4.3.4. The DUT/SUT MUST reach the "initial throughput" | |||
throughput" during the sustain phase. Measure all KPI as defined in | during the sustain phase. Measure all KPIs, as defined in | |||
Section 7.3.3.4. | Section 7.3.3.4. | |||
The measured KPIs during the sustain phase MUST meet the test results | The measured KPIs during the sustain phase MUST meet the test results | |||
validation criteria "a" defined in Section 7.3.3.3. The test results | validation criteria "a" defined in Section 7.3.3.3. The test results | |||
validation criteria "b" and "c" are OPTIONAL for step 1. | validation criteria "b" and "c" are OPTIONAL for Step 1. | |||
If the KPI metrics do not meet the test results validation criteria, | If the KPI metrics do not meet the test results validation criteria, | |||
the test procedure MUST NOT be continued to "Step 2". | the test procedure MUST NOT be continued to Step 2. | |||
7.3.4.2. Step 2: Test Run with Target Objective | 7.3.4.2. Step 2: Test Run with Target Objective | |||
Configure test equipment to establish the target objective ("Target | Configure test equipment to establish the target objective ("Target | |||
inspected throughput") defined in Section 7.3.3.2. The test | inspected throughput") defined in Section 7.3.3.2. The test | |||
equipment MUST start to measure and record all specified KPIs. | equipment MUST start to measure and record all specified KPIs. | |||
Continue the test until all traffic profile phases are completed. | Continue the test until all traffic profile phases are completed. | |||
Within the test results validation criteria, the DUT/SUT is expected | Within the test results validation criteria, the DUT/SUT is expected | |||
to reach the desired value of the target objective in the sustain | to reach the desired value of the target objective in the sustain | |||
phase. Follow step 3, if the measured value does not meet the target | phase. Follow Step 3 if the measured value does not meet the target | |||
value or does not fulfill the test results validation criteria. | value or does not fulfill the test results validation criteria. | |||
7.3.4.3. Step 3: Test Iteration | 7.3.4.3. Step 3: Test Iteration | |||
Determine the achievable inspected throughput within the test results | Determine the achievable inspected throughput within the test results | |||
validation criteria and measure the KPI metric Transactions per | validation criteria and measure the KPI metric transactions per | |||
Second. The final test iteration MUST be performed for the test | second. The final test iteration MUST be performed for the test | |||
duration defined in Section 4.3.4. | duration defined in Section 4.3.4. | |||
7.4. HTTP Transaction Latency | 7.4. HTTP Transaction Latency | |||
7.4.1. Objective | 7.4.1. Objective | |||
Using HTTP traffic, determine the HTTP transaction latency when DUT | Using HTTP traffic, determine the HTTP transaction latency when the | |||
is running with sustainable HTTP transactions per second supported by | DUT is running with sustainable HTTP transactions per second | |||
the DUT/SUT under different HTTP response object sizes. | supported by the DUT/SUT under different HTTP response object sizes. | |||
Test iterations MUST be performed with different HTTP response object | Test iterations MUST be performed with different HTTP response object | |||
sizes in two different scenarios. One with a single transaction and | sizes in two different scenarios: one with a single transaction and | |||
the other with multiple transactions within a single TCP connection. | the other with multiple transactions within a single TCP connection. | |||
For consistency, both the single and multiple transaction tests MUST | For consistency, both the single and multiple transaction tests MUST | |||
be configured with the same HTTP version | be configured with the same HTTP version. | |||
Scenario 1: The client MUST negotiate HTTP and close the connection | Scenario 1: The client MUST negotiate HTTP and close the connection | |||
with FIN immediately after the completion of a single transaction | with FIN immediately after the completion of a single transaction | |||
(GET and RESPONSE). | (GET and RESPONSE). | |||
Scenario 2: The client MUST negotiate HTTP and close the connection | Scenario 2: The client MUST negotiate HTTP and close the connection | |||
FIN immediately after the completion of 10 transactions (GET and | with FIN immediately after the completion of 10 transactions (GET and | |||
RESPONSE) within a single TCP connection. | RESPONSE) within a single TCP connection. | |||
7.4.2. Test Setup | 7.4.2. Test Setup | |||
Testbed setup MUST be configured as defined in Section 4. Any | The testbed setup MUST be configured as defined in Section 4. Any | |||
specific testbed configuration changes (number of interfaces and | specific testbed configuration changes (number of interfaces, | |||
interface type, etc.) MUST be documented. | interface type, etc.) MUST be documented. | |||
7.4.3. Test Parameters | 7.4.3. Test Parameters | |||
In this section, benchmarking test specific parameters are defined. | In this section, benchmarking-test-specific parameters are defined. | |||
7.4.3.1. DUT/SUT Configuration Parameters | 7.4.3.1. DUT/SUT Configuration Parameters | |||
DUT/SUT parameters MUST conform to the requirements defined in | DUT/SUT parameters MUST conform to the requirements defined in | |||
Section 4.2. Any configuration changes for this specific | Section 4.2. Any configuration changes for this specific | |||
benchmarking test MUST be documented. | benchmarking test MUST be documented. | |||
7.4.3.2. Test Equipment Configuration Parameters | 7.4.3.2. Test Equipment Configuration Parameters | |||
Test equipment configuration parameters MUST conform to the | Test equipment configuration parameters MUST conform to the | |||
requirements defined in Section 4.3. The following parameters MUST | requirements defined in Section 4.3. The following parameters MUST | |||
be documented for this benchmarking test: | be documented for this benchmarking test: | |||
Client IP address ranges defined in Section 4.3.1.3 | * Client IP address ranges defined in Section 4.3.1.3 | |||
Server IP address ranges defined in Section 4.3.2.3 | * Server IP address ranges defined in Section 4.3.2.3 | |||
Traffic distribution ratio between IPv4 and IPv6 defined in | * Traffic distribution ratio between IPv4 and IPv6 defined in | |||
Section 4.3.1.3 | Section 4.3.1.3 | |||
Target objective for scenario 1: 50% of the connections per second | * Target objective for scenario 1: 50% of the connections per second | |||
measured in benchmarking test TCP/HTTP Connections Per Second | measured in the benchmarking test TCP connections per second with | |||
(Section 7.2) | HTTP traffic (Section 7.2) | |||
Target objective for scenario 2: 50% of the inspected throughput | * Target objective for scenario 2: 50% of the inspected throughput | |||
measured in benchmarking test HTTP Throughput (Section 7.3) | measured in the benchmarking test HTTP throughput (Section 7.3) | |||
Initial objective for scenario 1: 10% of "Target objective for | * Initial objective for scenario 1: 10% of "Target objective for | |||
scenario 1" | scenario 1" | |||
Initial objective for scenario 2: 10% of "Target objective for | * Initial objective for scenario 2: 10% of "Target objective for | |||
scenario 2" | scenario 2" | |||
Note: The Initial objectives are not a KPI to report. These values | Note: The initial objectives are not KPIs to report. These values | |||
are configured on the traffic generator and used to perform Step1: | are configured on the traffic generator and used to perform Step 1 | |||
"Test Initialization and Qualification" described under | (Test Initialization and Qualification) described in | |||
Section 7.4.4. | Section 7.4.4. | |||
HTTP transaction per TCP connection: Test scenario 1 with a single | * HTTP transaction per TCP connection: Test scenario 1 with a single | |||
transaction and test scenario 2 with 10 transactions. | transaction and test scenario 2 with 10 transactions | |||
HTTP with GET request requesting a single object. The RECOMMENDED | * HTTP with GET request requesting a single object: The RECOMMENDED | |||
object sizes are 1, 16, and 64 KByte. For each test iteration, the | object sizes are 1, 16, and 64 KB. For each test iteration, the | |||
client MUST request a single HTTP response object size. | client MUST request a single HTTP response object size. | |||
7.4.3.3. Test Results Validation Criteria | 7.4.3.3. Test Results Validation Criteria | |||
The following criteria are the test results validation criteria. The | The following criteria are the test results validation criteria. The | |||
Test results validation criteria MUST be monitored during the whole | test results validation criteria MUST be monitored during the whole | |||
sustain phase of the traffic load profile. | sustain phase of the traffic load profile. | |||
a. Number of failed application transactions (receiving any HTTP | a. The number of failed application transactions (receiving any HTTP | |||
response code other than 200 OK) MUST be less than 0.001% (1 out | response code other than 200 OK) MUST be less than 0.001% (1 out | |||
of 100,000 transactions) of attempt transactions. | of 100,000 transactions) of the total attempted transactions. | |||
b. Number of terminated TCP connections due to unexpected TCP RST | b. The number of terminated TCP connections due to unexpected TCP | |||
sent by DUT/SUT MUST be less than 0.001% (1 out of 100,000 | RST sent by the DUT/SUT MUST be less than 0.001% (1 out of | |||
connections) of total initiated TCP connections. | 100,000 connections) of the total initiated TCP connections. | |||
c. During the sustain phase, traffic MUST be forwarded at a constant | c. During the sustain phase, traffic MUST be forwarded at a constant | |||
rate (considered as a constant rate if any deviation of traffic | rate (it is considered as a constant rate if any deviation of the | |||
forwarding rate is less than 5%). | traffic forwarding rate is less than 5%). | |||
d. Concurrent TCP connections MUST be constant during steady state | d. Concurrent TCP connections MUST be constant during steady state, | |||
and any deviation of concurrent TCP connections MUST be less than | and any deviation of concurrent TCP connections MUST be less than | |||
10%. This confirms the DUT opens and closes TCP connections at | 10%. This confirms the DUT opens and closes TCP connections at | |||
approximately the same rate. | approximately the same rate. | |||
e. After ramp up the DUT MUST achieve the "Target objective" defined | e. After ramp up, the DUT MUST achieve the target objectives defined | |||
in Section 7.4.3.2 and remain in that state for the entire test | in Section 7.4.3.2 and remain in that state for the entire test | |||
duration (sustain phase). | duration (sustain phase). | |||
7.4.3.4. Measurement | 7.4.3.4. Measurement | |||
TTFB (minimum, average, and maximum) and TTLB (minimum, average, and | The TTFB (minimum, average, and maximum) and TTLB (minimum, average, | |||
maximum) MUST be reported for each object size. | and maximum) MUST be reported for each object size. | |||
7.4.4. Test Procedures and Expected Results | 7.4.4. Test Procedures and Expected Results | |||
The test procedure is designed to measure TTFB or TTLB when the DUT/ | The test procedure is designed to measure the TTFB or TTLB when the | |||
SUT is operating close to 50% of its maximum achievable connections | DUT/SUT is operating close to 50% of its maximum achievable | |||
per second or inspected throughput. The test procedure consists of | connections per second or inspected throughput. The test procedure | |||
two major steps: Step 1 ensures the DUT/SUT is able to reach the | consists of two major steps. Step 1 ensures the DUT/SUT is able to | |||
initial performance values and meets the test results validation | reach the initial performance values and meets the test results | |||
criteria when it was very minimally utilized. Step 2 measures the | validation criteria when it was very minimally utilized. Step 2 | |||
latency values within the test results validation criteria. | measures the latency values within the test results validation | |||
criteria. | ||||
This test procedure MAY be repeated multiple times with different IP | This test procedure MAY be repeated multiple times with different IP | |||
types (IPv4 only, IPv6 only, and IPv4 and IPv6 mixed traffic | types (IPv4 only, IPv6 only, and IPv4 and IPv6 mixed traffic | |||
distribution), HTTP response object sizes, and single and multiple | distribution), HTTP response object sizes, and single and multiple | |||
transactions per connection scenarios. | transactions per connection scenarios. | |||
7.4.4.1. Step 1: Test Initialization and Qualification | 7.4.4.1. Step 1: Test Initialization and Qualification | |||
Verify the link status of all connected physical interfaces. All | Verify the link status of all connected physical interfaces. All | |||
interfaces are expected to be in "UP" status. | interfaces are expected to be in "UP" status. | |||
Configure the traffic load profile of the test equipment to establish | Configure the traffic load profile of the test equipment to establish | |||
the "Initial objective" as defined in Section 7.4.3.2. The traffic | the initial objectives, as defined in Section 7.4.3.2. The traffic | |||
load profile MUST be defined as described in Section 4.3.4. | load profile MUST be defined as described in Section 4.3.4. | |||
The DUT/SUT MUST reach the "Initial objective" before the sustain | The DUT/SUT MUST reach the initial objectives before the sustain | |||
phase. The measured KPIs during the sustain phase MUST meet all the | phase. The measured KPIs during the sustain phase MUST meet all the | |||
test results validation criteria defined in Section 7.4.3.3. | test results validation criteria defined in Section 7.4.3.3. | |||
If the KPI metrics do not meet the test results validation criteria, | If the KPI metrics do not meet the test results validation criteria, | |||
the test procedure MUST NOT be continued to "Step 2". | the test procedure MUST NOT be continued to Step 2. | |||
7.4.4.2. Step 2: Test Run with Target Objective | 7.4.4.2. Step 2: Test Run with Target Objective | |||
Configure test equipment to establish the "Target objective" defined | Configure test equipment to establish the target objectives defined | |||
in Section 7.4.3.2. The test equipment MUST follow the traffic load | in Section 7.4.3.2. The test equipment MUST follow the traffic load | |||
profile definition as described in Section 4.3.4. | profile definition described in Section 4.3.4. | |||
The test equipment MUST start to measure and record all specified | The test equipment MUST start to measure and record all specified | |||
KPIs. Continue the test until all traffic profile phases are | KPIs. Continue the test until all traffic profile phases are | |||
completed. | completed. | |||
Within the test results validation criteria, the DUT/SUT MUST reach | Within the test results validation criteria, the DUT/SUT MUST reach | |||
the desired value of the target objective in the sustain phase. | the desired value of the target objective in the sustain phase. | |||
Measure the minimum, average, and maximum values of TTFB and TTLB. | Measure the minimum, average, and maximum values of the TTFB and | |||
TTLB. | ||||
7.5. Concurrent TCP/HTTP Connection Capacity | 7.5. Concurrent TCP Connection Capacity with HTTP Traffic | |||
7.5.1. Objective | 7.5.1. Objective | |||
Determine the number of concurrent TCP connections that the DUT/ SUT | Determine the number of concurrent TCP connections that the DUT/SUT | |||
sustains when using HTTP traffic. | sustains when using HTTP traffic. | |||
7.5.2. Test Setup | 7.5.2. Test Setup | |||
Testbed setup MUST be configured as defined in Section 4. Any | The testbed setup MUST be configured as defined in Section 4. Any | |||
specific testbed configuration changes (number of interfaces and | specific testbed configuration changes (number of interfaces, | |||
interface type, etc.) MUST be documented. | interface type, etc.) MUST be documented. | |||
7.5.3. Test Parameters | 7.5.3. Test Parameters | |||
In this section, benchmarking test specific parameters are defined. | In this section, benchmarking-test-specific parameters are defined. | |||
7.5.3.1. DUT/SUT Configuration Parameters | 7.5.3.1. DUT/SUT Configuration Parameters | |||
DUT/SUT parameters MUST conform to the requirements defined in | DUT/SUT parameters MUST conform to the requirements defined in | |||
Section 4.2. Any configuration changes for this specific | Section 4.2. Any configuration changes for this specific | |||
benchmarking test MUST be documented. | benchmarking test MUST be documented. | |||
7.5.3.2. Test Equipment Configuration Parameters | 7.5.3.2. Test Equipment Configuration Parameters | |||
Test equipment configuration parameters MUST conform to the | Test equipment configuration parameters MUST conform to the | |||
requirements defined in Section 4.3. The following parameters MUST | requirements defined in Section 4.3. The following parameters MUST | |||
be noted for this benchmarking test: | be noted for this benchmarking test: | |||
Client IP address ranges defined in Section 4.3.1.3 | * Client IP address ranges defined in Section 4.3.1.3 | |||
Server IP address ranges defined in Section 4.3.2.3 | * Server IP address ranges defined in Section 4.3.2.3 | |||
Traffic distribution ratio between IPv4 and IPv6 defined in | * Traffic distribution ratio between IPv4 and IPv6 defined in | |||
Section 4.3.1.3 | Section 4.3.1.3 | |||
Target concurrent connection: Initial value from product datasheet | * Target concurrent connection: Initial value from the product | |||
or the value defined based on the requirement for a specific | datasheet or the value defined based on the requirement for a | |||
deployment scenario. | specific deployment scenario | |||
Initial concurrent connection: 10% of "Target concurrent | * Initial concurrent connection: 10% of "Target concurrent | |||
connection" Note: Initial concurrent connection is not a KPI to | connection" | |||
report. This value is configured on the traffic generator and | ||||
used to perform Step1: "Test Initialization and Qualification" | ||||
described under Section 7.5.4. | ||||
Maximum connections per second during ramp up phase: 50% of | Note: Initial concurrent connection is not a KPI to report. This | |||
maximum connections per second measured in benchmarking test TCP/ | value is configured on the traffic generator and used to perform | |||
HTTP Connections per second (Section 7.2) | Step 1 (Test Initialization and Qualification) described in | |||
Section 7.5.4. | ||||
Ramp up time (in traffic load profile for "Target concurrent | * Maximum connections per second during ramp up phase: 50% of | |||
maximum connections per second measured in the benchmarking test | ||||
TCP connections per second with HTTP traffic (Section 7.2) | ||||
* Ramp up time (in traffic load profile for "Target concurrent | ||||
connection"): "Target concurrent connection" / "Maximum | connection"): "Target concurrent connection" / "Maximum | |||
connections per second during ramp up phase" | connections per second during ramp up phase" | |||
Ramp up time (in traffic load profile for "Initial concurrent | * Ramp up time (in traffic load profile for "Initial concurrent | |||
connection"): "Initial concurrent connection" / "Maximum | connection"): "Initial concurrent connection" / "Maximum | |||
connections per second during ramp up phase" | connections per second during ramp up phase" | |||
The client MUST negotiate HTTP and each client MAY open multiple | The client MUST negotiate HTTP, and each client MAY open multiple | |||
concurrent TCP connections per server endpoint IP. | concurrent TCP connections per server endpoint IP. | |||
Each client sends 10 GET requests requesting 1 KByte HTTP response | Each client sends 10 GET requests requesting 1 KB HTTP response | |||
object in the same TCP connection (10 transactions/TCP connection) | object in the same TCP connection (10 transactions / TCP | |||
and the delay (think time) between each transaction MUST be X | connections), and the delay (think time) between each transaction | |||
seconds. | MUST be X seconds, where X is as follows. | |||
X = ("Ramp up time" + "steady state time") /10 | X = ("Ramp up time" + "steady state time") / 10 | |||
The established connections MUST remain open until the ramp down | The established connections MUST remain open until the ramp down | |||
phase of the test. During the ramp down phase, all connections MUST | phase of the test. During the ramp down phase, all connections MUST | |||
be successfully closed with FIN. | be successfully closed with FIN. | |||
7.5.3.3. Test Results Validation Criteria | 7.5.3.3. Test Results Validation Criteria | |||
The following criteria are the test results validation criteria. The | The following criteria are the test results validation criteria. The | |||
Test results validation criteria MUST be monitored during the whole | test results validation criteria MUST be monitored during the whole | |||
sustain phase of the traffic load profile. | sustain phase of the traffic load profile. | |||
a. Number of failed application transactions (receiving any HTTP | a. The number of failed application transactions (receiving any HTTP | |||
response code other than 200 OK) MUST be less than 0.001% (1 out | response code other than 200 OK) MUST be less than 0.001% (1 out | |||
of 100,000 transactions) of total attempted transactions. | of 100,000 transactions) of the total attempted transactions. | |||
b. Number of terminated TCP connections due to unexpected TCP RST | b. The number of terminated TCP connections due to unexpected TCP | |||
sent by DUT/SUT MUST be less than 0.001% (1 out of 100,000 | RST sent by the DUT/SUT MUST be less than 0.001% (1 out of | |||
connections) of total initiated TCP connections. | 100,000 connections) of the total initiated TCP connections. | |||
c. During the sustain phase, traffic MUST be forwarded at a constant | c. During the sustain phase, traffic MUST be forwarded at a constant | |||
rate (considered as a constant rate if any deviation of traffic | rate (it is considered as a constant rate if any deviation of the | |||
forwarding rate is less than 5%). | traffic forwarding rate is less than 5%). | |||
7.5.3.4. Measurement | 7.5.3.4. Measurement | |||
Average Concurrent TCP Connections MUST be reported for this | Average concurrent TCP connections MUST be reported for this | |||
benchmarking test. | benchmarking test. | |||
7.5.4. Test Procedures and Expected Results | 7.5.4. Test Procedures and Expected Results | |||
The test procedure is designed to measure the concurrent TCP | The test procedure is designed to measure the concurrent TCP | |||
connection capacity of the DUT/SUT at the sustaining period of the | connection capacity of the DUT/SUT at the sustaining period of the | |||
traffic load profile. The test procedure consists of three major | traffic load profile. The test procedure consists of three major | |||
steps: Step 1 ensures the DUT/SUT is able to reach the performance | steps. Step 1 ensures the DUT/SUT is able to reach the performance | |||
value (Initial concurrent connection) and meets the test results | value (Initial concurrent connection) and meets the test results | |||
validation criteria when it was very minimally utilized. Step 2 | validation criteria when it was very minimally utilized. Step 2 | |||
determines whether the DUT/SUT is able to reach the target | determines whether the DUT/SUT is able to reach the target | |||
performance value within the test results validation criteria. Step | performance value within the test results validation criteria. Step | |||
3 determines the maximum achievable performance value within the test | 3 determines the maximum achievable performance value within the test | |||
results validation criteria. | results validation criteria. | |||
This test procedure MAY be repeated multiple times with different | This test procedure MAY be repeated multiple times with different | |||
IPv4 and IPv6 traffic distributions. | IPv4 and IPv6 traffic distributions. | |||
7.5.4.1. Step 1: Test Initialization and Qualification | 7.5.4.1. Step 1: Test Initialization and Qualification | |||
Verify the link status of all connected physical interfaces. All | Verify the link status of all connected physical interfaces. All | |||
interfaces are expected to be in "UP" status. | interfaces are expected to be in "UP" status. | |||
Configure test equipment to establish "Initial concurrent TCP | Configure test equipment to establish "Initial concurrent | |||
connections" defined in Section 7.5.3.2. Except ramp up time, the | connections" defined in Section 7.5.3.2. Except ramp up time, the | |||
traffic load profile MUST be defined as described in Section 4.3.4. | traffic load profile MUST be defined as described in Section 4.3.4. | |||
During the sustain phase, the DUT/SUT MUST reach the "Initial | During the sustain phase, the DUT/SUT MUST reach the "Initial | |||
concurrent TCP connections". The measured KPIs during the sustain | concurrent connections". The measured KPIs during the sustain phase | |||
phase MUST meet all the test results validation criteria defined in | MUST meet all the test results validation criteria defined in | |||
Section 7.5.3.3. | Section 7.5.3.3. | |||
If the KPI metrics do not meet the test results validation criteria, | If the KPI metrics do not meet the test results validation criteria, | |||
the test procedure MUST NOT be continued to "Step 2". | the test procedure MUST NOT be continued to Step 2. | |||
7.5.4.2. Step 2: Test Run with Target Objective | 7.5.4.2. Step 2: Test Run with Target Objective | |||
Configure test equipment to establish the target objective ("Target | Configure test equipment to establish the target objective ("Target | |||
concurrent TCP connections"). The test equipment MUST follow the | concurrent TCP connections"). The test equipment MUST follow the | |||
traffic load profile definition (except ramp up time) as described in | traffic load profile definition (except ramp up time) as described in | |||
Section 4.3.4. | Section 4.3.4. | |||
During the ramp up and sustain phase, the other KPIs such as | During the ramp up and sustain phases, the other KPIs, such as | |||
inspected throughput, TCP connections per second, and application | inspected throughput, TCP connections per second, and application | |||
transactions per second MUST NOT reach the maximum value the DUT/SUT | transactions per second, MUST NOT reach the maximum value the DUT/SUT | |||
can support. | can support. | |||
The test equipment MUST start to measure and record KPIs defined in | The test equipment MUST start to measure and record KPIs defined in | |||
Section 7.5.3.4. Continue the test until all traffic profile phases | Section 7.5.3.4. Continue the test until all traffic profile phases | |||
are completed. | are completed. | |||
Within the test results validation criteria, the DUT/SUT is expected | Within the test results validation criteria, the DUT/SUT is expected | |||
to reach the desired value of the target objective in the sustain | to reach the desired value of the target objective in the sustain | |||
phase. Follow step 3, if the measured value does not meet the target | phase. Follow Step 3 if the measured value does not meet the target | |||
value or does not fulfill the test results validation criteria. | value or does not fulfill the test results validation criteria. | |||
7.5.4.3. Step 3: Test Iteration | 7.5.4.3. Step 3: Test Iteration | |||
Determine the achievable concurrent TCP connections capacity within | Determine the achievable concurrent TCP connections capacity within | |||
the test results validation criteria. | the test results validation criteria. | |||
7.6. TCP/QUIC Connections per Second with HTTPS Traffic | 7.6. TCP or QUIC Connections per Second with HTTPS Traffic | |||
7.6.1. Objective | 7.6.1. Objective | |||
Using HTTPS traffic, determine the sustainable TLS session | Using HTTPS traffic, determine the sustainable TLS session | |||
establishment rate supported by the DUT/SUT under different | establishment rate supported by the DUT/SUT under different | |||
throughput load conditions. | throughput load conditions. | |||
Test iterations MUST include common cipher suites and key strengths | Test iterations MUST include common cipher suites and key strengths, | |||
as well as forward looking stronger keys. Specific test iterations | as well as forward-looking stronger keys. Specific test iterations | |||
MUST include ciphers and keys defined in Section 7.6.3.2. | MUST include ciphers and keys defined in Section 7.6.3.2. | |||
For each cipher suite and key strengths, test iterations MUST use a | For each cipher suite and key strength, test iterations MUST use a | |||
single HTTPS response object size defined in Section 7.6.3.2 to | single HTTPS response object size defined in Section 7.6.3.2 to | |||
measure connections per second performance under a variety of DUT/SUT | measure connections per second performance under a variety of DUT/SUT | |||
security inspection load conditions. | security inspection load conditions. | |||
7.6.2. Test Setup | 7.6.2. Test Setup | |||
Testbed setup MUST be configured as defined in Section 4. Any | The testbed setup MUST be configured as defined in Section 4. Any | |||
specific testbed configuration changes (number of interfaces and | specific testbed configuration changes (number of interfaces, | |||
interface type, etc.) MUST be documented. | interface type, etc.) MUST be documented. | |||
7.6.3. Test Parameters | 7.6.3. Test Parameters | |||
In this section, benchmarking test specific parameters are defined. | In this section, benchmarking-test-specific parameters are defined. | |||
7.6.3.1. DUT/SUT Configuration Parameters | 7.6.3.1. DUT/SUT Configuration Parameters | |||
DUT/SUT parameters MUST conform to the requirements defined in | DUT/SUT parameters MUST conform to the requirements defined in | |||
Section 4.2. Any configuration changes for this specific | Section 4.2. Any configuration changes for this specific | |||
benchmarking test MUST be documented. | benchmarking test MUST be documented. | |||
7.6.3.2. Test Equipment Configuration Parameters | 7.6.3.2. Test Equipment Configuration Parameters | |||
Test equipment configuration parameters MUST conform to the | Test equipment configuration parameters MUST conform to the | |||
requirements defined in Section 4.3. The following parameters MUST | requirements defined in Section 4.3. The following parameters MUST | |||
be documented for this benchmarking test: | be documented for this benchmarking test: | |||
Client IP address ranges defined in Section 4.3.1.3 | * Client IP address ranges defined in Section 4.3.1.3 | |||
Server IP address ranges defined in Section 4.3.2.3 | * Server IP address ranges defined in Section 4.3.2.3 | |||
Traffic distribution ratio between IPv4 and IPv6 defined in | * Traffic distribution ratio between IPv4 and IPv6 defined in | |||
Section 4.3.1.3 | Section 4.3.1.3 | |||
Target connections per second: Initial value from product datasheet | * Target connections per second: Initial value from the product | |||
or the value defined based on the requirement for a specific | datasheet or the value defined based on the requirement for a | |||
deployment scenario. | specific deployment scenario | |||
Initial connections per second: 10% of "Target connections per | * Initial connections per second: 10% of "Target connections per | |||
second" (Note: Initial connections per second is not a KPI to report. | second" | |||
This value is configured on the traffic generator and used to perform | ||||
Step1: "Test Initialization and Qualification" described under | ||||
Section 7.6.4.) | ||||
RECOMMENDED ciphers and keys defined in Section 4.3.1.4 | Note: Initial connections per second is not a KPI to report. This | |||
value is configured on the traffic generator and used to perform | ||||
Step 1 (Test Initialization and Qualification) described in | ||||
Section 7.6.4.) | ||||
* RECOMMENDED ciphers and keys defined in Section 4.3.1.4 | ||||
* The RECOMMENDED object sizes are 1, 2, 4, 16, and 64 KB. | ||||
The client MUST negotiate HTTPS and close the connection without | The client MUST negotiate HTTPS and close the connection without | |||
error immediately after the completion of one transaction. In each | error immediately after the completion of one transaction. In each | |||
test iteration, the client MUST send a GET request requesting a fixed | test iteration, the client MUST send a GET request requesting a fixed | |||
HTTPS response object size. The RECOMMENDED object sizes are 1, 2, | HTTPS response object size. | |||
4, 16, and 64 KByte. | ||||
7.6.3.3. Test Results Validation Criteria | 7.6.3.3. Test Results Validation Criteria | |||
The following criteria are the test results validation criteria. The | The following criteria are the test results validation criteria. The | |||
test results validation criteria MUST be monitored during the whole | test results validation criteria MUST be monitored during the whole | |||
test duration. | test duration. | |||
a. Number of failed application transactions (receiving any HTTP | a. The number of failed application transactions (receiving any HTTP | |||
response code other than 200 OK) MUST be less than 0.001% (1 out | response code other than 200 OK) MUST be less than 0.001% (1 out | |||
of 100,000 transactions) of attempt transactions. | of 100,000 transactions) of the attempted transactions. | |||
b. Number of terminated TCP connections due to unexpected TCP RST | b. The number of terminated TCP connections due to unexpected TCP | |||
sent by DUT/SUT MUST be less than 0.001% (1 out of 100,000 | RST sent by the DUT/SUT MUST be less than 0.001% (1 out of | |||
connections) of total initiated TCP connections. If HTTP/3 is | 100,000 connections) of the total initiated TCP connections. If | |||
used, the number of terminated QUIC connections due to unexpected | HTTP/3 is used, the number of terminated QUIC connections due to | |||
errors MUST be less than 0.001% (1 out of 100,000 connections) of | unexpected errors MUST be less than 0.001% (1 out of 100,000 | |||
total initiated QUIC connections. | connections) of the total initiated QUIC connections. | |||
c. During the sustain phase, traffic MUST be forwarded at a constant | c. During the sustain phase, traffic MUST be forwarded at a constant | |||
rate (considered as a constant rate if any deviation of traffic | rate (it is considered as a constant rate if any deviation of the | |||
forwarding rate is less than 5%). | traffic forwarding rate is less than 5%). | |||
d. Concurrent TCP connections generation rate MUST be constant | d. The concurrent TCP connections generation rate MUST be constant | |||
during steady state and any deviation of concurrent TCP | during steady state, and any deviation of concurrent TCP | |||
connections MUST be less than 10%. If HTTP/3 is used, the | connections MUST be less than 10%. If HTTP/3 is used, the | |||
concurrent QUIC connections generation rate MUST be constant | concurrent QUIC connections generation rate MUST be constant | |||
during steady state and any deviation of concurrent QUIC | during steady state, and any deviation of concurrent QUIC | |||
connections MUST be less than 10%. This confirms the DUT opens | connections MUST be less than 10%. This confirms the DUT opens | |||
and closes connections at approximately the same rate. | and closes connections at approximately the same rate. | |||
7.6.3.4. Measurement | 7.6.3.4. Measurement | |||
If HTTP 1.1 or HTTP/2 is used, TCP connections per second MUST be | If HTTP 1.1 or HTTP/2 is used, TCP connections per second MUST be | |||
reported for each test iteration (for each object size). | reported for each test iteration (for each object size). | |||
If HTTP/3 is used, QUIC connections per second MUST be measured and | If HTTP/3 is used, QUIC connections per second MUST be measured and | |||
reported for each test iteration (for each object size). | reported for each test iteration (for each object size). | |||
The KPI metric TLS Handshake Rate can be measured in the test using 1 | The KPI metric TLS handshake rate can be measured in the test using 1 | |||
KByte object size. | KB object size. | |||
7.6.4. Test Procedures and Expected Results | 7.6.4. Test Procedures and Expected Results | |||
The test procedure is designed to measure the TCP or QUIC connections | The test procedure is designed to measure the DUT/SUT's rate of TCP | |||
per second rate of the DUT/SUT at the sustaining period of the | or QUIC connections per second during the sustaining period of the | |||
traffic load profile. The test procedure consists of three major | traffic load profile. The test procedure consists of three major | |||
steps: Step 1 ensures the DUT/SUT is able to reach the performance | steps. Step 1 ensures the DUT/SUT is able to reach the performance | |||
value (Initial connections per second) and meets the test results | value (Initial connections per second) and meets the test results | |||
validation criteria when it was very minimally utilized. Step 2 | validation criteria when it was very minimally utilized. Step 2 | |||
determines whether the DUT/SUT is able to reach the target | determines whether the DUT/SUT is able to reach the target | |||
performance value within the test results validation criteria. Step | performance value within the test results validation criteria. Step | |||
3 determines the maximum achievable performance value within the test | 3 determines the maximum achievable performance value within the test | |||
results validation criteria. | results validation criteria. | |||
This test procedure MAY be repeated multiple times with different | This test procedure MAY be repeated multiple times with different | |||
IPv4 and IPv6 traffic distributions. | IPv4 and IPv6 traffic distributions. | |||
7.6.4.1. Step 1: Test Initialization and Qualification | 7.6.4.1. Step 1: Test Initialization and Qualification | |||
Verify the link status of all connected physical interfaces. All | Verify the link status of all connected physical interfaces. All | |||
interfaces are expected to be in "UP" status. | interfaces are expected to be in "UP" status. | |||
Configure the traffic load profile of the test equipment to establish | Configure the traffic load profile of the test equipment to establish | |||
"Initial connections per second" as defined in Section 7.6.3.2. The | "Initial connections per second", as defined in Section 7.6.3.2. The | |||
traffic load profile MUST be defined as described in Section 4.3.4. | traffic load profile MUST be defined as described in Section 4.3.4. | |||
The DUT/SUT MUST reach the "Initial connections per second" before | The DUT/SUT MUST reach the "Initial connections per second" before | |||
the sustain phase. The measured KPIs during the sustain phase MUST | the sustain phase. The measured KPIs during the sustain phase MUST | |||
meet all the test results validation criteria defined in | meet all the test results validation criteria defined in | |||
Section 7.6.3.3. | Section 7.6.3.3. | |||
If the KPI metrics do not meet the test results validation criteria, | If the KPI metrics do not meet the test results validation criteria, | |||
the test procedure MUST NOT be continued to "Step 2". | the test procedure MUST NOT be continued to Step 2. | |||
7.6.4.2. Step 2: Test Run with Target Objective | 7.6.4.2. Step 2: Test Run with Target Objective | |||
Configure test equipment to establish "Target connections per second" | Configure test equipment to establish "Target connections per | |||
as defined in Section 7.6.3.2. The test equipment MUST follow the | second", as defined in Section 7.6.3.2. The test equipment MUST | |||
traffic load profile definition as described in Section 4.3.4. | follow the traffic load profile definition described in | |||
Section 4.3.4. | ||||
During the ramp up and sustain phase, other KPIs such as inspected | During the ramp up and sustain phases, other KPIs, such as inspected | |||
throughput, concurrent TCP/QUIC connections, and application | throughput, concurrent TCP or QUIC connections, and application | |||
transactions per second MUST NOT reach the maximum value the DUT/SUT | transactions per second, MUST NOT reach the maximum value the DUT/SUT | |||
can support. The test results for the specific test iteration MUST | can support. The test results for the specific test iteration MUST | |||
NOT be reported as valid results, if the above mentioned KPI | NOT be reported as valid results if the abovementioned KPI | |||
(especially inspected throughput) reaches the maximum value. | (especially inspected throughput) reaches the maximum value. (For | |||
(Example: If the test iteration with 64 KByte of HTTPS response | example, if the test iteration with 64 KB of HTTPS response object | |||
object size reached the maximum inspected throughput limitation of | size reached the maximum inspected throughput limitation of the DUT, | |||
the DUT, the test iteration MAY be interrupted, and the result for 64 | the test iteration MAY be interrupted, and the result for 64 KB | |||
KByte should not be reported). | should not be reported). | |||
The test equipment MUST start to measure and record all specified | The test equipment MUST start to measure and record all specified | |||
KPIs. Continue the test until all traffic profile phases are | KPIs. Continue the test until all traffic profile phases are | |||
completed. | completed. | |||
Within the test results validation criteria, the DUT/SUT is expected | Within the test results validation criteria, the DUT/SUT is expected | |||
to reach the desired value of the target objective ("Target | to reach the desired value of the target objective ("Target | |||
connections per second") in the sustain phase. Follow step 3, if the | connections per second") in the sustain phase. Follow Step 3 if the | |||
measured value does not meet the target value or does not fulfill the | measured value does not meet the target value or does not fulfill the | |||
test results validation criteria. | test results validation criteria. | |||
7.6.4.3. Step 3: Test Iteration | 7.6.4.3. Step 3: Test Iteration | |||
Determine the achievable connections per second within the test | Determine the achievable connections per second within the test | |||
results validation criteria. | results validation criteria. | |||
7.7. HTTPS Throughput | 7.7. HTTPS Throughput | |||
7.7.1. Objective | 7.7.1. Objective | |||
Determine the sustainable inspected throughput of the DUT/SUT for | Determine the sustainable inspected throughput of the DUT/SUT for | |||
HTTPS transactions varying the HTTPS response object size. | HTTPS transactions by varying the HTTPS response object size. | |||
Test iterations MUST include common cipher suites and key strengths | Test iterations MUST include common cipher suites and key strengths, | |||
as well as forward looking stronger keys. Specific test iterations | as well as forward-looking stronger keys. Specific test iterations | |||
MUST include the ciphers and keys defined in Section 7.7.3.2. | MUST include the ciphers and keys defined in Section 7.7.3.2. | |||
7.7.2. Test Setup | 7.7.2. Test Setup | |||
Testbed setup MUST be configured as defined in Section 4. Any | The testbed setup MUST be configured as defined in Section 4. Any | |||
specific testbed configuration changes (number of interfaces and | specific testbed configuration changes (number of interfaces, | |||
interface type, etc.) MUST be documented. | interface type, etc.) MUST be documented. | |||
7.7.3. Test Parameters | 7.7.3. Test Parameters | |||
In this section, benchmarking test specific parameters are defined. | In this section, benchmarking-test-specific parameters are defined. | |||
7.7.3.1. DUT/SUT Configuration Parameters | 7.7.3.1. DUT/SUT Configuration Parameters | |||
DUT/SUT parameters MUST conform to the requirements defined in | DUT/SUT parameters MUST conform to the requirements defined in | |||
Section 4.2. Any configuration changes for this specific | Section 4.2. Any configuration changes for this specific | |||
benchmarking test MUST be documented. | benchmarking test MUST be documented. | |||
7.7.3.2. Test Equipment Configuration Parameters | 7.7.3.2. Test Equipment Configuration Parameters | |||
Test equipment configuration parameters MUST conform to the | Test equipment configuration parameters MUST conform to the | |||
requirements defined in Section 4.3. The following parameters MUST | requirements defined in Section 4.3. The following parameters MUST | |||
be documented for this benchmarking test: | be documented for this benchmarking test: | |||
Client IP address ranges defined in Section 4.3.1.3 | * Client IP address ranges defined in Section 4.3.1.3 | |||
Server IP address ranges defined in Section 4.3.2.3 | * Server IP address ranges defined in Section 4.3.2.3 | |||
Traffic distribution ratio between IPv4 and IPv6 defined in | * Traffic distribution ratio between IPv4 and IPv6 defined in | |||
Section 4.3.1.3 | Section 4.3.1.3 | |||
Target inspected throughput: Aggregated line rate of the interface(s) | * Target inspected throughput: Aggregated line rate of one or more | |||
used in the DUT/SUT or the value defined based on the requirement for | interfaces used in the DUT/SUT or the value defined based on the | |||
a specific deployment scenario. | requirement for a specific deployment scenario | |||
Initial throughput: 10% of "Target inspected throughput" Note: | * Initial throughput: 10% of "Target inspected throughput" | |||
Initial throughput is not a KPI to report. This value is configured | ||||
on the traffic generator and used to perform Step1: "Test | ||||
Initialization and Qualification" described under Section 7.7.4. | ||||
Number of HTTPS response object requests (transactions) per | Note: Initial throughput is not a KPI to report. This value is | |||
connection: 10 | configured on the traffic generator and used to perform Step 1 | |||
(Test Initialization and Qualification) described in | ||||
Section 7.7.4. | ||||
RECOMMENDED ciphers and keys defined in Section 4.3.1.4 | * Number of HTTPS response object requests (transactions) per | |||
connection: 10 | ||||
RECOMMENDED HTTPS response object size: 1, 16, 64, 256 KByte, and | * RECOMMENDED ciphers and keys defined in Section 4.3.1.4 | |||
mixed objects defined in Table 4 under Section 7.3.3.2. | ||||
* RECOMMENDED HTTPS response object size: 1, 16, 64, and 256 KB and | ||||
mixed objects defined in Table 5 of Section 7.3.3.2 | ||||
7.7.3.3. Test Results Validation Criteria | 7.7.3.3. Test Results Validation Criteria | |||
The following criteria are the test results validation criteria. The | The following criteria are the test results validation criteria. The | |||
test results validation criteria MUST be monitored during the whole | test results validation criteria MUST be monitored during the whole | |||
sustain phase of the traffic load profile. | sustain phase of the traffic load profile. | |||
a. Number of failed Application transactions (receiving any HTTP | a. The number of failed application transactions (receiving any HTTP | |||
response code other than 200 OK) MUST be less than 0.001% (1 out | response code other than 200 OK) MUST be less than 0.001% (1 out | |||
of 100,000 transactions) of attempt transactions. | of 100,000 transactions) of the attempted transactions. | |||
b. Traffic MUST be generated at a constant rate (considered as a | b. Traffic MUST be generated at a constant rate (it is considered as | |||
constant rate if any deviation of traffic forwarding rate is less | a constant rate if any deviation of the traffic forwarding rate | |||
than 5%). | is less than 5%). | |||
c. Concurrent generated TCP connections MUST be constant during | c. The concurrent generated TCP connections MUST be constant during | |||
steady state and any deviation of concurrent TCP connections MUST | steady state, and any deviation of concurrent TCP connections | |||
be less than 10%. If HTTP/3 is used, the concurrent generated | MUST be less than 10%. If HTTP/3 is used, the concurrent | |||
QUIC connections MUST be constant during steady state and any | generated QUIC connections MUST be constant during steady state, | |||
deviation of concurrent QUIC connections MUST be less than 10%. | and any deviation of concurrent QUIC connections MUST be less | |||
This confirms the DUT opens and closes connections at | than 10%. This confirms the DUT opens and closes connections at | |||
approximately the same rate. | approximately the same rate. | |||
7.7.3.4. Measurement | 7.7.3.4. Measurement | |||
Inspected Throughput and HTTPS Transactions per Second MUST be | Inspected throughput and HTTPS transactions per second MUST be | |||
reported for each object size. | reported for each object size. | |||
7.7.4. Test Procedures and Expected Results | 7.7.4. Test Procedures and Expected Results | |||
The test procedure consists of three major steps: Step 1 ensures the | The test procedure consists of three major steps. Step 1 ensures the | |||
DUT/SUT is able to reach the performance value (Initial throughput) | DUT/SUT is able to reach the performance value (initial throughput) | |||
and meets the test results validation criteria when it was very | and meets the test results validation criteria when it was very | |||
minimally utilized. Step 2 determines whether the DUT/SUT is able to | minimally utilized. Step 2 determines whether the DUT/SUT is able to | |||
reach the target performance value within the test results validation | reach the target performance value within the test results validation | |||
criteria. Step 3 determines the maximum achievable performance value | criteria. Step 3 determines the maximum achievable performance value | |||
within the test results validation criteria. | within the test results validation criteria. | |||
This test procedure MAY be repeated multiple times with different | This test procedure MAY be repeated multiple times with different | |||
IPv4 and IPv6 traffic distribution and HTTPS response object sizes. | IPv4 and IPv6 traffic distributions and HTTPS response object sizes. | |||
7.7.4.1. Step 1: Test Initialization and Qualification | 7.7.4.1. Step 1: Test Initialization and Qualification | |||
Verify the link status of all connected physical interfaces. All | Verify the link status of all connected physical interfaces. All | |||
interfaces are expected to be in "UP" status. | interfaces are expected to be in "UP" status. | |||
Configure the traffic load profile of the test equipment to establish | Configure the traffic load profile of the test equipment to establish | |||
"Initial throughput" as defined in Section 7.7.3.2. | "initial throughput", as defined in Section 7.7.3.2. | |||
The traffic load profile MUST be defined as described in | The traffic load profile MUST be defined as described in | |||
Section 4.3.4. The DUT/SUT MUST reach the "Initial throughput" | Section 4.3.4. The DUT/SUT MUST reach the "initial throughput" | |||
during the sustain phase. Measure all KPI as defined in | during the sustain phase. Measure all KPIs, as defined in | |||
Section 7.7.3.4. | Section 7.7.3.4. | |||
The measured KPIs during the sustain phase MUST meet the test results | The measured KPIs during the sustain phase MUST meet the test results | |||
validation criteria "a" defined in Section 7.7.3.3. The test results | validation criteria "a" defined in Section 7.7.3.3. The test results | |||
validation criteria "b", and "c" are OPTIONAL for step 1. | validation criteria "b" and "c" are OPTIONAL for Step 1. | |||
If the KPI metrics do not meet the test results validation criteria, | If the KPI metrics do not meet the test results validation criteria, | |||
the test procedure MUST NOT be continued to "Step 2". | the test procedure MUST NOT be continued to Step 2. | |||
7.7.4.2. Step 2: Test Run with Target Objective | 7.7.4.2. Step 2: Test Run with Target Objective | |||
Configure test equipment to establish the target objective ("Target | Configure test equipment to establish the target objective ("Target | |||
inspected throughput") defined in Section 7.7.3.2. The test | inspected throughput") defined in Section 7.7.3.2. The test | |||
equipment MUST start to measure and record all specified KPIs. | equipment MUST start to measure and record all specified KPIs. | |||
Continue the test until all traffic profile phases are completed. | Continue the test until all traffic profile phases are completed. | |||
Within the test results validation criteria, the DUT/SUT is expected | Within the test results validation criteria, the DUT/SUT is expected | |||
to reach the desired value of the target objective in the sustain | to reach the desired value of the target objective in the sustain | |||
phase. Follow step 3, if the measured value does not meet the target | phase. Follow Step 3 if the measured value does not meet the target | |||
value or does not fulfill the test results validation criteria. | value or does not fulfill the test results validation criteria. | |||
7.7.4.3. Step 3: Test Iteration | 7.7.4.3. Step 3: Test Iteration | |||
Determine the achievable average inspected throughput within the test | Determine the achievable average inspected throughput within the test | |||
results validation criteria. The final test iteration MUST be | results validation criteria. The final test iteration MUST be | |||
performed for the test duration defined in Section 4.3.4. | performed for the test duration defined in Section 4.3.4. | |||
7.8. HTTPS Transaction Latency | 7.8. HTTPS Transaction Latency | |||
7.8.1. Objective | 7.8.1. Objective | |||
Using HTTPS traffic, determine the HTTPS transaction latency when | Using HTTPS traffic, determine the HTTPS transaction latency when the | |||
DUT/SUT is running with sustainable HTTPS transactions per second | DUT/SUT is running with sustainable HTTPS transactions per second | |||
supported by the DUT/SUT under different HTTPS response object sizes. | supported by the DUT/SUT under different HTTPS response object sizes. | |||
Scenario 1: The client MUST negotiate HTTPS and close the connection | Scenario 1: The client MUST negotiate HTTPS and close the connection | |||
immediately after the completion of a single transaction (GET and | immediately after the completion of a single transaction (GET and | |||
RESPONSE). | RESPONSE). | |||
Scenario 2: The client MUST negotiate HTTPS and close the connection | Scenario 2: The client MUST negotiate HTTPS and close the connection | |||
immediately after the completion of 10 transactions (GET and | immediately after the completion of 10 transactions (GET and | |||
RESPONSE) within a single TCP or QUIC connection. | RESPONSE) within a single TCP or QUIC connection. | |||
7.8.2. Test Setup | 7.8.2. Test Setup | |||
Testbed setup MUST be configured as defined in Section 4. Any | The testbed setup MUST be configured as defined in Section 4. Any | |||
specific testbed configuration changes (number of interfaces and | specific testbed configuration changes (number of interfaces, | |||
interface type, etc.) MUST be documented. | interface type, etc.) MUST be documented. | |||
7.8.3. Test Parameters | 7.8.3. Test Parameters | |||
In this section, benchmarking test specific parameters are defined. | In this section, benchmarking-test-specific parameters are defined. | |||
7.8.3.1. DUT/SUT Configuration Parameters | 7.8.3.1. DUT/SUT Configuration Parameters | |||
DUT/SUT parameters MUST conform to the requirements defined in | DUT/SUT parameters MUST conform to the requirements defined in | |||
Section 4.2. Any configuration changes for this specific | Section 4.2. Any configuration changes for this specific | |||
benchmarking test MUST be documented. | benchmarking test MUST be documented. | |||
7.8.3.2. Test Equipment Configuration Parameters | 7.8.3.2. Test Equipment Configuration Parameters | |||
Test equipment configuration parameters MUST conform to the | Test equipment configuration parameters MUST conform to the | |||
requirements defined in Section 4.3. The following parameters MUST | requirements defined in Section 4.3. The following parameters MUST | |||
be documented for this benchmarking test: | be documented for this benchmarking test: | |||
Client IP address ranges defined in Section 4.3.1.3 | * Client IP address ranges defined in Section 4.3.1.3 | |||
Server IP address ranges defined in Section 4.3.2.3 | * Server IP address ranges defined in Section 4.3.2.3 | |||
Traffic distribution ratio between IPv4 and IPv6 defined in | * Traffic distribution ratio between IPv4 and IPv6 defined in | |||
Section 4.3.1.3 | Section 4.3.1.3 | |||
RECOMMENDED cipher suites and key sizes defined in Section 4.3.1.4 | * RECOMMENDED cipher suites and key sizes defined in Section 4.3.1.4 | |||
Target objective for scenario 1: 50% of the connections per second | * Target objective for scenario 1: 50% of the connections per second | |||
measured in benchmarking test TCP/QUIC Connections per Second with | measured in the benchmarking test TCP or QUIC connections per | |||
HTTPS Traffic (Section 7.6) | second with HTTPS traffic (Section 7.6) | |||
Target objective for scenario 2: 50% of the inspected throughput | * Target objective for scenario 2: 50% of the inspected throughput | |||
measured in benchmarking test HTTPS Throughput (Section 7.7) | measured in the benchmarking test HTTPS throughput (Section 7.7) | |||
Initial objective for scenario 1: 10% of "Target objective for | * Initial objective for scenario 1: 10% of "Target objective for | |||
scenario 1" | scenario 1" | |||
Initial objective for scenario 2: 10% of "Target objective for | * Initial objective for scenario 2: 10% of "Target objective for | |||
scenario 2" | scenario 2" | |||
Note: The Initial objectives are not a KPI to report. These values | Note: The initial objectives are not KPIs to report. These values | |||
are configured on the traffic generator and used to perform Step1: | are configured on the traffic generator and used to perform Step 1 | |||
"Test Initialization and Qualification" described under | (Test Initialization and Qualification) described in | |||
Section 7.8.4. | Section 7.8.4. | |||
HTTPS transaction per TCP or QUIC connection: Test scenario 1 with a | * HTTPS transaction per TCP or QUIC connection: Test scenario 1 with | |||
single transaction and scenario 2 with 10 transactions | a single transaction and scenario 2 with 10 transactions | |||
HTTPS with GET request requesting a single object. The RECOMMENDED | * HTTPS with GET request requesting a single object: The RECOMMENDED | |||
object sizes are 1, 16, and 64 KByte. For each test iteration, the | object sizes are 1, 16, and 64 KB. For each test iteration, the | |||
client MUST request a single HTTPS response object size. | client MUST request a single HTTPS response object size. | |||
7.8.3.3. Test Results Validation Criteria | 7.8.3.3. Test Results Validation Criteria | |||
The following criteria are the test results validation criteria. The | The following criteria are the test results validation criteria. The | |||
Test results validation criteria MUST be monitored during the whole | test results validation criteria MUST be monitored during the whole | |||
sustain phase of the traffic load profile. | sustain phase of the traffic load profile. | |||
a. Number of failed application transactions (receiving any HTTP | a. The number of failed application transactions (receiving any HTTP | |||
response code other than 200 OK) MUST be less than 0.001% (1 out | response code other than 200 OK) MUST be less than 0.001% (1 out | |||
of 100,000 transactions) of attempt transactions. | of 100,000 transactions) of the total attempted transactions. | |||
b. Number of terminated TCP connections due to unexpected TCP RST | b. The number of terminated TCP connections due to unexpected TCP | |||
sent by DUT/SUT MUST be less than 0.001% (1 out of 100,000 | RST sent by the DUT/SUT MUST be less than 0.001% (1 out of | |||
connections) of total initiated TCP connections. If HTTP/3 is | 100,000 connections) of the total initiated TCP connections. If | |||
used, the number of terminated QUIC connections due to unexpected | HTTP/3 is used, the number of terminated QUIC connections due to | |||
errors MUST be less than 0.001% (1 out of 100,000 connections) of | unexpected errors MUST be less than 0.001% (1 out of 100,000 | |||
total initiated QUIC connections. | connections) of the total initiated QUIC connections. | |||
c. During the sustain phase, traffic MUST be forwarded at a constant | c. During the sustain phase, traffic MUST be forwarded at a constant | |||
rate (considered as a constant rate if any deviation of traffic | rate (it is considered as a constant rate if any deviation of the | |||
forwarding rate is less than 5%). | traffic forwarding rate is less than 5%). | |||
d. Concurrent TCP or QUIC connections MUST be constant during steady | d. Concurrent TCP or QUIC connections MUST be constant during steady | |||
state and any deviation of concurrent TCP connections MUST be | state, and any deviation of concurrent TCP connections MUST be | |||
less than 10%. If HTTP/3 is used, the concurrent generated QUIC | less than 10%. If HTTP/3 is used, the concurrent generated QUIC | |||
connections MUST be constant during steady state and any | connections MUST be constant during steady state, and any | |||
deviation of concurrent QUIC connections MUST be less than 10%. | deviation of concurrent QUIC connections MUST be less than 10%. | |||
This confirms the DUT opens and closes connections at | This confirms the DUT opens and closes connections at | |||
approximately the same rate. | approximately the same rate. | |||
e. After ramp up the DUT/SUT MUST achieve the "Target objective" | e. After ramp up, the DUT/SUT MUST achieve the target objectives | |||
defined in the parameter Section 7.8.3.2 and remain in that state | defined in the parameters in Section 7.8.3.2 and remain in that | |||
for the entire test duration (sustain phase). | state for the entire test duration (sustain phase). | |||
7.8.3.4. Measurement | 7.8.3.4. Measurement | |||
TTFB (minimum, average, and maximum) and TTLB (minimum, average, and | The TTFB (minimum, average, and maximum) and TTLB (minimum, average, | |||
maximum) MUST be reported for each object size. | and maximum) MUST be reported for each object size. | |||
7.8.4. Test Procedures and Expected Results | 7.8.4. Test Procedures and Expected Results | |||
The test procedure is designed to measure TTFB or TTLB when the DUT/ | The test procedure is designed to measure the TTFB or TTLB when the | |||
SUT is operating close to 50% of its maximum achievable connections | DUT/SUT is operating close to 50% of its maximum achievable | |||
per second or inspected throughput. The test procedure consists of | connections per second or inspected throughput. The test procedure | |||
two major steps: Step 1 ensures the DUT/SUT is able to reach the | consists of two major steps. Step 1 ensures the DUT/SUT is able to | |||
initial performance values and meets the test results validation | reach the initial performance values and meets the test results | |||
criteria when it was very minimally utilized. Step 2 measures the | validation criteria when it is very minimally utilized. Step 2 | |||
latency values within the test results validation criteria. | measures the latency values within the test results validation | |||
criteria. | ||||
This test procedure MAY be repeated multiple times with different IP | This test procedure MAY be repeated multiple times with different IP | |||
types (IPv4 only, IPv6 only, and IPv4 and IPv6 mixed traffic | types (IPv4 only, IPv6 only, and IPv4 and IPv6 mixed traffic | |||
distribution), HTTPS response object sizes, and single, and multiple | distribution), HTTPS response object sizes, and single and multiple | |||
transactions per connection scenarios. | transactions per connection scenarios. | |||
7.8.4.1. Step 1: Test Initialization and Qualification | 7.8.4.1. Step 1: Test Initialization and Qualification | |||
Verify the link status of all connected physical interfaces. All | Verify the link status of all connected physical interfaces. All | |||
interfaces are expected to be in "UP" status. | interfaces are expected to be in "UP" status. | |||
Configure the traffic load profile of the test equipment to establish | Configure the traffic load profile of the test equipment to establish | |||
the "Initial objective" as defined in Section 7.8.3.2. The traffic | the initial objectives, as defined in Section 7.8.3.2. The traffic | |||
load profile MUST be defined as described in Section 4.3.4. | load profile MUST be defined as described in Section 4.3.4. | |||
The DUT/SUT MUST reach the "Initial objective" before the sustain | The DUT/SUT MUST reach the initial objectives before the sustain | |||
phase. The measured KPIs during the sustain phase MUST meet all the | phase. The measured KPIs during the sustain phase MUST meet all the | |||
test results validation criteria defined in Section 7.8.3.3. | test results validation criteria defined in Section 7.8.3.3. | |||
If the KPI metrics do not meet the test results validation criteria, | If the KPI metrics do not meet the test results validation criteria, | |||
the test procedure MUST NOT be continued to "Step 2". | the test procedure MUST NOT be continued to Step 2. | |||
7.8.4.2. Step 2: Test Run with Target Objective | 7.8.4.2. Step 2: Test Run with Target Objective | |||
Configure test equipment to establish the "Target objective" defined | Configure test equipment to establish the target objectives defined | |||
in Section 7.8.3.2. The test equipment MUST follow the traffic load | in Section 7.8.3.2. The test equipment MUST follow the traffic load | |||
profile definition as described in Section 4.3.4. | profile definition described in Section 4.3.4. | |||
The test equipment MUST start to measure and record all specified | The test equipment MUST start to measure and record all specified | |||
KPIs. Continue the test until all traffic profile phases are | KPIs. Continue the test until all traffic profile phases are | |||
completed. | completed. | |||
Within the test results validation criteria, the DUT/SUT MUST reach | Within the test results validation criteria, the DUT/SUT MUST reach | |||
the desired value of the target objective in the sustain phase. | the desired value of the target objective in the sustain phase. | |||
Measure the minimum, average, and maximum values of TTFB and TTLB. | Measure the minimum, average, and maximum values of the TTFB and | |||
TTLB. | ||||
7.9. Concurrent TCP/QUIC Connection Capacity with HTTPS Traffic | 7.9. Concurrent TCP or QUIC Connection Capacity with HTTPS Traffic | |||
7.9.1. Objective | 7.9.1. Objective | |||
Determine the number of concurrent TCP/QUIC connections the DUT/SUT | Determine the number of concurrent TCP or QUIC connections the DUT/ | |||
sustains when using HTTPS traffic. | SUT sustains when using HTTPS traffic. | |||
7.9.2. Test Setup | 7.9.2. Test Setup | |||
Testbed setup MUST be configured as defined in Section 4. Any | The testbed setup MUST be configured as defined in Section 4. Any | |||
specific testbed configuration changes (number of interfaces and | specific testbed configuration changes (number of interfaces, | |||
interface type, etc.) MUST be documented. | interface type, etc.) MUST be documented. | |||
7.9.3. Test Parameters | 7.9.3. Test Parameters | |||
In this section, benchmarking test specific parameters are defined. | In this section, benchmarking-test-specific parameters are defined. | |||
7.9.3.1. DUT/SUT Configuration Parameters | 7.9.3.1. DUT/SUT Configuration Parameters | |||
DUT/SUT parameters MUST conform to the requirements defined in | DUT/SUT parameters MUST conform to the requirements defined in | |||
Section 4.2. Any configuration changes for this specific | Section 4.2. Any configuration changes for this specific | |||
benchmarking test MUST be documented. | benchmarking test MUST be documented. | |||
7.9.3.2. Test Equipment Configuration Parameters | 7.9.3.2. Test Equipment Configuration Parameters | |||
Test equipment configuration parameters MUST conform to the | Test equipment configuration parameters MUST conform to the | |||
requirements defined in Section 4.3. The following parameters MUST | requirements defined in Section 4.3. The following parameters MUST | |||
be documented for this benchmarking test: | be documented for this benchmarking test: | |||
Client IP address ranges defined in Section 4.3.1.3 | * Client IP address ranges defined in Section 4.3.1.3 | |||
Server IP address ranges defined in Section 4.3.2.3 | * Server IP address ranges defined in Section 4.3.2.3 | |||
Traffic distribution ratio between IPv4 and IPv6 defined in | * Traffic distribution ratio between IPv4 and IPv6 defined in | |||
Section 4.3.1.3 | Section 4.3.1.3 | |||
RECOMMENDED cipher suites and key sizes defined in Section 4.3.1.4 | * RECOMMENDED cipher suites and key sizes defined in Section 4.3.1.4 | |||
Target concurrent connections: Initial value from product | * Target concurrent connections: Initial value from the product | |||
datasheet or the value defined based on the requirement for a | datasheet or the value defined based on the requirement for a | |||
specific deployment scenario. | specific deployment scenario | |||
Initial concurrent connections: 10% of "Target concurrent | * Initial concurrent connections: 10% of "Target concurrent | |||
connections" Note: Initial concurrent connection is not a KPI to | connections" | |||
report. This value is configured on the traffic generator and | ||||
used to perform Step1: "Test Initialization and Qualification" | ||||
described under Section 7.9.4. | ||||
Connections per second during ramp up phase: 50% of maximum | Note: Initial concurrent connections is not a KPI to report. This | |||
connections per second measured in benchmarking test TCP/QUIC | value is configured on the traffic generator and used to perform | |||
Connections per second with HTTPS Traffic (Section 7.6) | Step 1 (Test Initialization and Qualification) described in | |||
Section 7.9.4. | ||||
Ramp up time (in traffic load profile for "Target concurrent | * Connections per second during ramp up phase: 50% of maximum | |||
connections per second measured in the benchmarking test TCP or | ||||
QUIC connections per second with HTTPS traffic (Section 7.6) | ||||
* Ramp up time (in traffic load profile for "Target concurrent | ||||
connections"): "Target concurrent connections" / "Maximum | connections"): "Target concurrent connections" / "Maximum | |||
connections per second during ramp up phase" | connections per second during ramp up phase" | |||
Ramp up time (in traffic load profile for "Initial concurrent | * Ramp up time (in traffic load profile for "Initial concurrent | |||
connections"): "Initial concurrent connections" / "Maximum | connections"): "Initial concurrent connections" / "Maximum | |||
connections per second during ramp up phase" | connections per second during ramp up phase" | |||
The client MUST perform HTTPS transactions with persistence and each | The client MUST perform HTTPS transactions with persistence, and each | |||
client can open multiple concurrent connections per server endpoint | client can open multiple concurrent connections per server endpoint | |||
IP. | IP. | |||
Each client sends 10 GET requests requesting 1 KByte HTTPS response | Each client sends 10 GET requests requesting 1 KB HTTPS response | |||
objects in the same TCP/QUIC connections (10 transactions/connection) | objects in the same TCP or QUIC connections (10 transactions/ | |||
and the delay (think time) between each transaction MUST be X | connections), and the delay (think time) between each transaction | |||
seconds. | MUST be X seconds, where X is as follows. | |||
X = ("Ramp up time" + "steady state time") /10 | X = ("Ramp up time" + "steady state time") / 10 | |||
The established connections MUST remain open until the ramp down | The established connections MUST remain open until the ramp down | |||
phase of the test. During the ramp down phase, all connections MUST | phase of the test. During the ramp down phase, all connections MUST | |||
be successfully closed with FIN. | be successfully closed with FIN. | |||
7.9.3.3. Test Results Validation Criteria | 7.9.3.3. Test Results Validation Criteria | |||
The following criteria are the test results validation criteria. The | The following criteria are the test results validation criteria. The | |||
Test results validation criteria MUST be monitored during the whole | test results validation criteria MUST be monitored during the whole | |||
sustain phase of the traffic load profile. | sustain phase of the traffic load profile. | |||
a. Number of failed application transactions (receiving any HTTP | a. The number of failed application transactions (receiving any HTTP | |||
response code other than 200 OK) MUST be less than 0.001% (1 out | response code other than 200 OK) MUST be less than 0.001% (1 out | |||
of 100,000 transactions) of total attempted transactions. | of 100,000 transactions) of the total attempted transactions. | |||
b. Number of terminated TCP connections due to unexpected TCP RST | b. The number of terminated TCP connections due to unexpected TCP | |||
sent by DUT/SUT MUST be less than 0.001% (1 out of 100,000 | RSTs sent by the DUT/SUT MUST be less than 0.001% (1 out of | |||
connections) of total initiated TCP connections. If HTTP/3 is | 100,000 connections) of the total initiated TCP connections. If | |||
used, the number of terminated QUIC connections due to unexpected | HTTP/3 is used, the number of terminated QUIC connections due to | |||
errors MUST be less than 0.001% (1 out of 100,000 connections) of | unexpected errors MUST be less than 0.001% (1 out of 100,000 | |||
total initiated QUIC connections | connections) of the total initiated QUIC connections. | |||
c. During the sustain phase, traffic MUST be forwarded at a constant | c. During the sustain phase, traffic MUST be forwarded at a constant | |||
rate (considered as a constant rate if any deviation of traffic | rate (it is considered as a constant rate if any deviation of the | |||
forwarding rate is less than 5%). | traffic forwarding rate is less than 5%). | |||
7.9.3.4. Measurement | 7.9.3.4. Measurement | |||
Average Concurrent TCP or QUIC Connections MUST be reported for this | Average concurrent TCP or QUIC connections MUST be reported for this | |||
benchmarking test. | benchmarking test. | |||
7.9.4. Test Procedures and Expected Results | 7.9.4. Test Procedures and Expected Results | |||
The test procedure is designed to measure the concurrent TCP | The test procedure is designed to measure the concurrent TCP | |||
connection capacity of the DUT/SUT at the sustaining period of the | connection capacity of the DUT/SUT at the sustaining period of the | |||
traffic load profile. The test procedure consists of three major | traffic load profile. The test procedure consists of three major | |||
steps: Step 1 ensures the DUT/SUT is able to reach the performance | steps. Step 1 ensures the DUT/SUT is able to reach the performance | |||
value (Initial concurrent connection) and meets the test results | value (Initial concurrent connection) and meets the test results | |||
validation criteria when it was very minimally utilized. Step 2 | validation criteria when it was very minimally utilized. Step 2 | |||
determines whether the DUT/SUT is able to reach the target | determines whether the DUT/SUT is able to reach the target | |||
performance value within the test results validation criteria. Step | performance value within the test results validation criteria. Step | |||
3 determines the maximum achievable performance value within the test | 3 determines the maximum achievable performance value within the test | |||
results validation criteria. | results validation criteria. | |||
This test procedure MAY be repeated multiple times with different | This test procedure MAY be repeated multiple times with different | |||
IPv4 and IPv6 traffic distributions. | IPv4 and IPv6 traffic distributions. | |||
7.9.4.1. Step 1: Test Initialization and Qualification | 7.9.4.1. Step 1: Test Initialization and Qualification | |||
Verify the link status of all connected physical interfaces. All | Verify the link status of all connected physical interfaces. All | |||
interfaces are expected to be in "UP" status. | interfaces are expected to be in "UP" status. | |||
Configure test equipment to establish "Initial concurrent TCP | Configure test equipment to establish "Initial concurrent | |||
connections" defined in Section 7.9.3.2. Except ramp up time, the | connections" defined in Section 7.9.3.2. Except ramp up time, the | |||
traffic load profile MUST be defined as described in Section 4.3.4. | traffic load profile MUST be defined as described in Section 4.3.4. | |||
During the sustain phase, the DUT/SUT MUST reach the "Initial | During the sustain phase, the DUT/SUT MUST reach the "Initial | |||
concurrent connections". The measured KPIs during the sustain phase | concurrent connections". The measured KPIs during the sustain phase | |||
MUST meet the test results validation criteria "a", and "b" defined | MUST meet the test results validation criteria "a" and "b" defined in | |||
in Section 7.9.3.3. | Section 7.9.3.3. | |||
If the KPI metrics do not meet the test results validation criteria, | If the KPI metrics do not meet the test results validation criteria, | |||
the test procedure MUST NOT be continued to "Step 2". | the test procedure MUST NOT be continued to Step 2. | |||
7.9.4.2. Step 2: Test Run with Target Objective | 7.9.4.2. Step 2: Test Run with Target Objective | |||
Configure test equipment to establish the target objective ("Target | Configure test equipment to establish the target objective ("Target | |||
concurrent connections"). The test equipment MUST follow the traffic | concurrent connections"). The test equipment MUST follow the traffic | |||
load profile definition (except ramp up time) as described in | load profile definition (except ramp up time) described in | |||
Section 4.3.4. | Section 4.3.4. | |||
During the ramp up and sustain phase, the other KPIs such as | During the ramp up and sustain phases, the other KPIs, such as | |||
inspected throughput, TCP or QUIC connections per second, and | inspected throughput, TCP or QUIC connections per second, and | |||
application transactions per second MUST NOT reach the maximum value | application transactions per second, MUST NOT reach the maximum value | |||
that the DUT/SUT can support. | that the DUT/SUT can support. | |||
The test equipment MUST start to measure and record KPIs defined in | The test equipment MUST start to measure and record KPIs defined in | |||
Section 7.9.3.4. Continue the test until all traffic profile phases | Section 7.9.3.4. Continue the test until all traffic profile phases | |||
are completed. | are completed. | |||
Within the test results validation criteria, the DUT/SUT is expected | Within the test results validation criteria, the DUT/SUT is expected | |||
to reach the desired value of the target objective in the sustain | to reach the desired value of the target objective in the sustain | |||
phase. Follow step 3, if the measured value does not meet the target | phase. Follow Step 3 if the measured value does not meet the target | |||
value or does not fulfill the test results validation criteria. | value or does not fulfill the test results validation criteria. | |||
7.9.4.3. Step 3: Test Iteration | 7.9.4.3. Step 3: Test Iteration | |||
Determine the achievable concurrent TCP/QUIC connections within the | Determine the achievable concurrent TCP or QUIC connections within | |||
test results validation criteria. | the test results validation criteria. | |||
8. IANA Considerations | 8. IANA Considerations | |||
This document makes no specific request of IANA. | This document makes no specific request of IANA. | |||
The IANA has assigned IPv4 and IPv6 address blocks in [RFC6890] that | IANA has assigned IPv4 and IPv6 address blocks in [RFC6890] that have | |||
have been registered for special purposes. The IPv6 address block | been registered for special purposes. The IPv6 address block | |||
2001:2::/48 has been allocated for the purpose of IPv6 Benchmarking | 2001:2::/48 has been allocated for the purpose of IPv6 benchmarking | |||
[RFC5180] and the IPv4 address block 198.18.0.0/15 has been allocated | [RFC5180], and the IPv4 address block 198.18.0.0/15 has been | |||
for the purpose of IPv4 Benchmarking [RFC2544]. This assignment was | allocated for the purpose of IPv4 benchmarking [RFC2544]. This | |||
made to minimize the chance of conflict in case a testing device were | assignment was made to minimize the chance of conflict in case a | |||
to be accidentally connected to the part of the Internet. | testing device were to be accidentally connected to the part of the | |||
Internet. | ||||
9. Security Considerations | 9. Security Considerations | |||
The primary goal of this document is to provide benchmarking | The primary goal of this document is to provide benchmarking | |||
terminology and methodology for next-generation network security | terminology and methodology for next-generation network security | |||
devices for use in a laboratory isolated test environment. However, | devices for use in a laboratory-isolated test environment. However, | |||
readers should be aware that there is some overlap between | readers should be aware that there is some overlap between | |||
performance and security issues. Specifically, the optimal | performance and security issues. Specifically, the optimal | |||
configuration for network security device performance may not be the | configuration for network security device performance may not be the | |||
most secure, and vice-versa. Testing security platforms with working | most secure, and vice versa. Testing security platforms with working | |||
exploits and malware carries risks. Ensure proper access controls | exploits and malware carries risks. Ensure proper access controls | |||
are implemented to prevent unintended exposure to vulnerable networks | are implemented to prevent unintended exposure to vulnerable networks | |||
or systems. The cipher suites recommended in this document are for | or systems. The cipher suites recommended in this document are for | |||
test purposes only. The cipher suite recommendation for a real | test purposes only. The cipher suite recommendation for a real | |||
deployment is outside the scope of this document. | deployment is outside the scope of this document. | |||
Security assessment of an NGFW/NGIPS product could also include an | Security assessment of an NGFW/NGIPS product could also include an | |||
analysis whether any type of uncommon traffic characteristics would | analysis whether any type of uncommon traffic characteristics would | |||
have a significant impact on performance. Such performance impacts | have a significant impact on performance. Such performance impacts | |||
would allow an attacker to use such specifically crafted traffic as a | would allow an attacker to use such specifically crafted traffic as a | |||
DoS attack to reduce the remaining performance available to other | DoS attack to reduce the remaining performance available to other | |||
traffic through the NGFW/NGIPS. Such uncommon traffic | traffic through the NGFW/NGIPS. Such uncommon traffic | |||
characteristics might include for example IP fragmented traffic, | characteristics might include, for example, IP-fragmented traffic, a | |||
specific type of application traffic, or uncommonly high HTTP | specific type of application traffic, or uncommonly high HTTP | |||
transaction rate traffic. | transaction rate traffic. | |||
10. Contributors | 10. References | |||
The following individuals contributed significantly to the creation | ||||
of this document: | ||||
Alex Samonte, Amritam Putatunda, Aria Eslambolchizadeh, Chao Guo, | ||||
Chris Brown, Cory Ford, David DeSanto, Jurrie Van Den Breekel, | ||||
Michelle Rhines, Mike Jack, Ryan Liles, Samaresh Nair, Stephen | ||||
Goudreault, Tim Carlin, and Tim Otto. | ||||
11. Acknowledgements | ||||
The authors wish to acknowledge the members of NetSecOPEN for their | ||||
participation in the creation of this document. Additionally, the | ||||
following members need to be acknowledged: | ||||
Anand Vijayan, Chris Marshall, Jay Lindenauer, Michael Shannon, Mike | ||||
Deichman, Ryan Riese, and Toulnay Orkun. | ||||
12. References | ||||
12.1. Normative References | 10.1. Normative References | |||
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
<https://www.rfc-editor.org/info/rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | |||
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | |||
May 2017, <https://www.rfc-editor.org/info/rfc8174>. | May 2017, <https://www.rfc-editor.org/info/rfc8174>. | |||
12.2. Informative References | 10.2. Informative References | |||
[fastly] Oku, K. and J. Iyengar, "Can QUIC match TCP's | [CVE] CVE, "Current CVSS Score Distribution For All | |||
computational efficiency?", 30 April 2020, | Vulnerabilities", <https://www.cvedetails.com/>. | |||
<https://www.fastly.com/blog/measuring-quic-vs-tcp- | ||||
computational-efficiency>. | [fastly] Oku, K. and J. Iyengar, "QUIC vs TCP: Which is Better?", | |||
April 2020, <https://www.fastly.com/blog/measuring-quic- | ||||
vs-tcp-computational-efficiency>. | ||||
[RFC2544] Bradner, S. and J. McQuaid, "Benchmarking Methodology for | [RFC2544] Bradner, S. and J. McQuaid, "Benchmarking Methodology for | |||
Network Interconnect Devices", RFC 2544, | Network Interconnect Devices", RFC 2544, | |||
DOI 10.17487/RFC2544, March 1999, | DOI 10.17487/RFC2544, March 1999, | |||
<https://www.rfc-editor.org/info/rfc2544>. | <https://www.rfc-editor.org/info/rfc2544>. | |||
[RFC2647] Newman, D., "Benchmarking Terminology for Firewall | [RFC2647] Newman, D., "Benchmarking Terminology for Firewall | |||
Performance", RFC 2647, DOI 10.17487/RFC2647, August 1999, | Performance", RFC 2647, DOI 10.17487/RFC2647, August 1999, | |||
<https://www.rfc-editor.org/info/rfc2647>. | <https://www.rfc-editor.org/info/rfc2647>. | |||
skipping to change at page 59, line 17 ¶ | skipping to change at line 2741 ¶ | |||
[RFC9204] Krasic, C., Bishop, M., and A. Frindell, Ed., "QPACK: | [RFC9204] Krasic, C., Bishop, M., and A. Frindell, Ed., "QPACK: | |||
Field Compression for HTTP/3", RFC 9204, | Field Compression for HTTP/3", RFC 9204, | |||
DOI 10.17487/RFC9204, June 2022, | DOI 10.17487/RFC9204, June 2022, | |||
<https://www.rfc-editor.org/info/rfc9204>. | <https://www.rfc-editor.org/info/rfc9204>. | |||
[RFC9293] Eddy, W., Ed., "Transmission Control Protocol (TCP)", | [RFC9293] Eddy, W., Ed., "Transmission Control Protocol (TCP)", | |||
STD 7, RFC 9293, DOI 10.17487/RFC9293, August 2022, | STD 7, RFC 9293, DOI 10.17487/RFC9293, August 2022, | |||
<https://www.rfc-editor.org/info/rfc9293>. | <https://www.rfc-editor.org/info/rfc9293>. | |||
[Undertow] "An in depth overview of HTTP/2", | [Undertow] undertow, "An in depth overview of HTTP/2", | |||
<https://undertow.io/blog/2015/04/27/An-in-depth-overview- | <https://undertow.io/blog/2015/04/27/An-in-depth-overview- | |||
of-HTTP2.html>. | of-HTTP2.html>. | |||
[Wiki-NGFW] | [Wiki-NGFW] | |||
"", | Wikipedia, "Next-generation firewall", January 2023, | |||
<https://en.wikipedia.org/wiki/Next-generation_firewall>. | <https://en.wikipedia.org/w/index.php?title=Next- | |||
generation_firewall&oldid=1133673904>. | ||||
Appendix A. Test Methodology - Security Effectiveness Evaluation | Appendix A. Test Methodology - Security Effectiveness Evaluation | |||
A.1. Test Objective | A.1. Test Objective | |||
This test methodology verifies the DUT/SUT is able to detect, | This test methodology verifies the DUT/SUT is able to detect, | |||
prevent, and report the vulnerabilities. | prevent, and report the vulnerabilities. | |||
In this test, background test traffic will be generated to utilize | In this test, background test traffic will be generated to utilize | |||
the DUT/SUT. In parallel, a number of malicious traffic will be sent | the DUT/SUT. In parallel, some malicious traffic will be sent to the | |||
to the DUT/SUT as encrypted and as well as clear text payload formats | DUT/SUT as encrypted and cleartext payload formats using a traffic | |||
using a traffic generator. Section 4.2.1 defines the selection of | generator. Section 4.2.1 defines the selection of the malicious | |||
the malicious traffic from the Common Vulnerabilities and Exposures | traffic from the Common Vulnerabilities and Exposures (CVEs) list for | |||
(CVE) list for testing. | testing. | |||
The following KPIs are measured in this test: | The following KPIs are measured in this test: | |||
* Number of blocked CVEs | * Number of blocked CVEs | |||
* Number of bypassed (nonblocked) CVEs | * Number of bypassed (non-blocked) CVEs | |||
* Background traffic performance (verify if the background traffic | * Background traffic performance (verify if the background traffic | |||
is impacted while sending CVE toward DUT/SUT) | is impacted while sending CVEs toward the DUT/SUT) | |||
* Accuracy of DUT/SUT statistics in terms of vulnerabilities | * Accuracy of DUT/SUT statistics in terms of vulnerabilities | |||
reporting | reporting | |||
A.2. Testbed Setup | A.2. Testbed Setup | |||
The same testbed MUST be used for security effectiveness tests and as | The same testbed MUST be used for security effectiveness tests and | |||
well as for benchmarking test cases defined in Section 7. | for benchmarking test cases defined in Section 7. | |||
A.3. Test Parameters | A.3. Test Parameters | |||
In this section, the benchmarking test specific parameters are | In this section, the benchmarking-test-specific parameters are | |||
defined. | defined. | |||
A.3.1. DUT/SUT Configuration Parameters | A.3.1. DUT/SUT Configuration Parameters | |||
DUT/SUT configuration parameters MUST conform to the requirements | DUT/SUT configuration parameters MUST conform to the requirements | |||
defined in Section 4.2. The same DUT configuration MUST be used for | defined in Section 4.2. The same DUT configuration MUST be used for | |||
the security effectiveness test and as well as for benchmarking test | the security effectiveness test and for benchmarking test cases | |||
cases defined in Section 7. The DUT/SUT MUST be configured in inline | defined in Section 7. The DUT/SUT MUST be configured in "Inline" | |||
mode and all detected attack traffic MUST be dropped and the session | mode, all detected attack traffic MUST be dropped, and the session | |||
MUST be reset | MUST be reset | |||
A.3.2. Test Equipment Configuration Parameters | A.3.2. Test Equipment Configuration Parameters | |||
Test equipment configuration parameters MUST conform to the | Test equipment configuration parameters MUST conform to the | |||
requirements defined in Section 4.3. The same client and server IP | requirements defined in Section 4.3. The same client and server IP | |||
ranges MUST be configured as used in the benchmarking test cases. In | ranges MUST be configured as used in the benchmarking test cases. In | |||
addition, the following parameters MUST be documented for this | addition, the following parameters MUST be documented for this | |||
benchmarking test: | benchmarking test: | |||
* Background Traffic: 45% of maximum HTTP throughput and 45% of | * Background Traffic: 45% of maximum HTTP throughput and 45% of | |||
Maximum HTTPS throughput supported by the DUT/SUT (measured with | maximum HTTPS throughput supported by the DUT/SUT (measured with | |||
object size 64 KByte in the benchmarking tests "HTTP(S) | object size 64 KB in the benchmarking tests HTTP(S) Throughput | |||
Throughput" defined in Section 7.3 and Section 7.7). | defined in Sections 7.3 and 7.7) | |||
* RECOMMENDED CVE traffic transmission Rate: 10 CVEs per second | * RECOMMENDED CVE traffic transmission Rate: 10 CVEs per second | |||
* It is RECOMMENDED to generate each CVE multiple times | * It is RECOMMENDED to generate each CVE multiple times | |||
(sequentially) at 10 CVEs per second | (sequentially) at 10 CVEs per second. | |||
* Ciphers and keys for the encrypted CVE traffic MUST use the same | * Ciphers and keys for the encrypted CVE traffic MUST use the same | |||
cipher configured for HTTPS traffic related benchmarking tests | cipher configured for HTTPS-traffic-related benchmarking tests | |||
(Section 7.6 - Section 7.9) | (Sections 7.6-7.9) | |||
A.4. Test Results Validation Criteria | A.4. Test Results Validation Criteria | |||
The following criteria are the test results validation criteria. The | The following criteria are the test results validation criteria. The | |||
test results validation criteria MUST be monitored during the whole | test results validation criteria MUST be monitored during the whole | |||
test duration. | test duration. | |||
a. Number of failed application transactions in the background | a. The number of failed application transactions in the background | |||
traffic MUST be less than 0.01% of attempted transactions. | traffic MUST be less than 0.01% of the attempted transactions. | |||
b. Number of terminated TCP or QUIC connections of the background | b. The number of terminated TCP or QUIC connections of the | |||
traffic (due to unexpected errors) MUST be less than 0.01% of | background traffic (due to unexpected errors) MUST be less than | |||
total initiated TCP connections in the background traffic. | 0.01% of the total initiated TCP connections in the background | |||
traffic. | ||||
c. During the sustain phase, traffic MUST be forwarded at a constant | c. During the sustain phase, traffic MUST be forwarded at a constant | |||
rate (considered as a constant rate if any deviation of traffic | rate (it is considered as a constant rate if any deviation of the | |||
forwarding rate is less than 5%). | traffic forwarding rate is less than 5%). | |||
d. False positive MUST NOT occur in the background traffic. | d. A false positive MUST NOT occur in the background traffic. | |||
A.5. Measurement | A.5. Measurement | |||
The following KPI metrics MUST be reported for this test scenario: | The following KPI metrics MUST be reported for this test scenario: | |||
Mandatory KPIs: | Mandatory KPIs: | |||
* Blocked CVEs: They MUST be represented in the following ways: | * Blocked CVEs: They MUST be represented in the following ways: | |||
- Number of blocked CVEs out of total CVEs | - Number of blocked CVEs out of total CVEs | |||
skipping to change at page 61, line 39 ¶ | skipping to change at line 2858 ¶ | |||
* Unblocked CVEs: They MUST be represented in the following ways: | * Unblocked CVEs: They MUST be represented in the following ways: | |||
- Number of unblocked CVEs out of total CVEs | - Number of unblocked CVEs out of total CVEs | |||
- Percentage of unblocked CVEs | - Percentage of unblocked CVEs | |||
* Background traffic behavior: It MUST be represented in one of the | * Background traffic behavior: It MUST be represented in one of the | |||
followings ways: | followings ways: | |||
- No impact: Considered as "no impact'" if any deviation of | - No impact: Considered as "no impact" if any deviation of the | |||
traffic forwarding rate is less than or equal to 5 % (constant | traffic forwarding rate is less than or equal to 5% (constant | |||
rate) | rate) | |||
- Minor impact: Considered as "minor impact" if any deviation of | - Minor impact: Considered as "minor impact" if any deviation of | |||
traffic forwarding rate is greater than 5% and less than or | the traffic forwarding rate is greater than 5% and less than or | |||
equal to10% (i.e. small spikes) | equal to 10% (i.e., small spikes) | |||
- Heavily impacted: Considered as "Heavily impacted" if any | - Heavy impact: Considered as "heavy impact" if any deviation of | |||
deviation of traffic forwarding rate is greater than 10% (i.e. | the traffic forwarding rate is greater than 10% (i.e., large | |||
large spikes) or reduced the background HTTP(S) throughput | spikes) or reduced the background HTTP(S) throughput greater | |||
greater than 10% | than 10% | |||
* DUT/SUT reporting accuracy: DUT/SUT MUST report all detected | * DUT/SUT reporting accuracy: The DUT/SUT MUST report all detected | |||
vulnerabilities. | vulnerabilities. | |||
Optional KPIs: | Optional KPIs: | |||
* List of unblocked CVEs | * List of unblocked CVEs | |||
A.6. Test Procedures and Expected Results | A.6. Test Procedures and Expected Results | |||
The test procedure is designed to measure the security effectiveness | The test procedure is designed to measure the security effectiveness | |||
of the DUT/SUT at the sustaining period of the traffic load profile. | of the DUT/SUT at the sustaining period of the traffic load profile. | |||
The test procedure consists of two major steps. This test procedure | The test procedure consists of two major steps. This test procedure | |||
MAY be repeated multiple times with different IPv4 and IPv6 traffic | MAY be repeated multiple times with different IPv4 and IPv6 traffic | |||
distributions. | distributions. | |||
A.6.1. Step 1: Background Traffic | A.6.1. Step 1: Background Traffic | |||
Generate background traffic at the transmission rate defined in | Generate background traffic at the transmission rate defined in | |||
Appendix A.3.2. | Appendix A.3.2. | |||
The DUT/SUT MUST reach the target objective (HTTP(S) throughput) in | The DUT/SUT MUST reach the target objective (HTTP(S) throughput) in | |||
sustain phase. The measured KPIs during the sustain phase MUST meet | the sustain phase. The measured KPIs during the sustain phase MUST | |||
all the test results validation criteria defined in Appendix A.4. | meet all the test results validation criteria defined in | |||
Appendix A.4. | ||||
If the KPI metrics do not meet the acceptance criteria, the test | If the KPI metrics do not meet the test results validation criteria, | |||
procedure MUST NOT be continued to "Step 2". | the test procedure MUST NOT be continued to Step 2. | |||
A.6.2. Step 2: CVE Emulation | A.6.2. Step 2: CVE Emulation | |||
While generating background traffic (in sustain phase), send the CVE | While generating background traffic (in the sustain phase), send the | |||
traffic as defined in the parameter section. | CVE traffic, as defined in the parameter section (Appendix A.3.2). | |||
The test equipment MUST start to measure and record all specified | The test equipment MUST start to measure and record all specified | |||
KPIs. Continue the test until all CVEs are sent. | KPIs. Continue the test until all CVEs are sent. | |||
The measured KPIs MUST meet all the test results validation criteria | The measured KPIs MUST meet all the test results validation criteria | |||
defined in Appendix A.4. | defined in Appendix A.4. | |||
In addition, the DUT/SUT should either report the detected | In addition, the DUT/SUT should report the detected vulnerabilities | |||
vulnerabilities in the log correctly or if, for example, a different | in the log correctly, or there MUST be reference material available | |||
naming convention is used, there MUST be reference material available | ||||
that will allow for verification that the correct vulnerability was | that will allow for verification that the correct vulnerability was | |||
detected. This reference material MUST be cited in the report. | detected if, for example, a different naming convention is used. | |||
This reference material MUST be cited in the report. | ||||
Appendix B. DUT/SUT Classification | Appendix B. DUT/SUT Classification | |||
This document aims to classify the DUT/SUT into four different | This document aims to classify the DUT/SUT into four different | |||
categories based on its maximum supported firewall throughput | categories based on its maximum-supported firewall throughput | |||
performance number defined in the vendor datasheet. This | performance number defined in the vendor datasheet. This | |||
classification MAY help users to determine specific configuration | classification MAY help users to determine specific configuration | |||
scales (e.g., number of ACL entries), traffic profiles, and attack | scales (e.g., number of ACL entries), traffic profiles, and attack | |||
traffic profiles, scaling those proportionally to DUT/SUT sizing | traffic profiles, scaling those proportionally to the DUT/SUT sizing | |||
category. | category. | |||
The four different categories are Extra Small (XS), Small (S), Medium | The four different categories are Extra Small (XS), Small (S), Medium | |||
(M), and Large (L). The RECOMMENDED throughput values for the | (M), and Large (L). The RECOMMENDED throughput values for the | |||
following categories are: | following categories are: | |||
Extra Small (XS) - Supported throughput less than or equal to1Gbit/s | Extra Small (XS) - Supported throughput less than or equal to 1 | |||
Gbit/s | ||||
Small (S) - Supported throughput greater than 1Gbit/s and less than | Small (S) - Supported throughput greater than 1 Gbit/s and less than | |||
or equal to 5Gbit/s | or equal to 5Gbit/s | |||
Medium (M) - Supported throughput greater than 5Gbit/s and less than | Medium (M) - Supported throughput greater than 5 Gbit/s and less | |||
or equal to 10Gbit/s | than or equal to 10Gbit/s | |||
Large (L) - Supported throughput greater than 10Gbit/s | Large (L) - Supported throughput greater than 10 Gbit/s | |||
Acknowledgements | ||||
The authors wish to acknowledge the members of NetSecOPEN for their | ||||
participation in the creation of this document. Additionally, the | ||||
following members need to be acknowledged: | ||||
Anand Vijayan, Chris Marshall, Jay Lindenauer, Michael Shannon, Mike | ||||
Deichman, Ryan Riese, and Toulnay Orkun. | ||||
Contributors | ||||
The following individuals contributed significantly to the creation | ||||
of this document: | ||||
Alex Samonte, Amritam Putatunda, Aria Eslambolchizadeh, Chao Guo, | ||||
Chris Brown, Cory Ford, David DeSanto, Jurrie Van Den Breekel, | ||||
Michelle Rhines, Mike Jack, Ryan Liles, Samaresh Nair, Stephen | ||||
Goudreault, Tim Carlin, and Tim Otto. | ||||
Authors' Addresses | Authors' Addresses | |||
Balamuhunthan Balarajah | Balamuhunthan Balarajah | |||
Berlin | Berlin | |||
Germany | Germany | |||
Email: bm.balarajah@gmail.com | Email: bm.balarajah@gmail.com | |||
Carsten Rossenhoevel | Carsten Rossenhoevel | |||
EANTC AG | EANTC AG | |||
End of changes. 429 change blocks. | ||||
1151 lines changed or deleted | 1217 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. |