summaryrefslogtreecommitdiff
path: root/doc/rfc/rfc860.txt
diff options
context:
space:
mode:
authorThomas Voss <mail@thomasvoss.com> 2024-11-27 20:54:24 +0100
committerThomas Voss <mail@thomasvoss.com> 2024-11-27 20:54:24 +0100
commit4bfd864f10b68b71482b35c818559068ef8d5797 (patch)
treee3989f47a7994642eb325063d46e8f08ffa681dc /doc/rfc/rfc860.txt
parentea76e11061bda059ae9f9ad130a9895cc85607db (diff)
doc: Add RFC documents
Diffstat (limited to 'doc/rfc/rfc860.txt')
-rw-r--r--doc/rfc/rfc860.txt227
1 files changed, 227 insertions, 0 deletions
diff --git a/doc/rfc/rfc860.txt b/doc/rfc/rfc860.txt
new file mode 100644
index 0000000..2a2f11a
--- /dev/null
+++ b/doc/rfc/rfc860.txt
@@ -0,0 +1,227 @@
+
+Network Working Group J. Postel
+Request for Comments: 860 J. Reynolds
+ ISI
+Obsoletes: NIC 16238 May 1983
+
+ TELNET TIMING MARK OPTION
+
+
+This RFC specifies a standard for the ARPA community. Hosts on the ARPA
+Internet are expected to adopt and implement this standard.
+
+1. Command Name and Code
+
+ TIMING-MARK 6
+
+2. Command Meanings
+
+ IAC DO TIMING-MARK
+
+ The sender of this command REQUESTS that the receiver of this
+ command return a WILL TIMING-MARK in the data stream at the
+ "appropriate place" as defined in section 4 below.
+
+ IAC WILL TIMING-MARK
+
+ The sender of this command ASSURES the receiver of this command
+ that it is inserted in the data stream at the "appropriate place"
+ to insure synchronization with a DO TIMING-MARK transmitted by the
+ receiver of this command.
+
+ IAC WON'T TIMING-MARK
+
+ The sender of this command REFUSES to insure that this command is
+ inserted in the data stream at the "appropriate place" to insure
+ synchronization.
+
+ IAC DON'T TIMING-MARK
+
+ The sender of this command notifies the receiver of this command
+ that a WILL TIMING-MARK (previously transmitted by the receiver of
+ this command) has been IGNORED.
+
+3. Default
+
+ WON'T TIMING-MARK, DON'T TIMING-MARK
+
+ i.e., No explicit attempt is made to synchronize the activities at
+ the two ends of the TELNET connection.
+
+4. Motivation for the Option
+
+
+
+Postel & Reynolds [Page 1]
+
+
+
+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 [Page 2]
+
+
+
+RFC 860 May 1983
+
+
+ Suppose that Process A of Figure 1 wishes to synchronize with B. The
+ DO TIMING-MARK is sent from A to B. B can refuse by replying WON'T
+ TIMING-MARK, or agree by permitting the timing mark to flow through
+ his "outgoing" buffer, BUF2. Then, instead of delivering it to the
+ terminal, B will enter the mark into his "incoming" buffer BUF1, to
+ flow through toward A. When the mark has propagated through B's
+ incoming buffer, B returns the WILL TIMING-MARK over the TELNET
+ connection to A.
+
+ PROCESS A TELNETconnection PROCESS B Terminal
+ +-----------+ +---------------+ Timing+-------+
+ | |WILL TIMING MARK| BUF 1 | Mark | |
+ | |<---------------|--|-|-|-|-|-|--|<------| |
+ | | | |-|-|-|-|-| | ^ | |
+ | | | BUF 2 | ^ | |
+ | |--------------->|--|-|-|-|-|-|--|------>| |
+ | | DO TIMING MARK | |-|-|-|-|-| | | |
+ +-----------+ +---------------+ +-------+
+ (NVT process).ME;
+ Figure 1
+
+ When A receives the WILL TIMING-MARK, he knows that all the
+ information he sent to B before sending the timing mark been
+ delivered, and all the information sent from B to A before turnaround
+ of the timing mark has been delivered.
+
+ Three typical applications are:
+
+ A. Measure round-trip delay between a process and a terminal or
+ another process.
+
+ B. Resynchronizing an interaction as described in section 4 above.
+ A is a process interpreting commands forwarded from a terminal
+ by B. When A sees an illegal command it:
+
+ i. Sends <carriage return>, <line feed>, <question mark>.
+
+ ii. Sends DO TIMING-MARK.
+
+ iii. Sends an error message.
+
+ iv. Starts reading input and throwing it away until it
+ receives a WILL TIMING-MARK.
+
+ v. Resumes interpretation of input.
+
+
+
+
+
+Postel & Reynolds [Page 3]
+
+
+
+RFC 860 May 1983
+
+
+ This achieves the effect of flushing all "type ahead" after the
+ erroneous command, up to the point when the user actually saw
+ the question mark.
+
+ C. The dual of B above. The terminal user wants to throw away
+ unwanted output from A.
+
+ i. B sends DO TIMING-MARK, followed by some new command.
+
+ ii. B starts reading output from A and throwing it away until
+ it receives WILL TIMING-MARK.
+
+ iii. B resumes forwarding A's output to the terminal.
+
+ This achieves the effect of flushing all output from A, up to
+ the point where A saw the timing mark, but not output generated
+ in response to the following command.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Postel & Reynolds [Page 4]
+