The twelve networking rules

A Request for Comments (RFC) is a publication of the Internet Engineering Task Force (IETF) and the Internet Society, the principal technical development and standards-setting bodies for the Internet. An RFC is authored by engineers and computer scientists in the form of a memorandum describing methods, behaviors, research, or innovations applicable to the working of the Internet and Internet-connected systems. It is submitted either for peer review or simply to convey new concepts, information, or (occasionally) engineering humor. The IETF adopts some of the proposals published as RFCs as Internet standards.

I’ve read some RFC’s which are both entertaining and informative, but recently reading RFC 1925 has made me happy. The whole document should be read but in summary it provides information about the fundamental truths underlying all networking.

The Fundamental Truths

  1. It Has To Work.

  2. No matter how hard you push and no matter what the priority, you can’t increase the speed of light.

    2a. (corollary). No matter how hard you try, you can’t make a baby in much less than 9 months. Trying to speed this up might make it slower, but it won’t make it happen any quicker.

  3. With sufficient thrust, pigs fly just fine. However, this is not necessarily a good idea. It is hard to be sure where they are going to land, and it could be dangerous sitting under them as they fly overhead.

  4. Some things in life can never be fully appreciated nor understood unless experienced firsthand. Some things in networking can never be fully understood by someone who neither builds commercial networking equipment nor runs an operational network.

  5. It is always possible to aglutenate multiple separate problems into a single complex interdependent solution. In most cases this is a bad idea.

  6. It is easier to move a problem around (for example, by moving the problem to a different part of the overall network architecture) than it is to solve it.

    6a. (corollary). It is always possible to add another level of indirection.

  7. It is always something

    7a. (corollary). Good, Fast, Cheap: Pick any two (you can’t have all three).

  8. It is more complicated than you think.

  9. For all resources, whatever it is, you need more.

    9a. (corollary) Every networking problem always takes longer to solve than it seems like it should.

  10. One size never fits all.

  11. Every old idea will be proposed again with a different name and a different presentation, regardless of whether it works.

    11a. (corollary). See rule 6a.

  12. In protocol design, perfection has been reached not when there is nothing left to add, but when there is nothing left to take away.

Finally, make sure to notice the references at the bottom:

The references have been deleted in order to protect the guilty and avoid enriching the lawyers.