Team LiB
Previous Section Next Section

Understanding Profiling Terminology

Before getting into the technical aspects of profiling, this section lays out the terminology used throughout this chapter and the rest of this book. It includes both industry and Cisco-specific terminology and in each case defines and explains the reasoning behind the definition of the term; it also cites examples of the term.

Latency

Latency is the time it takes for a packet to cross a network connection (as seen at Layer 3, the network layer), from sender to receiver, and the period of time that a frame is held by a network device before it is forwarded.

Two of the most important parameters of a communications channel are its latency, which should be low, and its bandwidth, which should not limit application flow. Latency is particularly important for a synchronous protocol where each packet must be acknowledged before the next can be transmitted[1]. Figure 3-1 shows a graphical representation of this description of latency.

Figure 3-1. Latency


In Figure 3-1, the time elapsed between the leading bit of a frame passing point A and the same bit passing point B can be described as latency.


Bandwidth

Bandwidth is the range of frequencies, expressed in kilobits per second (kbps), that can pass over a given data transmission channel within a network. The bandwidth determines the rate at which information can be sent through a channelthe greater the bandwidth, the more information that can be sent in a given amount of time. Bandwidth is usually measured in bits per second. A full page of English text is about 16,000 bits. A 56-kbps modem can easily move 16,000 bits in less than 1 second.

The term is often used erroneously to mean data rate or capacitythe amount of data that is, or can be, sent through a given communications circuit per second[1]. When reviewing your bandwidth for a particular path, always consider it to be restricted by the smallest part of that complete flow. For example, if the ingress and egress parts of the path are connected by a 100-Mbps connection, but the pipe in the middle is a 256-kbps frame circuit, your effective end-to-end bandwidth for that path is restricted to 256 kbps.

Jitter

Jitter is a variance in latency for a particular flow or an interpacket delay variance. A variation in this delay can seriously impact latency-sensitive applications such as voice (for example, digital phone distortion hindering the conversation). Many of these applications have been designed to adjust for a certain amount of latency; when that latency randomly varies during a transmission, however, it is hard for the application to adjust, and hence distortion results.

Application (or TCP) Turns

Application (or TCP) turns are critically important when characterizing the application. Application turns are the number of application-level request/response pairs during the exchange as determined by going through a set of frames.

Consider a trip to the grocery store. Each trip you make, you return with one item, and on your return to your house place it on your shelf, and then return to the store for the next item. This example is fine if you happen to live next door to the store, but becomes an issue when you have to get in your car to travel five miles to the store each time. By collecting more goods on each trip, essentially doing your weekly shopping, you make more efficient use of your time and resources.

The same theory applies to application turns, as shown in Figure 3-2. Each time you have to go back to the server for a response adds to your overall response time. Packaging these requests improves your efficiency and your overall response time. The conversation shown on the left of Figure 3-2 represents a turn ratio of 1:1 (that is, a response for every individual request). With this ratio, it is difficult to fill fat, slow pipes effectively, thus making the application conversation in this case a latency-bounded transaction. The conversation exchange shown on the right of Figure 3-2 represents a turn ratio of 4:1 (that is, multiple responses to a single request). This is a more effective way to utilize bandwidth. However, it will be effective only on large bandwidths and could potentially become bandwidth constrained on small pipes with low latency.

Figure 3-2. Application Turns


Protocol/Network Analyzer

A protocol/network analyzer is any device that captures and interprets the network traffic between two or more connected computer systems. The traffic can then be decoded so that it is possible to see what processes are occurring. Ethereal is an example of a protocol/network analyzer and can be downloaded from http://www.ethereal.com/.

Because they enable you to examine the flow of traffic, you can use protocol analyzers to find out where problems (such as bottlenecks or the failure of a network device) are on a LAN.

Advanced Protocol Analyzer

Advanced protocol analyzers can also provide statistics on the traffic that can help to identify trends that may in the future lead to further problems with the network.

Application Analyzer

Application analyzers are specific modules with decode functionality within the analyzer software that provide visibility to the details of the network traffic at the upper layers, making specific decodes of applications such as Oracle Financials possible. It is important to be able to view the traffic at this level to fully understand the process involved in the communication procedure, which, in turn, enables you to identify and pinpoint the root cause of performance problems.

Conversation

Conversation refers to an exchange of dialogue between two parties. In networking terms, the term describes all traffic flowing between source and destination end nodes (such as client/server) to carry out the execution of a transaction.

Flow

Flow is a subset of all packets, having the same optimization requirements, passing through a device. A flow may consist of traffic from a single conversation or may aggregate traffic across multiple conversations; however, the traffic must all be in the same direction.

Application Task or Transaction

An application task or transaction is a basic unit of user activity within the context of an application. For example, reading e-mail, making a calendar entry, or obtaining records from a database are all tasks.

Cisco Service Assurance Agent

Cisco Service Assurance Agent (SAA) is embedded software within Cisco IOS devices that performs active monitoring. Active monitoring is the generation and analysis of traffic to measure performance between Cisco IOS devices or between Cisco IOS devices and network application servers. Active monitoring performance measurements include the following:

  • Network delay or latency

  • Packet loss

  • Network delay variation (jitter)

  • Availability

  • One-way latency

  • Website download time

SAA can be used to measure network health, verify service level agreements (SLAs), assist with network troubleshooting, and plan network infrastructure. SAA is supported on almost all Cisco IOS devices and in almost all Cisco IOS router images. Enterprises and service providers routinely deploy SAA for network performance statistics within IP networks that utilize QoS, voice over IP (VoIP), security, virtual private network (VPN), and Multiprotocol Label Switching (MPLS). SAA provides a scalable and cost-effective solution for IP service level monitoring and eliminates the deployment of dedicated active monitoring devices by including the probe capabilities within the Cisco IOS architecture.

Probe

A probe is a discreet device that nonintrusively listens and collects the network traffic for use in the profiling or monitoring process. The probe describes both the physical device and the collection software (see agent), and is considered part of the network management system. Examples of probe technology include NAI Distributed Sniffer, Compuware NetworkVantage, Netscout, and Statscout.

Agent

In the performance optimization model, an agent is the part of the system that performs information preparation and exchange on behalf of an analyzer. The use of agent in this context refers specifically to collection software placed on a client machine to observe and collect its network traffic and send it back to the console for viewing and analysis. Although its functionality is the same as that of the probe, the word agent is used to define the difference between a discrete standalone probe and the embedded software on hosts.

Application Thread

An application thread is an entire sequence of frames on the network that constitutes a single, complete action by an application task. The thread includes the command and response data. Examples of application threads include the following:

  • SELECT, INSERT, UPDATE, and EXECUTE statements in a database environment

  • HTTP GET or PUT requests for web client interfaces

  • OPEN, READ, and WRITE functions in a file server environment

    Team LiB
    Previous Section Next Section