Advanced Error Checking
The DIS Protocol Analyzer is fantastic for allowing you to look at data on your network to see what's happening. As packets are received it checks the data received to see if it conforms to the DIS Standards. If something isn't right, it displays this information in the main message window as well as logs this to a file that can be viewed in a separate window. There are hundreds of error/warning conditions that are checked and the list of things it checks for, grows daily.
When a DIS packet is received, it is first checked to see if the basic parameters of the DIS packet are being met. This includes checking everything in the PDU Header to make sure it's correct. This includes items such as:
- Is the Version correct?
- Is it a valid PDU type?
- Is the PDU length correct?
If anything is not valid at this point, the packet may be discarded and an appropriate message is logged letting you know that this happened.
Now that we know the what kind of PDU this packet is, we process this packet and check to make sure that all of the data contained in the PDU is correct. All enumerations are checked against the SISO standard to make sure that they are valid, values are checked to make sure they are valid and reasonable. If something is not right, it is logged with an appropriate message and provides as much information as possible to help you, the user, track down the cause of the error as quickly as possible. If, for instance, an enumeration used is out of the range of a valid enumeration as defined by the SISO standard, the error logged tells you what the value was, where it was being done (the entity ID for example), who it was that did it, and when it happened. If you are recording the exercise, it will also provide a packet number where this happened so you can see it for yourself. Needless to say, there are hundreds of errors that can be reported at this level.
But we don't stop there! Some of the analysis that is performed while processing the packet, goes beyond just looking at the data inside the packet. We also check for things that other DIS tools don't. We can identify some of those problems that can take weeks or months of troubleshooting to find... and we do it in REAL-TIME!
Recently, we identified a problem where multiple radios with the same entity/radio ID were being published by multiple computers. The problem that was originally reported was occasional garbled audio when being received. As it turns out, this would only happen when more than one of these identical radios was transmitting at the same time causing an interlaced audio stream from the multiple Signal PDUs.
For those of you with any troubleshooting experience, you can easily realize that with hundreds of radios on the network, it could take a very long time to even find this problem if you don't know who is doing it. Additionally, you would have to know what you were looking for before you started looking and could easily miss the problem.
Looking at the basic economics of troubleshooting a problem such as this, with a minimum loaded rate of $100/hr (which is very low in most cases), you are burning through $4,000 per week per engineer/technician! Add on the cost associated with needing the simulator to debug this, and the costs go through the roof!
The DIS Protocol Analyzer would have reported this problem long before the actual reported problem occurred! It will identify and report the problem as soon as it sees the same radio ID being used. Additionally, the error reported reports the radio ID, the computers (IP address) that are publishing them, and if the Network Manager is well defined, the site and simulator that is doing it making the problem easy to find and fix.
In my last Blog Post, I talked about the necessity of running a clean network and taking care of any underlying problems as they occur. This problem would have quickly stood out and would be fixed possibly before the reported problem manifested itself.