Profile based method for packet header compression in a point to point link
First Claim
1. A method for compression of packet header information in a point to point link, the method comprising the steps of:
- establishing a point to point link between first and second network devices;
negotiating a first profile between the first and second network devices for packet traffic from the first network device to the second network device through the point to point link, where the first profile has a first profile identifier and a first default packet header value for a first packet header field;
receiving a first packet in the first network device from a first endpoint coupled to the first network device, where the first packet is addressed to a second endpoint coupled to the second network device;
if a value of the first packet header field of the first packet matches the first default packet header value for the first packet header field in the first profile, then;
removing the first packet header field from the first packet, and sending the first packet along with the first profile identifier from the first network device to the second network device through the point to point link;
receiving the first packet along with the first profile identifier at the second network device;
using the first profile identifier sent with the first packet to retrieve the first profile in the second network device; and
inserting the first default packet header value from the first profile into the first packet header field of the first packet at the second network device.
6 Assignments
0 Petitions
Accused Products
Abstract
A method is shown for compression of packet header information of packets transmitted on a point to point link. First and second endpoints of the point to point link negotiate a profile for packet header information for packets transmitted from the first endpoint to the second endpoint on the point to point link. The profile includes a predetermined default value for a predetermined header field of the packet header information. A packet sent from the first endpoint to the second endpoint over the point to point link includes a profile identifier for the profile and excludes the predetermined header field. The second endpoint uses the profile identifier to access the profile. The second endpoint then uses the predetermined default value for the predetermined header field from the profile to decode the packet.
217 Citations
25 Claims
-
1. A method for compression of packet header information in a point to point link, the method comprising the steps of:
-
establishing a point to point link between first and second network devices;
negotiating a first profile between the first and second network devices for packet traffic from the first network device to the second network device through the point to point link, where the first profile has a first profile identifier and a first default packet header value for a first packet header field;
receiving a first packet in the first network device from a first endpoint coupled to the first network device, where the first packet is addressed to a second endpoint coupled to the second network device;
if a value of the first packet header field of the first packet matches the first default packet header value for the first packet header field in the first profile, then;
removing the first packet header field from the first packet, and sending the first packet along with the first profile identifier from the first network device to the second network device through the point to point link;
receiving the first packet along with the first profile identifier at the second network device;
using the first profile identifier sent with the first packet to retrieve the first profile in the second network device; and
inserting the first default packet header value from the first profile into the first packet header field of the first packet at the second network device. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
receiving a second packet in the first network device from a third endpoint coupled to the first network device, where the second packet is addressed to a fourth endpoint coupled to the second network device;
if a value of the first packet header field of the second packet matches the first default packet header value for the first packet header field in the first profile, then;
removing the first packet header field from the second packet, combining the first and second packets; and
sending the combined first and second packets from the first network device to the second network device through the point to point link;
the step of receiving the first packet at the second network device further comprises receiving the combined first and second packets in the second network device; and
the step of inserting the first default packet header value from the first profile into the first packet header field of the first packet further includes inserting the first default packet header value from the first profile into the first packet header field of the second packet.
-
-
3. The method of claim 1, wherein:
-
the step of negotiating a first profile between the first and second network devices includes selecting the first packet header field to be an optional field;
the step of removing the first packet header field from the first packet further comprises removing the first packet header field from the first packet only when the value of the first packet header field matches the first default packet header value of the first profile; and
the step of inserting the first default packet header value from the first profile into the first packet header field of the first packet at the second network device further comprises inserting the first default packet header value from the first profile into the first packet header field of the first packet at the second network device only when the first packet header field is not present in the first packet received by the second network device.
-
-
4. The method of claim 1, wherein:
-
the step of negotiating a first profile between the first and second network devices includes selecting a second default packet header value for a second packet header field to be a non-guaranteed value, where the second packet header field contains a value that can be calculated from a contents of each packet; and
the method further includes the steps of;
removing the second packet header field from the first packet; and
recalculating a value for the second packet header field in the second network device from the contents of the first packet.
-
-
5. The method of claim 4, further including the steps of:
-
sending a new profile request from the second network device to the first network device that requests that the second default packet header value for the second packet header field be a guaranteed value, where the new profile request includes a second profile identifier;
sending a new profile acknowledge from the first network device to the second network device when the first network device determines that the first network device can recalculate the value of the second packet header field and establishing a second profile with the second profile identifier with the second default packet header value for the second packet header field selected to be guaranteed; and
sending a new profile not-acknowledge from the first network device to the second network device when the first network device determines that the first network device cannot recalculate the value of the second packet header field.
-
-
6. The method of claim 5, where the step of sending a new profile request from the second network device to the first network device includes sending the new profile request when activity on the second network device reaches a capacity threshold.
-
7. The method of claim 1, where the step of sending the first packet along with the first profile identifier includes:
-
placing the first packet in a first queue corresponding to the first profile; and
sending each packet in the first queue together from the first network device to the second network device along with the first profile identifier.
-
-
8. The method of claim 7, the method including the steps of:
-
receiving a second packet in the first network device; and
if a value of the first packet header field of the second packet matches the first default packet header value for the first packet header field in the first profile, then place the second packet in the first queue.
-
-
9. The method of claim 1, the method further comprising the steps of:
-
negotiating a second profile between the first and second network devices for packet traffic from the first network device to the second network device through the point to point link, where the second profile has a second profile identifier and a second default packet header value for a second packet header field;
receiving a second packet in the first network device from the first endpoint coupled to the first network device;
if a value of the second packet header field of the second packet matches the second default packet header value for the second packet header field in the second profile, then;
removing the second packet header field from the second packet, and placing the second packet in a second queue corresponding to the second profile; and
sending the packets in the second queue together from the first network device to the second network device along with the second profile identifier;
receiving the packets in the second queue along with the second profile identifier at the second network device;
using the second profile identifier sent with the packets in the second queue to retrieve the second profile in the second network device; and
inserting the second default packet header value from the second profile into the second packet header field of the second packet at the second network device.
-
-
10. The method of claim 1, the method further comprising the steps of:
-
detecting when a predetermined number of packets sent by the first network device to the second network device through the point to point link have a same value for the first packet header field that differs from the first default packet header value of the first profile; and
responsive to detecting the predetermined number of packets having the same value for the first packet header field, negotiating a second profile between the first and second network devices to replace the first profile, where the second profile has a second profile identifier and uses the same value as a second default packet header value for the first packet header field of the second profile.
-
-
11. A system for exchanging packets, the system comprising first and second network devices for connection to a network and transmission of packets, where:
-
each of the first and second network devices is configured to support a point to point link between the first and second network devices through the network, and negotiate a profile shared by the first and second network devices, where the profile includes a profile identifier and a default value for a first packet header field;
the first network device is further configured to receive a first packet and, if a value of the first packet header field of the first packet matches the default value of the first packet header field of the profile, remove the first packet header field from the first packet and transmit the profile identifier and the first packet to the second network device through the point to point link; and
the second network device is further configured to receive the profile identifier and the first packet from the first network device through the point to point link, use the profile identifier sent with the first packet to obtain the default value for the first packet header field from the profile, insert the default value into the first packet header field into the first packet, and retransmit the first-packet. - View Dependent Claims (12, 13, 14, 15, 16, 17)
the first network device is further configured to compare a value of the second packet header field of the first packet to the default value for the second packet header field of the profile and;
if the value of the second packet header field of the first packet differs from the default value for the second packet header field of the profile, then the first network device leaves the second packet header field in the first packet and sets a corresponding bit of a fields present field, if the value of the second packet header field of the first packet is the same as the default value for the second packet header field of the profile, then the first network device removes the second packet header field from the first packet and clears the corresponding bit of the fields present field, and the first network device transmits the fields present field along with the profile identifier and the first packet; and
the second network device is further configured to check the corresponding bit of the fields present field sent along with the profile identifier and the first packet and, if the bit corresponding to the second packet header field is clear, then the default value for the second packet header field from the profile is inserted into the first packet.
-
-
13. The system of claim 11, wherein:
-
the first network device is further configured to;
place the first packet in a queue for the profile before transmitting the first packet, receive a second packet and, if a value of the first packet header field of the second packet matches the default value of the first packet header field of the profile, remove the first packet -header field from the second packet and place the second packet in the queue for the profile, and combine the first and second packets in the queue with the profile identifier for transmission to the second network device; and
the second network device is further configured to receive the first and second packets combined with the profile identifier from the first network device and, after obtaining the default value for the first packet header field from the profile using the profile identifier, insert the default value for the first packet header field into the first packet header field of the first and second packets.
-
-
14. The system of claim 11, where:
-
the first and second network devices are configured to negotiate a second profile having another profile identifier and another default value for the first packet header that is different from the default value of the first profile;
the first network device is further configured to compare the value of the first packet header of the first packet to the another default value for the first packet header of the second profile and, if the value of the first packet header of the first packet matches the another default value, the n removing the first packet header of the first packet and transmitting the first packet with the another profile identifier of the second profile to the second network device; and
the second network device is further configured to receive the first packet with the another profile identifier of the second profile, use the another profile identifier to obtain the another default value from the second profile and insert the another default value into the first packet header of the first packet.
-
-
15. The system of claim 11, where:
-
the first and second network devices are further configured to negotiate that a value of a second packet header in the profile be determined from an other field in the first packet by the second network device;
the first network device is further configured to remove the second packet header from the first packet before transmitting the first packet with the profile identifier to the second network device; and
the second network device is further configured to determine from the profile obtained using the profile identifier that the second packet header is to be determined from the other field in the first packet, calculate the value of the second packet header using a value of the other field, and insert the calculated value into the second packet header of the first packet.
-
-
16. The system of claim 15, where:
-
the second network device is further configured to detect an over-capacity condition in the second network device and, responsive thereto, send a request to the first network device for establishment of a second profile, where the second profile has another profile identifier and a default value for the second packet header; and
the first network device is further configured to send an acknowledge to the second network device, responsive to the request for establishment of the second profile, and use the second profile in place of the first profile, if the first network device determines that a burden of calculating the value of the second packet header does not cause an over-capacity condition in the first network device and to send a not acknowledge to the second network device if the first network device determines that the burden of calculating the value of the second packet header does cause the over-capacity condition in the first network device.
-
-
17. The system of claim 11, where:
-
the first network device is further configured to detect when a predetermined number of packets have a same value for the first packet header that differs from the default value for the first packet header in the profile and, responsive thereto, send a request to the second network device for establishment of a second profile, where the second profile has another profile identifier and another default value for the first packet header;
the second network device is further configured to send an acknowledge to the first network device, responsive to the request for establishment of the second profile, and establish the second profile;
the first network device is still further configured, responsive to the acknowledge from the second network device and upon receiving a second packet having a value for the first packet header that matches the another default value for the first packet header of the second profile, to remove the first packet header of the second packet and combine the second packet with the another profile identifier for transmission to the second network device through the point to point link; and
the second-network device is still further configured, responsive to receiving the second packet with the another profile identifier, to obtain the another default value for the first packet header from the second profile using the another profile identifier for insertion into the first packet header of the second packet.
-
-
18. A network device for transmitting and receiving packets in a network, the network device comprising:
-
connection means for establishing a point to point link with an other network device through the network;
profile negotiating means for negotiating a first profile with the other network device, where the first profile has a first profile identifier value and a first default value for a first packet header;
storing means for storing negotiated profiles and for storing compression options and default values for packet headers;
receiving means for receiving a packet for transmission through the point to point ink to the other network device; and
compression means for compressing the received packet, where the compression means removes the first packet header from the received packet and combines the received packet with the first profile identifier value for transmission to the other network device when a value of the first packet header of the received packet matches the first default value. - View Dependent Claims (19, 20, 21, 22, 23, 24, 25)
packet reconstruction means for receiving from the other network device a compressed packet with the first profile identifier value, using the first profile identifier value to obtain the first default value from the first profile, and inserting the default value into the first packet header of the compressed packet.
-
-
20. The network device of claim 18, where the compression means is further configured to place the received packet in a queue for the first profile, and remove the first packet header from an other received packet, when a value of the first packet header of the other received packet matches the first default value of the first profile, placing the other received packet on the queue for the first profile, and combine the received packet, the other received packet and the first profile identifier value for transmission to the other network device.
-
21. The network device of claim 18, where the compression means is further configured to remove the first packet header from the received packet only when the value of the first packet header of the received packet matches the first default value and set a bit corresponding to the first packet header in a fields present field, and combine the received packet with the first profile identifier value and the fields present field for transmission to the other network device.
-
22. The network device of claim 21, the device including packet reconstruction means for receiving from the other network device a compressed packet with the first profile identifier value and the fields present field, using the first profile identifier value to obtain the first default value from the first profile, and, only when the bit corresponding to the first packet header in the fields present field is set, inserting the default value into the first packet header of the compressed packet.
-
23. The network device of claim 18, the device further including monitoring means for:
-
detecting when a predetermined number of packets received by the network device for transmission to the other network device through the point to point link have a same value for the first packet header field that differs from the default value for the first packet header in the first profile;
negotiating a second profile with the other network device having a second profile identifier and the same value for the first packet header; and
replacing use of the first profile with use of the second profile by the compression means.
-
-
24. The network device of claim 18, where the negotiating means is further configured to identify in the first profile a second packet header that can be recalculated from a value of an other packet header, and the network device includes
packet reconstruction means for receiving from the other network device a compressed packet with the first profile identifier value, using the first profile identifier value to identify the second packet header, calculate a value for the second packet header from the value of the other packet header in the compressed packet, and insert the calculated value into the second packet header of the compressed packet. -
25. The network device of claim 24, the network device including over-capacity detection means for detecting an over-capacity condition in the network device, requesting a second profile with the other network device, where the second profile has a second profile identifier and the profile identifies the second packet header as a field that must be calculated from the other field before transmission and not removed by the compression means.
Specification