RFC 145 UNKNOWN CONNECTIONS · NCP

Initial Connection Protocol Control Commands

A corrected listing of the control commands that two NCPs exchange to run the Initial Connection Protocol.

On rfc-editor.org ↗
PUBLISHED
May 1971
AUTHORS
J. Postel
STREAM
Legacy
BUILDS ON
RFC 127 — Comments on RFC 123
OBSOLETED BY
RFC 165 — ICP
UPDATED BY
RFC 143 — Regarding proffered official ICP
INITIAL DATA
32 bits in 1 message on link l_A
DOI
10.17487/RFC0145

RFC text

Original text · RFC Editor View on rfc-editor.org ↗
Network Working Group                                          J. Postel
Request for Comments: 145                                     UCLA - NMC
NIC: 6739                                                     4 May 1971
Updates: 123
Obsoletes: 127

              Initial Connection Protocol Control Commands

     The following is my interpretation of the exchange between NCP's
   which would be necessary to carry out the Initial Connection Protocol
   of RFC #123.  (This note corrects an error pointed out by Eric
   Harslem of RAND).

      Server NCP                      User NCP
      __________                      ________

      Listen for Connection L         RTS, U, L, l
                                                  A

      STR, L, U, 32                   ALL, l  , 1, 32
                                            A

      Send 32 bits of data
      in 1 message on link l
                            A

      (value is S)                    Receive 32 bits of data
                                      from link l  (value is S)
                                                 A

      CLS, L, U                       CLS, U, L

      STR, S+1, U+1, B                STR, U+1, S, B
                      s                             u

      RTS, S, U+1, l                  RTS, U, S+1, l
                    B                               C

      wait for connection             wait for connection
      ALL, l , m , b                  ALL, l , m , b
            B   B   B                       C   C   C

      data sent to link l             data sent on link l
                         C                               B

      data received on link           data received on link l
                           B                                 C

      l , l , and l , are links, m  and m  are messages allocations, b
       A   B       C              B      C                            B
      and b  are bit allocations, and all other symbols are defined in
           C
      RFC #123.

      [This RFC is also available in .PS and. PDF format.]

          [ This RFC was put into machine readable form for entry ]
               [ into the online RFC archives by Lorrie Shiota]

AI ELI5

On this page
PROBLEMThe earlier description of the control commands behind the Initial Connection Protocol of RFC 123 contained an error, found by Eric Harslem of RAND.
MECHANISMA table lists, side by side, what the server NCP and the user NCP send: RTS, STR, ALL and CLS commands with sockets and links, ending with a second connection on which data flows.
STATUS TODAYIt obsoletes RFC 127 and was itself later obsoleted by RFC 165.

§1What This Note Gives

The author offers his interpretation of the exchange between Network Control Programs (NCPs) that is needed to carry out the Initial Connection Protocol of RFC 123. The note corrects an error pointed out by Eric Harslem of RAND, and it obsoletes RFC 127.

It is the fixed version of a recipe for how two computers say hello and set up a conversation.

§2The Command Exchange

The server NCP listens for a connection on socket L. The user NCP sends RTS, U, L, l_A. The server answers with STR, L, U, 32 and the user side with ALL, l_A, 1, 32. The server then sends 32 bits of data in one message on link l_A. Its value is S.

Both sides then send CLS to close the first connection. They go on to open new connections using that value: STR, S+1, U+1, B_s on the server side and STR, U+1, S, B_u on the user side, plus RTS, S, U+1, l_B and RTS, U, S+1, l_C. Each waits for its connection, then allocates messages and bits with ALL, and data flows between the links l_B and l_C.

First the computers use one phone line only to swap a secret number. Then they hang up and call back on new lines picked using that number, and talk for real.

§3Notation

In the table, l_A, l_B and l_C are links, m_B and m_C are message allocations, and b_B and b_C are bit allocations. All other symbols are defined in RFC 123. The command names are RTS, STR, ALL and CLS.

The little letters are just names for the lines and the amounts of data allowed, like labels on boxes.

§4References