RFC 952 UNKNOWN NAMING · HISTORY

HOSTS.TXT: DoD Internet host table specification

The official format of HOSTS.TXT, the single file that listed every host name, address and service on the early Internet.

On rfc-editor.org ↗
PUBLISHED
October 1985
AUTHORS
K. Harrenstien, M.K. Stahl, E.J. Feinler
STREAM
Legacy
BUILDS ON
RFC 810 — DoD Internet host table specification
UPDATED BY
RFC 1123 — Host Requirements (Apps)
MAXIMUM NAME LENGTH
24 characters
ADDRESS SIZE
32 bits
FIELDS PER ENTRY
6
ENTRY TYPES
NET, GATEWAY, HOST, DOMAIN
DOI
10.17487/RFC0952
ERRATA
Reported errata

RFC text

Contents
Original text · RFC Editor View on rfc-editor.org ↗
Network Working Group                               K. Harrenstien (SRI)
Request for Comments: 952                                 M. Stahl (SRI)
                                                        E. Feinler (SRI)
Obsoletes:  RFC 810, 608                                    October 1985

                 DOD INTERNET HOST TABLE SPECIFICATION


STATUS OF THIS MEMO

   This RFC is the official specification of the format of the Internet
   Host Table.  This edition of the specification includes minor
   revisions to RFC-810 which brings it up to date. Distribution of this
   memo is unlimited.

INTRODUCTION

   The DoD Host Table is utilized by the DoD Hostname Server maintained
   by the DDN Network Information Center (NIC) on behalf of the Defense
   Communications Agency (DCA) [See RFC-953].

LOCATION OF THE STANDARD DOD ONLINE HOST TABLE

   A machine-translatable ASCII text version of the DoD Host Table is
   online in the file NETINFO:HOSTS.TXT on the SRI-NIC host.  It can be
   obtained via FTP from your local host by connecting to host
   SRI-NIC.ARPA (26.0.0.73 or 10.0.0.51), logging in as user =
   ANONYMOUS, password = GUEST, and retrieving the file
   "NETINFO:HOSTS.TXT".  The same table may also be obtained via the NIC
   Hostname Server, as described in RFC-953.  The latter method is
   faster and easier, but requires a user program to make the necessary
   connection to the Name Server.

ASSUMPTIONS

   1. A "name" (Net, Host, Gateway, or Domain name) is a text string up
   to 24 characters drawn from the alphabet (A-Z), digits (0-9), minus
   sign (-), and period (.).  Note that periods are only allowed when
   they serve to delimit components of "domain style names". (See
   RFC-921, "Domain Name System Implementation Schedule", for
   background).  No blank or space characters are permitted as part of a
   name. No distinction is made between upper and lower case.  The first
   character must be an alpha character.  The last character must not be
   a minus sign or period.  A host which serves as a GATEWAY should have
   "-GATEWAY" or "-GW" as part of its name.  Hosts which do not serve as
   Internet gateways should not use "-GATEWAY" and "-GW" as part of
   their names. A host which is a TAC should have "-TAC" as the last
   part of its host name, if it is a DoD host.  Single character names
   or nicknames are not allowed.

   2. Internet Addresses are 32-bit addresses [See RFC-796].  In the

DOD INTERNET HOST TABLE SPECIFICATION


   host table described herein each address is represented by four
   decimal numbers separated by a period.  Each decimal number
   represents 1 octet.

   3. If the first bit of the first octet of the address is 0 (zero),
   then the next 7 bits of the first octet indicate the network number
   (Class A Address).  If the first two bits are 1,0 (one,zero), then
   the next 14 bits define the net number (Class B Address).  If the
   first 3 bits are 1,1,0 (one,one,zero), then the next 21 bits define
   the net number (Class C Address) [See RFC-943].

      This is depicted in the following diagram:

      +-+------------+--------------+--------------+--------------+
      |0|  NET <-7-> |         LOCAL ADDRESS <-24->               |
      +-+------------+--------------+--------------+--------------+

      +---+----------+--------------+--------------+--------------+
      |1 0|      NET  <-14->        |  LOCAL ADDRESS <-16->       |
      +---+----------+--------------+--------------+--------------+

      +-----+--------+--------------+--------------+--------------+
      |1 1 0|            NET  <-21->               | LOCAL ADDRESS|
      +-----+--------+--------------+--------------+--------------+

   4. The LOCAL ADDRESS portion of the internet address identifies a
   host within the network specified by the NET portion of the address.

   5. The ARPANET and MILNET are both Class A networks.  The NET portion
   is 10 decimal for ARPANET, 26 decimal for MILNET, and the LOCAL
   ADDRESS maps as follows: the second octet identifies the physical
   host, the third octet identifies the logical host, and the fourth
   identifies the Packet Switching Node (PSN), formerly known as an
   Interface Message Processor (IMP).

      +-+------------+--------------+--------------+--------------+
      |0|  10 or 26  |    HOST      | LOGICAL HOST |   PSN (IMP)  |
      +-+------------+--------------+--------------+--------------+

      (NOTE:  RFC-796 also describes the local address mappings for
      several other networks.)

   6. It is the responsibility of the users of this host table to
   translate it into whatever format is needed for their purposes.

   7. Names and addresses for DoD hosts and gateways will be negotiated
   and registered with the DDN PMO, and subsequently with the NIC,

