IP Library Granted Patent US 8,923,299
Granted Patent B2
US 8,923,299 · App. 13/619,283 · Granted Dec 30, 2014

Segmentation and reassembly of network packets

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 8,923,299
App. No.
13/619,283
Granted
Dec 30, 2014
Kind
B2
Abstract

Reassembly of fragments into a packet comprises receiving an incoming fragment of a packet from a network wherein each fragment comprises a segment of the packet and a header, generating a reassembly key using selected information from the incoming fragment header wherein the selected information is the same for all fragments of the packet, checking a reassembly table in a content addressable memory to find an entry that includes a logic key matching the reassembly key, and using a content index in the found entry and a sequence number of the incoming fragment within the packet, to determine a location offset in a reassembly buffer area for storing the incoming fragment at said location offset in the reassembly buffer area for the packet for reassembly.

Claims (55)

1. A method for reassembling fragments of a packet, comprising:

receiving an incoming fragment of a packet from a packet network, wherein each fragment comprises a segment of the packet and a header;

generating a reassembly key using selected information from the incoming fragment header, wherein the selected information is the same for all fragments of the packet;

checking a reassembly table maintained in a content addressable memory to find an entry that includes a logic key matching the reassembly key;

using a content index in the found entry and a sequence number of the incoming fragment within the packet, to determine a location offset in a reassembly buffer area for storing the incoming fragment; and

storing the incoming fragment at said location offset in the reassembly buffer area for the packet for reassembly;

wherein the reassembly table includes one or more entries corresponding to one or more packets, and wherein each entry comprises a logic key for a corresponding packet and a content index into a reassembly buffer area for storing incoming fragments of the corresponding packet.

2. The method of claim 1 ,

wherein the selected information does not change across different fragments of the packet.

3. The method of claim 1 , further comprising:

in response to an incoming fragment of a packet, if the incoming fragment is a Start of Packet (SOP) fragment of a packet:

generating a new logic key using selected information from the SOP fragment header, wherein the selected information is the same for all fragments of the packet;

allocating an area of the reassembly buffer for storing fragments of the packet; and

placing a new entry into the reassembly table, wherein the new entry includes said new logic key and a new content index into the reassembly buffer area for storing incoming fragments of that packet.

4. The method of claim 1 , further comprising:

reassembling the packet using the stored fragments in the reassembly buffer area for the packet.

5. The method of claim 4 , wherein reassembling the packet comprises performing error detection and error correction for each fragment for packet reassembly.

6. The method of claim 1 , wherein the content addressable memory comprises a ternary content addressable memory (TCAM), wherein the reassembly key is provided to the TCAM and in one operation the TCAM returns an entry in the reassembly table where a matching logic key is stored, if found.

7. The method of claim 1 , wherein the network comprises an Internet Protocol (IP) network in a distributed information technology environment.

8. A packet processing system, comprising:

a reassembly module that reassembles fragments of a packet, wherein each fragment comprises a segment of the packet and a header; and

a content accessible memory;

wherein the reassembly module receives an incoming fragment of a packet from a packet network and generates a reassembly key using selected information from the incoming fragment header, wherein the selected information is the same for all fragments of the packet;

wherein the reassembly module checks a reassembly table maintained in the content addressable memory to find an entry that includes a logic key matching the reassembly key; and

wherein the reassembly modules uses a content index in the found entry and a sequence number of the incoming fragment within the packet, to determine a location offset in a reassembly buffer area for storing the incoming fragment for the packet for reassembly; and

wherein the reassembly table includes one or more entries corresponding to one or more packets, and wherein each entry comprises a logic key for a corresponding packet and a content index into a reassembly buffer area for storing incoming fragments of the corresponding packet.

9. The system of claim 8 ,

wherein the selected information does not change across different fragments of the packet.

10. The system of claim 9 , wherein the reassembly module is configured such that in response to an incoming fragment of a packet, if the incoming fragment is a Start of packet (SOP) fragment of a packet, the reassembly module:

