RFC 1925 INFORMATIONAL DESIGN · PHILOSOPHY · HUMOR

12 Networking Truths: The Twelve Networking Truths

Twelve fundamental truths and paradoxes of network design.

On rfc-editor.org ↗
PUBLISHED
April 1996
AUTHORS
R. Callon
ORG
Cascade
STREAM
INDEPENDENT
RFC STATUS
Informational
PUBLICATION DATE
April 1, 1996
NUMBER OF TRUTHS
12
DOI
10.17487/RFC1925
ERRATA
Reported errata

RFC text

Contents
Original text · RFC Editor View on rfc-editor.org ↗
Network Working Group                                  R. Callon, Editor
Request for Comments: 1925                                          IOOF
Category: Informational                                     1 April 1996


                      The Twelve Networking Truths

Status of this Memo

   This memo provides information for the Internet community.  This memo
   does not specify an Internet standard of any kind.  Distribution of
   this memo is unlimited.

Abstract

   This memo documents the fundamental truths of networking for the
   Internet community. This memo does not specify a standard, except in
   the sense that all standards must implicitly follow the fundamental
   truths.

Acknowledgements

   The truths described in this memo result from extensive study over an
   extended period of time by many people, some of whom did not intend
   to contribute to this work. The editor merely has collected these
   truths, and would like to thank the networking community for
   originally illuminating these truths.

1. Introduction

   This Request for Comments (RFC) provides information about the
   fundamental truths underlying all networking. These truths apply to
   networking in general, and are not limited to TCP/IP, the Internet,
   or any other subset of the networking community.

2. 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.

Security Considerations

   This RFC raises no security issues. However, security protocols are
   subject to the fundamental networking truths.

References

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

Author's Address

   Ross Callon
   Internet Order of Old Farts
   c/o Bay Networks
   3 Federal Street
   Billerica, MA  01821

   Phone: 508-436-3936
   EMail: rcallon@baynetworks.com

AI ELI5

On this page
PROBLEMNetworking engineers face repeated patterns of difficulty, including constraints that cannot be overcome by effort or resources, and design choices with unavoidable trade-offs.
MECHANISMThe RFC lists 12 fundamental truths about networking, from the physical laws that constrain systems (speed of light, human gestation) to practical realities (the cost of complexity, the impossibility of universal solutions) and design wisdoms (preferring simplicity).
WHY IT MATTERSThis is an April 1st humor RFC that codifies universal experiences in networking as if they were fundamental laws. The truths guide designers toward accepting constraints and embracing simplicity.

§1The Fundamental Truths

RFC 1925 is an April 1st memo that documents the Twelve Networking Truths. The first truth is simply "It Has To Work," the fundamental requirement. The second truth invokes a physical law: no amount of effort can increase the speed of light, and therefore communication latency is a hard constraint. It includes a corollary that you cannot make a baby faster than nine months, acknowledging that some constraints of human nature cannot be overcome by additional effort.

The first truth is that the network must work. The second is that light only travels so fast, so you can never send a message faster than the laws of physics allow.

§2Complexity, Trade-offs and Indirection

Subsequent truths address design reality. Truth 3 notes that with enough thrust, pigs can fly (a playful metaphor for doing unlikely things), but this does not mean it is a good idea. Truth 5 states that multiple problems can always be combined into a single interdependent solution, but this is usually a mistake. Truth 6 says it is easier to move a problem around in the architecture than to solve it, with a corollary that you can always add another layer of indirection. Truth 7 notes that something always goes wrong, and good, fast, and cheap are only achievable two at a time. Truth 8 asserts that everything is more complicated than expected.

Some truths say you can always make things more complicated, or move problems instead of solving them. Another says everything takes longer than you think and costs more than you budget.

§3Resources, Universality and Perfection

Truth 9 declares that whatever the resource, you always need more. Truth 10 states that one design never fits all cases. Truth 11 warns that old ideas come back with new names regardless of whether they work. Truth 12, the final and most design-focused truth, says that in protocol design, perfection is reached not when there is nothing left to add, but when there is nothing left to take away. This truth champions simplicity and elegance in design.

You always need bigger and better computers. Nothing works for everyone. Old bad ideas keep being proposed with new names. And the best designs are as simple as possible.