# US 2014/0153574 A1 · Notification by network element of packet drops

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

- Number: US 2014/0153574 A1
- Document ID: US20140153574A1
- Status: Published application
- Kind: A1
- Application number: 13/705,491
- Filed: 2012-12-05
- Published: 2014-06-05
- Earliest claimed: 2012-12-05
- Assignees: Intel Corporation
- Inventors: Eliel Louzoun; Radia Perlman; Ben-Zion Friedman; Ygdal Naouri; Eliezer Tamir
- Web page: https://patentgrep.com/patent/US20140153574A1

## CPC

- H04L 1/1657: {Implicit acknowledgement of correct or incorrect reception, e.g. with a moving window}
- H04L 1/188: {Time-out mechanisms}
- H04L 2001/0092: {Error control systems characterised by the topology of the transmission link}
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

Methods and apparatus for implementing notification by network elements of packet drops. In response to determining a packet is to be dropped, a network element such as a switch or router determines the source of the packet and returns a dropped packet notification message to the source. Upon receipt of notification, networking software or embedded hardware on the source causes the dropped packet to be retransmitted. The notification may also be sent from the network element to the destination computer to inform networking software or embedded logic implemented by the destination computer that the packet was dropped and notification to the source has been sent, thus alleviating the destination from needing to send a Selective ACKnowledge (SACK) message to inform the source the packet was not delivered. (Too narrow)

## Claims

### Claim 1

A method, comprising:
receiving, at a network element, a packet originating from a source computer and addressed to a destination that is not the network element;
determining if the packet is to be dropped; and if the packet is to be dropped,
returning a dropped packet notification message to the source computer containing indicia identifying the packet and indicating the packet has been dropped.

### Claim 2 (depends on 2)

The method of claim 2, further comprising:
determining whether the source computer supports handling of a dropped packet notification message from a network element that is not a destination for a packet; and
returning the dropped packet notification message to the source computer if it is determined the source computer supports the dropped packet message.

### Claim 3 (depends on 1)

The method of claim 1, wherein the dropped packet notification message comprises a packet including a header having a flag indicating the packet has been dropped.

### Claim 4 (depends on 3)

The method of claim 3, wherein the dropped packet notification message includes a plurality of Transmission Control Protocol (TCP) header flags, and the indicia indicating the packet has been dropped is contained in one of the TCP flags.

### Claim 5 (depends on 1)

The method of claim 1, wherein the dropped packet notification message comprises a packet including a plurality of Transmission Control Protocol (TCP) header fields, and the indicia indicating the packet has been dropped is contained in a TCP options field.

### Claim 6 (depends on 1)

The method of claim 1, wherein the dropped packet notification message comprises a packet having a plurality of header fields including an Internet Protocol (IP) Destination Address field, an IP Source Address field, a Transmission Control Protocol (TCP) Destination Port field, a TCP Source Port field, a Sequence Number field, an Acknowledgement Number field, and a Window Size field, wherein a data value in the Acknowledgement Number field is set to match a Sequence Number field value in the packet that is received, and the Window Size field contains data identifying a length of a dropped segment associated with the dropped packet.

### Claim 7 (depends on 1)

The method of claim 1, further comprising sending a second dropped packet notification message from the network element to the destination computer containing indicia identifying the packet and indicating the packet has been dropped.

### Claim 8 (depends on 1)

The method of claim 1, wherein the dropped packet notification message comprises a Negative ACKnowledgement (NACK) packet.

### Claim 9

A method comprising:
receiving a dropped packet notification message sent from a network element at a source computer containing indicia identifying a packet sent from the source computer and destined for a destination computer was dropped by the network element; and
retransmitting the packet that was dropped from the source computer.

### Claim 10 (depends on 9)

The method of claim 9, further comprising;
setting, prior to a first transmission of the packet that is retransmitted, a retransmission timeout timer used to mark the packet for retransmission upon expiration of the timeout timer if an ACK message has not been received from the destination computer prior to expiration of the timeout timer; and
in response to receiving the dropped packet message, causing the timeout timer to expire.

### Claim 11 (depends on 10)

The method of claim 10, wherein the retransmission timeout timer comprises a Transmission Control Protocol (TCP) retransmission timeout timer that is implemented in a TCP socket hosted by the source computer.

### Claim 12 (depends on 11)

The method of claim 11, wherein in connection with retransmitting the packet, the TCP retransmission timeout timer is set to an immediately preceding value.

### Claim 13 (depends on 11)

The method of claim 11, wherein the dropped packet notification message comprises a packet including TCP header fields, and the TCP retransmission timeout timer employed for an immediately preceding transmission of the packet that was dropped comprise a current value, the method further comprising:
inspecting at least one of the TCP header fields to detect indicia identifying a reason the packet was dropped; and
if the indicia identifies the packet was dropped due to a bit error,
setting the TCP retransmission timeout timer to the current value; otherwise
setting the TCP retransmission timeout timer to 2 times the current value.

