C-MODEM

Last updated

C-Modem [1] is a protocol driver developed by Lavio Pareschi (Rio de Janeiro) in 1989, that functions in a similar way to ZMODEM [ citation needed ]. It includes a new file transfer protocol, built around the idea of crash recovery, ease of use and optimal performance. C-Modem provides reliable file transmission, even in poor conditions, by adapting immediately to any errors that may occur (even in the so-called 'error free' modems).

Major features of the C-Modem communications protocol include:

If interrupted for any reason, the file transmitted is saved with the extension .BAD, until the last byte is received correctly. During the next connection/transmission, the file is automatically completed.

Depending on velocity and errors during transmission, as well as line conditions, the size of data blocks between CRC-blocks may vary from 32 to 4096 bytes. This reduces the amount of control bytes added to the transmission and minimizes data repetition. The results in an excellent true transfer rate.

The transmitter doesn't stop every block to receive useless answers. The transmitter occurs without pauses between blocks. The receptor only warns when something wrong happens.

While not accurate in terms of bits (the value rounds up), the file's size is accurate in terms of bytes. It has exactly the same size as the original file that was uploaded or downloaded, but it does not add bytes to complete blocks of fixed size.

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.

A cyclic redundancy check (CRC) is an error-detecting code commonly used in digital networks and storage devices to detect accidental changes to digital data. Blocks of data entering these systems get a short check value attached, based on the remainder of a polynomial division of their contents. On retrieval, the calculation is repeated and, in the event the check values do not match, corrective action can be taken against data corruption. CRCs can be used for error correction.

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.

<span class="mw-page-title-main">Universal asynchronous receiver-transmitter</span> Computer hardware device

A Universal Asynchronous Receiver-Transmitter is a computer hardware device for asynchronous serial communication in which the data format and transmission speeds are configurable. It sends data bits one by one, from the least significant to the most significant, framed by start and stop bits so that precise timing is handled by the communication channel. The electric signaling levels are handled by a driver circuit external to the UART. Common signal levels are RS-232, RS-485, and raw TTL for short debugging links. Early teletypewriters used current loops.

The data link layer, or layer 2, is the second layer of the seven-layer OSI model of computer networking. This layer is the protocol layer that transfers data between nodes on a network segment across the physical layer. The data link layer provides the functional and procedural means to transfer data between network entities and may also provide the means to detect and possibly correct errors that can occur in the physical layer.

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

In telecommunications and computing, bit rate is the number of bits that are conveyed or processed per unit of time.

ZMODEM is an inline 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. 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.

<span class="mw-page-title-main">Punter (protocol)</span>

Punter is a protocol for file transfer developed in the 1980s by Steve Punter. There are various types of Punter such as PET Transfer Protocol (PTP), C1 and C2.

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.

JMODEM is a file transfer protocol developed by Richard Johnson in 1988. It is similar to the seminal XMODEM in most ways, but uses a variable-size packet in order to make better use of the available bandwidth on high-speed modems.

Lynx is a file transfer protocol for use with modems, and the name of the program that implements the protocol. Lynx is based on a sliding window protocol with two to sixteen packets per window, and 64 bytes of data per packet. It also applies run length encoding (RLE) to the data on a per-block basis to compress suitable data.

HS/Link is a file transfer protocol developed by Samuel H. Smith in 1991–1992. HS/Link is a high speed, full streaming, bidirectional, batch file transfer protocol with advanced Full-Streaming-Error-Correction. Each side of the link is allowed to provide a list of files to be sent. Files will be sent in both directions until both sides of the link are satisfied.

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.

<span class="mw-page-title-main">SMODEM</span> File transfer protocol

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.

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.

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

  1. Driscoll, Kevin (2022-04-19), "Recalling the Modem World", The Modem World, Yale University Press, pp. 1–28, doi:10.2307/j.ctv2c3k1ww.3, ISBN   9780300248142, JSTOR   j.ctv2c3k1ww.3
  2. Härder, Theo (2009). "Crash Recovery". Encyclopedia of Database Systems. pp. 517–522. doi:10.1007/978-0-387-39940-9_88. ISBN   978-0-387-35544-3. S2CID   62013571.