JMODEM
Encyclopedia
JMODEM is a file transfer
File transfer
File transfer is a generic term for the act of transmitting files over a computer network or the Internet. There are numerous ways and protocols to transfer files over a network. Computers which provide a file transfer service are often called file servers. Depending on the client's perspective the...

 protocol developed by Richard Johnson
Richard B. Johnson
Richard Brian Johnson is the author of the book Abominable Firebug which presents his account of daily life at the Lyman School for Boys. Johnson invented the Rubber Ducky antenna while attending the Lyman School for Boys. Johnson went on to a career as an engineer and inventor. He also created...

 in 1988. It is similar to the seminal XMODEM
XMODEM
XMODEM is a simple file transfer protocol developed as a quick hack by Ward Christensen for use in his 1977 MODEM.ASM terminal program. XMODEM became extremely popular in the early bulletin board system market, largely because it was so simple to implement...

 in most ways, but uses a variable-size packet in order to make better use of the available bandwidth
Bandwidth (computing)
In computer networking and computer science, bandwidth, network bandwidth, data bandwidth, or digital bandwidth is a measure of available or consumed data communication resources expressed in bits/second or multiples of it .Note that in textbooks on wireless communications, modem data transmission,...

 on high-speed modem
Modem
A modem is a device that modulates an analog carrier signal to encode digital information, and also demodulates such a carrier signal to decode the transmitted information. The goal is to produce a signal that can be transmitted easily and decoded to reproduce the original digital data...

s.

JMODEM uses variable-length records called blocks. These blocks start with 512 data-bytes and increase in length to a maximum of 8192 bytes per block. There is a 6-byte overhead associated with each block so the percentage of overhead starts at a fairly high 1.1 percent and decreases to a very low 0.07 percent as the transmission progresses. The block length will increase in 512-byte increments as long as there are no errors requiring retransmission. Should an error occur, the block-size is cut in half. This continues until the block-size is as short as 64 bytes.

JMODEM also included a basic RLE
Run-length encoding
Run-length encoding is a very simple form of data compression in which runs of data are stored as a single data value and count, rather than as the original run...

 data compression
Data compression
In computer science and information theory, data compression, source coding or bit-rate reduction is the process of encoding information using fewer bits than the original representation would use....

 system, which replaces strings of repeated characters with a counter. If a string of many similar characters are found, JMODEM sends a "sentinel byte" (hexadecimal 0xBB) followed by a two-byte number, followed by the byte to be repeated. JMODEM applied RLE on a block-by-block basis, as opposed to the file as a whole. Since many files were already compressed with systems like .zip, JMODEM only used RLE on blocks where it actually reduced the size of the block.

JMODEM is explained in some detail in the John Dvorak book Dvorak's Guide to PC Telecommunications .

External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK