[standards-jig] JNG Ramblings.
m at tthias.net
Fri Aug 9 14:45:51 UTC 2002
Thomas Muldowney wrote:
>It's hard for me to like it one way or the other without doing some code
>to see what's actually easier, but I still want to hear comments from
>both sides. Mike's post is well laid out, and thoughtful, but this
>isn't helpful. Could you expound a bit more?
One of the reasons why I don't like a binary Jabber protocol has already
been mentioned by others: We loose the possibility to test a component
with telnet - and I also do this very often. But that's not the real
reason why I don't like it.
Some people here promote a binary protocol because they think this would
be easier for developpers. But I completely disagree with that:
- It's much easier to debug a non-binary protocol. Not just because you
can telnet, it's also that that you can easily tcpdump the network
traffic and see what has been exchanged. If there has been send wrong
data you see it at the first look - wrong bits, wrong packet length
numbers and all that things are much harder so recognize in a dump.
- A binary protocol has less redundancy, this means it's less tollerant
on errors and it's less robust.
- "Packet sizes" in binary protocols are always limited as size fields
have limited size, this limits the extensibility.
- In non-binary protocols there are more ways to extend the protocol
when new features are added.
- When programmers deal with binary protocols they tend to use fixed
size buffers ... this causes buffer overflows. My impression is that
binary protocols are more often vulnerable.
- Programmers have to deal with endianness, this can be a really hard
work in some languages especially if you want to write portable code.
Two other comments:
- The protocols that have success are the simple protocols: SMTP, NNTP,
SNMP, HTTP, POP3, IMAP, ... all of them are protocols you could even
implement without much hacking and reading the specs.
- If we want to support virtual channels we don't have to invent a new
protocol for that: There is already BEEP and others that can be used for
Jabber this generation is an existing working protocol. There are many
things that can be improved, especially it would be a very good thing if
the protocol core and the IM application would be separated. But
changing the protocol that radical means that we have a totally new
protocol and we have to support two different protocols.
Fon: +49-700 77007770 http://matthias-wimmer.de/
Fax: +49-89 312 88654 jabber://email@example.com
More information about the Standards