The patent badge is an abbreviated version of the USPTO patent document. The patent badge does contain a link to the full patent document.
The patent badge is an abbreviated version of the USPTO patent document. The patent badge covers the following: Patent number, Date patent was issued, Date patent was filed, Title of the patent, Applicant, Inventor, Assignee, Attorney firm, Primary examiner, Assistant examiner, CPCs, and Abstract. The patent badge does contain a link to the full patent document (in Adobe Acrobat format, aka pdf). To download or print any patent click here.
Patent No.:
Date of Patent:
Jun. 12, 2001
Filed:
Jun. 09, 1998
John R. Douceur, Bellevue, WA (US);
Yoram Bernet, Seattle, WA (US);
Ofer Bar, Newcastle, WA (US);
Carol Ann Bell, Beaverton, OR (US);
Tsung-Yuan Charles Tai, Portland, OR (US);
Rajendra S. Yavatkar, Portland, OR (US);
Microsoft Corporation, Redmond, WA (US);
Abstract
A method and computer program product for scheduling network communication packets in a multimedia environment where different packet streams have reservations of network bandwidth to form packet flows. The present invention divides the packet scheduling function into distinct components that may be implemented as separate drivers in a layered driver environment as exists, for example, in the Microsoft Windows NT operating system. One component is called a conformer and will generate and assign to each packet in the packet flow at least one conformance time that signifies the earliest a packet may be sent and still conform to the network resource requirements associated with the flow. Many different conformance algorithms can be supported so that the best algorithm is used for a particular packet flow and the service requirements that it represents. Should it be necessary to actually hold a packet until the conformance time is met, a shaper component is used to delay the packets. Finally, a sequencer component will send packets out as fast as possible over the network interface card. Each flow of packets processed by the sequencer component has at least two priorities, one for when the packets are conforming and one for when the packets are non-conforming. The sequencer component maintains priority lists of packet flow queues and will service the highest priority queue list followed by each successive priority list until no packets remain for transmission or the network interface card is unable to handle more packets. Each priority list will have a queue discipline associated therewith that will determine in what order the packets are taken off of the respective flow queues.