Methods and systems for reliable network communication

US9692560B1 · US · B1

Patent metadata
FieldValue
Publication numberUS-9692560-B1
Application numberUS-201514663912-A
CountryUS
Kind codeB1
Filing dateMar 20, 2015
Priority dateJul 10, 2014
Publication dateJun 27, 2017
Grant dateJun 27, 2017

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Methods and systems for network communication are provided. One of the methods includes receiving an out of order packet at a requestor device that is communicably connected to a responder device; storing the out of order packet at an out of order buffer location; and sending a lossy reliable connection (LRC) packet to the responder device when selective acknowledgement (SACK) is supported between the requestor device and the responder device, with information regarding an updated sequence number in a LRC extended header (LRCETH) that indicates to the responder information regarding in-order packets that have been received by the requestor device.

First claim

Opening claim text (preview).

What is claimed is: 1. A machine implemented method, comprising: receiving an out of order packet at a requestor device that is communicably connected to a responder device for a connection; storing the out of order packet at an out of order buffer location and saving a packet sequence number (PSN); determining that selective acknowledgement (SACK) is supported between the requestor device and the responder device for the connection; sending a lossy reliable connection (LRC) packet to the responder device when selective acknowledgement (SACK) is supported between the requestor device and the responder device, with information regarding an updated sequence number in a LRC extended header (LRCETH) that indicates to the responder device information regarding in-order packets that have been received by the requestor device; sending by the requestor device the LRC packet with an updated in-order PSN value, when SACK is not supported between the requestor device and the responder device; determining that an acknowledgement packet with a SACK block has been received, when a received packet at the requestor device is not an out of order packet; processing the SACK block for the acknowledgement packet and updating a data structure that tracks retransmit packets from the requestor device; and invoking a retransmit process to retransmit packets from the requestor device to the responder device. 2. The method of claim 1 , further comprising: receiving a duplicate acknowledgement (ACK) packet or a not acknowledgement packet at the requestor device when the received packet at the requestor device is not an out of order packet and the acknowledgement packet with the SACK block is not received; and invoking a retransmit flow after a threshold number of duplicate ACK packets have been received. 3. The method of claim 1 , wherein the requestor device and the responder device are remote direct memory access (RDMA) nodes. 4. The method of claim 3 , wherein the RDMA nodes are configured to process InfiniB and packets. 5. The method of claim 4 , wherein the LRCETH is included in an extended header (ETH) of each InfiniB and packet. 6. The method of claim 5 , wherein the LRCETH includes an acknowledgement sequence number indicating an amount of in order data that was received by a queue pair (QP). 7. A machine implemented method, comprising: receiving a lossy reliable connection (LRC) extended header (LRCETH) packet with a selective acknowledgement (SACK) block at a responder device communicating with a requestor device; processing the SACK block by the responder device and updating a data structure that tracks packet retransmission from the responder device to the requestor device; retransmitting a packet from the responder device to the requester device, based on the SACK block information; for a non-LRC packet without a SACK block received at the responder device, determining by the responder device that the non-LRC packet without a SACK block is a duplicate LRC packet; determining by the responder device that the responder device has received N duplicate packets with a same packet sequence number; and updating a congestion window with an indicator for re-transmit workflow; for an out of order packet received at the responder device and for supported SACK transmission, the responder device transmitting an acknowledgement packet with updated SACK information. 8. The method of claim 7 , wherein the requestor device and the responder device are remote direct memory access (RDMA) nodes. 9. The method of claim 8 , wherein the RDMA nodes are configured to process InfiniB and packets. 10. The method of claim 9 , wherein the LRCETH is included in an extended header (ETH) of each InfiniB and packet. 11. The method of claim 10 , wherein the LRCETH includes an acknowledgement sequence number indicating an amount of in order data that was received by a queue pair (QP). 12. The method of claim 7 , wherein when a duplicate LRCETH packet is received at the responder device, then a retransmit flow is invoked after a threshold number of duplicate acknowledgement packets have been received. 13. The storage medium of claim 7 , the machine executable code further causing the machine to: receive a duplicate acknowledgement (ACK) packet or a not acknowledgement packet at the requestor device when the received packet at the requestor device is not an out of order packet and the acknowledgement packet with the SACK block is not received; and invoke a retransmit flow after a threshold number of duplicate ACK packets have been received. 14. A non-transitory, machine readable storage medium having stored thereon instructions for performing a method, comprising machine executable code which when executed by at least one machine, causes the machine to: receive an out of order packet at a requestor device that is communicably connected to a responder device for a connection; store the out of order packet at an out of order buffer location and saving a packet sequence number (PSN); determine that selective acknowledgement (SACK) is supported between the requestor device and the responder device for the connection; send a lossy reliable connection (LRC) packet to the responder device when SACK is supported between the requestor device and the responder device, with information regarding an updated sequence number in a LRC extended header (LRCETH) that indicates to the responder device information regarding in-order packets that have been received by the requestor device; send by the requestor device the LRC packet with an updated in-order PSN value, when SACK is not supported between the requestor device and the responder device; determine that an acknowledgement packet with a SACK block has been received, when a received packet at the requestor device is not an out of order packet; process the SACK block for the acknowledgement packet and updating a data structure that tracks retransmit packets from the requestor device; and invoke a retransmit process to retransmit packets from the requestor device to the responder device. 15. The storage medium of claim 14 , wherein the requestor device and the responder device are remote direct memory access (RDMA) nodes. 16. The storage medium of claim 15 , wherein the RDMA nodes are configured to process InfiniB and packets. 17. The storage medium of claim 16 , wherein the LRCETH is included in an extended header (ETH) of each InfiniB and packet. 18. The storage medium of claim 17 , wherein the LRCETH includes an acknowledgement sequence number indicating an amount of in order data that was received by a queue pair (QP).

Assignees

Inventors

Classifications

  • H04L1/1628Primary

    List acknowledgements, i.e. the acknowledgement message consisting of a list of identifiers, e.g. of sequence numbers (H04L1/1614 takes precedence) · CPC title

  • ensuring sequence integrity, e.g. using sequence numbers · CPC title

  • Group acknowledgement, i.e. the acknowledgement message defining a range of identifiers, e.g. of sequence numbers · CPC title

  • Selective-repeat protocols · CPC title

  • Details of sliding window management · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9692560B1 cover?
Methods and systems for network communication are provided. One of the methods includes receiving an out of order packet at a requestor device that is communicably connected to a responder device; storing the out of order packet at an out of order buffer location; and sending a lossy reliable connection (LRC) packet to the responder device when selective acknowledgement (SACK) is supported betw…
Who is the assignee on this patent?
Qlogic Corp
What technology area does this patent fall under?
Primary CPC classification H04L1/1628. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Jun 27 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (B1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).