12 Networking Truths: The Twelve Networking Truths
An April 1st memo that lists twelve half-serious truths about network design.
Callon, R., "The Twelve Networking Truths", RFC 1925, DOI 10.17487/RFC1925, April 1996, <https://www.rfc-editor.org/info/rfc1925>.
@misc{rfc1925,
series = {Request for Comments},
number = 1925,
howpublished = {RFC 1925},
publisher = {RFC Editor},
doi = {10.17487/RFC1925},
url = {https://www.rfc-editor.org/info/rfc1925},
author = {R. Callon},
title = {{The Twelve Networking Truths}},
pagetotal = 3,
year = 1996,
month = apr,
} RFC text
Contents
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
ISO Plain Language
On this page
§1What This Memo Is
RFC 1925 is an April 1st humor document. It claims to document the fundamental truths of networking, gathered, the editor says, from extensive study by many people, some of whom did not intend to contribute. The truths are meant to apply to networking in general, not only to TCP/IP or the Internet. The memo states that it does not specify a standard, except in the joking sense that all standards must implicitly follow these truths.
The first two truths set the tone. Truth 1 is simply "It Has To Work." Truth 2 says that no matter how hard you push and whatever priority you give it, you cannot increase the speed of light; its corollary notes that you cannot make a baby in much less than nine months, and that trying to speed this up might make it slower but will not make it happen quicker.
This is a joke RFC released on 1 April. Its first rule is that the network has to work. Its second is that effort cannot beat physics, such as the fixed speed of light.
§2Truths About Complexity and Trade-offs
Several truths describe the cost and lure of complexity. Truth 3 observes that with sufficient thrust, pigs fly just fine, but that this is not necessarily a good idea, since it is hard to be sure where they will land. Truth 5 says it is always possible to glue multiple separate problems into a single complex interdependent solution, and that in most cases this is a bad idea. Truth 6 says it is easier to move a problem around, for example to another part of the architecture, than to solve it, with the corollary that it is always possible to add another level of indirection.
Truth 4 says some things in networking can never be fully understood by someone who has neither built commercial networking equipment nor run an operational network. Truth 7 says "It is always something," with the corollary that of good, fast and cheap you may pick any two. Truth 8 says it is more complicated than you think. Truth 11 warns that every old idea will be proposed again with a different name and presentation, whether or not it works, and its corollary points back to the rule about adding indirection.
These truths say you can always complicate a design or move a problem elsewhere instead of solving it, that some knowledge only comes from operating real networks, and that old ideas keep returning under new names.
§3Truths About Resources and Perfection
Truth 9 says that for all resources, whatever it is, you need more, with the corollary that every networking problem takes longer to solve than it seems it should. Truth 10 says one size never fits all. Truth 12, the last and most directly about design, says that in protocol design perfection has been reached not when there is nothing left to add, but when there is nothing left to take away.
The memo's Security Considerations section says the RFC raises no security issues, while noting that security protocols are subject to the fundamental networking truths. Its References section says the references have been deleted to protect the guilty and avoid enriching the lawyers.
The last truths say you always need more resources, no single design suits everyone, and the best design is the one you can simplify the most.