DOD INTERNET HOST TABLE SPECIFICATION


   before being used and before traffic is passed by a DoD host.  Names
   and addresses for domains and networks are to be registered with the
   DDN Network Information Center (HOSTMASTER@SRI-NIC.ARPA) or
   800-235-3155.

   The NIC will attempt to keep similar information for non-DoD networks
   and hosts, if this information is provided, and as long as it is
   needed, i.e., until intercommunicating network name servers are in
   place.

EXAMPLE OF HOST TABLE FORMAT

   NET : 10.0.0.0 : ARPANET :
   NET : 128.10.0.0 : PURDUE-CS-NET :
   GATEWAY : 10.0.0.77, 18.10.0.4 : MIT-GW.ARPA,MIT-GATEWAY : PDP-11 :
             MOS : IP/GW,EGP :
   HOST : 26.0.0.73, 10.0.0.51 : SRI-NIC.ARPA,SRI-NIC,NIC : DEC-2060 :
          TOPS20 :TCP/TELNET,TCP/SMTP,TCP/TIME,TCP/FTP,TCP/ECHO,ICMP :
   HOST : 10.2.0.11 : SU-TAC.ARPA,SU-TAC : C/30 : TAC : TCP :

SYNTAX AND CONVENTIONS

   ; (semicolon)   is used to denote the beginning of a comment.
                   Any text on a given line following a ';' is a
                   comment, and not part of the host table.

   NET             keyword introducing a network entry

   GATEWAY         keyword introducing a gateway entry

   HOST            keyword introducing a host entry

   DOMAIN          keyword introducing a domain entry

   :(colon)        is used as a field delimiter

   ::(2 colons)    indicates a null field

   ,(comma)        is used as a data element delimiter

   XXX/YYY         indicates protocol information of the type
                   TRANSPORT/SERVICE.

      where TRANSPORT/SERVICE options are specified as

         "FOO/BAR"       both transport and service known

DOD INTERNET HOST TABLE SPECIFICATION


         "FOO"           transport known; services not known

         "BAR"           service is known, transport not known

         NOTE:  See "Assigned Numbers" for specific options and acronyms
         for machine types, operating systems, and protocol/services.

   Each host table entry is an ASCII text string comprised of 6 fields,
   where

      Field 1         KEYWORD indicating whether this entry pertains to
                      a NET, GATEWAY, HOST, or DOMAIN.  NET entries are
                      assigned and cannot have alternate addresses or
                      nicknames.  DOMAIN entries do not use fields 4, 5,
                      or 6.

      Field 2         Internet Address of Network, Gateway, or Host
                      followed by alternate addresses.  Addresses for a
                      Domain are those where a Domain Name Server exists
                      for that domain.

      Field 3         Official Name of Network, Gateway, Host, or Domain
                      (with optional nicknames, where permitted).

      Field 4         Machine Type

      Field 5         Operating System

      Field 6         Protocol List

   Fields 4, 5 and 6 are optional.  For a Domain they are not used.

   Fields 3-6, if included, pertain to the first address in Field 2.

   'Blanks' (spaces and tabs) are ignored between data elements or
   fields, but are disallowed within a data element.

   Each entry ends with a colon.

   The entries in the table are grouped by types in the order Domain,
   Net, Gateway, and Host.  Within each type the ordering is
   unspecified.

   Note that although optional nicknames are allowed for hosts, they are
   discouraged, except in the case where host names have been changed

DOD INTERNET HOST TABLE SPECIFICATION


   and both the new and the old names are maintained for a suitable
   period of time to effect a smooth transition.  Nicknames are not
   permitted for NET names.

