Initial Connection Protocol Control Commands
A corrected listing of the control commands that two NCPs exchange to run the Initial Connection Protocol.
Postel, J., "Initial Connection Protocol Control Commands", RFC 145, DOI 10.17487/RFC0145, May 1971, <https://www.rfc-editor.org/info/rfc145>.
@misc{rfc145,
series = {Request for Comments},
number = 145,
howpublished = {RFC 145},
publisher = {RFC Editor},
doi = {10.17487/RFC0145},
url = {https://www.rfc-editor.org/info/rfc145},
author = {J. Postel},
title = {{Initial Connection Protocol Control Commands}},
pagetotal = 2,
year = 1971,
month = may,
} RFC text
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
§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.