On Mon Nov  5 11:51:16 2007, Michal 'vorner' Vaner wrote:
On Mon, Nov 05, 2007 at 11:40:18AM +0000, Dave Cridland wrote:
> A new top-level stanza of (say) <blob/>, which much the same attributes as > any other routable stanza, but also has an octet count. Upon receipt, the > XML processing is suspended, and the following octets are handled verbatim:
>
> <blob from='[EMAIL PROTECTED]/court' to='[EMAIL PROTECTED]/court' > octet-count='4'/>1234

You probably can not do that with any reasonably out-of-the-box XML
parser. Furthermore, you may need to pass the stream trough charset
decoder to get some internal stringish representation. This will make it
mad. So, in short, I strongly disagree here.


An alternate would be to encapsulate both XML and blobs, which'd be an even more radical departure. (And look impressively like BEEP). So for each chunk, you'd predefine how long it was, and whether it was blob or XML. (Yes, there are defined formats for doing so, which have been mentioned on this list before).

Or - just a thought - we could pinch IMAP's synchronizing literals:

C: <blob ... octet-count='4096' sync='true'>
S: <blob ... sync='go=ahead'>
C: [4096 octets of blob]
C: [... more XML ...]

This adds a round-trip to all blob-stanza transfers, of course. (Although it's a hop-by-hop RTT, not an end-to-end RTT). No reason that couldn't be an option, too, so implementations which can cope with non-synchronizing blobs can say so. (I personally suspect many will be able to).


But you may like SCTP or how's the protocol called and push the blobs
out-of-the stream.

Yes, but I doubt that'd get much traction. SCTP stacks are rare enough, and especially so in those areas where the base64 encoding overhead of (say) IBB makes a serious difference. (Yes, you could encourage all XMPP clients to include a SCTP/UDP implementation, but that's a heavy requirement, I'd have thought).

 Or another "blobby" TCP connection to the server. (if
you really want to send these things trough the server).

Well, I think increasingly we need to send these things via the server. In fact, we're doing so quite a bit - the question is, do we care about the base64 overhead enough that we want to address this.

Another option would be to setup a distinct connection (and protocol) for routing blobs, and so send them through the server, yet not in-band. I'm not comfortable with this, because it means essentially duplicating all security information, and maintaining synchronization between two distinct streams.

Dave.
--
Dave Cridland - mailto:[EMAIL PROTECTED] - xmpp:[EMAIL PROTECTED]
 - acap://acap.dave.cridland.net/byowner/user/dwd/bookmarks/
 - http://dave.cridland.net/
Infotrope Polymer - ACAP, IMAP, ESMTP, and Lemonade

Reply via email to