The ZMODEM protocol is a full-duplex protocol that supports both 128 and 1024 data block transfers. ZMODEM selects the optimal block size based on the quality of the line determined by the number of pre-transmission requests received. ZMODEM also enables an interrupted file transfer to be restarted from the point of failure, support for multiple file transfers and extended CRC error checking.