### Claim 14 (depends on 9)

The method of claim 9, further comprising:
determining a connection between the source computer and the destination computer used to transmit the packet that was dropped; and
in response to receiving the dropped packet message, adapting a transmit rate for the connection.

### Claim 15 (depends on 9)

The method of claim 9, further comprising:
in response to receiving the dropped packet message, changing a value in a header of the retransmitted dropped packet to cause the packet to be forwarded along a route path that does not employ the network element that dropped the packet when it was first transmitted.

### Claim 16 (depends on 9)

The method of claim 9, further comprising:
increasing a route metric for a route between the source computer and the destination computer that includes the network element that dropped the packet when it was first transmitted.

### Claim 17 (depends on 9)

The method of claim 9, wherein the dropped packet notification message comprises a Negative ACKnowledgement (NACK) packet.

### Claim 18 (depends on 9)

The method of claim 9, wherein the source computer includes a Network Interface Controller (NIC), and the method operations are implemented via embedded logic in the NIC.

### Claim 19

A switch apparatus, comprising:
a main board having a plurality of components operatively coupled thereto, including,
at least one processor;
memory;
a plurality of input and output ports; and
at least one storage device having instructions stored therein configured to be executed by the at least one processor to cause the switch apparatus to perform operations, when operated in the network, comprising:
receiving a packet originating from a source computer and addressed to a destination that is not associated with the network element at an input port;
determining if the packet is to be dropped; and if the packet is to be dropped,
returning a dropped packet notification message to the source computer containing indicia identifying the packet and indicating the packet has been dropped.

### Claim 20 (depends on 19)

The switch apparatus of claim 19, wherein execution of the instructions perform further operations comprising:
determining whether the source computer supports handling of a dropped packet notification message from a network element that is not a destination for a packet; and
returning the dropped packet notification message to the source computer if it is determined the source computer supports the dropped packet message.

### Claim 21 (depends on 19)

The switch apparatus of claim 19, wherein the dropped packet notification message comprises a packet including a header having a flag indicating the packet has been dropped.

### Claim 22 (depends on 19)

The switch apparatus of claim 19, wherein the dropped packet notification message comprises a packet including a plurality of Transmission Control Protocol (TCP) header fields, and the indicia indicating the packet has been dropped is contained in a TCP options field.

### Claim 23 (depends on 19)

The switch apparatus of claim 19, wherein the dropped packet notification message comprises a packet having a plurality of header fields including an Internet Protocol (IP) Destination Address field, an IP Source Address field, a Transmission Control Protocol (TCP) Destination Port field, a TCP Source Port field, a Sequence Number field, an Acknowledgement Number field, and a Window Size field, wherein a data value in the Acknowledgement Number field is set to match a Sequence Number field value in the packet that is received, and the Window Size field contains data identifying a length of a dropped segment associated with the dropped packet.

### Claim 24 (depends on 19)

The switch apparatus of claim 19, wherein execution of the instructions perform further operations comprising sending a second dropped packet notification message from the switch apparatus to the destination computer containing indicia identifying the packet and indicating the packet has been dropped.

### Claim 25 (depends on 19)

The switch apparatus of claim 19, wherein the dropped packet notification message comprises a Negative ACKnowledgement (NACK) packet.

### Claim 26

A non-transient tangible machine readable medium having instructions stored thereon comprising configured to be executed on a computing device, and, when executed, cause the computing device to perform operations comprising:
receiving a dropped packet notification message sent from a network element containing indicia identifying a packet sent from the computing device and destined for a destination computer was dropped by the network element; and
retransmitting the packet that was dropped toward the destination computer.

### Claim 27 (depends on 25)

The non-transient tangible machine readable medium of claim 25, wherein the instructions are further configured to perform operations when executed by the computing device comprising:
setting, in connection to a first transmission of the packet prior to it being retransmitted, a retransmission timeout timer used to mark the packet for retransmission upon expiration of the timeout timer if an ACK message has not been received from the destination computer prior to expiration of the timeout timer; and
in response to receiving the dropped packet message, causing the timeout timer to expire.

### Claim 28 (depends on 25)

The non-transient tangible machine readable medium of claim 25, wherein the instructions are further configured to perform operations when executed by the computing device comprising:
receiving a dropped packet notification message sent from a network element containing indicia identifying a packet sent from a source computer and destined for the computing device was dropped by the network element; and
in response to receiving the dropped packet message, pre-empting sending a Selective Acknowledgement (SACK) message for the packet to the source computer.

### Claim 29 (depends on 25)

The non-transient tangible machine readable medium of claim 25, wherein the wherein the dropped packet notification message comprises a Negative ACKnowledgement (NACK) packet.

### Claim 30 (depends on 25)

The non-transient tangible machine readable medium of claim 25, wherein the instructions comprise a Transaction Control Protocol (TCP) socket.
