Visualization of Computer Networks By Richard Zschech Supervisor: Dr. Paul Coddington, Dr. Ken Hawick. Motivations Computer visualisation techniques offer the opportunity to display complicated sets of information in an easy to view and easy to understand manner. Computer networks are by their very nature complicated. Previous 3D Visualization Work File System Navigator Information Cube Overview Development of computer network mapping and visualising program – – – – Develop three-dimensional graph package Network Mapping and Monitoring package Graph layout algorithms Interactive user interface Final Product Three-Dimensional Graph Package Graph TG Node 1 TG Node 2 TG Node N TG Edge 1 TG Shape Appearance Edge 2 TG Edge N TG Shape Geometry Appearance Geometry Issues with Java 3D Simple to use Slow rendering of graphics – Difficult to get feel of three-dimensions – Difficult to interact with the graph – Can disorient the user Could use lower level Immediate mode rendering Network Monitoring Module Simple Network Management Protocol (SNMP) – For exploring the network using routing tables – Gathering statistics – Building and updating the graph Management Information Base (MIB) – Object Identifiers – Managed Objects Serialisation – Abstract Syntax Notation – Basic Encoding Rules Object Identifiers Sequence of integers Allocated a textual name for simplicity Organised into a global tree of known identifiers sysUpTime = 1.3.6.1.2.1.1.3 Example MIB Definition sysUpTime OBJECT-TYPE SYNTAX TimeTicks ACCESS read-only STATUS mandatory DESCRIPTION "The time (in hundredths of a second) since the network management portion of the system was last re-initialized.” ::= { system 3 } SNMP Tool Issues With SNMP Good for gathering fairly static information like connectivity of a network Does not contain much support for dynamic information about network Takes a long time to map networks XML Graph File Example <graph id="ROOTGRAPH"> <position x="0.0" y="0.0" z="0.0"/> <graph id="chook"> <position x="0.0" y="1.0" z="104.4"/> </graph> <graph id="powerhub"> <position x="0.0" y="0.0" z="0.0"/> <node id="dizzy" scale="2.0"> <position x="0.0" y="0.0" z="31.2"/> </node> ... More nodes and edges for powerhub </graph> <edge source="powerhub" dest=“chook"/> ... More nodes and edges for ROOTGRAPH </graph> Gathering Dynamic Information InputDifference CURR(ifInO ctets) PREV(ifInOctets) OutputDifference CURR(ifOut Octets) PREV(ifOut Octets) TimeDifference (CURR(sysU pTime) PREV(sysUpTime))/ 100 InputDifference OutputDifference ifIOPerSec TimeDifference ifIOPerSec ifLoad ifSpeed/ 8 sysLoad AVERAGE(ifLoad) Node Information Popup Menu Settings File -- Node Scale settings SCALE_OBJECT_ID = "ifNumber" SCALE_MAX_VALUE = 100 SCALE_MIN_VALUE = 0 SCALE_MAX = 10 SCALE_MIN = 3 SCALE_NON_SNMP = 2 -- Statistics to gather for each node NODE_INFO { "Name", "sysDescr"; "Up Time", "sysUpTime"; "Total Speed", SUM("ifSpeed"); } Ring Layout colossus powerhub mathuselah titan krypton rosemary chook mathuselah powerhub dhpcmac chook dhpcmac lerwick Sorting powerhub titan Sorted Ring Layout Star Layout Sorted Star Layout Sphere Layout Sorted Sphere Layout Sorted Central Node Sphere Hierarchal Layout Conclusions Good layouts can be achieved using hierarchical methods. Good layouts are often application dependant. Three-dimensional visualisation requires fast rendering and an environment that is easy to interact with.