Share this article:
Would you buy a TCP/IP stack from me?
I will be straight with you. I am not a networking specialist. I look at the long list of protocols that we support with Nucleus OS and I recognize a large proportion of them. I probably know what they are used for and may even know what the arcane abbreviations and acronyms stand for. But I have little clue about their inner workings. That is fine. Nobody can be an expert in everything and I have colleagues in Mentor Graphics who know this stuff inside out. A lot of the time it is more useful and important to know who can answer a question than it is to know all the answers oneself.
But I started thinking about this. It really cannot be that hard to write, say, a TCP/IP stack. I have a great many years experience writing C code and there are tons of books around that explain how a protocol stack works. Maybe I should give it a go. So, what if I did write a compact, fast, embedded TCP/IP stack and personally offered it for sale at a very reasonable price? Putting aside what my employers might think about me moonlighting, would you buy it from me?
No? I thought not.
That was a wise decision. The reason why you would be foolish to invest in my efforts was really spelt out at the beginning of this blog when I said “I am not a networking specialist.”
So, this begs an interesting question: how do you decide who to buy a protocol stack from? Simply making your purchase from someone who does claim to be an expert is not good enough. They may simply have my level of competence without my streak of honesty. Even buying from a well established company in the embedded software business, like Mentor Graphics or one of our competitors, is no security. The answer lies in a single word: validation.
Protocols may be very complex, with extensive functionality and numerous possibilities for “corner cases” where the protocol can be broken, but 100% testing is a possibility. There are just so many data combinations that make sense – unlike with a compiler, where an infinite number of different programs may be acceptable. So, it is quite possible to write some test software – a validation suite – which exercises and verifies every aspect of a protocol. It is possible, but difficult. It is, therefore, unsurprising that suites like ANVL, TAHI and SilverCreek, all of which we use for validating our networking software at Mentor Graphics, tend to carry hefty price tags.
Next time you are looking for a protocol stack, just ask the prospective supplier which validation suite they use. If they do not have a good answer, walk away. If their answer is convincing, investigate some more, as they are clearly serious about embedded networking.
About the Author
Colin Walls (@Colin_Walls) is an embedded software technologist at Mentor Graphics (@mentor_graphics), the leading EDA software company. You can read more about Colin and his work on embedded systems at The Colin Walls Blog at Mentor Graphics here.
Colin’s most recent publication, Embedded Software: The Works” is available now on the Elsevier Store. Save 30% on his book and other Newnes Press and embedded systems books by using promo code “STBCNF13” at checkout.
Electronics & Electrical Engineering
Electronics and electrical engineering have practically limitless applications. From power engineering, telecommunications, and consumer electronics to circuit design, computer engineering, and embedded systems, these disciplines form the backbone of our increasingly tech-dependent world. Elsevier’s collection of electronics and electrical engineering content — particularly our Newnes and Academic Press Imprints — encompasses these areas and more. Our books and journals provide fundamental knowledge and practical, up-to-date toolkits for professional engineers and technicians, undergraduate and postgraduate students, and electronics enthusiasts.