Echo (computing)

Last updated

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]

Contents

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]

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.

Footnotes

  1. 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 ioctl() system call. [24]
  2. 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 stty-echo. [27] [28]
  3. Note that this is not the same as the LOCAL_ECHO terminal characteristic, settable with the DCL command SET TERMINAL /LOCAL_ECHO and unsettable with SET TERMINAL /NOLOCAL_ECHO. That characteristic controls whether the terminal itself performs local echo. [14] [30]

Related Research Articles

<span class="mw-page-title-main">Bulletin board system</span> Computer server

A bulletin board system (BBS), also called a computer bulletin board service (CBBS), was a computer server running software that allowed users to connect to the system using a terminal program. Once logged in, the user can perform functions such as uploading and downloading software and data, reading news and bulletins, and exchanging messages with other users through public message boards and sometimes via direct chatting. In the early 1980s, message networks such as FidoNet were developed to provide services such as NetMail, which is similar to internet-based email.

Kermit is a computer file transfer and management protocol and a set of communications software tools primarily used in the early years of personal computing in the 1980s. It provides a consistent approach to file transfer, terminal emulation, script programming, and character set conversion across many different computer hardware and operating system platforms.

The Secure Shell Protocol (SSH) is a cryptographic network protocol for operating network services securely over an unsecured network. Its most notable applications are remote login and command-line execution.

Telnet is a client/server application protocol that provides access to virtual terminals of remote systems on local area networks or the Internet. It is a protocol for bidirectional 8-bit communications. Its main goal was to connect terminal devices and terminal-oriented processes.

<span class="mw-page-title-main">OpenVMS</span> Computer operating system

OpenVMS, often referred to as just VMS, is a multi-user, multiprocessing and virtual memory-based operating system. It is designed to support time-sharing, batch processing, transaction processing and workstation applications. Customers using OpenVMS include banks and financial services, hospitals and healthcare, telecommunications operators, network information services, and industrial manufacturers. During the 1990s and 2000s, there were approximately half a million VMS systems in operation worldwide.

<span class="mw-page-title-main">Terminal emulator</span> Program that emulates a video terminal

A terminal emulator, or terminal application, is a computer program that emulates a video terminal within some other display architecture. Though typically synonymous with a shell or text terminal, the term terminal covers all remote terminals, including graphical interfaces. A terminal emulator inside a graphical user interface is often called a terminal window.

UUCP is a suite of computer programs and protocols allowing remote execution of commands and transfer of files, email and netnews between computers.

<span class="mw-page-title-main">Computer terminal</span> Computer input/output device for users

A computer terminal is an electronic or electromechanical hardware device that can be used for entering data into, and transcribing data from, a computer or a computing system. The teletype was an example of an early-day hard-copy terminal and predated the use of a computer screen by decades. Starting in the mid-1970s with machines such as the Sphere 1, Sol-20, and Apple I, terminal circuitry began to be integrated into personal and workstation computer systems, with the computer handling character generation and outputting to a CRT display such as a computer monitor or, sometimes, a consumer TV.

<span class="mw-page-title-main">PuTTY</span> Free and open-source terminal emulator, serial console and network file transfer application

PuTTY is a free and open-source terminal emulator, serial console and network file transfer application. It supports several network protocols, including SCP, SSH, Telnet, rlogin, and raw socket connection. It can also connect to a serial port. The name "PuTTY" has no official meaning.

The Berkeley r-commands are a suite of computer programs designed to enable users of one Unix system to log in or issue commands to another Unix computer via TCP/IP computer network. The r-commands were developed in 1982 by the Computer Systems Research Group at the University of California, Berkeley, based on an early implementation of TCP/IP.

<span class="mw-page-title-main">Pseudoterminal</span>

In some operating systems, including Unix-like systems, a pseudoterminal, pseudotty, or PTY is a pair of pseudo-device endpoints (files) which establish asynchronous, bidirectional communication (IPC) channel between two or more processes.

Expect is an extension to the Tcl scripting language written by Don Libes. The program automates interactions with programs that expose a text terminal interface. Expect, originally written in 1990 for the Unix platform, has since become available for Microsoft Windows and other systems.

<span class="mw-page-title-main">Comparison of command shells</span>

A command shell is a command-line interface to interact with and manipulate a computer's operating system.

ProTERM is a terminal emulator and modem program for the Apple II and Macintosh lines of personal computers, published by Intrec Software. Most popular in the late 1980s and 1990s, it was most commonly used for calling bulletin board systems (BBSes) via a computer's modem, experienced users could also Telnet into Unix server and shell account thereon and FTP and tunneling to various destinations therefrom, and once logged into a Unix shell account, other forms of telecom all across the pre-Web Internet; via VT100 terminal emulator or ANSI art, this later ushered in Graphics to the scene.

<span class="mw-page-title-main">Terminal server</span> Device that interfaces serial hosts to a network

A terminal server connects devices with a serial port to a local area network (LAN). Products marketed as terminal servers can be very simple devices that do not offer any security functionality, such as data encryption and user authentication. The primary application scenario is to enable serial devices to access network server applications, or vice versa, where security of the data on the LAN is not generally an issue. There are also many terminal servers on the market that have highly advanced security functionality to ensure that only qualified personnel can access various servers and that any data that is transmitted across the LAN, or over the Internet, is encrypted. Usually, companies that need a terminal server with these advanced functions want to remotely control, monitor, diagnose and troubleshoot equipment over a telecommunications network.

Local Area Transport (LAT) is a non-routable networking technology developed by Digital Equipment Corporation to provide connection between the DECserver terminal servers and Digital's VAX and Alpha and MIPS host computers via Ethernet, giving communication between those hosts and serial devices such as video terminals and printers. The protocol itself was designed in such a manner as to maximize packet efficiency over Ethernet by bundling multiple characters from multiple ports into a single packet for Ethernet transport.

Remote job entry, or Remote Batch, is the procedure for sending requests for non-interactive data processing tasks (jobs) to mainframe computers from remote workstations, and by extension the process of receiving the output from such jobs at a remote workstation.

In computer networking, DECserver initially referred to a highly successful family of asynchronous console server / terminal server / print server products introduced by Digital Equipment Corporation (DEC) and later referred to a class of UNIX-variant application and file server products based upon the MIPS processor. In February 1998, DEC sold its Network Products Business to Cabletron, which then spun out as its own company, Digital Networks, in September 2000.

The POSIX terminal interface is the generalized abstraction, comprising both an application programming interface for programs, and a set of behavioural expectations for users of a terminal, as defined by the POSIX standard and the Single Unix Specification. It is a historical development from the terminal interfaces of BSD version 4 and Seventh Edition Unix.

The Seventh Edition Unix terminal interface is the generalized abstraction, comprising both an application programming interface for programs and a set of behavioural expectations for users, of a terminal as historically available in Seventh Edition Unix. It has been largely superseded by the POSIX terminal interface.

References

What supports what

Sources used