mnot’s blog

Design depends largely on constraints.” — Charles Eames

Saturday, 1 May 2004

Protocol Design

Stupid Compression Tricks

I’m watching a company called Riverbed with interest, because they just released a new product, “Steelhead”. In a nutshell, it’s IP datagram compression done with a shared, dynamic dictionary.

That’s right, it has a disk on each end of the wire, and they keep copies of what goes by locally, so that they can send a hash or other nonce of it if they have a hit. They also do some optimisation of crappy protocols, but that’s the easy part.

I knew I’d seen this technique before, and with a little digging and asking around (thanks, Brian) this came up: Increasing Effective Link Bandwidth by Suppressing Replicated Data. Apparently, Peribit uses similar techniques.

It’ll be interesting to see how this technique plays out; the promise of free and easy capacity is pretty tempting, and it’s quite elegant, in its own way. However, it’s unavoidably ignorant of the traffic’s application-specific semantics, and therefore I think there’s a limit to the benefits you’ll see from it. To me, this feels more like a band-aid than a solution.