Network Working Group                                       Terry Martin
Internet-Draft                                             M2networx INC
Expiration Date:                                              B. Hickman
                                                          Netcom Systems
                                                               June 2000

          Benchmarking Methodology for Firewalls
              <draft-ietf-bmwg-firewall-00.txt>

Status of this Memo

  This document is an Internet-Draft and is in full conformance with
  all provisions of Section 10 of RFC2026.

  Internet-Drafts are working documents of the Internet Engineering
  Task Force (IETF), its areas, and its working groups.  Note that
  other groups may also distribute working documents as Internet-
  Drafts.

  Internet-Drafts are draft documents valid for a maximum of six months
  and may be updated, replaced, or obsoleted by other documents at any
  time.  It is inappropriate to use Internet-Drafts as reference
  material or to cite them other than as "work in progress."

  The list of current Internet-Drafts can be accessed at
  http://www.ietf.org/ietf/1id-abstracts.txt

  The list of Internet-Draft Shadow Directories can be accessed at
  http://www.ietf.org/shadow.html.


Table of Contents

   1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . .  2
   2. Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . .  2
   3. Scope  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  2
   4. Test setup . . . . . . . . . . . . . . . . . . . . . . . . . . . .  3
      4.1 Test Considerations  . . . . . . . . . . . . . . . . . . . . .  4
      4.2  Virtual Client/Servers  . . . . . . . . . . . . . . . . . . .  4
      4.3  Test Traffic Requirements . . . . . . . . . . . . . . . . . .  4
      4.4  DUT/SUT Traffic Flows . . . . . . . . . . . . . . . . . . . .  5
      4.5  Multiple Client/Server Testing  . . . . . . . . . . . . . . .  5
      4.6  NAT(Network Address Translation) .  . . . . . . . . . . . . .  6
      4.7  Rule Sets . . . . . . . . . . . . . . . . . . . . . . . . . .  6
      4.8  Web Caching . . . . . . . . . . . . . . . . . . . . . . . . .  6
   5. Benchmarking Tests . . . . . . . . . . . . . . . . . . . . . . . .  7
      5.1  Concurrent Connection Capacity  . . . . . . . . . . . . . . .  7
      5.2  Maximum Connection Rate . . . . . . . . . . . . . . . . . . .  9
      5.3  Denial Of Service Handling  . . . . . . . . . . . . . . . . . 10
      5.3  Single Application Goodput  . . . . . . . . . . . . . . . . . 12
      5.4  FTP Goodput . . . . . . . . . . . . . . . . . . . . . . . . . 12
      5.5  SMTP Goodput  . . . . . . . . . . . . . . . . . . . . . . . . 13
      5.6  HTTP Goodput  . . . . . . . . . . . . . . . . . . . . . . . . 15

Martin, Hickman                                                 [Page 1]


INTERNET-DRAFT    Benchmarking Methodology for Firewalls       June 2000

      5.7  Mixed Application Goodput . . . . . . . . . . . . . . . . . . 17
      5.8  Illegal Traffic Handling  . . . . . . . . . . . . . . . . . . 18
      5.9  Latency . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
   Appendices  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
   A. File Transfer Protocol(FTP)  . . . . . . . . . . . . . . . . . . . 19
      A.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 19
      A.2 Connection Establishment/Teardown  . . . . . . . . . . . . . . 19
      A.3 Object Format  . . . . . . . . . . . . . . . . . . . . . . . . 20
   B. Simple Mail Transfer Protocol(SMTP)  . . . . . . . . . . . . . . . 20
      B.1 Introduction   . . . . . . . . . . . . . . . . . . . . . . . . 20
      B.2 Connection Establishment/Teardown  . . . . . . . . . . . . . . 20
      B.3 Object Format  . . . . . . . . . . . . . . . . . . . . . . . . 21
   C. HyperText Transfer Protocol(HTTP)  . . . . . . . . . . . . . . . . 21
      C.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 21
      C.2 Version Considerations . . . . . . . . . . . . . . . . . . . . 21
      C.3 Object Format  . . . . . . . . . . . . . . . . . . . . . . . . 21
   D. GoodPut Measurements . . . . . . . . . . . . . . . . . . . . . . . 22
   E. References . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

1. Introduction

   This document is intended to provide methodology for the benchmarking
   of firewalls. It provides methodologies for benchmarking forwarding
   performance, connection performance, latency and filtering. In
   addition to defining the tests, this document also describes specific
   formats for reporting the results of the tests.

   A previous document, "Benchmarking Terminology for Firewall
   Performance" [1], defines many of the terms that are used in this
   document. The terminology document SHOULD be consulted before
   attempting to make use of this document.

2. Requirements

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED",  "MAY", and "OPTIONAL" in this
   document are to be interpreted as described in RFC 2119.

3. Scope

   Firewalls can provide a single point of defense between two
   networks--it protects one network from the other. Usually, a firewall
   protects the company's private network from the public or shared
   networks to which it is connected. A firewall can be as simple as a
   device that filters different packets or as complex as a group of
   devices providing solutions that offers combined packet filtering
   and application-level proxy or network translation services. This RFC
   will focus on developing bench mark testing of systems from an
   application perspective and will be developed independent of any
   firewall implementation. These tests will evaluate the ability of
   firewall devices to control and manage applications services used


