IP Library Granted Patent US 7,613,185
Granted Patent B2
US 7,613,185 · App. 10/803,002 · Granted Nov 3, 2009

Packet header compression for lossy channels

Assignees: Verizon Corporate Services Group Inc.; BBN Technologies Corp.
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,613,185
App. No.
10/803,002
Granted
Nov 3, 2009
Kind
B2
Abstract

An uncompressed packet header can be compressed in size to form a smaller, compressed packet header, such that the compressed header can include values that can be used to reproduce the uncompressed header. A compressed header can include at least two such values. A first value of the at least two values can be computed based on a second uncompressed header and can be used to derive the uncompressed header. Similarly, a second value of the at least two values can be computed based on a third uncompressed header and can be used to derive the same uncompressed header. Accordingly, the uncompressed header can be derived based on the first value and the second uncompressed header, or based on the second value and the third uncompressed header. The uncompressed header, second uncompressed header, and third uncompressed header can be associated with different packets.

Claims (79)

1. A packet header decompressor including a computing device and a storage space for maintaining a history, said decompressor configured to receive a packet, said packet comprising:

a compressed header comprising:

a first value associated with a second uncompressed header, configured for deriving an uncompressed header for said packet based on said second uncompressed header; and

a second value associated with a third uncompressed header, configured for deriving said uncompressed header based on said third uncompressed header,

where said uncompressed header, said second uncompressed header, and said third uncompressed header are associated with different packets arriving in any order; and

wherein said packet includes a first sequence number, said second uncompressed header includes a second sequence number, said third uncompressed header includes a third sequence number, and the availability of at least one of said second uncompressed header and said third uncompressed header in said history for said packet is determined based on said sequence numbers.

2. The packet header decompressor of claim 1 , wherein said first value is computed based on said uncompressed header and said second uncompressed header.

3. The packet header decompressor of claim 1 , wherein said first value corresponds to a difference between: a value representative of a portion of said uncompressed header, and a value representative of a corresponding portion of said second uncompressed header.

4. The packet header decompressor of claim 1 , wherein said second value is computed based on said uncompressed header and said third uncompressed header.

5. The packet header decompressor of claim 1 , wherein said second value corresponds to a difference between: a value representative of a portion of said uncompressed header, and a value representative of a corresponding portion of said third uncompressed header.

6. The packet header decompressor of claim 1 , wherein said first value and said second value are encoded by at least one of: a variable-length code and a sign-based code.

7. The packet header decompressor of claim 1 , wherein said uncompressed header, said second uncompressed header, and said third uncompressed header include at least one of: an Internet Protocol header, a Transmission Control Protocol header, a User Datagram Protocol header, and a Real-Time Protocol header.

8. The packet header decompressor of claim 1 , wherein said compressed header further comprises:

at least one of: a destination address, a packet sequence number, and a packet stream identifier number.

9. The packet header decompressor of claim 1 , wherein said compressed header further comprises:

at least one other value distinct from said first and second values, said at least one other value for deriving said uncompressed header based on at least one other uncompressed header distinct from said second uncompressed header and said third uncompressed header.

10. The packet header decompressor of claim 1 , wherein said packets associated with said second and third uncompressed headers are consecutive headers from a packet stream.

11. A method of communicating data, the method comprising:

maintaining, at a first network node, at least an uncompressed header;

transmitting, from said first network node, a packet comprising:

a first value for deriving said uncompressed header based on a second uncompressed header; and

a second value for deriving said uncompressed header based on a third uncompressed header;

receiving said packet at a second network node;

maintaining said packet at said second network node until at least one of said second uncompressed header and said third uncompressed header are made available;

deriving said uncompressed header at said second network node based on said at least one of said second uncompressed header and said third uncompressed header; and

maintaining a history of uncompressed packet headers at said second network node, wherein said history contains a subset of the uncompressed packet headers.

12. The method of claim 11 , wherein said packet traverses a connection from said first node to said second node that includes no intervening nodes.

13. The method of claim 11 , wherein said packet traverses a connection from said first node to said second node that includes at least one intervening node.

14. The method of claim 11 , further comprising:

obtaining said first value by computing a difference between: a value representative of a portion of said uncompressed header, and a value representative of a corresponding portion of said second uncompressed header.

15. The method of claim 11 , further comprising:

obtaining said second value by computing a difference between: a value representative of a portion of said uncompressed header, and a value representative of a corresponding portion of said third uncompressed header.

16. The method of claim 11 , further comprising:

obtaining at least one other value distinct from said first and second values, said at least one other value for deriving said uncompressed header based on at least one other uncompressed header distinct from said second and third uncompressed headers.

17. The method of claim 11 , wherein deriving said uncompressed header at said second node comprises:

if said second uncompressed header is maintained at said second node, deriving said uncompressed header by summing said second uncompressed header and said first value; and

if said third uncompressed header is maintained at said second node, deriving said uncompressed header by summing said third uncompressed header and said second value.

18. A method of communicating data, the method comprising:

storing a plurality of packet headers;

receiving a packet comprising a plurality of values corresponding to said plurality of packet headers, each of said plurality of values for deriving an uncompressed header;

