Connection-oriented congestion controller for common channel signaling network

Abstract: A connection-oriented congestion controller for a common channel signaling network comprises a memory for storing data representative of established connections, and a data transceiver connected between user terminals and remote signaling nodes for receiving and sending data messages on the established connections. The data transceiver is responsive to a blocking status indication for imposing flow control on the data messages and marking the established connections as blocked in the memory, and is responsive to an unblocking status indication for removing the flow control and marking the established connections as unblocked in the memory. A resource monitor compares a resource availability value with a number of thresholds, and produces the blocking status indication when it becomes lower than a start-of-blocking threshold until it becomes higher than an end-of-blocking threshold, or produces the unblocking status indication when the resource availability value becomes higher than a start-of-unblocking threshold until it becomes lower than an end-of-unblocking threshold. If all of the established connections are marked unblocked in the memory, the resource monitor compares the resource availability value with a new connection threshold to determine whether a new connection request is to be allowed or refused.

Description: BACKGROUND OF THE INVENTION Field of the Invention The present invention relates generally to common channel signaling networks, and more specifically to a connection-oriented congestion controller for the signaling connection control part (SCCP) of the CCITT signaling system number 7 for ISDN (integrated services digital network). Description of the Related Art According to CCITT Recommendations Q.711-Q. 714 for Signaling System Number 7, the signaling connection control part (SCCP) is situated between the user layer and the message transfer part (MTP) to support both connectionless and connection-oriented network services between signaling nodes. The signaling connection control part temporarily hold data messages when flow control is being effected and monitors available resources. If the amount of available resources becomes smaller than a prescribed value, a limit is imposed on new connection requests so that the number of established connections is held constant. However, there is no mechanism for providing flow control on the established connections. Because of the lacking of the flow control mechanism, the prior art signaling connection control part is unable to match demand and available resources and as a result it cannot cope with a rapid increase in traffic without data loss and clear-down of established connections. SUMMARY OF THE INVENTION It is therefore an object of the present invention to provide a connection-oriented congestion controller for a common channel signaling network capable of providing flow control on established connections in order to handle a rapid increase in traffic without causing data loss and clearing down established connections. In a connection-oriented congestion controller of the present invention which is adapted for use in one of a plurality of interconnected signaling nodes of a common channel signaling network, a connection setup processor establishes a connection in response to a connection request when there is a grant indication that a connection request is allowed, and a memory is provided for storing data representative of the established connections marked as blocked or unblocked. A data receiver and a data sender are connected between user terminals and one of the signaling nodes for receiving and sending data messages on the established connections. According to the present invention, a resource availability value is generated representing the availability of the established connections. The resource availability value is compared with a start-of-blocking threshold, an end-of-blocking threshold, a start-of-unblocking threshold and an end-of-unblocking threshold, and a blocking status indication is produced when the resource availability value becomes lower than the start-of-blocking threshold until the resource availability value becomes higher than the end-of-blocking threshold, or an unblocking status indication is produced when the resource availability value becomes higher than the start-of-unblocking threshold until the resource availability value becomes lower than the end-of-unblocking threshold. Flow control is imposed on the data messages and the established connections are marked as blocked in the memory in response to the blocking status indication, and the flow control is removed and the established connections are marked as unblocked in the memory in response to the unblocking status indication. The resource availability value is further compared with a new connection threshold if all of the established connections are marked unblocked in the memory to produce a grant indication for a new connection request if the resource availability value is determined to be lower than the new connection threshold. In another aspect, the invention is a method for providing flow control in a connection-oriented congestion controller adapted for use in one of a plurality of interconnected signaling nodes of a common channel signaling network that comprises: connection setup means for establishing a connection in response to a connection request when there is a grant indication that a connection request is allowed, a memory for storing data representative of the established connections marked as blocked or unblocked, and data receiving and sending means connected between user terminals and one of the signaling nodes for receiving and sending data messages on the established connections. The method comprises the steps of: (a) generating a resource availability value representative of availability of the established connections; (b) comparing the resource availability value with a start-of-blocking threshold, and end-of-blocking threshold, a start-of-unblocking threshold and an end-of-unblocking threshold, and producing a blocking status indication when the resource availability value becomes lower than the start-of-blocking threshold until the resource availability value becomes higher than the end-of-blocking threshold, or an unblocking status indication when the resource availability value becomes higher than the start-of-unblocking threshold until the resource availability value becomes lower than the end-of-unblocking threshold; (c) imposing flow control on said data messages and marking the established connections as blocked in said memory in response to said blocking status indication; (d) removing said flow control and marking the established connections as unblocked in said memory in response to said unblocking status indication; (e) comparing said resource availability value with a new connection threshold if all of the established connections are marked unblocked in said memory; and, (f) producing said grant indication if the resource availability value is determined to be lower than said new connection threshold. BRIEF DESCRIPTION OF THE DRAWINGS The present invention will be described in further detail with reference to the accompanying drawings, in which: Fig. 1 is a block diagram of a signaling connection control part (SCCP) connection-oriented congestion controller of the present invention with related circuitry in a common channel signaling network, or CCITT signaling system number 7; Fig. 2 is a state transition diagram of a resource monitor; Fig. 3 is a flowchart of the operation of a connection setup processor; Fig. 4 is a flowchart of the operation of a data sender; Fig. 5 is a flowchart of the operation of a data receiver; Fig. 6 is a flowchart of the operation of a resource monitor; Fig. 7 is a flowchart of the operation of a congestion relief manager; and Fig. 8 is a graphic representation of resource availability count plotted as a function of time under a varying number of established connections. DETAILED DESCRIPTION Referring now to Fig. 1, there is shown a signaling point of a common channel signaling system number 7 (SS7) according to the present invention. The signaling point generally comprises a signaling connection control part (SCCP) connection-oriented congestion controller 1, an SCCP manager 2 and a message transfer part (MTP) controller 3. The MTP controller 3 is connected via signaling links 5 to a remote signal transfer point (STP) 4 via which the links are connected further to one or more signal end points (not shown) through signaling links 6. According to the present invention, the SCCP connection-oriented congestion controller 1 comprises a connection setup processor 8 , a data receiver 9 and a data sender 10 , all of which are connected to service users 7 , or applications. As will be described in detail later, connection setup processor 8 establishes a connection in response to a connection request from user 7 if the request is granted and exchanges connection control messages with the users and the remote STP to establish a connection. With a connection being established, users send a data send request. A resource monitor 13 is provided to effect overall control of the connection-oriented congestion controller 1, including the issuance of allow/refuse indication on path 24 to connection setup processor 8 , comparing an available resource value with threshold values to assume one of operating states (blocking, unblocking, stable and unblocked). Resource monitor 13 includes a resource availability counter 13A which is updated in response to a "hunt resource" and a "release resource" notification from data receiver 9 and data sender 10 via paths 17 and 18. Data sender 10 is responsive to the user's "data send" request to check to see if the buffering of data messages is required. If so, it updates the resource availability counter 13A by sending a "hunt resource" request on path 18 and checks the current operating state of a resource monitor 13 through path 25 and marks the established connection as "outgoing blocked" in a connection memory 11 if resource monitor 13 is in a blocking state. Data sender 10 then informs the user that flow control is being effected on outgoing messages received from the user, while buffering the received outgoing messages. If no buffering is required, data sender 10 immediately processes the outgoing data messages for transmission to STP 4. If, as a result of data transmission, resources are released, data sender 10 updates the resource availability counter 13A by applying a "release resource" request on path 18. In a similar manner, data receiver 9 responds to an incoming data indication from STP 4 to check to see if buffering is required. If so, it updates the resource availability counter 13A by sending a "hunt resource" request on path 17 and checks the current state of resource monitor 13 through path 25 and marks the connection as "incoming blocked" in the connection memory 11 if the resource monitor 13 is in a blocking state. Data receiver 9 informs the STP 4 that flow control is effected on received incoming messages, while buffering the messages. If no buffering is required, data receiver 9 immediately processes the incoming data messages for transmission to the user. If, as a result of handling incoming data to the user, resources are released, data receiver 9 updates the resource availability counter 13A by applying a "release resource" request on path 17. Data messages transmitted from user terminals may be traffic control messages and billing messages for network management and maintenance for a separate information network, or call processing signals for establishing connections in the information network. Each data message includes a network address which contains a source point code (source signaling node identifier), a destination point code (destination signaling node identifier) and a subsystem number, or global title which uniquely defines the address of an application-specific entity to which the data message is addressed. A routing controller 12 provides routing of data messages between connection setup processor 8 , data receiver 9, data sender 10 and the MTP controller 3. Details of routing controller 12 are described in U. S. Patent 5,268,895, Jeffrey Topper, "Signaling Message Routing Control Using Composite Point Code Status". As standardized by CCITT Recommendations Q.711-Q. 714 for Signaling System Number 7 , the SCCP manager 2 is to provide procedures to maintain network performance by rerouting or throttling traffic in the event o failure or congestion in the network. More specifically, it maintains the congestion status of remote signaling points with which it has a signaling relationship and informs local users of changes in the states of point codes and subsystem numbers it monitors. The MTP controller 3 serves as a transport system for users and is responsible for transporting data messages. between user locations, providing physical links, data link control functions, and routing messages between user locations. Connection memory 11 stores incoming blocking states and outgoing blocking states of all established connections, and their connection numbers to be used as an index for accessing the stored blocking and unblocking states of all connections. Connection-oriented congestion controller 1 further includes a congestion relief manager 14, the function of which is to unblock blocked connections at a predetermined rate by reading connection memory 11 via path 20 to find blocked/unblocked connections and send unblock requests to data sender 10 over path 21 for connections marked outgoing blocked and to data receiver 9 over path 22 for connections marked incoming blocked when the start-of-unblocking (SUB) indication is received on path 27 from the resource monitor 13. When the number of connections unblocked by the congestion relief manager 14 reaches a limit determined by the unblocking rate, the congestion relief manager 14 starts a timer and suspends processing until either the timer expires or else until the end-of-unblocking (EUB) indication is received on path 28 from the resource monitor 13. When all established connections have been unblocked, the congestion relief manager 14 terminates processing without unblocking all connections and clears the timer when it receives the end-of-unblocking (EUB) indication on path 28 from the resource monitor 13 while suspended. Resource monitor 13 assumes one of four operating states, i.e., unblocked, blocking, unblocking and stable states, depending on the result of comparison between the resource availability value N and thresholds L1, L2, L3, L4 and L5 which are arranged in descending order. As illustrated in a state transition diagram (Fig. 2), resource monitor 13 is in an all-connections-unblocked state, or simply an "unblocked" state, when flow-control constraint is removed from all established connections and in this unblocked state it assumes one of two states, "new connection allowed" and "new connection refused", and shifts from "new connection allowed" state to "new connection refused" state as indicated by route (1) in Fig. 2 if the resource value N is smaller than the highest threshold L1 which represents a new connection threshold and shifts in reverse direction as indicated by route (2) when N is equal to or greater than L1. There is a shift from the "unblocked" state to a blocking state through route (3) if N becomes smaller than the lowest threshold L5 which represents a start-of-blocking threshold to effect a blocking phase. Resource monitor 13 shifts from the blocking state to a stable state through route (4) if N becomes greater than L4 which represents an end-of-blocking threshold and shifts back to the blocking state as indicated by route (5) if N becomes smaller L5. If N becomes greater than the second highest threshold L2 representing a start-of-unblocking threshold, route (6) is taken to shift from the stable state to an unblocking state and shifts in reverse direction as indicated by route (7) if N becomes lower than the third highest threshold L3 which represents an end-of-unblocking threshold. There is a shift from the unblocking state to the blocking state as given by route (8) if N becomes smaller than L1. If resource monitor 13 receives an all-connections-unblocked (ACUB) notification from congestion relief manager 14 on path 21, it exits the unblocking state and returns to the "unblocked" state as indicated by route (9). As shown in Fig. 3, the operation of the connection setup processor 8 starts if a new connection request is received from a user or from a remote routing controller (step 30). Connection setup processor 8 checks to see if the connection request is allowed or refused by resource monitor 13 (step 31) by examining the allow/refuse status data on path 24. If the request is refused, a connection refusal notification is sent to the user (step 32), and if allowed, normal new connection request procedure is followed (step 33). In Fig. 4, data sender 10 begins its operation if it receives a "data send" request from the user (step 35). Exit then is to step 36 to check to see if the buffering of data is required. If a queue has been formed by previous data messages, the answer is affirmative at step 36 and control exits to step 37 to send a "hunt resource" indication on path 18 to the resource availability counter 13A to decrement its value. At step 38, data sender 10 inquires the resource monitor 13 about its operating state on path 25. If resource monitor 13 is determined to be in a blocking state, control branches to step 39 to mark the associated active connection as "outgoing-blocked" in the connection memory 11 and send an "outgoing flow control" notification to the user (step 40), while holding data in the buffer of data sender 10 (step 41). If resource monitor 13 is not in the blocking state, control branches at step 38 to step 41, skipping steps 39 and 40. If the buffering of data is not required, control branches at step 36 to step 46 to immediately process outgoing data messages from the user. Exit then is to step 47 to check to see if the resource is to be released. If it is, control branches at step 47 to step 48 to apply a "release resource" request on path 18 to increment the available resource value N terminates the routine. If an unblock status indication is given on path 21 by congestion relief manager 14 (step 42), data sender 10 marks the associated active connection as outgoing unblocked (step 43) and informs the user of the end of flow control (step 44). If data is stored in the buffer (step 45), control proceeds to step 46. Otherwise, it terminates the routine. In Fig. 5, data receiver 9 begins its operation when it receives an incoming data indication from STP 4 (step 50). If buffering of data is required (step 51 ), control branches to step 52 to apply a "hunt resource" request on path 17 to decrement the available resource value N. At step 53, control inquires the resource monitor 13 about its operating state through path 25. If resource monitor 13 is determined to be in a blocking state, control branches to step 54 to mark the established connection as "incoming-blocked" in the connection memory 11, apply flow control on incoming data messages (step 55 ) and hold the incoming data messages in the buffer of data receiver 9. If resource monitor 13 is not in the blocking state (step 53 ) , control exits to step 56, skipping steps 54 and 55. If the buffering of data is not required (step 51 ) , it sends the incoming data messages immediately to the user (step 57 ) and checks to see if the resource is to be released (step 58 ) . If it is, control branches at step 58 to step 59 to apply a "release resource" request on path 17 to increment the available resource value N. If the resource is determined to be still in need at step 58, control terminates the routine. If an unblock status indication is given on path 22 by congestion relief manager 14 (step 60 ), data receiver 9 marks the associated active connection as "incoming unblocked" (step 61 ) and removes the flow control (step 62 ), and terminates the routine. The operation of resource monitor 13 will be described in detail with reference to the flowchart of Fig. 6. When resource monitor 13 receives an all-connections-unblocked (ACUB) notification from congestion relief manager 14 (step 70 ), it proceeds to step 71 to determine whether it is in an unblocking state. If the answer is negative, the current state remains unchanged. If resource monitor 13 is in an unblocking state, control branches at step 71 to step 72 to determine whether the resource availability value N is lower than the new connection threshold L1. If the answer is affirmative, control exits to step 73 to give a refusal indication on path 24 that a new connection request is refused, and terminates the routine by marking the current state of resource monitor 13 to "unblocked". If the decision at step 72 yields a negative answer, control branches to step 74 to give a grant indication on path 24 that a new connection request is allowed, and terminates the routine by marking the current state of resource monitor 13 to "unblocked". If resource monitor 13 receives a "hunt resource" notification on path 17 or 18 (step 75), it decrements the resource availability counter 13A (step 75). If the resource monitor receives a "release resource" notification (step 77), it increments the counter 13A (step 78). After updating the counter, control advances to step 79 to determines whether the value N is lower than the start-of-blocking threshold L5. If it is, control exits to step 80 to give an end-of-blocking (EUB) notification to congestion relief manager 14 and proceeds to step 81 to apply a "refusal" indication on path 24 and then terminates the routine by marking its current state to "blocking". If the answer is negative at step 79, control proceeds to step 82 to check for the current state of the resource monitor. If the resource monitor is a blocking state, resource availability value N is compared with the end-of-blocking threshold L4 at step 83 . If N > L4, the resource monitor terminates its routine by marking its current state to "stable". If N ≤ L4, the blocking state remains unchanged. If the stable state is detected at step 82, resource availability value N is compared with the start-of-unblocking threshold L2 at step 84. If N > L2, control exits to step 85 to give a start-of-unblocking (SUB) notification to congestion relief manager 14, and the resource monitor marks its state to "unblocking". If N ≤ L2, the current stable state remains unchanged. If the current state is unblocking, control exits to step 86 to determine whether N is smaller than the end-of-unblocking threshold L3 and equal to or greater than the start-of-blocking threshold L5. If the answer is affirmative, control branches at step 86 to step 87 to give an end-of-unblocking (EUB) notification to congestion relief manager 14. Otherwise, the current unblocking state remains unchanged. If the unblocked state is detected at step 82, control returns to step 72 to compare resource availability value N with the new connection threshold L1. The operation of congestion relief manager 14 proceeds in a manner as illustrated in Fig. 7. When congestion relief manager 14 receives an SUB (start-of-unblocking) notification from resource monitor 13 (step 90), it reads connections data from memory 11 via path 20 and checks to see if all active connections are unblocked (step 91). If the answer is negative, control exits to step 92 to read connections data from memory 11 over path 20 and determine whether an associated connection is marked "outgoing unblocked" in connection memory 11. If it is, control exits to step 93 to apply an "unblock" notification on path 21 to data sender 10. Otherwise, step 93 is skipped. A similar process is repeated on data receiver 9 at step 94 by checking whether an associated active connection is marked "incoming blocked" in memory 11, and if so, it provides an "unblock" notification on path 22 to data receiver 9 at step 95. If the answer is negative at step 94, step 95 is skipped. At step 96, control determines whether a predetermined limit value is reached, and if not, it returns to step 91 to repeat the process until the limit is reached at step 96. In this manner, a predetermined number of connections are marked unblocked. Exit then is to step 97 to start a timer to establish a timeout period and a timeout check is continued (step 98) as long as the SUB notification is given by resource monitor 13 (step 101) until an EUB (end-of-unblocking) notification is given by resource monitor 13 (step 99) and the timer is stopped (step 100). If the EUB notification is not given within the timeout period, control branches at decision step 98 to step 91 to repeat the flow control release on another set of of connections. Thus, the number of flow-control released connections will increase with time until the EUB notification is given. If the decision at step 91 yields a negative indication, control branches to step 102 to give an all-connections-blocked (ACUB) notification to resource monitor 13. The overall operation of the controller 1 will be described with reference to Fig. 8 in which the top graph shows the number of active connections plotted against time. The shaded portion of the graph indicates the number of active connections that are blocked. The lower graph represents the resource availability value N versus time. At time t 0 , no active connections exist and all resources are available. As time progresses, the number of active connections steadily increases while the resource availability value N decreases to a level below threshold L1 at time t 1 (steps 72 and 73). From time t 1 onwards, new connection requests are refused, placing an upper limit on the number of active connections that are allowed so that it remains flat. Nevertheless, existing active connections continue using resources until the availability value N reduces below the start-of-blocking threshold L5 at time t 2 (steps 79, 80 and 81). Therefore, resource manager 13 shifts to a blocking state at time t 2 , which continues until time t 3 . During this blocking state, active connections are progressively blocked by data receiver 9 and data sender 10 (steps 54, 55, 39, 40) until the resource availability value N becomes greater than the end-of-blocking threshold L4 at time t 3 (step 83), whereupon resource monitor 13 shifts from the blocking state to a stable state which is assumed to last until time t 4 . During this stable state, active connections are neither blocked nor unblocked, and resource availability and demand come to an equilibrium. The number of active connections, however, decreases as user tasks ran to completion and disconnect their associated connections. At time t 4 , resource availability value N increases until it exceeds the start-of-unblocking threshold L2 (step 81) and resource monitor 13 enters an unblocking state and congestion relief manager 14 applies "unblock" notifications to data receiver 9 and data sender 10 for unblocking connections (steps 93, 95, 42, 43, 44, 60, 61, 62, ) by. As connections are unblocked, the demand for SCCP resources increases and resource availability value N decreases until it becomes lower than the end-of-unblocking threshold L3 at time t 5 (steps 86 and 99) to terminate the unblocking process, allowing resource monitor 13 to return to the stable state and congestion relief manager 14 to cease unblocking operation. This stable state continues until availability value N again exceeds the start-of-unblocking threshold L2 at time t 6 (step 84), so that resource monitor 13 returns to the unblocking state and congestion relief manager 14 resumes unblocking process (step 90). The unblocking process continues until all active connections are unblocked at time t 7 at which the value N exceeds the new connection threshold L1 (steps 72 and 74) and resource monitor 13 changes to the unblocked state. The number of active connections once again starts to increase as new connection requests are accepted. The advantageous effect of the controller 1 is the ability to handle an increase in traffic on SCCP connections without data loss and without having to clear down existing connections using a feedback control mechanism so that demand and resource availability are balanced against each other.