GRAMMATICAL HOST TABLE SPECIFICATION

   A. Parsing grammar

      <entry> ::= <keyword> ":" <addresses> ":" <names> [":" [<cputype>]
         [":" [<opsys>]  [":" [<protocol list>] ]]] ":"
      <addresses> ::= <address> *["," <address>]
      <address> ::= <octet> "." <octet> "." <octet> "." <octet>
      <octet> ::= <0 to 255 decimal>
      <names> ::= <netname> | <gatename> | <domainname> *[","
         <nicknames>]
         | <official hostname> *["," <nicknames>]
      <netname>  ::= <name>
      <gatename> ::= <hname>
      <domainname> ::= <hname>
      <official hostname> ::= <hname>
      <nickname> ::= <hname>
      <protocol list> ::= <protocol spec> *["," <protocol spec>]
      <protocol spec> ::= <transport name> "/" <service name>
         | <raw protocol name>

   B. Lexical grammar

      <entry-field> ::= <entry-text> [<cr><lf> <blank> <entry-field>]
      <entry-text>  ::= <print-char> *<text>
      <blank> ::= <space-or-tab> [<blank>]
      <keyword> ::= NET | GATEWAY | HOST | DOMAIN
      <hname> ::= <name>*["."<name>]
      <name>  ::= <let>[*[<let-or-digit-or-hyphen>]<let-or-digit>]
      <cputype> ::= PDP-11/70 | DEC-1080 | C/30 | CDC-6400...etc.
      <opsys>   ::= ITS | MULTICS | TOPS20 | UNIX...etc.
      <transport name> ::= TCP | NCP | UDP | IP...etc.
      <service name> ::= TELNET | FTP | SMTP | MTP...etc.
      <raw protocol name> ::= <name>
      <comment> ::= ";" <text><cr><lf>
      <text>    ::= *[<print-char> | <blank>]
      <print-char>  ::= <any printing char (not space or tab)>

   Notes:

      1. Zero or more 'blanks' between separators " , : " are allowed.
      'Blanks' are spaces and tabs.

DOD INTERNET HOST TABLE SPECIFICATION


      2. Continuation lines are lines that begin with at least one
      blank.  They may be used anywhere 'blanks' are legal to split an
      entry across lines.

BIBLIOGRAPHY

   1. Feinler, E., Harrenstien, K., Su, Z. and White, V., "Official DoD
      Internet Host Table Specification", RFC-810, Network Information
      Center, SRI International, March 1982.

   2. Harrenstien, K., Stahl, M., and Feinler, E., "Hostname Server",
      RFC-953, Network Information Center, SRI International, October
      1985.

   3. Kudlick, M. "Host Names Online", RFC-608, Network Information
      Center, SRI International, January 1973.

   4. Postel, J., "Internet Protocol", RFC-791, Information Sciences
      Institute, University of Southern California, Marina del Rey,
      September 1981.

   5. Postel, J., "Address Mappings", RFC-796, Information Sciences
      Institute, University of Southern California, Marina del Rey,
      September 1981.

   6. Postel, J., "Domain Name System Implementation Schedule", RFC-921,
      Information Sciences Institute, University of Southern California,
      Marina del Rey, October 1984.

   7. Reynolds, J. and Postel, J., "Assigned Numbers", RFC-943,
      Information Sciences Institute, University of Southern California,
      Marina del Rey, April 1985.

ISO Plain Language

On this page
PROBLEMIn the early Internet, every host needed a name and a 32-bit address, and there had to be one authoritative, machine-readable list that everyone could translate into their own format.
MECHANISMThe DoD Internet Host Table is a plain ASCII file of NET, GATEWAY, HOST and DOMAIN entries, each a fixed six-field line, distributed from the SRI-NIC host by FTP or the NIC hostname server.
WHY IT FADEDIt is an old specification: the RFC obsoletes RFC 810 (and RFC 608) and was itself updated by RFC 1123, and the host table approach was later displaced by the Domain Name System.

§1The Internet Host Table

This RFC is the official specification of the format of the Internet Host Table. This edition includes minor revisions to RFC 810 that bring it up to date, and it also obsoletes RFC 608. The DoD Host Table is used by the DoD Hostname Server, which is maintained by the DDN Network Information Center on behalf of the Defense Communications Agency.

A machine-translatable ASCII version of the table is kept online in the file NETINFO:HOSTS.TXT on the SRI-NIC host. It can be fetched by FTP by connecting to SRI-NIC.ARPA, logging in as the anonymous user, and retrieving the file, or it can be obtained through the NIC Hostname Server; the latter is faster and easier but needs a program to make the connection. It is the responsibility of the users of the table to translate it into whatever format they need.

One central machine kept the master list of names and addresses, and everyone else copied it. The file was plain text so that any computer could convert it into its own local form, and it could be picked up either by file transfer or by asking the name server.

§2Names and Addresses

