Transmitter controlled flow control for buffer allocation in wide area ATM networks

Information

  • Patent Grant
  • 5898671
  • Patent Number
    5,898,671
  • Date Filed
    Friday, September 13, 1996
    28 years ago
  • Date Issued
    Tuesday, April 27, 1999
    25 years ago
Abstract
A flow control technique for wide area ATM networks is disclosed in which allocation of buffers in a receiver switch is controlled by a transmitter switch. The receiver switch periodically transmits feedback messages to the transmitter switch indicatative of the state of fullness of the receiver switch buffers. The transmitter switch calculates updated receiver buffer fullness based upon the feedback message and the number of cells transmitted from the transmitter switch to the receiver switch since the feedback message was sent. Transmission of cells from the transmitter switch to the receiver switch is then controlled in accordance with an allocation technique, thereby allocating buffers in the receiving switch. The technique may be a roll-off technique in which the number of buffers available to each flow in the transmitter switch is reduced geometrically as the updated receiver buffer state is calculated to be more full. The flow control technique may be applied on either a per link or a per flow basis.
Description

FIELD OF THE INVENTION
The present invention is related to ATM network switches, and more particularly to a technique for implementing flow control in a wide area ATM network to allow reduced buffer size while assuring no cell loss.
BACKGROUND OF THE INVENTION
Flow control is required for Asynchronous Transfer Mode ("ATM") networks which provide best effort type service such as Available Bit Rate ("ABR") service. An ABR connection competes for shared buffers with a number of other connections, and consequently no single ABR connection is typically guaranteed a particular amount of buffer space. It is therefore important to have knowledge of how many buffers are available in order to control flow such that the buffers do not overflow. If the number of cells transmitted exceeds the number of available buffers, some cells will be lost.
It is known to reduce the possibility of cell loss by providing feedback from a receiving switch to a transmitting switch to indicate how many buffers are available in the receiving switch. In such a system the delay between the time at which the transmitter sends a cell and a complementary feedback message can be received by the transmitter, i.e., the round trip time ("RTT") between transmitter and receiver, becomes a factor in determining minimum buffer size for allowing efficient utilization of network trunks. More particularly, for a link of N flows and bandwidth B, the buffer may be sized to be the product of N, B and RTT, which is large enough for a "worst case scenario."
Such buffer sizing techniques become problematic, however, in the case of Wide Area Networks ("WANs"). Because of the larger physical distances covered by WANs, RTT becomes relatively large in WAN implementations, e.g., approximately 50 msec for the case of eastern United States and western United States. The buffer sizing using the "worst case scenario" dictates a buffer size (N.times.B.times.RTT) which is impractically large for such values of RTT.
The worst case scenario buffer size can be reduced by forwarding information from the receiver to the transmitter regarding availability and usage of buffers, and permitting transmissions from the transmitter to the receiver based upon such feedback information. However, in such a system in which transmissions are permitted based solely upon such feedback information from the receiver, undesirable oscillations in buffer utilization may occur due to the latency associated with the feedback information. Additionally, such latency can result in overallocation of buffers or underallocation of buffers.
SUMMARY OF THE INVENTION
In accordance with the present invention, allocation of buffers in a receiver switch is controlled by a transmitter switch. Control within the transmitter switch is executed according to an allocation technique which both avoids cell loss and allows use of buffers of practical size in the receiver switch. The receiver switch periodically transmits feedback messages to the transmitter switch indicative of the state of fullness of buffers in the receiver switch. Such feedback messages could contain, for example, the number of available buffers, the number of cells held for each connection, or the number of buffers freed. The transmitter switch maintains a record of the number of cells transmitted to the receiver in a previous time period, typically since the last feedback message was generated in the receiver and sent to the transmitter. The transmitter switch then calculates an updated receiver buffer state and transmits cells accordingly. The updated receiver buffer state is calculated based upon the latest feedback message and the number of cells transmitted from the transmitter switch to the receiver switch since the latest feedback message was generated in the receiver, as indicated by the record in the transmitter switch. The transmitter thus calculates maximum buffer fullness, not accounting for draining which may have occurred since the latest feedback message was generated.
Once the updated receiver buffer state is calculated, transmission of cells from the transmitter switch to the receiver switch is controlled in the transmitter switch based upon an allocation technique. The technique may be a roll-off technique in which the number of buffers available to each flow in the transmitter switch is reduced as the updated receiver buffer state is calculated to be more full. Each flow may be more aggressively reduced as the updated receiver buffer state is calculated to be more full in order to compensate for feedback delay and stale information regarding receiver buffer drainage. In the above described manner, allocation of buffers in the receiver switch is controlled by the transmitter switch.
The transmitter controlled flow control technique permits fast ramp-up for new flows or previously quiescent flows, and allows lossless operation with a reduced receiver buffer size in WANs. Since receiver buffer fullness is not accurately represented by the feedback message due to information staleness, the transmitter switch determines how many cells may be sent to the receiver switch based upon more accurate information available only at the transmitter. Such information obviates the need for the worst case size receiver buffer employed in some prior art networks. Further, buffer usage oscillations can be controlled by operating according to progressively more conservative fullness calculations in accordance with the roll-off technique.
As the receiver buffer becomes more full, progressive roll-off provides better performance for a given buffer size. More particularly, for a given buffer size and RTT, as the number of supported connections increases, there is no discontinuity in performance.





