System and method for estimating top contributors

Abstract: A system (104,204) and method for estimating top contributing stations (102,202) of a local area network (101,201). A traffic analyzer (104,204) of the present invention determines the top N stations producing and receiving traffic on a local area network. The traffic analyzer (104,204) performs this technique with limited storage space (501). To determine the top contributors (102,202) the present invention utilizes a method of matching, sorting, creating, and purging records in storage in relation to captured frames (303) received from stations (102,202) on the LAN (101,201).

Description: The present invention relates generally to a system and method for estimating top contributors of a network. More particularly, the present invention relates to a system and method for estimating top contributing stations producing traffic on a network over a finite period of time. A local area network (LAN) is a data communication system with more than one independent device and the ability for any one device to communicate with any other device or point in the system. One key interest in LANs is the ability to manage and control traffic communication between stations. In order to avoid "traffic jams" or network "pollution" and to increase throughput and response time of a network, it is necessary to identify which stations are contributing the most data to the network. For example, during a "broadcast storm" (a state in which there are a very large number of broadcast frames being sent, and consequently the network is effectively shut down) it is important to identify the top producers of broadcast traffic. Once this information is available, appropriate adjustments may be implemented to correct the condition. In addition, identifying the top producers of traffic which do not serve any useful purpose or consume a large percentage of a network's resources is critical information that a network manager needs to know in order to design an efficient network system, which operates at a lower cost. EP-A-0,265,106 discloses a display for a protocol analyzer used to monitor traffic on a packet-switched network which allows the user to see, at a glance, a complete and accurate overview of communications between more than thirty-one nodes on a packetswitched network, over a user selectable range of measurement-time intervals. The display has two modes, one showing the source versus the destination nodes of the network as a 32-X-32 two-dimensional X-Y grid matrix, the second mode showing the node connections only: the display is simply a 32-X-32 two-dimensional X-Y grid having thirty-two nodes ordinally indicated on each axis without direction, such as source or destination, indicated. Another method of identifying the top contributors to a network involves maintaining a table of entries for each station contributing data to the network. As each station sends data, the source address of the station is recorded in a table. The table is updated each time a station sends data. At the end of a particular time interval, the table is sorted to determine the top contributing entries. However, this technique is impractical. Often the amount of possible stations is very large and storage space is limited. Frequently, the amount of stations contributing to the network extends beyond the capacity of the maximum number of entries the memory device can store. As a result, most techniques ignore any new stations contributing to a network after the number of entries exceeds the capacity of the memory device. This leads to inaccurate results. Additionally, the large table sizes employed for this technique requires increased time to process and sort such information. According to an aspect of the present invention, there is provided a method of estimating the top N stations producing traffic on a communications network as specified in claim 1. According to another aspect of the present invention, there is provided a system for determining the top contributions of traffic on a network as specified in claim 4. The present invention can accurately estimate the top contributors to a LAN utilizing a fixed amount of memory. According to a preferred embodiment, a traffic analyzer monitors the LAN. The traffic analyzer captures at least one frame transmitted on the LAN and forwards the frames to a traffic analyzer block. The traffic analyzer block has a table of records consisting of a location in use field, a station address field and a traffic count field. The traffic analyzer block increments the traffic field count of existing records having a station address field which matches a source address of the frame. The table of records are then sorted in ascending order according to the traffic field count value of each record. Once the amount of records is exceeded by the number of stations being monitored, the traffic analyzer block removes records from the table of records possessing a low traffic count field by a predetermined factor. Subsequently, the traffic analyzer re-executes the aforementioned steps. A feature of the present invention is the ability to accurately estimate the top contributing stations of a LAN utilizing a fixed amount of memory, which is significantly less than what present devices require. A further feature of the present invention is that it can be cheaper to manufacture than present protocol analyzers. The present invention will be described with reference to the accompanying drawings, wherein: Figure 1 illustrates one example of an environment in which the present invention operates. Figure 2 illustrates a second example of an environment in which the present invention operates. Figure 3 illustrates an example of a frame 303. Figure 4 illustrates a high level block diagram of a protocol analyzer or a traffic analyzer. Figure 5 illustrates an example of a table 501 of records. Figure 6 illustrates a flow chart according to the present invention. Figure 7 illustrates a detailed flow chart describing step 616 of Figure 6. Figure 8 illustrates a detailed flow chart describing step 712 of Figure 7. In the drawings, like reference numbers indicate identical or functionally similar elements. Additionally, the left-most digit of a reference number identifies the drawing in which the reference number first appears. The present invention is directed to a system and method for estimating top contributors of a communications network. Figure 1 illustrates one example of an environment in which the present invention operates. In particular, Figure 1 is a block diagram of an 802.5 ring structure local area network (LAN) 101 according to the Institute of Electrical and Electronic Engineers (IEEE). The 802.5 ring structure LAN 101 includes stations 102 and a traffic analyzer 104 to be described. Figure 2 illustrates a second example of an environment in which the present invention operates. In particular, Figure 2 is a block diagram of an 802.3 bus structure LAN 201 according to the IEEE. The 802.3 bus structure LAN 201 includes stations 202 and a traffic analyzer 204 to be described. Operations of Figures 1 and 2 are essentially identical. For discussion purposes, the elements of Figure 2 shall be referred to herein. In Figure 2, stations 202A through 202C (where C represents any number integer) exchange information via the network bus 206. Information is transmitted in the form of a frame. A frame is a group of bits that make up a packet of data for transmission by stations 202 or other devices. Figure 3 illustrates a typical frame 303 which includes a destination address 305, a source address 307, and data 309. Each station sending traffic on the network bus 206 inserts its address into the source address field of the frame 303. Each station 202 on the network bus 206 monitors each frame 303. When a station 202 on the network bus 206 recognizes a frame 303 with a destination address 305 which matches the station's own address, the frame 303 is received by the station 202. Figure 4 illustrates a high level block diagram of a traffic analyzer. The term "traffic analyzer" and "protocol analyzer" may be used interchangeably. For discussion purposes the term traffic analyzer is used. As illustrated in Figure 4, the traffic analyzer 204 of the present invention includes a network interface 402, frame filtering 404, discard 406, a frame capture buffer 408, a protocol or traffic analyzer block 410, and an interface 412. The structure of these elements are well known to those skilled in the art. The operation of the traffic analyzer 204 is generally illustrated in the flow chart shown in Figures 6, 7 and 8. Referring to Figure 6, in step 602 the network interface 402 captures the frames 303 from the network bus 206. The network interface 402 captures all frames 303 on the network bus 206, regardless of addressing information or error status of the frames 303. The network interface 402 is a combination of hardware and firmware for capturing frames 303. Coupled to the network interface 402 is the frame filter 404, which analyzes frames 303 and eliminates undesired data via a discard 406. For example on an IEEE 802.5 network 101, a "token" (continuously repeating data that appears on the network bus 206) may be filtered and discarded via the discard 406A. In step 604, the frames 303 that pass through the frame filter 404 are received by the frame capture buffer 408. The frame capture buffer 408 stores the frames 303 temporally for transfer to the traffic analysis block 410. The traffic analysis block 410 removes each frame 303 received by the frame capture buffer 408. Once a frame 303 is received by the traffic analysis block 410, the frame 303 is then recorded in a table of memory (to be described) within the traffic analyzer block 410. The frame 303 is then discarded via a discard 406B. Figure 5 illustrates an example of such a table 501. Each line of the table 501 represents a record. Each record maintains the following fields (columns): location in use field 502, station address field 504, and traffic count field 506. The location in use field 502 is a "boolean" field. In other words, the location in use field 502 either takes a value of TRUE or FALSE. The location in use field 502 is marked FALSE if a record is not being used and TRUE if a record is being used. Initially, all records in Table 501 are marked FALSE to indicate that the records are not in use. The size of Table 501 is fixed regardless of the number of stations 202. The size of table 501 ranges from 0 to [i - 1], where [i] is the size of the table measured by the maximum amount of table entries. In other words, for a table of size [i], where i = 100, there are 100 entries labeled from table[0] to, table[99]. Now, referring back to Figure 6. In step 606, the traffic analyzer block 410 determines the source address 307 of the frame 303 identifying the station 202, which sent the frame 303 onto the network bus 206. In step 608, the traffic analyzer block 410 attempts to match the source address 307 or the frame 303 with a record with a station address 504 field identical to the source address 307. This is performed by iterating through the table 501 and looking for the condition: (table[i].inUse = TRUE) AND (table[i].address = frame. source address) In step 610 and in step 616, if no record is found that matches the source address 307 of the frame 303 then a failure indication is returned. A procedure of obtaining a new record is performed, which is discussed below in step 616. In step 610 and in step 612, if a record is found with the station address 504 field that matches the source address 307 of the frame 303, then the traffic count field 506 of a record found is incremented. In step 614, the table 501 is sorted in ascending order based on the traffic count field 502. In other words, Table[0] will possess the highest valued traffic field count 502 and Table[1] will possess the second highest valued traffic count 502 and so forth. Other methods of sort may be utilized. The traffic analysis block will then return to step 602 and the process will be repeated. In step 616, the traffic analyzer block 410 will create a record with a station address field 504 that matches the source address 307 of the frame 303. Figure 7, illustrates step 616 in more detail. In step 702, the traffic analyzer block 410 searches the table 501 for a record which is not in use. This is performed by iterating through the table 501 until a record is found which is not in use. If a record is not found, then as shown in step 712, the traffic analyzer block 410 purges records having the lowest traffic fields. Once the table 501 is purged, the traffic analyzer block 410 returns to step 702. The purging process of step 712 will be described in greater detail below. Once a record is found that is not in use, the traffic analyzer proceeds from step 704 to step 706. In step 706, the record not in use is marked as being in use. Thus the location in use field 502 takes the value TRUE. In step 708, the source address 307 of the frame 303 is stored in the station address field 504 of the record. The traffic counter field 506 is then marked to zero and returned to step 612 of figure 6. Step 712 will now be described in greater detail. Figure 8 illustrates step 712. In step 802, the traffic analyzer block 410 finds a record which represents an Nth highest contributor, where N represents a number which is some portion of all contributing frames to the table 501. Thus, step 802 would be labeled as i = size of table / "prune divisor" For example, it may be desired to find the midpoint of tabulated frames 303 contributing to the table 501. Step 802 would read i = size of table / 2. In this example, the prune divisor would equal 2. In step 804, all traffic fields of records with less traffic than the Nth highest traffic count fields 506 are marked as not in use. Thus using the example above, all records from the midpoint (or any point depending on the prune divisor) to the end of the table 501 are set to table[i].inUse = FALSE. Thus, the least contributing members are purged. The system and method for determining top contributors producing traffic may also be applied to top stations receiving traffic. The term "traffic" includes sending as well as receiving and includes all classes of traffic. Thus, it would be obvious for those skilled in the art to apply the present invention to all applications of "traffic."

