[misc.wanted] What is the Diff between Xmodem/Ymodem

jte@psuvax1.UUCP (Jon Eckhardt) (12/26/86)

Now, one question for all of you guys who know your communication 
packages.  What is the difference between Xmodem/Ymodem/Umodem/Kermit.
Which one do you guys think is the best of all of them and most versitile.
If this conversation gets real big I guess I could post a summary but I have
never done that before.  Thanks in advance for any info you can give me
or the net on this topic.


---------------------------------------------------------------------------
Jon Eckhardt                  | jte@psuvax1.BITNET
736 W. Hamilton Ave.          | jte@psuecl.BITNET (VMS account)
State College, PA  16801      | jte@psuvaxg.BITNET (Last resort for bitnet)
---------------------------------------------------------------------------
      UUCP = <allegra,ihnp4,atcgva,burdvax,purdue>!psuvax1!jte
---------------------------------------------------------------------------
Phone: 814-237-1901      Thank you!      Work: (leave message) 814-865-9505
---------------------------------------------------------------------------
---Spelling List---
allegra,ihnp4,atcgva,burdvax,purdue
bitnet
comp.unix.questions,comp.sys.ibm.pc,comp.sys.att,comp.sources.wanted,misc.wanted
Eckhardt
info
jte
Newsgroups
psuecl.BITNET
psuvax1
psuvax1.BITNET
psuvaxg.BITNET
Umodem

twb@hoqax.UUCP (BEATTIE) (12/29/86)

> Now, one question for all of you guys who know your communication 
> packages.  What is the difference between Xmodem/Ymodem/Umodem/Kermit.

Add rb/sb and zmodem to the list.
What is the difference between all these?

Tom.
ihnp4!hoqaa!twb
Lactomangulation - n. Manhandling the "open here" spout on a milk
carton so badly that one has to resort to using the "illegal" side.

caf@omen.UUCP (Chuck Forsberg WA7KGX) (12/29/86)

In article <2374@psuvax1.UUCP> jte@psuvax1.UUCP (Jon Eckhardt) writes:
:Now, one question for all of you guys who know your communication 
:packages.  What is the difference between Xmodem/Ymodem/Umodem/Kermit.
:Which one do you guys think is the best of all of them and most versitile.

Ward Christensen wrote MODEM in the late 70's to transfer files between
the primitive Altair bus (S-100) micros available to hobbyists at the
time.  The press has since come to call this protocol XMODEM, and the
name has stuck.  XMODEM uses 128 byte blocks to transfer a single file
between two machines.  A path name must be given to both sending and
receiving programs.  The resultant file will have up to 127 bytes of
garbage appended to it.  Without proprietary enhancements, XMODEM
transfers are unreliable in the presence of line impairments. 

UMODEM is a popular Unix program that supports XMODEM protocol. 

XMODEM/CRC uses a 16 bit CRC instead of the original 8 bit checksum,
improving integrity but not reliability.  XMODEM-1k also allows 1024
byte blocks to be sent to improve throughput with computer networks and
timesharing systems. 

YMODEM sends one or more files per command by passing the pathname and
(optionally) file length, modification time, etc., in block 0.  This
allows the receiver to generate an exact copy of the file contents. 
CRC-16 is normally used with YMODEM.  1k blocks are a popular option,
but cannot be mandatory because some operating systems choke on the
longer blocks. 

The Unix rb and sb programs (now superceded by rz and sz) support
YMODEM file transfers as well as XMODEM, XMODEM/CRC and XMODEM-1k.

Kermit refers to a set of related file transfer protocols developed at
Columbia to allow file transfers in brain damaged communications
environments that do not allow all 256 8 bit codes to be sent and
received correctly.  As with YMODEM, Kermit sends the pathname to the
receiver, so multiple files can be sent with one set of commands.  To
transfer files, both Kermit programs must be set to use the same Kermit
sub-protocol (8th bit quoting .vs.  transparency).  An average Kermit
implementation is more reliable than an average XMODEM implementation. 
The design features that allow Kermit to work in brain damaged
environments make it less efficient than YMODEM or XMODEM-1k. 

