SEAlink

Last updated

SEAlink is a file transfer protocol that is backward compatible with XMODEM but features a sliding window system for improved throughput. SEAlink was written in 1986 as a part of the SEAdog FidoNet mailer written by System Enhancement Associates, creators of the famous ARC program. It was licensed with a simple "give credit" requirement, but nevertheless was not very widely used except in FidoNet mailers. SEAlink, and most other XMODEM enhancements, were quickly displaced following the introduction of ZMODEM.

Contents

Description

XMODEM breaks down the file to be sent into a numbered series of packets of 128 bytes each. Packets are sent one at a time to the receiver, who either acknowledges the proper reception by sending a ACK character or requests it to be resent by sending a NAK instead. The transfer then continues with another packet.

Although the time needed to send the ACK or NAK is almost zero, the propagation delay of the phone system itself introduces a latency. A latency of 0.1 seconds is not at all uncommon and can be much longer on overseas links. That means that the maximum transfer rate of XMODEM is a function of the phone system more than the speed of the modems themselves. At 300 bit/s this is not a serious concern, as the packet will take about 3.5 seconds to send, the 0.1 delay being insignificant. However, at 9600 bit/s the packet only takes about 0.1 seconds to send, meaning that at least half of the potential throughput is lost while the sender waits for the ACK or NAK to arrive.

SEAlink addresses this through the use of a "sliding window". In this case the sender does not wait for the ACK or NAK, and instead simply sends out its packets in a continuous stream. The receiver still has to ACK or NAK the packets, but does so by attaching a packet number to each one, allowing the sender to identify which packets worked or failed. The "window" refers to the number of packets that can be sent before an ACK or NAK is required. In the case of SEAlink, the window was six packets, allowing up to 768 bytes of data to be sent at once.

SEAlink was designed to be completely backward compatible with existing XMODEM implementations. On the receiver side, all that was required was that the receiver send back the packet number (contained in all XMODEM packets) along with the normal ACK or NAK character. On reception of the very first ACK or NAK, the SEAlink sender would "notice" the packet number and continue to use windows. If the packet number was missing, it was assumed it was sending to a non-SEAlink XMODEM, and set the window size to one.

Other features

SEAlink also included a number of features included in other XMODEM derivatives. Notable was the use of a "zero packet", which was introduced in the FidoNet-related TeLink protocol in order to send file information and support batch file transfers.

SEAlink made one minor modification to this "standard", adding a byte in position 40 of the packet to indicate whether or not to use "overdrive". When turned on, by placing any non-zero number in byte 40, the receiver no longer expected ACK messages, but only NAKs. This was intended to reduce the bandwidth required from the receiver back to the sender, which was an important consideration on many of the early high-speed modems, which featured a very slow backchannel (75 bit/s in the Telebit modems, for instance).

A later addition was "RESYNC", allowing for file transfers to be restarted from where they left off. RESYNC added another indicator in the zero packet, byte 42, to indicate that the sender supports the feature. In this case, the receiver always checks to see if an identical filename exists locally, and if so, sends a SYN character instead of the normal ACK or NAK. The SYN is followed by the packet number at which to restart.

Related Research Articles

The Transmission Control Protocol (TCP) is one of the main protocols of the Internet protocol suite. It originated in the initial network implementation in which it complemented the Internet Protocol (IP). Therefore, the entire suite is commonly referred to as TCP/IP. TCP provides reliable, ordered, and error-checked delivery of a stream of octets (bytes) between applications running on hosts communicating via an IP network. Major internet applications such as the World Wide Web, email, remote administration, and file transfer rely on TCP, which is part of the Transport Layer of the TCP/IP suite. SSL/TLS often runs on top of TCP.

Trivial File Transfer Protocol (TFTP) is a simple lockstep File Transfer Protocol which allows a client to get a file from or put a file onto a remote host. One of its primary uses is in the early stages of nodes booting from a local area network. TFTP has been used for this application because it is very simple to implement.

UUCP is an acronym of Unix-to-Unix Copy. The term generally refers to a suite of computer programs and protocols allowing remote execution of commands and transfer of files, email and netnews between computers.

Stop-and-wait ARQ, also referred to as alternating bit protocol, is a method in telecommunications to send information between two connected devices. It ensures that information is not lost due to dropped packets and that packets are received in the correct order. It is the simplest automatic repeat-request (ARQ) mechanism. A stop-and-wait ARQ sender sends one frame at a time; it is a special case of the general sliding window protocol with transmit and receive window sizes equal to one in both cases. After sending each frame, the sender doesn't send any further frames until it receives an acknowledgement (ACK) signal. After receiving a valid frame, the receiver sends an ACK. If the ACK does not reach the sender before a certain time, known as the timeout, the sender sends the same frame again. The timeout countdown is reset after each frame transmission. The above behavior is a basic example of Stop-and-Wait. However, real-life implementations vary to address certain issues of design.

ZMODEM is a file transfer protocol developed by Chuck Forsberg in 1986, in a project funded by Telenet in order to improve file transfers on their X.25 network. In addition to dramatically improved performance compared to older protocols, ZMODEM offered restartable transfers, auto-start by the sender, an expanded 32-bit CRC, and control character quoting supporting 8-bit clean transfers, allowing it to be used on networks that would not pass control characters.

