Logging In
We assume that within each HOST there is always a process in execution which listens to login requests. We call this process the logger, and it is part of a special virtual net whose user number is zero. The logger is programmed to listen to calls on socket number 0. Upon receiving a call, the logger switches it to a higher (even) numbered sockets, and returns a call to the socket numbered one less than the send socket originally calling. In this fashion, the logger can initiate 127 conversations.
To illustrate, assume a user whose identification is X'010005' (user number 5 at UCLA) signs into UCLA, starts up one of his programs, and this program wants to start a process at SRI. No process except the logger is currently willing to listen to our user, so he executes
Init, <port> = 1, <AEN 1> = 7, <AEN 2> = 7,
<foreign socket> = 0
His process is blocked, and the NCP at UCLA sends
RFC <my socket 1> = X'0100050107',
<my socket 2> = X'0100050107',
<your socket> = X'000000200'
The logger at SRI is notified when this message is received, because it has previously executed
Listen <port> = 9, <AEN 1> = 0.
The logger then executes
Accept <AEN 2> = 88.
In response to the Accept, the SRI NCP sends
RFC <my socket 1> = X'0000000200'
<my socket 2> = X'0000000258'
<your socket> = X'0100050107'
<link> = 37
where the link has been chosen from the set of available links. The SRI logger than executes
Init <port> = 10
<AEN 1> = 89, <AEN 2> = 89,
<foreign socket> = X'0100050106'
which causes the NCP to send
RFC <my socket 1> = X'0000000259'
<my socket 2> = x'0000000259'
<your socket> = X'0100050106'
The process at UCLA is unblocked and notified of the successful Init. Because SRI logger always initiates a connection to the AEN one less than it has just been connected to, the UCLA process then executes
Listen <port> = 11
<AEN 1> = 6
and when unblocked
Accept <AEN 2> = 6
When these transactions are complete, the UCLA process is doubly connected to the logger at SRI. The logger will then interrogate the UCLA process, and if satisfied, create a new process at SRI. This new process will be tagged with user number X'010005', and both connections wil be switched to the new process. In this case, switching the connections to the new process corresponds to "passing the console down" in many time-sharing systems.