RFC 810

DoD Internet host table specification

πŸ“… published March 1982, from ietf

DoD INTERNET HOST TABLE SPECIFICATION πŸŽ€

okay bestie, this is RFC 810 πŸ’– written by Elizabeth Feinler, Ken Harrenstien, Zaw-Sing Su and Vic White from the Network Information Center at SRI International, dated 1 March 1982. it's giving References: RFC 811, 796, and it obsoletes RFC 608 πŸ¦‹ so 608 is officially retired, periodt πŸ’…


INTRODUCTION ✨

okay so the ARPANET Official Network Host Table from RFC 608 is not it anymore πŸ™ˆ it doesn't meet what the DoD community needs, and it isn't laid out in a format that works for internetting. so this doc specifies a new host table format that works for both ARPANET and Internet needs πŸ’œ

on top of host name to host address translation and some protocol info, the new format also covers network and gateway name to address correspondence, plus host operating system info. the whole thing is giving main character energy πŸ‘‘

this Host Table gets used by the DoD Host Name Server, which is maintained by the ARPANET Network Information Center (NIC) on behalf of the Defense Communications Agency (DCA) (RFC 811). it obsoletes the host table described in RFC 608 🌸

LOCATION OF THE STANDARD DoD ONLINE HOST TABLE 🌈

a machine-translatable ASCII text version of the new DoD Host Table is online in the file <NETINFO>HOSTS.TXT on the SRI-NIC host πŸ’» to grab it, connect to host SRI-NIC (10.0.0.73) from your local FTP server, log in as user=ANONYMOUS with password=GUEST, and do a get on <NETINFO>HOSTS.TXT. you can also get the same table through the NIC Host Name Server 🧚

NOTE: See Appendix A. for timeframe for cutover. ⏰

ASSUMPTIONS πŸ“

  1. okay so 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), and the minus sign (-) and period (.). no blank or space characters are allowed in a name, and upper and lower case are treated the same. the first character has to be a letter, and the last character must not be a minus sign or period. a host that works as a GATEWAY should have "-GATEWAY" or "-GW" somewhere in its name. a host that's a TIP or a TAC should have "-TIP" or "-TAC" in its host name if it's an ARPANET or DoD host 🫢
  2. Internet Addresses are 32-bit addresses (RFC 796) πŸ”’ in this host table, each address is written as four decimal numbers separated by a period, and each decimal number stands for 1 octet ✨
  3. if the first bit of the first octet is 0 (zero), then the next 7 bits of that first octet give 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) (RFC 796) πŸ¦‹ here's the diagram, it's so pretty:
   +--------------+-----------------------------------------------+
   |0|  NET <-7-> |      LOCAL ADDRESS  <-24->                    |
   +--------------+-----------------------------------------------+

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

   +-----+----------------------------------------+---------------+
   |1 1 0|           NET  <-21->                  | LOCAL ADDRESS |
   +-----+----------------------------------------+---------------+
  1. the LOCAL ADDRESS portion of the internet address identifies a host inside the network that the NET portion points to 🏠
  2. for the ARPANET (a Class A network), the NET address is 10 (decimal). the LOCAL ADDRESS works like this: the second octet defines the physical host, the third octet defines the logical host, and the fourth defines the IMP πŸ›°οΈ
   +-+-------------+---------------+--------------+---------------+
   |0|     10      |    HOST       | LOGICAL HOST |      IMP      |
   +-+-------------+---------------+--------------+---------------+

(NOTE: RFC 796 describes the local address mappings for several other networks πŸ“–)

  1. it's the job of whoever uses this host table to translate it into whatever format they need for their own stuff πŸ’…
  2. Names and Addresses for DoD networks, gateways, and hosts get negotiated and registered with the Network Information Center (NIC@SRI-NIC or (415) 859-4775) before they're used, and before a DoD host passes any traffic πŸ“ž for an interim period, the NIC will try to keep similar info for non-DoD networks and hosts if that info is provided, and for as long as it's needed, meaning until intercommunicating network name servers are in place 🌸

EXAMPLE OF NEW HOST TABLE FORMAT πŸŽ€

here's a little example so you can see the vibe:

   NET : 10.0.0.0 : ARPANET :

   NET : 18.0.0.0 : LCSNET :
   GATEWAY : 10.0.0.77, 18.8.0.4 : MIT-GW :: MOS : IP/GW :
   HOST : 10.0.0.73 : SRI-NIC,NIC : FOONLY-F3 : TENEX :
       NCP/TELNET,NCP/FTP, TCP/TELNET, TCP/FTP :
   HOST: 10.2.0.11 : SU-TIP,FELT-TIP :::

SYNTAX AND CONVENTIONS πŸ’œ

here's the cheat sheet for the symbols and keywords 🧚

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

NET                keyword introducing a network name/address entry

GATEWAY            keyword introducing a gateway name/address entry

HOST               keyword introducing a host name/address 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
      "FOO"     - transport known; services not known or not
                  running, OR
      "BAR"     - name is known, what it does is not

      NOTE:  See Appendices B and C for specific options and
             acronyms.

