Abstract:
Methods, systems, and computer readable media for distributing Diameter network management information are disclosed. According to one method, a first Diameter node obtains Diameter network management subscription information. The first Diameter node obtains Diameter network management information. The first Diameter node determines, using the Diameter network management subscription information, whether at least one second Diameter node is subscribed to receive the obtained Diameter network management information. In response to determining that the at least one second Diameter node is subscribed to receive the obtained network management information, the first Diameter node sends the obtained Diameter network management information to the at least one second Diameter node.

Description:
PRIORITY CLAIM 
       [0001]    This application claims the benefit of U.S. Provisional Patent Application Ser. No. 61/371,418, filed Aug. 6, 2010, the disclosure of which is incorporated herein by reference in its entirety. 
     
    
     TECHNICAL FIELD 
       [0002]    The subject matter described herein relates to Diameter network management. More particularly, the subject matter described herein relates to methods, systems, and computer readable media for distributing Diameter network management information. 
       BACKGROUND 
       [0003]    Diameter nodes may rely on the domain name system (DNS) to obtain contact information for other Diameter nodes. However, DNS does not provide network management or status information regarding Diameter nodes. Rather, DNS simply returns Internet protocol (IP) addresses. As a result, Diameter nodes may use DNS contact information to contact Diameter nodes that are no longer available or congested, resulting in inefficient communications. Another problem associated with Diameter networks in general is there is no mechanism defined for sharing or maintaining Diameter network management information, such as availability, status, or reachability information, among Diameter nodes. 
         [0004]    Accordingly, in all of these difficulties, there exists a need for methods, systems, and computer readable media for distributing Diameter network management information. 
       SUMMARY 
       [0005]    Methods, systems, and computer readable media for distributing Diameter network management information are disclosed. According to one method, a first Diameter node obtains Diameter network management subscription information. The first Diameter node obtains Diameter network management information. The first Diameter node determines, using the Diameter network management subscription information, whether at least one second Diameter node is subscribed to receive the obtained Diameter network management information. In response to determining that the at least one second Diameter node is subscribed to receive the obtained network management information, the first Diameter node sends the obtained Diameter network management information to the at least one second Diameter node. 
         [0006]    The subject matter described herein can be implemented in software in combination with hardware and/or firmware. In one implementation, the subject matter described herein can be implemented in software executed by a processor. The subject matter described herein can be embodied in a non-transitory computer readable medium having stored thereon executable instructions that when executed by the processor of a computer control the computer to perform steps. Exemplary computer readable media suitable for implementing the subject matter described herein include chip memory devices, disk memory devices, programmable logic devices, and application specific integrated circuits. In addition, a computer readable medium that implements the subject matter described herein can be located on a single device or computing platform or may be distributed across multiple devices or computing platforms. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0007]    Preferred embodiments of the subject matter described herein will now be explained with reference to the accompanying drawings, of which: 
           [0008]      FIG. 1A  is a network diagram illustrating a Diameter network where a DNS server returns Diameter address information; 
           [0009]      FIG. 1B  is a network diagram illustrating a Diameter node learning of the unavailability of another Diameter node; 
           [0010]      FIG. 1C  is a network diagram illustrating the caching of Diameter network management information by a Diameter node according to an embodiment of the subject matter described herein; 
           [0011]      FIG. 2  is a network diagram illustrating the distribution of Diameter network management information among Diameter nodes according to an embodiment of the subject matter described herein; 
           [0012]      FIG. 3  is a network diagram illustrating the independent testing of a Diameter node for status information according to an embodiment of the subject matter described herein; 
           [0013]      FIG. 4  is a network diagram illustrating the results of a confirmation test by a Diameter node according to an embodiment of the subject matter described herein; 
           [0014]      FIG. 5A  is a network diagram illustrating a Diameter node that functions as a Diameter network management proxy with which other Diameter nodes subscribed to receive Diameter network management information according to an embodiment of the subject matter described herein; 
           [0015]      FIG. 5B  is a table illustrating exemplary Diameter network management subscription information that may be maintained by a Diameter node according to an embodiment of the subject matter described herein; 
           [0016]      FIG. 5C  is a table illustrating exemplary Diameter network management information that may be cached or maintained by a Diameter node according to an embodiment of the subject matter described herein; 
           [0017]      FIG. 5D  is a network diagram illustrating the distribution of Diameter network management information to subscribing Diameter nodes according to an embodiment of the subject matter described herein; 
           [0018]      FIG. 6  is a network diagram illustrating the distribution of Diameter network management information to statically subscribed Diameter nodes according to embodiment of the subject matter described herein; 
           [0019]      FIG. 7  is a flow chart illustrating an exemplary method for distributing Diameter network management information among Diameter nodes according to an embodiment of the subject matter described herein; and 
           [0020]      FIG. 8  is a block diagram illustrating an exemplary Diameter node configured to distribute Diameter network management information according to an embodiment of the subject matter described herein. 
       
    
    
     DETAILED DESCRIPTION 
       [0021]      FIG. 1A  illustrates a Diameter network where a Diameter agent obtains Diameter contact information from a DNS server. In  FIG. 1A , a Diameter node  100  queries a DNS server  102  for contact information for a URI that corresponds to a Diameter service. DNS server  102  responds with IP address information for Diameter node  104  and Diameter node  106 , indicating that Diameter node  104  is the preferred agent for providing the requested service. DNS server  102  does not maintain or convey status or availability information associated with either Diameter node  104  or  106 . That is, even though in the illustrated example Diameter node  104  is not reachable, DNS server  102  is not aware of this fact. 
         [0022]    Referring to  FIG. 1B , upon receiving the response from DNS server  102 , Diameter node  100  directs a Diameter query to Diameter node  104 . Diameter node  100  waits for the response from Diameter node  104 . Because Diameter node  104  is unreachable or unavailable due to a failure at Diameter node  104 , a timer set by Diameter node  100  may expire. Diameter node  100  may wait for the timer to expire before contacting Diameter node  106 . Other Diameter nodes, such as Diameter node  108 , may likewise attempt to contact failed Diameter node  104  instead of going directly to Diameter node  106  for a given service. 
         [0023]    As used herein, the term “Diameter node” refers to a physical computing platform that hosts one or more Diameter applications. For example, a Diameter node may host a Diameter proxy agent, a Diameter re-direct agent, a Diameter routing agent, such as a Diameter signaling router (DSR), a home subscriber server (HSS), a policy server, such as a policy and charging rules function (PCRF) and/or other type of Diameter agent without departing from the scope of the subject matter described herein. As used herein, the term “Diameter network management information” includes information that conveys the availability or state of Diameter level communications with a Diameter node. Diameter network management information may indicate that the Diameter node is unreachable due to network congestion, overloading of the Diameter application(s), unavailability of the Diameter application(s), etc. 
         [0024]    To reduce the difficulties associated with Diameter communications and increase the efficiency of Diameter communications, a Diameter node according to the subject matter described herein may cache Diameter network management information and distribute that information to other Diameter nodes that are statically or dynamically subscribed to receive the information. In  FIG. 1C , Diameter node  100  may cache Diameter network management information determined as a result of the timeout that occurred when Diameter node  100  failed to receive a response from Diameter node  104 . Diameter node  100  may also distribute the Diameter network management information to other Diameter nodes, such as Diameter node  108  using a subscription-based distribution model, which will be described in detail below. After learning the Diameter network management information regarding Diameter node  104 , Diameter node  100  may communicate with the available Diameter node  106  to obtain the requested service, rather than repeatedly attempting to contact unavailable node  104 , waiting for the timeout, and then attempting to contact Diameter node  106 . The selection of Diameter node  106  as the next node to contact for the service may be performed based on DNS preference information received from DNS server  102  or independently of the DNS preference information. 
         [0025]      FIG. 2  illustrates the distribution of Diameter network management information among Diameter nodes. In  FIG. 2 , Diameter node  100  sends a Diameter network management update message to Diameter node  108 . Diameter node  100  may store information indicating that Diameter node  108  has subscribed to receive Diameter network management information regarding Diameter node  104  or  106 . Upon receiving the Diameter network management information, Diameter node  108  may also cache the Diameter network management information and use that information to determine which of Diameter nodes  104  and  106  to contact when requesting the service that can be provided by either node. 
         [0026]      FIG. 3  illustrates an example where Diameter node  108  independently tests the status of Diameter node  104  after receiving the Diameter network management information from Diameter node  100 . Referring to  FIG. 3 , Diameter node  108  receives the Diameter network management update message from Diameter node  100 . In response to receiving the Diameter network management update message indicating that Diameter node  104  is not available, Diameter node  108  may initiate a test to determine whether the received Diameter network management information is accurate or valid for Diameter node  108 . In the illustrated example, Diameter node  108  sends a Diameter network management test message to Diameter node  104 . If the test indicates that Diameter node  104  is unavailable, either in response to receiving a negative acknowledgement message or no response to the Diameter network management test message, Diameter node  108  may update its local network management information database to reflect the unavailability of Diameter node  104 . If, however, the results of the test indicate that Diameter node  104  is reachable from Diameter node  108 , Diameter node  108  may refrain from updating its Diameter network management cache to indicate that Diameter node  104  is unreachable. 
         [0027]      FIG. 4  illustrates an example where the results of the confirmation test in  FIG. 3  indicate that Diameter node  104  is available. In  FIG. 4 , it is the network  400  between Diameter nodes  100  and  104  that causes Diameter node  104  to be unavailable to Diameter node  100 . However, network  402  between Diameter node  108  and Diameter node  104  does not have a failure, and Diameter node  104  is reachable to Diameter node  108 . The confirmation test that Diameter node  108  performs after receiving the Diameter network management information indicating that Diameter node  104  is unavailable indicates that Diameter node  104  is in fact available to Diameter node  108 . As a result, Diameter node  108  may ignore the Diameter network management update message received from Diameter node  100  and continue to send traffic to Diameter node  104 . 
         [0028]    As indicated above, in one embodiment of the subject matter described herein, Diameter nodes may send subscription messages to a Diameter node to receive network management information concerning other Diameter nodes.  FIG. 5A  illustrates such an embodiment. In  FIG. 5A , Diameter node  102  maintains a Diameter network management subscription (DNMS) database  502  and a Diameter network management (DNM) database  502 . Diameter network management subscription database  502  is configured to store information regarding subscribing entities, the entities to which they subscribe, and the types of network management events to which they subscribe. Diameter network management database  504  stores Diameter network management status information regarding other Diameter nodes. In functioning as a Diameter network management proxy, Diameter node  500  may periodically test the status of Diameter nodes to which other Diameter nodes have subscribed by checking the records in Diameter network management subscription database  502  and distribute the network management information to the subscribing nodes. 
         [0029]    In the illustrated example, Diameter node  100  sends a Diameter network management subscribe message to a Diameter node  500  that maintains databases  502  and  504 . The subscribe message indicates that Diameter node  100  desires to subscribe to the status of Diameter nodes  104  and  106 . In response to receiving the message, Diameter node  500  may store the subscription information in database  502  and may test the status of Diameter nodes  104  and  106 . Based on the results of the test, Diameter node  500  may update the Diameter network management information for Diameter nodes  104  and  106  in database  504  and may also communicate the status information to Diameter node  100 .  FIG. 5B  illustrates an example of information that may be stored in database  502 . In  FIG. 5B , the database includes information regarding each subscribing entity, each subscribed to entity, and the network management event type to which each entity is subscribed. Examples of event types to which entities may subscribe include node failure, application failure, network congestion, node congestion, application congestion, etc.  FIG. 5C  is a table illustrating exemplary data that may be maintained by database  504 . In  FIG. 5C , database  504  indicates that Diameter node  104  is unavailable and Diameter node  106  is available. 
         [0030]    In  FIG. 5D , using the information stored in database  502  and  504 , Diameter node  500  sends Diameter network management information to subscribing entities. In the illustrated example, Diameter nodes  100  and  108  are subscribed to receive network management information concerning Diameter node  104 . Accordingly, when Diameter node  500  obtains the Diameter network management information concerning Diameter node  104 , Diameter node  500  sends network management notify messages to Diameter nodes  100  and  108 . Diameter nodes  100  and  108  use this information to update their local Diameter network management status information caches and further use this information in subsequent communications with Diameter nodes  104  and  106 . Diameter nodes  100  and  108  may choose to test the affected Diameter node  104  prior to updating their local Diameter network information databases or caches. 
         [0031]      FIG. 6  illustrates an alternate embodiment of the subject matter described herein where Diameter node  500  is statically provisioned with subscription information for nodes that are subscribed to receive Diameter network management information. In the illustrated example, database  502  is statically provisioned to indicate that Diameter nodes  100  and  108  are subscribed to receive network and management information concerning Diameter node  104 . As a result, when Diameter node  100  obtains Diameter network management information regarding Diameter node  104 , Diameter node  500  will automatically send Diameter network management notify messages to Diameter nodes  100  and  108 . 
         [0032]      FIG. 7  is a flow chart illustrating exemplary steps for communicating Diameter network information among Diameter nodes according to an embodiment of the subject matter described herein. Referring to  FIG. 7 , in step  700 , a first Diameter node obtains Diameter network management subscription information. For example, referring to  FIG. 6 , Diameter node  500  may receive a message indicating that Diameter node  100  subscribes to receive Diameter network management information regarding Diameter nodes  104  and  106 . Alternatively, Diameter node  500  may be statically provisioned with the subscription information. Returning to  FIG. 7 , in step  702 , Diameter network management information is obtained. For example, referring to  FIG. 6 , Diameter node  500  may obtain Diameter network management information regarding Diameter node  104  or  106 , either through testing or from other Diameter communications independent from testing. 
         [0033]    Returning to  FIG. 7 , in step  704 , it is determined whether the Diameter network management subscription information requires communication of the obtained Diameter network management information to at least one second Diameter node. In  FIG. 6 , Diameter node  500  may access Diameter network management subscription database  502  to determine whether any Diameter nodes are subscribed to receive the indicated network management information. 
         [0034]    Returning to  FIG. 7 , in step  706 , if communication of Diameter network management information to at least one second Diameter node is determined to be required, control proceeds to step  708  where the obtained Diameter network management information is communicated to the at least one second Diameter node. Returning to  FIG. 6 , Diameter node  500  communicates the obtained Diameter network management information to Diameter node  100 . The Diameter network management subscription information is checked to determine whether any additional nodes are subscribed to receive the obtained Diameter network management information, and the Diameter network management information is communicated to the remaining subscribing nodes. Returning to  FIG. 6 , Diameter node  500  may check database  502  and determine that Diameter node  108  is also subscribed to receive the Diameter network management information and may communicate the Diameter network management information to Diameter node  108 . 
         [0035]    Diameter node  500  may periodically poll nodes to which other nodes are subscribed in database  502  and communicate any received network management information to the subscribing nodes. In  FIG. 7 , after newly obtained network management information is communicated or not communicated to other Diameter nodes, control returns to step  700  where new Diameter subscription information is obtained and the process is repeated. Steps  702 - 708  may be repeated periodically, independently of whether any new network management subscription information is received. 
         [0036]      FIG. 8  is a block diagram illustrating an exemplary internal architecture for a Diameter node that maintains Diameter network management information and Diameter network management subscription information according to an embodiment of the subject matter described herein. Referring to  FIG. 8 , Diameter node  500  includes a plurality of message processors  800 A,  800 B,  800 C, and  800 D. Each Diameter message processor  800 A- 800 D includes or has access to local copies of Diameter network management subscription database  502 , Diameter network management database  504 , a Diameter network management subscription management module (DNMSMM)  506 , and a Diameter network management module (DNMM)  508 . Diameter network management subscription management module  506  receives Diameter network management subscription requests, updates the Diameter network management subscription information in database  502 , and determines whether obtained Diameter network management information should be communicated to other Diameter nodes using the subscription information stored in database  502 . Diameter network management module  506  obtains Diameter network management information and stores the information in database  504 . For example, Diameter network management module  506  may test the status of Diameter level communications with other Diameter nodes either periodically or in response to receiving Diameter network management subscription requests, as described above. 
         [0037]    Accordingly, when a Diameter message processor receives Diameter network management information, that information may be stored locally in database  504  and communicated to other Diameter message processors. In addition, when a Diameter message processor receives a Diameter network management subscription request, that information may be stored in its local Diameter network management subscription database  502  and communicated to other Diameter message processors for storage in their copies of database  502 . When Diameter network management information is received by a Diameter message processor, the Diameter message processor that first receives the network management information may be the Diameter network management processor that provides the Diameter network management information to any subscribing Diameter nodes. 
         [0038]    It will be understood that various details of the presently disclosed subject matter may be changed without departing from the scope of the presently disclosed subject matter. Furthermore, the foregoing description is for the purpose of illustration only, and not for the purpose of limitation.