HOSTS.TXT: DoD Internet host table specification
The text-file format that listed every network, gateway and host name with its address, before DNS took over that job.
Harrenstien, K., Stahl, M.K., and E.J. Feinler, "DoD Internet host table specification", RFC 952, DOI 10.17487/RFC0952, October 1985, <https://www.rfc-editor.org/info/rfc952>.
@misc{rfc952,
series = {Request for Comments},
number = 952,
howpublished = {RFC 952},
publisher = {RFC Editor},
doi = {10.17487/RFC0952},
url = {https://www.rfc-editor.org/info/rfc952},
author = {K. Harrenstien and M.K. Stahl and E.J. Feinler},
title = {{DoD Internet host table specification}},
pagetotal = 6,
year = 1985,
month = oct,
} RFC text
Contents
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.
AI ELI5
On this page
§1What the Host Table Is
RFC 952 is the official specification of the format of the Internet Host Table. It is a minor revision of RFC 810 that brings it up to date, and it lists RFC 810 and RFC 608 as obsoleted.
The table is used by the DoD Hostname Server, which the DDN Network Information Center (NIC) maintains on behalf of the Defense Communications Agency (see RFC 953). A machine-translatable ASCII version lived in the file NETINFO:HOSTS.TXT on the SRI-NIC host. It could be fetched by FTP (logging in as ANONYMOUS with password GUEST) or from the NIC Hostname Server, which the RFC calls the faster and easier route.
Users of the table are responsible for translating it into whatever format they need.
Imagine one master address book for a whole school. This RFC says what the master book looks like and where to get a copy.
§2Rules for Names
A name (of a net, host, gateway or domain) is a text string of up to 24 characters. The allowed characters are letters (A-Z), digits (0-9), the minus sign and the period. Periods are only allowed when they separate the components of a domain style name. Names have no blanks and are not case sensitive.
The first character must be a letter, and the last must not be a minus sign or period. Single-character names and nicknames are not allowed.
- A host that works as a gateway should have
-GATEWAYor-GWin its name; other hosts should not. - A DoD host that is a TAC should end its name with
-TAC.
Names and addresses for DoD hosts and gateways are negotiated and registered with the DDN PMO and then the NIC before use. Domains and networks are registered with the DDN Network Information Center.
Computer names follow spelling rules, like a school that says names must start with a letter and cannot have spaces. Gateways get a special tag in their names so people can spot them.
§3Addresses in the Table
Internet addresses are 32 bits (see RFC 796). In the table each address is written as four decimal numbers separated by periods, and each number stands for one octet.
The first bits of the address decide how it splits into a network number and a local address (see RFC 943). A first bit of 0 gives a Class A address with a 7-bit net number. First bits 1,0 give Class B with a 14-bit net number, and 1,1,0 give Class C with a 21-bit net number. The local address identifies a host within the network.
The ARPANET (net 10) and MILNET (net 26) are both Class A networks. For these, the second octet identifies the physical host, the third the logical host, and the fourth the Packet Switching Node (PSN), formerly called an Interface Message Processor (IMP).
An address is like a street number with parts: the first part says which neighborhood, the rest says which house. The first few digits tell you how big the neighborhood part is.
| Class | First bits | Net number | Local address |
|---|---|---|---|
| A | 0 | 7 bits | 24 bits |
| B | 1,0 | 14 bits | 16 bits |
| C | 1,1,0 | 21 bits | remainder of the address |
§4Entry Format and Syntax
Each entry is an ASCII text string with up to 6 fields, separated by colons, and it ends with a colon. Fields 4 to 6 are optional.
- Field 1: keyword
NET,GATEWAY,HOSTorDOMAIN. - Field 2: the address, followed by any alternate addresses (for a domain, the addresses where a Domain Name Server exists).
- Field 3: the official name, with optional nicknames where permitted.
- Field 4: machine type. Field 5: operating system. Field 6: protocol list.
A semicolon starts a comment. Commas separate data elements, and two colons in a row mark a null field. Protocol information is written TRANSPORT/SERVICE, for example TCP/TELNET, and either half may be given alone. Blanks and tabs are ignored between elements but not allowed inside one, and a line starting with a blank continues the previous one.
NET entries cannot have alternate addresses or nicknames, and DOMAIN entries do not use fields 4 to 6. Fields 3 to 6 describe the first address in field 2. Nicknames for hosts are discouraged except while old and new names are both kept during a rename. The table is grouped by type in the order Domain, Net, Gateway, Host, and the order within a type is unspecified.
The RFC also gives a parsing grammar and a lexical grammar for entries.
Each line of the book is a row of boxes split by colons: what kind of thing it is, its number, its name, and then a few details. Some boxes can be left empty.
§5Example Entries
The RFC shows four sample lines: two networks (ARPANET and PURDUE-CS-NET), a gateway named MIT-GW.ARPA with two addresses, the SRI-NIC host itself with a long protocol list, and a TAC named SU-TAC.ARPA.
Reading the SRI-NIC line: it is a HOST with addresses 26.0.0.73 and 10.0.0.51, official name SRI-NIC.ARPA with nicknames SRI-NIC and NIC, machine type DEC-2060, system TOPS20, and a list of protocols such as TCP/TELNET and TCP/FTP.
The examples are sample rows from the address book, showing a network, a gateway and two computers filled in.
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 :