\documentclass[12pt]{article}
\usepackage{doublespace,fullpage}
\usepackage{epsfig}
\usepackage{wrapfig}

\begin{document}
\title{3D Network Visualization}
\author{Mike Herring}
\maketitle

\begin{abstract}
3D Network Visualization is a prototype program which uses multicasting over a simulated network to compile a three-dimensional scene in OpenGL showing network connections and bandwidth/transfer rate.
\end{abstract}

\section{Project Proposal}

\subsection{Description}
\par
This program will draw a 3D model of a network structure using OpenGL. The network structure will consist of connections between servers and be colorcoded to show bandwidth/transfer rates. The resulting visualization will allowusers to see how intricate and interconnected a network, such as the internet,really is. In addition to this, the image generated may have good marketablevalue in the form of posters or other novelties. Basically, the project is designed to help learn network programming while also providing interesting graphics.
\par
Each server will be instructed by a host computer to collect data on its connections and transfer rates, compile them into OpenGL display lists. This data will be sent back to the host computer where they will be combined with data from other servers and rendered.
\par
By using the multicasting to spread the workload to major servers, instead of relying on one computer, any network can easily be compiled and rendered. The problem will occur in the combination of the data from all of the servers in such a way that is both time-efficient and that will create an aesthecically appealing visualization.

\subsection{Background}
\par
There have been previous attempts at projects such as this. One such project can be found at www.jevans.com (http://www.jevans.com/pubnetmap.html). This project takes data from servers about their connections and draws them in 3D space. The program goes through several iterations where nodes are moved to areas where they are closer to their connections, giving more aorder to the display.
\par
Another project like this one can be found at Mappa.Mundi Magazine (http://mappa.mundi.net/maps/mapps003). This visualization shows the major backbone servers of the internet and their connections. The servers are located on a 3D globe where they are located in real life. This gives the viewer an idea of what regions are the most "wired", or connected to the internet.
\par
A link from this site goes to CAIDA (http://www.caida.org). This project uses a 2D representation of the earth to place servers geographically and then shows connections through the core of the earth.

\section{Timeline}
\begin{description}
\item[Network Workbench (Sep-Dec):]{I will be using the Network Workbench, a network simulation program written by a GMU proffessor, to learn network programming. According to the documentation, the program is very similar to the TCP/IP network protocal. I will go through several of the lessons, designing and using several parts of the workbench. This will help me be able to understand how to implement my program.}
\item[Visualization Program (Jan):]{The second goal will be to use the workbench to visualize a simple network. I have a previously written program which creates a 3D visualization of directory structures already implemented. I can use this program as a base and write a network visualization in the Network Workbench.}
\item[Visualization Techniques (Feb):]{The directory visualization I have currently displays directories and subdirectories randomly in a spherical branching structure. I will need to study other visualization options because with a large number of nodes in a wide area network (WAN) or internet, viewing all parts of the network at once is not practical. I could use hyperbolic or logarithmic visualizations (where distances increase exponentially) to focus on specific parts of the network while still showing how those parts connect to the rest.}
\item[Transfer to TCP/IP (Mar-Apr):]{To use this program with an actual network, I will have to transfer the application from the Newwork Workbench to TCP/IP. Supposedly, this should not be too complicated because the two are so similar. I will need to research TCP/IP programming to understand exactly what differences need to be accounted for.}
\item[Finalizing (May-Jun):]{The final section of my project will include finalizing the program, making it easy to load, navigate, etc., and writing the formal research paper.}
\end{description}

\end{document}
