|
Claims  |
|
|
We claim:
1. A device for providing cell relay end system cell flow regulation in a
communication network by adjusting and monitoring cell flow for cell relay
connections emanating from the cell relay end system, comprising:
(A) a congestion state determiner, operably coupled to receive congestion
feedback information in the network, for utilizing the congestion feedback
information to determine the congestion state,
(B) a cell scheduler, operably coupled to the congestion state determiner,
a data source and a leaky bucket monitor, for transmitting a send-cell
signal to the data source based on the congestion feedback information, a
current cell rate monitored by the leaky bucket monitor, and a data source
status,
(C) the data source, operably coupled to the cell scheduler, for
transmitting a data source status to the cell scheduler and, upon
receiving the send cell signal, sending a cell to the leaky bucket
monitor, and
(D) the leaky bucket monitor, operably coupled to the data source, for,
upon receiving a cell from the data source, transmitting an updated leaky
bucket state to the cell scheduler and sending the cell to the
communication network wherein the data source includes:
(E) a cell generator, for generating cells through adaptation Of higher
level Protocol Data Units, PDU,
(F) a cell buffer, operably coupled to the cell generator, for storing the
generated cell until transmission,
(G) a cell flow switch, operably coupled to the cell buffer and to the cell
scheduler, for, where cell buffer has at least one stored cell, upon
receiving a send-cell signal from the cell scheduler, sending a cell to
the leaky bucket monitor, and
(H) a cell buffer state determiner, operably coupled to the cell buffer,
for determining whether the state of the cell buffer is empty or contains
cell(s), and for, upon the cell buffer state changing, transmitting the
cell buffer state to the cell scheduler,
wherein the leaky bucket monitor monitors a predetermined sustainable cell
rate SCR, and an associated predetermined burst tolerance, BT, traffic
parameters for network connections,
wherein the leaky bucket monitor further determines whether a cell passing
through the leaky bucket monitor is in violation of i.e., is
non-conforming with, predetermined negotiated SCR and BT traffic
parameters, and
wherein:
where the leaky bucket monitor is non-conforming, the CLP, cell loss
priority, field in a cell header is set to 1 and the leaky bucket state is
set to violation,
where the leaky bucket is conforming, the CLP is set to 0 and the leaky
bucket state is set to normal, and
the leaky bucket monitor signals the leaky bucket state changes to the cell
scheduler.
2. The device of claim 1 wherein the congestion feedback information is
provided by at least one of: a source edge node, intermediate node,
destination edge node, and a destination end system of the network.
3. The device of claim 1 wherein the cell scheduler includes:
(A) a Dynamic Cell Rate, DCR, determiner, operably coupled to receive the
congestion state and the cell buffer state, for establishing the DCR,
which varies between the SCR, a predetermined sustainable cell rate, and a
predetermined Peak Cell Rate, PCR, where SCR.ltoreq.PCR, in accordance
with the congestion state and the cell buffer state,
(B) a cell rate determiner, operably coupled to the DCR determiner and to
the data source, for determining a current cell flow rate R based on one
of: PCR and a current value of DCR, in correspondence with transitions in
the leaky bucket state and cell buffer state,
(C) a Next Cell Time Determiner, operably coupled to the cell rate
determiner, for scheduling a next time a cell is allowed to enter the
network and, at the next time, sending a send-cell signal to the data
source.
4. The device of claim 3 wherein state transition diagram for the cell rate
determiner includes:
(A) a R=PCR state, where the leaky bucket monitor is in a normal state, and
a number of cells that can be transmitted continuously at the PCR are
still within predetermined negotiated traffic parameters in correspondence
with SCR and BT, along with a current value of the leaky bucket Q
parameter, and
(B) a R=DCR state, coupled to the R=PCR state, for becoming a current state
where the number of cells that can be transmitted continuously at the PCR
is outside the predetermined negotiated traffic parameters and the leaky
bucket state changes to violation,
remaining in the R=DCR state as long as there are cells waiting in the data
source cell buffer to be transmitted, and
when the cell buffer is empty, transitioning back to the R=PCR state.
5. The device of claim 3 wherein, where there are two predetermined
congestion states, i.e., congested and normal, the DCR determiner is
periodically updated.
6. The device of claim 5 wherein, upon the establishment of a new
connection, DCR is initially set to SCR, and one of:
(A) the DCR determiner adjusts the cell rate by additive increase
algorithm(s) when the congestion state is normal and a cell is available,
a magnitude of DCR is compared with PCR, and where DCR is less than or
equal to PCR, the DCR determination is completed, and where DCR is greater
than PCR, DCR is set equal to PCR and the DCR determination is completed,
(B) the DCR determiner adjusts the cell rate by multiplicative decrease
algorithm(s) when one of:
(B1) the congestion state fails to be normal, and
(B2) when the congestion state is normal and a cell is unavailable, such
that upon adjusting the DCR by an multiplicative decrease, the magnitude
of DCR is compared with SCR, and where DCR is greater than or equal to
SCR, the DCR determination is completed, and where DCR is less than SCR,
DCR is set equal to SCR and the DCR determination is completed.
7. The device of claim 6 wherein the multiplicative decrease algorithm
utilizes a multiplicative decrease factor d that is set to the equivalent
of 0.875 for every two round trip times in the network (i.e., with an
update interval of RTT/4, d=(0.875).sup.0.125 =0.983).
8. The device of claim 6 wherein the additive increase algorithm utilizes
an increase increment b that is set to the equivalent of SCR/16 for every
two round trips (i.e., with an update interval of RTT/4, b=SCR/128).
9. The device of claim 6 wherein the additive increase algorithm, for "best
effort" traffic with SCR=0, utilizes an increase increment b that is set
to 0.1% of a lowest capacity internodal link along a path of a connection
for a RTT/4, where RTT is a round trip time, update interval.
10. The device of claim 3, wherein the DCR determiner, where there are
three predetermined congestion states (normal, mild and moderate), adjusts
the cell rate by additive increase algorithm(s) when the congestion state
is normal and a cell is available and by multiplicative decrease
algorithm(s) when one of: (1) the congestion state fails to be normal and
is determined to be mild, and (2) the congestion state is normal and a
cell is unavailable, and where, upon adjusting the DCR by an additive
increase, the magnitude of DCR is compared with PCR such that where DCR is
less than or equal to PCR, the DCR determination is completed, and where
DCR is greater than PCR, DCR is set equal to PCR and the DCR determination
is completed, and, where upon adjusting the DCR by an multiplicative
decrease, the magnitude of DCR is compared with SCR such that where DCR is
greater than or equal to SCR, the DCR determination is completed, and
where DCR is less than SCR, DCR is set equal to SCR and the DCR
determination is completed, and where the congestion state fails to be
normal and also fails to be mild, DCR is set equal to SCR and the DCR
determination is completed.
11. The device of claim 3 wherein the DCR determiner, when there are two
predetermined congestion states (congested and normal) and an Initial Cell
Rate (ICR), with SCR.ltoreq.ICR.ltoreq.PCR, where initially DCR=ICR,
adjusts the cell rate by additive increase and multiplicative decrease
algorithms based on the two congestion states and cell buffer state such
that, when the cell buffer is empty, DCR is driven to ICR by the
multiplicative decrease algorithm when DCR>ICR, and remains unchanged when
DCR.ltoreq.ICR, and thus adjusts the cell rate by additive increase
algorithm(s) when the congestion state is normal and a cell is available
and by multiplicative decrease algorithm(s) when one of: (1) the
congestion state fails to be normal and (2) the congestion state is
normal, a cell is unavailable, and DCR>ICR, and such that, upon adjusting
the DCR by an additive increase, the magnitude of DCR is compared with PCR
such that where DCR is less than or equal to PCR, the DCR determination is
completed, and where DCR is greater than PCR, DCR is set equal to PCR and
the DCR determination is completed, and where the congestion state fails
to be normal, upon adjusting the DCR by an multiplicative decrease, the
magnitude of DCR is compared with SCR and where DCR is greater than or
equal to SCR, the DCR determination is completed, and where DCR is less
than SCR, DCR is set equal to SCR and the DCR determination is completed
and, when the congestion state is normal and the cell buffer is empty, DCR
is compared with ICR, such that where DCR.ltoreq.ICR, the DCR
determination is completed, and where DCR>ICR, DCR is adjusted by a
multiplicative decrease and DCR is again compared to ICR, and where
DCR.ltoreq.ICR, the DCR determination is completed, and where DCR<ICR, DCR
is set equal to ICR and the DCR determination is completed.
12. The device of claim 3 wherein the DCR determiner has three
predetermined congestion states (normal, mild and moderate) and ICR, with
SCR.ltoreq.ICR.ltoreq.PCR, and the DCR determiner adjusts the cell rate by
additive increase algorithm(s) when the congestion state is normal and a
cell is available and by multiplicative decrease algorithm(s) when one of:
(1) the congestion state fails to be normal, and the congestion state is
mild, and (2) the congestion state is normal, a cell is unavailable, and
DCR>ICR, such that, upon adjusting the DCR by an additive increase, the
magnitude of DCR is compared with PCR, and where DCR is less than or equal
to PCR, the DCR determination is completed, and where DCR is greater than
PCR, DCR is set equal to PCR and the DCR determination is completed, and
where the congestion state fails to be normal and the congestion state is
mild, upon adjusting the DCR by a multiplicative decrease, the magnitude
of DCR is compared with SCR, and where DCR is greater than or equal to
SCR, the DCR determination is completed, and where DCR is less than SCR,
DCR is set equal to SCR and the DCR determination is completed, and where
the congestion state fails to be normal and also fails to be mild, DCR is
set equal to SCR and the DCR determination is completed, and when the
congestion state is normal and the cell buffer is empty, DCR is compared
with ICR, and where DCR.ltoreq.ICR, the DCR determination is completed,
and where DCR>ICR, DCR is adjusted by a multiplicative decrease and DCR is
again compared to ICR, and where DCR.gtoreq.ICR, the DCR determination is
completed, and where DCR<ICR, DCR is set equal to ICR and the DCR
determination is completed.
13. The device of claim 1 further including a preset timer, operably
coupled to receive congestion feedback information, and wherein the
congestion state determiner has two predetermined congestion states
(congested and normal), the congestion state determiner is triggered based
on one of: (1) receiving congestion feedback information from the network,
and (2) having the timer expire, such that if the timer expires before the
congestion feedback information is received, the congestion state is set
to the congested state, and otherwise, the congestion feedback information
is mapped directly to the congestion state such that where the congestion
feedback information indicates a congested state, the congestion state is
set to the congested state and where the congestion feedback information
indicates an uncongested state, the congestion state is set to normal and
such that whenever the congested state is updated, the timer is reset.
14. The device of claim 1 further including a preset timer, operably
coupled to receive congestion feedback information, and wherein the
congestion state determiner has three predetermined congestion states
(normal, mild, and moderate), such that when the timer expires before
congestion feedback information is received, the congestion state is set
to the mild congestion state, and the congestion state determiner is
triggered based on one of: (1) receiving congestion feedback information
from the network, and (2) having the timer expire, and wherein, if the
timer expires before the congestion feedback information is received, the
congestion state is set to the mild state, and otherwise, the congestion
feedback information is mapped directly to the congestion state such that
where the congestion feedback information indicates a mild state, the
congestion state is set to the mild state and where the congestion
feedback information fails to show a mild congestion state and shows a
normal congestion state, the congestion state is set to normal and where
the congestion feedback information fails to show a mild congestion state
and fails to show a normal congestion state, the congestion state is set
to moderate and whenever the congested state is updated, the timer is
reset.
15. A method for providing cell relay end system cell flow regulation in a
communication network by adjusting and monitoring cell flow for cell relay
connections emanating from the cell end system, comprising the steps of:
(A) utilizing network congestion feedback information to determine the
congestion state,
(B) utilizing a cell scheduler for transmitting a send cell signal to a
data source based on the congestion feedback information, a current cell
rate monitored by a leaky bucket monitor, and a data source status,
(C) utilizing the data source for transmitting a data source status to the
cell scheduler and, upon receiving the send cell signal, sending a cell to
the leaky bucket monitor, and
(D) utilizing the leaky bucket monitor for, upon receiving a cell from the
data source, transmitting an updated leaky bucket state to the cell
scheduler and sending the cell to the communication network,
wherein steps implemented by data source include:
(E) generating cells through adaptation of higher level Protocol Data Units
(PDUs),
(F) storing the generated cell until transmission,
(G) where the cell buffer has at least one stored cell, upon receiving a
send-cell signal from the cell scheduler, sending a cell to the leaky
bucket monitor, and
(H) determining whether the state of the cell buffer is empty or contains
cell(s), and for, upon the cell buffer state changing, transmitting the
cell buffer state to the cell scheduler,
including the step of the leaky bucket monitor monitoring a predetermined
sustainable cell rate (SCR) and an associated predetermined burst
tolerance, BT, traffic parameters for network connections,
including the leaky bucket monitor determining whether a cell passing
through the leaky bucket monitor is non-conforming with predetermined
negotiated SCR and BT traffic parameters,
and including the steps of:
where the leaky bucket monitor is non-conforming, the CLP, cell loss
priority, field in a cell header is set to 1 and the leaky bucket state is
set to violation,
where the leaky bucket is conforming, the CLP is set to 0 and the leaky
bucket state is set to normal, and
the leaky bucket monitor signals the leaky bucket state changes to the cell
scheduler.
16. The method of claim 15 further including that the congestion feedback
information is provided by at least one of: a source edge node,
intermediate node, destination edge node, and a destination end system of
the network.
17. The method of claim 15 wherein the steps utilized by the cell scheduler
include:
(A) establishing the DCR, which varies between the SCR and a predetermined
Peak Cell Rate (PCR) where SCR.ltoreq.PCR, in accordance with the
congestion state and the cell buffer state,
(B) determining a current cell flow rate R based on one of: PCR and a
current value of DCR, in correspondence with transitions in the leaky
bucket state and cell buffer state, and
(C) scheduling a next time (i.e., l/R) a cell is allowed to enter the
network and, at the next time, sending a send-cell signal to the data
source.
18. The method of claim 17 wherein determining a current cell flow rate R
includes utilizing a state transition diagram that includes:
(A) a R=PCR state, where the leaky bucket monitor is in a normal state
(generally referred to as the leaky bucket having "permits" to send cells
at the PCR), and a number of cells that can be transmitted continuously at
the PCR are still within predetermined negotiated traffic parameters in
correspondence with SCR and BT, along with a current value of the leaky
bucket Q parameter, and
(B) a R=DCR state, coupled to the R=PCR state, for
becoming a current state where the number of cells that can be transmitted
continuously at the PCR is outside the predetermined negotiated traffic
parameters and the leaky bucket state changes to violation,
remaining in the R=DCR state as long as there are cells waiting in the data
source cell buffer to be transmitted, and
when the cell buffer is empty, transitioning back to the R=PCR state.
19. The method of claim 17 wherein, where there are two predetermined
congestion states, i.e., congested and normal, the establishing the DCR
includes periodically updating the DCR.
20. The method of claim 19 wherein, upon the establishment of a new
connection, DCR is initially set to SCR, and one of:
(A) adjusting the cell rate by additive increase algorithm(s) when the
congestion state is normal and a cell is available, a magnitude of DCR is
compared with PCR, and where DCR is less than or equal to PCR, the DCR
determination is completed, and where DCR is greater than PCR, DCR is set
equal to PCR and the DCR determination is completed,
(B) adjusting the cell rate by multiplicative decrease algorithm(s) when
one of:
(B1) the congestion state fails to be normal, and
(B2) when the congestion state is normal and a cell is unavailable, such
that upon adjusting the DCR by an multiplicative decrease, the magnitude
of DCR is compared with SCR, and where DCR is greater than or equal to
SCR, the DCR determination is completed, and where DCR is less than SCR,
DCR is set equal to SCR and the DCR determination is completed.
21. The method of claim 20 wherein adjusting the cell rate by the
multiplicative decrease algorithm includes utilizing a multiplicative
decrease factor d that is set to the equivalent of 0.875 for every two
round trip times in the network (i.e., with an update interval of RTT/4,
d=(0.875).sup.0.125 32 0.983).
22. The method of claim 20 wherein adjusting the cell rate by the additive
increase algorithm includes utilizing an increase increment b that is set
to the equivalent of SCR/16 for every two round trips (i.e., with an
update interval of RTT/4, b=SCR/128).
23. The method of claim 20 wherein adjusting the cell rate by the additive
increase algorithm, for "best effort" traffic with SCR=0, includes
utilizing an increase increment b that is set to 0.1% of a lowest capacity
internodal link along a path of a connection for a RTT/4 update interval.
24. The method of claim 17 further including, where there are three
predetermined congestion states (normal, mild and moderate), adjusting the
cell rate by additive increase algorithm(s) when the congestion state is
normal and a cell is available and by multiplicative decrease algorithm(s)
when one of: (1) the congestion state fails to be normal and is determined
to be mild, and (2) the congestion state is normal and a cell is
unavailable, and where, upon adjusting the DCR by an additive increase,
the magnitude of DCR is compared with PCR such that where DCR is less than
or equal to PCR, the DCR determination is completed, and where DCR is
greater than PCR, DCR is set equal to PCR and the DCR determination is
completed, and where, upon adjusting the DCR by an multiplicative
decrease, the magnitude of DCR is compared with SCR such that where DCR is
greater than or equal to SCR, the DCR determination is completed, and
where DCR is less than SCR, DCR is set equal to SCR and the DCR
determination is completed, and where the congestion state fails to be
normal and also fails to be mild, DCR is set equal to SCR and the DCR
determination is completed.
25. The method of claim 17, further including, when there are two
predetermined congestion states (congested and normal) and an Initial Cell
Rate (ICR), with SCR.ltoreq.ICR.ltoreq.PCR, where initially DCR=ICR,
adjusting the cell rate by additive increase and multiplicative decrease
algorithms based on the two congestion states and cell buffer state such
that, when the cell buffer is empty, DCR is driven to ICR by the
multiplicative decrease algorithm when DCR>ICR, and remains unchanged when
DCR.ltoreq.ICR, and thus adjusts the cell rate by additive increase
algorithm(s) when the congestion state is normal and a cell is available
and by multiplicative decrease algorithm(s) when one of: (1) the
congestion state fails to be normal and (2) the congestion state is
normal, a cell is unavailable, and DCR>ICR, and such that, upon adjusting
the DCR by an additive increase, the magnitude of DCR is compared with PCR
such that where DCR is less than or equal to PCR, the DCR determination is
completed, and where DCR is greater than PCR, DCR is set equal to PCR and
the DCR determination is completed, and where the congestion state fails
to be normal, upon adjusting the DCR by an multiplicative decrease, the
magnitude of DCR is compared with SCR and where DCR is greater than or
equal to SCR, the DCR determination is completed, and where DCR is less
than SCR, DCR is set equal to SCR and the DCR determination is completed
and, when the congestion state is normal and the cell buffer is empty, DCR
is compared with ICR, such that where DCR.ltoreq.ICR, the DCR
determination is completed, and where DCR>ICR, DCR is adjusted by a
multiplicative decrease and DCR is again compared to ICR, and where
DCR.gtoreq.ICR, the DCR determination is completed, and where DCR <ICR,
DCR is set equal to ICR and the DCR determination is completed.
26. The method of claim 17, further including, where there are three
predetermined congestion states (normal, mild and moderate) and ICR, with
SCR.ltoreq.ICR.ltoreq.PCR, adjusting the cell rate by additive increase
algorithm(s) when the congestion state is normal and a cell is available
and by multiplicative decrease algorithm(s) when one of: (1) the
congestion state fails to be normal, and the congestion state is mild, and
(2) the congestion state is normal, a cell is unavailable, and DCR>ICR,
such that, upon adjusting the DCR by an additive increase, the magnitude
of DCR is compared with PCR, and where DCR is less than or equal to PCR,
the DCR determination is completed, and where DCR is greater than PCR, DCR
is set equal to PCR and the DCR determination is completed, and where the
congestion state fails to be normal and the congestion state is mild, upon
adjusting the DCR by a multiplicative decrease, the magnitude of DCR is
compared with SCR, and where DCR is greater than or equal to SCR, the DCR
determination is completed, and where DCR is less than SCR, DCR is set
equal to SCR and the DCR determination is completed, and where the
congestion state fails to be normal and also fails to be mild, DCR is set
equal to SCR and the DCR determination is completed, and when the
congestion state is normal and the cell buffer is empty, DCR is compared
with ICR, and where DCR.ltoreq.ICR, the DCR determination is completed,
and where DCR>ICR, DCR is adjusted by a multiplicative decrease and DCR is
again compared to ICR, and where DCR.gtoreq.ICR, the DCR determination is
completed, and where DCR<ICR, DCR is set equal to ICR and the DCR
determination is completed.
27. The method of claim 15 further including, wherein the congestion state
determiner has two predetermined congestion states (congested and normal)
and the congestion state determiner is triggered based on one of: (1)
receiving congestion feedback information from the network, and (2) having
a timer expire, such that if the timer expires before the congestion
feedback information is received, the congestion state is set to the
congested state, and otherwise, the congestion feedback information is
mapped directly to the congestion state such that where the congestion
feedback information indicates a congested state, the congestion state is
set to the congested state and where the congestion feedback information
indicates an uncongested state, the congestion state is set to normal and
such that whenever the congested state is updated, the timer is reset.
28. The method of claim 15, further including, wherein the congestion state
determiner has three predetermined congestion states (normal, mild, and
moderate), such that when a timer expires before congestion feedback
information is received, the congestion state is set to the mild
congestion state, and the congestion state determiner is triggered based
on one of: (1) receiving congestion feedback information from the network,
and (2) having the timer expire, and wherein, if the timer expires before
the congestion feedback information is received, the congestion state is
set to the mild state, and otherwise, the congestion feedback information
is mapped directly to the congestion state such that where the congestion
feedback information indicates a mild state, the congestion state is set
to the mild state and where the congestion feedback information fails to
show a mild congestion state and shows a normal congestion state, the
congestion state is set to normal and where the congestion feedback
information fails to show a mild congestion state and fails to show a
normal congestion state, the congestion state is set to moderate and
whenever the congested state is updated, the timer is reset. |
|
|
|
|
Claims  |
|
|
Description  |
|
|
FIELD OF THE INVENTION
This invention relates generally to devices and methods for network
communication, and more particularly to network communication in a cell
relay asynchronous transfer mode (ATM) network.
BACKGROUND
FIG. 1, numeral 100, shows an ATM system in which ATM 5 source (102) and
destination (110) end systems are coupled with an ATM network. The ATM
network includes: a source edge node (104), a destination edge node (108),
and, where selected, one or more intermediate switching nodes (106). ATM
cells generated by the source end system are transmitted via the source
edge node to intermediate nodes, then to a destination edge node, and
lastly to the destination end system. Clearly, ATM networks are subject to
congestion when the traffic offered to the network exceeds the capacity of
the network. Thus, congestion conditions need to be controlled in order to
guarantee, for each ATM connection, the Quality of Service (QOS)
negotiated between the communicating end systems and ATM network during
call establishment.
Hence, the goals of an effective ATM congestion control scheme should
include: (1) guaranteeing that the Quality of Service (QOS) provided to
each connection should, at a minimum, satisfy the agreed QOS negotiated
during connection establishment; (2) allowing a connection to exceed its
agreed throughput QOS if there is unused or unallocated capacity along its
path through the network; and (3) in a congested network, informing
connections that are exceeding their negotiated traffic parameters of the
congested condition and giving an opportunity to reduce rate before the
network begins to discard traffic in excess of the negotiated traffic
parameters.
Controlling congestion in an ATM network requires effectively regulation of
the flow of cells for each connection entering the network at the source
end system. Making effective use of unallocated or unused capacity in the
network requires feedback signaling to the end systems to properly
regulate the flow of cells entering the network. It is important, however,
to couple this cell flow regulation to the agreed QOS guarantees for the
connection. Even though a number of types of congestion control exist, no
existing techniques are available that effectively control the cell flow
for a connection from an end system and couple this with QOS guarantees.
Thus, there is a need for a device and method for regulating cell flow
between ATM source and destination end systems such that congestion is
controlled and unused or unallocated capacity is utilized while
maintaining QOS guarantees.
BRIEF DESCRIPTIONS OF THE DRAWINGS
FIG. 1 is a block diagram illustrating ATM source and destination end
systems coupled with an ATM network.
FIG. 2 is a block diagram illustrating functional blocks of elements of one
embodiment of the device of the present invention.
FIG. 3 is a block diagram of functional elements of one embodiment of the
data source element of FIG. 2.
FIG. 4 shows a flow chart of one embodiment of the steps of the operation
of the leaky bucket monitor element of FIG. 2.
FIG. 5 shows a functional block diagram of the preferred embodiment of the
cell scheduler (206) of FIG. 2.
FIG. 6 is a state transition diagram for the cell rate determiner (504) of
FIG. 5.
FIG. 7 is a flow chart illustrating one embodiment of steps implemented by
the DCR determiner (502) of FIG. 5 where there are two congestion states
(congested and normal).
FIG. 8 is a flow chart illustrating one embodiment of steps implemented by
the DCR determiner (502) of FIG. 5 where there are three congestion states
(normal, mild and moderate).
FIG. 9 is a flow chart illustrating one embodiment of steps implemented by
the DCR determiner (502) of FIG. 5 with two congestion states (congested
and normal) and an Initial Cell Rate (ICR), with
SCR.ltoreq.ICR.ltoreq.PCR.
FIG. 10 is a flow chart illustrating one embodiment of steps implemented by
the DCR determiner (502) of FIG. 5 with three congestion states (normal,
mild and moderate) and ICR, with SCR.ltoreq.ICR.ltoreq.PCR.
FIG. 11 is a flow chart illustrating one embodiment of steps implemented by
the congestion state determiner (208) of FIG. 2 with two congestion states
(congested and normal).
FIG. 12 is a flow chart illustrating one embodiment of steps implemented by
the congestion state determiner (208) of FIG. 2 with three congestion
states (normal, mild, and moderate).
DETAILED DESCRIPTION OF A PREFERRED EMBODIMENT
The device and method of the present invention provide ATM end system cell
flow regulation for adjusting and monitoring the cell flow for each ATM
connection emanating from the end system. An ATM end system includes any
device (e.g., workstation, front end processor, bridge, router) that is
segmenting higher layer Protocol Data Units (PDUs) into cells via an
adaptation protocol. In one embodiment, functional blocks of elements of
the device of the present invention, illustrated in FIG. 2, numeral 200,
include a data source (202), leaky bucket monitor (204), cell scheduler
(206), and congestion state determiner (208). The cell scheduler (206) is
the central controller of this device. This central controller schedules
the transmission time of each cell into the network by transmitting a
send-cell signal to the data source, where the transmission time for the
send-cell signal is based on congestion feedback information, current cell
rate monitored by the leaky bucket monitor (204), and the data source
(202) status (i.e., if there are cells available to send). The congestion
feedback information is utilized by the congestion state determiner (208)
to determine the congestion state. Congestion feedback information is
typically provided by at least one of: the source edge node, intermediate
node, destination edge node, and the destination end system. The following
description specifically describes the cases of two congestion states
(normal and congested) and three congestion states (normal, mild and
moderate), although the invention may clearly be extended to more
congestion states.
FIG. 3, numeral 300, illustrates a block diagram of functional elements of
one embodiment of the data source element (202) of the present invention,
wherein the data source element includes: an ATM cell generator (302), a
cell buffer (304), a cell flow switch (306), and a cell buffer state
determiner (308). ATM cells generated through the adaptation of higher
level PDUs wait in the cell buffer for transmission. One cell is
transmitted for each send-cell indication signalled by the cell scheduler
(206). When the cell buffer state (i.e., cell available or not) is
changed, the cell buffer state is indicated to the cell scheduler (206).
To prevent the cell buffer from overflowing, a cell buffer full indication
(310) is used to stop the flow of cells from the ATM cell generator.
A Sustainable Cell Rate (SCR), and an associated Burst Tolerance (BT), for
each connection is monitored by a leaky bucket monitor (204). One
embodiment of the steps of the operation of the leaky bucket monitor is
shown in a flow chart, FIG. 4, numeral 400, where a leaky bucket parameter
Q has an initial value Q=0. When a cell passing through the leaky bucket
monitor (204) is determined to be in violation (or nonconforming) of the
SCR and BT traffic parameters negotiated during call set-up, the CLP field
in the cell header is set to 1 and the leaky bucket state is set to
violation. Otherwise, CLP is set to 0 and the leaky bucket state is set to
normal. The leaky bucket monitor (204) signals the leaky bucket state
changes to the cell scheduler (206).
FIG. 5, numeral 500, shows a functional block diagram of the preferred
embodiment of the cell scheduler (206) of FIG. 2. The cell scheduler (206)
typically includes a Dynamic Cell Rate (DCR) determiner (502), a cell rate
determiner (504), and a Next Cell Time Determiner (506). The DCR
determiner (502) establishes the DCR, which varies between the SCR and the
Peak Cell Rate (PCR), according to the congestion state and the cell
buffer state. The PCR is determined along with the SCR and BT during call
establishment for the connection, where SCR.ltoreq.PCR. The cell rate
determiner (504) determines whether the cell flow rate should be based on
PCR or the current value of DCR, where the decision on which rate to use
is based on transitions in the leaky bucket state and cell buffer state.
The current cell rate R (i.e., PCR or DCR) established by the cell rate
determiner (504) is used by the Next Cell Time Determiner (506) to
schedule the next time (i.e., 1/R) a cell is allowed to enter the network.
The permission to send one cell is signalled to the data source via the
send-cell signal.
FIG. 6, numeral 600, is a state transition diagram for the cell rate
determiner (504) of FIG. 5. The state transition is triggered by a leaky
bucket state change or a cell buffer state change. The system is initially
in the R=PCR state (602) where the leaky bucket monitor (204) is in the
normal state (generally referred to as the leaky bucket having "permits"
to send cells at the PCR). SCR and BT, along with the current value of the
leaky bucket Q parameter, determine the number of cells that can be
transmitted continuously at the PCR and still be within the negotiated
traffic parameters. If this limit is exceeded and the leaky bucket state
changes to violation, the cell rate determiner (504) changes to the R=DCR
state (604) and will remain in this state as long as there are cells
waiting in the data source cell buffer (304) to be transmitted. When the
cell buffer empties (determined by the cell buffer state determiner (308)
in the data source (202)), this change is signalled to the cell scheduler
(206) and causes the cell rate determiner (504) to transition back to the
R=PCR state (602).
FIG. 7, numeral 700, is a flow chart illustrating one embodiment of steps
implemented by the DCR determiner (502) where there are two congestion
states (congested and normal). The normal and congested states are
predetermined. The updating of the DCR determiner (702) is done
periodically. For example, a value of 25% of the typical round trip time
(RTT) in the network is a workable update time. Utilizing smaller update
intervals makes the device of the present invention somewhat more
responsive to congestion state changes. 0n the establishment of a new
connection, DCR is initially set to SCR. The DCR determiner adjusts the
cell rate by additive increase algorithm(s) (708) when the congestion
state is normal (704, YES) and a cell is available (706,YES) and by
multiplicative decrease algorithm(s) (714) when the congestion state fails
to be normal (704, NO) or, alternatively, when the congestion state is
normal and a cell is unavailable (706, NO). Use of additive increase (708)
and multiplicative decrease (714) algorithms provides for a stable
operation and allows fair sharing of unallocated or unused capacity in the
network. For example, the multiplicative decrease factor d may typically
be set to the equivalent of 0.875 for every two round trip times in the
network (i.e., with an update interval of RTT/4, d=(0.875).sup.0.125
=0.983). The increase increment b may typically be set to the equivalent
of SCR/16 for every two round trips (i.e., with an update interval of
RTT/4, b=SCR/128). For "best effort" traffic with SCR=0, b may be set to
0.1% of the lowest capacity internodal link along the path of the
connection for the RTT/4 update interval. Upon adjusting the DCR by an
additive increase (708), the magnitude of DCR is compared with PCR (710).
Where DCR is less than or equal to PCR (710, NO), the DCR determination is
completed, and where DCR is greater than PCR (710, YES), DCR is set equal
to PCR (712) and the DCR determination is completed. Upon adjusting the
DCR by an multiplicative decrease (714), the magnitude of DCR is compared
with SCR (716). Where DCR is greater than or equal to SCR (716, NO), the
DCR determination is completed, and where DCR is less than SCR (716, YES),
DCR is set equal to SCR (718) and the DCR determination is completed.
As is clear from FIG. 7, when the congestion state is normal and the cell
buffer is empty, DCR is multiplicatively decreased (714). This is done for
two reasons. First, since the end system is not contributing any cell
traffic to the network for this connection, its assessment of the path
congestion state has to be | | |