Network Working Group
Request for Comments: 565
NIC: 18777
D. Cantor
Computer Corporation of America
28 August 1973

Storing Network Survey Data at the Datacomputer

In November, 1972, Computer Corporation of America (CCA) and the Programming Technology Division of the Dynamics Modeling System (DMS) at M.I.T.'s Project MAC began planning to transmit to CCA's datacomputer [1] information about the behavior of ARPA network hosts collected by DMS's program SURVEY [2]. The information was to be stored at the datacomputer and retrieved by an interactive program that would address the datacomputer from DMS's PDP-10.

One goal of this joint project was to enable DMS to retain all of the information that SURVEY collects: SURVEY had been running since late 1971, saving only a short daily summary of its findings and discarding potentially useful details. A second goal was to discover and remove shortcomings in the interface between CCA's datacomputer and a program running at a remote host.

The project was completed last month, and the programs described in this document have been operating successfully with the datacomputer since July 10.

Part 1, below, describes SURVEY's output. Part 2 describes a program that retrieves portions of that output from the datacomputer.

Part 1: The Survey Database

Every twenty minutes, DMS's program SURVEY wakes up and performs the initial connection protocol from the PDP-10 at DMS to the logger socket (socket 1) of each 28 network hosts.

SURVEY records a date time, host, status,and response time for each host. A host may be in one of these states:

undetermined or not surveyed

disconnect from the network or dead

network control program not responding

ICP to logger aborted by the host

ICP to logger timed out by SURVEY after 20 seconds logger available and responding within 20 seconds

SURVEY records response times responding in tenths of seconds.

When the data for all 28 hosts has been assembled, SURVEY transmits that data to CCA's datacomputer. If for some reason the datacomputer cannot accept the information, it is held at DMS and sent another time.

The datacomputer's survey database is inverted by host, status, month, and year. That is to say that the datacomputer maintains several indices to records of one attempt to establish a full duplex connection to one host's logger: it maintains one such index for each host, one for each status, one for each month, and one for each year. The datacomputer can select records that are specified in boolean expressions by performing boolean operations on the inversion, and without consulting the data itself. The inversion thus facilitates rapid interaction between the survey retrieval program described below and the survey database at the datacomputer.

SURVEY expresses the record of each attempt to access one host in 17 ASCII characters. The record of one survey then occupies 17 * 28 = 476 characters, and each day the datacomputer receives 3 * 24 * 476 = 34,272 characters from DMS.

Part 2: Retrieving Survey Data

A Program called SURRET, written at DMS in the language MUDDLE, allows one to selectively retrieve material from the survey data base stored at the datacomputer [3]. Its user may specify values, groups of values, or, where appropriate, upper and lower bounds for values of each of five fields: host name, date, time, response time, and host status. In addition, one may request that all five fields or any subset of the five be retrieved. A sample interaction with SURRET is reproduced below.

    <HOST (CASE-10)>$
    "OK"
    <DATE (AUG 5 73)>$
    "OK"
    <TIME (BETWEEN 2000 2400)>$
    "OK"
    <REQ ((TIME STATUS RESTIME))>$
    ;J205 10-08-73 1557:20 RHRUN: SUCCESSFUL COMPILATION
    .1241 10-08-73 1557:21 OCSOP: (DEFAULT) OUTPUT PORT OPENED
   TIME           STATUS             R.T.(1/10 SEC)
   2004    LOGGER RESPONDING (UP)        019
   2024    LOGGER RESPONDING (UP)        024
   2044    LOGGER RESPONDING (UP)        021
   2104    LOGGER RESPONDING (UP)        016
   2124    LOGGER RESPONDING (UP)        046
   2144    LOGGER RESPONDING (UP)        018
   2204    LOGGER RESPONDING (UP)        017
   2224    LOGGER RESPONDING (UP)        017
   2244    LOGGER RESPONDING (UP)        023
   2304    LOGGER RESPONDING (UP)        015
   2324    LOGGER RESPONDING (UP)        016
   2344    LOGGER RESPONDING (UP)        015
   "END OF DATCOMPUTER OUTPUT"

