Network Working Group                                  R. Callon, Editor
Request for Comments:                                               1997
Category: Informational                                     1 April 1996


                      The Seven Networking Truths
                       (edited by N.Bezroukov)

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 would like to thank the networking
   community for 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) 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 never
        runs an operational network.


    (2) Every networking problem or upgrade always takes twice longer to
        solve than it seems like it should.

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

       (2b) (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) One size never fits all.

       (3a) (corollary) It is always possible to try to solve multiple
            separate problems into a single complex solution. In most cases
            this is a bad idea.

    (4)  It is more complicated than you think...

       (4a)  Complexity increases with time

       (4b)  It is always possible to add another level of
             complexity into your existing network.

       (4c) (corollary). It is easier to move a problem around,
          than it is to solve it.


    (5) Functioning of a complex network is un distinguishable from magic.

        (5a) If you do not know what to do you can always "wave  a
        dead  chicken"  e.g.  perform  a  ritual  operation  on  crashed
        software or hardware  that most probably  will be futile  but is
        nevertheless  useful  to  satisfy  "important  others"  that  an
        appropriate degree of effort has been expended.

    (6) For all resources, whatever it is, you need more.

        (6a) (corollary). Good, Fast, Cheap: you can't have all three.

        (6b) If solution do not work it will always be proposed again under
             a different name...

    (7)  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.

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