generates a new logic key using selected information from the SOP fragment header, wherein the selected information is the same for all fragments of the packet;

allocates an area of the reassembly buffer for storing fragments of the packet; and

places a new entry into the reassembly table, wherein the new entry includes said new logic key and a new content index into the reassembly buffer area for storing incoming fragments of that packet.

11. The system of claim 8 , wherein the reassembly module reassembles the packet using the stored fragments in the reassembly buffer area for the packet.

12. The system of claim 11 , wherein the reassembly module detects and corrects errors in each fragment for packet reassembly.

13. The system of claim 8 , wherein the content addressable memory comprises a ternary content addressable memory (TCAM), wherein the reassembly key is provided to the TCAM and in one operation the TCAM returns an entry in the reassembly table where a matching logic key is stored, if found.

14. The system of claim 9 , wherein the network comprises an Internet Protocol (IP) network in a distributed information technology environment.

15. A method for reassembling fragments of a packet, comprising:

receiving an incoming fragment of a packet from a packet network, wherein each fragment comprises a segment of the packet and a header;

generating a reassembly key using selected information from the incoming fragment header, wherein the selected information is the same for all fragments of the packet;

checking a reassembly table maintained in a content addressable memory to find an entry that includes a logic key matching the reassembly key;

using a content index in the found entry and a sequence number of the incoming fragment within the packet, to determine a location offset in a reassembly buffer area for storing the incoming fragment;

storing the incoming fragment at said location offset in the reassembly buffer area for the packet for reassembly; and

reassembling the packet using the stored fragments in the reassembly buffer area for the packet;

wherein the content addressable memory comprises a ternary content addressable memory (TCAM); and

wherein the reassembly table includes one or more entries corresponding to one or more packets, and wherein each entry comprises a logic key for a corresponding packet and a content index into a reassembly buffer area for storing incoming fragments of the corresponding packet.

16. The method of claim 15 , further comprising:

providing the reassembly key to the TCAM wherein in one operation the TCAM returns an entry in the reassembly table where a matching logic key is stored, if found currently amended;

wherein the selected information does not change across different fragments of the packet.

17. The method of claim 15 , further comprising:

in response to an incoming fragment of a packet, if the incoming fragment is a Start of Packet (SOP) fragment of a packet:

generating a new logic key using selected information from the SOP fragment header, wherein the selected information is the same for all fragments of the packet;

allocating an area of the reassembly buffer for storing fragments of the packet; and

placing a new entry into the reassembly table, wherein the new entry includes said new logic key and a new content index into the reassembly buffer area for storing incoming fragments of that packet.

18. The method of claim 16 , wherein reassembling the packet comprises performing error detection and error correction for each fragment for packet reassembly.

19. The method of claim 16 , wherein the network comprises an Internet Protocol (IP) network in a distributed information technology environment.

Assignments (5)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 6, 2019
From: LENOVO ENTERPRISE SOLUTIONS (SINGAPORE) PTE LTD.
To: LENOVO INTERNATIONAL LIMITED
Reel/Frame 050300/0570 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNMENT DOCUMENT CONTAINING TYPO ERRORS PREVIOUSLY RECORDED AT REEL: 037101 FRAME: 0969. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Dec 28, 2015
From: LENOVO ENTERPRISE SOLUTIONS (SINGAPORE) PTE. LTD.
To: LENOVO INTERNATIONAL LIMITED
Reel/Frame 037689/0190 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 12, 2015
From: LENOVO ENTERPRISE SOLUTIONS (SINGAPORE) PTE. LTD.
To: LENOVO INTERNATIONAL LIMITED
Reel/Frame 037101/0969 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 10, 2014
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: LENOVO ENTERPRISE SOLUTIONS (SINGAPORE) PTE. LTD.
Reel/Frame 034194/0353 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 14, 2012
From: KAMBLE, KESHAV G.; LEU, DAR-REN; MENDON, CHANDARANI J.; PANDEY, VIJOY
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 028963/0400 →