TRANSMITTER CONTROLLED FLOW CONTROL FOR BUFFER ALLOCATION IN WIDE AREA ATM NETWORKS

Abstract: A flow control technique for wide area ATM networks is disclosed in which allocation of buffers in a receiver switch (10) is controlled by a transmitter switch (12). The receiver switch (10) periodically transmits feedback messages to the transmitter switch (12) indicative of the state of the fullness of the receiver switch buffers (32). The transmitter switch (12) calculates updated receiver buffer fullness based upon the feedback message and the number of cells (16) transmitted from the transmitter switch (12) to the receiver switch (10) since the feedback message was sent. Transmission of cells (22) from the transmitter switch (12) to the receiver switch (10) is then controlled in accordance with an allocation technique, thereby allocating buffers (32) in the receiving switch (10). The technique may be a roll-off technique in which the number of buffers (32) available to each flow in the transmitter switch (12) 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 per flow basis.

Description: TRANSMITTER CONTROLLED FLOW CONTROL FOR BUFFER ALLOCATION IN WIDE AREA ATM NETWORKS RELATED CASE INFORMATION Priority is claimed to U.S. Provisional Application Serial No. 60/003,761, entitled COMMUNICATION METHOD AND APPARATUS, filed September 14, 1995. 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 x B x 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 sinct. 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 ceils 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,, t 2 , t 3 etc.), moving into successively more restrictive zones wherein each flow has a successively smaller virtual buffer (1,. l 2 , 1 3 etc.) such that the absolute magnitude of (1,-1 1+1 ) / (t,-t 1+ .) is greater than the absolute magnitude of (l, + |-l 1+2 ) / (t 1+ ,-t 1+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 banHr.r dth. In an exemplary roll-off technique a set of N flows share the link between th<- 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 εwitch buffer 24. The receiver switch buffer is divided, for example, into eight zones: Z(0), Z(l), 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 x RTT), and letting, for example, Z(0) = 2 x N3max with each successive Z(i) geometrically reduced by 7/8: Z(l) = 7/8 x 2 x N3max, Z(2) = (7/8) 2 x 2 x N3max, Z(3) = (7/8) 3 x 2 x N3max, and so on such that ΣZ(i) = 8 x 2 x N3max. Hence, the size of each zone is the product of a reduction factor and 2 x B x RTT. In an alternative embodiment zone size is based on a larger multiple of B x 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(l) 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 < N2 + N3max) . In such a case the receiver is in zone Z(l) , and the ceiling is N2 + 7/8 x N3max, so the credit cailing 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 x 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 x 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 x N3max, Z(l) = 1/2 x 2 x N3max, Z(2) = 1/4 x 2 x N3max, Z(3) = 1/8 x 2 x N3max, Z(4) = 1/16 x 2 x N3max, and so on such that ΣZ(i) = 2 x 2 x 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 Arrays where i = index, p = profile Index[i]: Index Array where i = connection ID and Indexfi] has an integer value that may be increased or decreased as required BAPQ: Buffer Access Priority Queue Deficit[c]: Deficit Array where c = connection ID BSU: Buffer State Update BFS: Buffer free space B_Max: Buffer space available TX_i: Cells transmitted for connection i Fwd_i: Cells forwarded by receiver for connection i N: Upper bound on the value cf the Index Array where 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 decremented N2 : Receiver sends a new update upon receipt of N2 cells RTT: Round Trip Travel Time of Link B: Bandwidth of Link N3: B*RTT Management Buffer free space is calculated as: BFS = B_Max - Sum m „ . conne-uon . (TX_i - Fwd'_i) where Fwd'_i is the most recent value of Fwd_i supplied by receiver to transmitter Index is calculated as: Indexfi] = least integer containing (N*(TX_i - Fwd'_i) /B_Max) Buffer Usage Control If (TX_i-Fwd'_i) < BLT[i,p] THEN IF technique prevents transmission based on prior usage, e.g., Deficitfi] > 0 THEN record transmitter-local technique information , e . g . , decrement Deficit[i] Insert this request in BAPQ at priority = Deficit[i] Allow transmission from top of BAPQ ELSE allow transmission for this request, based on prior usage, e.g., when Deficitfi] = 0) ELSE record transmitter-local technique information, e.g., increment Deficit[i] Pool Apportioning IF a new connection arrives THEN B_Max = B_Max + N2 Increase the indices to provide more conservative operation if needed Note: It may not be possible to accept the connection if indices cannot be increased If a connection leaves THEN B_Max = B_Max - N2 Decrease the indices to provide more aggressive operation if desired Deadlock Avoidance IF Sum OTer onnecϋon - (Tx_l - Fwd'_l) > B_Max THEN 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 transmission Note: This check is in addition to BLT controls With regard to the pseudocode, Tx_Count and Fwd_Count are maintained in free running counters and hence the flow control technique is tolerant to loss of control information. More particularly, Fwd_Count is maintained in a free running counter in the receiver and is incremented each time a buffer is freed, and Tx_Count is maintained in a free running counter in the transmitter and is incremented each time a cell is transmitted. The difference, Tx Count - Fwd 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 j " is greater than the absolute magnitude of "slope 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: CLAIMS 1. A method for allocating buffers in a data transmission εystem comprising a communication path, a transmitter element in communication with εaid 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 stepε of: storing in a table in εaid transmitter element at least two records, each of said at least two record containing at least a first field containing a threshold number (t,) indicative of the fullness of said buffer pool and a second field indicative of the maximum number of data cells (1,) 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, and t,.,, wherein 1 0 is predetermined and the number stored in the second field of each subsequent record is selected such that (1,-1 1+1 ) / (t,-t l+1 ) is greater than (l 1+ ,-l 1+2 ) / (t, +1 -t l+2 ) ; calculating in said transmitter element a number indicative of an approximation of the fullness of said buffer pool in said receiver element; and 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; 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 including the further step of applying the maximum number to each connection hosted by the communicationε 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 transmiritter element, the number of data cell? 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 lesεer 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. 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 tranεmitting data cellε onto said communications path and receiving update cells from said communication path for each of εaid connectionε; and a receiver element, in communication with εaid communicationε 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 bufferε for εtoring εaid data cells received over said communications path for εaid connectionε, wherein εaid 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 εtorage in said bufferε for each connection, and wherein the change in the maximum number of data cellε that can be tranεmitted divided by the change in buffer fullneεs 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 syεtem of claim 10 wherein said adjusted maximum number of said data cells that can be transmitted to εaid receiver element for εtorage in said buffers is identical for each connection of said plural connectionε. 12. The communicationε εyεtem 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 tran mitted to said receiver element for storage in said buffers for said communications path. 13. The communications syεtem 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 εaid bufferε iε identical for each communication path of εaid plurality of communication pathε. 14. The communications system of claim 9 wherein said transmitter element dynamically adjusts said maximum number in accordance with a technique based upon calculated fullnesε of εaid plurality of buffers of εaid receiver element. 15. The communications system of claim 14 wherein said receiver element periodically sends a feedback message to said transmitter element, said feedback mesεage 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 meεεage received in said transmitter element, thereby providing a tally. 17. The communications syεtem of claim 16 wherein εaid tally is employed to update said feedback message to calculate an updated receiver buffer state. 18. The communications syεtem of claim 17 wherein εaid updated receiver buffer εtate iε 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 εyεtem of claim 18 wherein εaid bufferε 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 syεtem of claim 16 wherein εaid tally iε maintained in a firεt free running counter located in εaid tranεmitter element, εaid firεt counter being incremented each time a cell iε transmitted from said transmitter element. 21. The communicationε εyεtem of claim 20 wherein εaid feedback meεεage 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 syεtem of claim 21 wherein the zoneε diminiεh in size from zone Z(0) to zone Z(n). 23. The communications syεtem 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 mesεage 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 syεtem 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 εyεtem of claim 27 wherein a feedback mesεage is sent for each quiescent connection lesε frequently than every N2 time periodε. 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 stepε of: determining, at the transmitter element, a first number identifying the number of data cellε 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 tranεmitter element, a second number indicative of the number of bufferε available for εtoring 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 tranεmitter element to the receiver element for a respective connection. 30. The method of claim 29 including the further step of 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. 31. The method of claim 30 including the further step of applying the maximum number to each connection hosted by the communications link. 32. The method of claim 31 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. 33. The method of claim 31 including the further εtep 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 bufferε of the receiver element. 34. The method of claim 33 including the further εtep of periodically sending, by the receiver element, a feedback message including the second number to the transmitter element. 35. The method of claim 34 including the further step of combining the first number and second number to index the second table. 36. The method of claim 30 including the further step of implementing a roll-off technique in the first table, in which the number of buffers available to each connection in the communications link is reduced as the receiver buffer state is calculated to be more full as indicated by the first and second numberε. 37. The method of claim 29 including the further εtep of dividing the bufferε 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). 38. The method of claim 29 including the further step of implementing a secondary flow control technique wh^n receiver buffer fullnesε exceeds a predetermined threshold. 39. The method of claim 38 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 mesεage indicating that bufferε have been freed. 40. The method of claim 38 including the further εtep 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.

Inventors: HUNT DOUGLAS H, NAIR RAJ KRISHNAN, HUNT, DOUGLAS, H., NAIR, RAJ, KRISHNAN
Applicants: ASCOM NEXION INC, HUNT DOUGLAS H, NAIR RAJ KRISHNAN, ASCOM NEXION INC., HUNT, DOUGLAS, H., NAIR, RAJ, KRISHNAN
Application year: 1996
Main classification: H04J3
IPC codes: H04J3, H04L12, H04Q3