BRIEF DESCRIPTION OF THE DRAWING
The invention will be more fully understood in view of the following detailed description in conjunction with the drawing in which:
FIG. 1 illustrates a portion of a WAN wherein transmitter switch control of receiver resources is implemented;
FIG. 2 illustrates a technique for controlling transmission of cells from the transmitter switch of FIG. 1;
FIG. 3 illustrates an alternative technique for controlling transmission of cells from the transmitter switch;
FIG. 4 illustrates the organization of a table and a zone pointer employed to implement the technique illustrated in FIG. 2; and
FIG. 5 illustrates another alternative technique for controling transmission of cells from the transmitter switch of FIG. 1.





DETAILED DESCRIPTION OF THE INVENTION
FIG. 1 illustrates an Asynchronous Transfer Mode ("ATM") network in which allocation of buffer resources in a receiving switch 10 is controlled by a transmitting switch 12. The transmitting switch and the receiving switch are in communication via a connecting link 14 of bandwidth "B" through which data cells 16 are sent from the transmitting switch to the receiving switch while traveling from source 18 to destination 20 within the network. Cells in a connection between the source and the destination travel within a flow 22, and the link may include a plurality of flows. Each received data cell is temporarily placed in a buffer pool 24 (the state of fullness of which is shown as viewed from the perspective of the transmitter) upon entering the receiving switch. The data cell may then be transmitted from the receiving switch to another switch through another flow and another link. As such, the data cell travels from the source to the destination through a plurality of switches and interconnecting links.
To support switch flow control each switch includes an allocation controller 26 and a feedback controller 28, each buffer pool 24 is divided into a plurality of zones 30, and each flow is associated with a virtual buffer 32 according to which zone 30 is active. The feedback controller 28 of the receiving switch functions to provide feedback data to the allocation controller of the transmitting switch. The feedback data includes a credit cell which indicates the state of fullness of the buffer pool. Such credit cell could contain, for example, the number of available buffers, the number of cells held for each connection, and the number of buffers freed. The zones of the buffer pool fill and drain sequentially, and hence the feedback data is also indicative of which zone is actively being utilized. Knowledge of any zone structures need be maintained only in the transmitter switch. The allocation controller in the transmitter switch maintains a record of the number of cells transmitted to the receiver over a previous time period, typically since the latest feedback message was generated in the receiver and sent to the transmitter by the receiver. When the feedback message is received, the allocation controller calculates an updated receiver buffer state which indicates the state of the receiver buffer when cells transmitted to the receiver from the transmitter since the feedback data was generated are taken into account. The updated receiver buffer state is calculated based upon the feedback message and the number of cells transmitted from the transmitter switch to the receiver switch since the feedback message was sent as indicated by the record maintained by the allocation controller. The allocation controller then implements a buffer allocation technique based upon the updated state information. These techniques are applicable to all connections within the link, and to the link itself.
Referring now to FIGS. 1 and 2, the allocation technique may be a roll-off technique which decreases arithmetically, geometrically or otherwise such that the change in the maximum number of data cells that can be transmitted divided by the change in buffer fullness, i.e., the slope, decreases as buffer fullness increases. The zones 30 represent in the transmitter the portion of the physical buffer 24 in the receiver currently holding unforwarded cells. As cells are received in the physical buffer, buffer occupancy crosses thresholds (t.sub.1, t.sub.2, t.sub.3 etc.), moving into successively more restrictive zones wherein each flow has a successively smaller virtual buffer (l.sub.1, l.sub.2, l.sub.3 etc.) such that the absolute magnitude of (l.sub.i -l.sub.i+1)/(t.sub.i -t.sub.i+1) is greater than the absolute magnitude of (l.sub.i+1 -l.sub.i+2)/(t.sub.i+1 -t.sub.i+2). When cells drain out of the physical buffer, occupancy crosses thresholds in the opposite direction, moving into successively more permissive zones wherein each flow has a successively larger virtual buffer. The roll-off technique is thus credit based rather than rate based, and although the average rate of an individual flow has a ceiling imposed thereon, the flow can burst at the full link bandwidth.
In an exemplary roll-off technique a set of N flows share the link between the transmitter switch and the receiver switch. Each time the receiver switch 10 has forwarded "N2" cells, where N2 is a positive integer, a feedback message may be transmitted from the receiver switch to the transmitter switch indicating the fullness of the receiver switch buffer 24. The receiver switch buffer is divided, for example, into eight zones: Z(0), Z(1), Z(2), Z(3), Z(4), Z(5), Z(6), Z(7). The zones decrease in size by a linear, geometric or similar progression such that the sum of the zones has a reasonable upper bound which is a small integer multiple of a value "N3." A round trip delay ("RTT") is defined to be the delay between the time at which the transmitter sends a cell and a complementary feedback message can be received by the transmitter. Letting "N3max" be the maximum N3 value used, such as the full link rate times the round trip delay (B.times.RTT), and letting, for example, Z(0)=2.times.N3max with each successive Z(i) geometrically reduced by 7/8: Z(1)=7/8.times.2.times.N3max, Z(2)=(7/8).sup.2 .times.2.times.N3max, Z(3)=(7/8).sup.3 .times.2.times.N3max, and so on such that .SIGMA.Z(i)=8.times.2.times.N3max. Hence, the size of each zone is the product of a reduction factor and 2.times.B.times.RTT.
In an alternative embodiment zone size is based on a larger multiple of B.times.RTT. When a given zone 30 becomes half full, for example when Z(0) contains N3max cells, the receiver switch 10 modifies the feedback message to provide only 7/8 as much credit. When the physical buffer 24 drains down to a beginning edge of a zone 30, the receiver switch modifies the feedback message to provide 8/7 as much credit. Such thresholds provide a hysteresis mechanism. When the physical buffer is in the Z(0) zone, the switch operates in standard fashion. However, when the receiver switch moves into zone Z(1) credit updates sent to any flow contain a MinC value (current zone's ceiling), rather than a "C" value (C=number of free cells per flow, which is .ltoreq.N2+N3max). In such a case the receiver is in zone Z(1), and the ceiling is N2+7/8.times.N3max, so the credit ceiling is lowered by a factor of 7/8.
In order to assure that quiescent flows, i.e., those flows which are not sending and not getting credit updates every N2 cell times, adjust to changes in the credit ceiling, all flows receive credit updates. However, such credit updates may be provided as background updates at a frequency less than every N2 cell times, e.g., every K.times.N2 cell times, and these background updates may be staggered in order to smooth the processing load. Thus, the transmitter switch updates its credit count based on the last value received in the credit cell. The receiver switch also sends the credit update, given that the flow is actually draining.
This quiescent flow technique presents one complication since the receiver switch may cross a zone boundary at the same time as the transmitter receives feedback for a particular quiescent flow. If the receive buffer is filling up, a quiescent flow that then starts sending may have an estimate of the credits available that is temporarily high, and if the receive buffer is draining the flow may have an estimate that is temporarily low. However these differences are temporary since credit updates are periodically sent on all flows regardless of whether the flow is draining or not. Hence, within about K.times.N2 cell times any flow should be current.
Referring to FIG. 3, in an alternative embodiment the zones decrease geometrically based upon a different reduction factor. More particularly, through roll-off each successive zone Z(i) is successively reduced as: Z(0)=2.times.N3max, Z(1)=1/2.times.2.times.N3max, Z(2)=1/4.times.2.times.N3max, Z(3)=1/8.times.2.times.N3max, Z(4)=1/16.times.2.times.N3max, and so on such that .SIGMA.Z(i)=2.times.2.times.N3max. Other zone sizing techniques and reduction factors may also be implemented as will be apparent to those skilled in the art to achieve desired performance characteristics. Further, although models with discreet zones have been illustrated, it would be possible to implement a single zone which changes continuously with fullness.
To avoid a deadlock condition, an additional check may be implemented. More particularly, if the sum of the buffer usage by the connections exceeds a threshold 50, then the transmitter enters a "halt & go" mode in which each "protected" connection can transmit up to a fixed number of cells (k), and must wait for feedback before further transmitting. This check is implemented in addition to the control described above. Thus, a connection with a limit less than k does not receive a net buffer gain as a result of buffer usage exceeding the threshold.
As shown in FIGS. 1 and 4, the zones can be table driven, with each switch including a table 40. Each table includes entries which contain limits defining the beginning and ending points of the respective zones. In the present embodiment the limits are selected such that subsequent zones are progressively smaller. The table is indexed by a zone pointer which indicates the active zone. Table entries are predetermined when the network is configured, but the tables are preferably reconfigurable to allow for network reconfiguration and fine tuning.
Given the following data structures and definitions, buffers are allocated in accordance with the pseudocode below:
______________________________________BLT�i,p!: Buffer Limit Table Arrayswhere i = index, p = profileIndex�i!: Index Arraywhere i = connection ID and Index�i! has an integer value that may be increased or decreased as requiredBAPQ: Buffer Access Priority QueueDeficit�c!: Deficit Array where c = connection IDBSU: Buffer State UpdateBFS: Buffer free spaceB.sub.-- Max: Buffer space availableTX.sub.-- i: Cells transmitted for connection iFwd.sub.-- i: Cells forwarded by receiver for connection iN: Upper bound on the value of the Index Arraywhere N represents the Number of Zones - 1 that the shared buffer is divided into.Deficit�i!: Deficit, a positive integer that starts at zero and may be incremented and decrementedN2: Receiver sends a new update upon receipt of N2 cellsRTT: Round Trip Travel Time of LinkB: Bandwidth of LinkN3: B*RTTManagementBuffer free space is calculated as:BFS = B.sub.-- Max - Sum .sub.over 1 connections (TX.sub.-- i- Fwd'.sub.-- i)where Fwd'.sub.-- i is the most recent value of Fwd.sub.-- i supplied by receiver to transmitterIndex is calculated as:Index�i! = least integer containing (N*(TX.sub.-- i - Fwd'.sub.--i)/B.sub.-- Max)Buffer Usage ControlIf (TX.sub.-- i - Fwd'.sub.-- i) < BLT�i,p!THEN IF technique prevents transmission based on prior usage, e.g., Deficit�i! > 0THEN record transmitter-local techniqueinformation, e.g., decrement Deficit�i!Insert this request in BAPQ at priority = Deficit�i!Allow transmission from top of BAPQELSE allow transmission for this request, based onprior usage, e.g., when Deficit�i! = 0)ELSE record transmitter-local technique information,e.g., increment Deficit�i!Pool ApportioningIF a new connection arrivesTHEN B.sub.-- Max = B.sub.-- Max + N2Increase the indices to provide more conservative operation if neededNote: It may not be possible to accept the connection if indices cannot be increasedIf a connection leavesTHEN B.sub.-- Max = B.sub.-- Max - N2Decrease the indices to provide more aggressive operation if desiredDeadlock AvoidanceIF Sum .sub.over 1 connections (Tx.sub.-- l- Fwd'.sub.-- l) > B.sub.--MaxTHEN go into Halt-and-Go mode, where a connection can transmit only a bounded number of cells (k) and must wait for additional BSUs before further transmissionNote: This check is in addition to BLT controls______________________________________
With regard to the pseudocode, Tx.sub.-- Count and Fwd.sub.-- Count are maintained in free running counters and hence the flow control technique is tolerant to loss of control information. More particularly, Fwd.sub.-- Count is maintained in a free running counter in the receiver and is incremented each time a buffer is freed, and Tx.sub.-- Count is maintained in a free running counter in the transmitter and is incremented each time a cell is transmitted. The difference, Tx.sub.-- Count-Fwd.sub.-- Count, can then be compared to a limit for implementation of the flow control technique without requiring knowledge of when the credit cell was generated in the receiver.
Referring to FIG. 5, in an alternative embodiment the roll-off technique encompasses the broad class of functions to limit buffer size. There exists adjacent intervals "i" and "j", where interval "i" contains one or more lower-numbered zones, and interval "j" contains one or more higher-numbered zones, such that the average reduction in limits over interval "i" is greater than the average reduction in limits over the interval "j". That is, the absolute magnitude of "slope.sub.i " is greater than the absolute magnitude of "slope.sub.j ".
It will be understood that various changes and modifications to the above described method and apparatus may be made without departing from the inventive concepts disclosed herein. Accordingly, the present invention is not to be viewed as limited except as by the scope and spirit of the appended claims.
Claims
  • 1. A method for allocating buffers in a data transmission system comprising a communication path, a transmitter element in communication with said communication path, a receiver element in communication with said communication path, and a buffer pool comprising a plurality of buffers for storing data cells received at said receiver element from said transmitter element over said communication path, said method comprising the steps of:
  • storing in a table in said transmitter element at least two records, each of said at least two records containing at least a first field containing a threshold number (t.sub.i) indicative of the fullness of said buffer pool and a second field indicative of the maximum number of data cells (l.sub.i) that may be transmitted by said transmitter element to said receiver element over said communication path if the number of buffers unavailable is between t.sub.i and t.sub.i-1, wherein l.sub.0 is predetermined and the number stored in the second field of each subsequent record is selected such that (l.sub.i -l.sub.i+1)/(t.sub.i -t.sub.i+1) is greater than (l.sub.i+1 -l.sub.i+2)/(t.sub.i+1 -t.sub.i+2);
  • calculating in said transmitter element a number indicative of an approximation of the fullness of said buffer pool in said receiver element;
  • using said approximation number to identify within said table the maximum number of data cells which may be transmitted from said transmitter element to said receiver element; and
  • transmitting from said transmitter element to said receiver element for storage in said buffer pool, a plurality of data cells wherein said transmission includes no more than the maximum number of data cells specified in said table based upon said approximation number.
  • 2. The method of claim 1 wherein the communication path is a link which hosts a plurality of connections, and including the further step of applying the maximum number to each connection hosted by the communications link.
  • 3. The method of claim 1 including the further step of periodically sending, by the receiver element to the transmitter element, a feedback message indicative of the fullness of the buffer pool in the receiver element.
  • 4. The method of claim 3 including the further step of tallying, in the transmmitter element, the number of data cells transmitted to the receiver.
  • 5. The method of claim 4 including the further step of combining the feedback message and the tally to index the table.
  • 6. The method of claim 1 including the further step of implementing a secondary flow control technique when receiver buffer fullness exceeds a predetermined threshold.
  • 7. The method of claim 6 including the further step of, when receiver buffer fullness exceeds the predetermined threshold, allowing designated connections in the transmitter to transmit up to a fixed number of cells and halting further transmission until receipt of a feedback message indicating that buffers have been freed.
  • 8. The method of claim 7 including the further step of, when receiver buffer fullness exceeds the predetermined threshold, allowing designated connections in the transmitter to transmit, upon receipt of feedback indicating that sufficient buffer space has been freed in the receiver, up to the lesser of:
  • a predetermined fixed number of cells; and
  • the number of cells indicated by employing the table.
  • 9. A flow-controlled communications system comprising:
  • a communications path for conveying data and update cells, said communications path hosting plural connections;
  • a transmitter element, in communication with said communications path, for transmitting data cells onto said communications path and receiving update cells from said communication path for each of said connections; and
  • a receiver element, in communication with said communications path, for receiving said data cells from said communications path and transmitting update cells onto said communications path for each of said connections, said receiver element comprising a plurality of buffers for storing said data cells received over said communications path for said connections,
  • wherein said transmitter element dynamically determines, based upon information available at said transmitter, a maximum number of said data cells that can be transmitted to said receiver element for storage in said buffers for each connection, and
  • wherein the change in the maximum number of data cells that can be transmitted divided by the change in buffer fullness decreases as buffer fullness increases.
  • 10. The communications system of claim 9 wherein said communications path has a bandwidth "B" and individual connections of said plural connections can burst transmit at said bandwidth "B".
  • 11. The communications system of claim 10 wherein said dynamically determined maximum number of said data cells that can be transmitted to said receiver element for storage in said buffers is identical for each connection of said plural connections.
  • 12. The communications system of claim 9 wherein said transmitter element dynamically adjusts, based upon information available at said transmitter, a maximum number of said data cells that can be transmitted to said receiver element for storage in said buffers for said communications path.
  • 13. The communications system of claim 12 wherein said receiver element is in communication with a plurality of transmitter elements through a plurality of communication paths and said adjusted maximum number of said data cells that can be transmitted to said receiver element for storage in said buffers is identical for each communication path of said plurality of communication paths.
  • 14. The communications system of claim 9 wherein said transmitter element dynamically adjusts said maximum number in accordance with a technique based upon calculated fullness of said plurality of buffers of said receiver element.
  • 15. The communications system of claim 14 wherein said receiver element periodically sends a feedback message to said transmitter element, said feedback message being indicatative of actual fullness of said plurality of buffers.
  • 16. The communications system of claim 15 wherein said transmitter element tallies the data cells transmitted to said receiver element since at least the time of generation of the latest feedback message received in said transmitter element, thereby providing a tally.
  • 17. The communications system of claim 16 wherein said tally is employed to update said feedback message to calculate an updated receiver buffer state.
  • 18. The communications system of claim 17 wherein said updated receiver buffer state is employed to control flow in accordance with a roll-off technique in which the number of buffers available to each connection in the transmitter element is reduced as the updated receiver buffer state is calculated to be more full.
  • 19. The communications system of claim 18 wherein said buffers are divided into a plurality of zones, Z(0) to Z(n), that are sequentially filled from Z(0) to Z(n) as cells accumulate in said buffers, the zone being utilized at a given time being the active zone.
  • 20. The communications system of claim 16 wherein said tally is maintained in a first free running counter located in said transmitter element, said first counter being incremented each time a cell is transmitted from said transmitter element.
  • 21. The communications system of claim 20 wherein said feedback message contains a number maintained in a second free running counter located in said receiver element, said second counter being incremented each time a buffer is freed in said receiver element.
  • 22. The communications system of claim 19 wherein the zones diminish in size from zone Z(0) to zone Z(n).
  • 23. The communications system of claim 22 wherein the sum of the zones has an upper bound that is an integer multiple of a value "N3".
  • 24. The communications system of claim 23 wherein N3 is equal to the product of the bandwidth of the communications path and the delay between the time at which the transmitter element sends a data cell and the time a complimentary feedback message is received by the transmitter element.
  • 25. The communications system of claim 24 wherein zone Z(0) is twice the value of N3.
  • 26. The communications system of claim 25 wherein there are eight zones, and each successive zone from Z(0) to Z(7) is reduced in size by a factor of one-eighth.
  • 27. The communications system of claim 25 wherein a feedback message is sent for each active connection every N2 time periods.
  • 28. The communications system of claim 27 wherein a feedback message is sent for each quiescent connection less frequently than every N2 time periods.
  • 29. A method for determining, at a point in time, a maximum number of data cells that can be transmitted by a transmitter element across a communications link to a receiver element for a single connection hosted by the communications link, wherein the receiver element comprises plural buffers, said method comprising the steps of:
  • determining, at the transmitter element, a first number identifying the number of data cells that have been transmitted by the transmitter element to the receiver element via the communications link for the connection;
  • transmitting at the receiver element for receipt by the transmitter element, a second number indicative of the number of buffers available for storing data cells at the time such number was transmitted by the receiver element;
  • receiving the second number at the transmitter element; and
  • employing the first and second numbers to calculate a maximum number of cells that can be transmitted by the transmitter element to the receiver element for a respective connection by indexing a first table stored in memory associated with the transmitter element by utilizing the first and second numbers, the first table having a plurality of indexed entries indicating the maximum number of cells that can be transmitted by the transmitter element to the receiver element for a respective connection, wherein a roll-off technique is implemented in the first table in which the number of buffers available to each connection in the communications link is reduced at a greater rate than the receiver buffer state as indicated by the first and second numbers.
  • 30. The method of claim 29 including the further step of applying the maximum number to each connection hosted by the communications link.
  • 31. The method of claim 30 including the further step of indexing a second table to determine a maximum number of data cells that can be transmitted for the communications link.
  • 32. The method of claim 31 including the further step of setting entries in the table to dynamically adjust the maximum number in accordance with a technique based upon calculated fullness of the plurality of buffers of the receiver element.
  • 33. The method of claim 32 including the further step of periodically sending, by the receiver element, a feedback message including the second number to the transmitter element.
  • 34. The method of claim 33 including the further step of combining the first number and second number to index the second table.
  • 35. The method of claim 29 including the further step of dividing the buffers into a plurality of zones, Z(0) to Z(n), that are sequentially filled from Z(0) to Z(n) as cells accumulate in the buffers such that only one zone is actively utilized at a given point in time, the zones decreasing in size from Z(0) to Z(n).
  • 36. The method of claim 29 including the further step of implementing a secondary flow control technique when receiver buffer fullness exceeds a predetermined threshold.
  • 37. The method of claim 36 including the further step of, when receiver buffer fullness exceeds the predetermined threshold, allowing designated connections in the transmitter to transmit up to a fixed number of cells and halting further transmission until receipt of a feedback message indicating that buffers have been freed.
  • 38. The method of claim 36 including the further step of, when receiver buffer fullness exceeds the predetermined threshold, allowing designated connections in the transmitter to transmit, upon receipt of feedback indicating that sufficient buffer space has been freed in the receiver, up to the lesser of:
  • a predetermined fixed number of cells; and
  • the number of cells indicated by employing the first and second numbers to index the first table.
RELATED CASE INFORMATION

Priority is claimed to U.S. Provisional Application Ser. No. 60/003,761, entitled COMMUNICATION METHOD AND APPARATUS, filed Sep. 14, 1995.

US Referenced Citations (260)
Number Name Date Kind
3804991 Hammond et al. Apr 1974
3974343 Cheney et al. Aug 1976
4069399 Barrett et al. Jan 1978
4084228 Dufond et al. Apr 1978
4240143 Bessemer et al. Dec 1980
4603382 Cole et al. Jul 1986
4715030 Koch et al. Dec 1987
4727537 Nichols Feb 1988
4737953 Koch et al. Apr 1988
4748658 Gopal et al. May 1988
4797881 Ben-Artzi Jan 1989
4821034 Anderson et al. Apr 1989
4837761 Isono et al. Jun 1989
4849968 Turner Jul 1989
4870641 Pattavina Sep 1989
4872157 Hemmady et al. Oct 1989
4872159 Hemmady et al. Oct 1989
4872160 Hemmady et al. Oct 1989
4872197 Pemmaraju Oct 1989
4878216 Yunoki Oct 1989
4893302 Hemmady et al. Jan 1990
4893307 McKay et al. Jan 1990
4894824 Hemmady et al. Jan 1990
4897833 Kent et al. Jan 1990
4897841 Gang, Jr. Jan 1990
4899333 Roediger Feb 1990
4920531 Isono et al. Apr 1990
4922503 Leone May 1990
4933938 Sheehy Jun 1990
4942574 Zelle Jul 1990
4947390 Sheehy Aug 1990
4953157 Franklin et al. Aug 1990
4956839 Torii et al. Sep 1990
4958341 Hemmady et al. Sep 1990
4979100 Makris et al. Dec 1990
4993018 Hajikano et al. Feb 1991
5014192 Mansfield et al. May 1991
5021949 Morten et al. Jun 1991
5029164 Goldstein et al. Jul 1991
5060228 Tsutsui et al. Oct 1991
5067123 Hyodo et al. Nov 1991
5070498 Kakuma et al. Dec 1991
5083269 Syobatake et al. Jan 1992
5084867 Tachibana et al. Jan 1992
5084871 Carn et al. Jan 1992
5090011 Fukuta et al. Feb 1992
5090024 Vander Mey et al. Feb 1992
5093827 Franklin et al. Mar 1992
5093912 Dong et al. Mar 1992
5115429 Hluchj et al. May 1992
5119369 Tanabe et al. Jun 1992
5119372 Verbeek Jun 1992
5128932 Li Jul 1992
5130975 Akata Jul 1992
5130982 Ash et al. Jul 1992
5132966 Hayano et al. Jul 1992
5146474 Nagler et al. Sep 1992
5146560 Goldberg et al. Sep 1992
5150358 Punj et al. Sep 1992
5151897 Suzuki Sep 1992
5157657 Potter et al. Oct 1992
5163045 Caram et al. Nov 1992
5163046 Hahne et al. Nov 1992
5179556 Turner Jan 1993
5179558 Thacker et al. Jan 1993
5185743 Murayama et al. Feb 1993
5191582 Upp Mar 1993
5191652 Dias et al. Mar 1993
5193151 Jain Mar 1993
5197067 Fujimoto et al. Mar 1993
5198808 Kudo Mar 1993
5199027 Barri Mar 1993
5239539 Uchida et al. Aug 1993
5253247 Hirose et al. Oct 1993
5253248 Dravida et al. Oct 1993
5255264 Cotton et al. Oct 1993
5255266 Watanabe et al. Oct 1993
5257311 Naito et al. Oct 1993
5258979 Oomuro et al. Nov 1993
5265088 Takigawa et al. Nov 1993
5267232 Katsube et al. Nov 1993
5268897 Komine et al. Dec 1993
5271010 Miyake et al. Dec 1993
5272697 Fraser et al. Dec 1993
5274641 Shobatake et al. Dec 1993
5274768 Traw et al. Dec 1993
5280469 Taniguchi et al. Jan 1994
5280470 Buhrke et al. Jan 1994
5282201 Frank et al. Jan 1994
5283788 Morita et al. Feb 1994
5285446 Yonehara Feb 1994
5287349 Hyodo et al. Feb 1994
5287535 Sakagawa et al. Feb 1994
5289462 Ahmadi et al. Feb 1994
5289463 Mobasser Feb 1994
5289470 Chang et al. Feb 1994
5291481 Doshi et al. Mar 1994
5291482 McHarg et al. Mar 1994
5295134 Yoshimura et al. Mar 1994
5301055 Bagchi et al. Apr 1994
5301184 Uriu et al. Apr 1994
5301190 Tsukuda et al. Apr 1994
5301193 Toyofuku et al. Apr 1994
5303232 Proctor et al. Apr 1994
5305311 Lyles Apr 1994
5309431 Tominaga et al. May 1994
5309438 Nakajima May 1994
5311586 Bogart et al. May 1994
5313454 Bustini et al. May 1994
5313458 Suzuki May 1994
5315586 Charvillat May 1994
5319638 Lin Jun 1994
5321695 Faulk, Jr. Jun 1994
5323389 Bitz et al. Jun 1994
5333131 Tanabe et al. Jul 1994
5333134 Ishibashi et al. Jul 1994
5335222 Kamoi et al. Aug 1994
5335325 Frank et al. Aug 1994
5339310 Taniguchi Aug 1994
5339317 Tanaka et al. Aug 1994
5339318 Tanaka et al. Aug 1994
5341366 Soumiya et al. Aug 1994
5341373 Ishibashi et al. Aug 1994
5341376 Yamashita Aug 1994
5341483 Frank et al. Aug 1994
5345229 Olnowich et al. Sep 1994
5350906 Brody et al. Sep 1994
5355372 Sengupta et al. Oct 1994
5357506 Sugawara Oct 1994
5357507 Hughes et al. Oct 1994
5357508 Le Boudec et al. Oct 1994
5357510 Norizuki et al. Oct 1994
5359600 Ueda et al. Oct 1994
5361251 Aihara et al. Nov 1994
5361372 Rege et al. Nov 1994
5363433 Isono Nov 1994
5363497 Baker et al. Nov 1994
5365514 Hershey et al. Nov 1994
5369570 Parad Nov 1994
5371893 Price et al. Dec 1994
5373504 Tanaka et al. Dec 1994
5375117 Morita et al. Dec 1994
5377262 Bales et al. Dec 1994
5377327 Jain et al. Dec 1994
5379297 Glover et al. Jan 1995
5379418 Shimazaki et al. Jan 1995
5390170 Sawant et al. Feb 1995
5390174 Jugel Feb 1995
5390175 Hiller et al. Feb 1995
5392280 Zheng Feb 1995
5392402 Robrock, II Feb 1995
5394396 Yoshimura et al. Feb 1995
5398235 Tsuzuki et al. Mar 1995
5400337 Munter Mar 1995
5402415 Turner Mar 1995
5412648 Fan May 1995
5414703 Sakaue et al. May 1995
5418942 Krawchuk et al. May 1995
5420858 Marshall et al. May 1995
5420988 Elliott May 1995
5422879 Parsons et al. Jun 1995
5425021 Derby et al. Jun 1995
5425026 Mori Jun 1995
5426635 Mitra et al. Jun 1995
5432713 Takeo et al. Jul 1995
5432784 Ozveren Jul 1995
5432785 Ahmed et al. Jul 1995
5432908 Heddes et al. Jul 1995
5436886 McGill Jul 1995
5436893 Barnett Jul 1995
5440547 Easki et al. Aug 1995
5444702 Burnett et al. Aug 1995
5446731 Tsuruoka Aug 1995
5446737 Cidon et al. Aug 1995
5446738 Kim et al. Aug 1995
5448559 Hayter et al. Sep 1995
5448621 Knudsen Sep 1995
5450406 Esaki et al. Sep 1995
5452296 Shimizu Sep 1995
5452299 Thessin et al. Sep 1995
5455820 Yamada Oct 1995
5455825 Lauer et al. Oct 1995
5457687 Newman Oct 1995
5459743 Fukuda Oct 1995
5461611 Drake, Jr. et al. Oct 1995
5463629 Ko Oct 1995
5463775 DeWitt et al. Oct 1995
5465331 Yang et al. Nov 1995
5465365 Winterbottom Nov 1995
5469003 Kean Nov 1995
5473608 Gagne et al. Dec 1995
5475679 Munter Dec 1995
5479401 Bitz et al. Dec 1995
5479402 Hata et al. Dec 1995
5483526 Ben-Nun et al. Jan 1996
5485453 Wahlman et al. Jan 1996
5485455 Dobbins et al. Jan 1996
5487063 Kakuma et al. Jan 1996
5488606 Kakuma et al. Jan 1996
5491691 Shtayer et al. Feb 1996
5491694 Oliver et al. Feb 1996
5493566 Ljungberg et al. Feb 1996
5497369 Wainwright Mar 1996
5499238 Shon Mar 1996
5504741 Yamanaka et al. Apr 1996
5504742 Kakuma et al. Apr 1996
5506834 Sekihata et al. Apr 1996
5506839 Hatta Apr 1996
5506956 Cohen Apr 1996
5509001 Tachibana et al. Apr 1996
5509007 Takashima et al. Apr 1996
5513134 Cooperman et al. Apr 1996
5513178 Tanaka Apr 1996
5513180 Miyake et al. Apr 1996
5515359 Zheng May 1996
5519690 Suzuka et al. May 1996
5521905 Oda et al. May 1996
5521915 Dieudonne et al. May 1996
5521916 Choudhury et al. May 1996
5521917 Watanabe et al. May 1996
5521923 Willmann et al. May 1996
5523999 Takano et al. Jun 1996
5524113 Gaddis Jun 1996
5526344 Diaz et al. Jun 1996
5528588 Bennett et al. Jun 1996
5528590 Iidaka et al. Jun 1996
5528591 Lauer Jun 1996
5530695 Digne et al. Jun 1996
5533009 Chen Jul 1996
5533020 Byrn et al. Jul 1996
5535196 Aihara et al. Jul 1996
5535197 Cotton Jul 1996
5537394 Abe et al. Jul 1996
5541912 Choudhury et al. Jul 1996
5544168 Jeffrey et al. Aug 1996
5544169 Norizuki et al. Aug 1996
5544170 Kasahara Aug 1996
5546389 Wippenbeck et al. Aug 1996
5546391 Hochschild et al. Aug 1996
5546392 Boal et al. Aug 1996
5550821 Akiyoshi Aug 1996
5553057 Nakayama Sep 1996
5553068 Aso et al. Sep 1996
5555243 Kakuma et al. Sep 1996
5555265 Kakuma et al. Sep 1996
5557607 Holden Sep 1996
5568479 Watanabe et al. Oct 1996
5570361 Norizuki et al. Oct 1996
5570362 Nishimura Oct 1996
5572522 Calamvokis et al. Nov 1996
5577032 Sone et al. Nov 1996
5577035 Hayter et al. Nov 1996
5583857 Soumiya et al. Dec 1996
5583858 Hanaoka Dec 1996
5583861 Holden Dec 1996
5590132 Ishibashi et al. Dec 1996
5602829 Nie et al. Feb 1997
5610913 Tomonaga et al. Mar 1997
5623405 Isono Apr 1997
5625846 Kobayakawa et al. Apr 1997
Foreign Referenced Citations (1)
Number Date Country
4-84943 Mar 1992 JPX
Non-Patent Literature Citations (17)
Entry
An Ascom Timeplex White Paper, Meeting Critical Requirements with Scalable Enterprise Networking Solutions Based on a Unified ATM Foundation, pp. 1-12, Apr. 1994-1995?.
Douglas H. Hunt, ATM Traffic Management--Another Perspective, Business Communications Review, Jul. 1994.
Richard Bubenik et al., Leaf Initiated Join Extensions, Technical Committee, Signalling Subworking Group, ATM Forum/94-0325R1, Jul. 1, 1994.
Douglas H. Hunt et al., Flow Controlled Virtual Connections Proposal for ATM Traffic Management (Revision R2), Traffic Management Subworking Group, ATM.sub.-- Forum/94-0632R2, Aug. 1994.
Flavio Bonomi et al., The Rate-Based Flow Control Framework for the Available Bit Rate ATM Service, IEEE Network, Mar./Apr. 1995, pp. 25-39.
R. Jain, Myths About Congestion Management in High Speed Networks, Internetworking Research and Experience, vol. 3, 101-113 (1992).
Douglas H. Hunt et al., Credit-Based FCVC Proposal for ATM Traffic Management (Revision R1), ATM Forum Technical Committee Traffic Management Subworking Group, ATM.sub.-- Forum/94-0168R1, Apr. 28, 1994.
Douglas H. Hunt et al., Action Item Status for Credit-Based FCVC Proposal, ATM Forum Technical Committee Traffic Management Subworking Group, ATM.sub.-- Forum/94-0439, Apr. 28, 1994.
Timothy P. Donahue et al., Arguments in Favor of Continuing Phase 1 as the Initial ATM Forum P-NNI Routing Protocol Implementation, ATM Forum Technical Committee, ATM Forum/94-0460, Apr. 28, 1994.
Richard Bubenick et al., Leaf Initiated Join Extensions, Technical Committee, Signalling Subworking Group, ATM Forum/94-0325, Apr. 28, 1994.
Rob Coltun et al., PRP: A P-NNI Routing Protocol Proposal, ATM Forum Technical Committee, ATM.sub.-- Forum/94-0492, Apr. 28, 1994.
Richard Bubenik et al., Leaf Initiated Join Extensions, ATM Forum Technical Committee, Signalling Subworking Group, ATM Forum 94-0325, Apr. 28, 1994.
Richard Bubenik et al., Requirements For Phase 2 Signaling Protocol, ATM Forum Technical Committee, Signalling Subworking Group, ATM Forum 94-1078, Jan. 1, 1994.
H.T. Kung and K. Chang, Receiver-Oriented Adaptive Buffer Allocation in Credit-Based Flow Control for ATM Networks, Proceedings of INFOCOM '95, Apr. 2-6, 1995, pp. 1-14.
H.T. Kung et al., Credit-Based Flow Control for ATM Networks: Credit Update Protocol, Adaptive Credit Allocation, and Statistical Multiplexing, Proceedings of ACM SIGCOMM '94 Symposium on Communications Architectures, Protocols and Applications, Aug. 31-Sep. 2, 1994, pp. 1-14.
SITA, ATM RFP: C-Overall Technical Requirements, Sep. 1994.
Head of Line Arbitration in ATM Switches With Input-Output Buffering and Backpressure Control. by Hosein F. Badran and H. T. Mouftah, GLOBECOM '91, pp. 0347-0351.