Homework 5: Zmodem vs. Ymodem-g

Steve Lee

Zmodem and Ymodem-g are two popular file transfer protocols implemented under different design goals. Zmodem was designed with particular attention paid to reliability while Ymodem-g was designed with particular attention paid to speed. In the end, Zmodem emerges as the superior protocol. It successfully applies the end-to-end argument to achieve better reliability, cost, and flexibility. Furthermore, Ymodem-g's speed improvement over Zmodem, one of the supposed advantages of Ymodem-g, is negligible if present at all.

Saltzer et al. state that "sometimes, by examining a problem thoroughly, the same or better performance enhancement can be achieved at the high level." (p.281) The designers of Zmodem appear to have addressed the problem of error correction at a high level and achieved performance similar to low-level error correction used by Ymodem-g. According to Patrick Chen, in http://www.racal.com/dcom/modem.tutorial.html, "there is a common misconception that Ymodem-g is much faster than other file transfer protocols. Although Ymodem-g is significantly faster than Ymodem, it offers little over Zmodem. Zmodem has proven to be extremely efficient."

Zmodem is not only efficient, it is also more reliable than Ymodem-g. In line with the end-to-end argument, Zmodem provides error correction at the protocol level. In contrast, Ymodem-g provides minimal error correction at the protocol level and relies on error correction by the modem. As such, only Zmodem is able to recover from transient errors encountered between the modem and the computer, even though both protocols do error detection at the protocol level. When such transient errors are detected in Ymodem-g, it simply aborts transfer and notifies the user with an error message. Zmodem is thus more reliable in the sense that fewer kinds of errors can cause a file transfer to fail. In other terms, Zmodem provides the end-to-end reliability users desire, as users are only interested in the successful transfer of files, and not error messages to retry when errors are detected.

Another virtue of Zmodem is that it can be used with cheaper modems not equipped with error correction machinery, reducing the cost of file transfer for users of Zmodem. The cheaper modems cannot be used with Ymodem-g because it does not provide the end-to-end error detection necessary to provide acceptable reliability over noisy phone lines. In addition, end-to-end error detection in Zmodem allows error correcting modems to communicate with non error correcting modems, thereby increasing Zmodem's flexibility over Ymodem-g.

In short, Zmodem is a better protocol than Ymodem-g. Although they both transfer files at comparable speeds, Zmodem is more reliable, can be used with cheaper modems, and allows error correcting modems and non error correcting modems to communicate with each other.