The angle brackets, the material they enclose, and '$' (ESC or altmode) were typed by a person using SURRET. The remainder was typed by the system. The phrases in quotation marks are, effectively, SURRET prompts. The status messages beginning with ';' and '.' were generated by the datacomputer. The column headings and table were formatted by SURRET using figures retrieved from the datacomputer.

SURRET generates datalanguage, sends it to the datacomputer, and processes systems diagnostics and data sent to it from the datacomputer. The datalanguage generated for the foregoing SURRET request was:

   FOR |SURVEY.LOGTRY, SURVEY.LOGTRY WITH
     ((YEAR EQ '73' AND MONTH EQ '08' AND DAY EQ '05')
     AND (HRMIN GE '2000' AND HRMIN LE '2400')
     AND (HOST EQ '013'))
   HRMIN=HRMIN ;  STATUS=STATUS  ;  RESTIME=RESTIME  ;
   END;

The field names in the datalanguage were entered with file descriptors before the first data was loaded.

One can ask SURRET to retrieve new data by changing the values of any number of fields and issuing a new REQ (request). The command <state> displays current values for the five prospective retrieval criteria. Thus:

    <HOST (USC-44)>$
    "OK"
    <STATE>$
    !HOST: (USC-44)STATUS: () RESTIME: () DATE: (AUG 5 73)
      TIME: (BETWEEN 2000 2400)!
    
    <REQ ((TIME STATUS RESTIME))>$
    ;J205 10-08-73 1610:08 RHRUN: SUCCESSFUL COMPILATION
    .1241 10-08-73 1610:09 OCSOP: (DEFAULT) OUTPUT PORT OPENED
   
   TIME           STATUS             R.T.(1/10 SEC)
   2004    LOGGER RESPONDING (UP)        020
   2024    LOGGER RESPONDING (UP)        008
   2044    LOGGER RESPONDING (UP)        008
   2104    LOGGER RESPONDING (UP)        009
   2124    LOGGER NOT RESPONDING (LNR)   000
   2144    LOGGER NOT AVAILABLE(DEAD)    000
   2204    NCP NOT RESPONDING (NNR)      000
   2224    LOGGER NOT RESPONDING (LNR)   000
   2244    LOGGER NOT AVAILABLE (DEAD)   000
   2304    LOGGER NOT AVAILABLE (DEAD    000
   2324    NCP NOT RESPONDING (NNR)      000
   2344    LOGGER RESPONDING (UP)        007
   "END OF DATCOMPUTER OUTPUT"

We might have retrieved all of the foregoing output with:

<HOST (CASE-10 OR USC-44)>

Moreover,

         <HOST (CASE-10 CCA OR USC-44)>

would cause SURRET to access the database twice, once for information about Case-10, and then a second time for information about the remaining two hosts.

Detailed Survey data from July 10, 1973 forward is available either directly from the datacomputer or through SURRET. Persons who wish to use the datacomputer directly may obtain the pertinent documents through the NIC or by contacting Dale Stern at CCA (617-491-3670).

Endnotes

[1] An overview of the data computer is given in Thomas Marill, The Datacomputer, 18 Oct '71, 7pp. (NIC 7979). A detailed study of the programming language for addressing the datacomputer is found in Computer Corporation of America, Datacomputer Project Working Paper No. 3, Datalanguage, 29 Oct '71, 78 pp. (NIC 8208). The current status of the language is reviewed in Richard Winter, Specifications for Datalanguage, Version 0/9, 6 Jun '73, 36 pp. (NIC 16446). A user's manual for version 0/9, will be released by CCA in September, 1973.

[2] SURVEY is described in Abhay Bhushan, A Report on the Survey Project, 22 June '73 (NIC 17375).

[3] A detailed discussion of SURRET is found in Safwan Bengelloun, MUDDLE Survey Data Retrieval Programs, an internal DMS memo of 14 June, '73. Our purpose here is to describe enough of the program's syntax and structure to show how it interacts with the datacomputer.

[ This RFC was put into machine readable form for entry ]

[ into the online RFC archives by Via Genie 08/00]