Patent ID: 7609722

Claim:
A method of communicating digital data partitioned into a plurality of frames over a wireless communication channel, the method comprising: using a transmitter, identifying on which of the plurality of frames compression should be attempted; for each identified frame, repetitively compressing different search strings obtained from the identified frame, thereby creating a partially compressed frame; continuing repetitively compressing until either an entire frame has been compressed, thereby resulting in a compressed frame for transmission; or the partially compressed frame is larger than the identified frame, thereby resulting in a non-compressed frame for transmission; setting a compression flag in a header to: indicate whether the compressed frame or the non-compressed frame has resulted for the each identified frame; and indicate that a non-compressed frame has resulted for each frame that was not identified; and transmitting over the wireless communication channel a transmit block, the transmit block comprising: the header with a set compression flag; and one of the compressed frame and the non-compressed frame, wherein the step of repetitively compressing, for each different search string, includes the steps of: obtaining a hash of the search string using a hash function; using the hash to select a plurality of potential match strings within the identified frame, wherein using the hash includes: populating a hash table with the hash and a corresponding address; and selecting the plurality of potential match strings using the hash and a populated hash table; comparing each of the plurality of potential match strings with the search string to determine which potential match string will result in the most matches; for a potential match string that results in the most matches, identifying an index and a length to identify a location of the potential match string within the identified frame; and using the index and the length to create the partially compressed frame, wherein the search string includes a plurality of bytes, and the hash is generated using less than all of the plurality of bytes.