Martin, Hickman                                                 [Page 2]


INTERNET-DRAFT    Benchmarking Methodology for Firewalls       June 2000

   by today's businesses such as applications like the World Wide Web,
   File transfer procedures and e-mail.

   Even through there are many different control methods of managing
   application level being implemented, this RFC does not condone or
   promote any aforementioned process or procedure.  It's goal is to
   present a procedure that will evaluate firewall performance
   independent of their implementation.

4. Test Setup

   Test configurations defined in this document will be confined to
   dual-homed and tri-homed as shown in figure 1 and figure 2
   respectively.

   Firewalls employing Dual-Homed configurations connect two networks.
   One interface of the firewall is attached to the unprotected network,
   typically the public network(i.e. - Internet). The other interface is
   connected to the protected network, typically the internal LAN. In
   the case of Dual-Homed configurations, servers which are made
   accessible to the public(Unprotected) network are attached to the
   private(Protected) network.

      +----------+                                       +----------+
      |          |    |       +----------+        |      |          |
      | Servers/ |----|       |          |        |------| Servers/ |
      | Clients  |    |       |          |        |      | Clients  |
      |          |    |-------|  DUT/SUT |--------|      |          |
      +----------+    |       |          |        |      +----------+
                      |       +----------+        |
           Protected  |                           | Unprotected
            Network                                   Network
                           Figure 1(Dual-Homed)

   Tri-homed configurations employ a third segment called a DMZ. With
   tri-homed configurations, servers accessible to the public network
   are attached to the DMZ. Tri-Homed configurations offer additional
   security by separating server accessible to the public network from
   internal hosts.














Martin, Hickman                                                 [Page 3]


INTERNET-DRAFT    Benchmarking Methodology for Firewalls       June 2000


      +----------+                                       +----------+
      |          |    |       +----------+        |      |          |
      | Clients  |----|       |          |        |------| Servers/ |
      |          |    |       |          |        |      | Clients  |
      +----------+    |-------|  DUT/SUT |--------|      |          |
                      |       |          |        |      +----------+
                      |       +----------+        |
            Protected |            |              | Unprotected
             Network               |                   Network
                                   |
                                   |
                           -----------------
                                       |    DMZ
                                       |
                                       |
                                +-----------+
                                |           |
                                | Servers   |
                                |           |
                                +-----------+

                             Figure 2(Tri-Homed)


4.1 Test Considerations

4.2 Virtual Clients/Servers

   Since firewall testing may involve data sources which emulate multiple
   users or hosts, the methodology uses the terms virtual clients/servers.
   For these firewall tests, virtual clients/servers specify application
   layer entities which may not be associated with a unique physical
   interface. For example, four virtual clients may originate from the
   same data source.

4.3 Test Traffic Requirements

   While the function of a firewall is to enforce access control
   policies, the criteria by which those policies are defined vary
   depending on the implementation. Firewalls may use network layer
   and/or, in many cases, application-layer criteria to make
   access-control decisions. Therefore, the test equipment used to
   benchmark the DUT/SUT performance MUST consist of real clients and
   servers generating legitimate layer 7 conversations. Specifically,
   the tests defined in this document use HTTP, FTP, and SMTP sessions
   for benchmarking the performance of the DUT/SUT. See appendices for
   specific information regarding the transactions involved in
   establishing/tearing down connections as well as object formats
   for each of the aforementioned protocols.



Martin, Hickman                                                 [Page 4]


INTERNET-DRAFT    Benchmarking Methodology for Firewalls       June 2000


4.4 DUT/SUT Traffic Flows

   This section discusses the client -> server traffic flow
   requirements associated with the source -> destination interfaces
   of the firewall. Since the number of interfaces are not fixed, the
   traffic flows will be dependent upon the configuration used in
   benchmarking the DUT/SUT. Note that the term "traffic flows" is in
   the context of client requests since traffic between clients and
   servers are, by nature, bi-directional with transactions occurring
   between both entities.

   In the case of Dual-Homed configurations, traffic flows presented
   to the DUT/SUT SHOULD consist of client -> server requests associated
   with the following interfaces:

        Protected   -> Unprotected
        Unprotected -> Protected

   In the case of Tri-Homed configurations, traffic flows presented
   to the DUT/SUT SHOULD consist of client -> server requests associated
   with the following interfaces:

        Protected -> Unprotected
        Protected -> DMZ
      Unprotected -> DMZ

4.5 Multiple Client/Server Testing

   The methodologies defined in this document MAY be performed with one
   or more clients targeting multiple servers for a given application.
   When performing tests with one or more virtual clients targeting
   multiple servers, each virtual client MUST initiate requests
   (Connection, file transfers, etc.) in a round-robin fashion. For
   example, if the test consisted of six virtual clients targeting
   three servers, the pattern would be as follows:


          Client                   Target Server(In order of request)

             #1                       1     2     3     1...
             #2                       2     3     1     2...
             #3                       3     1     2     3...
             #4                       1     2     3     1...
             #5                       2     3     1     2...
             #6                       3     1     2     3...







