Network Working Group
Request For Comments # 386
NIC # 11358
Categories:
Updates:
Obsoletes:
Bernard P. Cosell
David C. Walden
Bolt Beranek and Newman Inc.
August 16, 1972

LETTER TO TIP USERS -- 2

     This is the second letter to TIP users.  The first was RFC #365.
There will be more letters to TIP users as they seem to us to be a
good way to keep you informed about what's going on.  We suggest you
keep these letters with your TIP User's Guide (TUG) as we will use the
letters to provide documentation of TIP system changes which are made
before we can get TUG revisions printed and distributed. (It is almost
inevitable that the TUG revisions follow actual system changes.
Further- more, these letters will allow us more discussion of new
commands than in TUG.)

Some of the changes we will be making to the TIP have been

suggested by TIP users. We won't bother with acknowledg- ments.

     The @PROTOCOL TO LOGIN and @PROTOCOL TO CLOSE BOTH commands will
be removed very soon. We presume no one uses these commands any more
since they have been replaced by @LOGIN and @CLOSE.

     As we warned in TIP Letter 1, the @LOGIN command will be given a
parameter soon, the Host number up to now given with the @HOST
command.  At the same time, @HOST will be changed so it does a
simultaneous @RECEIVE FROM HOST and @SEND TO HOST.  Presently, @HOST
is the same as @SEND TO HOST.

     Several changes will be made to the @TRANSMIT commands very soon.
First @TRANSMIT ON NO CHARACTERS and @TRANSMIT ON EVERY CHARACTER will
be removed. Their functions will be covered by the other @TRANSMIT
commands. @TRANSMIT NOW will continue to function as at present; it
will cause the one message presently being accumulated to be sent as
soon as possible.  @TRANSMIT ON LINEFEED and @TRANSMIT ON MESSAGE-END
will continue to cause the message being accumulated to be sent on
linefeed and CONTROL-S. However, they will additionally cause the
message being accumulated to be sent when the character buffer is
almost full. Thus, it will no longer be necessary to give a @TRANSMIT
EVERY <big number> with @TRANSMIT ON LINEFEED and @TRANSMIT ON
MESSAGE-END.  @TRANSMIT EVERY # will continue to cause the message
being accumulated to be sent as near as possible to every #th
character.  However, values of # which are bigger than the size of the

input buffer will cause transmission when the buffer is almost full; and a value of 0 for # will reset the terminal to its initial setting -- TRANSMIT-ON-LINEFEED mode off, TRANSMIT ON MESSAGE- END mode off, and transmitting every character. Thus, TRANSMIT EVERY 0 has the effect of the removed @TRANSMIT ON NO CHARACTER command, and @TRANSMIT EVERY 1 has the effect of the removed @TRANSMIT ON EVERY CHARACTER command.

     There are two ways outside of letters and the telephone to
communicate your suggestions and complaints to us: log into BBN-TENEX
and SNDMSG to WALDEN or use the NIC Journal system to send a message
to DCW3. Dave likes letters best, incidentally.

     We are going to remove the "NEWS" herald from the TIP's HELLO
message. The problem is that we don't know when everybody has read the
latest news so that we can turn off the herald.  Therefore, we can't
turn it off. Therefore, it is useless.  Check the NEWS every time you
use the TIP. If once the news begins printing you discover you have
already seen it, you can stop it by typing @CLOSE _LF_ (on a 2741 hit
"attention" first).

     A new TIP message will have been added by the time you get this
letter, the message TIP GOING DOWN. This message will be printed on
every TIP terminal shortly before the TIP is taken down for preventive
maintenance, new software releases, etc. (see RFC #381 for further
discussion of this topic). When this message is printed, all TIP users
should cleanly stop what they are doing with a Host. Eventually, this
message will include information on how long until the TIP will go
down, for how long it will be down, and why.

     While we are on the subject of TIP messages, let us mention that
we will be adding a number of new messages which we believe will
remove some of the present confusion about what the TIP is doing.
Unfortunately, we don't have the space to store the message text
strings, so, we will use numbers for the new messages. The format of
these messages will probably be something like M46 for message 46.
Perhaps when the TIPs get more core we can replace the number-messages
by text-messages.

     We are thinking of changing all the TIP LOGIN commands to OPEN
commands which would be more opposite to the CLOSE commands and not so
liable to confusion with Host LOGIN.

     On page 12 of the TUG is a description of how Hosts can send
commands to a TIP terminal. Be warned, if you decide to use this
facility, that we are changing the TIP command language slowly and we
will not be constrained in these changes by the fact that some Hosts
are sending TIP commands.  Therefore, if a Host is going to send a

command to a TIP it ought to implement this in a manner that can be

changed easily.

     Some TIP users have been seeing the following problem.  They are
