ietf-822
[Top] [All Lists]

why it is a problem to transmit binary as binary in mail

1991-09-12 16:38:40
The main reason why it is a problem to transmit binary as binary in mail is
that mail is a text-based protocol.  The entire way of thinking is different
between a text-based protocol and a binary protocol.  In particular, people
impose their ideas of esthetics upon text-based protocols (hence increasing
the demands on a parser) but not on binary protocols.

Binary protocols are not necessarily easier to implement than text protocols.
Nobody calls implementing a TCP an exercise for a high-school freshman in
BASIC class.

Nor are binary protocols free of `gotchas'.  Telnet is really a binary
protocol.  There are very precise binary semantics for Telnet.  However,
zillions of Telnet implementations get it wrong.  We have people unilaterally
declaring that Telnet's default state of 7-bit is "brain-damaged" and making
it 8-bits, ignoring the fact that an 8-bit functionality exists.  We have
people who confuse network protocol semantics with local operating system
semantics and interpret Telnet's 8-bit functionality as meaning one should put
the terminal in Unix raw mode (or their local OS equivalent).  The Unix
system on which I live today still handles Telnet protocol in an inferior
fashion to my old TOPS-20 TELNET, even though it was written after and was
influenced by my program.

We have the absurd situation of there being a Telnet working group to wrestle
with these questions!  [To be fair, they are building new quicksand pits with
authentication and privacy instead of merely stirring up the old ones.]

This doesn't mean these people are incompetant.  It means that we are treading
in areas where misunderstandings abound.  We are at the limit of our species
to correctly and *commonly* grasp.  This should be humbling to all of us.  It
may seem childishly simple to you; it does to me.  But does your obvious
simple interpretation agree with mine?

Furthermore, as I discovered, mixing a binary protocol with a text protocol
gives you the worst of both worlds without the benefits.  You have all the
sloppiness of text protocols with the picayune preciseness of binary.  You
lose the readability of text (forget about running it on your terminal!) and
also the regularity of binary.

For better or worse, we decided long ago that mail was a text protocol.  We
seem to have acquired a solid infrastructure in much less time the X.400 gang
has with their semi-binary.  I remember an e-mail infrastructure in place on
ARPANET in the early 1970's.  In spite of our text orientation, we can and do
ship binary objects in mail with suitable encoding.

-- Mark --