System for bandwidth allocation in a computer network
First Claim
1. Apparatus for allocating the bandwidth of a data network to a data stream having an associated data class, the apparatus comprising:
- a stream processor, having logic to receive the data stream and to determine a plurality of acceptable transmission rates for the data stream;
an allocator, coupled to the stream processor and having logic to negotiate a transfer rate for the data stream with the stream processor, wherein the transfer rate is a selected one of the plurality of acceptable transmission rates and is limited to a portion of the bandwidth apportioned to the data class associated the data stream; and
an output coupled to the stream processor, having logic to receive the data stream and transmit the data stream on the data network at the negotiated transfer rate.
4 Assignments
0 Petitions
Accused Products
Abstract
A system for classifying, monitoring, controlling and otherwise managing and allocating bandwidth of a network to data streams. A method for allocating bandwidth of a data network to a plurality of data streams is provided. The method comprises specifying apportionment of the bandwidth to a plurality of data classes. Receiving a plurality of data streams wherein each data stream has an associated data class. Negotiating a transfer rate for each data stream, wherein the transfer rate is limited to the bandwidth apportioned to the data class associated with each data stream and transmitting the data streams on the data network at the negotiated transfer rates.
167 Citations
17 Claims
-
1. Apparatus for allocating the bandwidth of a data network to a data stream having an associated data class, the apparatus comprising:
-
a stream processor, having logic to receive the data stream and to determine a plurality of acceptable transmission rates for the data stream;
an allocator, coupled to the stream processor and having logic to negotiate a transfer rate for the data stream with the stream processor, wherein the transfer rate is a selected one of the plurality of acceptable transmission rates and is limited to a portion of the bandwidth apportioned to the data class associated the data stream; and
an output coupled to the stream processor, having logic to receive the data stream and transmit the data stream on the data network at the negotiated transfer rate. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A method of operating a data network to allocate bandwidth of the data network to a data stream, comprising:
-
annotating the data stream with stream annotations;
transmitting the data stream on the data network;
establishing a policy tree that specifies apportionment of the bandwidth of the data network to a plurality of data classes;
receiving the data stream;
determining a plurality of acceptable transmission rates for the data stream;
negotiating a transfer rate for the data stream, wherein the transfer rate is a selected one of the acceptable transmission rates and is limited to the bandwidth specified by the policy tree for the data class associated with the stream annotations of the data stream;
transforming the data stream to the negotiated transfer rate; and
transmitting the data stream on the data network at the negotiated transfer rate. - View Dependent Claims (8, 9, 10)
receiving the stream annotations of the data stream; and
activating a stream processor based on the stream annotations to receive the data stream and to determine the plurality of acceptable transmission rates for the data stream.
-
-
9. The method of claim 7 wherein the transfer rate is a first transfer rate and the method further comprises steps of:
-
determining unallocated bandwidth on the data network;
negotiating a second transfer rate for the data stream, wherein the second transfer rate is a selected one of the plurality of acceptable transmission rates and uses at least a portion of the unallocated bandwidth;
transforming the data-stream to the negotiated second transfer rate; and
transmitting the data stream on the data network at the negotiated second transfer rate.
-
-
10. The method of claim 9 wherein the data stream is a first data stream, the stream annotations are first stream annotations and the data class is a first data class, the method further comprises steps of:
-
annotating a second data stream with second stream annotations;
determining a plurality of acceptable transmission rates for the second data stream;
negotiating a first transfer rate for the first data stream, wherein the first transfer rate is a selected one of the acceptable transmission rates for the first data stream and is limited to the bandwidth specified by the policy tree for the data class associated with the first data stream;
negotiating a second transfer rate for the second data stream, wherein the second transfer rate is a selected one of the acceptable transmission rates for the second data stream and is limited to the bandwidth specified by the policy tree for the data class associated with the second data stream;
transforming the first data stream to the negotiated first transfer rate and the second data stream to the negotiated second transfer rate; and
transmitting the first data stream and the second data stream on the data network at the negotiated transfer rates.
-
-
11. A data network for transmitting a data stream, comprising:
-
a first node having logic to annotate the data stream with stream annotations that define a data class and having logic to transmit the data stream and the stream annotations on the data network;
a second node couple to the first node and having logic to receive the data stream and the stream annotations;
a stream processor coupled to the second node having logic to receive the data stream and determine a plurality of acceptable transmission rates;
an allocator coupled to the stream processor, the allocator having a policy tree that specifies apportionment of a bandwidth of the data network to a plurality of data classes, and wherein the allocator further comprises logic to negotiate a transfer rate for the data stream wherein the transfer rate is a selected one of the plurality of acceptable transmission rates and is limited to the bandwidth allocated by the policy tree to the data class defined by the stream annotations;
an output coupled to the stream processor and having logic to transmit the data stream on the data network at the negotiated transfer rate; and
a third node couple to the second node and having logic to receive the data stream transmitted by the output. - View Dependent Claims (12, 13)
-
-
14. A method for allocating bandwidth of a data network to a plurality of data streams, comprising:
-
specifying apportionment of the bandwidth to a plurality of data classes;
receiving a plurality of data streams wherein each data stream has at least one attribute that associates the data stream with one of the data classes;
negotiating a transfer rate for each data stream, wherein the transfer rate is limited to the bandwidth apportioned to the data class associated with each data stream; and
transmitting the data streams on the data network at the negotiated transfer rates;
wherein the step of receiving comprises steps of;
receiving stream annotations associated with each of the data streams; and
activating a plug-in to receive each data stream, wherein the type of plug-in is determined from the stream annotations.
-
-
15. A method for allocating bandwidth of a data network to a plurality of data streams, comprising:
-
specifying apportionment of the bandwidth to a plurality of data classes;
receiving a plurality of data streams wherein each data stream has at least one attribute that associates the data stream with one of the data classes;
negotiating a transfer rate for each data stream, wherein the transfer rate is limited to the bandwidth apportioned to the data class associated with each data stream; and
transmitting the data streams on the data network at the negotiated transfer rates;
wherein the step of negotiating comprises steps of;
determining a plurality of acceptable transmission rates for each data stream; and
negotiating a transfer rate for each data stream, wherein the transfer rate is a selected one of the acceptable transmission rates and is limited to the bandwidth apportioned to the data class associated with each data stream.
-
-
16. A method for allocating bandwidth of a data network to a plurality of data streams, comprising:
-
specifying apportionment of the bandwidth to a plurality of data classes;
receiving a plurality of data streams wherein each data stream has at least one attribute that associates the data stream with one of the data classes;
negotiating a transfer rate for each data stream, wherein the transfer rate is limited to the bandwidth apportioned to the data class associated with each data stream; and
transmitting the data streams on the data network at the negotiated transfer rates;
wherein the transfer rate is a first transfer rate and the method further comprises steps of;
determining unallocated bandwidth on the data network;
negotiating a second transfer rate for at least one data stream, wherein the second transfer rate uses the unallocated bandwidth;
transforming the at least one data stream to the negotiated second transfer rate; and
transmitting the at least one data stream on the data network at the second transfer rate. - View Dependent Claims (17)
receiving at least a second data stream having an associated data class;
negotiating a third transfer rate for the at least one data stream, wherein the third transfer rate is limited to the bandwidth apportioned to the data class associated with the at least one data stream;
negotiating a fourth transfer rate for the at least second data stream, wherein the fourth transfer rate is limited to the bandwidth apportioned to the data class associated with the at least second data stream; and
transmitting on the data network, the at least one data stream at the third transfer rate and the at least a second data stream at the fourth data rate.
-
Specification