Martin, Hickman                                                 [Page 5]


INTERNET-DRAFT    Benchmarking Methodology for Firewalls       June 2000

4.6 NAT(Network Address Translation)

   Most firewalls come with Network Address Translation(NAT)networks
   built in which translates internal host IP addresses attached to the
   protected network to a virtual IP address for communicating across the
   unprotected network(Internet). Since this involves additional processing
   on the part of the DUT/SUT, its impact on performance should be measured.
   Therefore, tests defined in this document SHOULD first be ran with NAT
   disabled and then repeated with NAT enabled to determine the performance
   differentials.

4.7 Rule Sets

   Rule sets are a collection of access control policies that determines
   which packets the DUT/SUT will forward and which it will reject. The
   criteria by which these access control policies may be defined will
   vary depending on the capabilities of the product. Therefore, this
   document will not attempt to define the specifics of the rule sets,
   but instead define how the rule sets should be applied when testing
   the DUT/SUT.

   The firewall monitors the incoming traffic and checks to make sure
   that the traffic meets one of the defined rules before allowing it to
   be forwarded. It is RECOMMENDED that a rule be entered for each
   host(i.e. - Virtual client). Although many firewalls permit groups
   of IP addresses to be defined for a given rule, tests SHOULD be
   performed with as large a rule set as possible to better stress test
   the DUT/SUT. In addition, a rule MUST be defined which denies access
   to all traffic which was not previously defined in the rule set,
   provided such a rule can be defined in the DUT/SUT.

4.8 Web Caching

   Some firewalls include caching agents in order to reduce network
   load. When making a request through a caching agent, the caching
   agent attempts to service the response from its internal resources.
   The cache itself saves responses it receives, such as responses for
   HTTP GET requests. Therefore, caching SHOULD be disabled on the
   DUT/SUT prior to performing the tests.














Martin, Hickman                                                 [Page 6]


INTERNET-DRAFT    Benchmarking Methodology for Firewalls       June 2000

5. Benchmarking Tests

   The following tests offer objectives, procedures, and reporting
   formats for benchmarking firewalls.

5.1 Concurrent Connection Capacity

5.1.1 Objective

   To determine the maximum number of concurrent connections supported
   by the DUT/SUT, as defined in RFC2647[1]. This test will employ a
   step search algorithm to obtain the maximum number of concurrent FTP
   connections the DUT/SUT can maintain.

5.1.2 Setup Parameters

   The following parameters MUST be defined. Each variable is configured
   with the following considerations.

   Connection Attempt Rate - The rate at which new connection requests
   are attempted. The rate SHOULD be set lower than maximum rate at
   which the DUT/SUT can accept new connection requests. The connection
   attempt rate MUST be evenly divided among all of the participating
   virtual clients.

   Connection Step count -  Defines the number of additional connections
   attempted for each iteration of the search algorithm. The step count
   SHOULD be a multiple of the number of virtual clients participating
   in the test. In addition, the number MUST be greater than or equal to
   the number of virtual clients participating in the test.

5.1.3 Procedure

   Each virtual client will attempt to establish FTP control connections
   by issuing an OPEN command to their target server(s) at a fixed rate.
   Each iteration will involve the virtual clients attempting to
   establish a fixed number of additional connections. This search
   algorithm will be repeated until either:

        - One or more of the additional connection attempts fail to
        complete
        - One or more of the previously established connections drop.

   The transactions between the client and server associated with
   establishing FTP connections are defined in Appendix A. In order to
   verify that work can be performed across that connection, the virtual
   client MUST issue a NOOP command. This command is in addition to the
   transactions define in Appendix A, and must be accompanied by the
   Command Successful reply from the target server in order to be
   considered a successful connection.



Martin, Hickman                                                 [Page 7]


INTERNET-DRAFT    Benchmarking Methodology for Firewalls       June 2000

   After each iteration, all virtual clients MUST issue a NOP command
   across all of their open connections to verify that none of the
   previously opened connections were dropped by the DUT/SUT.

   The algorithm for the test is as follows:

   CONSTANT

     STEP = Connection Step Count;  {# of additional connection attempts
                                      per iteration}
     MAX = ...; {maximum connections supported by test tool
                 implementation}
   VARIABLE

     CURRENT  := 0;   {Highest passed value}
     STATUS = PASS;

   BEGIN
     RESET;   {RESET all connections}
     DO
        BEGIN
        EstablishStepConnections; { See Appendix A.3}
        IF(AttemptsSucessful) THEN
           BEGIN
           VerifyAllConnections { Send NOP command  over all open
                                  connections }
           IF(Received replies for all NO0P commands) THEN
             BEGIN { Maximum number of connections NOT found }
             CURRENT := CURRENT + Step Count
             END
           ELSE
             BEGIN { Maximum number of connections < Step Count }
             STATUS := FAIL
             END
           END
         ELSE
           BEGIN  { Maximum number of connections < Step Count }
           STATUS := FAIL
           END
         END
       END WHILE(STATUS == PASS && [[CURRENT + Step Count] < MAX])
     END
   END {Value of CURRENT equals number connections supported by DUT/SUT}

