IP Library Granted Patent US 7,936,757
Granted Patent B2
US 7,936,757 · App. 12/395,078 · Granted May 3, 2011

Packet fragment reassembly

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,936,757
App. No.
12/395,078
Granted
May 3, 2011
Kind
B2
Abstract

An apparatus for packet fragment reassembly includes a memory and a fragment processing block coupled to the memory. The memory caches information contained in the headers of a plurality of packet fragments, wherein the plurality of packet fragments are identified as belonging to a particular packet. The fragment processing block directly performs operations to each packet fragment according to the information cached in the memory and a predetermined standard, wherein the information cached in the memory is used to track whether all packet fragments associated with the particular packet have been received at the apparatus.

Claims (33)

1. An apparatus for processing packet fragments, said apparatus comprising:

a memory operable for caching information included in headers of a plurality of packet fragments, wherein said packet fragments are each identified as associated with a particular packet; and

a fragment processing block coupled to said memory and operable for performing operations on each of said packet fragments according to said information instead of caching a first packet fragment before performing said operations,

wherein said information cached in said memory is useful for determining whether said first packet fragment of said packet fragments partially overlaps a second packet fragment of said packet fragments, wherein if said first packet fragment partially overlaps but does not fully overlap said second packet fragment then data included in said first packet fragment but not in said second packet fragment is forwarded from said apparatus,

wherein said information comprises total lengths and fragment offsets included in said headers of said plurality of packet fragments, and

wherein said length and offset for said first packet fragment are reduced according to the amount of said data included in said first packet fragment but not included in said second packet fragment.

2. The apparatus of claim 1 , wherein said information is cached according to a predetermined order.

3. The apparatus of claim 2 , wherein said predetermined order is from the minimum of said fragment offsets to the maximum of said fragment offsets.

4. The apparatus of claim 2 , wherein said predetermined order is from the maximum of said fragment offsets to the minimum of said fragment offsets.

5. The apparatus of claim 1 , wherein said apparatus comprises forwarding equipment for forwarding said packet fragments.

6. The apparatus of claim 5 , wherein said forwarding equipment is selected from the group consisting of a router, Layer 3 (L3) switch and L3 gateway.

7. The apparatus of claim 1 , wherein said first packet fragment is dropped if said first packet fragment fully overlaps said second packet fragment.

8. The apparatus of claim 1 , wherein said first packet fragment is dropped if said first packet fragment is identified as part of an attack.

9. A computer-implemented method for processing packet fragments, said method comprising:

locating a linked list that caches, in computer system memory, information contained in the headers of a plurality of packet fragments for a particular packet;

finding a caching position in said linked list for a first packet fragment associated with said particular packet; and

performing operations on said first packet fragment before caching said information associated with said first packet fragment at said caching position according to said information cached in said linked list, wherein said operations comprise determining whether said first packet fragment of said packet fragments partially overlaps a second packet fragment of said packet fragments, wherein if said first packet fragment partially overlaps but does not fully overlap said second packet fragment then data included in said first packet fragment but not in said second packet fragment is forwarded from said apparatus,

wherein said information comprises total lengths and fragment offsets included in said headers of said plurality of packet fragments, and

wherein said length and offset for said first packet fragment are reduced according to the amount of said data included in said first packet fragment but not included in said second packet fragment.

10. The method of claim 9 , wherein said caching position is determined by a predetermined order.

11. The method of claim 10 , wherein said predetermined order is from the minimum of said fragment offsets to the maximum of said fragment offsets.

12. The method of claim 10 , wherein said predetermined order is from the maximum of said fragment offset to the minimum of said fragment offsets.

13. The method of claim 9 , wherein said first packet fragment is dropped if said first packet fragment totally overlaps said second packet fragment.

14. The method of claim 9 , wherein said first packet fragment is dropped if said first packet fragment is identified as part of an attack.

15. A non-transitory computer-readable medium having computer-executable instructions for performing a method for processing packet fragments, said method comprising:

locating a linked list that caches, in computer system memory, information contained in the headers of a plurality of packet fragments for a particular packet;

finding a caching position in said linked list for a first packet fragment associated with said particular packet; and

performing operations on said first packet fragment before caching said information associated with said first packet fragment in said caching position according to said information cached in said linked list, wherein said operations comprise determining whether said first packet fragment of said packet fragments partially overlaps a second packet fragment of said packet fragments, wherein if said first packet fragment partially overlaps but does not fully overlap said second packet fragment then data included in said first packet fragment but not in said second packet fragment is forwarded from said apparatus,

wherein said information comprises total lengths and fragment offsets included in said headers of said plurality of packet fragments, and

wherein said length and offset for said first packet fragment are reduced according to the amount of said data included in said first packet fragment but not included in said second packet fragment.

16. The non-transitory computer-readable medium of claim 15 , wherein said caching position is determined by a predetermined order which is determined by magnitudes of said fragment offsets.

17. The non-transitory computer-readable medium of claim 15 , wherein said first packet fragment is dropped if said first packet fragment fully overlaps said second packet fragment.

18. The non-transitory computer-readable medium of claim 15 , wherein said first packet fragment is dropped if said first packet fragment is part of an attack.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 19, 2012
From: O2MICRO INTERNATIONAL, LIMITED
To: IYUKO SERVICES L.L.C.
Reel/Frame 028585/0710 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 7, 2011
From: O2MICRO INC.
To: O2MICRO INTERNATIONAL LIMITED
Reel/Frame 025913/0541 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 4, 2009
From: ZHANG, LIDA; CHEN, JY SHYANG
To: O2MICRO, INC.
Reel/Frame 022780/0027 →