In early 1986 Telenet commissioned the development of the  Public
Domain ZMODEM protocol to provide efficient and reliable file transfers
over PC Pursuit and similar environments.  More information on ZMODEM
is available in ZMODEM.ARC on various bulletin boards including TeleGodzilla.

Chuck Forsberg WA7KGX Author of Pro-YAM communications Tools for PCDOS and Unix
...!tektronix!reed!omen!caf  Omen Technology Inc "The High Reliability Software"
  Voice: 503-621-3406  17505-V Northwest Sauvie Island Road Portland OR 97231
TeleGodzilla BBS: 621-3746 2400/1200  CIS:70007,2304  Genie:CAF  Source:TCE022
  omen Any ACU 1200 1-503-621-3746 se:--se: link ord: Giznoid in:--in: uucp
  omen!/usr/spool/uucppublic/FILES lists all uucp-able files, updated hourly

ward@chinet.UUCP (12/30/86)

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.

holloway@drivax.UUCP (Bruce Holloway) (01/14/87)

In article <305@hoqax.UUCP> twb@hoqax.UUCP (BEATTIE) writes:
>> Now, one question for all of you guys who know your communication 
>> packages.  What is the difference between Xmodem/Ymodem/Umodem/Kermit.
>
>Add rb/sb and zmodem to the list.
>What is the difference between all these?

XMODEM	128 byte packets, 8 or 16 bit checksum
YMODEM	1024 byte packets, 8 or 16 bit checksum
ZMODEM	128 byte packets sent four at a time, 8 or 16 bit checksum
WMODEM	Same as ZMODEM (I think), but for timesharing systems
UMODEM	?
KERMIT	Not related to the above protocols. Kermit can send files to sites
	when there are severe restrictions that XMODEM et.al. can't handle.
	Such as 7 bit lines, can only take a line at a time, control
	characters usually not allowed, etc. Kermit is also a sender driven
	protocol, unlike the receiver driven XMODEM. Also, Kermit can get
	directories, type files, etc. on the remote machine.
-- 
....!ucbvax!hplabs!amdahl!drivax!holloway
"What do you mean, 'almost dead'?" "Well, when you stop breathing, and moving
around, and seeing things... that kind of almost dead."

straka@ihlpf.UUCP (01/16/87)

> >> packages.  What is the difference between Xmodem/Ymodem/Umodem/Kermit.
> 
> XMODEM	128 byte packets, 8 or 16 bit checksum
> UMODEM	?

I think that UMODEM is just a UNIX-based implementation of XMODEM,
including the more advanced XMODEM CRC routines, as well as the original
simple checksums.  I use it (on UNIX) along with XMODEM (on my PC) for
file xfer, and it seems to work just fine.

-- 
Rich Straka     ihnp4!ihlpf!straka

schaefer@ogcvax.UUCP (Barton E. Schaefer) (01/16/87)

>>> ...  What is the difference between Xmodem/Ymodem/Umodem/Kermit.
>....
>UMODEM	?

Umodem is a (public domain?) UNIX utility that implements several variations of
something called "TERM II FTP" protocol, one of which is the same as Xmodem.
Umodem can be used interactively, or a file name can be given on the command
line along with flags that specify the transfer protocol.
-- 
Bart Schaefer						Dept. of CS&E
CSNET:	schaefer@Oregon-Grad				Oregon Graduate Center
UUCP:	{ihnp4,seismo,sun}!verdix \			19600 NW Von Neumann Dr
 {hplabs,ucbvax,decvax}!tektronix  !ogcvax!schaefer	Beaverton, OR  97006

jag2@nvuxj.UUCP (02/08/87)

 UMODEM is the xmodem protocol designed to run under UNIX.  It has the
	required text translation to convert between MSDOS or CP/M 
	files and UNIX.  This translation consists of the end-of-line
	and end-of-file characters.  For binary files there is no 
	translation.

	 J.A. Gardina @ Bell Communications Research, Inc.