rfc-860

Telnet Timing Mark Option

J. Postel, J. Reynolds
date1983-05 streamLegacy statusINTERNET STANDARD pages4 canonicalhttps://www.rfc-editor.org/rfc/rfc860 doi10.17487/RFC0860
This Telnet Option provides a way to check the roundtrip path between two Telnet modules. This RFC specifies a standard for the ARPA Internet community. Hosts on the ARPA Internet are expected to adopt and implement this standard. Obsoletes NIC 16238.

also

Extracted elements (15)

design-rationale §4

The 'appropriate place' for WILL TIMING-MARK insertion is defined as just before the first character the user typed after seeing the error message from the DO TIMING-MARK sender, so the timing mark appears to have been 'printed' on the terminal and answered by the user.

design-rationale §4

The option exists so that a user or process can be assured that previously transmitted data has been completely processed, printed, discarded, or otherwise disposed of. Even if the option request is refused with WON'T, the requester is at least assured that the refuser has received (if not processed) all previous data.

design-rationale §4

The primary motivation is resynchronization after a parse error: a server can send DO TIMING-MARK to flush type-ahead input, discarding buffered commands that arrived before the user saw the error, since input may be buffered in the user's host or elsewhere.

design-rationale §5

Three canonical applications of the timing mark are: (A) measuring round-trip delay; (B) server-side resynchronization after an illegal command by discarding type-ahead up to the point the user saw the error; (C) client-side output flushing to discard unwanted output from a server up to the point where the server saw the mark.

interoperability-note §4

Implementers must ensure that a system which proactively sends WILL TIMING-MARK (before receiving DO TIMING-MARK) remembers this so that the subsequent DO/DON'T TIMING-MARK, when it arrives, is discarded rather than acted upon.

normative-requirement §4 REQUIRED

It is the responsibility of the system that transmits DO TIMING-MARK to discard any unwanted characters; WILL TIMING-MARK only provides help in deciding which characters are 'unwanted'.

normative-requirement §2 REQUIRED

The sender of IAC DO TIMING-MARK REQUESTS that the receiver return a WILL TIMING-MARK in the data stream at the 'appropriate place' as defined in section 4.

normative-requirement §2 REQUIRED

The sender of IAC WILL TIMING-MARK ASSURES the receiver that it is inserted in the data stream at the 'appropriate place' to ensure synchronization with the corresponding DO TIMING-MARK.

protocol-element §3

The default state is WON'T TIMING-MARK / DON'T TIMING-MARK, meaning no explicit attempt is made to synchronize the activities at the two ends of the Telnet connection.

protocol-element §1

The TIMING-MARK Telnet option is assigned option code 6. It provides a mechanism for one end of a Telnet connection to synchronize with the other by verifying that previously transmitted data has been processed.

registry

protocol-element §5

When A receives WILL TIMING-MARK, it knows all information sent to B before the timing mark has been delivered, and all information sent from B to A before the turnaround of the timing mark has been delivered.

state-machine §5

Process A sends DO TIMING-MARK to B. B may refuse with WON'T TIMING-MARK, or permit the mark to flow through its outgoing buffer (BUF2); instead of delivering it to the terminal, B enters the mark into its incoming buffer (BUF1). When the mark propagates through BUF1, B returns WILL TIMING-MARK to A over the Telnet connection.

wire-format §2

IAC DO TIMING-MARK (3-byte sequence: 0xFF 0xFD 0x06) is sent to request that the receiver return a WILL TIMING-MARK at the appropriate place in the data stream.

wire-format §2

IAC WILL TIMING-MARK (3-byte sequence: 0xFF 0xFB 0x06) is the acknowledgment, assuring the receiver that it is inserted in the data stream at the appropriate place to ensure synchronization.

wire-format §2

IAC WON'T TIMING-MARK (3-byte sequence: 0xFF 0xFC 0x06) signals refusal to guarantee insertion at the appropriate place. IAC DON'T TIMING-MARK (0xFF 0xFE 0x06) notifies the receiver that a previously transmitted WILL TIMING-MARK has been ignored.