| Many protocols use some form of self describing data format, for
| example ASN.1, XML, S expressions, and bencoding.
| Why?
| Presumably both ends of the conversation have negotiated what protocol
| version they are using (and if they have not, you have big problems)
| and when they receive data, they need to get the data they expect.  If
| they are looking for list of integer pairs, and they get a integer
| string pairs, then having them correctly identified as strings is not
| going to help much.
I suspect the main reason designers use self-describing formats is the
same reason Unix designers tend to go with all-ASCII formats:  It's
much easier to debug "by eye".  Whether this is really of significance
at any technical level is debateable.  At the social level, it's very
important.  We're right into "worse is better" territory:  Self-
describing and, especially, ASCII-based protocols and formats are much
easier to hack with.  It's much easier to recover from errors in a
self-describing format; it's much easier to make "reasonable" inter-
pretations of incorrect data (for better or worse).  Network lore makes
this a virtue:  "Be conservative in what you send, liberal in what you
accept."  (The first part gets honored in the breach all too often, and
of course, the second is a horrible prescription for cryptography or
security in general.)  So software to use such protocols and formats
gets developed faster, spreads more widely, and eventually you have an
accepted standard that's too expensive to replace.

The examples are rife.  HTML is a wonderful one:  It's a complex but
human-readable protocol that a large fraction (probaby a majority) of
generators get wrong - so there's a history of HTML readers ignoring
errors and "doing the best they can".  Again, this is a mixed bag - on
the on hand, the web would clearly have grown much more slowly without
it; on the other, the lack of standardization can cause, and has caused,
problems.  (IE6-only sites, raise your hands.)

Looked at objectively, it's hard to see why XML is even a reasonable
choice for many of its current uses.  (A markup language is supposed to
add semantic information over an existing body of data.  If most of
the content of a document is within the markup - true of probably the
majority of uses of XML today - something is very wrong.)  But it's
there, there are tons of ancilliary programs, so ... the question that
gets asked is not "why use XML?" but "why *not* use XML?"  (Now, if I
could only learn to relax and stop tearing my hear every time I read
some XML paper in which they use "semantics" to mean what everyone
else uses "syntax" for....)
                                                        -- Jerry

The Cryptography Mailing List
Unsubscribe by sending "unsubscribe cryptography" to [EMAIL PROTECTED]

Reply via email to