5.1.4 Measurements

   Whether all of the connection attempts were successfully completed.
   Test equipment MUST be able to track each connection to verify all
   required transaction between the virtual client and server completed
   successfully. This includes successful completion of both the
   command sequences and exchanging of any data across each of those
   connections.

Martin, Hickman                                                 [Page 8]


INTERNET-DRAFT    Benchmarking Methodology for Firewalls       June 2000

5.1.5 Reporting Format

   Maximum concurrent connections reported MUST be the aggregate number
   of connections completed for the last successful iteration. Report
   SHOULD also include:

      - Number of virtual clients and servers participating in the test
      - Whether NAT was enabled or disabled.

5.2 Maximum Connection Setup Rate

5.2.1 Objective

   To determine the maximum connection rate which the DUT/SUT can
   successfully establish connections. As with the Concurrent Connection
   Capacity test, FTP session will be used to determine this metric.

5.2.2 Setup Parameters

   The following parameters MUST be defined. Each variable is configured
   with the following considerations.

   Initial Attempt Rate - The rate at which the initial connection
   requests are attempted. The connection attempt rate MUST be evenly
   divided among all of the participating virtual clients.

   Rate Step Count - The rate at which connection attempts are either
   increased or decreased during the search algorithm. The rate step
   count MUST be evenly divided among all of the participating virtual
   clients.

   Number of Connections - Defines the number of connections that must
   be established. The number MUST be between the number of
   participating virtual clients and the maximum number supported by the
   implementation. It is RECOMMENDED not to exceed the concurrent
   connection capacity found in section 5.1.

5.2.3 Procedure

   An algorithm similar to the one used to determine the concurrent
   connection capacity will be used to determine the maximum connection
   rate. This test iterates the rate at which connections are attempted
   by the virtual clients to their associated server(s).

   The connection establishment rate might be determined for different
   numbers of connections but in each test run, the number MUST remain
   constant and SHOULD be equal to or less than the maximum connection
   capacity.





Martin, Hickman                                                 [Page 9]


INTERNET-DRAFT    Benchmarking Methodology for Firewalls       June 2000

   As with the connection capacity test, NOOP commands will be
   generated when both establishing the connection and after all
   connections have been established to verify none of the previously
   established connections have dropped.

5.2.4 Measurements

   Min/Avg/Max connection times MUST be measured. The connection time
   SHALL begin when the client initiates the OPEN command and end when
   the client received a successful login acknowledgment from the
   server. Note that although the NOOP command is included as part of
   the procedure for establishing the connection, it MUST not be
   included as part of the connection establishment time.

5.2.5 Reporting Format

   The results for these tests SHOULD be reported in the form of a
   graph.  The x coordinate SHOULD be the connection count. The y
   coordinate should be the connection establishment time. The graph
   SHOULD include the Minimum, Average and Maximum connection times.

  Report SHOULD also include:

      - Number of virtual clients and servers participating in the test
      - Whether NAT was enabled or disabled.

5.3 Denial Of Service Handling

5.3.1 Objective

   To determine the effect of a denial of service attack in so far as
   it's impacts on connection establishment rates through the DUT/SUT.
   The Denial Of Service Handling test should be ran after obtaining
   baseline measurements from section 5.2. The results can then be
   compared with the baseline measurements to obtain the performance
   differentials.

5.3.2 Setup Parameters

   The following parameters MUST be defined. Each variable is
   configured with the following considerations.

   Initial Attempt Rate - The rate at which the initial connection
   requests are attempted. The connection attempt rate MUST be evenly
   divided among all of the participating virtual clients.

   Rate Step Count - The rate at which connection attempts are either
   increased or decreased during the search algorithm. The rate step
   count MUST be evenly divided among all of the virtual clients
   participating in the test.



Martin, Hickman                                                [Page 10]


INTERNET-DRAFT    Benchmarking Methodology for Firewalls       June 2000

   Number of Connections - Defines the number of connections that must
   be established. The number MUST be between the number of
   participating clients and the maximum number supported by the
   implementation. It is RECOMMENDED not to exceed the concurrent
   connection capacity found in section 5.1.

   SYN Attack Rate - Defines the rate at which the server(s) are
   targeted with TCP SYN packets.

5.3.3 Procedure

   This test will use the same procedure as defined in the maximum
   connection setup rate, except that the test traffic will include
   TCP SYN packets targeting the server(s) IP address or NAT proxy
   address.

   TCP employs a "three-way handshake" when establishing a connection
   between two hosts. When a normal TCP connection starts, a destination
   host receives a SYN (synchronize/start)packet from a source host and
   sends back a SYN ACK (synchronize acknowledge). The destination host
   must then hear an ACK (acknowledge) of the SYN ACK before the
   connection is established. The TCP SYN attack exploits this design
   by having an attacking source host generate TCP SYN packets with
   random source addresses towards a victim host, thereby consuming
   that hosts resources.

   The tester originating the TCP SYN attack MUST be attached to the
   Unprotected network. In addition, the tester MUST not respond to the
   SYN ACK packets sent by target server in response to the SYN packet.

