RFC 727 PROPOSED STANDARD TELNET · LOGOUT

Telnet logout option

A Telnet option that lets one side forcibly log out the other side's user process instead of leaving it detached.

On rfc-editor.org ↗
PUBLISHED
April 1977
AUTHORS
M.R. Crispin
STREAM
Legacy
OPTION CODE
LOGOUT 18
DEFAULT
WON'T LOGOUT / DON'T LOGOUT
DOI
10.17487/RFC0727

RFC text

Original text · RFC Editor View on rfc-editor.org ↗
NWG/RFC# 727                                  MRC 26-APR-77 18:24  40025
Telnet Logout Option



Network Working Group                                       Mark Crispin
Request for Comments 727                                          MIT-AI
NIC 40025                                                  27 April 1977

                          TELNET Logout Option

1.  Command name and code.

   LOGOUT               18

2.  Command meanings.

   IAC WILL LOGOUT

      The sender of this command REQUESTS permission to, or confirms
      that it will, forcibly log off the user process at its end.

   IAC WON'T LOGOUT

      The sender of this command REFUSES to forcibly log off the user
      process at its end.

   IAC DO LOGOUT

      The sender of this command REQUESTS that the receiver forcibly log
      off the user process at the receiver's end, or confirms that the
      receiver has its permission to do so.

   IAC DON'T LOGOUT

      The sender of this command DEMANDS that the receiver not forcibly
      log off the user process at the receiver's end.

3.  Default.

   WON'T LOGOUT

   DON'T LOGOUT

   i.e., no forcible logging off of the server's user process.

4.  Motivation for the option.

   Often, a runaway user process could be hung in such a state that it
   cannot be interrupted by normal means.  Conversely, the system itself
   could be bottlenecked so that response delays are intolerable.  A
   user (human or otherwise) eventually will time out out of frustration

NWG/RFC# 727                                  MRC 26-APR-77 18:24  40025
Telnet Logout Option



   and take the drastic means of closing the connection to free itself
   from the hung process.  In some situations, even the simple operation
   of logging out can take a long time.

   Some systems treat a close to mean that it should log out its user
   process under it.  However, many hosts merely "detach" the process so
   that an accidental close due to a user or temporary hardware error
   will not cause all work done on that job to be lost; when the
   connection is re-established, the user may "attach" back to its
   process.  While this protection is often valuable, if the user is
   giving up completely on the host, it can cause this hung job to
   continue to load the system.

   This option allows a process to instruct the server that the user
   process at the server's end should be forcibly logged out instead of
   detached.  A secondary usage of this option might be for a server to
   warn of impending auto-logout of its user process due to inactivity.

5.  Description of the option.

   When a user decides that it no longer wants its process on the server
   host and decides that it does not want to wait until the host's
   normal log out protocol has been gone through, it sends IAC DO
   LOGOUT.  The receiver of the command may respond with IAC WILL
   LOGOUT, in which case it will then forcibly log off the user process
   at its end.  If it responds with IAC WON'T LOGOUT, then it indicates
   that it has not logged off the user process at its end, and if the
   connection is broken, the process very possibly will be detached.

   A truly impatient user that feels that it must break away from the
   server immediately could even send IAC DO LOGOUT and then close. At
   the worst, the server would only ignore the request and detach the
   user process.  A server that implements the LOGOUT option should know
   to log out the user process despite the sudden close and even an
   inability to confirm the LOGOUT request!

6.  A sample implementation of the option.

   The server implements the LOGOUT option both for accepting LOGOUT
   requests and for auto-logout warning.

   Case 1:

      The user connects to the server, and starts interacting with the
      server.  For some reason, the user wishes to terminate interaction
      with the server, and is reluctant to go through the normal log out
      procedure, or perhaps the user is unable to go through the normal

NWG/RFC# 727                                  MRC 26-APR-77 18:24  40025
Telnet Logout Option



      log out procedure.  It does not want the process at the server any
      more, so it sends IAC DO LOGOUT.  The server verifies the request
      with IAC WILL LOGOUT, and then forcibly logs off the user process
      (perhaps by using a system call that causes another process to be
      logged out).  It does not have to close the connection unless the
      user closes or it wants to close.  Neither does it wait until the
      user has received its confirmation--it starts the log out
      immediately so if the user has in the mean time closed the
      connection without waiting for confirmation, its logout request
      still is performed.

   Case 2:

      The user connects to the server, and after logging in, is idle for
      a while, long enough to approach the server's autologout time.
      The server shortly before the autologout sends IAC WILL LOGOUT;
      the user sees this and sends IAC DON'T LOGOUT, and continues work
      on the host.  Nothing prevents the server from logging out the
      user process if inactivity continues; this can be used to prevent
      a malicious user from locking up a process on the server host by
      the simple expedient of sending IAC DON'T LOGOUT every time it
      sees IAC WILL LOGOUT but doing nothing else.

AI ELI5

On this page
PROBLEMClosing a connection to a hung host often only detaches the user process, which can keep loading the system, and a normal logout can take a long time.
MECHANISMThe LOGOUT option (code 18) lets one side send IAC DO LOGOUT, and the receiver agrees with IAC WILL LOGOUT and forcibly logs off the user process at its end.
WHY IT MATTERSA user can abandon a hung session cleanly, and a server can use the same option to warn of an impending auto-logout.

§1Why a Forced Logout

A runaway user process can hang so it cannot be interrupted, or the system can be so bottlenecked that delays are intolerable. The user eventually closes the connection, but many hosts merely detach the process so an accidental close does not lose the job, and the user can attach again later. If the user is giving up completely, that hung job continues to load the system.

The option lets a process instruct the server that the user process should be forcibly logged out instead of detached. A secondary use is for a server to warn of impending auto-logout due to inactivity.

Closing the door does not always turn off the lights. This lets you say 'turn everything off for real'.

§2The Four Commands

The option is named LOGOUT and has code 18. IAC WILL LOGOUT requests permission to, or confirms it will, forcibly log off the user process at the sender's end. IAC WON'T LOGOUT refuses to. IAC DO LOGOUT requests that the receiver do so, or confirms permission. IAC DON'T LOGOUT demands that the receiver not forcibly log off.

The default is WON'T LOGOUT and DON'T LOGOUT: no forcible logging off of the server's user process.

There are four little phrases: 'I will log out', 'I won't', 'please log out', and 'please don't'.

§3How It Works

When a user wants to leave and not wait for the host's normal logout, it sends IAC DO LOGOUT. The receiver may answer IAC WILL LOGOUT and then forcibly log off the user process. If it answers IAC WON'T LOGOUT, the process very possibly will be detached if the connection breaks.

An impatient user could send IAC DO LOGOUT and then close. At worst the server ignores it and detaches. A server implementing the option should log out despite the sudden close, and it starts the logout immediately without waiting for the user to receive the confirmation.

You say 'please log me out' and the computer starts right away, even if you have already walked out of the room.

§4Auto-Logout Warning

In the RFC's second case, a user is idle long enough to approach the server's autologout time. Shortly before it, the server sends IAC WILL LOGOUT. The user sees this and sends IAC DON'T LOGOUT and continues working.

Nothing stops the server from logging out the process if inactivity continues. This prevents a malicious user from locking up a process by answering every IAC WILL LOGOUT with IAC DON'T LOGOUT and doing nothing else.

The computer says 'you have been quiet, I may log you out'. If you wave back, you get more time, but not forever.