communicating with a Host when suddenly they get the message DEAD. If
they try to LOGIN to the Host again they do not get the DEAD message,
but the Host refuses to allow the LOGIN by either doing nothing,
closing, or refusing. The problem was that occasionally the network
partitioned briefly; for instance, one of the two cross-country lines
was down and the other got flaky for a few seconds. If, during a
period when the network is partitioned, a TIP user sends a message to
a Host which cannot be reached, the TIP types DEAD and closes the
connection to the Host. The Host, on the other hand, may not have been
trying to send to the TIP when the network partitioned; in that case
it might not have noticed that the network partitioned and therefore
still thinks it has an open connection to the TIP.  When the TIP then
tries to re-LOGIN to the Host, the Host refuses because it already has
an open connection with that particular TIP device.

     Now that we have three independent cross-country paths we do not
expect this problem to occur often, but if it does we see no
short-term solution. We can't just let a CLOSE reset the connection
since the user's immediately preceeding LOGIN destroyed the Host
supplied socket numbers. One can get out of this state by executing
the Host/Host protocol command from the TIP which resets _all_ TIP
users at the given TIP talking to the given Host; but this is a little
gross. What is maybe needed is a Host/Host protocol command to reset
the Host's connections with a particular user (TIP) socket; we will
try to understand the ramifications of such a command and perhaps
undertake promotion of a Host/Host protocol change. In the meantime,
frequently when the above problem happens some other TIP terminal can
still LOGIN to the Host and then halt the hung terminal's job from the
Host side.  If it is not possible to get through on another
connection, a telephone call to the Host, asking them to log the job
out, may be necessary. Or, if there is really no other user talking to
the particular Host, the reset command can be executed -- this command
is not documented but we will tell a responsible person at each TIP
site how to execute the command.

     There is a problem related to the above problem which some TIP
users have seen. Occasionally, an IMP crashes somewhere in the network
and takes a packet of a message along with it.  Eventually, the source
of the message gets an incomplete transmission message from the
network. When the TIP gets this message, it closes the connection and
calls the destination dead. This is what most other Hosts do also, we
understand. A more reasonable thing to do might be to retransmit the
message or to tell the user and then let him continue; we would like
to do one of these. But before retransmission or letting the user

continue, the TIP and Host's allocate counters must be resynchronized. However, there is no Host/Host protocol way to synchronize simple enough for the TIP to use. What may be needed is a simple Host/Host protocol reset allocate command. We will try to understand this issue and, again, perhaps undertake promotion of a Host/Host protocol change.

     The above two problems explain part of the "lost allocates" but
not all. We have now instrumented the TIP program in a manner which we
hope will help us find the rest of the lost allocate problem soon.

     The TIP's logger (opener?) has been causing users some problems.
Upon examination, the problems were seen to originate from basic
design assumptions within the logger which we are working on changing.
In the short term, however, we think that a discussion of what the
logger is doing and how it works will alleviate some of the grief.

     For the user, opening proceeds in three phases. In the first, the
user is queued up waiting to "get" the TIP's logger.  In the second,
the user has gotten the TIP's logger and is beginning the login
sequence. In the third, the user has completed the login sequence and
is waiting for the Host to open up the actual data connections.  Many
of the problems stem from the fact that _only_one_user_ may be
proceeding through phase 2 at a time.  Hence the need for the queue of
phase 1.  Any single user may tie up phase 2 for at most about 1
minute.  This is the canonical "timeout" in the logger.  Notice that
this does not include the times in either the first or third phases.
Thus, the actual delay before you get a "timeout" after you type @L
can be 1 minute, 2 minutes, 3 minutes...depending on how many other
people are having difficulty logging in at the same time.  Abort Login
(@A L) does three different things depending on which phase of logging
in the user is in.  In phase 2 it resets the timer to be close to
overflowing so that it is responded to with a "timeout" shortly after
the command is given.  In phase 3 it does nothing at all, and in phase
1 it merely removes the user (silently) from the logging queue.

     We will, medium term, have the TIP type out something like "YOUR
LOGGER" when you get off the queue and the logger begins trying to
open your connections.  This will at least alleviate user uncertainty
as to whether he is in phase 1 or phase 2.  Long term, we will
probably make the logging process reentrant so that users will not
interact with one another quite so destructively.  In the short term,
here is a small "cookbook" on how to undo a login that seems to not be
working.

     When you have waited as long as you would like to for the login
to take place, you may type "@A L".  If the TIP responds with
"TIMEOUT" in a few second and has not typed T OPEN or R OPEN, then you

are aborted and may attempt logging in again. If it types "TIMEOUT" but has typed out T OPEN or R OPEN then you should type @C and wait for that to be responded to (You _must_ wait.) If you get no response at all to @A L, and the TIP has typed that one or the other connection is open, you should type @C and wait, as above. Finally, if the TIP makes no response and has not opened any connection, than you are free to proceed.

     From now on the name of the DEVICE CODE EXECUPORT command will be
DEVICE CODE EXTRA-PADDING, since there are a number of other terminals
which require this feature.  The latest to be added to the list is the
DATAPOINT 3300.

       [ This RFC was put into machine readable form for entry ]
       [ into the online RFC archives by BBN Corp. under the   ]
       [ direction of Alex McKenzie.                      1/97 ]