# US 8,543,725 B1 · Filtering superfluous data fragments on a computer network

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 8,543,725 B1
- Document ID: US8543725B1
- Status: Granted
- Kind: B1
- Application number: 13/567,874
- Filed: 2012-08-06
- Granted: 2013-09-24
- Earliest claimed: 2008-09-09
- Assignees: Marvell International Ltd.
- Applicants: Pradeep Jugraj Nemavat; Sandesh Goel
- Inventors: Pradeep Jugraj Nemavat; Sandesh Goel
- Web page: https://patentgrep.com/patent/US8543725B1

## CPC

- H04L 47/32: by discarding or delaying data units, e.g. packets or frames
- H04L 47/00: Traffic control in data switching networks (arrangements for detecting or preventing errors in the information received H04L1/00)
- H04L 47/34: ensuring sequence integrity, e.g. using sequence numbers
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

In a method of controlling transmission of data units, a first fragment of a data unit is received, and it is determined whether other fragments of the data unit have been received. The first fragment of the data unit is transmitted only if the other fragments of the data unit have been received.

## Claims

### Claim 1

A method of controlling transmission of data units, the method comprising:
receiving a first fragment of a data unit at a network node, the data unit having been fragmented into a plurality of fragments, including the first fragment, prior to the first fragment being received at the network node;
determining whether one or more fragments in the plurality of fragments of the data unit have been dropped by one or more other network nodes based on determining whether other fragments of the data unit have been received at the network node within a time period; and
only if the other fragments of the data unit have been received within the time period, transmitting the first fragment of the data unit via a network link.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
if the other fragments of the data unit have not been received prior to expiration of the time period, dropping the first fragment of the data unit.

### Claim 3 (depends on 1)

The method of claim 1, wherein transmitting the first fragment of the data unit via the network link only if the other fragments of the data unit have been received within the time period comprises:
transmitting the first fragment of the data unit only if a predetermined percentage of all fragments of the data unit have been received within the time period.

### Claim 4 (depends on 3)

The method of claim 3, wherein the predetermined percentage of all fragments of the data unit is 90%.

### Claim 5 (depends on 3)

The method of claim 3, wherein the predetermined percentage of all fragments of the data unit is 100%.

### Claim 6

A method of controlling transmission of data units in a network node to a target device, the method comprising:
receiving one fragment of a data unit at a network node, wherein the data unit has been previously fragmented into an ordered sequence of fragments, including the one fragment, prior to the one fragment being received at the network node;
determining whether a predefined percentage of all fragments in the ordered sequence of fragments have been received as of the time when the one fragment is received;
when it is determined that the predefined percentage of all fragments in the ordered sequence of fragments have been received as of the time when the one fragment is received, transmitting the one fragment via a network link; and
when it is determined that the predefined percentage of all fragments in the ordered sequence of fragments has not been received as of the time when the one fragment is received, (i) storing the one fragment in a memory for possible future transmission via the network link, or (ii) dropping the one fragment.

### Claim 7 (depends on 6)

The method of claim 6, further comprising:
storing in the memory other fragments in the ordered sequence of fragments that were received prior to receiving the one fragment;
when it is determined that the predefined percentage of all fragments in the ordered sequence of fragments have been received as of the time when the one fragment is received, transmitting the other fragments via the network link.

### Claim 8 (depends on 7)

The method of claim 7, further comprising:
determining whether the predefined percentage of all fragments in the ordered sequence of fragments have been received within a predefined period of time;
when it is determined that the predefined percentage of all fragments in the ordered sequence of fragments have not been received within the predefined period of time, dropping the one fragment and the other fragments; and
when it is determined that the predefined percentage of all fragments in the ordered sequence of fragments have been received within the predefined period of time, transmitting the one fragment and the other fragments via the network link.

### Claim 9 (depends on 6)

The method of claim 6, wherein:
determining whether the predefined percentage of all fragments in the ordered sequence of fragments have been received as of the time when the one fragment is received comprises determining whether the predefined percentage of all fragments in the ordered sequence of fragments have been received within a predefined period of time; and
the method further comprises when it is determined that the predefined percentage of all fragments in the ordered sequence of fragments have not been received within the predefined period of time, dropping the one fragment.

### Claim 10 (depends on 6)

The method of claim 6, wherein the predefined percentage of all fragments in the ordered sequence of fragments is 90%.

### Claim 11 (depends on 6)

The method of claim 6, wherein the predefined percentage of all fragments in the ordered sequence of fragments is 100%.

### Claim 12

An apparatus comprising:
a memory;
at least one ingress interface, coupled to at least a first network link, to receive data units via the at least the first network link;
at least one egress interface, coupled to at least a second network link, to transmit data units via the at least one second network link; and
a forwarding engine to forward data units received via the at least one ingress interface to the at least one egress interface, the forwarding engine including a fragment filtering engine configured to:
determine, in response to receiving one fragment of a data unit that was previously fragmented into an ordered sequence of fragments, whether a predefined percentage of all fragments in the ordered sequence of fragments have been received as of the time when the one fragment is received,
when it is determined that the predefined percentage of all fragments in the ordered sequence of fragments have been received as of the time when the one fragment is received, transmit the one fragment via one of the network links in the at least one second network link, and
when it is determined that the predefined percentage of all fragments in the ordered sequence of fragments has not been received as of the time when the one fragment is received, (i) store the one fragment in the memory for possible future transmission via the one second network link, or (ii) drop the one fragment.

### Claim 13 (depends on 12)

The apparatus of claim 12, wherein the fragment filtering engine is configured to:
store in the memory other fragments in the ordered sequence of fragments that were received prior to receiving the one fragment; and
when it is determined that the predefined percentage of all fragments in the ordered sequence of fragments have been received as of the time when the one fragment is received, transmit the other fragments via the one second network link.

### Claim 14 (depends on 13)

The apparatus of claim 13, wherein the fragment filtering engine is configured to:
determine whether the predefined percentage of all fragments in the ordered sequence of fragments have been received within a predefined period of time;
when it is determined that the predefined percentage of all fragments in the ordered sequence of fragments have not been received within the predefined period of time, drop the one fragment and the other fragments; and
when it is determined that the predefined percentage of all fragments in the ordered sequence of fragments have been received within the predefined period of time, transmit the one fragment and the other fragments via the one second network link.

### Claim 15 (depends on 12)

The apparatus of claim 12, wherein the fragment filtering engine is configured to:
determine whether the predefined percentage of all fragments in the ordered sequence of fragments have been received within a predefined period of time; and
when it is determined that the predefined percentage of all fragments in the ordered sequence of fragments have not been received within the predefined period of time, drop the one fragment.

### Claim 16 (depends on 12)

The apparatus of claim 12, wherein the predefined percentage of all fragments in the ordered sequence of fragments is 90%.

### Claim 17 (depends on 12)

The apparatus of claim 12 wherein the predefined percentage of all fragments in the ordered sequence of fragments is 100%.