A name, whether a Net, Host, Gateway or Domain name, is a text string of up to 24 characters drawn from the letters A to Z, the digits 0 to 9, the minus sign and the period. Periods are allowed only where they delimit the components of domain-style names. No spaces or blanks are allowed, upper and lower case are not distinguished, the first character must be a letter, and the last character must not be a minus sign or a period. Single-character names and nicknames are not allowed.

Special conventions apply to certain roles. A host that serves as a gateway should have "-GATEWAY" or "-GW" as part of its name, and hosts that are not gateways should not use those strings. A host that is a TAC should have "-TAC" as the last part of its name if it is a DoD host. Internet addresses are 32-bit, written in the table as four decimal numbers separated by periods, each representing one octet.

The first bits of the address determine its class. If the first bit is 0, the next 7 bits give a Class A network number. If the first two bits are 1 and 0, the next 14 bits give a Class B network number. If the first three bits are 1, 1 and 0, the next 21 bits give a Class C network number. The remaining bits form the local address of the host within that network.

Names were short, made only of letters, digits, dots and dashes, and could not start with a digit or end with a dot or a dash. A name's ending told you a host's job, such as a gateway. Addresses were written as four numbers, and the way the first bits of the first number began told you how the network part and the host part were divided.

ADDRESS CLASSES IN THE HOST TABLE (RFC 952)
ClassLeading bitsNetwork bitsLocal address
Class A THIS RFC0724
Class B1 01416
Class C1 1 0218

§3Entry Format

Each host table entry is an ASCII text string of six fields. Field 1 is the keyword saying whether the entry is a NET, GATEWAY, HOST or DOMAIN. Field 2 is the Internet address, followed by any alternate addresses. Field 3 is the official name, with optional nicknames where they are permitted. Fields 4, 5 and 6 are the machine type, the operating system and the protocol list, and they are optional; for a domain they are not used. Fields 3 to 6, if present, describe the first address in field 2.

A colon is the field delimiter and a comma is the data element delimiter; two colons together mark a null field, and a semicolon begins a comment that runs to the end of the line. Blanks are ignored between data elements or fields but are not allowed inside a data element, and each entry ends with a colon. A protocol item may be written as TRANSPORT/SERVICE, as a transport alone, or as a service alone. Continuation lines begin with at least one blank and may be used wherever blanks are legal.

NET entries are assigned and cannot have alternate addresses or nicknames, and nicknames are not permitted for NET names. DOMAIN entries use only the first three fields. Optional nicknames are allowed for hosts but are discouraged, except when a host name has changed and both the new and the old names are kept for a time to smooth the transition. Entries are grouped by type in the order Domain, Net, Gateway and Host, and within a type the ordering is unspecified.

Every line is a fixed pattern of six parts separated by colons: what the entry is, its address, its official name, and then optional machine, software and service details. Punctuation has strict jobs, comments start with a semicolon, and the file is grouped by entry type.

§4An Example Table

The RFC gives a short example that shows all the entry kinds in use. A network entry looks like NET : 10.0.0.0 : ARPANET :. A gateway entry gives two addresses and two names, followed by its machine type, operating system and protocols: GATEWAY : 10.0.0.77, 18.10.0.4 : MIT-GW.ARPA,MIT-GATEWAY : PDP-11 : MOS : IP/GW,EGP :. A host entry can list alternate addresses and several transport and service pairs: HOST : 26.0.0.73, 10.0.0.51 : SRI-NIC.ARPA,SRI-NIC,NIC : DEC-2060 : TOPS20 : TCP/TELNET,TCP/SMTP,TCP/TIME,TCP/FTP,TCP/ECHO,ICMP :.

The protocol list uses the TRANSPORT/SERVICE form, where both parts may be given as in TCP/TELNET, only the transport as in a bare transport name, or only the service. The RFC refers the reader to the assigned numbers for the specific options and acronyms for machine types, operating systems and protocol and service names.

The examples show how real entries look, including a host with two addresses and a list of the services it offers, written as a transport and a service joined by a slash.

§5Registration and What Came Next

Names and addresses for DoD hosts and gateways were negotiated and registered with the DDN PMO and then with the NIC before being used and before traffic was passed by a DoD host. Names and addresses for domains and networks were registered with the DDN Network Information Center. The NIC would also keep similar information for non-DoD networks and hosts if it was provided, and for as long as it was needed, that is until intercommunicating network name servers were in place.

That final qualification points to the host table's fate. The table was a single central file that every host had to copy and keep current, which does not scale, and the RFC's own references look forward to the Domain Name System and its implementation schedule. This document obsoletes RFC 810 and RFC 608 and was itself updated by RFC 1123.

Names had to be registered centrally before they could be used, and the file was only meant to last until a proper distributed name service existed. That service, the Domain Name System, replaced the single-file approach because one central file could not keep up with a growing Internet.

§6References