What part does hardware compression play in network apps
For a long time I've assumed that when I send data down the wire, it'll be compressed for me, as 开发者_运维技巧NICs have supported hardware compression for decades. Recent testing however has shown this to be a naive view, so have started implementing software compression in my apps and services.
My question therefor is, to what extent can we as software dev's rely on hardware network compression, or have I fundamentally misunderstood what it's there for.
There are TCP/IP header compressions (not the payload). Cisco also has Layer 2 payload compressions http://www.cisco.com/en/US/tech/tk713/tk802/technologies_q_and_a_item09186a008019be75.shtml that's very low in the network stack.
For network apps, you're at layer 7, and these compressions should be transparent to you. Depending on the nature of your payload, you may have a much superior throughput than what's done in layer 2 (e.g. H.264), or marginal improvement (e.g. text file transmission). Since lower layer is transparent, I'd suggest don't bet on it. You might be transmitting over something that does not compress at all (e.g. IP over ATM) and thus there's nothing for you to rely on "hardware compression".
精彩评论