Echo (computing)
In telecommunications, echo is the local display of data, either initially as it is locally sourced and sent, or finally as a copy of it is received back from a remote destination. Local echo is where the local sending equipment displays the outgoing sent data. Remote echo is where the display is a return copy of data as received remotely.[1][2] Both are used together in a computed form of error detection to ensure that data received at the remote destination of a telecommunication are the same as data sent from the local source (a/k/a echoplex, echo check, or loop check). When (two) modems communicate in echoplex mode the remote modem echoes whatever it receives from the local modem.[3][4][5][6][7]
Terminological confusion: echo is not duplex
A displayed 'echo' is independent of 'duplex' (or any) telecommunications transmission protocol. Probably from technical ignorance, "half-duplex" and "full-duplex" are used as slang for 'local echo' (a/k/a echo on) and 'remote echo', respectively, as typically they accompany one another. Strictly incorrect, this causes confusion (see duplex). Typically 'local echo' accompanies half-duplex transmission, which effectively doubles channel bandwidth by not repeating (echoing) data back from its destination (remote), as is reserved-for with 'full duplex' (which has only half of the bandwidth of 'half duplex'). Half-duplex can be set to 'echo off' for no echo at all.[8][6]
One example of 'local echo' used together with 'remote echo' (requires full-duplex) is for error checking pairs of data characters or chunks (echoplex) ensuring their duplicity (or else its just an extraneous annoyance).[9][10]
Similarly, for another example, in the case of the TELNET communications protocol a local echo protocol operates on top of a full-duplex underlying protocol. The TCP connection over which the TELNET protocol is layered provides a full-duplex connection, with no echo, across which data may be sent in either direction simultaneously.[11] Whereas the Network Virtual Terminal that the TELNET protocol itself incorporates is a half-duplex device with (by default) local echo.[12][13]
The devices that echo locally
Terminals are one of the things that may perform echoing for a connection. Others include modems, some form of intervening communications processor, or even the host system itself.[8] For several common computer operating systems, it is the host system itself that performs the echoing, if appropriate (which it isn't for, say, entry of a user password when a terminal first connects and a user is prompted to log in). On OpenVMS, for example, echoing is performed as necessary by the host system. Similarly, on Unix-like systems, local echo is performed by the operating system kernel's terminal device driver, according to the state of a device control flag, maintained in software and alterable by applications programs via an ioctl()
system call.[14][15] The actual terminals and modems connected to such systems should have their local echo facilities switched off (so that they operate in no echo mode), lest passwords be locally echoed at password prompts, and all other input appear echoed twice. This is as true for terminal emulator programs, such as C-Kermit, running on a computer as it is for real terminals.[14][16]
Controlling local echo
Terminal emulators
Most terminal emulator programs have the ability to perform echo locally (which sometimes they misname "half-duplex"):[17]
- In the C-Kermit terminal emulator program, local echo is controlled by the
SET TERMINAL ECHO
command, which can be eitherSET TERMINAL ECHO LOCAL
(which enables local echoing within the terminal emulator program itself) orSET TERMINAL ECHO REMOTE
(where disables local echoing, leaving that up to another device in the communications channel—be that the modem or the remote host system—to perform as appropriate).[16] - In ProComm it is the Alt+E combination, which is a hot key that may be used at any time to toggle local echo on and off.[18]
- In the Terminal program that came with Microsoft Windows 3.1, local echo is controlled by a checkbox in the "Terminal Preferences" dialogue box accessed from the menu of the terminal program's window.[19][20][21]
Modems
The Hayes AT commands that control local echo (in command mode) are E0 for off and E1 for on. For local echo (in data mode), the commands are F1 and F0 respectively (Note the reversal of the suffixed digits). Unlike the "E" commands, the "F" commands are not part of the EIA/TIA-602 standard.[17][22]
Host systems
Some host systems perform local echo themselves, in their device drivers and so forth.
- In Unix and POSIX-compatible systems, local echo is a flag in the POSIX terminal interface, settable programmatically with the
function.[23][fn 1] The echoing is performed by the operating system's terminal device (in some way that is not specified by the POSIX standard). The standard utility program that alters this flag programmatically is thetcsetattr()
command, using which the flag may be altered from shell scripts or an interactive shell.[25] The command to turn local echo (by the host system) on isstty
and the command to turn it off isstty echo
.[26][fn 2]stty -echo
- On OpenVMS systems, the operating system's terminal driver normally performs echoing.[29] The terminal characteristic that controls whether it does this is the
ECHO
characteristic, settable with the DCL commandSET TERMINAL /ECHO
and unsettable withSET TERMINAL /NOECHO
.[30] [fn 3]
Footnotes
- In the older and superseded Seventh Edition Unix terminal interface, BSD version 4 terminal interface, and System III/System V terminal interface, it was settable via the
system call.[24]ioctl()
- This may not seem to work if used interactively. It does work. It's just immediately overridden. Some shells, such as tcsh, reset the terminal modes, including turning local echo off, when they are about to prompt for input. They actually place the terminal into non-canonical mode with local echo off, and handle echoing themselves, restoring the prior terminal attributes when the input line has been read. Any shell or other program that uses GNU readline also exhibits this interaction with
.[27][28]stty -echo
- Note that this is not the same as the
LOCAL_ECHO
terminal characteristic, settable with the DCL commandSET TERMINAL /LOCAL_ECHO
and unsettable withSET TERMINAL /NOLOCAL_ECHO
. That characteristic controls whether the terminal itself performs local echo.[14][30]
References
What supports what
- Graf 1999, p. 230.
- Anmol 2000, p. 80.
- Rosch 1999, p. 1161.
- Weik 2000, "echo check" p. 478.
- Weik 2000, "echoplex" p.479.
- Jordan & Churchill 1987, p. 24.
- Hill Associates 2002, p. 341.
- Daintith 2004, p. 171.
- Bagad & Dhotre 2009, p. 9–4.
- Black 1987, p. 203.
- Socolofsky & Kale 1991, p. 24.
- IBM 1995, p. 2.
- Postel & Reynolds 1983, p. 2.
- Duffy 2002, p. 43.
- Leffler et al. 1989, p. 38,262,272.
- Da Cruz & Gianone 1997, p. 158–159.
- Bigelow 2000, p. 308.
- Woggon 1995, p. 101.
- Cowart 1992, p. 283.
- Sheldon 1991, p. 678.
- Norton & Kent 1993, p. 347.
- Durda 2004.
- Robbins & Robbins 2003, p. 204–205.
- Leffler et al. 1989, p. 262.
- Robbins & Robbins 2003, p. 203.
- Sobell & Seebach 2006, p. 855.
- Sobell & Seebach 2006, p. 856.
- Ramey 2009.
- Miller 1992, p. 30.
- Leisner & Cook 1990, p. 136,158.
Sources used
- Bagad, V.S.; Dhotre, I.A. (2009). Data Communication & Networking. Technical Publications. ISBN 978-81-8431-759-6.CS1 maint: ref=harv (link)
- Black, Uyless D. (1987). Data communications and distributed networks (2nd ed.). Prentice-Hall. ISBN 978-0-8359-1341-6.CS1 maint: ref=harv (link)
- Bigelow, Stephen J. (2000). PC Technician's Troubleshooting Pocket Reference (2nd ed.). McGraw-Hill Professional. ISBN 978-0-07-212945-8.CS1 maint: ref=harv (link)
- Cowart, Robert (1992). Mastering Windows 3.1. Sybex. ISBN 978-0-89588-842-6.CS1 maint: ref=harv (link)
- Daintith, John (2004). "echo". Oxford dictionary of computing (5th ed.). Oxford University Press. ISBN 978-0-19-860877-6.CS1 maint: ref=harv (link)
- Da Cruz, Frank; Gianone, Christine M. (1997). Using C-Kermit: communication software (2nd ed.). Digital Press. ISBN 978-1-55558-164-0.CS1 maint: ref=harv (link)
- Duffy, Michael D. (2002). Getting started with OpenVMS: a guide for new users. Digital Press. ISBN 978-1-55558-279-1.CS1 maint: ref=harv (link)
- Durda, Frank (2004). "Section 3: Unprefixed AT Commands". The AT Command Set Reference.CS1 maint: ref=harv (link)
- Graf, Rudolf F. (1999). "echo". Modern dictionary of electronics (6th ed.). Newnes. ISBN 978-0-7506-9866-5.CS1 maint: ref=harv (link)
- Hill Associates (2002). Telecommunications: a beginner's guide. Network professional's library. McGraw-Hill Professional. ISBN 978-0-07-219356-5.CS1 maint: ref=harv (link)
- "Telnet and the Telnet Protocol" (PDF). IBM. June 1995. Archived from the original (PDF) on 2011-07-07. Retrieved 2011-01-23.
- Jordan, Larry E.; Churchill, Bruce (1987). Communications and networking for the IBM PC & compatibles (2nd ed.). Brady. ISBN 978-0-89303-634-8.CS1 maint: ref=harv (link)
- Leffler, Samuel J.; McKusick, Marshall Kirk; Karels, Michael J.; Quarterman, John S. (1989). "Terminal Handling". The Design and implementation of the 4.3BSD UNIX operating system. Addison-Wesley series in computer science. Addison-Wesley. ISBN 978-0-201-06196-3.CS1 maint: ref=harv (link)
- Leisner, K. M.; Cook, David B. (1990). VAX DCL programmer's reference VMS 5. Van Nostrand Reinhold. ISBN 978-0-442-31834-5.CS1 maint: ref=harv (link)
- Miller, David Donald (1992). VAX/VMS: operating system concepts. VAX-VMS Series. Digital Press. ISBN 978-1-55558-065-0.CS1 maint: ref=harv (link)
- Norton, Peter; Kent, Peter (1993). Peter Norton's user's guide to Windows 3.1. Bantam Books. ISBN 978-0-553-37148-2.CS1 maint: ref=harv (link)
- Ramey, Chet, ed. (2009). "2.5 Readline Signal Handling". GNU Readline Library.CS1 maint: ref=harv (link)
- Postel, Jon; Reynolds, J. (May 1983). "Motivation for the Option". RFC 0857: Telnet Echo Option.CS1 maint: ref=harv (link)
- Robbins, Kay A.; Robbins, Steven (2003). UNIX systems programming: communication, concurrency, and threads (2nd ed.). Prentice Hall PTR. ISBN 978-0-13-042411-2.CS1 maint: ref=harv (link)
- Rosch, Winn L. (1999). Winn L. Rosch hardware bible (5th ed.). Que. ISBN 978-0-7897-1743-6.CS1 maint: ref=harv (link)
- Sheldon, Thomas (1991). Windows 3: the complete reference. Osborne McGraw-Hill. ISBN 978-0-07-881679-6.CS1 maint: ref=harv (link)
- Sobell, Mark G.; Seebach, Peter (2006). A practical guide to Unix for Mac OS X users. Prentice Hall PTR. ISBN 978-0-13-186333-0.CS1 maint: ref=harv (link)
- Socolofsky, T.; Kale, C. (January 1991). "Transmission Control Protocol". RFC 1180: A TCP/IP Tutorial.CS1 maint: ref=harv (link)
- Weik, Martin H. (2000). Computer Science and Communications Dictionary. 1. Springer. ISBN 978-0-7923-8425-0. Missing or empty
|title=
(help)CS1 maint: ref=harv (link) - Woggon, Michele (1995). Telecommunications using ProComm & ProComm Plus made easy. Prentice Hall. ISBN 978-0-13-148412-2.CS1 maint: ref=harv (link)
- "local echo". Advanced learner's dictionary of journalism. Advanced Learner's Dictionary Series. Anmol Publications PVT LTD. 2000. ISBN 978-81-261-0469-7.