Methods and apparatus for recovering network association information
US-2024129384-A1 · Apr 18, 2024 · US
US10348634B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-10348634-B2 |
| Application number | US-201514979131-A |
| Country | US |
| Kind code | B2 |
| Filing date | Dec 22, 2015 |
| Priority date | Dec 22, 2015 |
| Publication date | Jul 9, 2019 |
| Grant date | Jul 9, 2019 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
Technologies for tracking out-of-order network packets include a target computing node coupled to a source computing node via a communication channel. The target computing node is configured to allocate a small window in memory in which to store a bit mask corresponding to a number of out-of-order network packets received from the source computing node via the communication channel. The target computing node is further configured to update the bit mask in the small window upon receiving an out-of-order network packet from the source computing node. The target computing node is additionally configured to allocate a large window in memory in response to a determination the size of the bit mask is larger than the size of the small window, store the bit mask in the large window, and store a pointer to the large window in the small window. Other embodiments are described and claimed.
Opening claim text (preview).
The invention claimed is: 1. A target computing node for tracking out-of-order network packets, the target computing node comprising: one or more processors; and one or more memory devices having stored therein a plurality of instructions that, when executed by the one or more processors, cause the target computing node to: establish a communication channel with a source computing node via a network; generate an entry of a packet sequence number table corresponding to the communication channel, wherein the entry includes a small window that defines a portion of memory of the target computing node allocated to store a bit mask corresponding to a number of out-of-order network packets received by the target computing node through the communication channel, wherein the number of out-of-order network packets represented by the bit mask corresponds to one or more out-of-order network packets whose corresponding sequence number exceeds an expected packet sequence number of a next in-order network packet expected to be received by the target computing node; receive a plurality of out-of-order network packets from the source computing node via the communication channel; and update the bit mask in the small window of the packet sequence number table corresponding to the communication channel as a function of a packet sequence number of each of the plurality of out-of-order network packets received from the source computing node, wherein to update the bit mask in the packet sequence number table comprises to (i) determine whether a size of the bit mask is larger than a size of the small window, (ii) allocate, in response to a determination the size of the bit mask is larger than the size of the small window, a large window that defines another portion of memory of the target computing node allocated to store the bit mask corresponding to a number of out-of-order network packets received by the target computing node through the communication channel, wherein a size of the large window exceeds the size of the bit mask, (iii) store the bit mask in the large window, and (iv) store a pointer to the large window in the small window. 2. The target computing node of claim 1 , wherein the plurality of instructions further cause the target computing node to: receive an additional out-of-order network packet; update the bit mask in the large window as a function of the received additional out-of-order network packet; determine whether a size of the updated bit mask is larger than the size of the small window; and replace, in response to a determination the size of the updated bit mask is not larger than the size of the small window, the pointer to the large window with the updated bit mask. 3. The target computing node of claim 2 , wherein the plurality of instructions further cause the target computing node to free, subsequent to the determination that no additional network packets are being tracked, the memory allocated to the large window. 4. The target computing node of claim 2 , wherein the plurality of instructions further cause the target computing node to mark, subsequent to the determination that no additional network packets are being tracked, the large window as available and allocated to the source computing node. 5. The target computing node of claim 1 , wherein the entry additionally includes a connection state indicator to indicate whether the communication channel is active. 6. The target computing node of claim 1 , wherein the entry additionally includes an unordered packet sequence number indicator corresponding to a packet sequence number of the next expected network packet. 7. The target computing node of claim 1 , wherein the entry additionally includes a window use indicator to indicate whether the small window corresponds to one of the bit mask or the pointer to the large window in which the bit mask is stored. 8. One or more non-transitory, computer-readable storage media comprising a plurality of instructions stored thereon that in response to being executed cause a target computing node to: establish a communication channel with a source computing node via a network; generate an entry of a packet sequence number table corresponding to the communication channel, wherein the entry includes a small window that defines a portion of memory of the target computing node allocated to store a bit mask corresponding to a number of out-of-order network packets received by the target computing node through the communication channel, wherein the number of out-of-order network packets represented by the bit mask corresponds to one or more out-of-order network packets whose corresponding sequence number exceeds an expected packet sequence number of a next in-order network packet expected to be received by the target computing node; receive a plurality of out-of-order network packets from the source computing node via the communication channel; and update the bit mask in the small window of the packet sequence number table corresponding to the communication channel as a function of a packet sequence number of each of the plurality of out-of-order network packets received from the source computing node, wherein to update the bit mask in the packet sequence number table comprises to (i) determine whether a size of the bit mask is larger than a size of the small window, (ii) allocate, in response to a determination the size of the bit mask is larger than the size of the small window, a large window that defines another portion of memory of the target computing node allocated to store the bit mask corresponding to a number of out-of-order network packets received by the target computing node through the communication channel, wherein a size of the large window exceeds the size of the bit mask, (iii) store the bit mask in the large window, and (iv) store a pointer to the large window in the small window. 9. The one or more non-transitory, computer-readable storage media of claim 8 , wherein the plurality of instructions further cause the target computing node to: receive an additional out-of-order network packet; update the bit mask in the large window as a function of the received additional out-of-order network packet; determine whether a size of the updated bit mask is larger than the size of the small window; and replace, in response to a determination the size of the updated bit mask is not larger than the size of the small window, the pointer to the large window with the updated bit mask. 10. The one or more non-transitory, computer-readable storage media of claim 9 , wherein the plurality of instructions further cause the target computing node to free, subsequent to the determination that no additional network packets are being tracked, the memory allocated to the large window. 11. The one or more non-transitory, computer-readable storage media of claim 9 , wherein the plurality of instructions further cause the target computing node to mark, subsequent to the determination that no additional network packets are being tracked, the large window as available and allocated to the source computing node. 12. The one or more non-transitory, computer-readable storage media of claim 8 , wherein the entry additionally includes a connection state indicator to indicate whether the communication channel is active. 13. The one or more non-transitory, computer-readable storage media of claim 8 , wherein the entry additionally includes an unordered packet sequence number indicator corresponding to a packet sequence number of the next expected network packet. 14. The one or more non-transitory, computer-readable storage media of claim 8 , wherein the e
Electricity · mapped topic
ensuring sequence integrity, e.g. using sequence numbers · CPC title
Evaluation or update of window size, e.g. using information derived from acknowledged [ACK] packets · CPC title
using masks or ranges of addresses · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.