top of page

Application Dependency Example *

I don’t find analysts performing or even aware of this topic. The concept is actually quite simple “Document what your application relies on to complete a task”

Some of the more obvious example would be a webserver relying on a database server to complete a query or the network equipment between the path of a client and server.

Unfortunately, most applications rely on much more that that. Application analysts might take for granted that network paths have no packet loss, low latency and generally behave the same in the real world as they did in the lab. And network analysts might assume that if they can ping the various servers involved for an application, all should be good to go.

Here is a simple example you can perform yourself. Go to command prompt (in Windows) and simply type tracert then type tracert -d

The first command performs a trace route and DNS lookup for all returned hosts where the second command does the same thing without the DNS lookup.

If you look at the screen captures, you can see that I changed my command prompt (using the prompt $T$G command) to get an idea of how long each command took.

The tracert using DNS took approximately 23 seconds and approximately 12 seconds without DNS name lookups. Its important to understand that in this case, the DNS lookups does not affect the response times reported.

You might see different packets in your trace depending on your name lookup configuration. For example, you might see the LDAP, WINS or LLMNR packets, so I would recommend not using a capture filter. In my example, I only saw DNS since I disabled LLMNR and don’t have LDAP configured.

In my example, I configured incorrect DNS server ip addresses to see the worst case scenario, but analysts should consider what would happen if the path to the name server had packet loss or high latency.

I suggest you look at your favorite trave route application to figure out how it compares to your operating system trace route command and available options.

After you get the hang of it, start looking at one of your applications, like a web browser, etc. try to think of what protocols, servers and network devices/paths are involved.




bottom of page