Claims
- 1. A method for processing a datagram, comprising:
receiving an initial fragment of the datagram over a communication link; classifying in an initial classification the initial fragment as a first fragment, a middle fragment, or a last fragment of the datagram; receiving one or more subsequent fragments over the communication link, following the initial fragment; classifying each of the one or more subsequent fragments in respective subsequent classifications so as to find among the subsequent fragments at least one of the first fragment, the middle fragment, and the last fragment of the datagram; making a determination, responsive to the initial and the one or more subsequent classifications, whether the datagram is completely constituted by the initial fragment and no more than two of the subsequent fragments; and reassembling the datagram responsive to the determination.
- 2. A method according to claim 1, wherein each fragment comprises a header, and wherein classifying each fragment comprises determining the classification of the fragment responsive to data comprised in the header.
- 3. A method according to claim 1, wherein receiving the initial fragment and the one or more subsequent fragments comprises storing ordering data from a header of each fragment in an ordering buffer and storing payload data conveyed by each fragment in a reassembly buffer, and wherein reassembling the datagram comprises reassembling the payload data from the reassembly buffer.
- 4. A method according to claim 1, and comprising providing a state machine comprising a plurality of initial states, the state machine existing in one of the initial states responsive to receiving the initial fragment and the initial classification thereof.
- 5. A method according to claim 4, wherein the state machine comprises a plurality of subsequent states, the state machine existing in one of the subsequent states responsive to receiving the initial fragment and the initial classification thereof, and to receiving the one or more subsequent fragments and the respective classifications of the one or more subsequent fragments.
- 6. A method according to claim 1, wherein making the determination comprises determining that the datagram is not completely constituted by the initial fragment and the no more than two of the subsequent fragments, and transferring the data fragments to a memory for subsequent reassembly responsive to the determination.
- 7. A method according to claim 1, wherein the datagram is generated according to an Internet protocol.
- 8. Apparatus for processing a datagram, comprising:
a memory which receives an initial fragment and one or more subsequent fragments from a communication link and which stores the fragments; and a processor which is adapted to classify each of the fragments as a first fragment, a middle fragment, or a last fragment of the datagram and to make a determination, responsive to the classifications of each of the stored fragments, whether the datagram is completely constituted by the initial fragment and no more than two of the subsequent fragments and to reassemble the datagram responsive to the determination.
- 9. Apparatus according to claim 8, wherein each fragment comprises a header, and wherein classifying each fragment comprises determining the classification of the fragment responsive to data comprised in the header.
- 10. Apparatus according to claim 8, wherein the memory comprises:
an ordering buffer which is adapted to store ordering data from a header comprised in each fragment; and a reassembly buffer which is adapted to store payload data conveyed by each fragment; and wherein the processor is adapted to reassemble the payload data from the reassembly buffer.
- 11. Apparatus according to claim 8, and comprising a state machine which is implemented from the memory and the processor, the state machine comprising a plurality of initial states, and existing in one of the initial states responsive to receiving the initial fragment and the initial classification thereof.
- 12. Apparatus according to claim 11, wherein the state machine comprises a plurality of subsequent states, the state machine existing in one of the subsequent states responsive to receiving the initial fragment and the initial classification thereof, and to receiving the one or more subsequent fragments and the respective classifications of the one or more subsequent fragments.
- 13. Apparatus according to claim 8, wherein making the determination comprises determining that the datagram is not completely constituted by the initial fragment and the no more than two of the subsequent fragments, and wherein the processor is adapted to transfer the data fragments within the memory for subsequent reassembly responsive to the determination.
- 14. Apparatus according to claim 8, wherein the datagram is generated according to an Internet protocol.
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application claims the benefit of U.S. Provisional Patent Application No. 60/317,670, filed Sep. 6, 2001, which is incorporated herein by reference.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60317670 |
Sep 2001 |
US |