Reorder resilient transport

US9979640B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9979640-B2
Application numberUS-201414580981-A
CountryUS
Kind codeB2
Filing dateDec 23, 2014
Priority dateDec 23, 2014
Publication dateMay 22, 2018
Grant dateMay 22, 2018

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.

Devices and techniques for reorder resilient transport are described herein. A device may store data packets in sequential positions of a flow queue in an order in which the data packets were received. The device may retrieve a first data packet from a first sequential position and a second data packet from a second sequential position that is next in sequence to the first sequential position in the flow queue. The device may store the first data packet and the second data packet in a buffer and refrain from providing the first data packet and the second data packet to upper layer circuitry if the packet order information for the first data packet and the second data packet indicate that the first data packet and the second data packet were received out of order. Other embodiments are also described.

First claim

Opening claim text (preview).

What is claimed is: 1. A non-transitory machine-readable medium including instructions that, when executed by a first end station, cause the first end station to: store a plurality of data packets in sequential positions of a flow queue in an order in which the plurality of data packets were received; retrieve a first data packet of the plurality of data packets, the first data packet having first packet order information, from a first sequential position in the flow queue; retrieve a second data packet of the plurality of data packets, the second data packet having second packet order information, from a second sequential position, the second sequential position being a next sequential position after the first sequential position in the flow queue; store the first data packet and the second data packet in a buffer and refrain from providing the first data packet and the second data packet to upper layer circuitry responsive to the first packet order information and the second packet order information indicate that the first data packet and the second data packet were received out of order, wherein the first packet order information and the second packet order information indicate an order in which the first data packet and the second data packet were sent from a second end station; maintain a timer based on a value for average round trip travel time for data packets between the first end station and the second end station; initialize the timer to an initial value responsive to retrieving a data packet of the plurality of data packets; and responsive to the data packet was received out-of-order, based on packet order information for the data packet, store the data packet in the buffer, otherwise, responsive to the timer has expired, provide the data packets in the buffer to the upper layer circuitry. 2. The non-transitory machine-readable medium of claim 1 , including further instructions that, when executed by the first end station, cause the first end station to: provide the first data packet and the second data packet to the upper layer circuitry responsive to the buffer is empty and responsive to the first packet order information and the second packet order information indicate that the first data packet and the second data packet were received in order. 3. The non-transitory machine-readable medium of claim 1 , wherein, responsive to the first packet order information and the second packet order information indicate that the first data packet and the second data packet were received out of order, the instructions further cause the first end station to: initialize a counter; retrieve a third data packet having third packet order information from a third sequential position that is a next sequential position to the second sequential position in the flow queue; store the third data packet in the buffer; and increment the counter responsive to the buffer does not include data packets in sequential order, based on the first packet order information, the second packet order information, and the third packet order information, subsequent to storing the third data packet. 4. The non-transitory machine-readable medium of claim 3 , wherein the instructions further cause the first end station to: repeat operations of retrieving data packets, incrementing the counter, and storing data packets in the buffer for each of the plurality of data packets, sequentially based on the sequential positions of respective data packets; and provide a reordered buffer to the upper layer circuitry responsive to the counter being incremented past a counter limit, the reordered buffer being generated by reordering the buffer into a sequential order based on packet order information of each data packet in the buffer. 5. The non-transitory machine-readable medium of claim 4 , wherein the instructions further cause the first end station to: responsive to detecting, based on packet order information, that a data packet was received in order, provide a reordered buffer to the upper layer circuitry, the reordered buffer being generated by reordering the buffer into a sequential order based on packet order information of each data packet in the buffer. 6. The non-transitory machine-readable medium of claim 1 , wherein the instructions further cause the first end station to: increment a counter for each data packet received out of order. 7. A device comprising: a network interface to receive a plurality of data packets and to store the plurality of data packets in sequential positions of a flow queue in an order in which the plurality of data packets were received at the network interface; and an out-of-order module to: retrieve a first data packet having first packet order information from a first sequential position in the flow queue, retrieve a second data packet having second packet order information from a second sequential position in the flow queue, store the first data packet and the second data packet in a buffer and refrain from providing the first data packet and the second data packet to upper layer circuitry responsive to the first packet order information and the second packet order information indicate that the first data packet and the second data packet were received out of order, maintain a timer based on a value for average round trip travel time for data packets between the device and a source end station, initialize the timer to an initial value responsive to retrieving a data packet of the plurality of data packets, and responsive to the respective data packet is received within the average round trip travel time, store the data packet in the buffer and reorder the buffer based on the respective packet order information, otherwise, responsive to the timer has expired, provide the data packets in the buffer to the upper layer circuitry. 8. The device of claim 7 , wherein the network interface is to notify the out-of-order module that the plurality of data packets are out of order prior to storing the plurality of data packets in the flow queue. 9. The device of claim 7 , wherein the out-of-order module is further to: provide the first data packet and the second data packet to the upper layer circuitry responsive to the butler is empty and responsive to the first packet order information and the second packet order information indicate that the first data packet and the second data packet were received in order. 10. The device of claim 7 , wherein, responsive to the first packet information and the second packet order information indicate that the first data packet and the second data packet were received out of order, the out-of-order module is further to: initialize a counter; retrieve a third data packet having third packet order information from a third sequential position subsequent to the second sequential position in the flow queue; store the third data packet in the buffer; and increment the counter responsive to the buffer does not include data packets in sequential order, based on the first packet order information, the second packet order information, and the third packet order information, subsequent to storing the third data packet. 11. The device of claim 10 , wherein the out-of-order module is further to: repeat operations of retrieving data packets, incrementing the counter, and storing data packets in the buffer for each of the plurality of data packets, sequentially based on the sequential positions of respective data packets; and provide a reordered buffer to the upper layer circuitry responsive to the counter being increment past a counter limit, the reordered buffer being generated by reordering the buffer into a sequential order based on packet order inform

Assignees

Inventors

Classifications

  • Flow based routing · CPC title

  • H04L45/74Primary

    Address processing for routing · CPC title

  • using a dedicated packet · CPC title

  • by attributing bandwidth to queues · CPC title

  • Loss aware scheduling · 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 US9979640B2 cover?
Devices and techniques for reorder resilient transport are described herein. A device may store data packets in sequential positions of a flow queue in an order in which the data packets were received. The device may retrieve a first data packet from a first sequential position and a second data packet from a second sequential position that is next in sequence to the first sequential position i…
Who is the assignee on this patent?
Intel Corp
What technology area does this patent fall under?
Primary CPC classification H04L45/74. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue May 22 2018 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). 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).