Method and apparatus for data compression of network packets
First Claim
1. A data communications method comprising:
- dividing the input stream of data into a plurality of packets;
identifying a respective packet history state for particular ones of the packets as a function of at least one acknowledgement vector;
encoding the particular ones of the plurality of packets as a function of the respective packet history associated therewith; and
compressing the plurality of packets into a compressed data stream.
3 Assignments
0 Petitions
Accused Products
Abstract
A method and apparatus for compressing packets that enables inter-packet compression thereby achieving greater robustness and increased compression ratios without the deleterious effects, e.g., the effect of packet loss multiplying, of prior compression schemes. More particularly, a so-called acknowledgment scheme is employed in conjunction with the specific compression algorithm such that the transmitter, i.e., sender, can limit the history used by the compression algorithm to those packets that are correctly received. In particular, a vector identifying the packets used as the history is included in the compressed packet thereby enabling the receiver to reconstruct the packet history state necessary to decompress the packet. Advantageously, increased robustness and greater compression ratios are achieved independent of any particular one compression scheme.
-
Citations
33 Claims
-
1. A data communications method comprising:
-
dividing the input stream of data into a plurality of packets;
identifying a respective packet history state for particular ones of the packets as a function of at least one acknowledgement vector;
encoding the particular ones of the plurality of packets as a function of the respective packet history associated therewith; and
compressing the plurality of packets into a compressed data stream. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method of transmitting a communications stream between a sending location and a receiving location across a communications channel, the method comprising:
-
dividing the communications stream into a plurality of packets;
identifying a respective packet history state for particular ones of the packets as a function of a first acknowledgement vector, the first acknowledgement vector being received by the sending location from the receiving location;
encoding the particular ones of the packets as a function of the respective packet history associated therewith, each such packet having a packet header associated therewith, the packet header including at least a history vector which identifies the respective packet history state of the packet;
compressing the plurality of packets into a compressed data stream; and
transmitting, across the communications channel, the compressed data stream from the sending location to the receiving location. - View Dependent Claims (9, 10, 11, 12, 13, 14)
receiving the compressed data stream at the receiving location, extracting the respective history state associated with the particular ones of the packets; and
decompressing the compressed data stream to recover the plurality of packets, the particular ones of the encoded packets being decompressed as a function of the extracted packet history associated therewith.
-
-
13. The method of claim 12 further comprising:
updating a received packet state as a function of the decompressed packets.
-
14. The method of claim 13 further comprising:
-
constructing a second acknowledgment vector, the second acknowledgement vector confirming a receipt of the decompressed packets by the receiving location; and
transmitting the second acknowledgement vector from the receiver location to the sending location.
-
-
15. A method of recovering data from a compressed data stream, the method comprising:
-
receiving the compressed data stream, the compressed data stream including a plurality of encoded packets;
identifying a respective history state associated with particular ones of the encoded packets; and
decompressing the compressed data stream to recover the data;
the particular ones of the encoded packets being decompressed as a function of the respective packet history associated therewith.- View Dependent Claims (16, 17)
updating a received packet state as a function of the packets being decompressed.
-
-
17. The method of claim 16 further comprising:
-
constructing an acknowledgment vector; and
transmitting the acknowledgement vector from a receiver to a transmitter, the receiver and the transmitter exchanging the compressed data stream across at least one communications channel.
-
-
18. A data communications apparatus comprising:
-
a receiver for receiving a data stream for transmission by the apparatus, the data stream comprising a plurality of packets;
a encoder for identifying a plurality of packet history states as a function of at least one acknowledgement vector, each packet history state being associated with a respective one of the packets, and for encoding the plurality packets as a function of the plurality of history states; and
a compressor for compressing the packets into a compressed data stream. - View Dependent Claims (19, 20, 21, 22, 23, 24)
a transmitter for transmitting the compressed data stream across a communication channel.
-
-
20. The data communications apparatus of claim 19 wherein the communications channel is part of an Internet.
-
21. The data communications apparatus of claim 18 further comprising:
a decompressor for receiving an input data stream, the input data stream including a plurality of compressed packets, identifying a respective history state associated with particular ones of the compresses packets and decompressing the plurality of compressed packets, the particular ones of the compressed packets being decompressed as a function of the respective packet history associated therewith.
-
22. The data communications apparatus of claim 21 wherein the decompressor constructs at least one acknowledgement vector for transmission from the data communications apparatus.
-
23. The data communications apparatus of claim 22 wherein the acknowledgement vector confirms a receipt of the decompressed packets by the data communications apparatus.
-
24. The data communications apparatus of claim 18 wherein the compressor utilizes Lempel-Ziv coding for the compressing the packets into the compressed data stream.
-
25. An apparatus for processing a compressed digital signal, the compressed digital signal being produced by, dividing an input stream of digital data into a plurality of packets;
- identifying a respective packet history state for particular ones of the packets as a function of at least one acknowledgement vector, encoding the particular ones of the packets as a function of the respective packet history associated therewith, each packet having a packet header associated therewith, the packet header including at least a history vector which identifies the respective packet history state of the packet, compressing the encoded packets into the compressed digital signal and applying the compressed digital signal to a communications channel, the apparatus comprising;
a receiver for receiving the compressed digital signal from the communications channel; and
a decompressor for decompressing the received compressed digital signal, and recovering the input stream of digital data from the decompressed digital signal. - View Dependent Claims (26, 27, 28, 29)
- identifying a respective packet history state for particular ones of the packets as a function of at least one acknowledgement vector, encoding the particular ones of the packets as a function of the respective packet history associated therewith, each packet having a packet header associated therewith, the packet header including at least a history vector which identifies the respective packet history state of the packet, compressing the encoded packets into the compressed digital signal and applying the compressed digital signal to a communications channel, the apparatus comprising;
-
30. A machine-readable medium having stored thereon a plurality of instructions, the plurality of instructions including instructions that, when executed by a machine, cause the machine to perform of a method of transmitting a communications stream between a sending location and a receiving location across a communications channel by dividing the communications stream into a plurality of packets;
- identifying a respective packet history state for particular ones of the packets as a function of a first acknowledgement vector, the first acknowledgement vector being received by the sending location from the receiving location;
encoding the particular ones of the packets as a function of the respective packet history associated therewith, each such packet having a packet header associated therewith, the packet header including at least a history vector which identifies the respective packet history state of the packet;
compressing the plurality of packets into a compressed data stream; and
transmitting, across the communications channel, the compressed data stream from the sending location to the receiving location. - View Dependent Claims (31, 32, 33)
- identifying a respective packet history state for particular ones of the packets as a function of a first acknowledgement vector, the first acknowledgement vector being received by the sending location from the receiving location;
Specification