Grouper: A Packet Classification Algorithm Allowing Time-Space Tradeoffs