Data transmission using modified weighted fair queue algorithm

US10050893B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10050893-B2
Application numberUS-201715477939-A
CountryUS
Kind codeB2
Filing dateApr 3, 2017
Priority dateJan 30, 2015
Publication dateAug 14, 2018
Grant dateAug 14, 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.

To transmit data packets over a shared data path, data packets of a first message and a second message are received and stored, respectively, in first and second queues. First and second data packets are then extracted from, respectively, the first and second messages. First and second priority values are calculated, respectively, for the first and second data packets and are associated thereto. If the first priority value is determined to be lower than the second priority value, then the first packet is transmitted over the shared data path. If the second priority value is determined to be lower than the first priority value, then the second packet is transmitted over the shared data path.

First claim

Opening claim text (preview).

I claim: 1. A method of transmitting data over a shared data path, the method comprising: storing first and second messages received from one or more applications in first and second queues, respectively; for each queue of the first and second queues, determining a next data chunk to be transmitted from the queue over the shared data path, and responsive to the determination, calculating a priority value for the next data chunk based on at least a virtual time, which is maintained as a priority value of a last transmitted data chunk, and a priority associated with the queue, wherein no priority values are calculated for any data chunk stored in each of the first and second queues that is not next to be transmitted; and transmitting one of the next data chunks having a higher priority value over the shared data path. 2. The method of claim 1 , further comprising, after transmitting the one of the next data chunks, if additional data is stored in the first or second queue that stored the transmitted one of the next data chunks, calculating a priority value for a next data chunk to be transmitted from the first or the second queue that stored the transmitted one of the next data chunks. 3. The method of claim 1 , wherein: the next data chunk to be transmitted from each of the first and second queues is extracted; and the extracted next data chunks are stored in a third queue. 4. The method of claim 1 , wherein the method further comprises: determining that the priority assigned to the first queue has changed; and responsive to the determination of the changed priority, recalculating the priority value for the next data chunk to be transmitted from the first queue. 5. The method of claim 1 , further comprising: responsive to determining that the virtual time exceeds a maximum value: setting the virtual time to an initial value, and recalculating each of the priority values associated with the next data chunks based on the virtual time. 6. The method of claim 1 , further comprising, responsive to determining that the calculated priority values are identical, adjusting one of the identical priority values such that no priority values are identical. 7. The method of claim 1 , wherein the first and second messages are received from first and second applications, respectively, and the first and second queues are allocated for the first and second applications, respectively. 8. The method of claim 1 , wherein each of the first and second messages is one of video streaming data, webcam video data, or shared folder and file data. 9. The method of claim 1 , wherein the one of the next data chunks having the higher priority value is transmitted subsequent to determining that the shared data path has sufficient bandwidth to transmit the one of the next data chunks. 10. A non-transitory computer-readable medium that stores instructions executable by a host computer, where the instructions, when executed, cause the host computer to perform a method of transmitting data over a shared data path, the method comprising: storing first and second messages received from one or more applications in first and second queues, respectively; for each queue of the first and second queues, determining a next data chunk to be transmitted from the queue over the shared data path, and responsive to the determination, calculating a priority value for the next data chunk based on at least a virtual time, which is maintained as a priority value of a last transmitted data chunk, and a priority associated with the queue, wherein no priority values are calculated for any data chunk stored in each of the first and second queues that is not next to be transmitted; and transmitting one of the next data chunks having a higher priority value over the shared data path. 11. The computer-readable medium of claim 10 , wherein the method further comprises, after transmitting the one of the next data chunks, if additional data is stored in the first or second queue that stored the transmitted one of the next data chunks, calculating a priority value for a next data chunk to be transmitted from the first or the second queue that stored the transmitted one of the next data chunks. 12. The computer-readable medium of claim 10 , wherein: the next data chunk to be transmitted from each of the first and second queues is extracted; and the extracted next data chunks are stored in a third queue. 13. The computer-readable medium of claim 10 , wherein the method further comprises: determining that the priority assigned to the first queue has changed; and responsive to the determination of the changed priority, recalculating the priority value for the next data chunk to be transmitted from the first queue. 14. The computer-readable medium of claim 10 , wherein the method further comprises: responsive to determining that the virtual time exceeds a maximum value: setting the virtual time to an initial value, and recalculating each of the priority values associated with the next data chunks based on the virtual time. 15. The computer-readable medium of claim 10 , wherein the method further comprises, responsive to determining that the calculated priority values are identical, adjusting one of the identical priority values such that no priority values are identical. 16. The computer-readable medium of claim 10 , wherein the first and second messages are received from first and second applications, respectively, and the first and second queues are allocated for the first and second applications, respectively. 17. A computer system, comprising: a processor; memory; and an interface that connects the computer system to a shared data path, wherein the processor is programmed to perform a method of transmitting data over the shared data path, the method comprising: storing first and second messages received from one or more applications in first and second queues, respectively, for each queue of the first and second queues, determining a next data chunk to be transmitted from the queue over the shared data path, and responsive to the determination, calculating a priority value for the next data chunk based on at least a virtual time, which is maintained as a priority value of a last transmitted data chunk, and a priority associated with the queue, wherein no priority values are calculated for any data chunk stored in each of the first and second queues that is not next to be transmitted, and transmitting one of the next data chunks having a higher priority value over the shared data path. 18. The system of claim 17 , wherein: the next data chunk to be transmitted from each of the first and second queues is extracted; and the extracted next data chunks are stored in a third queue.

Assignees

Inventors

Classifications

  • Attaching a time tag to queues · CPC title

  • relying on flow classification, e.g. using integrated services [IntServ] · CPC title

  • in response to processing delays, e.g. caused by jitter or round trip time [RTT] · CPC title

  • Individual queue per QOS, rate or priority · CPC title

  • Modification of priorities while in transit · 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 US10050893B2 cover?
To transmit data packets over a shared data path, data packets of a first message and a second message are received and stored, respectively, in first and second queues. First and second data packets are then extracted from, respectively, the first and second messages. First and second priority values are calculated, respectively, for the first and second data packets and are associated thereto…
Who is the assignee on this patent?
Vmware Inc
What technology area does this patent fall under?
Primary CPC classification H04L47/2441. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Aug 14 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).