U.S. patent application number 12/184484 was filed with the patent office on 2008-11-20 for medium and system for controlling atm traffic using bandwidth allocation technology.
This patent application is currently assigned to INTERNATIONAL BUSINESS MACHINES CORPORATION. Invention is credited to Patrick DROZ, Ilias Iliadis, Clark D. Jeffries, Andreas Kind, Joseph F. Logan.
Application Number | 20080285455 12/184484 |
Document ID | / |
Family ID | 33450282 |
Filed Date | 2008-11-20 |
United States Patent
Application |
20080285455 |
Kind Code |
A1 |
DROZ; Patrick ; et
al. |
November 20, 2008 |
MEDIUM AND SYSTEM FOR CONTROLLING ATM TRAFFIC USING BANDWIDTH
ALLOCATION TECHNOLOGY
Abstract
A medium and system for managing asynchronous transfer mode
(ATM) traffic in a computer system is disclosed. The computer
system is used in sending, receiving, or sending and receiving a
plurality of ATM flows. Each ATM flow has a plurality of ATM cells,
a minimum ATM bandwidth guarantee, and a maximum ATM bandwidth. The
medium and system include determining whether excess bandwidth
exists for the ATM flows. The method and system also include
gracefully increasing a portion of the ATM cells transmitted for
each ATM flow during periods of excess bandwidth. The portion of
the ATM cells transmitted is not more than the maximum ATM
bandwidth limit. If an ATM flow presents a sufficient offered load,
the portion of the ATM cells transmitted in the flow is not less
than a minimum ATM bandwidth guarantee.
Inventors: |
DROZ; Patrick; (Rueschlikon,
CH) ; Iliadis; Ilias; (Rueschlikon, CH) ;
Jeffries; Clark D.; (Durham, NC) ; Kind; Andreas;
(Kilchberg, CH) ; Logan; Joseph F.; (Raleigh,
NC) |
Correspondence
Address: |
IBM RP-RPS;SAWYER LAW GROUP LLP
2465 E. Bayshore Road, Suite No. 406
PALO ALTO
CA
94303
US
|
Assignee: |
INTERNATIONAL BUSINESS MACHINES
CORPORATION
Armonk
NY
|
Family ID: |
33450282 |
Appl. No.: |
12/184484 |
Filed: |
August 1, 2008 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
11946057 |
Nov 28, 2007 |
|
|
|
12184484 |
|
|
|
|
10442762 |
May 21, 2003 |
7317727 |
|
|
11946057 |
|
|
|
|
Current U.S.
Class: |
370/235 ;
370/395.4; 370/468 |
Current CPC
Class: |
H04L 12/5602 20130101;
H04L 47/32 20130101; H04L 2012/5631 20130101; H04L 47/50 20130101;
H04L 47/2416 20130101; H04L 2012/5679 20130101; H04L 47/621
20130101; H04L 47/525 20130101; H04L 47/2408 20130101 |
Class at
Publication: |
370/235 ;
370/395.4; 370/468 |
International
Class: |
H04L 12/56 20060101
H04L012/56; G08C 15/00 20060101 G08C015/00; H04J 3/16 20060101
H04J003/16 |
Claims
1. A computer-readable medium encoded with a computer program for
managing asynchronous transfer mode (ATM) traffic in a plurality of
ATM flows, the computer program comprising executable instructions
for: determining whether any of the plurality of ATM flows has
excess bandwidth, each ATM flow having an ATM cell flow rate, a
minimum ATM bandwidth guarantee, and a maximum ATM bandwidth limit;
and responsive to one or more ATM flows having excess bandwidth,
gradually increasing the ATM cell flow rate of each ATM flow having
excessive bandwidth without exceeding the maximum ATM bandwidth
limit of each ATM flow having excess bandwidth, and provided a
sufficient load is offered, without falling below the minimum ATM
bandwidth guarantee of each ATM flow having excess bandwidth
2. The computer-readable medium of claim 1, wherein transmission of
ATM cells in each ATM flow is based on a transmit fraction of the
ATM flow such that an ATM cell is transmitted in each ATM flow only
when the transmit fraction of the ATM flow is greater than or equal
to a generated random number, the transmit fraction being between
zero and one, and gradually increasing the ATM cell flow rate of
each ATM flow having excess bandwidth comprises:linearly increasing
the transmit fraction of each ATM flow having excess bandwidth
towards one.
3. The computer-readable medium of claim 2, wherein determining
whether any of the plurality of ATM flows has excess bandwidth
comprises determining whether any of the plurality of ATM flows has
excess bandwidth in a current refresh period, providing an excess
bandwidth signal for the current refresh period, the excess
bandwidth signal being one when excess bandwidth exists and zero
when excess bandwidth is not available, and providing an average
excess bandwidth signal for the current refresh period, the average
excess bandwidth signal being an exponentially weighted moving
average of the excess bandwidth signal, and linearly increasing the
transmit fraction of each ATM flow having excess bandwidth
comprises selecting a constant for each ATM flow having excess
bandwidth, calculating a product for each ATM flow having excess
bandwidth by multiplying the constant selected for the ATM flow by
the average excess bandwidth signal, and calculating a transmit
fraction of each ATM flow having excess bandwidth for the current
refresh period by adding the product calculated for the ATM flow to
a transmit fraction of the ATM flow for a previous refresh
period.
4. The computer-readable medium of claim 3, wherein selecting the
constant for each ATM flow having excess bandwidth comprises:
selecting the constant for each ATM flow having excess bandwidth
based on a priority of the ATM flow.
5. The computer-readable medium of claim 1, wherein the computer
program further comprises executable instructions for: responsive
to no ATM flow having excess bandwidth, gradually decreasing the
ATM cell flow rate of each ATM flow.
6. The computer-readable medium of claim 5, wherein transmission of
ATM cells in each ATM flow is based on a transmit fraction of the
ATM flow such that an ATM cell is transmitted in each ATM flow only
when the transmit fraction of the ATM flow is greater than or equal
to a generated random number the transmit fraction being between
zero and one, and gradually decreasing the ATM cell flow rate of
each ATM flow comprises: exponentially decreasing the transmit
fraction of each ATM flow towards zero.
7. The computer-readable medium of claim 6, wherein determining
whether any of the plurality of ATM flows has excess bandwidth
comprises determining whether any of the plurality of ATM flows has
excess bandwidth in a current refresh period, and exponentially
decreasing the transmit fraction of each ATM flow comprises
selecting a constant for each ATM flow, calculating a transmitted
flow rate for each ATM flow by dividing a rate of ATM cell
transmission observed for the ATM flow by a maximum rate of ATM
cell transmission obtainable by any of the plurality of ATM flows,
calculating a product for each ATM flow by multiplying the constant
selected for the ATM flow by the transmitted flow rate calculated
for the ATM flow, and calculating a transmit fraction of each ATM
flow for the current refresh period by subtracting the product
calculated for the ATM flow from a transmit fraction of the ATM
flow for a previous refresh period.
8. The computer-readable medium of claim 7, wherein selecting the
constant for each ATM flow comprises: selecting the constant for
each ATM flow based on a priority of the ATM flow.
9. A system for managing asynchronous transfer mode (ATM) traffic
in a plurality of ATM flows, the system comprising: at least one
queue storing ATM cells to be transmitted; and a flow control
mechanism in communication with the at least one queue, the flow
control mechanism determining whether any of the plurality of ATM
flows has excess bandwidth, each ATM flow having an ATM cell flow
rate, a minimum ATM bandwidth guarantee, and a maximum ATM
bandwidth limit; and responsive to one or more ATM flows having
excess bandwidth, gradually increasing the ATM cell flow rate of
each ATM flow having excessive bandwidth without exceeding the
maximum ATM bandwidth limit of each ATM flow having excess
bandwidth, and provided a sufficient load is offered, without
failing below the minimum ATM bandwidth guarantee of each ATM flow
having excess bandwidth.
10. The system of claim 9, wherein transmission of ATM cells in
each ATM flow is based on a transmit fraction of the ATM flow such
that an ATM cell is transmitted in each ATM flow only when the
transmit fraction of the ATM flow is greater than or equal to a
generated random number, the transmit fraction being between zero
and one, and gradually increasing the ATM cell flow rate of each
ATM flow having excess bandwidth comprises: linearly increasing the
transmit fraction of each ATM flow having excess bandwidth towards
one.
11. The system of claim 10, wherein determining whether any of the
plurality of ATM flows has excess bandwidth comprises determining
whether any of the plurality of ATM flows has excess bandwidth in a
current refresh period, providing an excess bandwidth signal for
the current refresh period, the excess bandwidth signal being one
when excess bandwidth exists and zero when excess bandwidth is not
available, and providing an average excess bandwidth signal for the
current refresh period, the average excess bandwidth signal being
an exponentially weighted moving average of the excess bandwidth
signal, and linearly increasing the transmit fraction of each ATM
flow having excess bandwidth comprises selecting a constant for
each ATM flow having excess bandwidth, calculating a product for
each ATM flow having excess bandwidth by multiplying the constant
selected for the ATM flow by the average excess bandwidth signal,
and calculating a transmit fraction of each ATM flow having excess
bandwidth for the current refresh period by adding the product
calculated for the ATM flow to a transmit Fraction of the ATM flow
for a previous refresh period.
12. The system of claim 11, wherein selecting the constant for each
ATM flow having excess bandwidth comprises: selecting the constant
for each ATM flow having excess bandwidth based on a priority of
the ATM flow.
13. The system of claim 9, wherein the flow control mechanism
further responsive to no ATM flow having excess bandwidth,
gradually decreases the ATM cell flow rate of each ATM flow.
14. he system of claim 13, wherein transmission of ATM cells in
each ATM flow is based on a transmit fraction of the ATM flow such
that an ATM cell is transmitted in each ATM flow only when the
transmit fraction of the ATM flow is greater than or equal to a
generated random number, the transmit fraction being between zero
and one, and gradually decreasing the ATM cell flow rate of each
ATM flow comprises: exponentially decreasing the transmit fraction
of each ATM flow towards zero.
15. The system of claim 14, wherein determining whether any of the
plurality of ATM flows has excess bandwidth comprises determining
whether any of the plurality of ATM flows has excess bandwidth in a
current refresh period, and exponentially decreasing the transmit
fraction of each ATM flow comprises selecting a constant for each
ATM flow, calculating a transmitted flow rate for each ATM flow by
dividing a rate of ATM cell transmission observed for the ATM flow
by a maximum rate of ATM cell transmission obtainable by any of the
plurality of ATM flows, calculating a product for each ATM flow by
multiplying the constant selected for the ATM flow by the
transmitted flow rate calculated for the ATM flow, and calculating
a transmit fraction of each ATM flow for the current refresh period
by subtracting the product calculated for the ATM flow from a
transmit fraction of the ATM flow for a previous refresh
period.
16. The system of claim 15, wherein selecting the constant for each
ATM flow comprises: selecting the constant for each ATM flow based
on a priority of the ATM flow.
Description
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] Under 35 USC 120, this is a divisional application and
claims the benefit of priority to U.S. patent application Ser. No.
11/946,057, filed Nov. 28, 2007, entitled "Method and System for
Controlling ATM Traffic Using Bandwidth Allocation Technology",
which is a continuation application and claims the benefit of U.S.
patent application Ser. No. 10/442,7625 filed May 21, 2003,
entitled "Method and System for Controlling ATM Traffic Using
Bandwidth Allocation Technology", all of which is incorporated
herein by reference. The present invention is related to co-pending
U.S. patent application Ser. No. 10/117,814, entitled "METHOD AND
SYSTEM FOR PRIORITY ENFORCEMENT WITH FLOW CONTROL" and assigned to
the assignee of the present invention, which has issued as U.S.
Pat. No. 7,142,552. The present invention is also related to
co-pending U.S. patent application Ser. No. 10/118,493, entitled
"PRIORITY-BASED BANDWIDTH ALLOCATION WITHIN REAL-TIME AND
NON-REAL-TIME TRAFFIC STREAMS" and assigned to the assignee of the
present invention.
FIELD OF THE INVENTION
[0002] The present invention relates to computer systems, and more
particularly to a method and system for managing asynchronous
transfer mode (ATM) traffic.
BACKGROUND OF THE INVENTION
[0003] ATM is used in providing several types of communication
traffic, particularly for traffic carried over long distances in
general traffic in ATM can be conceived of virtual connections
between networks. Each virtual connection could include many
concurrent sessions, such as TCP/IP sessions.
[0004] Like traffic that is typically carried over the Internet,
for example using DiffServ, ATM provides for different levels of
service. In particular, ATM includes six service categories:
constant bit rate (CBR), realtime variable bit rate (rt-VBR),
non-realtime variable bit rate (nrt-VBR), unspecified bit rate
(UBR), available bit rate (ABR), and guaranteed frame rate (GFR).
In order to monitor the levels of service, ATM uses a generic cell
rate algorithrm (GCRA). A network administrator of a network
receiving traffic uses the GCRA to determine whether the traffic
offered is consistent with their service agreement and any quality
of service parameters. The GCRA can be used by the sender to
determine whether the network treats the traffic offered correctly.
Stated differently, the GCRA allows the buyer or seller of ATM
service to determine whether bandwidth bought or sold, which
corresponds to the flows in the traffic within the network,
conforms to a service agreement.
[0005] Furthermore, the six categories of ATM service can be
described using several parameters. Peak cell rate (PCR) is the
maximum bandwidth that can be allocated to a flow of a particular
level of service. Cell delay variation tolerance (CDVT) is a jitter
specification for a level of service. In addition, the sustainable
cell rate (SCR) is a minimum bandwidth guarantee specified for a
particular flow. Maximum burst size (MBS) is the maximum burst size
allowed for the flow. The minimum cell rate (MCR) is the minimum
bandwidth guarantee specified for the flow. The MCR is used only by
the ABR and GFR levels of service. The Maximum frame size (MFS) is
used only by GFR and, as the name indicates, specifies the maximum
frame size for the GFR flow. Furthermore, a network administrator
for a network using ATM specifies parameters including:
peak-to-peak cell delay variation (peak-to-peak CDV) to specify the
allowed jitter, the maximum cell transit delay (MaxCTD) to specify
the allowed latency, and the cell loss rate (CLR) to specify the
allowed cell loss rate.
[0006] Using the parameters above, ATM traffic can provide
different levels of service. ATM standards do require that the
parameters be met and that traffic may be monitored at the entrance
and exit of each network. In other words, ATM specifies the goals,
such as the MCR, to be met for each flow. However, ATM does not
otherwise specify how traffic is controlled to meet the goals for
each the above categories of service.
[0007] FIG. 1 depicts a conventional system 10 used in providing
different levels of service for ATM traffic. The conventional
system 10 is preferably used at the edge of a network (not
explicitly shown). Thus, the conventional system 10 is used to
ensure that flows entering and/or leaving the network conform to
the parameters for each level of service. For clarity, the
conventional system 10 is depicted as having five flows 20, 22, 24,
26, and 28. However, the conventional system 10 typically manages a
large number of flows. The five flows 20, 22, 24, 26, and 28
include two realtime flows 20 and 22, and three non-realtime flows
24, 26, and 28. For example, the realtime flows 20 and 22 might be
rt-VBR and CBR flows and the non-realtime flows 24, 26, and 28
might be nrt-VBR, UBR, and CBR flows. Each flow 20, 22, 24, 26, and
28 has a corresponding queue 30, 32, 34, 36, and 38 in which ATM
cells may be stored prior to further processing.
[0008] The system 10 also includes a conventional scheduler 40 and
an entrance to or exit from the network 42. Thus, the flows 20, 22,
24, 26, and 28 are either entering or exiting the network of which
the conventional system 10 is a part. The conventional scheduler 40
also has knowledge of the ATM service category and, therefore, the
parameters for each of the flows 20, 22, 24, 26, and 28. The
conventional scheduler 40 monitors the traffic for each of the
flows 20, 22, 24, 26, and 28. In particular, the conventional
scheduler 40 monitors each packet, or cell, for each flow 22, 24,
26, and 28. Based upon the ATM service categories and parameters
for the flows 20, 22, 24, 26, and 28, and the traffic in each of
the flows 20, 22, 24, 26, and 28, the conventional scheduler 40
determines from which corresponding queue 30, 32, 34, 36, and 38,
respectively, to select the next packet for processing. The
conventional scheduler 40 thus selects an ATM cell from one of the
queues 30, 32, 34, 36, or 38 and outputs the ATM cell to the
entrance or exit from the network 42. Thus, ATM traffic having
different levels of service can be managed.
[0009] Although the conventional method 10 functions, one of
ordinary skill in the art will readily recognize that the
conventional scheduler 40 is complex. The conventional scheduler 40
understands the ATM service category for each flow 20, 22, 24, 26,
and 28. The conventional scheduler 40 also obtains data relating to
each ATM cell in each flow 20, 22, 24, 26, and 28. Thus, the
conventional scheduler 40 must monitor the flow of each packet out
of each queue 30, 32, 34, 36, and 38. The conventional scheduler 40
also transmits packets for each flow 20, 22, 24, 26, and 28 such
that the ATM service parameters are met for each flow 20, 22, 24,
26, and 28. In order to perform all of these services on the
individual ATM cell level, the conventional scheduler 40 is
complex.
[0010] Furthermore, the conventional ATM scheduler 40 does not in
itself provide for a mechanism to discard excess traffic. Discards
may be managed by comparing the occupancy of Queue 130 with a
threshold and discarding arriving traffic if arid only if the
threshold is exceeded. The same policy may be applied to Queue 32
and so on. However, if such a threshold has a relatively low value,
then bursts of traffic may be unnecessarily discarded; if a
threshold has relatively high value, then during an episode of
steady congestion, all surviving packets may have undesirably high
queueing latency. Therefore setting discard thresholds may present
the administrator with burdensome and confusing performance
requirements. Consequently, providing different levels of ATM
services in a conventional manner may be relatively difficult and
inefficient.
[0011] Accordingly, what is needed is a medium and system for
providing better management of different levels of ATM services.
The present invention addresses such a need.
SUMMARY OF THE INVENTION
[0012] The present invention provides method for managing
asynchronous transfer mode (ATM) traffic in a computer system. The
computer system is used in sending, receiving, or sending and
receiving a plurality of ATM flows. Each of the plurality of ATM
flows has a plurality of IP packets consisting of ATM cells. The
method and system comprise determining whether excess bandwidth
exists for the plurality of ATM flows. Each of the plurality of ATM
flows has a minimum ATM bandwidth guarantee and a maximum ATM
bandwidth. The method and system also comprise gracefully
increasing a portion of the plurality of ATM cells transmitted for
each ATM flow of a portion the plurality of ATM flows having excess
bandwidth existing. The portion of the plurality of ATM cells
transmitted is not more than the maximum ATM bandwidth limit. If
the plurality of ATM cells presents a sufficient offered load, the
portion of the plurality of ATM cells transmitted is not less than
a minimum ATM bandwidth guarantee.
[0013] According to the method disclosed herein, the present
invention allows ATM traffic to be efficiently managed.
BRIEF DESCRIPTION OF THE DRAWINGS
[0014] FIG. 1 is a block diagram of a conventional system for
managing ATM traffic
[0015] FIG. 2 is a high-level flow chart depicting one embodiment
of a method in accordance with the present invention for managing
ATM traffic, preferably using a switch.
[0016] FIG. 3 is a more detailed flow chart depicting one
embodiment of a method in accordance with the present invention for
managing ATM traffic.
[0017] FIG. 4 is a block diagram of one embodiment of a system in
accordance with the present invention for managing ATM traffic.
DETAILED DESCRIPTION OF THE INVENTION
[0018] The present invention relates to an improvement in computer
systems and computer networks. The following description is
presented to enable one of ordinary skill in the art to make and
use the invention and is provided in the context of a patent
application and its requirements. Various modifications to the
preferred embodiment will be readily apparent to those skilled in
the art and the generic principles herein may be applied to other
embodiments. Thus, the present invention is riot intended to be
limited to the embodiment shown, but is to be accorded the widest
scope consistent with the principles and features described
herein.
[0019] The present invention provides method for managing
asynchronous transfer mode (ATM) traffic in a computer system. The
computer system is used in sending receiving, or sending and
receiving a plurality of ATM flows. Each of the plurality of ATM
flows has a plurality of ATM cells. The method and system comprise
determining whether excess bandwidth exists for the plurality of
ATM flows. Each of the plurality of ATM flows has a minimum ATM
bandwidth guarantee (possibly zero) and a maximum ATM bandwidth
limit. The method and system also comprise gracefully increasing a
portion of the plurality of ATM cells transmitted for each ATM flow
of a portion the plurality of ATM flows having excess bandwidth
existing. The portion of the plurality of ATM cells transmitted is
not more than the maximum ATM bandwidth limit. If the plurality of
ATM cells presents a sufficient offered load, the portion of the
plurality of ATM cells transmitted is not less than a minimum ATM
bandwidth guarantee.
[0020] According to the method disclosed herein, the present
invention allows ATM traffic to be managed gracefully and
efficiently. In addition, high utilization of the processing
resources and low queueing latency during steady congestion may be
ensured while allowing for excess bandwidth to be allocated fairly
among different flows.
[0021] The present invention will be described in terms of
particular computer systems. However, one of ordinary skill in the
art will readily recognize that this method and system will operate
effectively for other and/or additional computer systems having
different and/or additional components. The present invention is
described in the context of systems located at the edges of
networks. However, one of ordinary skill in the art will readily
recognize that the computer systems could be located elsewhere. In
addition, the present invention is described in the con text of
queues. However, one of ordinary skill in the art will readily
recognize that each queue could be a logical partition of a single
resource. Furthermore, the present invention is described in the
context of methods having certain steps performed in a particular
order. However, nothing prevents the use of methods having other
and/or additional steps and/or a different order of steps not
inconsistent with the present invention.
[0022] To more particularly illustrate the method and system in
accordance with the present invention, refer now to FIG. 2,
depicting one embodiment of a method 100 for managing ATM traffic
having different service categories. The method 100 is preferably
accomplished using technology described in co-pending U.S. patent
application Ser. No. 10/117,814 and entitled "METHOD AND SYSTEM FOR
PRIORITY ENFORCEMENT WITH FLOW CONTROL" and assigned to the
assignee of the present invention and co-pending U.S. patent
application Ser. No. 10/118,493, entitled "PRIORITY-BASED BANDWIDTH
ALLOCATION WITHIN REALTIME AND NON-REALTIME SERVICES" and assigned
to the assignee of the present invention. Applicants hereby
incorporate by reference the above-mentioned co-pending U.S. Patent
Applications.
[0023] The method 100 can be used with a switch (not shown) such as
a switch having multiple blades (not shown) and multiple ports on
each blade. The method 100 could also be used on another system. In
a preferred embodiment, the method 100 is implemented in enqueueing
mechanism(s) for one or more queues.
[0024] The method 100 is preferably repeated at a constant
frequency, each time a refresh period has expired. It is also
preferably used to manage ATM traffic at the edge of a network.
Thus, the switch or other mechanism implementing the method 100 is
preferably located at the edge of a network and provides ATM
traffic to or from an external destination or source, respectively.
The method 100 will, therefore, be described in the con text of the
network receiving or sending ATM cells at the network's edge.
However, nothing prevents the method 100 from being used in another
portion of the network (not shown), between individual hosts or
between networks (not shown).
[0025] The method 100 preferably commences after the network
administrator for the network (not shown), or other authorized
user, has set a minimum bandwidth guarantee and maximum bandwidth
limit for each flow of ATM cells that is to be controlled. The
method 100 also preferably commences after any remaining parameters
for each of the ATM flows has been set. Thus, for flows added after
the method 100 initially starts, the method 100 preferably controls
traffic for the flow only after the minimum bandwidth guarantee and
maximum bandwidth limit are set. The minimum bandwidth guarantee is
greater than or equal to zero. The minimum bandwidth guarantee and
the maximum bandwidth limit depend upon the ATM service category.
For example, for a CBR flow, the minimum bandwidth guarantee and
the maximum bandwidth limit are preferably set to the same level,
the PCR. For rt-VBR, the minimum bandwidth guarantee is preferably
set to SCR, while the maximum bandwidth limit is preferably set to
PCR. PCR is greater than SCR for rt-VBR. In addition, the MBS for
rt-VBR is preferably set by the administrator prior to the method
100 being used to control the flow. For UBR, the minimum bandwidth
guarantee is set equal to zero or, in a preferred embodiment,
slightly greater than zero. The minimum bandwidth guarantee is
preferably set slightly greater than zero so that there is always a
trickle of ATM traffic when ATM traffic is offered for the UBR
flow, which may make debugging simpler. In addition, a network
administrator may set an optional minimum desired cell rate and
associate the flow with a class through a behavior class selector
attribute. For ABR, the network administrator preferably sets the
minimum bandwidth guarantee equal to the MCR and the maximum
bandwidth limit to PCR. For ABR, MCR is not more than PCR. For ABR,
congestion control feedback and the minimum per hop bandwidth value
may also be set. For GFR, the minimum bandwidth guarantee and
maximum bandwidth limit are set to MCR and PCR, respectively.
Furthermore, MFS and early packet discard (EPD) can also be
implemented for GFR in conjunction with the method 100. EPD ensures
that if one ATM cell, which may be part of a larger IP packet, is
discarded, the remaining ATM cells for the IP packet are also
discarded. In addition, in order to ensure that the computer system
can handle the traffic through the system, the sum of the maximum
bandwidth limits for ATM flows of realtime traffic plus a sum of
the minimum bandwidth guarantees for ATM flows corresponding of
non-realtime traffic is less than or equal to a maximum capacity of
the computer system.
[0026] Whether excess bandwidth exists for the ATM flows being
controlled is determined, via step 102. The determination of excess
bandwidth is made based upon the ATM flows, rather than by
monitoring individual packets in the ATM flows. In a preferred
embodiment, the ATM cells in the ATM flows are being provided to
one or more queues. Whether excess bandwidth exists for a
particular ATM flow is preferably determined based upon one or more
of the following: the occupancy in the corresponding queue(s), the
rate of change of occupancy in the queue(s), and the flow rate for
the particular ATM flow. For example, when the corresponding
queue(s) is below a particular threshold, preferably expressed as a
percentage of occupancy of the queue, excess bandwidth exists. When
the occupancy of the queue is below a larger threshold and
decreasing at a particular rate, excess bandwidth also exists.
Otherwise excess bandwidth may be considered not to exist. The
thresholds and rates of decrease may be selected based upon the
application.
[0027] In a preferred embodiment, step 102 determines whether
excess bandwidth exists once for all realtime ATM traffic and once
for all non-realtime ATM traffic. Thus, in a preferred embodiment,
step 102 includes monitoring one queue that stores realtime traffic
and monitoring another queue that stores non-realtime traffic, then
determining whether excess bandwidth exists for the corresponding
flows. Thus, the determination of excess bandwidth is preferably
the same for all ATM flows that include realtime traffic.
Similarly, the determination of excess bandwidth is preferably the
same for all ATM flows that include non-realtime traffic. However,
nothing prevents the use of a finer definition of excess bandwidth
flow by flow based upon a larger number of queues and/or organizing
the queues differently. In addition, the determination of excess
bandwidth in step 102 is not based upon monitoring of individual
ATM cells. Instead, queue statistics or other indicator of the flow
of ATM traffic for the ATM flows is used.
[0028] If it is determined that excess bandwidth exists for certain
ATM flows, then the flow rate of ATM cells transmitted for these
flows is gracefully increased, via step 104. A graceful increase or
decrease occurs when the flow rate is gradually increased or
decreased, respectively toward the upper limit (maximum bandwidth
limit) or lower limit (minimum bandwidth guarantee), respectively.
This could include linearly or exponentially increasing or
decreasing the flow rate of the ATM cells transmitted.
[0029] Also in step 104, it is ensured that the transmission of ATM
cells for these flows is such that enough ATM cells are transmitted
to meet the minimum bandwidth guarantee if a sufficient load is
offered. In other words, the minimum bandwidth guarantee is met as
long as enough ATM cells are in the flow. If a sufficient load is
not offered, then the flow may have less than the minimum bandwidth
guarantee. Also in a preferred embodiment, the ATM flows are
controlled so that the ATM cells transmitted are not more than the
maximum bandwidth limit. This means that each ATM flow is
preferably controlled so that the ATM cells transmitted are reduced
when the ATM cells transmitted for the flow exceed the maximum
bandwidth limit. In a preferred embodiment, the number of ATM cells
transmitted for each realtime ATM flow will increase when there is
excess bandwidth for realtime traffic and when the maximum
bandwidth limit for the realtime traffic is not exceeded.
[0030] In a preferred embodiment, step 104 is performed by linearly
increasing the transmit fraction for each ATM flow for which excess
bandwidth exists, exponentially decreasing the transmit fraction
for ATM flows having flow rates greater than the maximum bandwidth
limit, and using the transmit fraction to determine whether to
discard individual ATM cells for the ATM flows. The transmit
fraction may be zero (transmit no packets), one (transmit all
packets) or some value between zero and one. Thus, in a preferred
embodiment, when a packet arrives, the current value of a random
number generator (not explicitly shown) is fetched. This current
random number is also zero, one or some value between zero and one.
The current random number is compared to the transmit fraction. The
ATM cell is transmitted when the transmit fraction for the
corresponding ATM flow is greater than or equal to the current
random number. Otherwise, the ATM cell is discarded. As the
transmit fraction for an ATM flow is increased in step 104, there
is a greater probability that an ATM cell is transmitted. In one
embodiment, individual ATM cells are transmitted or discarded
without regard to any IP packets of which the ATM cells are a part.
However, in another embodiment, EPD is used so that if one ATM cell
of an IP packet is discarded, the remaining ATM cells for the IP
packet will also be discarded.
[0031] Thus, using the method 100, ATM traffic can be gracefully
controlled based upon the available bandwidth. In a preferred
embodiment, the determination of whether available bandwidth exists
is not based upon monitoring individual ATM cells, but instead is
based upon a simpler measure, such as queue statistics. Individual
packets need not be monitored in order to provide different
categories of ATM service. As a result, different ATM flows
belonging to different categories of service and having different
ATM parameters may be efficiently and more simply controlled.
[0032] FIG. 3 is a more detailed flow chart depicting one
embodiment of a method 110 in accordance with the present invention
for managing ATM traffic. The method 110 is preferably one
implementation of the method 100. The method 110 is preferably
accomplished using technology described in the above-identified
co-pending U.S. Patent Applications. The method 110 can be used
with a switch (not shown) or other mechanism. In a preferred
embodiment, the method 110 is implemented in enqueueing
mechanism(s) for one or more queues.
[0033] The method 110 preferably commences after the network
administrator for the network (not shown), or other authorized
user, has set a minimum bandwidth guarantee and maximum bandwidth
limit for each flow of ATM cells that is to be controlled. The
method 110 also preferably commences after remaining parameters for
each of the ATM flows has been set. Thus, for flows added after the
method 110 initially starts, the method 110 preferably controls
traffic for the flow only after the minimum bandwidth guarantee and
maximum bandwidth limit are set. The minimum bandwidth guarantee
and maximum bandwidth limit for different ATM service categories
are preferably set in a similar manner to the method 100 of FIG. 2.
Referring back to FIG. 3, the method 110 is preferably performed
for each ATM flow that is being controlled. Each flow rate has a
minimum bandwidth guarantee and a maximum bandwidth limit.
[0034] The method 110 is preferably repeated at a constant
frequency, each time a refresh period has expired. It is also
preferably used to manage ATM traffic at the edge of a network.
Thus, the switch or other mechanism implementing the method 110 is
preferably located at the edge of a network and provides ATM
traffic to or from an external destination or source, respectively.
The method 110 will, therefore, be described in the context of the
network receiving or sending ATM cells at the network's edge.
However, nothing prevents the method 110 from being used in another
portion of the network (not shown), between individual hosts or
between networks (not shown).
[0035] It is determined whether excess bandwidth exists for each of
the ATM flows, via step 112. In a preferred embodiment, step 112 is
not performed by monitoring individual ATM cells in each ATM flow.
Instead, as described above with respect to the method 100, step
112 preferably utilizes queue statistics in order to determine
whether bandwidth exists for the ATM flows. In a preferred
embodiment, step 112 determines whether excess bandwidth exists
once for all realtime ATM traffic and once for all non-realtime ATM
traffic. Thus, in a preferred embodiment, step 112 includes
monitoring one queue that stores realtime traffic and monitoring
another queue that stores non-realtime traffic, then determining
whether excess bandwidth exists for the corresponding flows. Thus,
the determination of excess bandwidth is preferably the same for
all ATM flows that include realtime traffic. Similarly, the
determination of excess bandwidth is preferably the same for all
ATM flows that include non-realtime traffic. However, nothing
prevents the use of a different number of queues and/or organizing
the queues differently. Note that the determination of excess
bandwidth in step 112 is not based upon monitoring of individual
ATM cells. Instead, queue statistics or other indicator of the flow
of ATM traffic for the ATM flows is used.
[0036] In a preferred embodiment, step 112 also includes providing
an excess bandwidth signal, B, and an average excess bandwidth
signal, E. The excess bandwidth signal B is one when excess
bandwidth exists and zero when excess bandwidth is not available.
The average excess bandwidth signal, E, is preferably an
exponentially weighted moving average of B. Thus, E is greater than
or equal to zero and less than or equal to one. B and E are
calculated each refresh period.
[0037] One of the ATM flows is selected, via step 114. It is
determined whether the flow rate of ATM cells transmitted for the
selected ATM flow is less than the minimum bandwidth guarantee for
the selected flow, via step 116. If so, then the transmit fraction
for the selected ATM flow is gracefully increased toward one, via
step 118. A graceful increase or decrease occurs when the transmit
fraction is gradually increased or decreased, respectively, toward
the upper limit (1) or lower limit (0), respectively. In a
preferred embodiment, the transmit fraction is linearly increased
in step 118. Thus, the flow rate of transmitted ATM cells for the
selected ATM flow should increase over the refresh period.
[0038] If the flow rate for transmitted ATM cells is not less than
the minimum bandwidth guarantee, then it is determined whether the
flow rate of ATM cells transmitted is greater than the maximum
bandwidth limit, via step 120. If the flow rate of ATM cells
transmitted is greater than the maximum bandwidth limit, then the
transmit fraction is gracefully decreased toward zero. Preferably,
this graceful decrease includes exponentially decreasing the
transmit fraction. Thus, the flow rate of transmitted ATM cells for
the selected ATM flow should decrease over the refresh period.
Thus, using step 120, the flow rate of transmitted ATM cells can
effectively be prevented from being greater than the maximum
bandwidth limit.
[0039] If the flow rate for transmitted ATM cells is less than the
maximum bandwidth limit, then it is determined whether there is
excess bandwidth available for the ATM flow, via step 124. Step 124
preferably includes determining whether B is a one for the selected
ATM flow. As discussed above, the excess bandwidth availability is
determined for realtime and non-realtime ATM flows. Thus, for
example, if B is a one for one realtime flow, then B will be a one
for all realtime ATM flows. If there is excess bandwidth available,
then the transmit fraction is gracefully increased, via step 128.
In a preferred embodiment, step 126 includes linearly increasing
the transmit fraction for the selected ATM flow if excess bandwidth
is available. Also in a preferred embodiment, the amount that the
transmit fraction increases depends upon E and, therefore, upon how
long excess bandwidth has been available. When calculated using
step 126, the transmit fraction for the current refresh period is
preferably:
T.sub.j=T.sub.j-1+E*C.sub.i
where: [0040] C.sub.i=constant selected for the ith ATM flow [0041]
T.sub.j=transmit fraction for the selected ATM flow for the current
refresh period [0042] T.sub.j-1=transmit fraction for the selected
ATM flow for the previous refresh period
[0043] In a preferred embodiment, the constant, C, for the flow is
preferably selected based upon the priority of the flow. If
different ATM flows have different priorities, the C.sub.i's are
different. Suppose the priorities correspond to P=0, 1, 2, 3, 4 . .
. . The highest priority, P=0, preferably has the highest C.sub.0.
In a preferred embodiment ATM flows having the highest priority
have C.sub.0= 1/128. Lower priority ATM flows have lower constants.
Preferably C.sub.i+1=Ci/.sub.2. Thus, C.sub.1= 1/256, C.sub.2=
1/512 and so on. As a result, the higher priority ATM flows will
increase their transmission fraction in step 126 more quickly than
lower priority ATM flows. Higher priority ATM flows take excess
bandwidth more readily than lower priority flows.
[0044] If there is no excess bandwidth available, then the transmit
fraction is gracefully decreased, via step 128. In a preferred
embodiment, step 126 includes exponentially decreasing the transmit
fraction for the selected ATM flow if excess bandwidth is not
available. Thus, the amount that the transmit fraction decreases
depends upon the transmit fraction for the previous period. When
calculated using step 128, the transmit fraction for the current
refresh period is preferably:
T.sub.j=T.sub.j-1f.sub.j-1*D.sub.i
where: [0045] Di=constant selected for the ith ATM flow [0046]
T.sub.j=transmit fraction for the selected ATM flow for the current
refresh period [0047] T.sub.j-1=transmit fraction for the selected
ATM flow for the previous refresh period [0048]
f.sub.j-1=transmitted flow rate for the selected ATM flow for the
previous refresh period expressed as a fraction of the physical
rate observed divided by the maximum possible physical rate (a
constant)
[0049] In a preferred embodiment., the constant D.sub.i, for the
flow is preferably selected based upon the priority of the flow. If
different ATM flows have different priorities, the D.sub.i's are
different. Suppose the priorities correspond to P=0, 1, 2, 3. The
ATM flow with priority 3 has the lowest priority. In a preferred
embodiment, ATM flows having the highest priority have
D.sub.0=1132. Lower priority ATM flows have larger constants.
Preferably D.sub.i-1=D.sub.i*2 (where * denotes multiplication).
Thus, D.sub.1= 1/16, D.sub.2=1/8 and D.sub.3=1/4. As a result, the
higher priority ATM flows will decrease their transmission fraction
in step 128 more slowly than lower priority ATM flows. Higher
priority ATM flows retain their bandwidth to a greater extent than
lower priority flows.
[0050] Once the transmit fraction is set in step 118, 122, 126, or
128, it is determined whether there are any other ATM flows for
which the transmit fraction is to be set, via step 130. If so, then
step 114, selecting the next ATM flow, is returned to. If the
transmit fraction has been set for all ATM flows, then the transmit
fractions are stored for use in determining whether to transmit or
discard packets in the ATM flows during the refresh period via step
132. The same stored transmit fraction are also used to calculate
the next transmit fraction values. In a preferred embodiment, the
transmit fraction is compared to a random number in step 132, as
described above. If the transmit fraction is greater than the
random number, then the ATM cell is transmitted. Otherwise, the ATM
cell is dropped. In one embodiment, EPD is used to drop other ATM
cells in the same IP packet. When the refresh period has expired,
then step 112 is returned to.
[0051] Thus, using the method 110, ATM traffic can be gracefully
controlled based upon the available bandwidth. The determination of
whether available bandwidth exists is not based upon monitoring
individual ATM cells, but instead is based upon a simpler measure,
such as queue statistics. As a result, different ATM flows
belonging to different categories of service and having different
ATM parameters may be efficiently and more simply controlled.
[0052] FIG. 4 is a block diagram of one preferred embodiment of a
system 200 in accordance with the present invention for managing
ATM traffic. The system 200 preferably implements the methods 100
and/or 110. The system 200 includes a flow control mechanism 210,
ATM flows 222, 224, 232, and 234 from realtime traffic 220 and
non-realtime traffic 230, discard mechanisms 226, 228, 236, and 238
that are pictured as valves. The system 200 also includes queues
240 and 242, scheduler 250 and an entrance/exit 252 for the network
of which the system 200 is a part. The ATM flows 222 and 224 are
for realtime traffic. The ATM flows 232 and 234 are non-realtime
flows. For exemplary purposes, the system 200 is shown as
controlling four ATM flows 222, 224, 232, and 234. However, nothing
prevents the use of another number of ATM flows. In a preferred
embodiment, the flow control mechanism 210 is an enqueueing
mechanism 210 that uses discard mechanisms 226, 228, 236, and 238
to transmit or discard ATM cells traveling toward the queues 240
and 242. The first queue 240 is for realtime traffic, while the
second queue 242 is for non-realtime traffic.
[0053] The flow control mechanism 210 implements at least a portion
of the method 100 and/or 110. Thus, the flow control mechanism 210
determines whether excess bandwidth exists and, in a preferred
embodiment, adjusts the transmission fractions for the ATM flows
222, 224, 232, and 234 accordingly. In a preferred embodiment, the
enqueueing mechanism 210 determines whether excess bandwidth exists
for all realtime traffic 220. The enqueueing mechanism preferably
makes this determination based upon the statistics for the queue
240. For example, the enqueueing mechanism 210 may determine that
excess bandwidth exists when the occupancy of the queue 240 is
below a certain threshold, such as ten percent occupancy, or when
the occupancy of the queue 240 is below twenty percent occupancy
and decreasing. Thus, the enqueueing mechanism preferably
implements steps 102 and/or 112 of the methods 100 and 110,
respectively.
[0054] The enqueueing mechanism 210 controls the discard mechanisms
226, 228, 236, and 238 to transmit or discard ATM cells for the ATM
flows 222, 224, 232, and 236 based upon the existence of excess
bandwidth. In a preferred embodiment, the enqueueing mechanism 210
updates the transmit fraction for each of the ATM flows 222, 224,
232, and 234 based upon whether excess bandwidth exists. In a
preferred embodiment, the transmit fraction for the ATM flows 222
and 224 will be updated in a similar manner because these ATM flows
222 and 224 both include realtime traffic. Similarly, the transmit
fraction for the ATM flows 232 and 234 will be updated in a similar
manner because these ATM flows 232 and 234 both include
non-realtime traffic. However, the values of the transmit fraction
for the ATM flows 222, 224, 232, and 234 may differ. Thus, the ATM
flows 222, 224, 232, and 234 may take up or relinquish bandwidth to
a different extent.
[0055] In addition, the enqueueing mechanism 210 ensures that
certain parameters are met so that the system 200 can adequately
handle the ATM traffic through the network (not shown). The
enqueueing mechanism 210 preferably ensures that the minimum rate
of each flows is actually allocated, if the flow offers at least
that much traffic, and that the maximum rates of each flow is
enforced, if the flow offers more than its maximum rate.
[0056] ATM cells that are transmitted are provided to the queue 240
or the queue 242. The queues 240 and 242 preferably output ATM
cells in first-in-first-out (FIFO) order. The scheduler 250 selects
ATM cells from the queue 240 or 242 and outputs the ATM cell to the
entrance/exit 252. In a preferred embodiment, the scheduler 250
only takes an ATM cell from the queue 242 holding non-realtime
traffic when the queue 240 is empty. Thus, the realtime traffic
will be more rapidly processed. However, in another embodiment, the
scheduler 250 may take packets from the queue 242 more often, for
example when the queue 240 reaches a certain, low threshold.
Consequently, the scheduler 250 does not determine whether and when
to discard ATM cells.
[0057] Because the enqueueing mechanism 210 controls the admission
of ATM cells into the queues 240 and 242, the occupancies of the
queues 240 and 242 may be lower than if the scheduler 250 performed
the above-described flow control based upon discard actions
triggered by flow queue occupancy exceeding a threshold, especially
if the threshold is set at a high value for the purpose of
tolerating bursts. Consequently, the queues 240 and 242 generally
have a lower occupancy and, therefore, a lower latency. In
addition, because the enqueueing mechanism controls the
transmission of ATM cells based upon queue statistics, the
enqueueing mechanism 210 need not monitor each ATM cell entering
the system 200. In addition, the scheduler 250 does not determine
whether to discard ATM cells for each flow. Thus, the scheduler 250
is simpler and more efficient. Furthermore, because of the use of
the enqueueing mechanism 210 in conjunction with the simpler
scheduler 250, the maximum delay a realtime packet suffers due to
non-realtime processing is the maximum size of a non-realtime data
unit divided by the service rate. For ATM cells having a size of
fifty-three bytes and a service rate of one hundred megabits per
second, this delay is much less than one hundred milliseconds.
Thus, use of the system 100 and, in a preferred embodiment, the
methods 100 and/or 110, the processing of non-realtime traffic does
not adversely affect the processing of realtime traffic.
[0058] Thus, using the methods 100 and 110 and/or the system 200,
ATM traffic can be gracefully and efficiently managed. In addition
the manner in which ATM cells are discarded and bandwidth is
allocated allows for high utilization, low latency, fast
convergence to a desired allocation and fair allocation of excess
bandwidth between different ATM flows.
[0059] A method and system has been disclosed for managing ATM
traffic. Software written according to the present invention is to
be stored in some form of computer-readable medium, such as memory,
CD-ROM, or transmitted over a network, and executed by a processor.
Consequently, a computer-readable medium is intended to include a
computer readable signal which, for example, may be transmitted
over a network. Although the present invention has been described
in accordance with the embodiments shown, one of ordinary skill in
the art will readily recognize that there could be variations to
the embodiments and those variations would be within the spirit and
scope of the present invention. Accordingly, many modifications may
be made by one of ordinary skill in the art without departing from
the spirit and scope of the appended claims.
* * * * *