 <p>There are two things you aught to keep in mind when trying to optimize network bandwidth.</p> <p>The first is that you have to transfer about 40 bytes of overhead every time you want to talk to the peer. That's just inherent in IP. Trying to get communication down to a single byte is often a false economy. What you should be doing is making the best of the round trip: combine the message with as much additional data as the peer <em>might</em> later need. To a limited extent, the Nagle algorithm already takes care of this for naive services, delaying the packet until the peer actually indicates that it's ready for more data, and that's usually sufficient.</p> <p>The second is that, at typical MTU scales, it's almost impossible to design an uncompressed, binary protocol that's more space efficient than a simpler protocol that is tunneled using general purpose compression. There is no "packed binary http" because the gzipped ascii transfer encoding would beat it anyways. When bandwidth is a concern, always include compression. All that's left is to make sure that your protocol is "easy" to compress. </p>