Abstract:
A method and system include collecting information in a network device, determining in the network device when to send a subset of the collected information to a collection system, and determining in the network device a subset of the collected information to be transmitted at a given time.

Description:
FIELD OF THE INVENTION  
         [0001]    This invention relates to network counter retrieval.  
         BACKGROUND  
         [0002]    Typically, in network systems, there are many ways in which network measurements such as usage, delay, variation of delay, packet loss, and the like, can be carried out. In particular, packet-oriented telecommunications network devices typically maintain statistical counters regarding many aspects of network operation. For instance, these statistics are useful for billing, network troubleshooting, network engineering, and trend analysis. Generally, statistics are retrieved from a device to yield relevant data. The retrieval of information typically occurs across the network using a variety of communications protocols, e.g., Simple Network Management Protocol (SNMP) running over the Internet Protocol (IP).  
           [0003]    In some instances, statistics need to be retrieved only under certain circumstances (e.g., statistics used for network troubleshooting). Such statistical information only needs to be retrieved and examined when there are network problems. Other types of statistics need to be retrieved on a regular and continuing basis. For example, statistics pertaining to billing may need to be retrieved frequently and periodically.  
         SUMMARY  
         [0004]    According to one aspect of the invention, a method and system include collecting information in a network device, determining in the network device when to send a subset of the collected information to a collection system, and determining in the network device which subset of the collected information to send at a given time.  
           [0005]    One or more of the following features may also be included. Information is collected according to a configured periodicity. Information consists of statistical values stored in counters.  
           [0006]    As another feature, the subset is a value of a counter and can also represent values of multiple counters.  
           [0007]    In certain embodiments, determining when to send a subset is user-configurable. In certain embodiments, determining when to send it is done autonomously by a network device. In either case, the determination can include determining a low peak period of a network operation and/or of the network device&#39;s own operation, and sending the subset during the low peak period.  
           [0008]    As yet another feature, the method includes associating each unit of the collected information with an identifier. The method also includes the option for using locally significant tags as identifiers for greater efficiency. The method further features associating the locally significant value of the tag with a globally significant identifier value, and expressing that association through a communications channel of a computer network system.  
           [0009]    As another feature, the information of the statistical value that is unchanged is not transmitted from the network device to the collection system.  
           [0010]    The method further includes sending acknowledgements from the collection system to the network device with respect to receipt of the collected information by the collection system. In addition, the collected information is reported at least once within a set time interval.  
           [0011]    According to another aspect of the invention, a system includes a collection system coupled to a network device through a communications channel of a computer network system, and a network device configured to determine when to send a subset of the collected information to a collection system and to determine in the network device which subset of the collected information to send at a given time.  
           [0012]    One or more of the following features may also be included.  
           [0013]    The network device is configured to determine a periodicity for sending all collected information.  
           [0014]    The collected information consists of statistical values stored in counters. The subset is a value of a counter or the values of multiple counters.  
           [0015]    In certain embodiments, the network device being configurable as to when to send a subset of the collected information, and in certain embodiments the network device determining autonomously when to send a subset of the collected information.  
           [0016]    As another feature, the network device determination as to when to send includes the network device determining a low peak period of a network operation, and/or a low peak period of the network device&#39;s own operation, and sending the subset during the low peak period.  
           [0017]    Embodiments may have any of the following advantages.  
           [0018]    The collection system receives the needed information without having to poll the network devices, which increases the scalability for periodically retrieving counters when counter instances become large, number of network devices becomes large, or both. It is possible to obtain periodic collection of large numbers of data elements from a large number of network devices, while maintaining a high level of real-time responsiveness characteristic of polled solutions without the drawbacks of a polled approach. Thus, the present methods and systems retain the real-time responsiveness of a polled approach while removing the scalability concerns of polling data from each individual network device.  
           [0019]    The excessive network bandwidth and network device capacity consumed by polling individual counters is eliminated. Such drain on network resources is avoided because the need for requesting, locating and transmitting specific counter instances on demand is eliminated.  
           [0020]    Efficiency is significantly enhanced by providing data aggregation (by the subsets of the collected information sent) and aggregated acknowledgements, as well as by allowing suppression of counters having unchanged values. Furthermore the network device is able to transfer collected information in a sequence convenient to it (such as the sequence in which the information is stored in an internal array) and to schedule the transmission of data at points in time which are convenient and appropriate to the network device. 
       
    
    
     DESCRIPTION OF DRAWINGS  
       [0021]    [0021]FIG. 1 is a block diagram of a network.  
         [0022]    [0022]FIG. 2 is a flow diagram of a counter retrieval system.  
         [0023]    [0023]FIG. 3 is a diagram of an array. 
     
    
     DETAILED DESCRIPTION  
       [0024]    Referring to FIG. 1, a network counter system  10  includes a group of globally connected computer systems within a computer network  20  such as the Internet, three network devices (e.g., Internet Protocol (IP) service switches  30   a - 30   c ) connected through the network  20  to a collection system  40  such as a billing statistics collection system using communications channels  25   a - 25   d.    
         [0025]    The computer network  20  is a TCP/IP network that carries voice, data, or both. The computer network  20  includes a number of nodes (not shown) interconnected by communications paths and communications channels. The computer network  20  can interconnect with additional networks and include subnetworks. In particular, the IP service switches  30   a - 30   c  are linked to the computer network  20  via communications channels  25   a - 25   c , respectively. The collection system  40  is linked to the computer network  20  via the communications channel  25   d.    
         [0026]    In this example, the IP service switches  30   a - 30   c  are used to provide access to the computer network  20 , as well as associated Quality of Service (QoS) and security services, for various subscribers (not shown). Each of the IP service switches  30   a - 30   c  includes a general central processing unit (CPU) system and other hardware implementing various networking protocol functions, for example, those of the Transport Control Protocol/Internet Protocol (TCP/IP) suite, with associated management and control features. Each of the IP service switches  30   a - 30   c  includes statistics agent modules  31   a - 31   c . The statistics agent modules  31   a - 31   c  are implemented to report over the computer network  20  statistical information about the IP service switches  30   a - 30   c  through their respective communications channels  25   a - 25   c . The statistics agent modules  31   a - 31   c  are implemented in hardware, such as with an application-specific integrated circuit (ASIC), or in software, or in a combination of hardware and software.  
         [0027]    For example, each of the IP service switches  30   a - 30   c  provides billable IP-based services to a network operator&#39;s subscribers. The IP service switches  30   a - 30   c  can provide traffic statistics kept on a per-subscriber basis within the IP service switches  30   a - 30   c  in support of usage based billing. The IP service switches  30   a - 30   c  can support many tens of thousands of subscribers and manage scores of data items (e.g. service usage statistical counters) for each subscriber. The IP service switches  30   a - 30   c  are real-time network devices whose primary functions are the processing of data packets, that processing including forwarding and application of IP services to the packets. Although there are other tasks to be accomplished in the IP service switches  30   a - 30   c  in support of data packet processing, those tasks have various levels of urgency. The reporting of statistics and related tasks can have lower urgency and therefore lower processing priority relative to most other software or hardware functions.  
         [0028]    Referring to FIG. 2, statistical data  28  is collected across the computer network  20  of FIG. 1 from the IP service switch  30 . The collection system  40  collects statistical data  28  from an IP service switch  30  in a reporting process  50  as time line  22  progresses from a time “0” to a time “t”. The collection system  40  processes the statistical data  28  for such uses as subscriber billing.  
         [0029]    In the reporting process  50 , the IP service switch  30  periodically sends statistical data identified by tag bindings  24 , in any order the IP service switch  30  deems appropriate, to the collection system  40 . In particular, the IP service switch  30  forwards statistical data  28  to the collection system  40  at its convenience during periods of time where the computer network  20  has low network usage, i.e., low levels of data traffic or the IP service switch  30  has low CPU usage. The IP service switch  30  also reports statistical data  28  in an order efficient for the IP service switch  30 , for example, in the order that the data items have been stored in an internal memory or buffer of the IP service switch  30 , thereby avoiding CPU intensive lookups for specific statistical data.  
         [0030]    In operation, at time =0, the IP service switch  30  transmits tag bindings  24   a - 24   c  to the collection system  40 . Other tag bindings  24   d  may be sent later as they are defined in the IP service switch  30 . The tag bindings  24  announce associations between locally significant tags, and globally significant identifiers of specific data items such as a statistical counter. More specifically, each tag binding, such as tag binding  24   a , associates a tag value (e.g. Tag 1 ) with a globally significant identifier value (e.g., “Identifier 1”). The identifier value can be of any data type that identifies the collected data item of interest. For example, for billing purposes, a company name such as “Acme Corporation,” can serve as the identifying name of an entity for which the billing data is being reported to the collection system  40 . Therefore, identifier values (e.g., “Identifier 1, Identifier 2, Identifier 3, and Identifier 4”), represent globally significant identifiers  32   a - 32   d . Such globally significant identifiers  32   a  - 32   d  are recognized by the network counter system  10  and can be processed by the collection system  40 , the IP service switch  30 , and any other network node or switch that make up the network counter system  10 . Moreover, the locally significant tags  24   a - 24   d  (Tag 1 , Tag 2 , Tag 3 , and Tag 4 ) are bound to and associated with the identifier values  32   a - 32   d.  The bound tags  24   a - 24   d  are valid for a period of time, and various components of the network counter system  10  can use the bound tags  24   a - 24   d  as convenient aliases for the identifiers  32   a - 32   d.    
         [0031]    Using the same communications channels  25   a - 25   d  used to transmit tag bindings  24  as described above, at a time=t, where t is greater than  0 , the IP service switch  30  sends statistical data  28  logically associated with the previously transmitted tag bindings  24 . In other words, rather than sending statistical data  28  with the globally significant identifiers  32   a - 32   d , the IP service switch  30  sends statistical data  28  with locally significant identifiers  34   a - 34   d . The locally significant identifiers  34   a - 34   d , with values Tag 1 , Tag 2 , Tag 3 , and Tag 4 , are used by the collection system  40  to identify the accompanying counter or statistical data  28 .  
         [0032]    For example, when the IP service switch  30  sends statistical data  28   a , the IP service switch  30  is transmitting locally significant identifiers  34   a - 34   b  with values Tag 1  and Tag 2 , respectively. The collection system  40 , in turn, upon receiving the locally significant identifiers  34   a - 34   b , determines which globally significant identifiers  32   a - 32   b  correspond to the data items (counter values) sent in statistical data  28   a . That is, by receiving only the locally significant identifiers Tag 1  and Tag 2 , the collection system  40  is able to computationally resolve that it is the statistical counters for “Identifier 1” and “Identifier 2” that the collection system  40  has received, because the tag bindings  24   a - 24   b  have already been received by the collection system  40  earlier in the reporting process  50 .  
         [0033]    The logical association between the locally significant identifiers  34   a - 34   d  and the globally significant identifiers  32   a - 32   d  is made available to the collection system  40 . This may be done synchronously within the same communications channel  25  that the statistical data  28  are reported through, thus allowing temporal reuse of the locally significant tags  34   a - 34   d  without introducing ambiguities as to their current association with globally significant identifiers  32   a - 32   d.    
         [0034]    Rather than tagging the statistical data  28  with the globally significant identifiers  32   a - 32   b , locally significant identifiers are used to identify the statistical data  28  as they are sent to the collection system  40 . This reduces bandwidth consumed at the computer network  20  through the communications channel  25 , since the locally significant identifiers are more compact than the globally meaningful identifiers. Moreover, locally significant identifiers that correspond to array indices can be used, avoiding complex lookups.  
         [0035]    Referring to FIG. 3 the IP service switch  30  stores the statistical counters in a data structure such as an array  70 . Each row  72  of the array  70  contains a counter value  74  for a particular subscriber, for example. FIG. 3 illustrates one statistical counter  74  kept per subscriber, although more are present. The array  70  also stores the subscriber name  76  corresponding to each row  72  of the array  70 , which in this example is the globally significant identifier  32 . Since the IP service switch  30  assigns the values of the locally significant tags  34 , the IP service switch  30  arranges the assignment so that an array index  78  corresponding to a particular subscriber is assigned as the local tag  34  for the statistical data of the subscriber. Since the network counter system  10  allows the IP service switch  30  to transmit collected data subsets in any order, the IP service switch  30  sends the counter values  74  in the order they are stored in the array  70 , tagging each counter value  74  with the associated array index  78 .  
         [0036]    Referring back to FIG. 2, the tag bindings  24  are sent before statistical data  28  using those particular bindings are sent. Thus, before the data identified by a new globally significant identifier code  32   d , namely “Identifier 4,” is sent to the collection system  40 , the new identifier code is first bound to a local tag  24   d  (e.g., Tag 4 ). Thereafter, statistical data  28   b  tagged with the locally significant tag  34   d  is sent to the collection system  40 . Similarly, statistical data  28   c - 28   e  tagged with the locally significant tags  34   a - c  may be sent to the collection system  40  because the tag bindings  24   a - 24   c  have been sent previously to the collection system  40 .  
         [0037]    In the reporting process  50 , the IP service switch  30  transmits statistical data  28  to the collection system  40  in sequence and at specific points in time which are efficient and convenient for the IP service switch  30  (e.g., idle periods for the IP service switch  30  or low peak usage periods for the network  20  or the communication channels  25 ). In particular, the IP service switch  30  reports statistical data  28  during reporting intervals  26   a - 26   b . The IP service switch  30  reports every statistical data  28  at least once per reporting interval  26 . Thus, during a reporting interval  26   a , the IP service switch  30  reports statistical data  28  for locally significant identifiers  34   a - 34   d , and during a reporting interval  26   b , the IP service switch  30  again reports statistical data  28  using the same locally significant identifiers  34   a - 34   d  used in the previous reporting interval  26   a . For example, at least once per hour, or once during any predetermined period of time, all statistical data  28  can be reported to the collection system  40  without polling the IP service switch  30 .  
         [0038]    In certain situations, the statistical data  28  may not have advanced or incremented, that is, the statistical data  28  has not been changed since the last reporting. In these cases, the IP service switch  30  refrains from transmitting the statistical data  28 . The collection system  40  can assume the incremental counts are zero unless the IP service switch  30  reports otherwise.  
         [0039]    In the example described above in conjunction with FIGS. 1, 2, and  3 , the reporting process  50  between the IP service switch  30  and the collection system  40  may be preceded by an associated signaling phase where the IP service switch  30  and the collection system  40  authenticate each other, may establish a secure channel of communications, may communicate agreements on general parameters of any further and subsequent transfers of data, and the like.  
         [0040]    The IP service switch  30  may also be used for collecting other types of statistical counters, such as network troubleshooting counters. The reporting process  50  may be applied to the collection of data other than statistical counters, such as event logging records. Moreover, the collection system  40  may transmit acknowledgements (e.g., ACK packets) to the IP service switches  30   a - 30   c  to support a reliable network delivery system.  
         [0041]    Other embodiments are within the scope of the following claims.