I was wondering:
What is considered best practice for encoding data in protocols
within the IETF's purview?
Traditionally, many protocols use text but obviously this doesn't
really work for protocols that carry a lot of data, because text
lacks structure so it's hard to parse. XML and the like are text-
based and structured, but take huge amounts of code and processing
time to parse (especially on embedded CPUs that lack the more
advanced branch prediction available in the fastest desktop and
server CPUs). Then there is the ASN.1 route, but as we can see with
SNMP, this also requires lots of code and is very (security) bug
prone. Many protocols use "hand crafted" binary formats, which has
the advantage that the format can be tailored to the application but
it requires custom code for every protocol and it's hard to get
right, especially the simplicity/extendability tradeoff.
The ideal way to encode data would be a standard that requires
relatively little code to implement, makes for small files/packets
that are fast to process but remains reasonably extensible.
So, any thoughts? Binary XML, maybe?
Ietf mailing list