The present invention relates to packet communication systems, and more particularly, to method and apparatus for congestion management in a distributed call-processor communication system.
Communication networks are used to transfer information, such as data, voice, text or video information, among communication devices, such as packet telephones, computer terminals, multimedia workstations, and videophones, connected to the networks. A network typically comprises nodes connected to each other, and to communication devices, by various links. Transmitted information may be of any form, but is often formatted into packets or cells.
Packet-switching network architectures, such as networks using Internet Protocol (IP) or asynchronous transfer mode (ATM) protocols, are widely used. In a packet-switched network, data transmissions are typically divided into blocks of data, called packets, for transmission through the network. For a packet to get to its proper destination, the packet must traverse through one or more network switches, routers or intermediate systems. Typically, a packet includes a header, containing source and destination address information, as well as a payload (the actual application data).
When a call is initiated in an Internet Protocol network environment, a call processor performs the required tasks to setup the call and allocate the necessary resources. In such an environment, a congestion management policy is required to ensure that sufficient network resources are available in the network to handle the signaling and control of the call. If the call processor is in an “overload” condition, where the volume of signaling traffic exceeds the capacity of the call processor, the call processor should exercise overload control. If overload is not properly controlled, system throughput can be reduced, and even cause the network to cease operation. In order to effectively control the load, many systems drop the incoming call requests in order to preserve the quality of service for the ongoing calls. However, in a distributed environment, a better policy is to identify an alternate processor that can handle the new call. If such an alternate processor cannot be found, then the new call is dropped.
Currently, many communication systems rely on a distributed call-processing architecture for reliability and scalability reasons. Internet Protocol-based private branch exchange (IP-PBX) switches, for example, distribute the call processing functionality among many servers. Thus, while the initial call processor that receives the call admission request may be in an overload condition, another call processor in the distributed network environment may be available to process the call.
A number of congestion management techniques have been proposed or suggested that determine the availability of an alternate call processor. These congestion management techniques generally rely on periodic polling of the other call processors in the distributed network Typically, each call processor communicates with every other call processor in the distributed network environment to collect statistics for each call processor. The collected statistics help determine the availability of each call processor to perform a specific task in the event of an overload condition. Thus, such polling-based congestion management techniques increase network overhead and potentially contribute to the overload conditions they are attempting to mitigate.
As apparent from the above-described deficiencies with conventional systems for overload control, a need exists for an improved method and apparatus for overload control in a distributed network environment that admits as many calls as possible. A further need exists for an overload control method and apparatus that alleviate congestion and control overload in a distributed call-processing system with minimal overhead and a low processing requirement load by the call processors.
Generally, a method and apparatus are disclosed for alleviating congestion and overload in an Internet Protocol network having a distributed call-processing system. The illustrative Internet Protocol network includes a plurality of end terminals (ETs) and distributed call processors (CPs). When an end terminal wants to place a call, the end terminal sends a call set up message to a call processor. According to an aspect of the invention, the call processor will determine whether to process the request or to forward the request to another call processor. Generally, the call processor will declare an overload condition if sufficient resources are not available to process a given call.
According to an aspect of the invention, if a call processor determines that it is too congested to process a call, the call processor enters an overload condition, selects an alternate call processor and forwards the request to the alternate call processor. A given call processor implicitly announces its overload condition to another call processor by virtue of the forwarded call setup request message. According to another feature of the invention, each call processor maintains an ordered list of call processors that indicates whether or not each call processor is overloaded in addition to providing a preferred list of call processors to handle the overflow traffic. In this manner, an alternate call processor can be selected using the ordered list of call processors. The present invention will result in distributing the forwarded call setup request messages, carrying the congestion indication among all of the available alternate call processors. In one implementation, a last message sent (LMS) flag is utilized that indicates the last call processor to receive a forwarded congestion message. Generally, a call processor in an overload condition will not forward another congestion message to a call processor having its last message sent flag set unless there are no other call processors available.
According to another aspect of the invention, the congested call processor attaches a call processor identifier to the forwarded congestion message, indicating to the recipient call processor that the congested call processor is in an overload condition. Thus, a forwarded congestion message will cause the recipient call processor to set a flag, for example, in the ordered list of call processors, indicating that the congested call processor is congested. In one embodiment, each congestion flag has an associated timer that causes the flag to expire (or reset) after a predefined time interval that permits the congested call processor to recover from the overload condition.
A more complete understanding of the present invention, as well as further features and advantages of the present invention, will be obtained by reference to the following detailed description and drawings.
The end terminals 110 may be embodied as any communication device in a packet network, including Internet Protocol telephones, workstations, packet telephone adapter and a facsimile machine. The call processors 120 may be embodied using the call processor feature of the IP Exchangecom™ product, commercially available from Lucent Technologies, Inc., of Murray Hill, N.J., as modified herein to provide the features and functions of the present invention.
Typically, in an Internet Protocol network environment, each end terminal 110 is associated initially with a specific primary call processor 120. For example, as shown in
According to the present invention, if the call processor 120 determines that it is too congested to process the call, the call processor 120 enters an overload condition, selects an alternate call processor 120 and forwards the request to the alternate call processor 120. A given call processor 120 implicitly announces its overload condition to another call processor 120 by virtue of the forwarded congestion message. According to one feature of the present invention, each call processor 120 maintains an ordered list of call processors 120 that indicates whether or not each call processor 120 is overloaded. In this manner, an alternate call processor 120 can be selected using the ordered list of call processors 120.
In addition, the present invention will result in distributing the forwarded congestion messages among all of the available alternate call processors 120 if one of the processors on the ordered list are also congested. Thus, in one implementation, the present invention utilizes a last message sent flag indicating the last call processor 120 to receive a forwarded congestion message. Generally, a call processor 120 in an overload condition will not forward another congestion message to a call processor 120 having its last message sent flag set unless there are no other call processors 120 available.
According to another feature of the present invention, the congested call processor 120 attaches a call processor identifier to the forwarded congestion message, indicating to the recipient call processor that the congested call processor 120 is in an overload condition. Thus, a forwarded congestion message will cause the recipient call processor 120 to set a flag, for example, in the ordered list of call processors 120, indicating that the congested call processor 120 is congested. In one embodiment, each congestion flag has an associated timer that causes the flag to expire (or reset) after a predefined time interval that permits the congested to recover from the overload condition.
The data storage device 220 is operable to store one or more instructions, discussed further below in conjunction with
In addition, the data storage device 220 includes an outgoing congestion evaluation process 400 and an incoming congestion evaluation process 500, discussed further below in conjunction with
In one implementation, the overload control analysis table 300 also maintains a total congestion indicator (TCI) bit. The total congestion indicator bit is the outcome of the AND operation of all of the entries in the congestion indicator field 445. The total congestion indicator bit indicates whether there is total congestion. If the total congestion indicator bit is set to one, then all of the alternate call processors 120 are congested, so the current call processor 120 does not go through the overload control analysis table 300 unnecessarily.
As shown in
If, however, it is determined during step 415 that the call processor 120 does not have sufficient resources to process the call, then a test is performed during step 430 to determine if the total congestion indicator flag is set. If it is determined during step 430 that the total congestion indicator flag is set, then there are no alternate call processors 120 available and program control terminates during step 425.
If, however, it is determined during step 430 that the total congestion indicator flag is not set, then the outgoing congestion evaluation process 400 proceeds to identify an alternate call processor 120 in accordance with the present invention. Thus, the overload control analysis table 300 is utilized during step 440 to identify the next call processor 120 in the ordered list that is not overloaded and did not receive the last forwarded congestion message from the current call processor 120 (CI and LMS=0).
A test is then performed during step 450 to determine if an alternate call processor 120 was identified during the previous step. If it is determined during step 450 that an alternate call processor 120 was not identified during the previous step, then the ordered list is reevaluated during step 460 without regard to the last message sent flag. Program control then proceeds to step 450 and continues in the manner described above.
If, however, it is determined during step 450 that an alternate call processor 120 was identified during the previous step, then a call set up message is forwarded to the identified alternate call processor 120 during step 470, and the last message sent flag in the overload control analysis table 300 is set to one for the selected alternate call processor 120. In addition, all of the remaining last message sent bits are set to 0 during step 470. Program control then terminates during step 480.
As shown in
Thereafter, the incoming congestion evaluation process performs a test during step 530 to determine if the receiving call processor 120 itself has sufficient resources to process the received call set up message. If it is determined during step 530 that the receiving call processor 120 itself has sufficient resources to process the received call set up message, then the call is processed in a conventional manner during step 540 before program control terminates during step 560.
If, however, it is determined during step 530 that the receiving call processor 120 does not have sufficient resources to process the received call set up message, then the incoming congestion evaluation process executes the outgoing congestion evaluation process 400 during step 550 to identify a further alternate call processor 120, before program control terminates during step 560.
It is to be understood that the embodiments and variations shown and described herein are merely illustrative of the principles of this invention and that various modifications may be implemented by those skilled in the art without departing from the scope and spirit of the invention.
| Number | Name | Date | Kind |
|---|---|---|---|
| 1859 | Asthana et al. | Nov 1840 | A |
| 4345116 | Ash et al. | Aug 1982 | A |
| 6052373 | Lau | Apr 2000 | A |
| 6104338 | Krasner | Aug 2000 | A |
| 6215765 | McAllister et al. | Apr 2001 | B1 |
| 6396808 | Kunimoto et al. | May 2002 | B1 |