5.3.4 Measurements

   Min/Avg/Max connection times MUST be measured. The connection time
   SHALL begin when the client initiates the OPEN command and end when
   the client received a successful login acknowledgment from the
   server. Note that although the NOOP command is included as part of
   the procedure for establishing the connection, it MUST not be
   included as part of the connection establishment time.

5.2.5 Reporting Format

   The results for these tests SHOULD be reported in the form of a
   graph.  The x coordinate SHOULD be the connection count. The y
   coordinate should be the connection establishment time. The graph
   SHOULD include the Minimum, Average and Maximum connection times.

  Report SHOULD also include:

      - Number of virtual clients and servers participating in the test
      - Whether NAT was enabled or disabled.
      - TCP SYN Attack Rate


Martin, Hickman                                                [Page 11]


INTERNET-DRAFT    Benchmarking Methodology for Firewalls       June 2000

5.4 Single Application Goodput

   This section defined the procedures for baselining the Goodput of the
   DUT/SUT for FTP, HTTP and SMTP traffic.

5.4.1.1 FTP Goodput

5.4.1.2 Objective

   The File Transfer Protocol is a common application used by companies
   to transfer files from one device to another.  Evaluating FTP Goodput
   will allow individuals to measure how much successful traffic has
   been forwarded by the DUT/SUT.

5.4.1.3 Setup Parameters

   The following parameters MUST be defined. Each variable is
   configured with the following considerations.

   Number of Connections - Defines the number of connections to be
   opened for transferring data objects. Number MUST be equal or
   greater than the number of virtual clients participating in the
   test. The number SHOULD be a multiple of the virtual client
   participating in the test.

   Connection Rate - Defines the rate at which connections are
   established. Number MUST be evenly divided among all of the
   virtual clients participating in the test.

   Object Size - Defines the number of bytes to be transferred across
   each connection. RECOMMENDED object sizes still need to be
   determined.

5.4.1.4 Procedure

   Each virtual client will establish a FTP connection to its respective
   server(s) at a user specified rate. The transaction involved in
   establishing the FTP connection should follow the procedure defined
   in Appendix A.

   After the login process has been completed, the virtual client will
   initiate a file transfer by issuing a "Get" command. The "Get"
   command will target a predefined file of object size bytes.

   Once the file transfer has completed, the virtual client will close
   the FTP connection by issuing the QUIT command. When testing multiple
   object sizes, all connections established for the previous file
   transfer MUST have been torn down before testing the next object
   size.




Martin, Hickman                                                [Page 12]


INTERNET-DRAFT    Benchmarking Methodology for Firewalls      June 2000


5.4.2.2 Measurement

   The Goodput for each of the object sizes transferred MUST be
   measured. See appendix B for details in regards to measuring the
   Goodput of the DUT/SUT. Only file transfers which have been
   successfully acknowledged by the server are to be included in the
   Goodput measurements.

   The transaction time for each object transferred MUST be measured.
   The start time will begin when the time the "Get" commands is
   initiated and end at the time when the client receives an
   acknowledgment from the server that file transfer has completed.

5.4.2.3 Reporting Format

   Goodput analysis:
      Reporting SHOULD include a graph of the number of connections
      versus the measured Goodput in Mbps.

   Failure analysis:
      Reporting should include a graph of number of connections versus
      percent success.

   Transaction Processing analysis:
      Reporting should include a graph of number of virtual connections
      versus average transaction time.

6.4.3 SMTP Goodput

   Another application commonly in use today is the mail transfer. One
   the common transport mechanisms for mail messages is the Simple Mail
   Transfer Protocol(SMTP). As with the FTP Goodput, the SMTP Goodput
   will allow individuals to measure how much successful SMTP traffic
   has been forwarded by the DUT/SUT.

5.4.1.3 Setup Parameters

   The following parameters MUST be defined. Each variable is
   configured with the following considerations.

   Number of Connections - Defines the number of connections to be
   opened for transferring data objects. Number MUST be equal or
   greater than the number of virtual clients participating in the
   test. The number SHOULD be a multiple of the virtual client
   participating in the test.

   Connection Rate - Defines the rate at which connections are
   attempted. Number MUST be evenly divided among all of the
   virtual clients participating in the test.



Martin, Hickman                                                [Page 13]


INTERNET-DRAFT    Benchmarking Methodology for Firewalls      June 2000

   Message Size - Defines the number of bytes to be transferred across
   each connection. RECOMMENDED message sizes still need to be
   determined.

