Why is Understanding Troubleshooting Important
When applications appear to be slow, frustrated users waste time and energy. Slow applications cause lost time which, in turn, means lost money. Also, IT staff time is misspent. In some instances, help desk or PC analysts expend much of their time rebooting client stations or checking IP configurations and cabling connections.
When an effort is made to learn about troubleshooting applications and the skills are applied to the system to improve the performance of both the network and the applications, it's an investment in the company. It pays off in dividends the same way that saving on shipping costs, reducing fuel consumption or eliminating anyother inefficiency, pay off.
But troubleshooting TCP applications isn't easy. Unlike voice or video, which are typically UDP based, application performance degradation isn't obvious. If the sound is bad or the TV screen shows distortion, everyone sees it immediately. But with TCP applications like transaction processing systems, performance tends to be judged based on how the system behaved yesterday. If it is slower today than it was yesterday, users begin to complain. Even worse, if the application degrades slowly, the change may not be detected at all and the company begins to lose money through the inefficiency.
Understanding Types of Applications
There are many examples of applications that will fall under our scrutiny. Web applications include both applications that actually communicate over the Internet and any that use a browser such as Internet Explorer®, Chrome®, Safari® or Firefox®. The latter are often called web enabled applications. It is becoming more common for applications to be described as “browser-based.” This generally means that the user begins by opening a browser and connecting to the server application from within that browser window. Most of us have used these applications when we do online banking, order a movie, or reserve an airline ticket. What is important to us is that the underlying traffic will be transmitted between the client and the server using HTTP (hypertext transfer protocol) or HTTPS (secure hypertext transfer protocol). Both of these are TCP based application program interfaces.
SQL (structured query language) applications involve calls from a client application to a server database application for records or tables from a SQL database. These can be, or don't have to be, web enabled and use HTTP or HTTPS. For example, the client application can present a result to a user that asks for a field to be completed on the screen. After filling in a value, it is sent to the server to do a computation. The server takes the result and determines that another record needs to be returned to the client. All of this interaction takes place under the control of the TCP protocol and will be affected by TCP's operation, the individual processors' performances and the network's performance.
Closely associated to database activity are transaction processing systems. These often overlap SQL database applications. In transaction processing systems, the emphasis is on taking relatively small amounts of data and doing a calculation in a short period of time. ERP systems that have individual components such as an accounts payable module, inventory module, or order entry module are examples of transaction processing systems. When a user changes a customer's telephone number, a transaction has occurred. The data to make such a change and the information that shows that the change occurred are transferred between the client and the server under the control of TCP.
Imaging systems, such as those that inventory photos or x-rays, are also very often TCP based. They are usually very large files and moving them from a server to a client is a bulk transfer. Such bulk transfers are the reason TCP was originally designed. One major application program interface that is used to do this is FTP (file transfer protocol). It can be executed from the command line, from within a file transfer program or from within a browser. A user clicks on a thumbnail of the image they want to view and the FTP protocol is invoked to retrieve the image from the server. FTP is one of the best examples of simple application of the TCP protocol. The client identifies the file to be retrieved (in this case an image), and a separate connection is opened for the transfer. The emphasis in the operation is to send as much data as possible as quickly as the network can handle it. These applications can saturate links on networks more quickly than almost any other type of application. As a result, they appear to be more sensitive to the method of operation dictated within TCP. Small network problems become very evident in a file transfer, especially if it is a large file.
Data warehousing systems are also dependent on bulk file transfers. A data warehouse is generally considered to be a highly organized, indexed repository of a company's electronic documents. When a document needs to be retrieved, the client application indicates the document or documents or parameters that uniquely define the information needed. When the server application receives this information, it retrieves the information and sends it as a bulk file transfer. Consequently they are nearly always TCP based. And, as a result, they behave very much like other file transfer based processes.
While VoIP payload is transferred between the phones using UDP, the call set-up often uses TCP. In the exchange that takes place when a phone goes off-hook, only small amounts of data are transferred. However, the process can involve ARP, DNS and other protocols that may be required. Poor performance or failure in this connection won't affect the quality of the call. Problems will be apparent in the time it takes to make the connection or the lack of signaling tones to which we have become accustomed. For example, the user might dial but not hear either a busy signal or a ringing tone.
Another category of applications that use TCP are CRM (customer relationship management) systems. They are usually a combination of transaction oriented and database systems. They also depend on TCP.
Before we delve more deeply into the application flow process, we need to consider one more item.
We're going to consider six issues that affect application flow:
1. DNS lookups
2. ARP resolution
3. Establishing the TCP connection
4. Sender/receiver (interaction)
5. Data flow
6. Closing the TCP connection
In this section we will not consider UDP applications because they typically represent 15% or less of the traffic on the network and it is easier to isolate the cause of the poor performance. We will discuss UDP later in the paper.