ietf
[Top] [All Lists]

Re: Best practice for data encoding?

2006-06-07 13:39:27
On Wed Jun  7 15:37:28 2006, Michael Thomas wrote:
I guess that what part of what this devolves into is who we're writing these protocols/schemes for: machines or people? That, I think, is a huge false dilemma. We clearly are writing things for _both_ (the executors and the maintainers) ; the only question in my mind is whether an easy for human to maintain encoding is too inefficient on the wire for its task. In some cases it clearly is, but those cases are becoming the outliers -- especially
at app layer -- as the march of memory and bandwidth plods on.

I think it's worth noting that nobody is preventing you from using XML over a compressed channel, which tends to increase XML's efficiency rather sharply.

Compression also tends to make you look differently at protocol issues, because the repetitive, inefficient, protocol forms often compress equally well to, or even better than, a "better" structure - and they're also usually easier to handle.

Wire efficiency, for the most part, needs to take place by avoiding the transmission of information entirely, rather than trying to second-guess the compression.

As a rule, if you're moving strings around, or eliminating duplicates, within a single "send" of your protocol, you're probably wasting your time. In general, you want to be avoiding sending information at all.

The only reason you have for worrying about representation for wire efficiency is if resource shortage prevents you from compression entirely - bear in mind this implies that resource shortage has already prevented you from encryption - generally a bad thing.

As an example, IMAP and ACAP streams compress by around 70% on my client - and that's trying to be bandwidth efficient in its protocol usage. I've seen figures of 85% talked about quite seriously, too.

So in answer to the original question, I'd say that the current best practise for data encoding has to be RFC1952, Deflate - beyond that, it really doesn't matter all that much.

As an aside, whilst XMPP does provide a "pure" XML protocol, most protocols use XML as a payload, and use other forms to exchange protocol messages.

Dave.
--
Dave Cridland - mailto:dave(_at_)cridland(_dot_)net - 
xmpp:dwd(_at_)jabber(_dot_)org
 - acap://acap.dave.cridland.net/byowner/user/dwd/bookmarks/
 - http://dave.cridland.net/
Infotrope Polymer - ACAP, IMAP, ESMTP, and Lemonade

_______________________________________________
Ietf mailing list
Ietf(_at_)ietf(_dot_)org
https://www1.ietf.org/mailman/listinfo/ietf