maintaining said packet until at least one of said plurality of packet headers is made available;

deriving said uncompressed header based on one of said plurality of values and a corresponding one header in said plurality of packet headers; and

maintaining a history of uncompressed packet headers, wherein said history contains a subset of the uncompressed packet headers.

19. The method of claim 18 , wherein a predetermined number of packet headers are stored.

20. The method of claim 18 , further comprising:

replacing one of said plurality of packet headers with said uncompressed header.

21. The method of claim 18 , further comprising:

including said uncompressed header in said plurality of packet headers.

22. A computer program product embodied on a computer-readable medium for communicating data, the computer program product comprising:

instructions for causing a processor to:

store a plurality of packet headers;

receive a packet comprising a plurality of values corresponding to said plurality of packet headers, each of said plurality of values for deriving an uncompressed header;

maintain said packet until at least one of said plurality of packets headers is made available;

derive said uncompressed header based on one of said plurality of values and a corresponding one header in said plurality of packet headers; and

maintain a history of uncompressed packet headers, wherein said history contains a subset of the uncompressed packet headers.

23. The method of claim 11 , wherein said packet includes a first sequence number, said second uncompressed header includes a second sequence number, said third uncompressed header includes a third sequence number, and the availability of at least one of said second uncompressed header and said third uncompressed header in said history for said packet is determined based on said sequence numbers.

24. A method of communicating data, the method comprising:

maintaining, at a first network node, at least an uncompressed header;

transmitting, from said first network node, a packet comprising:

a first value for deriving said uncompressed header based on a second uncompressed header; and

a second value for deriving said uncompressed header based on a third uncompressed header;

receiving said packet at a second network node;

maintaining said packet at said second network node until at least one of said second uncompressed header and said third uncompressed header are made available;

deriving said uncompressed header at said second network node based on said at least one of said second uncompressed header and said third uncompressed header; and

maintaining a history of uncompressed packet headers at said second network node;

wherein maintaining said packet at said second network node until at least one of said second uncompressed header and said third uncompressed header are made available further comprises:

receiving a second packet at said second network node, said second packet comprising:

a third value for deriving said second uncompressed header based on a fourth uncompressed header; and

a fourth value for deriving said second uncompressed header based on a fifth uncompressed header;

maintaining said second packet at said second network node until at least one of said fourth uncompressed header and said fifth uncompressed header are made available; and

deriving said second uncompressed header at said second network node based on at least one of said fourth uncompressed header and said fifth uncompressed header.

25. A computer program product embodied on a computer-readable medium for communicating data, the computer program product comprising:

instructions for causing a processor to:

store a plurality of packet headers;

receive a packet comprising a plurality of values corresponding to said plurality of packet headers, each of said plurality of values for deriving an uncompressed header;

maintain said packet until at least one of said plurality of packets headers is made available;

derive said uncompressed header based on one of said plurality of values and a corresponding one header in said plurality of packet headers; and

maintain a history of uncompressed packet headers;

wherein said packet includes a first sequence number, a second uncompressed header in said plurality of packet headers includes a second sequence number, a third uncompressed header in said plurality of packet headers includes a third sequence number, and the availability of at least one of said second uncompressed header and said third uncompressed header in said history for said packet is determined based on said sequence numbers.

Assignments (8)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 28, 2014
From: VERIZON CORPORATE SERVICES GROUP INC.
To: VERIZON PATENT AND LICENSING INC.
Reel/Frame 033421/0403 →
CHANGE OF NAME Recorded Jun 11, 2010
From: BBN TECHNOLOGIES CORP.
To: RAYTHEON BBN TECHNOLOGIES CORP.
Reel/Frame 024523/0625 →
RELEASE OF SECURITY INTEREST Recorded Oct 27, 2009
From: BANK OF AMERICA, N.A. (SUCCESSOR BY MERGER TO FLEET NATIONAL BANK)
To: BBN TECHNOLOGIES CORP. (AS SUCCESSOR BY MERGER TO BBNT SOLUTIONS LLC)
Reel/Frame 023427/0436 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 18, 2009
From: BBNT SOLUTIONS LLC
To: VERIZON CORPORATE SERVICES GROUP INC.; BBNT SOLUTIONS LLC
Reel/Frame 023250/0526 →
MERGER Recorded Sep 18, 2009
From: BBNT SOLUTIONS LLC
To: BBN TECHNOLOGIES OPERATING CORP.
Reel/Frame 023250/0632 →
CHANGE OF NAME Recorded Sep 18, 2009
From: BBN TECHNOLOGIES OPERATING CORP.
To: BBN TECHNOLOGIES CORP.
Reel/Frame 023251/0065 →
INTELLECTUAL PROPERTY SECURITY AGREEMENT SUPPLEMENT Recorded Dec 4, 2008
From: BBN TECHNOLOGIES CORP.
To: BANK OF AMERICA, N.A.
Reel/Frame 021926/0017 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 17, 2004
From: ELLIOTT, BRIG BARNUM
To: BBN TECHNOLOGIES
Reel/Frame 015095/0655 →
Continuity (1)
Related Publication 20050207408A1 · Sep 22, 2005