5.4.1.4 Procedure

   Each virtual client will establish a SMTP connection to its
   respective server(s) at a user specified rate. The transaction
   involved in establishing the SMTP connection should follow the
   procedure defined in Appendix B.

   After the greeting exchanges have been completed, the client will
   initiate the transfer of the message by initiating the MAIL command.
   The client will then send the predefined message.

   Once the message has been acknowledged as being received by the
   server, the virtual client will then close the connection. When
   testing multiple message sizes, all connections established for the
   previous test MUST be torn down before testing the next message
   size. This process is to be repeated for each of the defined message
   sizes.

5.4.2.2 Measurement

   The Goodput for each of the message sizes transferred MUST be
   measured. See appendix D for details in regards to measuring the
   Goodput of the DUT/SUT. Only messages which have been successfully
   acknowledged by the server are to be included in the Goodput
   measurements.

   The transaction time for each message transferred MUST be measured.
   The start time will begin when the time the "MAIL" command is
   initiated and end at the time when the client receives an
   acknowledgment from the server that the message has been received.

6.4.2.3 Reporting Format

   Goodput analysis:
      Reporting SHOULD include a graph of the number of connections
      versus the measured Goodput in Mbps.

   Failure analysis:
      Reporting should include a graph of number of connections versus
      percent success.

   Transaction Processing analysis:
      Reporting should include a graph of number of virtual connections
      versus average transaction time.





Martin, Hickman                                                [Page 14]


INTERNET-DRAFT    Benchmarking Methodology for Firewalls      June 2000

6.4.3 HTTP Goodput

   Another common application is the World Wide Web (WWW) application
   that can access documents over the Internet. This application uses
   the Hypertext Transfer Control Protocol (HTTP) to copy information
   from one system to another.

   HTTP Goodput measurement is actually determined by evaluating the
   Forwarding rate of packets.  This is based on measuring only data
   that has successfully been forwarded to the destination interface.

   When benchmarking the performance of the DUT/SUT, consideration of
   the HTTP version being used must be taken into account. Appendix C
   of this document discusses enhancements to the HTTP protocol which
   may impact performance results.

6.4.1.3 Setup Parameters

   The following parameters MUST be defined. Each variable is
   configured with the following considerations.

   Number of Connections - Defines the number of HTTP connections
   to be opened for transferring data objects. Number MUST be equal or
   greater than the number of virtual clients participating in the
   test. The number SHOULD be a multiple of the virtual client
   participating in the test.

   Connection Rate - Defines the rate at which connections are
   attempted. Number MUST be evenly divided among all of the
   virtual clients participating in the test.

   Object Size - Defines the number of bytes to be transferred
   across each connection. Need to determine the RECOMMENDED
   object sizes.

6.4.2.1 HTTP Procedure

   For the HTTP Goodput tests, it is RECOMMENDED to determine which
   version of HTTP the DUT/SUT has implemented and use the same
   version for the test. To determine the version of HTTP, the user
   documentation of the DUT/SUT SHOULD be consulted.

   Each client will attempt to establish HTTP connection's to their
   respective servers a user defined rate. The clients will attach to
   the servers using either the servers IP address or NAT proxy
   address.

   After the client has established the connection with the server,
   the client will initiate GET command(s) to retrieve predefined
   web page(s).



Martin, Hickman                                                [Page 15]


INTERNET-DRAFT    Benchmarking Methodology for Firewalls      June 2000
   When employing HTTP/1.0 in benchmarking the performance of the
   DUT/SUT, only one object will be retrieved for each of the defined
   object sizes. After the object has been transferred, the connection
   should then be torn down. When defining multiple objects, object
   transfers must be completed and the connections closed for all
   of the participating clients prior testing the next object size.
   This process is repeated until all of the defined objects are
   tested.

   When employing HTTP/1.1, all objects defined by the user will
   be requested with a GET request over the same connection. The
   connection should then be torn down after all of the objects
   have been transferred.

6.4.2.2 Measurement

   The Goodput for each of the objects sizes transferred MUST be
   measured. See appendix D for details in regards to measuring the
   Goodput of the DUT/SUT. Only objects which have been successfully
   acknowledged by the server are to be included in the Goodput
   measurements.

   The transaction times for each object transferred MUST measured.
   The transaction connection time starts when the connection is
   made and will end when the web pages is completely mapped  on the
   virtual client (when the client sends an acknowledgment packet is
   sent from the client).

6.4.2.3 Reporting Format

   Goodput analysis:
      Reporting SHOULD include a graph of the number of connections
      versus the measured Goodput in Mbps.

   Failure analysis:
      Reporting should include a graph of number of connections versus
      percent success.

   Transaction Processing analysis:
      Reporting should include a graph of number of virtual connections
      versus average transaction time.

   Version Information

      Report MUST include the version of HTTP used for the test. In
      addition, if the HTTP/1.1 is used, the number of concurrent GET's
      allowable(Pipelining) SHOULD be reported.






Martin, Hickman                                                [Page 16]


INTERNET-DRAFT    Benchmarking Methodology for Firewalls      June 2000

6.5 Concurrent Application Goodput

   To determine the Goodput of the DUT/SUT when offering a mix of FTP,
   SMTP and HTTP traffic flows. Real world traffic does not consist
   of a single protocol, but a mix of different applications. This
   test will allow an individual to determine how well the DUT/SUT
   handles a mix of applications by comparing the results to the
   individual baseline measurements.

