- There are several stages in compressing sets of files and transmitting them:
All files are combined.
This was traditionally (under Unix) done using 'tar' (=tape archiving)
or 'cpio' (which I never used).
The resulting file is being compressed using 'compress'
The resulting file is made transporatble via ASCII-only media
like email using uuencode (Unix to Unix encode) or Binhex (which
is a Macintosh-only method.
Having the email program add them to an email.
Ad 1 and 2.
These steps have been combined in programs like 'zip' and
'arj' which are very efficient. Zip's algorithm is public so it has
also been ported (back) to Unix. Zip is more user friendly than
'tar' and 'compress'. 'Gzip' which can decompress the original
'compress' files, but may not compress them for patent
reasons uses it's own format to compress files. Gzip (which is
part of the GNU tradition) isn't as user friendly as Zip however.
The best know version of Zip for the PC's under DOS is PKZip
or later WinZip for Windows, by the way.
This step generally takes 3 bytes (=3*8 bits) together, divides
them in 4*6 bits and adds for example ' '=ascii 20hex to them
and sends them as 4 ASCII bytes over the network.
This not only removes all below 20hex characters and the
7fhex=delete character but also doesn't use the lower case
characters that for example weren't present in the early main
frames to save memory costs and printing time (!).
For every 3 bytes another 4*2 bits are added, so the overhead
is 8/24=0.33333 which isn't too badly. Compression often removes
lots more than 1/3, so first compressing and then expanding
really saves bandwidth and for sending binaries the method
is necessary anyway.
I don't know exactly which method MIME uses to code
and decode binaries, but it seems to be some sort of base-64
method, so it's probably still the good-old uuencode method.
Eudora can also use Binhex but that's probably because
Eudora originates from the Macintosh environment.
Pegasus, the other most popular free/cheap email program can
handle all of these methods also and also can handle uuencode,
which Eudora can't handle...
There are simple DOS programs however that can do uuencode
and uudecode. (And yes I have them, I can send them
uuencoded if you like... ;-) ;-)