1. Technical Field of the Invention
The present invention generally relates to data traffic analyzers. More particularly, and not by way of any limitation, the present invention is directed to an apparatus and method for analyzing data streams involving packetized traffic.
2. Description of Related Art
Testing packet-oriented telecommunication devices that implement proprietary protocols, using off-the-shelf testing tools, is a difficult task. Existing solutions, however, are not only inflexible in generating statistics on a user-selectable portion of the data frames being monitored, but are also incapable of analyzing multiple types of data traffic streams.
Embodiments of the present disclosure are directed an apparatus, method and associated program code for analyzing data streams in a packet data transmission environment. In one embodiment, the claimed method includes: capturing data from at least one data stream at two or more taps associated with a system under test (SUT); filtering the captured data to extract data packets belonging to one or more data types; analyzing extracted data packets of each data type using packet header and payload information of the extracted data packets; and outputting results obtained from analyzing the extracted data packets. Preferably, the data analysis involves “deep-inspection” of packets, cells, frames or other data units, using information at Layer-3 or a higher layer of a multi-layer Open Systems Interconnection (OSI) architecture implemented with respect to the data transmission environment in which the SUT is disposed.
Another embodiment is directed to a computer readable medium having instructions thereon which, when executed by a computer, perform the steps involved in the foregoing method. In a further embodiment, an apparatus for analyzing data streams includes: means for capturing data from at least one data stream at two or more taps associated with a SUT; means for filtering the captured data to extract data packets belonging to one or more data types; means for analyzing extracted data packets of each data type using packet header and payload information of the extracted data packets; and means for outputting results obtained from analyzing the extracted data packets.
In yet another embodiment, the present disclosure is directed to a multi-port packet data analyzer, comprising: a plurality of network interface card (NIC) drivers, each operating to receive a packet data stream from a hardware port of a SUT; a plurality of packet capture filters corresponding to the plurality of NIC drivers; and a plurality of software modules, each for performing a particular analysis on data packets extracted from a packet data stream based on content of the data packets, wherein the software modules are executable as multi-threaded objects in a processor and associated Operating System (OS) environment, each of the software modules having an interface to a corresponding packet capture filter and associated buffer disposed in the OS's kernel.
A more complete understanding of the present invention may be had by reference to the following Detailed Description when taken in conjunction with the accompanying drawings wherein:
Embodiments of the invention will now be described with reference to various examples of how the embodiments can best be made and used. Like reference numerals are used throughout the description and several views of the drawings to indicate like or corresponding parts, wherein the various elements are not necessarily drawn to scale. Referring now to
The multi-port packet data analyzer (MPPDA) 102 of the present disclosure is operable to capture the data streams at any number of input ports as well as any number of output ports of SUT 104 for performing various tests and analyses based on the content of the packets. Preferably, the data analysis methodology involves “deep-inspection” of packets, cells, frames or other data units, using information at Layer-3 or a higher OSI layer, preferably the header information as well as a specified field of the payload. By way of illustration, reference numerals 114A and 114B refer to a plurality of tapping paths with respect to the input and output ports of SUT 104 whose data streams are to be analyzed as will be set forth below.
Preferably, MPPDA 102 is implemented as a universal data traffic analyzer application on a general-purpose computer that includes hardware for sniffing Ethernet frames or proprietary data frames to gather statistics and measurements on any interested field in each frame. Further, the functionality of the application is flexible such that it is capable of monitoring one or multiple physical ports, and within each physical port it has the capability to monitor multiple data streams. When analyzing multiple ports or multiple data streams, the data traffic analyzer application has the capability to compare and correlate the results based on multi-port analysis of incoming and outgoing data at a SUT. Although, the data analyzer entity may be provided as a software application as will be described in detail below, some functionality can be implemented in software, hardware, or as a hardware component (e.g., Field Programmable Gate Array (FPGA) or Application Specific Integrated Circuit (ASIC)). In addition, where the data streams are tapped at multiple locations of a data stream, the data analyzer application is capable of monitoring the packet flow over a segment of the data path, examining and correlating various in-line data parameters for performing a robust statistical analysis. In a further variation, multiple data analyzers may be provided to effectuate data monitoring over a larger network portion in a coordinated manner, wherein each analyzer may communicate the statistical and measurement results to a remote monitoring station. For example, a monitoring system having multiple analyzers in an IPTV environment is described in detail in the following commonly owned co-pending patent application(s): (i) “INTEGRATED IP DSLAM TEST MONITOR,” filed on filed on Jun. 28, 2006, application Ser. No. 11/427,076, (Alcatel Docket No. 139482), in the name(s) of: Donald Zriny, Frederick Skoog, James W. Talley, Jr., and Gerardo Gonzalez, which has been incorporated by reference hereinabove.
In a presently preferred exemplary embodiment, the data analyzer application is provided as a multi-threaded tool, written in a high-level language (e.g., in C language) that transforms a standard workstation or a personal computer having a plurality of Ethernet network interface cards (NIC) into a data traffic analyzer. In one implementation, the tool may utilize open source utilities (e.g., Pcap or WinPcap) for packet capture and network analysis. It should be appreciated that the combination of using high-level language and open source library makes the software application portable to virtually any Operating System (OS) platform (e.g., Windows, Unix, Linux, any Real-Time Operating System, etc.) and hardware (x86 based PC, Sun Workstation, etc.) combination.
Each filter module preferably runs on its own thread for faster and independent processing. Upon receiving a packet, an event notice from packet capture library (e.g., Pcap) may be generated and forwarded to the core layer 304 and the event, along with the packet information, is then forwarded to one or more filter modules that are subscribed to packet reception events. The appropriate filter module(s) notified of the event then look into user-selected fields in the frame (packet). By way of example, the fields inspected may include certain predetermined depth in the payload, as well as the specified standard packet header fields. Once a filter module recognizes a packet, the statistics are updated accordingly. Preferably, the filter module generates and sends individual or aggregated statistics either to a suitable user interface or logs the same into its related statistics file(s).
By way of exemplary implementation, a plurality of modules are illustrated in
Bit-rate analysis module 310 uses the statistics obtained from basic traffic analysis and adds timing information, for example, based on a common time base provided by the host hardware. Preferably, bit-rate analysis calculates the differences of frame counts and frame lengths for a given time sample, then over a period of multiple time samples, details the frame arrival time characteristics and bit arrival time characteristics. Further, bit-rate analysis can generate reports on each stream or an aggregate report of multiple streams on a physical port.
With respect to video streams, Group of Pictures (GOP) analysis uses the information generated by bit-rate analysis and records the details of each GOP structure within a stream in addition to the inter-GOP arrival time. GOP analysis preferably uses an anchor frame (I-frame) for delineation in a video stream. Once an I-frame is detected, the details of the GOP are recorded until another I-frame is detected. In one exemplary implementation, the details of a GOP analysis comprise: the total GOP size, in number of frames and byte length, and the frame size in bytes and frame counts for each unique frame type within a GOP. Additional details may also contain inter-arrival time (ms) of each GOP and the GOP structure, which records the arrival order of the unique frame types within the GOP. GOP analysis module 314 can be adapted to analyze other types of traffic having a particular traffic pattern. Examples of traffic that falls in this category are H.264, MP4, MSTV, IPTV, etc.
Frame timing analysis module 316 may be provided as an extension of bit-rate analysis that records the inter-arrival time of a unique frame type for various types within a stream. Frame arrival analysis is operable to generate reports for each stream or an aggregate of streams. With post processing, this data may be used to estimate buffer utilization at different data rates.
Frame drop analysis module 318 is operable to provide an indication of frame drops by comparing the sequence number of the input and output streams and marking the sequence number of the dropped frame. As part of this analysis, consecutive frame drops are recorded for each frame type within a stream. This data may be used to generate histograms of successive frame drops of a particular frame type. Frame drop analysis also detects reordering on the input and output streams by flagging the reordered sequence number.
Based on the foregoing, it should be appreciated that the MPPDA application of the present disclosure is operable to analyze different data types in multiple data/packet streams, defined herein as multiple packets flowing from a traffic source to a designated receiver. The application taps the packet streams via a physical port, which is typically a physical interface operable to transmit and receive packets. Although multiple packet streams may be transported on the physical ports, the MPPDA application is flexible such that it is capable of monitoring one or more physical ports with multiple streams and is programmable to support various data traffic types as described above. Furthermore, when analyzing a SUT using multiple ports, the MPPDA application has the capability to compare results of the ports to gain understanding with respect to a data stream's packet flow behavior via the SUT.
Referring now to
As alluded to previously, the MPPDA application of the present disclosure is architectured as a multi-threaded software package to enhance performance as well as facilitate user-configurable analysis and outputting. Accordingly, packet captures, real-time display, and analytical computations are executed on separate threads, preferably on a port-by-port basis. In
In one exemplary implementation, the MPPDA application may be controlled via a craft terminal or by a TCP/IP based client having a GUI that may be implemented in Java. The craft terminal is operable to support a CLI with respect to the MPPDA application, and depending on the type of analysis to be done, the commands can be fairly involved. Table 1A and Table 1B set forth below are illustrative of exemplary MPPDA command usage wherein “vsniff” is the MPPDA application's name in one implementation:
The Java-enabled GUI of the MPPDA application is operable to provide a user-friendly interface to set up and launch the application for one or more unique monitoring modules. In addition, the GUI is operable to facilitate a graphical interface to view real-time statistics of a number of packet streams by setting the host IP address and associated TCP port number. Thereafter, the user may start capturing data packets by using appropriate GUI control buttons. Further, individual statistics of the data streams the user is interested in can be viewed by selecting appropriate software tabs. As an option, the viewer can display the summary of all data streams being monitored as well.
By way of example, the statistics displayed for each frame type are as follows: (i) frames sent and received; (ii) length values in bytes for the sent and received frames; (iii) number of frames dropped; (iv) percentage number of frames dropped; and (v) percentage length value of frames dropped. Because the multiple data streams are analyzed under control of a unified processing environment that provides a common time base, synchronized monitoring of the various streams is advantageously facilitated, which in turn assists in providing meaningful comparative statistics with respect to the monitored data streams.
Based on the foregoing discussion, it should be appreciated that the MPPDA application of the present disclosure provides a cost-effective yet highly flexible packet analyzer solution capable of generating statistics on any portion of the data frames being monitored. Because of open software interfacing and abstracted layering of the analysis filter modules, the application tool is not only portable to any standard OS/hardware platform, but also capable of providing configurability, multiple data stream analysis, and multi-tap functionality with respect to a single data stream.
It is believed that the operation and construction of the present invention will be apparent from the Detailed Description set forth above. While the exemplary embodiments of the invention shown and described have been characterized as being preferred, it should be readily understood that various changes and modifications could be made therein without departing from the scope of the present invention as set forth in the following claims.
This nonprovisional application claims priority based upon the following prior United States provisional patent application entitled: “VSNIFF: VERSATILE SNIFFER: DATA TRAFFIC ANALYZER,” Application No. 60/723,993, filed on Oct. 6, 2005, in the name(s) of: James W. Talley, Jr., Taeho Kim, and Gerardo Gonzalez, which is hereby incorporated by reference. This application discloses subject matter related to the subject matter disclosed in the following commonly owned co-pending patent application(s): (i) “INTEGRATED IP DSLAM TEST MONITOR,” filed on Jun. 28, 2006, application Ser. No. 11/427,076, Alcatel Docket No. 139482), in the name(s) of: Donald Zriny, Frederick Skoog, James W. Talley, Jr., and Gerardo Gonzalez, which is (are) hereby incorporated by reference.
This invention was made under the support of the United States Government, Department of Commerce, National Institute of Standards and Technology (NIST), Award Number 70NANB3H3053. The United States Government has certain rights in the invention.
Number | Date | Country | |
---|---|---|---|
60723993 | Oct 2005 | US |