6.5.1 Setup Parameters

   The following parameters MUST be defined. Each variable is
   configured with the following considerations.

   Number of Connections - Defines the aggregate number of connections
   to be opened for transferring data/message objects. Number MUST be
   equal to or greater than the number of virtual clients participating
   in the test. The number SHOULD be a multiple of the virtual client
   participating in the test.

   Connection Rate - Defines the rate at which connections attempts are
   opened. Number MUST be evenly divided among all of the virtual
   clients participating in the test.

   Object/Message Size - Defines the number of bytes to be transferred
   across each connection. RECOMMENDED message sizes still needs to be
   determined.

   At a minimum, at least one of the following parameters MUST be
   defined. In addition, the cumulative percentage all the defined
   percentages MUST equal 100%.

   FTP Percentage - Defines the percentage of traffic connections
   which are to consist of FTP file transfers.

   SMTP Percentage - Defines the percentage of traffic connections
   which are to consist of SMTP Message transfers.

   HTTP Percentage - Defines the percentage of traffic connections
   which are to consist of HTTP GET requests.

6.5.1 Procedure

   This test will run each of the single application Goodput tests,
   for which there is a defined percentage, concurrently. For each
   of the defined traffic types, the connection establishment,
   data/message transfer and teardown procedures will be the same
   as defined in the individual tests.





Martin, Hickman                                                [Page 17]


INTERNET-DRAFT    Benchmarking Methodology for Firewalls      June 2000

6.5.2 Measurements

   As with the individual tests, the Goodput for each of the defined
   traffic types MUST be measured. See appendix D for details in
   regards to measuring the Goodput of the DUT/SUT. Only messages/data
   which have been successfully acknowledged as being transferred are
   to be included in the Goodput measurements.

   The transaction times for each of the defined applications MUST be
   measured. See the appropriate single application Goodput test for
   the specifics of measuring the transaction times for each of the
   defined traffic types.

6.5.3 Reporting Format

   Goodput analysis:
      Reporting SHOULD include a graph of the number of connections
      versus the measured Goodput in Mbps for each of the defined
      traffic types(FTP, SMTP, HTTP).

   Failure analysis:
      Reporting should include a graph of number of connections versus
      percent success for each of the defined traffic types.

   Transaction Processing analysis:
      Reporting should include a graph of number of virtual connections
      versus average transaction for each of the defined traffic types.

6.6 Illegal Traffic Handling

   To determine the behavior of the DUT/SUT when presented with a
   combination of both legal and Illegal traffic.

6.6.1 Procedure

     Still Needs to be determined

6.6.2 Measurements

     Still Needs to be determined

6.6.3 Reporting Format

     Still Needs to be determined









Martin, Hickman                                                [Page 18]


INTERNET-DRAFT    Benchmarking Methodology for Firewalls      June 2000

6.7 Latency

   Determine the latency of application layer data through the DUT/SUT.

6.7.1 Procedure

   Still Needs to be determined

6.7.2 Measurements

   Still needs to be determined.

6.7.3 Reporting format

   Still needs to be determined.


APPENDICES

APPENDIX A: FTP(File Transfer Protocol)

A.1 Introduction

   The FTP protocol was designed to be operated by interactive end users
   or application programs. The communication protocol to transport this
   service is TCP. The core functions of this application enable users
   to copy files between systems, view directory listings and perform
   house keeping chores - such as renaming, deleting and copying files.
   Unlike other protocols, FTP uses two connections. One connection,
   called the control connection, is used to pass commands between
   the client and the server. The other, called the data connection, is
   used to transfer the actual data(Files, directory lists, etc.).

A.2 Connection Establishment/Teardown(Control)

   FTP control connections are established by issuing OPEN command
   targeting either the URL or a specific IP address. Since the
   methodology does not include DNS servers, OPEN commands should
   target specific IP address of target server.

   It is RECOMMENDED to perform the test using Anonymous FTP Login and
   should use the following syntax:

                User ID: Anonymous
                Password:  will correspond to the System ID
    (client1_1@test.net through client 1_8@test.net)

   Once a successful login acknowledgment is received from the server,
   the client may then initiate a file transfer. After all transfer
   operations have been completed, the FTP connection may be closed by
   issuing a QUIT command.


Martin, Hickman                                                [Page 19]


INTERNET-DRAFT    Benchmarking Methodology for Firewalls      June 2000

A.3 Data Connection

   The data connection is established each time the user requests a file
   transfer and torn down when the transfer is completed. FTP supports
   two modes of operation, namely normal mode and passive mode, which
   determine who initiates the data connection. In normal mode
   operation, the server initiates the data connection, targeting a
   predefined PortID specified in the PORT command. In passive mode, the
   client initiates the data connection, targeting the PortID returned
   in response to the PASV Command. It is RECOMMENDED to perform the
   tests in normal mode operation.

   File transfers are initiated by using the "Get" or "Put" command and
   specifying the desired filename. The tests defined in this document
   will use the "Get" command to initiate file transfers from the target
   server to the client.

