What's in the box?

As delivered the TCP/IP Library provides the following core TCP/IP protocols in object form:

The stack also provides examples of application-level protocols in source form that you can customize:

You can extend the capabilities of the TCP/IP Library by writing your own functions to implement other application-level UDP and TCP protocols just as we have implemented the existing application-level protocols using core protocols.

What we assume you know

This user manual is a user manual for our network stack. You don't know anything about our stack or how it works, so this manual teaches you how to use it. This user manual is not a ‘Dummies Guide to TCP/IP’, because you don't find that in the title: we expect you to know what you want to do but not how to achieve it using our software.

You need a good understanding of how TCP/IP and Ethernet work and the underlying concepts. If you know nothing to very little about TCP/IP, don't know what a datagram is or the difference between a TCP segment and grapefruit segment, you're not really ready to swim with sharks just yet—then check out the following books to expand your horizons:

In fact, the books above are a great reference for anybody that needs to use TCP/IP on a daily basis, so go and buy them.

If all you want to do is send an e-mail from the network stack, this manual alone is enough to construct a solution for that. If you want to write your own TCP and datagram protocol handler, this manual shows you the mechanisms to achieve that goal. What this manual does not do is tell you how to make UDP protocols ‘reliable’ or how to design your own protocols—that's all up to you, we just provide the necessary parts kit for you to assemble your application.

This manual tells you how you can use some of the TCP/IP Library's built-in features that help when you're debugging your code. It doesn't tell you how to go about debugging your application or how to use a network analyzer to track down rogue packets, how to figure out which rabbit hole a particular packet disappeared down, or how to tune out noise and dig deep into packets scuttling across the network—you need to acquire those skills yourself, it's called ‘being an software developer.’ When you're a true network warrior, buy yourself a celebration beer and T-shirt. Nobody said this profession was easy.

What's not in the box?

I must also take the opportunity to tell you what is not included in your purchase. No, we do not include your favorite bizarre protocol for controlling a network coffee pot. There are so many protocols built upon TCP and UDP that it is impossible to offer implementations for them all, so we offer the useful few. It just means you need to implement the Coffee Pot Control Protocol yourself for that must-have network-attached Espresso machine, or find somebody who has the necessary experience and has done so already. Start your search by Googling ‘RFC 2324’.

Product support and questions

If you ask us for support about things that you should really know yourself, don't be surprised or offended when we tell you that product support doesn't include hand-holding, nursemaid duties, or writing your application for you, no matter how nicely you ask.

If you ask us a question that can be answered by reading the manual, don't be surprised if you receive a short, to-the-point reply. I am writing this documentation for a reason: if I have taken the time to write it, you really should take the time to read it, or at least search it. Impending product deadlines do not excuse you from using our support service as an on-demand oracle.

And as a final request, never end you e-mails with ‘Please advise’ because that really ticks me off.

With all that understood, let's begin.