SMODEM
Encyclopedia
Smodem is a bidirectional protocol for file transfer used between 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, developed by a Finnish
Finland
Finland , officially the Republic of Finland, is a Nordic country situated in the Fennoscandian region of Northern Europe. It is bordered by Sweden in the west, Norway in the north and Russia in the east, while Estonia lies to its south across the Gulf of Finland.Around 5.4 million people reside...

 company Arisoft. It was mainly used in BBS
Bulletin board system
A Bulletin Board System, or BBS, is a computer system running software that allows users to connect and log in to the system using a terminal program. Once logged in, a user can perform functions such as uploading and downloading software and data, reading news and bulletins, and exchanging...

 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
BiModem
BiModem was one of the last file transfer protocols developed for use in Bulletin Board Systems. It was created by Erik Labs, and was revolutionary for its day....

, HS/Link
HSLINK
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...

 and HydraCom, also offered a chat option with the operator but not with system's other users.

Smodem protocol overview

Unlike older protocols, like ZMODEM
ZMODEM
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...

, Smodem has a separate low level multiplexed transfer layer (MSLP) and a high level file transfer layer. This design simplified protocol design and gave a maximum efficiency of as high as 99,5%. Multiplexing made it possible to send one or more files in one continuous stream without any breaks between files. This boosted multiple file transfers dramatically.

Multiplexing also made it possible to add a full screen ANSI-BBS terminal emulator with a local full featured line editor and colored back scroll buffer of unlimited size. Locally buffered terminal emulation allowed users to chat during full speed bidirectional file transfers.

The protocol has a symmetrical nature. Smodem can connect with itself by looping transmitted characters back to the receiver. There is no reason to limit transfers in one direction. Smodem transfers files in both directions at the same time without noticeable performance loss.

Smodem detects DESQview
DESQview
DESQview was a text mode multitasking program developed by Quarterdeck Office Systems which enjoyed modest popularity in the late 1980s and early 1990s...

 and DPMI (Windows
Microsoft Windows
Microsoft Windows is a series of operating systems produced by Microsoft.Microsoft introduced an operating environment named Windows on November 20, 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces . Microsoft Windows came to dominate the world's personal...

, OS/2
OS/2
OS/2 is a computer operating system, initially created by Microsoft and IBM, then later developed by IBM exclusively. The name stands for "Operating System/2," because it was introduced as part of the same generation change release as IBM's "Personal System/2 " line of second-generation personal...

) and will free all unused processor capacity to the host system. It is written in the C language and compiled with Microsoft Visual C++ v1.0 compiler using full optimizations for the i286 CPU. It needs over 200 kB free memory to function properly and more to allow shell from Smodem. Though it is impossible to continue file transfer if shell is used.

Multiplexed Serial Link Protocol (MSLP)

MSLP has the capability to manage 32 independent channels simultaneously. Every single channel uses a traditional two phase ACK/NAK type subprotocol. Maximum efficiency is achieved by using multiple parallel channels simultaneously to keep the transmitter busy.

Maximum packet size floats between 16 to 1024 bytes. Transfer errors will reduce packet size depending on error frequency. The transmitter window size (total size of transmitted packets which have not been acknowledged) can be limited to get faster response.

The packet frame contains one byte for channel number and two bytes for a 16-bit CCITT(ITU)-CRC. (Same algorithm, which is used in error correcting modems.) Acknowledgements and enquiries will be included in the packet frame when needed.

Packet separators contain two bytes. If those two bytes are found in transferred data, one byte is inserted for capsulation. The possibility to find those separator bytes in random data is so small, that it will not affect protocol efficiency like old style one byte separators do.

Maximum efficiency in one-direction error free transfers will be:



If packet size is limited to 256 bytes, the efficiency will be 98.1% and still better than original Zmodem
ZMODEM
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...

.

If the data link can not transfer some special characters, then the traditional character encapsulation mode could be activated. This mode encapsulates selected character codes, which inflicts performance about 0.4% + additional 0.4% for every selected code.

If the data link is limited to 7 data bits, then a special bit collection mode could be activated. The highest bits for every seven bytes are collected to one byte. This collection inflicts performance about 12.4% and doubles character encapsulation possibility.

Maximum transfer line correction mode of MSLP uses five characters to transmit four characters using only printable 7-bit ASCII codes (Ascii85
Ascii85
Ascii85 is a form of binary-to-text encoding developed by Paul E. Rutter for the btoa utility. By using five ASCII characters to represent four bytes of binary data , it is more efficient than uuencode or Base64, which use four characters to represent three bytes of data...

). This mode should work on almost every non transparent transmission line. Maximum correction mode inflicts performance 20%. It should be used only for test purposes, if default settings do not work, or, if limitations of transfer line are unknown or too complex to handle with separate adjustments.
The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK