Skip to main content

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.