Up front, I am not an expert on networking. If I see a list of all the protocols supported by a real-time operating system, I might recognize them. I might even know what some of the acronyms stand for and what kind of applications might use them. But the finer points of how the protocols work – bits and packets and buffers and so on – is rather more of a mystery to me. I am okay with this, as often it is more important to know how to get information than storing it one’s own brain.
On reflection, I have wondered whether I could write a protocol stack – perhaps TCP/IP. With many years of C experience behind me, along with the assistance of a good textbook, I am sure that I could crank out the code. Maybe I should try it. If I did write a nice, compact TCP/IP for embedded applications and then marketed it a good price, would you buy it from me?
No? I thought not. Neither would I.
I did say at the start that I am not a networking expert and that gives you the clue that my product might not be up to scratch – but not everyone is as honest as I am. Guys might claim to be experts, while being as clueless as me. Even a well-established software company might have some products that are – er – sub-optimal. So how do you go about selecting a networking product? How do you decide from whom to purchase? The answer to this problem may be found in a single word: validation.
Although networking protocols may be very complex, they can be tested thoroughly. All the extensive functionality can be verified and special cases, that might compromise the protocol, defined and checked. One hundred percent testing is possible. This is not true with all software products, such as a compiler with an infinite number of programs that it might be called on to process. The complexity of protocols dictates the complexity of validation suites, which is why there are some well-recognized protocol test suites on the market, like ANVL, TAHI, and SilverCreek. These are expensive, but an essential purchase for any vendor of a good quality networking software.
If you are in the market for a networking stack, just ask the sales guy about which validation suite(s) they employ. If they do not have an answer or sound vague, it is time to walk.