Know The Internet Series | Host Software | RFC 2 |

Ujjawal Sharma
6 min readMar 1, 2020

The following summary is for RFC2 which was published in the continuation of RFC1 (The summary of which has already been done here).

RFC1 discussed the specifications of the IMP(Interface Message Processor) software and the agreement of the HOSTS on a common software for communicating. It also discussed the overall architecture which was agreed upon by all the participating organizations(Steve Carr from Utah, Jeff Rulifson from SRI and Steve Crocker of UCLA), but it did not discussed how the components in the whole communicating architecture will behave and what would be their roles. Here, in RFC2 we will discuss these things in detail.

There are few terms used here which have been already discussed in detail in RFC1, for example, IMPs, Links, Host Software, TTY etc. Please have a look.

LINKS:

CONTROL LINKS:

  • Logical Link 0 will be control link between hosts
  • Only one control link may exist between 2 hosts. So, if there are n HOSTS, there would be n-1 links from each HOST.
  • Use of control links:

(i) To establish user links.

(ii) To Break user links.

(iii) Passing interrupts regarding the status of links and/or program using

the link.

(iv) Monitor Communication.

  • IMPs on network will be able to trace all messages sent on link 0.

PRIMARY LINKS:

  • User at any HOST may have exactly 1 primary link to any other HOST on network.
  • Primary link must be the first link established between a HOST user and another HOST.
  • It is global to a user, can be programmed as per needs and gets open/closed based on invocation by program.
  • Used for passing control information to the remote HOST. For example: Logging in to the remote host.
Network of Hosts and Links Between Them

AUXILIARY LINKS:

  • A user program can establish any number of auxiliary links between local host and remote host.
  • These links may be used for either binary/character transmission.
  • These links are local to subsystems which establishes them.

MANIPULATION OF LINKS:

CONTROL LINKS:

  • Control link is established at system load time.
  • Status of control link should reflect the relationship between the HOSTS, and they could be active/inactive.

PRIMARY LINKS:

  • Established by a user or execute call to the monitor.
  • Network identification number of the HOST must be included in the call.
  • Attempt of establishing more than one primary link to a particular HOST will result in an error, and the request is defaulted.
  • There will be a standard character set for transmission of data over the primary links and control links. Character set is of 8 bits ASCII.

PROTOCOL FOR ESTABLISHING A LINK FROM HOST ‘A’ TO HOST ‘B’:

  • HOST A selects a currently unused link to HOST B from its allocation table.
  • HOST A transmits a link-connect message over LINK 0.

CASE I:

  • HOST A waits for certain time for the reply from HOST B.
  • The monitor verifies the reply coming from HOST B and sends a confirmation to HOST A along with the link number.
  • Link is established now.

CASE II:

  • There may be a scenario where HOST B is trying to send its own new request for link and not the reply of what HOST A sent.
  • In this case, if the network ID number of HOST A(NA) is greater than that of HOST B (NB), i.e, NA>NB, then HOST A ignores the request and wait for the reply for the request which it sent earlier.
  • If NB>NA, then HOST A accepts the request, sends proper confirmation details to HOST B and aborts its own request which it sent earlier.

CASE III:

  • Any other response apart from the ones mentioned above in an error condition.
  • It could mean that either HOST A has selected previously allocated link for allocation, or HOST B is transmitting information over an unallocated link, or a message regarding allocation from HOST B to HOST A got corrupted.
  • In this case, a link disconnect message is sent to HOST B from HOST A.

CASE IV:

  • If no communication regarding the link is received from HOST B in the prescribed amount of time, HOST B is considered to be in an error state.
  • Link disconnect message is sent from HOST B to HOST A and a panic routine is called (ERROR).

AUXILIARY LINKS:

  • Established by a call to the monitor from a user program.
  • The request should include the appropriate data such as the link number which is then sent to monitor.
  • Request for an auxiliary link must be made by a user program in each of the HOSTS. (A & B).

CASE I (IF NA>NB):

  • Then HOST A proceeds to establish a link to HOST B in the manner outlined above.

CASE II (IF NB>NA):

  • Then HOST A waits for HOST B to establish the corresponding link.
  • After a specified time, if HOST B did not respond to the request of HOST A, request timed out error is provided.
  • This specified timeout is provided by the user program.

ERROR CHECKING:

  • Checksum is associated with each message, which is order dependent. It serves a purpose to verify the consistency of each character sent over the links.

ALGO I (FOLDING):

  • Checksum of length 1 may be formed by adding successive fields in the string to be checked serially, and adding the carry bit into the lowest bit position of the sum.
FOLDING ALGORITHM

ALGO II (PARALLEL ADDING):

  • Several fields may be added and folded in parallel, if they are folded appropriately after the addition.
  • If there are “n” fields, the carries from the first “n-1” fields are automatically added into the lower order position of the next higher field, so that in folding, one need to only add the “n” result fields to carry from the nth field.
  • Then, the appropriately sized carry from that addition is added.
  • If a string of suitable length is chosen for computing the checksum, and a suitable checksum field length is selected, the checksum technique for each of the machines will be relatively optimal. For ex:

(I) Field Length: 288 bits (Lowest Common Denominator) (24,32,36)

(II)Checksum Length: 8 bits Convenient field size of all machines.

  • If a message is divided into group of fields, and each group is checksumed in this manner, an order dependent checksum may be got by shifting the checksum for each group, and adding it in successively to the checksum of next group.
  • Another feature in error checking is where the two HOSTS may enter a mode which requires positive verification of all messages. This verification is sent over the control link.
PARALLEL ADDING ALGORITHM

EXECUTIVE PRIMITIVES:

PRIMARY LINKS:

  • These firstly require the HOST number as a parameter.
  • Establish primary link.
  • Connect controlling TTY to primary link.
  • INPUT/OUTPUT over primary link.
  • Interrogate status of primary link.
  • Disconnect controlling TTY from primary link.
  • Kill Primary Link.

AUXILIARY LINKS:

  • Establish Auxiliary Link. It requires the HOST number as a parameter.
  • It returns a logical link number which can be considered as an ID of the HOST. This number is then passed to other Auxiliary routines as a parameter.
  • Perform INPUT/OUTPUT over auxiliary link.
  • Interrogate status of auxiliary link.
  • Kill Auxiliary Link.

INITIAL CHECKOUT:

  • The network is initially checked out using the links in a simulated data-phone mode.
  • All messages sent are 1 character in length.
  • Links are transparent to the monitor and controlled by a user program via a special executive primitive.
  • DDTs (Dynamic Debugging Techniques) will be used to run the initial tests on all HOSTs.
  • It will be paralleled by a telephone link or anything similar.

What is a DDT?

DDT Stands for Dynamic Debugging Technique. More Information Here.

Please leave your feedback for this post in the comments.

--

--

Ujjawal Sharma

Cyber Security Engineer at SAINT Corporation | Studied Information Security at Johns Hopkins University