A method and apparatus for allocating bandwidth within a network domain. A
centralized bandwidth broker maintains a link-level database including
detailed flow data for individual links in a network domain and a
path-level database including summarized flow data for individual paths
in the network domain. The bandwidth broker determines bandwidth
allocations at a path-level by allocating discrete amounts of bandwidth,
termed quotas, based on flow requests. If a flow request cannot be
satisfied by allocating quotas, then the bandwidth broker uses the
link-level database to recover bandwidth from unused bandwidth by other
paths on the same link in order to satisfy the flow request. In another
embodiment of a bandwidth broker, the centralized bandwidth broker is
replaced by a distributed bandwidth broker including a central bandwidth
broker and one or more edge bandwidth brokers. An edge bandwidth broker
conducts path-level allocations and requests or releases quotas from and
to the central bandwidth broker. The central bandwidth broker conducts
link-level allocations and allocates or de-allocates quotas to and from
the path maintained by the edge bandwidth broker.