Patent ID: 7801152

Claim:
A method of scheduling utilization of a service resource by a plurality of flows of information packets, said plurality of flows comprising rate-guaranteed synchronous flows and best-efforts asynchronous flows, wherein said asynchronous flows exploit the service capacity of said resource left unexploited by said synchronous flows, comprising the steps of: providing a server that visits said plurality of flows in subsequent rounds, said server visiting first within each said round said synchronous flows followed by said asynchronous flows; detecting any backlogged synchronous flow in said plurality of synchronous flows; when said server visits any said backlogged synchronous flow, allowing said backlogged synchronous flow to utilize said resource for a given time, whereby said synchronous flows have a guaranteed transmission window on each said round; determining a reference round time indicative of the expected time for said server to complete a round of visits of said plurality of flows; when said server visits any said asynchronous flow, determining the time elapsed since the last visit by said server to the same asynchronous flow; and: i) if the visit to said asynchronous flow occurs later than expected based on said reference round time, restraining said asynchronous flow being visited from utilizing said resource for the ongoing round, ii) if the visit to said asynchronous flow occurs earlier than expected based on said reference round time, allowing said asynchronous flow being visited to utilize said resource for a respective given time, said respective given time being a function of an earliness value representing an amount of time the server visit is earlier than expected, whereby said function regulates the exploitation by each said asynchronous flows of said service capacity of said resource left unexploited by said synchronous flows, wherein said respective given time is proportional to said earliness value via a proportionality factor, and wherein said proportionality factor is a ratio of a weight assigned to said asynchronous flow to a maximum weight among a plurality of weights assigned to said asynchronous flows.