This document is one of a pair that defines and discusses the
requirements for host system implementations of the Internet protocol
suite. This RFC covers the applications layer and support protocols.
Its companion RFC, "Requirements for Internet Hosts -- Communications
Layers" [INTRO:1] covers the lower layer protocols: transport layer,
IP layer, and link layer.
These documents are intended to provide guidance for vendors,
implementors, and users of Internet communication software. They
represent the consensus of a large body of technical experience and
wisdom, contributed by members of the Internet research and vendor
This RFC enumerates standard protocols that a host connected to the
Internet must use, and it incorporates by reference the RFCs and
other documents describing the current specifications for these
protocols. It corrects errors in the referenced documents and adds
additional discussion and guidance for an implementor.
For each protocol, this document also contains an explicit set of
requirements, recommendations, and options. The reader must
understand that the list of requirements in this document is
incomplete by itself; the complete set of requirements for an
Internet host is primarily defined in the standard protocol
specification documents, with the corrections, amendments, and
supplements contained in this RFC.
A good-faith implementation of the protocols that was produced after
careful reading of the RFC's and with some interaction with the
Internet technical community, and that followed good communications
software engineering practices, should differ from the requirements
of this document in only minor ways. Thus, in many cases, the
"requirements" in this RFC are already stated or implied in the
standard protocol documents, so that their inclusion here is, in a
sense, redundant. However, they were included because some past
implementation has made the wrong choice, causing problems of
interoperability, performance, and/or robustness.
This document includes discussion and explanation of many of the
requirements and recommendations. A simple list of requirements
would be dangerous, because:
Some required features are more important than others, and some
features are optional.
There may be valid reasons why particular vendor products that
are designed for restricted contexts might choose to use
However, the specifications of this document must be followed to meet
the general goal of arbitrary host interoperation across the
diversity and complexity of the Internet system. Although most
current implementations fail to meet these requirements in various
ways, some minor and some major, this specification is the ideal
towards which we need to move.
These requirements are based on the current level of Internet
architecture. This document will be updated as required to provide
additional clarifications or to include additional information in
those areas in which specifications are still evolving.
This introductory section begins with general advice to host software
vendors, and then gives some guidance on reading the rest of the
document. Section 2 contains general requirements that may be
applicable to all application and support protocols. Sections 3, 4,
and 5 contain the requirements on protocols for the three major
applications: Telnet, file transfer, and electronic mail,
respectively. Section 6 covers the support applications: the domain
name system, system initialization, and management. Finally, all
references will be found in Section 7.