MONITORING NETWORK QUALITY OF SERVICE IN A DYNAMIC REAL-TIME SYSTEM
|
|
|
- Peregrine Shaw
- 9 years ago
- Views:
Transcription
1 MONITORING NETWORK QUALITY OF SERVICE IN A DYNAMIC REAL-TIME SYSTEM A thesis presented to the faculty of the Fritz J. and Dolores H. Russ College of Engineering and Technology of Ohio University In partial fulfillment of the requirements for the degree Master of Science Hong Chen March 2003
2 This thesis entitled MONITORING NETWORK QUALITY OF SERVICE IN A DYNAMIC REAL-TIME SYSTEM BY HONG CHEN has been approved for the School of Electrical Engineering and Computer Science and the Russ College of Engineering and Technology by Carl Bruggeman Assistant Professor of Electrical Engineering and Computer Science Dennis Irwin Dean, Russ College of Engineering and Technology
3 CHEN, HONG. M.S. March Electrical Engineering and Computer Science Monitoring Network Quality of Service in a Dynamic Real-Time System (84 pp.) Director of Thesis: Carl Bruggeman This thesis presents our design and implementation of a real-time network monitoring program for DeSiDeRaTa, an existing resource management system. This monitor will assist DeSiDeRaTa in maintaining an acceptable Quality of Service (QoS) for groups of real-time applications by reporting the communication delays caused by inadequate network bandwidth. The network monitoring application we developed uses SNMP and network topology information gleaned from the DeSiDeRaTa application specification files. Algorithms were designed to compute network bandwidth utilization of each real-time communication path. Preliminary experiments have been run on a local area network environment. The results demonstrated the accuracy of these measurements and the correct implementation of the network monitoring program. Approved: Carl Bruggeman Assistant Professor of Electrical Engineering and Computer Science
4 Acknowledgments Thanks to my Mom, Dad, and my wife Ki and the rest of my family for all your love and support. Thanks to Dr. Carl Bruggeman, Dr. Lonnie Welch, Dr. Shawn Ostermann, Dr. Brett Tjaden, and Barbara Pfarr for all your advisory and guidance. Thanks to Lu Tong and the members of SWARM group and the LIRTSS lab for all your friendship and help. Finally, the author gratefully acknowledges that this research project is funded by NASA Office of Earth Science, NASA Research Announcement 99-OES-08.
5 5 Table of Contents Abstract...3 Acknowledgments... 4 Table of Contents... 5 List of Figures... 8 List of Tables Definition of Symbols and Abbreviations Chapter 1 Introduction Chapter 2 Background Resource Management and DeSiDeRaTa Network Monitoring SNMP Network Topology Chapter 3 Algorithms Overview Network Topology and Path Traversal SNMP Polling Bandwidth Calculation Network Load Generator and Network Monitoring Display UML Model of Network Monitor... 36
6 6 Chapter 4 Implementation Overview Network Topology Specification Data Structures Interfaces SNMP Overview Usage of SNMP SNMP++ API Functions Network Monitor Overview Multithreads and Mutex Communicating with Client Program Accessory Functions and Programs Time Functions Network Load Generator Network Monitoring Display Programs Using SNMP++ API Functions Chapter 5 Experiments and Results Chapter Outline Experiment Setups... 63
7 7 5.3 Network Interface Communication Path Hub Connected Network Switch Connected Network Chapter 6 Conclusions and Future Work Conclusions Future Work References... 82
8 8 List of Figures Figure 3-1 Architecture of Network Monitoring Figure 3-2 Overview of the Network Monitoring Program Figure 3-3 Schematic Diagram of Network Connections Figure 3-4 Specification of Network Topology Figure 3-5 Example of a Network Communication Path Figure 3-6 Examples of Switch and Hub Connected Networks Figure 3-7 Algorithm of the Network Load Generator Figure 3-8 Algorithm of the Network Monitoring Display Figure 3-9 Resource Instrumentation and Control Analysis Classes Diagram Figure 3-10 Network Monitor Design Sequence Diagram Figure 3-11 Network Monitor Design Class Diagram Figure 4-1 Network Topology Data Structures Figure 4-2 SNMP++ Framework Figure 4-3 SNMP++ Example: Getting Single MIB Variable Figure 4-4 SnmpppApi Programming Example Figure 4-5 Multithread and Mutex Figure 4-6 Data Structure of NmonMessage Figure 4-7 Example of Usage of TimeFcnt Class Figure 4-8 Screenshot of the Network Monitoring Display Figure 5-1 Experiment Setups of LAN Test Bed... 64
9 9 Figure 5-2 Experiment Results for Network Interface Figure 5-3 Percentage Error of Measured Traffic Figure 5-4 Average Packet Size Figure 5-5 Overloading Switch Connected Network Link Figure 5-6 Revised Results for Overloaded Network Link Figure 5-7 Maximizing Hub Connected Network Link Figure 5-8 Specification of Network Topology Figure 5-9 Experiment Results for Communication Path Figure 5-10 Experiment Results for Hub-connected Network Figure 5-11 Experiment Results for Switch-connected Network... 79
10 10 List of Tables Table 3-1 SNMP MIB-II Objects Used in Network Monitoring Table 4-1 Data and Functions of Network Topology Interfaces Table 4-2 Methods of SNMP++ API Class: SnmpppApi Table 4-3 Java Classes Used in the Network Monitoring Display Program Table 4-4 Programs Using SNMP++ API Functions Table 5-1 Experiment Results for Network Interface... 66
11 11 Definition of Symbols and Abbreviations CORBA GUI HCI IDL LAN MIB MTU QoS RM SNMP UML Common Object Request Broker Architecture Graphical User Interface Human-Computer Interaction Interface Definition Language Local Area Network Management Information Base Maximum Transmission Unit Quality of Service Resource Management or Resource Manager Simple Network Management Protocol Unified Modeling Language
12 12 Chapter 1 Introduction Significant work has been done on resource management (RM) in distributed realtime computer systems. Such systems usually contain a large number of computers connected by one or more computer networks and many real-time applications. The quality of service (QoS) of these applications is critical for the performance of the whole computer system. Maintaining adequate QoS for real-time applications requires the resource management middleware to manage computer resources, including both computing resources and network resources. Computing resources are the basis for the execution of applications, e.g., computers, CPU time, memory etc., all of which directly affect the QoS an application can provide, while network resources provide means for individual computers to communicate with each other, e.g., network connections, interfaces, bandwidths etc. In many cases, proper management of network resources is vital for delivering adequate QoS to a dynamic real-time system. A distributed real-time system usually consists of many real-time applications collaborating with each other. This may require that a large amount of information be exchanged between the various computers, resulting in a large amount of data communication over the network. An improper allocation of the applications or an improper selection of a network path can lead to congestion and delay of data transmission, and ultimately poor QoS. To properly manage network resources, the resource management middleware must be able to monitor their performance.
13 13 The research in this thesis concentrates on the techniques of network resource monitoring. It extends the work of DeSiDeRaTa, an existing resource management middleware for dynamic, scalable, dependable, real-time systems [1]. The current implementation of DeSiDeRaTa manages computer resources based only on the QoS of computing resources, assuming that network resources are never a bottleneck. Our work on network monitoring serves as an extension to DeSiDeRaTa so that the QoS of network resources can be taken into consideration when making resource management decisions. In this thesis, techniques were designed to monitor the network resources for realtime systems. Software, which implements the techniques, has been developed and tested using the DeSiDeRaTa middleware. Our network monitoring program can provide realtime network performance information to the resource management middleware and help the middleware detect potential QoS violations due to a sub-optimal allocation of network resources. Our approach is to combine the network topology and real-time data communication information to calculate the network performance information. We use the DeSiDeRaTa specification language to obtain the network topology. The network traffic information is gathered using SNMP (Simple Network Management Protocol) polling from computer hosts and network devices that make up the real-time system. To obtain network performance information, the network resource monitoring program must know the topology of the computer network. The DeSiDeRaTa system includes a specification language with which to specify the components of a real-time system. For our work, we have extended the specification language to include network-
14 14 related information of the real-time system, such as computer hosts, network devices, network interfaces, and network connections. Our network monitoring program obtains the topology and connectivity of the real-time system from this specification file. An algorithm was implemented to traverse the communication path between hosts based on the topology information in the specification file. The real-time data communication information for each network connection is obtained by periodically querying network components, including computer hosts and network devices, using SNMP. After combining the SNMP query results for each individual connection and network topology information, the bandwidth statistics (both available and used) between pairs of hosts is calculated. This bandwidth information can be used by the RM middleware to detect QoS violation and make proper decision on resource allocation. The outline of the remainder of this thesis is as follows. Chapter 2 presents some background on this research, including related work on network monitoring, SNMP techniques, and the DeSiDeRaTa resource manager. Chapter 3 discusses in detail the algorithms of our approach of network monitoring, followed by Chapter 4, which gives the design and implementation of our programs. Chapter 5 provides some preliminary test results for the network monitor, along with some discussions. Chapter 6 presents the conclusions and gives some thoughts on future work.
15 15 Chapter 2 Background 2.1 Resource Management and DeSiDeRaTa The work in this thesis is part of the effort to build DeSiDeRaTa, an adaptive resource management middleware for Dynamic, Scalable, Dependable Real-Time systems [1]. Such systems usually consist of computing resources, including computers and networks, and many real-time applications collaborating with each other. In addition, the applications have Quality of Service (QoS) requirements they must meet their specified real-time deadlines. Sub-optimal allocation of resources might cause a computer to become overloaded or a network to become congested, and subsequently lead to a QoS violation. Therefore, resource management middleware becomes helpful, and often necessary, to manage the computer resources for real-time systems. The DeSiDeRaTa resource manager performs QoS monitoring and failure detection, QoS diagnosis, and reallocation of resources to adapt the system to maintain acceptable levels of QoS. Prior to our work, DeSiDeRaTa managed only computational and not network resources. That meant that real-time systems controlled by DeSiDeRaTa could experience QoS violations caused by network delays and congestions. Our work extends DeSiDeRaTa to allow the management of network resources. We developed an application that does network QoS monitoring and provides the middleware with network metrics regarding data communication information, which enables the middleware to
16 16 manage the network resources based on the network metrics and network QoS specification. 2.2 Network Monitoring Network monitoring is an important part of network resource management. The fast growth of computer networks and the Internet makes network monitoring more complicated and more challenging. Many different network monitoring techniques have been developed. SNMP is a traditional technology and it has been widely used for network monitoring. Mansfield et al [2] studied a practical network management system using SNMP in the context of a large-scale campus network. Intelligent agents are deployed to collect information about network segments, and such information is reported to expert network manager. The network manager uses the information, in conjunction with a network knowledge base and a management information knowledge base, to reconstruct the overall network-traffic characteristic, to evaluate the status of the network, and to take or suggest some action. This technique uses time labels and narrow time windows to obtain a reasonably accurate picture of a large-scale network status. But it is not real-time and, therefore, cannot be used for our network monitoring. Hedge et al [3] designed a tool, called netmon, for performance monitoring of a packet data network, which measured network performance statistics using SNMP information polled from the backbone routers. But this approach does not provide information of computer hosts and network path, hence, it is not suitable to be used as network monitoring tool for the resource management middleware.
17 17 A hierarchical network management solution, which also used SNMP, was proposed in [4] for large multi-layer networks. It provides a mid-level tool to structure network management hierarchically, and is dynamically configurable at runtime. Many other techniques have also been developed for network monitoring. A Javaand CORBA-based network management prototype has been developed to manage distributed heterogeneous networks [5]. A distributed computing platform prototype was developed to support the creation, management, and invocation of distributed telecommunications services. It provides mechanisms that allow communication between CMIP-based (Common Management Information Protocol) objects, commonly used by industry, and a gateway for SNMP-based systems. Lee [6] explored a network management platform model using Java technologies. Gavalas et al [7] proposed a solution for distributed network management based on mobile agent technology. Romascanu et al [8] developed switch monitoring technique for modern local area networks, which provides views of the traffic flowing through a switch and views of specific switch-related entities. Network Weather Service [15] provides a distributed system that periodically monitors and dynamically forecasts the performance various network and computational resources. Another network monitoring tool that had been considered and actually tested in the course of this research was Remos (Resource Monitoring System) [16], which is currently being developed at Carnegie Mellon University. Remos allows network-aware applications to obtain both static and dynamic information about network [17]. The network uses SNMP and benchmark techniques to collect network status information.
18 18 However, Remos does not fit into our project well because one of its main efforts is to probe the whole network, which is unnecessary and sometime undesirable in our case. And furthermore, since it was still under development, the network status information Remos provided was unstable and incomplete according to our test results. We considered these network monitoring techniques as the basis for our work. SNMP was chosen for the following reasons. First, SNMP provides very comprehensive network information. It not only contains all the information that fits our current needs, but also has much broader coverage that may be useful for future works. Second, SNMP is a well-developed technique. Many SNMP tools and interface programs are available, which makes it relatively easy for implementation. In addition, SNMP servers for different platforms (such as Solaris, Linux and Microsoft Windows) are available. 2.3 SNMP The Simple Network Management Protocol (SNMP) provides a basic networkmanagement tool for TCP/IP-based environments. Detailed descriptions of the protocol can found in RFC 1157 [9]. Although SNMP has been widely used for network monitoring, it is still under development to accommodate the quickly evolving computer networks. New versions of SNMP have been proposed for community-based networks (RFC 1901 [10]) and user-based security model (RFC 2574 [11]). SNMP defines the structure of a hierarchically organized database, which is stored in a series of network components. Each network component contains information such as services offered, the device s routing table, and a wide variety of statistics. Such information can be accessed through a local Management Information Base (MIB) [12]
19 19 that specifies the structure of the database. More information about SNMP and MIB can be found in [13]. Our network monitor uses the SNMP protocol and the interface table of the MIB to obtain data communication statistics from each SNMP-enabled network component. The interface table provides a static data transmission rate as well as counters for data and packets being sent and received through each network interface. Real-time network information is obtained by polling SNMP servers on each device (e.g. hosts, switches, routers) periodically. This data is then used to determine the amount of bandwidth used and available for each host and network device. By combining these metrics, we compute the available and used bandwidth of a real-time communication path. 2.4 Network Topology SNMP gives network performance information for the network components. To obtain the network metrics, the network monitoring software has to be able to discover the network topologies and combine them with the SNMP data. Network topology discovery usually is difficult due to the increasing complexity of interconnectivity in computer networks. We considered several different approaches for determining the topology of a network. Pure network discovery uses network protocols to discover hosts, routers, switches etc. and their connections. It is dynamic and powerful, and capable of discovering the whole Internet. However, the approach is too general and too sophisticated, which is beyond the scope of this research. Instead, we chose to utilize the hardware specification files that already exist for DeSiDeRaTa. The network topology
20 20 information is obtained from these files, which contain information about the network components and their interconnectivity. Using the specification files makes network topology discovery unnecessary, but results in a static topology, which must be known in advance. A hybrid approach is possible which would use specification files to obtain the initial network topology, and use network protocols to discover changes. For our work, we have chosen the approach that uses the static specification files. The DeSiDeRaTa middleware already has the infrastructure in place for this. A specification language has been developed to specify the information of the hardware and software systems under the control of DeSiDeRaTa. The specification is necessary because the middleware must know the details about hardware systems and all the software applications to be able to perform QoS management. For our work, the specification language was extended to include network components and connections. Our network monitor obtains this network information from the DeSiDeRaTa specification files and constructs the network topology graph for the system.
21 21 Chapter 3 Algorithms 3.1 Overview The network monitoring program we have developed monitors network performance using network topology and data communication information from hosts and network devices. Figure 3-1 shows the architecture of our design for the network monitoring program. Network topology information was obtained from network specification files. Real-time data communication information of individual host or network devices is acquired by periodic SNMP polling. Our network monitor gathers all this information and calculates the real-time network performance metrics (bandwidth used and bandwidth available) for any pair of hosts in the system. Upon the request by the DeSiDeRaTa resource manager (RM), the network performance metrics are reported to assist the RM in managing the network resources. Network Spec. Network Topology Network Monitor SNMP Query Data Comm. Info. Network Device/ Host Request Network Performance Metrics Network Device/ Host Resource Manager Executed Periodically Figure 3-1 Architecture of Network Monitoring
22 22 Figure 3-2 shows an overview of the network monitoring process. The program starts with loading and parsing DeSiDeRaTa specifications files. From these specification files, a network topology graph of the real-time system, as well as a list of computer hosts and network devices is created. The network monitor then makes connections to the SNMP servers on the hosts and network devices and initializes the SNMP communication. The network monitor periodically makes SNMP queries and recalculates the network performance metrics. The program first sends an SNMP query to each SNMP server to gather the real-time data communication information of the hosts and devices. Based on this information and the network topology graph created at the beginning of the process, the amount of bandwidth between pairs of hosts is then calculated and stored so that they can be sent to the RM when requested. Detail about the design and algorithm of network topology discover and path traversal is given in the next section. Section 3.3 describes the process of SNMP polling. Section 3.4 talks about the mathematic models that we used for bandwidth calculation. Section 3.5, describes two auxiliary programs we created to augment the network monitor a network load generator and a network monitoring display. Section 3.6 gives the UML model of the network monitor in the resource management middleware.
23 23 Network Monitor Load & Parse Network Spec. Specification Files Create Network Topology Graph & Host/Device List Initialize SNMP Connections Send SNMP Query To Hosts/Devices Receive and Store SNMP Results From Hosts/Devices Network Device/ Host (snmpd) Calculate Amount of Bandwidth Between Pairs of Hosts Store the Current Values of Bandwidth Resource Manager Figure 3-2 Overview of the Network Monitoring Program
24 Network Topology and Path Traversal The network-monitoring program was built using a local area network (LAN) model. The topology of such networks is modeled using hosts (or network devices), network interfaces, and network connections. Figure 3-3 shows the LAN topology model. Each host or network device has one or more network interfaces. For example, in the figure, hosts A, C, and E each have a single connection (interface) to the network, while B and D have multiple interfaces. B and D can be hosts with multiple network connections, or network devices such as switches or hubs. A network connection is specified as a pair of interfaces that are physically connected to each other. In this model, the connection must be 1-to-1, i.e., one interface may only be connected to one interface on another host/device. 1 A Network Device/ Host 1 3 B 2 1 C Network Interface Network Connection 1 D 2 1 E Figure 3-3 Schematic Diagram of Network Connections As mentioned earlier, we utilize the DeSiDeRaTa specification language to obtain this network topology information. A new extension to the DeSiDeRaTa specification
25 25 language [14] was developed to describe the information related to the network resources of the real-time system that is under control of the RM. The network topology is defined using the model described above. Figure 3-4 shows the DeSiDeRaTa specification language for the definitions of data structures that store the network topology. A host/device is specified by its name, a list of all network interfaces on the host, and other host information. The interfaces are distinguished by their unique local names. A network connection is specified as two hostinterface pairs, which give the two ends of the connection. Finally, the network topology can be described as a list of all the hosts and network devices and all the network connections among them. The specification file is parsed, and related network topology information is stored using the data structures given in Figure 3-4. This results in a complete network topology graph that the network monitor can use. The communication path between any two hosts in the system can be traversed using a simple graph traversal algorithm. Given two hosts in the system, a simple recursive algorithm is designed to traverse the path, with a necessary infinite-loop detecting function implemented. The resulting communication path is described as a series of network connections defined in the previous section, starting with a connection from the source host, going through each hop in the communication path, and ending with a connection to the destination host.
26 26 Host { //data structure of a network device/host host_name; //name of the host LinkedList interfaces; //list of interfaces of the host //other host information } Interface { //data structure of a network interface localname; //local name of the interface //other interface information } HostPairConnection { Host host1; Interface interface1; Host host2; Interface interface2; } //data structure of a network connection NetworkTopology { //data structure of network topology LinkedList hosts; //list of all hosts LinkedList hostpairconnections; //list of all connections } Figure 3-4 Specification of Network Topology 3.3 SNMP Polling The real-time network performance information is polled through SNMP from the SNMP-enabled hosts or network devices (i.e., the hosts/devices that have an SNMP demon running). There are hundreds of MIB-II (second version of MIB) objects in SNMP, which can provide abundant network information. Table 3-1 shows the particular ones that are requested by our network monitoring program. Our interests are mainly focused on several interface entries in the network interface table (the objects prefixed with interfaces.iftable.ifentry, or in numbers). The data transmitted through an interface in both directions, as well as the static bandwidth, can be obtained using these MIB-II objects.
27 27 Because the polling results are cumulative numbers, this data must be polled periodically. The old value is subtracted from the new one to determine statistics for the polling interval. The time interval between two polling processes can be found using the system uptime data. The data transmission rate, including packets and bytes per unit time can then be calculated. Table 3-1 SNMP MIB-II Objects Used in Network Monitoring MIB-II Object (Numbers) Description [12] system.sysuptime ( ) interfaces.iftable.ifentry.ifspeed ( ) interfaces.iftable.ifentry.ifinoctets ( ) interfaces.iftable.ifentry.ifinucastpkts ( ) interfaces.iftable.ifentry.ifoutoctets ( ) interfaces.iftable.ifentry.ifoutucastpkts ( ) The time (in hundredths of a second) since the network management portion of the system was last re-initialized. An estimate of the interface's current bandwidth in bits per second (static bandwidth). Accumulated number of octets received on the interface. Accumulated number of subnetworkunicast packets delivered to a higher-layer protocol. Accumulated number of octets transmitted out of the interface. The total number of packets that higherlevel protocols requested to be transmitted to a subnetwork-unicast address. For example, assume the SNMP results of polling number i are t(i) for system uptime and b in (i) for received data bytes (octets). The results of previous polling were t(i-
28 28 1) and b in (i-1) correspondingly. Then the data bytes received by the host during the period is: b in (i) = b in (i) b in (i-1). (3-1) And the actual time interval between SNMP polling can be given by: t(i) = t(i) t(i-1). (3-2) Notice that t(i) may be slightly different (normally one to two hundredths of a second) with the interval between the moments when SNMP requests are sent (normally 1 second in our case). This is likely caused by the delay in the network communication and response time of SNMP servers. t(i) gives a more accurate measurement, and therefore it is used for the transmission rate calculations. The average incoming data transmission rate for period i can be expressed as: bin ( i) bin ( i) bin ( i 1) rin ( i) = =. (3-3) t( i) t( i) t( i 1) Similarly, the outgoing data transmission rate and the rates for both incoming and outgoing packets can be calculated. 3.4 Bandwidth Calculation The specification files and SNMP polling provide the network monitor with network topology and data communication information of individual network connections in the system, respectively. Based on such information, the network monitoring program should be able to calculate the bandwidth information of a communication path between two given hosts, which consists of a series of connections.
29 29 The available bandwidth of a communication path is simply the minimum of the available bandwidths of all the network connections along the path. Assume a communication path consists of n network connections, and the available bandwidth for connection i is a i (i = 1, 2, n). Then the available bandwidth of the path, B available, can be given by the following equation: B available = minimum(a 1, a 2, a n ) (3-4) The maximum bandwidth of the communication path, B max, is defined as the minimum value of the maximum bandwidth (m i ) of each individual connection along the path: B max = minimum(m 1, m 2, m n ) (3-5) The used bandwidth of the communication path, B used, can then be given as: B used = B max B available (3-6) Figure 3-5 gives an example of a network communication path from host A to host D, which in order consists of three network connections, 1, 2, and 3. The computed maximum, utilized and available bandwidths for each connection are m i, u i and a i (i = 1, 2, 3), respectively. Then the maximum bandwidth of the communication path is given by B max (A-D) = minimum(m 1, m 2, m 3 ) = minimum(100, 100, 10) = 10 Mbps. The available bandwidth of the path is B available (A-D) = minimum(a 1, a 2, a 3 ) = minimum(80, 15, 5) = 5 Mbps. Both bandwidths are decided by the bottleneck in the communication path, connection 3 between C and D. Finally, the total utilized bandwidth between A and D is B used (A-D) = B max (A-D) B available (A-D) = 10 5 = 5 Mbps.
30 A B C D m 1 =100 Mbps u 1 =20 Mbps a 1 =80 Mbps m 2 =100 Mbps u 2 =85 Mbps a 2 =15 Mbps m 3 =10 Mbps u 3 =5 Mbps a 3 =5 Mbps Figure 3-5 Example of a Network Communication Path For each individual connection, the available bandwidth a i is just the difference between maximum bandwidth m i and used bandwidth u i : a i = m i u i. (3-7) In Figure 3-5, a 1 = m 1 u 1 = = 80 Mbps. A measure of m i can be obtained directly through SNMP polling, while the u i must be computed by the network monitor. It is relatively easy to calculate used bandwidth of a host connected to switches because a switch does not forward packets for one host to other hosts connected to the same switch. Hence, the amount of bandwidth used on a host connected to a switch is simply the amount of data transmitted as reported by SNMP polling from either the host or the switch. If the traffic reported is r i, then we simple have u i = r i. (3-8) If machines A, B, and C are all connected to the same switch, and each is sending 3 Mbps to a fourth machine, D, the amount of bandwidth used for each is: u A = u B = u C = 3 Mbps. The traffic to another connection r j (j i) will not affect u i. However, for hosts connected to hubs, all packets that go through the hub will be sent to every host connected to the hub. Therefore, the amount of bandwidth used for a host connected to a hub is the sum of all the data sent to the hub, instead of just the one to
31 31 this host. Assume there are n hosts connected to the hub and the traffic reported by SNMP polling for host i is r i (i = 1, 2, n). Then n u i = r i i= 1 (3-9) If machines A, B, and C are all connected to the same hub, and each is sending 3 Mbps, the amount of bandwidth used for each is: u A = u B = u C = 9 Mbps. u i cannot exceed the maximum speed of the hub. An algorithm was implemented in our network monitoring program to distinguish these two cases and calculate the amount of bandwidth used accordingly for each network connection along the communication path. Combining the used bandwidths and the maximum bandwidths for these connections, the maximum, available, and used bandwidth of the communication path between the two hosts can be calculated using equations 3-4 to 3-7. Figure 3-6(a) shows an example of three hosts (A, B and C) connected through a switch. Network traffic is generated from A to B and C. The traffic loads, which are reported by the SNMP servers on B and C, are u B and u C, respectively. Since the switch is capable of distinguishing which traffic is for which host, the traffic of u B is only forwarded to host B. Therefore the used bandwidth of connection 2 between host B and the switch can be given by u 2 = u B. Similarly, the used bandwidth of connection 3 between host C and the switch is u 3 = u C. Figure 3-6(b) shows a similar network structure but connected through a hub. The same traffic loads of u B and u C are generated. However, the hub forwards the traffic to
32 32 every hosts connected to the hub. In this example, the traffic of u B is sent not only to host B, but also to host C. Notice that although u B appears on connection 3 between host C and the hub, it will not be reported by the SNMP server on host C because it is not designated to host C. The same situation happens to the traffic u C. The used bandwidths of both connection 2 and connection 3 are equal to the sum of u B and u C, i.e. u 2 = u 3 = u B + u C. (a) B (b) B u B 2 u B 2 u C A 1 Switch A 1 Hub 3 u C u B 3 u C C C Figure 3-6 Examples of Switch and Hub Connected Networks (a) a switch-connected network. (b) a hub-connected network. 3.5 Network Load Generator and Network Monitoring Display Several auxiliary programs were built in this research to assist the development and testing of our network monitor. Among them are a network load generator, which generates a specified amount of network traffic flow to a designated host, and a network
33 33 monitoring display, which graphically displays the real-time bandwidth information provided by the network monitor between a pair of hosts. The network load generator sends data packets at a constant rate from a local host to a designated remote host. Users are able to specify which host the data is sent to, and at what rate (Kbytes/second). Data is sent in a burst with a constant time interval between any two consecutive bursts. Users can also specify the number of bursts in each second. To generate a network traffic load of N Kbytes/second in an n bursts/second pace, the load generator will send a burst of N/n Kbytes of data in every 1/n second. To limit the overhead on the receiving host and to avoid possible retransmission of data packet, the load generator program sends the data in UDP packets to the UDP Discard port (port number 9) of the remote host. The algorithm of the network load generator is shown in Figure 3-7. The program first calculates the size of each data burst and the time interval between bursts based on user specifications. Then it connects to the UDP Discard port of the designated host. Upon successful connection, the load generator sends data bursts periodically through the connection until the process is stopped by the user. The network monitoring display is a graphical user interface (GUI) program to show the real-time bandwidth information computed by the network monitoring program. It shows the current available bandwidth or used bandwidth between a pair of hosts monitored by the network monitor. The display program provides a more direct view of the results of our network monitor by showing the history curve of the bandwidth data. It
34 34 also serves as a prototype of the network monitoring part of the human-computer interaction (HCI) program of the DeSiDeRaTa middleware. Network Load Generator Calculate Size and Frequency of Data Burst Connect to Destination Host [UDP port #9 DISCARD] Destination Host Send Data Burst to the Host [discard the data] Wait until Next Cycle Figure 3-7 Algorithm of the Network Load Generator Figure 3-8 gives the algorithm of the network monitoring display program. The program runs as a server, which communicates with the network monitor through TCP/IP, so that the two programs can be run at different hosts. The display first opens a socket at a dynamically selected port number and waits for the data from network monitor. The network monitor makes the connection and then periodically sends the
35 35 observed bandwidth information of a communication path between a pair of hosts, together with the name of these two hosts. After the connection from the network monitor, the display program starts two threads, one receives the data from the network monitor and update the bandwidth information, while the other thread periodically refresh the GUI display with the updated data. Network Monitoring Display Start the GUI Display Server Open a Socket and Wait for Connection From Network Monitor [connect] Network Monitor Get Current Bandwidths Current Bandwidths Receive Data from Network Monitor [send data periodically] Refresh The Display Update the Stored Data Figure 3-8 Algorithm of the Network Monitoring Display
36 UML Model of Network Monitor The Unified Modeling Language (UML) is a standard language for visualizing, specifying, constructing and documenting the artifacts of a software-intensive system [18]. UML can be used to writing software blueprints with object-oriented design. As part of the effort of reengineering the resource management middleware using objectoriented design, the network monitoring program was modeled using UML. Figure 3-9 shows the analysis of Resource Instrumentation and Control of the resource management middleware. The network monitor belongs to the Resource Monitor Service Package along with the host monitor, which monitors the resources of computer hosts. The network monitor and the host monitor share some similarities in the design. Each has an interface (network monitor interface or host monitor interface) to report the resource utilization information to the Allocation Manager, and each has another interface (network monitor network interface or host monitor host interface) to gather the information from the hosts and network devices. The monitoring results are stored in a Resource object. Figure 3-10 shows the design sequence of the network monitor. The allocation manager sends request of network information to the network monitor through the network monitor interface. The network monitor gets a resource template to store the network information. The network information of each individual host or network device is gathered through the network monitor network interface. Such information is then processed by the network monitor and reported to the allocation manager.
37 37 Resource Instrumentation and Control Application Control Service Package Resource Monitor Service Package Host Monitor Host Monitor Host Interface Host Resource Host Monitor Interface Allocation Management Network Monitor Interface Network Monitor Network Monitor Network Interface Network Device Figure 3-9 Resource Instrumentation and Control Analysis Classes Diagram Figure 3-11 shows the three design classes for the network monitoring program. The NetworkMonitor class is the main class of the network monitor. The NetworkMonitorInterface class provides a communication interface between the allocation manager and the network monitoring program. The communication uses CORBA (Common Object Request Broker Architecture), and the interface is specified using CORBA (IDL Interface Definition Language). The interface with the hosts and network devices is defined as NetworkMonitorNetworkInterface class. It connects the network monitor with the SNMP servers on the hosts and network devices.
38 38 Allocation Manager Resource Template Network Monitor Network Monitor Interface Network Monitor Network Interface Host Network Device Request Network Information Get Network Resource Template Request Get Network Information Get Network Information Get Network Information Figure 3-10 Network Monitor Design Sequence Diagram AllocationManager Host Network Device NetworkMonitorInterface NetworkMonitor NetworkMonitorNetworkInterface Figure 3-11 Network Monitor Design Class Diagram The implementation of the UML model described in this section is being worked on during the writing of this thesis. Therefore the following chapters of this thesis are based on the early designs.
39 39 Chapter 4 Implementation 4.1 Overview In this chapter, we present the implementation of the network monitoring software and some accessory programs. The programs were initially developed in a Linux environment mainly using the C programming language. Later they were migrated into the Unix environment and the C++ language. The implementation discussed in the following sections is based on the latest development of the programs. The usage of the programs, as well as the functionalities of some API functions we developed, are also presented in detail, which may be used as the documentation or user manual for these programs. Section 4.2 gives details on the implementation related to network topology, including specification, data structures that store the topology information, and the program interfaces. Section 4.3 discusses a SNMP developing tool called SNMP++, which we used to build the interfaces for SNMP polling. It first briefly introduces the SNMP++, and then discusses the API functions that we built for our monitoring program. Section 4.4 focuses on the network monitoring program, giving details on integration and program usage. Finally, some accessory programs are presented in Section 4.5, including the time function, the network load generator, the network monitoring display, and some other utility programs.
40 Network Topology Specification A new extension to the DeSiDeRaTa specification language was developed to describe the information related to the network resources of the real-time system that is under control of the RM. The hosts, devices, interfaces, and network connections of the real-time system are included in the RM hardware specification files. Our network monitoring program obtains the network topology information from the specification files. The next section explains the data structure being used in our program to store the topology information. Section describes the program interface we built to acquire the network topology Data Structures Figure 4-1 gives the three psudo-data structures being used in our program to store the network topology information. The nmon_host holds information of an interface of on a host or network devices. It contains the host name and the interface name, and the hardware type (host, hub or switch). A unique id can be assigned by the SNMP++ API program (see Section 4.3.3). It also has space to store the bandwidth information of the interface. For a host or device having multiple network interfaces, one nmon_host is created for each interface. The nmon_host_pair data structure holds two pointers to two network interfaces ( nmon_hosts ), which map a physical connection between two network cards on two machines. As has been explained earlier, for a connection, only one end needs to be
41 41 monitored to obtain the network information about the connection. Therefore, an index is used to mark which network interface is used for SNMP polling. /** A network host (host and interface) **/ typedef struct nmon_host { int id; //host-interface id char *type; //hardware type (host, switch, hub) char *name; //host name char *hostif; //interface name int maxbandwidth; //maximum bandwidth (bytes/cycle) int inbandwidth; //total incoming bandwidth (bytes/cycle) int outbandwidth; //total outgoing bandwidth (bytes/cycle) } nmon_host; /** A pair of nmon_hosts that are physically connected **/ typedef struct nmon_host_pair { int index; //index of host for snmp polling nmon_host *h[2]; //pointers to two nmon_host's } nmon_host_pair; /** A network device (hub or switch) **/ typedef struct nmon_dev { char *name; //device name char *type; //hardware type (switch, hub) int maxbandwidth; //maximum bandwith (bytes/cycle) int inbandwidth; //total incoming bandwidth (bytes/cycle) int outbandwidth; //total incoming bandwidth (bytes/cycle) Linked_List *hosts; //list of connected nmon_hosts Linked_List *hp; //list of connected nmon_host_pairs } nmon_dev; Figure 4-1 Network Topology Data Structures The nmon_dev data structure stores information of a network device. It gives the name and type of the device, a list of all nmon_hosts connected to the device, and a list of network connections ( nmon_host_pairs ) to the device. The bandwidth information may be computed based on the bandwidth of each connection, and different computation algorithm may be used depending on the type of the device (hub or switch).
42 Interfaces For easy access to the network topology information, interfaces were built for our network monitor (Table 4-1). Three linked lists are used to store the network topology information. The hlist is a list of all the network interfaces, which may be polled by SNMP. The hplist maps all physically connection in the network. The dlist is a list of all network devices. Table 4-1 Data and Functions of Network Topology Interfaces Data and Functions hlist hplist dlist void topo_init() Linked_List * find_path(char *h1, char *h2) Description Linked list of nmon_hosts that stores all the interfaces of hosts and devices in the network. Linked list of nmon_host_pairs that stores all the physical connection between hosts and devices. Linked list of nmon_devs that stores all the network devices (hubs and switches). Initialize network topology from specification files. Initialize the lists of hlist, hplist, and dlist. Find communication path between two hosts. Arguments: names of two hosts. Return value: an ordered list of nmon_host_pairs mapping the physical path if found; NULL otherwise. The function topo_init() obtains network information from network specification and initialized the three lists. Using the lists, the network monitoring program creates a list of network interface to be monitored. Bandwidth usage information of each network connection can be obtained through SNMP polling on the interfaces, and the usage of a network device can be computed.
43 43 The find_path() function finds communication path between two hosts. It uses the list of network connections, dlist, to traverse the path and returns the result as an ordered list of connections from host 1 to host 2, with each connection represents one hop in the physical network path between the hosts. For each network path being monitored, the communication path is first traversed using find_path() function. The bandwidth information of the path is then computed using the result for each connection and network device through the path. 4.3 SNMP Overview SNMP++ is an open specification for object oriented network management development using SNMP and C++. It was developed by the Hewlett Packard Company. SNMP++ provides a C++ based application programmers interface for SNMP. We chose SNMP++ as the programming interface between our network monitoring program and SNMP because of its ease of use and portability. SNMP++ hides the sophisticated detail of SNMP from user applications. It also uses highly Object Oriented approach, while the implementation is kept simple, and does not require any expertise on the C++. The result is any easy to use, straightforward API. The SNMP++ API has great portability across a variety of operating systems and network management platforms (Figure 4-2). It supports both UNIX and Windows SNMP while Copyright Hewlett Packard Company. All Rights Reserved. Hewlett Packard. Peter Erik Mellquist.
44 44 hiding their differences from users. A user who codes to SNMP++ does not have to make changes to move the codes to another platform. Network Management Application SNMP++ Win3.1 Win95 WinNT HPUX Solaris WinSNMP UNIX SNMP WinSock Novell IPX BSD Sockets Network PC WorkStation Router Switch Hub Figure 4-2 SNMP++ Framework Usage of SNMP++ With the SNMP++ API, SNMP programming becomes simple and straightforward. In this section, we illustrate how to use the SNMP++ interface to do SNMP polling using a short example (Figure 4-3). The function in the example polls the SNMP server on a specified host for the system uptime of the server. A line-by-line breakdown below may help the readers to get familiar with SNMP++ interfaces. First, to use SNMP++, the user must obtain the SNMP++ package and compile it. The first line of the sample code includes the SNMP++ header file snmp_pp.h, which resides in the include/ sub-directory in the SNMP++ package. To compile the program,
45 45 two libraries must be linked: lib/libsnmp++.a and libdes/libdes.a. The next line gives the OID of the MIB variable being polled. The OID of a MIB variable can be looked up in RFC 1213 [12]. #include "snmp_pp.h" #define SYSUPTIME " " void get_system_uptime(char *host) { int status; GenAddress genaddress(host); CTarget ctarget(genaddress); Vb vb(sysuptime); Pdu pdu; Snmp snmp(status); If(status!=SNMP_CLASS_SUCCESS) { cout<<snmp.error_msg(status); return; } //system uptime object ID //argument: host name //SNMP++ generic address //SNMP++ target //SNMP++ variable binding //SNMP++ protocol data unit //create a SNMP++ session pdu+=vb; //add variable binding status=snmp.get(pdu,ctarget); //get data if(status!=snmp_class_success) cout<<snmp.error_msg(status); else { pdu.get_vb(vb,0); //extract variable binding cout<<"system Uptime = "<<vb.get_printable_value(); } } Figure 4-3 SNMP++ Example: Getting Single MIB Variable The example function takes the string of host name as the only argument. A generic address genaddress is generated for the host, and the address is used to set up the SNMP polling target ctarget. Various SNMP polling options, such as version, timeout, can be set using different CTarget set methods. A variable binding object vb is
46 46 created for the system uptime MIB variable. The protocol data unit object pdu is used to carry the variable binding data. Next, an SNMP session is created and the status is checked. The pdu+=vb statement adds the vb to the pdu. For multiple variables, an array of Vb objects can be created and added to the Pdu object one by one. The Pdu object is then sent to the target host using the get() method of the Snmp object to acquire the SNMP information. If the polling succeeds, the result is then printed out. In the example, the vb.get_printable_value() method is used for the output. The result can also be extracted using corresponding get_value() method. With SNMP++, the SNMP programming becomes simple and straightforward. Moreover, the programs are portable over different platforms SNMP++ API Functions To make the SNMP++ better server our network monitoring program, several higher level API functions were built over SNMP++ interfaces. These functions were wrapped in a class called SnmpppApi. Table 4-2 shows a list of the major functions and their description. To use the SnmpppApi class, a program needs to include the class header file SnmpppApi.h and to be compiled with SnmpppApi.cc. The SnmpppApi class has two constructors. The default constructor uses default SNMP settings, while the other one allows user to specify the setting. The first argument sets the SNMP version (version 1 or 2, 1 by default). The second argument sets the number of retries, which specifies how many SNMP calls will be made, if all failed, before an SNMP polling is aborted (default once). The third argument gives the timeout
47 47 for an SNMP call, i.e. an SNMP call is thought to be failed if the response is not received before the timeout. The default value is 100 (1 second). The last argument sets the community of SNMP. Table 4-2 Methods of SNMP++ API Class: SnmpppApi Class Method SnmpppApi() SnmpppApi(int, int, int, char*) int add_host(char*, char*) char** hostif(int) int snmp_data(int, SnmpData*) Description Default constructor. Constructor. User specifies SNMP settings, in the order of argument list: version, number of retries, timeout in hundredth of second, and community. Add a host/network interface pair. Arguments: host name and interface name. Return value: a unique host/interface ID, or -1 if failed. Find names of all interfaces of a specified host. Argument: host/interface ID. Return value: list of interface names ending with NULL. Get SNMP data from a specified host. Arguments: host/interface ID and address of an SnmpData structure to store the returned SNMP data. Return value: 0 if call succeeded; -1 otherwise. The SnmpppApi class keeps a list of hosts and their interfaces. A host/interface pair must be added to the list before SNMP data can be polled for the pair. The function add_host() takes two strings as host and interface name. If the host is new, it is added to the host list and a series of SNMP++ calls are made to initialize the entry: Get the generic address of the host; Set CTarget for the host and apply the SNMP settings; Make SNMP++ calls to get the number of network interfaces on the host;
48 48 Make SNMP++ calls to get the indices of all the network interfaces; Make SNMP++ calls to get the names of all the network interfaces; Store the indices and name of all the interfaces in the host list. The host/interface pair is looked up in the host list and a unique ID, which is a combination of host ID and interface index, is returned. The ID will be used for the following SNMP polling calls. The hostif() function returns the list of names of network interfaces on a specified host. The host/interface ID is passed as argument, although only the host ID portion of the ID is used and the interface index part is ignored. To discover the interfaces, one can simply use the SnmpppApi class as following: SnmpppApi snmpppapi(); int id = snmpppapi.add_host("agent",""); char** ifnames = snmpppapi.hostif(id); The names of interfaces on host agent are stored in the array of strings ifnames. An empty string is passed in as interface name for add_host() call, and the output id contains a valid host ID and an invalid interface index. The id can be used for the hostif() call since only the host ID part is required. However, it can not be used in the snmp_data() function calls. The method snmp_data() takes a valid host/interface ID and an empty SnmpData data structure as argument. Upon success, the SnmpData is filled with latest SNMP polling results. The SnmpData data structure contains the host and interface names as strings and all the SNMP data as unsigned long integer corresponding with the MIB objects listed in Table 3-1. The snmp_data() works as following:
49 49 Retrieve host information in the host list using the host/interface ID; Create Vb objects for each MIB objects and add them to a Pdu object; Poll the target host using the host CTarget and the Pdu object; Extract polling results from Pdu and Vb objects and fill in the SnmpData. Upon success, the return value is set to 0, otherwise, -1 is returned. An example code is shown in Figure 4-4. The get_snmp_data() function gets SNMP data for a specified host/interface pair. The process is very simple using the SnmpppApi class. An instance of the class is first initiated, then the host/interface pair is added to the host list. Upon success, a valid ID is assigned for the pair. This ID, along with the address of a new SnmpData data structure are passed to snmp_data() for SNMP polling. Two data samples are polled with a time interval of about 1 second. The data transmission rates are calculated and printed out. There are a few things need to be pointed out. First, although sleep(1) is called between the two SNMP polling processes, the actual time interval for the two sets of data may not be 1 second. Instead, the system uptime field can give us an accurate measurement. The second point is the time interval t derived from the system uptimes are checked against zero before the transmission rates are calculated to avoid divided-by-zero errors. The reason is that, despite the 1- second interval between two queries, the same set of data sample may be returned in some cases depending on the behavior of the SNMP server. Some SNMP servers may update their data in a period that longer than 1 second.
50 50 #include "SnmpppApi.h" void get_snmp_data(char *host, char *nif) { //Initialize SnmpppApi and host/interface pair SnmpppApi snmpppapi(); //new SnmpppApi object int id=snmpppapi.add_host(host,nif); //add host/interface if(id<0) return; //invalid host/interface //Make SNMP polling SnmpData data0, data1; //for storing results int i=snmpppapi.snmp_data(id,&data0); //SNMP polling if(i!=0) return; //error occurred sleep(1); //sleep 1 second int i=snmpppapi.snmp_data(id,&data1); //SNMP polling if(i!=0) return; //error occurred //Calculate and print out polling results int t = data1.sysuptime - data0.sysuptime //time interval if(t==0) return; //data unusable int r_in = (data1.ifinoctect-data1.ifinoctect)*100/t; int r_out = (data1.ifoutoctect-data1.ifoutoctect)*100/t; cout << "Rate(in) = " << r_in << " bytes/sec" << endl << "Rate(out) = " << r_out << " bytes/sec" << endl; } Figure 4-4 SnmpppApi Programming Example 4.4 Network Monitor Overview We built the network monitoring program using C++ and SNMP++ tools. The program we built is named as nmon. The usage of nmon is: nmon [Nmon_options] [Snmp_options]. There are two Nmon_options can be specified by user: -CN : where N is the cycle of SNMP polling in hundredth-seconds, with default N=100 (1 second); and
51 51 -Dhost:port : which specifies the host and port number of network monitoring display. Multiple displays can be given using multiple -D options. For example, command nmon -C200 -DN1:2000 -DN1:2001 starts the program with a cycle of 2 seconds and specifies two displays on machine N1, port 2000 and The Snmp_options specify the SNMP settings: -v[12] : using SNMP version 1 (default) or SNMP version 2; -ccommunity : specifying SNMP community, with default value of 'public'; -rn : number of retries for SNMP polling, with default N=1 retry; and -tn : timeout for SNMP calls in hundredth-second (default N=100, 1 second). The Snmp_options have been discussed in Section When the nmon is started, it runs as following: Parsing the command line options; Initializing network topology information from network specifications; Creating an SnmpppApi object and adding network hosts and network devices for SNMP polling; Starting two parallel processes (threads): o One process opens a listening port and waits for requests from the client program. The client sends a request by giving two names of the end hosts of a communication path. If the host pair is new, the path will be found and added to the list of paths. If the path already exists, the latest results of bandwidth will be sent to the client.
52 52 o The other process does SNMP polling periodically and gathering real-time network information from hosts and devices. The bandwidth information of each path in the path list is computed and updated. Details about multithread programming and communication with the client program are given in the following sections Multithreads and Mutex Multithreading was used to perform the two parallel jobs: monitoring network performance and answering request from resource manager. Pthread, a POSIX standard thread interface, was used in our program. Two threads are created, one for each process. The most recent network metrics are stored in a section of shared memory. The thread for network monitoring updates the memory periodically, while the other thread reads from the memory and sends the metrics to the resource manager per request. To avoid conflicts during the access of the shared memory, mutex, a mutual exclusion lock provided by pthread, is used. Figure 4-5 shows the part of the code involving the pthread programming. At the beginning, a mutex and two thread functions are declared. The mutex is initialized in the main() using pthread_mutex_init() function, and it is destroyed after the task is finished using pthread_mutex_destroy(). The mutex is used in the two thread functions to protect the critical sections. Two pthreads are created using pthread_create() calls. The third and the fourth arguments of the function is the name of thread function and its argument, respectively. This will start two threads, which execute the two functions, thread_snmp() and
53 53 thread_nmd(), at the same time. By using pthread_join() calls, the main process is suspended until both threads complete. #include <pthread.h> //header file for pthread and mutex pthread_mutex_t MUTEX; //declare mutex void* thread_snmp(void* p); //thread to gather network metrics void* thread_nmd(void* p); //thread to communicate with RM int main() {... pthread_mutex_init(&mutex,null); //initialize mutex pthread_t t1, t2; pthread_create(&t1,null,thread_snmp,(void*)pdata); pthread_create(&t2,null,thread_nmd,null); pthread_join(t1,null); pthread_join(t2,null); pthread_mutex_destroy(&mutex); //destroy mutex... } void* thread_snmp(void* p) {... pthread_mutex_lock(&mutex);... //critical section: update network metrics data pthread_mutex_unlock(&mutex);... } void* thread_nmd(void* p) {... pthread_mutex_lock(&mutex);... //critical section: read network metrics data pthread_mutex_unlock(&mutex);... } Figure 4-5 Multithread and Mutex The thread_snmp() function periodically polls the SNMP servers on the network hosts and devices, and computes the bandwidth usage of given communication paths. To update the bandwidth stored in the shared memory, the mutex is locked before updating
54 54 the data using pthread_mutex_lock(). The mutex is unlocked after writing is finished using pthread_mutex_unlock(). The thread_nmd() is more like a network monitoring daemon, which answers request from client program and reports bandwidth usage of communication paths. Whenever requested, the latest data is obtained from the shared memory and returned to the client. The reading of shared memory is protected by the mutex Communicating with Client Program The communication between the network monitor and client program uses TCP/IP. The data structure used as both request and response are shown in Figure 4-6. There are two strings of host names, which need to be filled by the client program and sent to the network monitor. Remaining fields, available and used bandwidth, and returning status, will be filled by the network monitor. When the return status is NMMSG_OK, the request is successful and the bandwidth information of the path is stored in the fields available and used. Otherwise, no bandwidth information is returned. NMMSG_NOPATH means no communication path can be found between the given hosts. This may be caused by the wrong host name or incomplete network specification. NMMSG_NEWPATH means the path between the given hosts is new and has just been added to the list of network monitoring program. Bandwidth information will be available at least one cycle (typically 1 second) later. NMMSG_WAIT means the network monitor is still waiting for SNMP polling results to compute the bandwidth.
55 55 #define NMMSG_MAX_NAME_LEN 64 #define NMMSG_OK 0 //returned value okay #define NMMSG_NOPATH 1 //no path found between the host pair #define NMMSG_NEWPATH 2 //new path is added for the host pair #define NMMSG_WAIT 3 //waiting for network metrics data struct NmonMessage { char host1[nmmsg_max_name_len]; //host name #1 char host2[nmmsg_max_name_len]; //host name #2 int available; //available bandwidth int used; //used bandwidth int status; //return status int padding; }; Figure 4-6 Data Structure of NmonMessage When the network monitoring program starts, it opens a listening port and waits for the connection from the client program. The client program connected to the machine on which the network monitor is running at the listening port number through TCP/IP. The request is sent to the monitor by specifying the two end hosts of the path. If the path is new for the network monitor, the path will be retrieved and stored in the list of paths being monitored. If the path is already in the list, the latest bandwidth information will be returned to the client program. 4.5 Accessory Functions and Programs Time Functions The programming in this project involves many periodic tasks such as SNMP polling, network load generating. The most straightforward approach is to use the C library function usleep(). For example, to run a task in period of 1 second, simply call usleep( ) between each cycle. The approach is not accurate since the execution
56 56 of task in each cycle may cost time. The error can be significant for tasks, such as SNMP polling, which may take long time. A modified approach is to obtain the time stamps before and after the task in each period using the C library function gettimeofday(). The actual time used on the task can then be calculated and the time to sleep is the period subtracted by the time used. This can give a much accurate results than the previous approach. The actual time is about 1.01 second for the cycle of 1 second, i.e. 1% longer, due to the delays in the gettimeofday() and usleep() function calls. Such error is cumulative and can become significant when the program runs many periods. We did further modification by adding an error control mechanism. Besides measuring the actual task execution time, the actual time of one cycle is measured. Let T be the required cycle time, T cycle (i) and T task (i) be the actual cycle time and task execution time for cycle number i. Let Error(i) be the error correction for cycle number i and Sleep(i) be the time used for usleep() call in cycle i. Then Sleep(i) is calculated as follows: Sleep(i) = T T task (i) Error(i) (4-1) Error(i) = Error(i-1) + T cycle (i-1) T (4-2) The initial value of Error(0) is 0. Using this technique, the system error caused by the C library function calls is eliminated, and the long-term cumulative error becomes 0, although there is still random error during each period. For easy use of this technique, we built an C++ class called TimeFcnt, which has a method named long sleep_cycle(long). The method takes the required period in
57 57 microsecond as argument and returns the actual task execution time in current cycle. The typical usage of the class is shown in Figure 4-7. TimeFcnt clock; //Start clock; Use clock.reset() if clock exists for( ) { //or other loop... //periodic task here clock.sleep_cycle( ); //period of 1 second } Figure 4-7 Example of Usage of TimeFcnt Class The functions were tested for 1000 cycles with period of 1 second, totally 1000 seconds. The average cumulative error on 20 runs is second. This error is caused by random error and it does not change significantly with the total number of cycles. For comparison, using the method without error control (the second approach described in this section), the same test yielded an error of 10 seconds, or 1.0%. The TimeFcnt class has been widely used in the programs in this work Network Load Generator The network load generator program, loadgen, was built to generate network traffic to a specified host. The data is sent to the UDP Discard port (port number 9) of the remote host. The usage of the program is shown as follow: loadgen host Kbytes_per_second [time_in_second]. Among the command line arguments, host is the host name of the remote machine that the data is sent to; Kbytes_per_second gives the data transmission rate; and the optional argument time_in_second specifies for how long the traffic should be
58 58 generated. If time_in_second is omitted, the program will keep sending data until being interrupted by user. The data is sent in bursts of 50 Kbytes with uniform time intervals between bursts. The time function described in the previous section was used in the program to accurately control the time intervals. For example, the following command: loadgen america generates 1000 Kbytes/second traffic to the host america" for 15 seconds. Since the data is sent in bursts of 50 Kbytes, the number of bursts in every second is 1000/50 = 20, and the time interval between bursts is 1/20 = 0.05 second Network Monitoring Display The network monitoring display program was built using Java Swing GUI components, and it can be run on Windows or Unix machines that have a Java 2 platform. Figure 4-8 shows a screenshot of the display program. When the display program is started, it opens an unused port and waits for the network monitoring program to connect. The host name and the port number are displayed on the title bar of the display panel. In Figure 4-8, the host on which the display is running is ssx3 and the listening port number is The network monitoring program can connect to the display using the -D option: nmon agent america Dssx3:2000. It monitors the network traffic between host agent and host america, and sends bandwidth information to host ssx3 at port number 2000 for display. After the connection to the display program is established, the monitoring program first informs
59 59 the display of the names of the two end hosts, which, as the result, appears on the upper left part of the display. Then the network monitor keeps sending the latest results of both utilized and available bandwidths to the display. These results are displayed on the midleft part of the panel. The total bandwidth is simply the sum of utilized and available bandwidths. Figure 4-8 Screenshot of the Network Monitoring Display
60 60 The percentage information and the historical curve are also shown on the display. The user can choose to display either the bandwidth used or the bandwidth available by selecting between the two radio buttons on the top-right part of the panel. In Figure 4-8, the Show Used Bandwidth option is selected, therefore the percentage usage of the bandwidth and the bandwidth usage history are displayed. The percentage is shown both in digits and in a bar chart. The current percentage usage is 33% (4,100,448 out of 12,500,000). The curve on the bottom of the panel shows the history of the bandwidth usage. The whole curve shifts left every one-second with the most recent data is shown near the right border. The distance between two adjacent vertical grids represents 10 seconds. The Java classes used to build the display are listed in Table 4-3. The display program can be invoked by issuing command java NMD in the directory where these Java classes reside. Table 4-3 Java Classes Used in the Network Monitoring Display Program Java Class NMD NMDFrame HeaderCanvas TextCanvas PercentCanvas PlotCanvas PlotData DataServer Description The main class that starts the Network Monitoring Display. The main frame of the display. The part (upper-left) of display that shows the host names. The part (mid-left) of display that shows the bandwidth in text. The part (mid-right) of display that shows the percentage. The part (bottom) of display that shows the historical curve. The class that stores the data used by PlotCanvas class. The server class that receives and update bandwidth data.
61 Programs Using SNMP++ API Functions Three accessory programs were built using the SnmpppApi functions. They provide some useful network information, and, in addition, they serve as testing programs for the SNMP++ API functions. The usage and description of the programs are listed in Table 4-4. Table 4-4 Programs Using SNMP++ API Functions Program Usage* hostif hostif host [snmp_options] hostin imon hostif host [io] [snmp_options] imon [snmp_options] Description Get the names of all network interfaces of the given host. Monitoring network traffic through each interface of the given host. The sum of incoming and outgoing data bytes is reported periodically, or they can be reported separately by using -i or -o option, respectively. Monitoring the network traffic through the specified network interfaces. A list of the host/interface pairs is defined and may be changed in the source code, imon.cc. *[snmp_options] are the same as those in section 4.4. The hostif program detects the network interfaces of a specified host. For example, the hostif agent command will give us the following results: <lo0> <hme0> <hme1> The lo0 is the local loop-back interface. Host agent actually has two network interfaces: hme0 and hme1. hostif can also be used to detect if the SNMP server is
62 62 properly running on the specified host. If the SNMP server is down, the program will time-out and display an error message. The hostin program goes one step further than hostif. It monitors the data traffic through all the interfaces of the specified host. This can be useful if the user s interest is on one particular host. We have used this program to discover the physical network connections between computer hosts and the switch. The switch in our lab has 24 ports and almost all of them are used, which makes it very hard to track down one cable between a host and the switch. We used the hostin program to monitor the traffic through each port on the switch, and, at the same time, generate traffic between different hosts using the loadgen program. The interface can easily be found by matching the traffic pattern from the results of hostin. The imon program monitors the traffic on several network interfaces. The interfaces may be on different hosts. The program is relatively simple because it does the monitoring work without the knowledge of network topology. This program is mainly used for tests that involve several machines.
63 63 Chapter 5 Experiments and Results 5.1 Chapter Outline The network monitoring program we developed was tested over a local area network (LAN) environment. The experiments and the results are discussed in this chapter. The detail of the setup of the LAN test bed is given in next section. The setup will be frequently referred by the later sections. Section 5.3 shows the tests of the SNMP polling results of a network interface. The experiment results are carefully examined with statistical analysis, including the accuracy of the network load generator and SNMP polling overhead. Section 5.4 gives the experiment results for a communication path. The network topology discovery and path traversal are tested. The monitored bandwidth information is compared with the generated network load. Different algorithms have been used for the bandwidth calculation of hubconnected networks and switch-connected networks. Two different sets of experiments have been done to examine the correctness of our implementation. The results are listed in Section 5.5 and Section 5.6, respectively. 5.2 Experiment Setups The experiments were performed in the Laboratory for Intelligent Real-time Secure Systems (LIRTSS) at Ohio University. The network is a LAN system with several
64 64 computers connected by a 100-Mbps switch and a 10-Mbps hub. The machines have different platforms, including Unix (Solaris 7 and 8), Linux, and Windows NT. As shown in Figure 5-1, one Linux machine (L1), two Solaris 7 machines (S1, S2), and four Solaris 8 machines (S3-S6) are connected to the switch. The speed of these network connections is 100 Mbps, or 12.5 Mbytes/second. Two other Windows NT machines (N1 and N2) are connected to the hub with a speed of 10 Mbps, or 1.25 Mbytes/second. The hub and the switch are connected through a 10 Mbps link. D M SNMP Demon Network Monitor D N1 Win NT D N2 Win NT 10 Mbps Link 100 Mbps Link L Network Load Generator Hub (10 Mbps) Switch (100 Mbps) D M D L1 L Linux D S1 Solaris 7 D S2 Solaris 7 S3 Solaris 8 S4 Solaris 8 S5 Solaris 8 S6 Solaris 8 Figure 5-1 Experiment Setups of LAN Test Bed Most of the experiments were performed on the Linux machine L1. Both the network monitoring program and the network load generator were running on it. SNMP servers were available on L1, N1, N2, S1, S2, and the switch at the time of experiments. Such a network arrangement guarantees that for any single network connection, at least one of the two end machines has an SNMP server running, so that the network traffic on the link can be monitored. For example, even though there is no SNMP server on any one
65 65 of the machines S3-S6, the bandwidth between any of them and the switch can still be monitored by polling the SNMP server on the switch for the interface connected to that machine. In the following experiments, the network monitoring program was started on L1 to monitor the network traffic of the system. The network load generator on L1 was used to created traffic from L1 to a designated host or hosts. The bandwidth information of a network interface, or a communication path between two hosts, or several different paths, is monitored and recorded. The results were analyzed against the pattern of generated traffic load to examine the correctness of our program. 5.3 Network Interface To examine the correctness and accuracy of the SNMP polling results, experiments were done on a single network interface. Network traffic was generated using our network load generator, while the traffic through the network interface was monitored using the imon program described in section The observed values were compared with the generated traffic. In the experiments, the designated network interface is a 100 Mbps interface on one of the Solaris 7 machine. Five runs were performed at different times. For each run, different network traffic loads were used, starting with no generated load, followed by 100, 200, 300, 400, and 500, then 1000, 2000, 3000, 4000, and 5000 Kbytes/second loads. For each network load, we measured 2000 data points with 1 second interval between points. Therefore, for each network load, there are 10,000 data points. The data were averaged and the results are listed in Table 5.1.
66 66 Generated Load (Kbytes) Table 5-1 Experiment Results for Network Interface Measured Traffic (Kbytes) Traffic Less Background (Kbytes) Traffic Percentage Error Measured Number of Packets Number of Packets Less Background Average Packet Size (Bytes) % % % % % % % % % % Both the number of bytes and the number of packets were measured. For example, with no generated network load, the average traffic measured is 9.55 Kbytes and packets each second, while with 5000 Kbytes/second load, the traffic measured is Kbytes and packets per second. The traffic measured at 0-generated-load was used as the background traffic. Such background traffic may come from the data communication of other programs, including the SNMP polling of our networking monitor and the responses of the SNMP daemon. The background was subtracted from the average values, which gives a more accurate measure of traffic due to the generated load. For example, the traffic of Kbytes and packets each second is caused by the 5000 Kbytes/second load we generated.
67 67 The measured traffic, including both the number of bytes and the number of packets, is plotted in Figure 5-2. Both plots show good linearity. The measured traffic (bytes) is slightly larger than the generated load, while the measured number of packets has a rate about 700 packets per 1000 generated load Measured Traffic (packets/second) (a) Measured Traffic (kbytes/second) (b) Generated Load (kbytes/second) Figure 5-2 Experiment Results for Network Interface The measured traffic (bytes) was compared with the generated network load, and the percentage errors were calculated and listed in Table 5.1. The error ranges from 2.1%
68 68 2.5%, with an average of 2.3%. The error is plotted in Figure 5-3 and it appears as a flat curve at the bottom. For comparison, the percentage error calculated with the measured values before removing the background was also shown as the curve at the top. The error is much larger when the generated load is small, and gets closer to the bottom curve when the load gets larger. It indicates that our choice of removing the background is reasonable. Error of Measured Traffic (%) % error with background % error without background Generated Load (kbytes/second) Figure 5-3 Percentage Error of Measured Traffic The measured traffic is about % larger than the generated load. A more careful examination of the traffic load generated by the load generator can reduce the error significantly. The size of generated load being used is the actual number of data bytes sent using write() system call. But it does not count the Ethernet, IP and UDP headers. Typically, an Ethernet header is 14 bytes long, an IP header is 20 bytes, and a UDP header is 8 bytes. For each packet, there are totally 42 bytes of extra data. The Maximum Transmission Unit (MTU) of our system is 1500 bytes. Therefore, for a packet
69 69 with MTU size of 1500 bytes, only = 1458 bytes are real data. The overhead caused by the headers is approximately 42 / 1458 = 2.9%. Considering such overhead, the actual error of measured value is less than 1%. Therefore, we may conclude that the network traffic reported by our monitoring program is correct and accurate. Another interesting observation in these experiments is the average packet size (Table 5-1 and Figure 5-4), which is calculated using the number of bytes and number of packets measured. The average size ranges from 1491 to 1498 bytes, which is very close to the MTU size of 1500 bytes. The measured size is slightly smaller because there is a small portion of small-size packets Bytes/Packet Generated Load (kbytes/second) Figure 5-4 Average Packet Size Experiments were done to test the response of our network monitoring program when generated load approaches or exceeds the maximum capacity of the network link. The results showed different behaviors for switch and hub connected links.
70 70 Figure 5-5 shows the monitored network traffic of a 100 Mbps switch-connected link. The circle points are the observed data, and the solid line represents the generated load. Network load of Kbytes/second was generated from 100 th second to 200 th second. The maximum network capacity of the link is 12,207 Kbytes/second (shown in the figure as dashed line), therefore the link was overloaded during this period Network Traffic (kbytes/second) Time (seconds) Figure 5-5 Overloading Switch Connected Network Link The observed data points when the network was overloaded are unstable because the SNMP query and answer packets were delayed or lost when transmitted through the congested network. However most of the points lay around maximum bandwidth line and do give us the correct result. Some improvement can be done to reach more accurate results when the network is congested. One solution is to report that the network link is in
71 71 full capacity when there is no response for the SNMP query. An alternative way is to simply report to the resource manager that the host does not respond. There is a status field in the data structure for the communication between resource manger and network monitor, and this field can be used to report the situation. Another possible solution to eliminate the large fluctuation caused by the delay in SNMP polling is to average over the data of a certain number of most recent cycles. Figure 5-6 shows the result when the data of three cycles, current cycles and two previous cycles, are averaged. It gives more stable results comparing with the original data in Figure 5-5. Network Traffic (kbytes/second) Time (seconds) Figure 5-6 Revised Results for Overloaded Network Link In contrast to a switch, a hub is much less reliable when it is congested. Figure 5-7 shows the measured network traffic for a 10 Mbps hub-connected link at different generated loads. It shows very good linearity until the generated load approaches the full capacity of the hub. The network link became congested when generated load reached
72 Kbytes/second. When more traffic was added, the congestion became worse. More SNMP queries or responses were lost, and the network monitor could not get an SNMP response for a long period of time, or even no response at all. A possible solution, which is similar to the one for the switch case, is to report that the network link is at full capacity or the host does not respond if the network monitor cannot obtain any SNMP response for certain number of periods Measured Traffic (kbytes/second) Generated Load (kbytes/second) Figure 5-7 Maximizing Hub Connected Network Link In summary, our network monitor can accurately report the network traffic of a network link when the link is not overloaded. Extra steps need to be taken when the network becomes congested. For overloaded switch-connected links, with careful examination of the data, our network monitor may still correctly report the network
73 73 information. For 10 Mbps hub-connected network link, network bandwidth can be monitored up to 1150 Kbytes/second (92% of full capacity). Higher network load may cause delay or loss of the SNMP query/response, which makes the link unable to be monitored. However, such delay or loss can be used as an indicator of a congested network link. 5.4 Communication Path A set of experiments was performed to observe the network traffic of the communication path between a Windows NT machine, N1, and a Solaris 7 machine, S1. The network topology information was loaded first when the network monitor started. Figure 5-8 shows the debugging information printed out by the monitoring program. It shows a list of all hosts, network devices and network connections, which maps the network topology shown in Figure 5-1. The information is in the format of host <interface>. For example, machine L1 is connected through network interface eth0 to the switch at interface FastEthernet0/2. The communication path between two hosts, S1 and N1, was successfully retrieved by our program using topology information. As shown in Figure 5-8, the path starts from host S1, interface hme0, goes through the switch (interfaces FastEthernet0/3 and FastEthernet0/14 ) and the hub (interfaces port0 and port1 ), and reaches the host N1 at interface 3Com EtherLink PCI.
74 74 Hosts/Connections: L1 <eth0> <==> switch <FastEthernet0/2> S1 <hme0> <==> switch <FastEthernet0/3> S2 <hme0> <==> switch <FastEthernet0/6> S3 <hme0> <==> switch <FastEthernet0/7> S4 <hme0> <==> switch <FastEthernet0/9> S5 <hme0> <==> switch <FastEthernet0/12> S6 <hme0> <==> switch <FastEthernet0/13> switch <FastEthernet0/14> <==> hub <port0> N1 <3Com EtherLink PCI> <==> hub <port1> N2 <3Com EtherLink PCI> <==> hub <port2> Network Devices: switch: L1 <eth0> S1 <hme0> S2 <hme0> S3 <hme0> S4 <hme0> S5 <hme0> S6 <hme0> hub <port0> hub: switch <FastEthernet0/14> N1 <3Com EtherLink PCI> N1 <3Com EtherLink PCI> find_path(s1,n1) S1 <hme0> <==> switch <FastEthernet0/3> switch <FastEthernet0/14> <==> hub <port0> hub <port1> <==> N1 <3Com EtherLink PCI> Figure 5-8 Specification of Network Topology To check the correctness of the network bandwidth usage reported by our network monitoring program, network traffic was generated from L1 to N1 using the network load generator. Starting at 0 Kbytes/second for 120 seconds, we increased the amount of data sent by the load generator by 100 Kbytes/second each 60 seconds. After 360 seconds, the load generator was sending 500 Kbytes/second from L1 to N1. The entire load was eliminated at 420 seconds (Figure 5-9a).
75 Generated Load (kbytes/second) (a) L1 ==> N1 Measured Bandwidth Usage (kbytes/second) (b) S1 <==> N Time (seconds) Figure 5-9 Experiment Results for Communication Path (a) Pattern of traffic load generated by the load generator. (b) Measured traffic between hosts according to our network monitoring program. The output of our network monitor exhibits a similar pattern to the amount of data being generated (Figure 5-9b). The reported value of used bandwidth is slightly larger than the generated traffic load due to the background traffic over the network and the overhead in the packet headers discussed in the previous section. The fluctuation and spikes seen in Figure 5-9b is caused by the fluctuation of data transmission over network and a slight delay in SNMP polling
76 76 The experiment results show that our network monitoring program successfully find the communication path between the given host pair and correctly monitored the network traffic through the path. 5.5 Hub Connected Network As discussed in the earlier chapters, a hub forwards data packets to all the connected hosts, not just the one for which a packet is destined. This affects the bandwidth of all hosts connected to a hub if data is sent to any host connected to the same hub. Our monitoring program considers this by summing the traffic through a hub when computing the amount of bandwidth used on any communication path through the hub. A test was designed particularly for the communication paths involving the hub to check how their network traffics affect each other. The experiment was run to monitor the amount of bandwidth usage of two communication paths: S1 to N1, and S1 to N2. The two Windows NT machines, N1 and N2, are connected to the hub. Data was sent from the Linux machine to the two NT machines as shown in Figure 5-10(a-b). We started with no data being sent to either NT machines. After 20 seconds, we began to send 200 Kbytes/second from L1 to N1. 20 seconds later, we began to send 200 Kbytes/second from L1 to N2. After another 20 seconds, the traffic from L1 to N1 was reduced to seconds later the traffic from L1 to N2 was also eliminated.
77 77 Generated Load (kbytes/second) (a) (b) L1 ==> N1 L1 ==> N2 400 (c) S1 <==> N1 Measured Bandwidth Usage (kbytes/second) (d) S1 <==> N Time (seconds) 100 Figure 5-10 Experiment Results for Hub-connected Network (a-b) Patterns of traffic loads generated by the load generator. (c-d) Measured traffic between hosts according to our network monitoring program. The observed traffics for the two paths (Figure 5-10c-d) show a similar pattern, which are the sum of the two network loads generated, and the traffic to N2 from 40 to 80 seconds appears in the path between S1 and N1. The bandwidth usage doubles from 40 to 60 seconds when two generated loads overlaps. The results are just as we predicted.
78 Switch Connected Network Unlike a hub, a switch only forwards packets to the host for which they are destined, not all the hosts connected to the switch. Therefore, our monitoring program treats switches differently than hubs. The traffic through a switch is not summed up. Instead, only traffic going to and from a particular host is considered when computing the amount of bandwidth being used. An experiment was performed on two hosts connected by the switch. Traffic between S1 and S2, and between S1 and S3 was measured by our program. All three machines are Solaris machines and are connected to the switch. As shown in Figure 5-11(a-c), traffic of a similar pattern with the test of hub of were generated: 2000 Kbytes/second of traffic was generated at time seconds from L1 to S2, while the same amount of traffic was sent to S3 from seconds, and finally, traffic was sent to S1 from seconds. The observed bandwidth usages of two communication paths are shown in Figure 5-11(d-e). The load sent to S2 and S3 appears only in the path between S1 and S2, and between S1 and S3, respectively, while the load to S1 is present in both paths because S1 is in both paths. Data sent to S2 does not affect S3 and vice versa. The results shows that our network monitoring program has correctly implemented the data transmission mechanism of switches.
79 79 Generated Load (kbytes/second) Measured Bandwidth Usage (kbytes/second) (a) (b) (c) (d) (e) L1 ==> S2 L1 ==> S3 L1 ==> S1 S1 <==> S2 S1 <==> S Time (seconds) Figure 5-11 Experiment Results for Switch-connected Network (a-c) Patterns of traffic loads generated by the load generator. (d-e) Measured traffic between hosts according to our network monitoring program.
80 80 Chapter 6 Conclusions and Future Work 6.1 Conclusions This thesis has presented our approach to monitoring the network QoS in a dynamic real-time system. Network topology information is obtained from network hardware specifications, and real-time network performance of individual network host and device is gathered using SNMP polling. Real-time network metrics (communication bandwidth) are calculated based on the information. These accurate real-time network metrics are then sent to the resource manger to enable it to mange the QoS constraints of all programs. Algorithms were developed to calculate the bandwidth usage information of a communication path between two hosts. Different algorithms are used for host pairs connected by different network devices (hub and switch). Details of the algorithms were discussed in this thesis. The algorithms were implemented using C++ and SNMP++, an SNMP tool. Several API functions and accessory programs were built during the development of the network monitoring software. The programs were tested on a LAN environment. The results of experiments showed that the algorithms had been correctly implemented, and the results reported by the monitoring program were accurate. In summary, a network monitoring mechanism was successfully designed and implemented to monitor the network QoS.
81 Future Work This thesis has shown some preliminary work on network monitoring for the resource management project. Many features of the program can be improved for better performance. Possible future work includes: Measurement of network latency: together with the bandwidth information, this may give a more complete network metrics. Detection of network QoS violation: discovery of violations such as network congestions, lost of connections, can help the resource manager to detect and diagnose QoS violations caused by network. Dynamic network topology discovery: this can be useful for the real-time systems with dynamically changing networks, such as satellites, mobile networks. Distributed network monitoring: for a large network, distributed network monitoring can be more effective and more efficient.
82 82 References [1] B. Ravindran, L. Welch, and B. Shirazi, Resource Management Middleware for Dynamic, Dependable Real-time Systems, Real-Time Systems, 20(2), March 2001, [2] G. Mansfeild, M. Murata, K. Higuchi, K. Jayanthi, B. Chakraborty, Y. Nemoto, and S. Noguchi, An SNMP-based Expert Network Management-system, IEICE Transactions on Communications, E75B(8), August 1992, [3] M. Hegde, M.K. Narana, and A. Kumar, netmon: An SNMP Based Network Performance Monitoring Tool for Packet Data Networks, IETE Journal of Research, 46(1-2), January-April 2000, [4] M.R. Siegl, and G. Trausmuth, Hierarchical Network Management: A Concept and Its Prototype in SNMPv2, Computer Networks and ISDN Systems, 28(4), February 1996, [5] M. Leppinen, P. Pulkkinen, and A. Rautiainen, Java- and CORBA-based Network Management, Computer, 30(6), June 1997, 83. [6] J.O. Lee, Enabling Network Management Using Java Technologies, IEEE Communications Magazine, 38(1), January 2000, [7] D. Gavalas, D. Greenwood, M. Ghanbari, and M. O Mahony, Advanced Network Monitoring Applications Based on Mobile/Intelligent Agent, Computer Communications, 23(8), April 2000,
83 83 [8] D. Romascanu, and I.E. Zilbershtein, Switch Monitoring The New Generation of Monitoring for Local Area Networks, Bell Labs Technical Journal, 4(4), October- December 1999, [9] J. Case, M. Fedor, M. Schoffstall, and J. Davin, A Simple Network Management Protocol (SNMP), RFC 1157, May [10] J. Case, K. McCloghrie, M. Rose, and S. Waldbusser, Introduction to Community- Based SNMPv2, RFC 1901, Jan [11] U. Blumenthal, and B. Wijnen, User-based Security Model (USM) for Version 3 of the Simple Network Management Protocol (SNMPv3), RFC 2574, Apr [12] K. McCloghrie, and M. Rose, Management Information Base for Network Management of TCP/IP-based Internets: MIB-II, RFC 1213, March [13] W. Stallings, SNMP, SNMPv2, and CMIP: The Practical Guide to Network- Management Standards, Addison-Wesley, [14] L. Tong, C. Bruggeman, B. Tjaden, H. Chen, and L.R. Welch, Specification and Modeling of Network Resources in Dynamic, Distributed Real-time System, 14th International Conference on Parallel and Distributed Computing Systems (PDCS 2001), Dallas, Texas, August [15] Network Weather Service website: [16] P. Dinda, T. Gross, R. Karrer, B. Lowekamp, N. Miller, P. Steenkiste, and D. Sutherland, The Architecture of the Remos System, 10th IEEE Symposium on High-Performance Distributed Computing (HPDC 2001), San Francisco, California, August 2001.
84 84 [17] N. Miller, and P. Steenkiste, Collecting Network Status Information for Network- Aware Applications, IEEE INFOCOM 2000, Tel Aviv, Israel, March [18] G. Booch, J. Rumbaugh, and I. Jacobson, The Unified Modeling Language User Guide, Addison-Wesley, 1999.
Monitoring Network QoS in a Dynamic Real-Time System 1
Monitoring Network QoS in a Dynamic Real-Time System Hong Chen, Brett Tjaden, Lonnie Welch, Carl Bruggeman, Lu Tong, Barbara Pfarr School of Electrical Engineering and Computer Science Ohio University,
Development of Monitoring Tools for Measuring Network Performances: A Passive Approach
IJCST Vo l. 6, Is s u e 4, Oc t - De c 2015 ISSN : 0976-8491 (Online) ISSN : 2229-4333 (Print) Development of Monitoring Tools for Measuring Network Performances: A Passive Approach 1 Abdullah Al Mamun,
A Web-Based Real-Time Traffic Monitoring Scheme Using CORBA
A Web-Based Real-Time Traffic Monitoring Scheme Using CORBA Yuming Jiang, Chen-Khong Tham, Chi-Chung Ko Department of Electrical Engineering, National University of Singapore, 10 Kent Ridge Crescent, Singapore
How To Set Up Foglight Nms For A Proof Of Concept
Page 1 of 5 Foglight NMS Overview Foglight Network Management System (NMS) is a robust and complete network monitoring solution that allows you to thoroughly and efficiently manage your network. It is
The new services in nagios: network bandwidth utility, email notification and sms alert in improving the network performance
The new services in nagios: network bandwidth utility, email notification and sms alert in improving the network performance Mohammad Ali Arsyad bin Mohd Shuhaimi Hang Tuah Jaya, 76100 Durian Tunggal,
QoSpy an approach for QoS monitoring in DiffServ Networks.
QoSpy an approach for QoS monitoring in DiffServ Networks. Ulrich Hofmann Alessandro Anzaloni Ricardo de Farias Santos. [email protected] Instituto Tecnológico de Aeronaútica São José dos Campos-SP-Brazil
Resource Utilization of Middleware Components in Embedded Systems
Resource Utilization of Middleware Components in Embedded Systems 3 Introduction System memory, CPU, and network resources are critical to the operation and performance of any software system. These system
NMS300 Network Management System
NMS300 Network Management System User Manual June 2013 202-11289-01 350 East Plumeria Drive San Jose, CA 95134 USA Support Thank you for purchasing this NETGEAR product. After installing your device, locate
LOW OVERHEAD CONTINUOUS MONITORING OF IP NETWORK PERFORMANCE
LOW OVERHEAD CONTINUOUS MONITORING OF IP NETWORK PERFORMANCE Mandis Beigi, Raymond Jennings, and Dinesh Verma IBM Thomas J. Watson Research Center 30 Saw Mill River Road, Hawthorne, NY 10532 e-mail: {mandis,
PANDORA FMS NETWORK DEVICE MONITORING
NETWORK DEVICE MONITORING pag. 2 INTRODUCTION This document aims to explain how Pandora FMS is able to monitor all network devices available on the marke such as Routers, Switches, Modems, Access points,
Avaya ExpertNet Lite Assessment Tool
IP Telephony Contact Centers Mobility Services WHITE PAPER Avaya ExpertNet Lite Assessment Tool April 2005 avaya.com Table of Contents Overview... 1 Network Impact... 2 Network Paths... 2 Path Generation...
How To Provide Qos Based Routing In The Internet
CHAPTER 2 QoS ROUTING AND ITS ROLE IN QOS PARADIGM 22 QoS ROUTING AND ITS ROLE IN QOS PARADIGM 2.1 INTRODUCTION As the main emphasis of the present research work is on achieving QoS in routing, hence this
A NOVEL RESOURCE EFFICIENT DMMS APPROACH
A NOVEL RESOURCE EFFICIENT DMMS APPROACH FOR NETWORK MONITORING AND CONTROLLING FUNCTIONS Golam R. Khan 1, Sharmistha Khan 2, Dhadesugoor R. Vaman 3, and Suxia Cui 4 Department of Electrical and Computer
Application Note. Windows 2000/XP TCP Tuning for High Bandwidth Networks. mguard smart mguard PCI mguard blade
Application Note Windows 2000/XP TCP Tuning for High Bandwidth Networks mguard smart mguard PCI mguard blade mguard industrial mguard delta Innominate Security Technologies AG Albert-Einstein-Str. 14 12489
PANDORA FMS NETWORK DEVICES MONITORING
NETWORK DEVICES MONITORING pag. 2 INTRODUCTION This document aims to explain how Pandora FMS can monitor all the network devices available in the market, like Routers, Switches, Modems, Access points,
Internet Protocol: IP packet headers. vendredi 18 octobre 13
Internet Protocol: IP packet headers 1 IPv4 header V L TOS Total Length Identification F Frag TTL Proto Checksum Options Source address Destination address Data (payload) Padding V: Version (IPv4 ; IPv6)
Network performance and capacity planning: Techniques for an e-business world
IBM Global Services Network performance and capacity planning: Techniques for an e-business world e-business is about transforming key business processes with Internet technologies. In an e-business world,
STANDPOINT FOR QUALITY-OF-SERVICE MEASUREMENT
STANDPOINT FOR QUALITY-OF-SERVICE MEASUREMENT 1. TIMING ACCURACY The accurate multi-point measurements require accurate synchronization of clocks of the measurement devices. If for example time stamps
Quantifying the Performance Degradation of IPv6 for TCP in Windows and Linux Networking
Quantifying the Performance Degradation of IPv6 for TCP in Windows and Linux Networking Burjiz Soorty School of Computing and Mathematical Sciences Auckland University of Technology Auckland, New Zealand
Transport and Network Layer
Transport and Network Layer 1 Introduction Responsible for moving messages from end-to-end in a network Closely tied together TCP/IP: most commonly used protocol o Used in Internet o Compatible with a
RARP: Reverse Address Resolution Protocol
SFWR 4C03: Computer Networks and Computer Security January 19-22 2004 Lecturer: Kartik Krishnan Lectures 7-9 RARP: Reverse Address Resolution Protocol When a system with a local disk is bootstrapped it
Voice over IP. Demonstration 1: VoIP Protocols. Network Environment
Voice over IP Demonstration 1: VoIP Protocols Network Environment We use two Windows workstations from the production network, both with OpenPhone application (figure 1). The OpenH.323 project has developed
Managing Dynamic Configuration
White Paper Immediate Network Synchronization with Low Overhead: Cisco Prime Network Reduced Polling VNE Cisco Prime Network's near real-time model relies on accurate information about the managed network
MANAGING NETWORK COMPONENTS USING SNMP
MANAGING NETWORK COMPONENTS USING SNMP Abubucker Samsudeen Shaffi 1 Mohanned Al-Obaidy 2 Gulf College 1, 2 Sultanate of Oman. Email: [email protected] [email protected] Abstract:
packet retransmitting based on dynamic route table technology, as shown in fig. 2 and 3.
Implementation of an Emulation Environment for Large Scale Network Security Experiments Cui Yimin, Liu Li, Jin Qi, Kuang Xiaohui National Key Laboratory of Science and Technology on Information System
Cisco Application Networking for Citrix Presentation Server
Cisco Application Networking for Citrix Presentation Server Faster Site Navigation, Less Bandwidth and Server Processing, and Greater Availability for Global Deployments What You Will Learn To address
Cisco Performance Visibility Manager 1.0.1
Cisco Performance Visibility Manager 1.0.1 Cisco Performance Visibility Manager (PVM) is a proactive network- and applicationperformance monitoring, reporting, and troubleshooting system for maximizing
Device Discover: A Component for Network Management System using Simple Network Management Protocol
Device Discover: A Component for Network Management System using Simple Network Management Protocol Garima Gupta, Daya Gupta Abstract Virtually all existing networked system management tools use a Manager/Agent
The EMSX Platform. A Modular, Scalable, Efficient, Adaptable Platform to Manage Multi-technology Networks. A White Paper.
The EMSX Platform A Modular, Scalable, Efficient, Adaptable Platform to Manage Multi-technology Networks A White Paper November 2002 Abstract: The EMSX Platform is a set of components that together provide
A Brief. Introduction. of MG-SOFT s SNMP Network Management Products. Document Version 1.3, published in June, 2008
A Brief Introduction of MG-SOFT s SNMP Network Management Products Document Version 1.3, published in June, 2008 MG-SOFT s SNMP Products Overview SNMP Management Products MIB Browser Pro. for Windows and
Integrated Traffic Monitoring
61202880L1-29.1F November 2009 Configuration Guide This configuration guide describes integrated traffic monitoring (ITM) and its use on ADTRAN Operating System (AOS) products. Including an overview of
Additional Information: A link to the conference website is available at: http://www.curtin.edu.my/cutse2008/index.html
Citation: Veeramani, S. and Gopal, Lenin. 2008. Network monitoring tool, in Curtin University of Technology (ed), Curtin University of Technology Science and Engineering International Conference CUTSE
How To Monitor Infiniband Network Data From A Network On A Leaf Switch (Wired) On A Microsoft Powerbook (Wired Or Microsoft) On An Ipa (Wired/Wired) Or Ipa V2 (Wired V2)
INFINIBAND NETWORK ANALYSIS AND MONITORING USING OPENSM N. Dandapanthula 1, H. Subramoni 1, J. Vienne 1, K. Kandalla 1, S. Sur 1, D. K. Panda 1, and R. Brightwell 2 Presented By Xavier Besseron 1 Date:
How Router Technology Shapes Inter-Cloud Computing Service Architecture for The Future Internet
How Router Technology Shapes Inter-Cloud Computing Service Architecture for The Future Internet Professor Jiann-Liang Chen Friday, September 23, 2011 Wireless Networks and Evolutional Communications Laboratory
SystemWatch SM. Remote Network Monitoring
SystemWatch SM Remote Network Monitoring SystemWatch Network Monitoring Service: Real World Experience Sony s SystemWatch network monitoring service uses device and networking monitoring software in conjunction
technical brief Optimizing Performance in HP Web Jetadmin Web Jetadmin Overview Performance HP Web Jetadmin CPU Utilization utilization.
technical brief in HP Overview HP is a Web-based software application designed to install, configure, manage and troubleshoot network-connected devices. It includes a Web service, which allows multiple
NetStream (Integrated) Technology White Paper HUAWEI TECHNOLOGIES CO., LTD. Issue 01. Date 2012-9-6
(Integrated) Technology White Paper Issue 01 Date 2012-9-6 HUAWEI TECHNOLOGIES CO., LTD. 2012. All rights reserved. No part of this document may be reproduced or transmitted in any form or by any means
Network Monitoring Comparison
Network Monitoring Comparison vs Network Monitoring is essential for every network administrator. It determines how effective your IT team is at solving problems or even completely eliminating them. Even
Chapter 3. TCP/IP Networks. 3.1 Internet Protocol version 4 (IPv4)
Chapter 3 TCP/IP Networks 3.1 Internet Protocol version 4 (IPv4) Internet Protocol version 4 is the fourth iteration of the Internet Protocol (IP) and it is the first version of the protocol to be widely
Traffic monitoring with sflow and ProCurve Manager Plus
An HP ProCurve Networking Application Note Traffic monitoring with sflow and ProCurve Manager Plus Contents 1. Introduction... 3 2. Prerequisites... 3 3. Network diagram... 3 4. About the sflow protocol...
Analysis of Bursty Packet Loss Characteristics on Underutilized Links Using SNMP
Analysis of Bursty Packet Loss Characteristics on Underutilized Links Using SNMP Seung-Hwa Chung 1, Deepali Agrawal 1, Myung-Sup Kim 1, James W. Hong 1, and Kihong Park 2 1 DPNM Lab., Dept. of Computer
Whitepaper. A Guide to Ensuring Perfect VoIP Calls. www.sevone.com blog.sevone.com [email protected]
A Guide to Ensuring Perfect VoIP Calls VoIP service must equal that of landlines in order to be acceptable to both hosts and consumers. The variables that affect VoIP service are numerous and include:
IBM. Tivoli. Netcool Performance Manager. Cisco Class-Based QoS 2.2.0.0 Technology Pack. User Guide. Document Revision R2E1
Tivoli Netcool Performance Manager Document Revision R2E1 IBM Cisco Class-Based QoS 2.2.0.0 Technology Pack User Guide Note Before using this information and the product it supports, read the information
QoS Parameters. Quality of Service in the Internet. Traffic Shaping: Congestion Control. Keeping the QoS
Quality of Service in the Internet Problem today: IP is packet switched, therefore no guarantees on a transmission is given (throughput, transmission delay, ): the Internet transmits data Best Effort But:
A Summary of Network Traffic Monitoring and Analysis Techniques
http://www.cse.wustl.edu/~jain/cse567-06/ftp/net_monitoring/index.html 1 of 9 A Summary of Network Traffic Monitoring and Analysis Techniques Alisha Cecil, [email protected] Abstract As company intranets
White Paper. The Ten Features Your Web Application Monitoring Software Must Have. Executive Summary
White Paper The Ten Features Your Web Application Monitoring Software Must Have Executive Summary It s hard to find an important business application that doesn t have a web-based version available and
Sage ERP Accpac Online
Sage ERP Accpac Online Mac Resource Guide Thank you for choosing Sage ERP Accpac Online. This Resource Guide will provide important information and instructions on how you can get started using your Mac
Configuring and Managing Token Ring Switches Using Cisco s Network Management Products
Configuring and Managing Token Ring Switches Using Cisco s Network Management Products CHAPTER 12 Cisco offers several network management applications that you can use to manage your Catalyst Token Ring
Sage 300 ERP Online. Mac Resource Guide. (Formerly Sage ERP Accpac Online) Updated June 1, 2012. Page 1
Sage 300 ERP Online (Formerly Sage ERP Accpac Online) Mac Resource Guide Updated June 1, 2012 Page 1 Table of Contents 1.0 Introduction... 3 2.0 Getting Started with Sage 300 ERP Online using a Mac....
Investigation and Comparison of MPLS QoS Solution and Differentiated Services QoS Solutions
Investigation and Comparison of MPLS QoS Solution and Differentiated Services QoS Solutions Steve Gennaoui, Jianhua Yin, Samuel Swinton, and * Vasil Hnatyshin Department of Computer Science Rowan University
Visio Enabled Solution: One-Click Switched Network Vision
Visio Enabled Solution: One-Click Switched Network Vision Tim Wittwer, Senior Software Engineer Alan Delwiche, Senior Software Engineer March 2001 Applies to: All Microsoft Visio 2002 Editions All Microsoft
TOPOLOGIES NETWORK SECURITY SERVICES
TOPOLOGIES NETWORK SECURITY SERVICES 1 R.DEEPA 1 Assitant Professor, Dept.of.Computer science, Raja s college of Tamil Studies & Sanskrit,Thiruvaiyaru ABSTRACT--In the paper propose about topology security
Network traffic monitoring and management. Sonia Panchen [email protected] 11 th November 2010
Network traffic monitoring and management Sonia Panchen [email protected] 11 th November 2010 Lecture outline What is network traffic management? Traffic management applications Traffic monitoring
Network Management and Monitoring Software
Page 1 of 7 Network Management and Monitoring Software Many products on the market today provide analytical information to those who are responsible for the management of networked systems or what the
Performance Evaluation of VoIP Services using Different CODECs over a UMTS Network
Performance Evaluation of VoIP Services using Different CODECs over a UMTS Network Jianguo Cao School of Electrical and Computer Engineering RMIT University Melbourne, VIC 3000 Australia Email: [email protected]
PART OF THE PICTURE: The TCP/IP Communications Architecture
PART OF THE PICTURE: The / Communications Architecture 1 PART OF THE PICTURE: The / Communications Architecture BY WILLIAM STALLINGS The key to the success of distributed applications is that all the terminals
Lecture 12: Network Management Architecture
Lecture 12: Network Management Architecture Prof. Shervin Shirmohammadi SITE, University of Ottawa Prof. Shervin Shirmohammadi CEG 4185 12-1 Defining Network Management Contains multiple layers: Business
Automated Virtual Cloud Management: The need of future
Automated Virtual Cloud Management: The need of future Prof. (Ms) Manisha Shinde-Pawar Faculty of Management (Information Technology), Bharati Vidyapeeth Univerisity, Pune, IMRDA, SANGLI Abstract: With
Carrier Ethernet: New Game Plan for Media Converters
Introduction IEEE Std. 802.3ah, also referred to as Ethernet in the First Mile (EFM) standard, has a well established name within the industry today. It lays out ground rules for implementing Ethernet
A Survey Study on Monitoring Service for Grid
A Survey Study on Monitoring Service for Grid Erkang You [email protected] ABSTRACT Grid is a distributed system that integrates heterogeneous systems into a single transparent computer, aiming to provide
CA Virtual Assurance/ Systems Performance for IM r12 DACHSUG 2011
CA Virtual Assurance/ Systems Performance for IM r12 DACHSUG 2011 Happy Birthday Spectrum! On this day, exactly 20 years ago (4/15/1991) Spectrum was officially considered meant - 2 CA Virtual Assurance
A Framework for End-to-End Proactive Network Management
A Framework for End-to-End Proactive Network Management S. Hariri, Y. Kim, P. Varshney, Department of Electrical Engineering and Computer Science Syracuse University, Syracuse, NY 13244 {hariri, yhkim,varshey}@cat.syr.edu
Measure wireless network performance using testing tool iperf
Measure wireless network performance using testing tool iperf By Lisa Phifer, SearchNetworking.com Many companies are upgrading their wireless networks to 802.11n for better throughput, reach, and reliability,
Performance Analysis of IPv4 v/s IPv6 in Virtual Environment Using UBUNTU
Performance Analysis of IPv4 v/s IPv6 in Virtual Environment Using UBUNTU Savita Shiwani Computer Science,Gyan Vihar University, Rajasthan, India G.N. Purohit AIM & ACT, Banasthali University, Banasthali,
AN IMPROVED REAL-TIME TRAFFIC FLOW MONITORING SCHEME
AN IMPROVED REAL-TIME TRAFFIC FLOW MONITORING SCHEME Yuming Jiang, Chen-Khong Tham, Chi-Chung Ko Department Electrical Engineering National University Singapore, Singapore 119260 Email: engp7450, eletck,
CLOUD MONITORING BASED ON SNMP
CLOUD MONITORING BASED ON SNMP 1 J. SWARNA, 2 C. SENTHIL RAJA, 3 DR.K.S.RAVICHANDRAN 1,3 SASTRA University, Thanjavur, Tamil Nadu, India 2 Alcatel-Lucent India Limited, Chennai, India Email: 1 [email protected]
Influence of Load Balancing on Quality of Real Time Data Transmission*
SERBIAN JOURNAL OF ELECTRICAL ENGINEERING Vol. 6, No. 3, December 2009, 515-524 UDK: 004.738.2 Influence of Load Balancing on Quality of Real Time Data Transmission* Nataša Maksić 1,a, Petar Knežević 2,
Requirements of Voice in an IP Internetwork
Requirements of Voice in an IP Internetwork Real-Time Voice in a Best-Effort IP Internetwork This topic lists problems associated with implementation of real-time voice traffic in a best-effort IP internetwork.
Internet Firewall CSIS 4222. Packet Filtering. Internet Firewall. Examples. Spring 2011 CSIS 4222. net15 1. Routers can implement packet filtering
Internet Firewall CSIS 4222 A combination of hardware and software that isolates an organization s internal network from the Internet at large Ch 27: Internet Routing Ch 30: Packet filtering & firewalls
hp ProLiant network adapter teaming
hp networking june 2003 hp ProLiant network adapter teaming technical white paper table of contents introduction 2 executive summary 2 overview of network addressing 2 layer 2 vs. layer 3 addressing 2
Dynamic Network Resources Allocation in Grids through a Grid Network Resource Broker
INGRID 2007 Instrumenting the GRID Second International Workshop on Distributed Cooperative Laboratories Session 2: Networking for the GRID Dynamic Network Resources Allocation in Grids through a Grid
A Guide to Understanding SNMP
A Guide to Understanding SNMP Read about SNMP v1, v2c & v3 and Learn How to Configure SNMP on Cisco Routers 2013, SolarWinds Worldwide, LLC. All rights reserved. Share: In small networks with only a few
Monitoring and analyzing audio, video, and multimedia traffic on the network
Monitoring and analyzing audio, video, and multimedia traffic on the network Slavko Gajin [email protected] AMRES Academic Network of Serbia AMRES Academic Network of Serbia RCUB - Belgrade University
Network Discovery Protocol LLDP and LLDP- MED
Network LLDP and LLDP- MED Prof. Vahida Z. Attar College of Engineering, Pune Wellesely Road, Shivajinagar, Pune-411 005. Maharashtra, INDIA Piyush chandwadkar College of Engineering, Pune Wellesely Road,
Huawei esight Brief Product Brochure
Huawei esight Brief Product Brochure esight Integrated Enterprise NMS As the network scales and the number of enterprise network applications continue to grow, so does the number of devices, such as multi-service
The changing face of global data network traffic
The changing face of global data network traffic Around the turn of the 21st century, MPLS very rapidly became the networking protocol of choice for large national and international institutions. This
ZEN LOAD BALANCER EE v3.04 DATASHEET The Load Balancing made easy
ZEN LOAD BALANCER EE v3.04 DATASHEET The Load Balancing made easy OVERVIEW The global communication and the continuous growth of services provided through the Internet or local infrastructure require to
Zarząd (7 osób) F inanse (13 osób) M arketing (7 osób) S przedaż (16 osób) K adry (15 osób)
QUESTION NO: 8 David, your TestKing trainee, asks you about basic characteristics of switches and hubs for network connectivity. What should you tell him? A. Switches take less time to process frames than
Know the signs of potential problems. Prevent problems before they occur. This unit contains the following three lessons:
Unit 6 Router Management Overview Description With today s networks growing exponentially, management is a key to quality of network performance. People depend on their networks and performance issues
VMWARE WHITE PAPER 1
1 VMWARE WHITE PAPER Introduction This paper outlines the considerations that affect network throughput. The paper examines the applications deployed on top of a virtual infrastructure and discusses the
Visualization, Management, and Control for Cisco IWAN
Visualization, Management, and Control for Cisco IWAN Overview Cisco Intelligent WAN (IWAN) delivers an uncompromised user experience over any connection, whether that connection is Multiprotocol Label
Cisco Integrated Services Routers Performance Overview
Integrated Services Routers Performance Overview What You Will Learn The Integrated Services Routers Generation 2 (ISR G2) provide a robust platform for delivering WAN services, unified communications,
Andrew McRae Megadata Pty Ltd. [email protected]
A UNIX Task Broker Andrew McRae Megadata Pty Ltd. [email protected] This abstract describes a UNIX Task Broker, an application which provides redundant processing configurations using multiple
ICOM 5026-090: Computer Networks Chapter 6: The Transport Layer. By Dr Yi Qian Department of Electronic and Computer Engineering Fall 2006 UPRM
ICOM 5026-090: Computer Networks Chapter 6: The Transport Layer By Dr Yi Qian Department of Electronic and Computer Engineering Fall 2006 Outline The transport service Elements of transport protocols A
Demystifying the Myth of Passive Network Discovery and Monitoring Systems
Demystifying the Myth of Passive Network Discovery and Monitoring Systems Ofir Arkin Chief Technology Officer Insightix Copyright 2012 - All Rights Reserved. This material is proprietary of Insightix.
Per-Flow Queuing Allot's Approach to Bandwidth Management
White Paper Per-Flow Queuing Allot's Approach to Bandwidth Management Allot Communications, July 2006. All Rights Reserved. Table of Contents Executive Overview... 3 Understanding TCP/IP... 4 What is Bandwidth
NetCrunch 6. AdRem. Network Monitoring Server. Document. Monitor. Manage
AdRem NetCrunch 6 Network Monitoring Server With NetCrunch, you always know exactly what is happening with your critical applications, servers, and devices. Document Explore physical and logical network
NQA Technology White Paper
NQA Technology White Paper Keywords: NQA, test, probe, collaboration, scheduling Abstract: Network Quality Analyzer (NQA) is a network performance probe and statistics technology used to collect statistics
EUROPEAN ORGANIZATION FOR NUCLEAR RESEARCH CERN ACCELERATORS AND TECHNOLOGY SECTOR A REMOTE TRACING FACILITY FOR DISTRIBUTED SYSTEMS
EUROPEAN ORGANIZATION FOR NUCLEAR RESEARCH CERN ACCELERATORS AND TECHNOLOGY SECTOR CERN-ATS-2011-200 A REMOTE TRACING FACILITY FOR DISTRIBUTED SYSTEMS F. Ehm, A. Dworak, CERN, Geneva, Switzerland Abstract
Network Monitoring. Chu-Sing Yang. Department of Electrical Engineering National Cheng Kung University
Network Monitoring Chu-Sing Yang Department of Electrical Engineering National Cheng Kung University Outline Introduction Network monitoring architecture Performance monitoring Fault monitoring Accounting
Iperf Tutorial. Jon Dugan <[email protected]> Summer JointTechs 2010, Columbus, OH
Iperf Tutorial Jon Dugan Summer JointTechs 2010, Columbus, OH Outline What are we measuring? TCP Measurements UDP Measurements Useful tricks Iperf Development What are we measuring? Throughput?
This topic lists the key mechanisms use to implement QoS in an IP network.
IP QoS Mechanisms QoS Mechanisms This topic lists the key mechanisms use to implement QoS in an IP network. QoS Mechanisms Classification: Each class-oriented QoS mechanism has to support some type of
WHITE PAPER OCTOBER 2014. CA Unified Infrastructure Management for Networks
WHITE PAPER OCTOBER 2014 CA Unified Infrastructure Management for Networks 2 WHITE PAPER: CA UNIFIED INFRASTRUCTURE MANAGEMENT FOR NETWORKS ca.com Table of Contents Solution Overview 3 Specialized Probes
Ethernet. Ethernet. Network Devices
Ethernet Babak Kia Adjunct Professor Boston University College of Engineering ENG SC757 - Advanced Microprocessor Design Ethernet Ethernet is a term used to refer to a diverse set of frame based networking
