Acknowledgment storm detection
AssigneeHewlett Packard Enterprise Development LP
InventorSiva Ramaprasad Cherukuru
Life of this patent
Estimating the term…
Abstract
In some examples, a device initiates an acknowledgement storm detection process in response to failover of a network connection from a first input/output (I/O) module to a second I/O module. The acknowledgement storm detection process includes determining whether desynchronization between a received packet and a sent packet satisfies a criterion, and in response to determining that the desynchronization between the received packet and the sent packet satisfies the criterion, initiate an action to recover from the desynchronization.
Claims19
A non-transitory machine-readable storage medium comprising instructions that upon execution cause a device to:
- initiate an acknowledgement storm detection process in response to failover of a network connection from a first input/output (I/O) module to a second I/O module, wherein the acknowledgement storm detection process comprises:
- updating, for the network connection, a first counter responsive to detecting an occurrence of a first combination of a first sequence number and a first acknowledgment number that are inconsistent in received and sent packets, updating, for the network connection, a second counter responsive to detecting an occurrence of a second combination of a second sequence number and a second acknowledgment number that are inconsistent in the received and sent packets, wherein the second sequence number being inconsistent with the second acknowledgment number indicates that a remote endpoint has acknowledged a byte of data that not yet been sent by the device, and wherein the first combination is different from the second combination, determining whether desynchronization between the received and sent packets satisfies criteria based on the first counter and the second counter, and in response to determining that the desynchronization between the received and sent packets satisfies the criteria, initiate an action to recover the network connection from the desynchronization.
A non-transitory machine-readable storage medium comprising instructions that upon execution cause a device to:
- initiate an acknowledgement storm detection process in response to failover of a network connection from a first input/output (I/O) module to a second I/O module,
- wherein the acknowledgement storm detection process comprises:
- updating, for the network connection, a first counter responsive to detecting an occurrence of a first combination of a first sequence number and a first acknowledgment number that are inconsistent in received and sent packets, wherein the first sequence number is in a first received packet at the device, and the first acknowledgment number is in a first sent packet from the device, wherein the first acknowledgment number in the first sent packet from the device represents a next byte of data that is expected from a remote endpoint at the device, and the first sequence number being inconsistent with the first acknowledgment number comprises the first sequence number not matching the first acknowledgment number,
- updating, for the network connection, a second counter responsive to detecting an occurrence of a second combination of a second sequence number and a second acknowledgment number that are inconsistent in the received and sent packets, wherein the first combination is different from the second combination, wherein the second sequence number is in a second sent packet from the device, and the second acknowledgment number is in a second received packet at the device, wherein the second sequence number being inconsistent with the second acknowledgment number indicates that the remote endpoint has acknowledged a byte of data that not yet been sent by the device,
- determining whether desynchronization between the received and sent packets satisfies criteria based on the first counter and the second counter, and
- in response to determining that the desynchronization between the received and sent packets satisfies the criteria, initiate an action to recover the network connection from the desynchronization.
A first input/output (I/O) module comprising:
- a network stack to communicate packets over a network;
- a hardware processor;
- and a non-transitory storage medium storing instructions executable on the hardware processor to:
- recreate a network connection at the first I/O module based on a state of the network connection at a second I/O module that has experienced a fault;
- retrieve checkpointed data for the network connection, the checkpointed data comprising a Transmission Control Protocol (TCP) window size;
- determine whether an acknowledgment storm is present based on determining that the TCP window size in the checkpointed data is inconsistent with a TCP window size in a header of a sent packet or a received packet and based on an acknowledgment storm detection process that comprises:
- updating, for the network connection, a first counter responsive to detecting an occurrence of a first combination of a first sequence number and a first acknowledgment number that are inconsistent in received and sent packets, updating, for the network connection, a second counter responsive to detecting an occurrence of a second combination of a second sequence number and a second acknowledgment number that are inconsistent in the received and sent packets, wherein the second sequence number being inconsistent with the second acknowledgment number indicates that a remote endpoint has acknowledged a byte of data that not yet been sent by a device, and wherein the first combination is different from the second combination, and determining whether desynchronization between the received and sent packets satisfies criteria based on the first counter and the second counter;
- and in response to determining that the acknowledgment storm is present, initiate an action to recover from the acknowledgment storm.
A method performed by a device, comprising:
- initiating an acknowledgement storm detection process in response to failover of a Transmission Control Protocol (TCP) connection from a first I/O module to a second I/O module, wherein the acknowledgement storm detection process comprises:
- updating, for the TCP connection, a first counter responsive to detecting an occurrence of a first combination of a first sequence number and a first acknowledgment number that are inconsistent in received and sent packets, updating, for the TCP connection, a second counter responsive to detecting an occurrence of a second combination of a second sequence number and a second acknowledgment number that are inconsistent in the received and sent packets, wherein the second sequence number being inconsistent with the second acknowledgment number indicates that a remote endpoint has acknowledged a byte of data that not yet been sent by the device, and wherein the first combination is different from the second combination, determining whether desynchronization between the received and sent packets satisfies criteria based on the first counter and the second counter, and in response to determining that the desynchronization between the received and sent packets satisfies the criteria, reset the TCP connection.
Dependencies are inferred from the claim text.