- SMODEM
Smodem is a bidirectional
protocol for file transfer used betweenmodem s, developed by a Finnish company Arisoft. It was mainly used in BBS 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 asBiModem , HS/Link andHydraCom , also offered a chat option with the operator but not with system's other users.Smodem protocol overview
Unlike older protocols, like
ZMODEM , 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 andDPMI (Windows,OS/2 ) 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 .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. 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.
References
* [http://www.arisoft.fi/smodem10.zip The Smodem Techinfo.doc]
External links
* [http://www.arisoft.fi Arisoft Oy]
Wikimedia Foundation. 2010.