Если канал передачи данных подразумевает задержку (например, модем), то X-modem очень плохой протокол -- скорость упадёт _в_ _разы_ (из-за ожидания ACK). Или если ошибок много. Если для зашивки прошивки через ком-порт, то X-modem хорошее решение. http://www.columbia.edu/kermit/ek.html Если при том жизненно нужно длина файла -- делай Y-modem, он тоже "есть везде" (разница только в 0-м блоке, в котором собственно имя файла и длина передаётся). На kermit всё есть, по ссылке.