C-Modem[1] is a protocol driver developed by Lavio Pareschi (Rio de Janeiro) in 1989, that functions in a similar way to ZMODEM . 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:

  • Transmission Crash Recovery[2]

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.

  • Mutable Data: CRC blocks on data blocks of variable size

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.

  • Exact Size

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.

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.


This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.