I work primarily on satellite communications systems. TDMA and FDMA satellite networks present interesting data communications issues, since our RTT is usually on the order of 700ms. One thing we’ve been experimenting with is caching of data. The NME-WAE product works well for caching, but can occasionally ’cause’ problems that are exacerbated by virtue of the highly latent network. An example is the ‘bypass’ feature. By default, if the WAE sees an error returned by the web server, it will install a bypass rule in the attached WCCP device and allow the traffic to be forwarded normally. Now, the WAE isn’t causing the issue – it’s simply responding to the fact that the web server has returned an error. The bypass also prevents objects that have been previously cached from being hit. I suppose this behavior is to prevent the caching of bad data. On a normal low-latency network the bypass wouldn’t be an issue but since we have such high latency, the entire site being bypassed causes the user experience to suffer.
When desigining for this type of issue, you would have to make a decision on how to handle errors. Fortunately, the NME-WAE gives us a few options on how to handle errors. You can configure the WAE to send the error message to the user (which renders in their browser and can be pretty ugly). You can also configure the WAE to simply reset the connection and allow the user to try again.
I configured the following commands:
ContentEngine(config)# error-handling send-cache-error
ContentEngine(config)# error-handling reset-connection
Of course, the explicit configuration is bit-level and unlikely to be on a CCDE exam, so I’m really just documenting it so I don’t forget.
To see if you’ve got sites being bypassed you can use the command:
ContentEngine# show bypass summary
Total number of requests bypassed = 0
Requests bypassed due to system overload = 0
Requests bypassed due to authentication issues = 0
Requests bypassed due to facilitate error transparency = 0
Requests bypassed due to static configuration = 0
Total number of entries in the bypass list = 1
Number of Authentication bypass entries = 0
Number of Error bypass entries = 0
Number of Static Configuration entries = 1
Number of L2 bypassed packets = 0
ContentEngine# show bypass list
What can you take away from this? Basically, unless you work on or design for LFN style networks, you can lose sight of how you must design for latency. I think we’ll start seeing increasingly latent networks moving forward, as satellite communications systems start being used more and more.