Claims: A method of estimating the top N stations (102,202) producing traffic on a communications network (101, 201) comprising the steps of: (1) monitoring the communications network (101, 201); (2) capturing at least one frame (303) on the communications network (101,201); (3) forwarding the frame to a traffic analyzer block (410), said traffic analyzer block (410) having a table of records (501); (4) incrementing (612) a traffic field count (506) of the record which has a station address field (504) that matches a source address (307) of the captured frame (303); said method being further characterised by the steps of (5) if the captured frame does not have a corresponding record, creating a corresponding record by assigning an unused record to the captured frame by setting the station address field of the record to the source address for the captured frame; (6) classifying (614) the table of records (501) in ascending order according to a traffic count field (506) of each record; (7) repeating steps 1 to 6 until the amount of records is exceeded by the amount of stations (102,202) being monitored; (8) removing (712) at least one existing record from the table of records (501) which possesses a low traffic count field when the amount of records is exceeded by the amount of stations being monitored; and (9) repeating steps 1 to 8. A method according to claim 1, wherein the step of removing at least one existing record from the table of records includes the steps of: (a) finding (802) a record in the table which has an Nth highest traffic field count; (b) marking (804) at least one record with a traffic field count (506) less than the Nth highest contributor as not in use. A method according to claim 1 or 2, wherein the step of assigning a record to a captured frame includes the steps of: (a) searching (702) the table (501) for a location field (502) of a record which is not in use; (b) marking (706) the location field (502) of the record in use; (c) storing (708) the frame address in the station address field of the record; (d) returning (710) the traffic field count of that record to zero. A system (104,204) for determining the top contributors of traffic on a network (101,201), said system comprising: (1) means (402,404,408) for capturing frames from a network bus; (2) a traffic analysis block (410); (3) means (410,608) for matching said captured frames with a table of records (501) located within said traffic analysis block (410) for incrementing a traffic field count of the record which has a station address field that matches a source address of the captures frame ; said system being further characterised by (4) means (410,612,614) for classifying said table of records in ascending order according to said traffic count field; (5) means (410,702,706,708) for creating new records if said records and the captured frames do not match; and (6) means (410,712,802,804) for purging said table of records (501) when no new records can be created, said purging means being operative to purge a record or records which have a low traffic field count.

Inventors: PINNA ROBERT W, PINNA, ROBERT W.
Applicants: HEWLETT PACKARD CO, HEWLETT-PACKARD COMPANY
Application year: 1992
Main classification: H04L12
IPC codes: H04L12