What is the Diff between Xmodem/Ymodem

ward at chinet.UUCP ward at chinet.UUCP
Tue Dec 30 13:00:38 AEST 1986


XMODEM is the protocol that was defined when I submitted MODEM.ASM to the
CP/M (8080) users group in August or September '77.  People didn't like my
rather kludgy syntax of "modem sq <filename>" - Keith Petersen stripped
down the program for use on a remote CP/M system and called it XMODEM.
  Since MODEM was a piece of 'hardware', the name XMODEM 'stuck' as the
protocol name.
  My original protocol, now technically called "Xmodem checksum" or some-
times "Christensen Protocol", is the most simple of the protocols.  It is
not all that great - chances of un-detected line errors getting through are
a bit too high.
  Others added a CRC to make the protocol more bulletproof, thus: XMODEM-CRC.
  Chuck Forsberg rewrote my protocol in C for CP/M - I don't know the entire
history, but he developed rb/sb (receive batch, send batch) for Unix, which
'defined' the YMODEM protocol.  It typically uses 1K blocks, and a CRC.  
  Chuck also cleverly sent a block zero (I started with block # 1 in Xmodem)
to send the filename, length, date, etc (filename being the minimum).  Thus
rb/sb can send batches of files in 1K blocks with CRC - much more efficient
than my original 128-byte record size (because that was a CP/M sector).
  ZMODEM is chuck's latest brainchild, which is a "sliding window" protocol,
which I understand to mean "allows multiple packets to be sent before 
receiving an acknowledgement".
  UMODEM is a 'program' implementing xmodem (all the other items in your
question are protocols, (though XMODEM was originally a program, too) so
I'll not go into Umodem further).
  KERMIT was developed at Columbia (My terrible memory prevents me from
properly acknowledging the authors), for micro to mainframe communications.
At least ONE reason for its development was that XMODEM was unsuitable for
some mainframes - such as IBM, because at the time, their communications
'front ends' didn't support the 8-bit bytes, timeouts, lack of "end of block"
characters, which XMODEM, developed for micro-micro communications, required.
  I hope this overview answered your questions.



More information about the Comp.sys.att mailing list