Building notes, projects, and occasional rants

Framing protocols

I've been playing with framing protocols.

I need a protocol with:

  • low overhead: it will be used for mobile communications and some of us pay for each byte;
  • multiplex streams: you should be able to open channels inside the same TCP connection;
  • restartable: each session has an ID and I need to restart all of the channels inside it very quickly if my TCP connection dies.

I've looked at AMQP wire protocol, BLIP, BEEP and some others. I plan to look over SSH too.

I'm looking for further suggestions of protocols to reuse. Anyone?