Claims: A connection-oriented congestion controller (1) adapted for use in one of a plurality of interconnected signaling nodes of a common channel signaling network, comprising: connection setup means (8) for establishing a connection in response to a connection request when there is a grant indication that a connection request is allowed; a memory (11) for storing data representative of the established connections marked as blocked or unblocked; data receiving and sending means (9, 10) connected between user terminals (7) and one of the signaling nodes for receiving and sending data messages on the established connections, said data receiving and sending means being responsive to a blocking status indication for imposing flow control on said data messages and marking the established connections as blocked in said memory and responsive to an unblocking status indication for removing said flow control and marking the established connections as unblocked in said memory; and, control means (13) connected to said data receiving and sending means (9, 10) for generating a resource availability value representative of availability of the established connections, comparing the resource availability value with a start-of-blocking threshold, an end-of-blocking threshold, a start-of-unblocking threshold and an end-of-unblocking threshold, and producing said blocking status information when the resource availability values becomes lower than the start-of-blocking threshold until the resource availability value becomes higher than the end-of-blocking threshold, or said unblocking status indication when the resource availability value becomes higher than the start-of-unblocking threshold until the resource availability value becomes lower than the end-of-unblocking threshold, comparing said resource availability value with a new connection threshold if all of the established connections are marked unblocked in said memory, and producing said grant indication if the resource availability value is determined to be lower than said new connection threshold. A connection-oriented congestion controller as claimed in claim 1, wherein the start-of-blocking threshold (L5) is smaller than the end-of-blocking threshold (L4), the start-of-unblocking threshold (L2) is higher than the end-of-unblocking threshold (L3), and the end-of-unblocking threshold (L3) is higher than the end-of-blocking threshold (L4), and wherein said new connection threshold (L1) is higher than the start-of-unblocking threshold (L2). A method for providing flow control in a connection-oriented congestion controller (1) adapted for use in one of a plurality of interconnected signaling nodes of a common channel signaling network, comprising connection setup means (8) for establishing a connection in response to a connection request when there is a grant indication that a connection request is allowed, a memory (11) for storing data representative of the established connections marked as blocked or unblocked, and data receiving and sending means (9, 10) connected between user terminals (7) and one of the signaling nodes for receiving and sending data messages on the established connections, said method comprising the steps of: a) generating a resource availability value representative of availability of the established connections; b) comparing the resource availability value with a start-of-blocking threshold, and end-of-blocking threshold, a start-of-unblocking threshold and an end-of-unblocking threshold, and producing a blocking status indication when the resource availability value becomes lower than the start-of-blocking threshold until the resource availability value becomes higher than the end-of-blocking threshold, or an unblocking status indication when the resource availability value becomes higher than the start-of-unblocking threshold until the resource availability value becomes lower than the end-of-unblocking threshold; c) imposing flow control on said data messages and marking the established connections as blocked in said memory (11) in response to said blocking status indication; d) removing said flow control and marking the established connections as unblocked in said memory (11) in response to said unblocking status indication; e) comparing said resource availability value with a new connection threshold if all of the established connections are marked unblocked in said memory (11); and, f) producing said grant indication if the resource availability value is determined to be lower than said new connection threshold. A method as claimed in claim 3, wherein the start-of-blocking threshold (L5) is smaller than the end-of-blocking threshold (L4), the start-of-unblocking threshold (L2) is higher than the end-of-unblocking threshold (L3), and the end-of-unblocking threshold (L3) is higher than the end-of-blocking threshold (L4), and wherein said new connection threshold (L1) is higher than the start-of-unblocking threshold (L2).

Inventors: NOMURA SATOKO, TOPPER JEFFREY, NOMURA, SATOKO, TOPPER, JEFFREY, NOMURA, SATOKO, C/O NEC CORPORATION, TOPPER, JEFFREY, C/O NEC CORPORATION
Applicants: NIPPON ELECTRIC CO, NEC CORPORATION
Application year: 1994
Main classification: H04Q11
IPC codes: H04L12, H04L29, H04Q3