A.4 Object Format

   Need to define the object format.

APPENDIX B: SMTP (Simple Mail Transfer Protocol)

B.1 Introduction

   The SMTP defines a simple straight forward way to move messages
   between hosts. There are two roles in the SMTP protocol, one is the
   sender and one is the receiver.  The sender acts like a client and
   establishes a TCP connection with the receiver which acts like a
   server. The transactions defined in this section will use the terms
   client and server in place of sender and receiver.

B.2 Connection Establishment/Teardown

   Each connection involves a connection greeting between the
   sender(Client) and receiver(Server). After a connection is first
   established, both the server and the client will exchange greetings
   identifying themselves. The syntax used to identify each other's
   hostnames SHOULD be:

                "SMTPRcv_<Virtual_Server>.com"
                "SMTPSender_<Virtual Client>.com"

            where <Virtual_Client> and <Virtual_Server> represent a
            unique virtual number for the client and server
            respectively.







Martin, Hickman                                                [Page 20]


INTERNET-DRAFT    Benchmarking Methodology for Firewalls      June 2000

   The basic transactions in moving mail between two hosts involve three
   basic steps which are outlined below. These are:

        1) Client issuing a MAIL command identifying the message originator
         for that session. Syntax used to identify the originator SHOULD
         be as follows:

                connection1,2,3...@hostname

        2) Client issues an RCPT command identifying the recipient of the
         message for that session. Syntax used to identify the recipient
         of the message SHOULD be as follows:

                reciever1,2,3...@hostname

        3) Client issues a DATA command. After receiving the
         acknowledgment from the server, the client will then transfer
         the message which MUST include a line with a period to
         indicate to the server the end of the message. Once the end of
         message is received by the server, it will acknowledge the end
         of message.


   The client may initiate another message transfer or close the session
   by initiating the QUIT command.

B.3 Message Format

   As Internet e-mail has evolved, SMTP extensions have been added to
   support both audio and video message transfers. For these firewall
   tests, messages SHOULD consist of plain text ASCII.

APPENDIX C: HTTP(HyperText Transfer Protocol)

C.1 Introduction

   As HTTP has evolved over the years, changes to the protocol have
   occurred to both fix problems of previous versions as well as improve
   performance. The most common versions in use today are HTTP/1.0 and
   HTTP/1.1 and are and are discussed below.

C.2 Version Considerations

   HTTP/1.1 was approved by the WWW Consortium in July 1999 as an IETF
   Draft Standard. This is a formal recognition of the fact that all
   known technical issues have been resolved in the specification which
   was brought out in June 1997. HTTP/1.1 is also downward compatible
   with  HTTP/1.0.  Both protocols on the popular browsers in use today.
   The following is a list of features that are offered in HTTP 1.1 that
   are not in HTTP 1.0.



Martin, Hickman                                                [Page 21]


INTERNET-DRAFT    Benchmarking Methodology for Firewalls      June 2000

   - Persistent connections and pipelining

   Though both use TCP for data transfer, but differ in the way it is
   used, with the later version being more efficient. Once a connection
   is opened, it is not closed until the HTML document and all objects
   referred by it are downloaded. This technique is called persistent
   connection. By serving multiple requests on the same TCP segment,
   many control packets (which are not part of actual data transfer)
   are avoided. The technique of containing multiple requests and
   responses within the same TCP segment over a persistent connection
   is called pipelining.

   - Data compression

   HTTP/1.1 provides for compression of documents before file transfer.
   Since most other objects like images and binaries are already
   compressed, this feature applies only to HTML and plain text
   documents.

  - Range request and validation

   Bandwidth saving measure is the introduction of two new fields in
   an HTTP request header, viz. If-Modified-Since: and If-Unmodified-
   Since:. The significance of this feature is that if a browser
   identifies a file in its cache, it needn't reload it unless it has
   changed since the last time it was used.

   - Support for multiple hosts

   It is common for an ISP to host more than one Web site on a single
   server. In such a case, each domain requires its own IP address.

C.3 Object Format

   Object SHOULD be an HTLM formatted object.


















Martin, Hickman                                                [Page 22]


INTERNET-DRAFT    Benchmarking Methodology for Firewalls      June 2000

Append D GOODPUT Measurements

   Methodology for determining the "Goodput" of the DUT still needs
   to be determined. Note that the methodology should be independent
   of the application which is initiating the transfer of the object
   (File, message, Web Page, etc.).

Appendix E.  References

   Newman, "Benchmarking Terminology for Firewall Devices", RFC 2647,
           February 1998.

   J. Postel, "Simple Mail Transfer Protocol", RFC 821, August 1982.

   R. Fielding, J. Gettys, J. Mogul, H Frystyk, T. Berners, "Hypertext
           Transfer Protocol -- HTTP/1.1", January 1997

   J. Postel, J. Reynolds, "File Transfer Protocol(FTP)", October 1985


































Martin, Hickman                                                [Page 23]

INTERNET-DRAFT    Benchmarking Methodology for Firewalls      June 2000