Hacking Nmap: Using Nmap to Calculate Network Response Time

What is Network Response Time?

Analyzing response times for an application is a complex task. Every step along the path of an application flow introduces delays into the process. The switches, routers, servers, application transactions, and end-user workstation all contribute to the overall response time of an application flow.

Response times can be separated into three basic categories; the network response time, the server response time, and the transaction transfer time:

  • The network response time describes the data transmission delays across the network. Slower wide-area-networks have relatively slower network response times.
  • Server response time is related to application server delays. This timestamp is the “thinking time” associated with a server process. For example, the time spent between a database request and the response from the database server is the server response time.
  • Transaction transfer time refers to the time required to completely transfer an application response across the network. For example, an imaging application may have much larger transaction transfer times than a small web page application.

Step 1: The Application Request

Let’s examine the response times that occur when retrieving a web page. The process begins with the end-user workstation requesting an HTTP GET from the web server. This packet contains an HTTP GET request that’s packaged inside TCP data.

As this diagram shows, the web server responds very quickly with a TCP data acknowledgment. This only acknowledges that the web server has properly received the TCP information and does not represent the web-based process running on the server. Because this acknowledgement is based on the transportation of data across the network, this round trip is called the “network response time.”

Because of the small amount of latency seen with network response times, these metrics are usually represented in milliseconds or microseconds. It would be very unusual to see network response times referenced in “seconds!”