XMODEM is a simple file transfer protocol developed as a quick hack by Ward Christensen for use in his 1977 MODEM.ASM terminal program. It allowed users to transmit files between their computers when both sides used MODEM. Keith Petersen made a minor update to always turn on "quiet mode", and called the result XMODEM.

YMODEM is a file transfer protocol used between microcomputers connected together using modems. It was primarily used to transfer files to and from bulletin board systems. YMODEM was developed by Chuck Forsberg as an expansion of XMODEM and was first implemented in his CP/M YAM program. Initially also known as YAM, it was formally given the name "YMODEM" in 1985 by Ward Christensen, author of the original XMODEM.

In data communications, flow control is the process of managing the rate of data transmission between two nodes to prevent a fast sender from overwhelming a slow receiver. It provides a mechanism for the receiver to control the transmission speed, so that the receiving node is not overwhelmed with data from transmitting node. Flow control should be distinguished from congestion control, which is used for controlling the flow of data when congestion has actually occurred. Flow control mechanisms can be classified by whether or not the receiving node sends feedback to the sending node.

Transmission Control Protocol (TCP) uses a network congestion-avoidance algorithm that includes various aspects of an additive increase/multiplicative decrease (AIMD) scheme, along with other schemes including slow start and congestion window, to achieve congestion avoidance. The TCP congestion-avoidance algorithm is the primary basis for congestion control in the Internet. Per the end-to-end principle, congestion control is largely a function of internet hosts, not the network itself. There are several variations and versions of the algorithm implemented in protocol stacks of operating systems of computers that connect to the Internet.

TCP tuning techniques adjust the network congestion avoidance parameters of Transmission Control Protocol (TCP) connections over high-bandwidth, high-latency networks. Well-tuned networks can perform up to 10 times faster in some cases. However, blindly following instructions without understanding their real consequences can hurt performance as well.

Protocol spoofing is used in data communications to improve performance in situations where an existing protocol is inadequate, for example due to long delays or high error rates.

The Microcom Networking Protocols, almost always shortened to MNP, is a family of error-correcting protocols commonly used on early high-speed modems. Originally developed for use on Microcom's own family of modems, the protocol was later openly licensed and used by most of the modem industry, notably the "big three", Telebit, USRobotics and Hayes. MNP was later supplanted by v.42bis, which was used almost universally starting with the first v.32bis modems in the early 1990s.

The B protocol, or CIS B, is a file transfer protocol developed for the CompuServe Information Service, and implemented in 1981. The protocol was later expanded in the QuickB version and later the enhanced B Plus version. It was a fairly advanced protocol for its era, supporting efficient transfers of files, commands and other data as well, and could be used in both directions at the same time in certain modes. These advanced features were not widely used, but could be found in a small number of client-side packages.

SMODEM

Smodem refers to a bidirectional protocol for file transfer used between modems and the DOS program in which the protocol is implemented, both of which were developed by a Finnish company named Arisoft. It was mainly used in bulletin board systems because it could transfer files in both directions at the same time and allowed users to chat with each other with AriSoft's GroupChat software. Other popular bidirectional protocols such as BiModem, HS/Link and HydraCom also offered a chat option with the operator, but not with the system's other users.

A sliding window protocol is a feature of packet-based data transmission protocols. Sliding window protocols are used where reliable in-order delivery of packets is required, such as in the data link layer as well as in the Transmission Control Protocol (TCP). They are also used to improve efficiency when the channel may include high latency.

In data networking, telecommunications, and computer buses, an acknowledgement (ACK) is a signal that is passed between communicating processes, computers, or devices to signify acknowledgement, or receipt of message, as part of a communications protocol. The negative-acknowledgement signal is sent to reject a previously received message or to indicate some kind of error. Acknowledgements and negative acknowledgements inform a sender of the receiver's state so that it can adjust its own state accordingly.

FrontDoor was one of the most popular mailers in the FidoNet-compatible networks in the 1990s, acting as the physical representation of the written network node connection and mail handling standards. It was an MS-DOS-based product written by Joaquim Homrighausen. The FrontDoor system contained a Mailer, an Editor, a Terminal, a serial port device driver and configuration utilities. FrontDoor was first released in 1986.

Janus is a file transfer protocol for use on bulletin board systems (BBSs). It has the relatively rare feature that it is fully bidirectional, allowing the protocol to upload and download files at the same time. It was written by Rick Huebner in 1987; Huebner had previously written a ZMODEM module for the Opus-CBBS system.

This article provides information about the communications aspects of Universal Serial Bus, USB: Signaling, Protocols, Transactions.

MEGAlink is a file transfer protocol for modem-equipped microcomputers written by Paul Meiners in 1987. Like many protocols of the era, MEGAlink is an expanded version of the seminal XMODEM. While it was a relatively simple and high-performance system, it remains relatively obscure because it was overshadowed by ZMODEM, which had been released a year earlier and saw rapid uptake.

References