each host table entry is an ASCII text string made of 6 fields, and they go like this πŸ“

   Field 1 = KEYWORD indicating whether this entry pertains
             to a NET, GATEWAY, or HOST.  NET entries cannot have
             alternate addresses or nicknames.
   Field 2 = Internet Address of Network, Gateway, or Host
             followed by alternate addresses
   Field 3 = Official Name of Network, Gateway, or Host
             (with optional nicknames)
   Field 4 = Machine Type
   Field 5 = Operating System
   Field 6 = Protocol List

Fields 4, 5 and 6 are optional 🫢 Fields 3-6, if they're available, are about the first address in Field 2 ✨

'Blanks' (spaces and tabs) get ignored between data elements or fields, but they aren't allowed inside a data element πŸ™ˆ every entry ends with a colon, and the host table gets sorted by internet address πŸ’…

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>
           | <official hostname> *["," <nicknames>]
<netname>  ::= <name>
<gatename> ::= <name>
<official hostname> ::= <name>
<nickname> ::= <name>
<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>]
<blank> ::= <space or tab>
<keyword> ::= NET | GATEWAY | HOST
<name> ::= <letter>[*[<letter-or-digit-or-hyphen>]<letter-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> ::= ";" <arbitrary text><cr><lf>

Notes:

  1. zero or more 'blanks' are allowed between the separators " , : " 🌸 'blanks' are spaces and tabs
  2. continuation lines are lines that begin with at least one blank πŸ’– they can show up anywhere blanks are legal, so you can split an entry across lines

BIBLIOGRAPHY πŸ“š

  1. Feinler, E. and Kudlick, M. Host Names Online, RFC 608, Network Information Center, SRI International, Jan. 1973.
  2. Postel, J. Assigned Numbers, RFC 790, Information Sciences Inst., Univ. of Southern Calif., Marina Del Rey, Sept. 1981.
  3. Postel, J. Internet Protocol, RFC 791, Information Sciences Inst., Univ. of Southern Calif., Marina Del Rey, Sept. 1981.
  4. Postel, J. Address Mappings, RFC 796, Information Sciences Inst., Univ. of Southern Calif., Marina Del Rey, Sept. 1981.
  5. Feinler, E., Harrenstien, K., Su, Z. and White, V. Official DoD Internet Host Table Specification, RFC 810, Network Information Center, SRI International, March 1, 1982.

APPENDIX A. CUTOVER DETAILS ⏰

the cutover date for the new host table is 1 May 1982 πŸŽ‰ the table below shows which files hold the old or new version of the host table, and for what period. after 1 August 1982, the old format for <NETINFO>HOSTS.TXT (specified in RFC-608) won't be supported anymore πŸ’€

--------------------------------------------------------------------
  May 1982               June-July 1982              August 1982 on
--------------------------------------------------------------------

<NETINFO>HOSTS.TXT     <NETINFO>HOSTS.TXT        <NETINFO>HOSTS.TXT
  old version            new version               new version

<NETINFO>NHOSTS.TXT    <NETINFO>NHOSTS.TXT         old version
  new version (test)     new version               discontinued

<NETINFO>OHOSTS.TXT    <NETINFO>OHOSTS.TXT
  old version            old version

--------------------------------------------------------------------

these overlap periods should give implementors time to make the changes they need in the programs that access this file 🫢

APPENDIX B. TRANSPORT/SERVICE OPTIONS AND ACRONYMS πŸ”₯

current TRANSPORT/SERVICE options are:

IP           TCP/FTP
IP/GW        TCP/MTP
NCP          TCP/NNS
NCP/FTP      TCP/RJE
NCP/RJE      TCP/SMTP
NCP/SMTP     TCP/TELNET
NCP/TELNET   TCP/TFTP
NCP/NNS      UDP
NVP
TCP

Note: "TCP" implies IP is also implemented 🧠

and here are the acronym definitions for those protocol options πŸ’…

FTP  - File Transfer Protocol
GW   - Gateway Protocol
IP   - Internet Protocol
MTP  - Mail Transfer Protocol
NCP  - Network Control Protocol
NNP  - NIC Internet Name Server Protocol
NVP  - Network Voice Protocol
RJE  - Remote Job Entry Protocol
SMTP - Simple Mail Transfer Protocol
TELNET - TELNET Protocol
TCP  - Transmission Control Protocol
TFTP - Trivial File Transfer Protocol
UDP  - User Datagram Protocol

APPENDIX C. OPERATING SYSTEM ACRONYMS πŸ–₯️

current operating system acronyms are:

ASP          KRONOS       RSX11M      VMS
AUGUST       MCP          RT11        WAITS
BKY          MOS          SCOPE
CCP          MPX-RT       SIGNAL
DOS/360      MULTICS      SINTRAN
ELF          MVT          TENEX
EPOS         NOS          TOPS10
EXEC-8       NOS/BE       TOPS20
GCOS         OS/MVS       TSS
GPOS         OS/MVT       UNIX
ITS          RIG          VM/370
INTERCOM     RSX11        VM/CMS

that's the whole spec, bestie πŸŒˆπŸ’– go forth and parse responsibly πŸ¦‹βœ¨

πŸ“¦ where this page comes from