RFC 860 (rfc860) - Page 2 of 4


Telnet Timing Mark Option



Alternative Format: Original Text Document





RFC 860                                                         May 1983


   It is sometimes useful for a user or process at one end of a TELNET
   connection to be sure that previously transmitted data has been
   completely processed, printed, discarded, or otherwise disposed of.
   This option provides a mechanism for doing this.  In addition, even
   if the option request (DO TIMING-MARK) is refused (by WON'T
   TIMING-MARK) the requester is at least assured that the refuser has
   received (if not processed) all previous data.

   As an example of a particular application, imagine a TELNET
   connection between a physically full duplex terminal and a "full
   duplex" server system which permits the user to "type ahead" while
   the server is processing previous user input.  Suppose that both
   sides have agreed to Suppress Go Ahead and that the server has agreed
   to provide echoes.  The server now discovers a command which it
   cannot parse, perhaps because of a user typing error.  It would like
   to throw away all of the user's "type-ahead" (since failure of the
   parsing of one command is likely to lead to incorrect results if
   subsequent commands are executed), send the user an error message,
   and resume interpretation of commands which the user typed after
   seeing the error message.  If the user were local, the system would
   be able to discard the buffered input; but input may be buffered in
   the user's host or elsewhere.  Therefore, the server might send a DO
   TIMING-MARK and hope to receive a WILL TIMING-MARK from the user at
   the "appropriate place" in the data stream.

   The "appropriate place", therefore (in absence of other information)
   is clearly just before the first character which the user typed after
   seeing the error message.  That is, it should appear that the timing
   mark was "printed" on the user's terminal and that, in response, the
   user typed an answering timing mark.

   Next, suppose that the user in the example above realized that he had
   misspelled a command, realized that the server would send a DO
   TIMING-MARK, and wanted to start "typing ahead" again without waiting
   for this to occur.  He might then instruct his own system to send a
   WILL TIMING-MARK to the server and then begin "typing ahead" again.
   (Implementers should remember that the user's own system must
   remember that it sent the WILL TIMING-MARK so as to discard the
   DO/DON'T TIMING-MARK when it eventually arrives.)  Thus, in this case
   the "appropriate place" for the insertion of the WILL TIMING-MARK is
   the place defined by the user.

   It should be noted, in both of the examples above, that it is the
   responsibility of the system which transmits the DO TIMING-MARK to
   discard any unwanted characters; the WILL TIMING-MARK only provides
   help in deciding which characters are "unwanted".

5.  Description of the Option


Postel & Reynolds