Network Topology
March 16, 2006
Chris here,
checking in with a new feature I’m adding to BixDesktop. Not sure if it’ll be in 2.2 yet, but definitely in 2.3.
Network Topology View
The main use of this view is to see how your network is laid out and to help you debug network problems. Give your BixServer a list of hosts and it will tell each of them to traceroute to each other. This builds a table of information that the BixDesktop then visualizes.
Overview of the sub view
- Network topology
This view is where most of the action happens. It shows all the hosts that have been discovered during the scan (including those that were not in the original list you sent to the BixServer, usually routers, etc). It also shows the connections between them. You can zoom with the mouse wheel and pan by clicking and dragging the background. You can also move nodes by clicking and dragging them. - Navigation
This view lets you move around in the main view easily. The red box shows the current view area. You can zoom in using the slider/buttons/edit box/mouse wheel. You can pan by clicking and dragging. - Hosts
You choose which hosts you want to scan here. You can enter them manually one at a time, or you can import them from a network scan, from a preconfigured tag, or from a file. - Details/Traceroute
This view shows the details of your selection. If you have a single item selected it shows the details of that node. If you have 2 items selected it will show the traceroute between them. The table shows how long each hop took and total time shows how each hop fits into the overall route.
How do I lay out these nodes?
When displaying a bunch of nodes connected in space you always have to deal with how to lay them out in a sane/readable way. I decided the easiest way to do this would be to do a simple particle simulation. Using a few formulas from my old college physics book gives us a pleasant interactive view.
First, each node acts like an electron. This makes all the nodes want to repel from each other. This gives a nice spacing between them so they don’t get all jumbled up.
Then each connection acts like a spring whose ideal length is the ping time. This keeps the nodes from flying away from each other to the edges of the view.
Finally we throw in some dampening so the springs don’t oscillate and the nodes don’t jitter.
This means you can drag nodes around and the other nodes will follow them, which is really a nice way to manipulate the view. If you’re unhappy with what the simulation is doing you can either change how much the nodes repel from each other by dragging the “Spread” slider above, or you can always turn it off and drag the nodes around yourself. In testing I found that automatically locking the positions of selected nodes makes it easier to do things (otherwise you’ll drag a node around and as soon as you let go it “snaps” back towards the rest of the nodes)
That about wraps it up, hope you enjoy this feature as much as I enjoyed messing around with it. If you have any ideas about how to make it better please send me a post in our forums.
-chris