RFC 858 INTERNET STANDARD TELNET · OPTIONS · TERMINALS

Telnet SGA: Telnet Suppress Go Ahead Option

A Telnet option that turns off the half-duplex 'over' signal for connections that can talk both ways at once.

On rfc-editor.org ↗
PUBLISHED
May 1983
AUTHORS
J. Postel, J. Reynolds
STREAM
Legacy
OPTION CODE
SUPPRESS-GO-AHEAD = 3
DEFAULT
WON'T / DON'T (go aheads are transmitted)
DOI
10.17487/RFC0858

RFC text

Contents
Original text · RFC Editor View on rfc-editor.org ↗
Network Working Group                                          J. Postel
Request for Comments: 858                                    J. Reynolds
                                                                     ISI
Obsoletes: NIC 15392                                            May 1983

                    TELNET SUPPRESS GO AHEAD OPTION


This RFC specifies a standard for the ARPA Internet community.  Hosts on
the ARPA Internet are expected to adopt and implement this standard.

1.  Command Name and Code

   SUPPRESS-GO-AHEAD     3

2.  Command Meanings

   IAC WILL SUPPRESS-GO-AHEAD

      The sender of this command requests permission to begin
      suppressing transmission of the TELNET GO AHEAD (GA) character
      when transmitting data characters, or the sender of this command
      confirms it will now begin suppressing transmission of GAs with
      transmitted data characters.

   IAC WON'T SUPPRESS-GO-AHEAD

      The sender of this command demands to begin transmitting, or to
      continue transmitting, the GA character when transmitting data
      characters.

   IAC DO SUPPRESS-GO-AHEAD

      The sender of this commannd requests that the sender of data start
      suppressing GA when transmitting data, or the sender of this
      command confirms that the sender of data is expected to suppress
      transmission of GAs.

   IAC DON'T SUPPRESSS-GO-AHEAD

      The sender of this command demands that the receiver of the
      command start or continue transmitting GAs when transmitting data.

3.  Default

   WON'T SUPPRESS-GO-AHEAD

   DON'T SUPPRESS-GO-AHEAD

      Go aheads are transmitted.

4. Motivation for the Option

   While the NVT nominally follows a half duplex protocol complete with
   a GO AHEAD signal, there is no reason why a full duplex connection
   between a full duplex terminal and a host optimized to handle full
   duplex terminals should be burdened with the GO AHEAD signal.
   Therefore, it is desirable to have a TELNET option with which parties
   involved can agree that one or the other or both should suppress
   transmission of GO AHEADS.

5.  Description of the Option

   When the SUPPRESS-GO-AHEAD option is in effect on the connection
   between a sender of data and the receiver of the data, the sender
   need not transmit GAs.

   It seems probable that the parties to the TELNET connection will
   suppress GO AHEAD in both directions of the TELNET connection if GO
   AHEAD is suppressed at all;  but, nonetheless, it must be suppressed
   in both directions independently.

   With the SUPPRESS-GO-AHEAD option in effect, the IAC GA command
   should be treated as a NOP if received, although IAC GA should not
   normally be sent in this mode.

6.  Implementation Considerations

   As the SUPRESS-GO-AHEAD option is sort of the opposite of a line at a
   time mode, the sender of data which is suppressing GO AHEADs should
   attempt to actually transmit characters as soon as possible (i.e.,
   with minimal buffering) consistent with any other agreements which
   are in effect.

   In many TELNET implementations it will be desirable to couple the
   SUPPRESS-GO-AHEAD option to the echo option so that when the echo
   option is in effect, the SUPPRESS-GO-AHEAD option is in effect
   simultaneously:  both of these options will normally have to be in
   effect simultaneously to effect what is commonly understood to be
   character at a time echoing by the remote computer.

AI ELI5

On this page
PROBLEMThe Network Virtual Terminal nominally follows a half-duplex protocol with a GO AHEAD signal, which is an unneeded burden on a full-duplex connection between a full-duplex terminal and a suitable host.
MECHANISMThe SUPPRESS-GO-AHEAD option (code 3) lets each direction agree that the sender need not transmit GO AHEAD (GA) characters.
WHY IT MATTERSWith the option in effect, a received IAC GA is treated as a no-op, and the sender should transmit characters as soon as possible.

§4Why Suppress Go Ahead

The Network Virtual Terminal (NVT) nominally follows a half-duplex protocol complete with a GO AHEAD (GA) signal. There is no reason to burden a full-duplex connection, between a full-duplex terminal and a host built for full-duplex terminals, with that signal.

So the RFC defines a Telnet option, SUPPRESS-GO-AHEAD (code 3), with which the parties agree that one or both should suppress sending GAs.

The old way made each side say 'over' when finished. If both can talk at once, that is a waste, so this lets them skip it.

§2The Four Commands

The option uses the standard negotiation commands:

  • IAC WILL SUPPRESS-GO-AHEAD: the sender requests permission to begin suppressing GAs, or confirms it now will.
  • IAC WON'T SUPPRESS-GO-AHEAD: the sender demands to begin, or continue, transmitting GA with data.
  • IAC DO SUPPRESS-GO-AHEAD: the sender requests that the data sender start suppressing GA, or confirms that it is expected to.
  • IAC DON'T SUPPRESS-GO-AHEAD: the sender demands that the receiver start or continue transmitting GAs.

The default is WON'T and DON'T, so go aheads are transmitted.

Each side can ask 'may we skip saying over?' or insist 'no, keep saying it'. Unless they agree, the 'over' stays.

§5What Changes on the Wire

When the option is in effect between a sender of data and its receiver, the sender need not transmit GAs. The parties will probably suppress GO AHEAD in both directions if they do at all, but it must be suppressed in each direction independently.

With the option in effect, a received IAC GA should be treated as a NOP (no operation), although IAC GA should not normally be sent in this mode.

Once 'over' is switched off, if someone says it anyway, the listener just ignores it.

§6Implementation Advice

Because the option is something like the opposite of a line-at-a-time mode, a sender that is suppressing GO AHEADs should try to transmit characters as soon as possible, with minimal buffering, consistent with any other agreements in effect.

Many Telnet implementations will want to couple SUPPRESS-GO-AHEAD to the ECHO option, so that when echo is in effect, suppress-go-ahead is too. Both normally have to be in effect to get what is commonly understood as character-at-a-time echoing by the remote computer.

If you are not waiting to say 'over', send each letter right away instead of saving them up. Pairing it with the echo setting makes typing feel instant.