6
The Network Simulator of Tomorrow - JNS Leckraj Nagowah, M. Hashmi Domun and M. Vmar Ibn Waliyullah Computer Science & Engineering Deptment, University of Mauritius, Reduit, Mauritius. [email protected], [email protected], [email protected] Absact-Networking is an important concept in the field of computing in the contemporary world. While networking equipment are readily available on the market, people in need of computer networks however oſten turn to other trained and qualified networking personnel to set up their required local area network. The fact that a network can physically and logically be represented and configured in different ways makes network setup and configuration a time consuming job even for network specialists. The latter have to invest time in experimenting different network layouts to try to find an optimal configuration that will also reduce investment costs. The paper aims at proposing a network modeling and simulation tool that enables people, both network specialists and those with a minimal knowledge of networking concepts, to set up, configure, understand and evaluate different network configurations prior to real-life deployment. Kwords-network; simulator; configuraon; OSPF; Java router; I. INTRODUCTION protocols; Networking is a common term in the field of computer science which represents the interconnection of computers and network devices through the use of communication channels so as to enable the exchge of information between devices. Computer networking is possible with e wide array of network equipment available which can support wired or wireless network connectivity or both. Devices which form part of a computer network c be grouped according to the Open Systems Interconnection or OSI layer in which they have been designed to work, most commonly at Layer 1, Layer 2 or at Layer 3. Network devices c also operate in different network topologies, like the Bus network, the Ring network and the Star network [19]. There has been constant innovation in the field of computer networking over the years which has helped to standardize computer networking as well as enabling new features and technologies to be developed. For instce, the packet-based network which relies on Inteet Protocol version 4 (IPv4) quickly made its way to enhance switched networks and this protocol is gradually being replaced by the Inteet Protocol version 6 (IPv6) [20]. Static routing constraints and issues have been resolved by dynamic routing protocols like Distance Vector routing protocol and Link State Advertisement routing protocol. In addition to improved wired connectivity links with the use of Gigabit Etheet and Optic fiber links, wireless Etheet 978-1-4244-5540-9/10/$26.00 ©2010 IEEE 530 connectivity have recently emerged d have rther enhanced computer networking with technologies like Wired Equivalent Privacy (WEP) and Wi-Fi Protected Access (WPA) [21]. While networking equipment are largely available on the market, people to network specialists to set up their computer networks, either wired or wireless networks, at home or in offices. The factors affecting the network to be set up depend on the size of the network, the number and type of network devices in the network topology. It also becomes more time-consuming when it involves larger networks with complex network device configurations and when alteative network design solutions exist. In the end, a network may be set up and configured without a thorough understanding of the underlying networking concepts. This is oſten the case with networking students. In other cases, network specialists want to ensure at their configations are correct before actually configing the network devices, or they may want to evaluate different network configurations before setting up e most optimal one. To be able to do these, e network specialists rely on network simulators. This paper is an attempt to build a simple but robust network simulator that may be used by both network novices d experts. The rest of this paper is suced as follows: Section 2 talks about well-known network simulators. Section 3 presents a number of design issues to be considered in the implementation of our network simulator JNS. Section 4 presents the system architecture d the actual implementation of JNS. Section 5 provides testing results and evaluates our network simulator. Finally Section 6 concludes with ture works on JNS. II. RELATED WORK In the recent years, much effort has been made by numerous individuals and organizations regarding network simulation soſtware. While some open-source projects are barely known to the public, other simulation soſtware are known to be constantly improving to reflect the continuous chges in the world of networking. However, not all of them provide simil ctionalities. Below is an outline of some common network simulators and their drawbacks. The simulator is a network simulator that rs on Linux. Ns provide for the simulation of TCP packets, routing d multicast protocols. The ns simulator also provides for the simulation of wired and wireless networks, including satellite links [4]. The main drawbacks with the ns

The Network Simulator of Tomorrow - JNS

Embed Size (px)

Citation preview

Page 1: The Network Simulator of Tomorrow - JNS

The Network Simulator of Tomorrow - JNS

Leckraj Nagowah, M. Hashmi Domun and M. Vmar Ibn Waliyullah Computer Science & Engineering Department,

University of Mauritius, Reduit, Mauritius.

[email protected], [email protected], [email protected]

Abstract-Networking is an important concept in the field of computing in the contemporary world. While networking equipment are readily available on the market, people in need of computer networks however often turn to other trained and

qualified networking personnel to set up their required local area network. The fact that a network can physically and logically be represented and configured in different ways makes network setup and configuration a time consuming job

even for network specialists. The latter have to invest time in experimenting different network layouts to try to find an optimal configuration that will also reduce investment costs. The paper aims at proposing a network modeling and

simulation tool that enables people, both network specialists and those with a minimal knowledge of networking concepts, to set up, configure, understand and evaluate different network configurations prior to real-life deployment.

Keywords-network; simulator; configuration; OSPF; Java

router;

I. INTRODUCTION

protocols;

Networking is a common term in the field of computer science which represents the interconnection of computers and network devices through the use of communication channels so as to enable the exchange of information between devices. Computer networking is possible with the wide array of network equipment available which can support wired or wireless network connectivity or both. Devices which form part of a computer network can be grouped according to the Open Systems Interconnection or OSI layer in which they have been designed to work, most commonly at Layer 1, Layer 2 or at Layer 3. Network devices can also operate in different network topologies, like the Bus network, the Ring network and the Star network [19].

There has been constant innovation in the field of computer networking over the years which has helped to standardize computer networking as well as enabling new features and technologies to be developed. For instance, the packet-based network which relies on Internet Protocol version 4 (IPv4) quickly made its way to enhance switched networks and this protocol is gradually being replaced by the Internet Protocol version 6 (IPv6) [20]. Static routing constraints and issues have been resolved by dynamic routing protocols like Distance Vector routing protocol and Link State Advertisement routing protocol. In addition to improved wired connectivity links with the use of Gigabit Ethernet and Optic fiber links, wireless Ethernet

978-1-4244-5540-9/10/$26.00 ©2010 IEEE

530

connectivity have recently emerged and have further enhanced computer networking with technologies like Wired Equivalent Privacy (WEP) and Wi-Fi Protected Access (WPA) [21].

While networking equipment are largely available on the market, people tum to network specialists to set up their computer networks, either wired or wireless networks, at home or in offices. The factors affecting the network to be set up depend on the size of the network, the number and type of network devices in the network topology. It also becomes more time-consuming when it involves larger networks with complex network device configurations and when alternative network design solutions exist. In the end, a network may be set up and configured without a thorough understanding of the underlying networking concepts. This is often the case with networking students. In other cases, network specialists want to ensure that their configurations are correct before actually configuring the network devices, or they may want to evaluate different network configurations before setting up the most optimal one. To be able to do these, the network specialists rely on network simulators. This paper is an attempt to build a simple but robust network simulator that may be used by both network novices and experts.

The rest of this paper is structured as follows: Section 2 talks about well-known network simulators. Section 3 presents a number of design issues to be considered in the implementation of our network simulator JNS. Section 4 presents the system architecture and the actual implementation of JNS. Section 5 provides testing results and evaluates our network simulator. Finally Section 6 concludes with future works on JNS.

II. RELATED WORK

In the recent years, much effort has been made by numerous individuals and organizations regarding network simulation software. While some open-source projects are barely known to the public, other simulation software are known to be constantly improving to reflect the continuous changes in the world of networking. However, not all of them provide similar functionalities. Below is an outline of some common network simulators and their drawbacks.

The ns simulator is a network simulator that runs on Linux. Ns provide for the simulation of TCP packets, routing and multicast protocols. The ns simulator also provides for the simulation of wired and wireless networks, including satellite links [4]. The main drawbacks with the ns

Page 2: The Network Simulator of Tomorrow - JNS

simulator is that it is available on Linux only and it requires an understanding of OTcl programming language to be able to model network topologies for simulation [18].

The Cisco Packet Tracer software is a well known network simulator with an easy to use interface and having advanced features. It provides a virtual environment whereby network topologies, switching and routing can be designed, configured and simulated. The ease of troubleshooting makes it an ideal tool for networking students [2]. The biggest disadvantage with the Cisco Packet Tracer is that it is available only to Cisco Network Academy students [I].

OMNeT++ is a modular open-source simulation environment which can easily be implemented with new protocols. A command line interface is available as well [3]. OMNeT++ can be considered as a framework rather than simulator software. In fact, modules can be developed and added to OMNeT++ which can be used for various simulation environments. Integrating real world applications into OMNeT++ can be time consuming and complex since OMNeT ++ does not provide much support for the integration of real world applications [22].

The Georgia Tech Network Simulator (GTNetS) is another free network simulator which allows for the study of medium to large virtual computer networks [5, 17]. GTNetS attempts to represent the simulation environment in a similar manner as actual networks. GTNetS is however not an all-featured simulator software but is rather programming-oriented where customization is required by users so as to make a program as required for specific network simulations [13].

III. DESIGN ISSUES

The challenges to be considered for the design and development of a network simulator are very critical for a very high performance, real time network simulator. In this section we present the design issues to be considered for our network simulator, which are greatly influenced by an analysis of the existing tools and their features. A user friendly and uncluttered Graphical User Interface is very important. The network simulator should allow a practice and visualization environment for the designing, configuration, and troubleshooting of networks. The environment should enable users to design networks by using drag-and-drop capabilities. Another important feature of a network simulator is real-time network device configuration through the command line interface which allows for real-life simulation of device configuration like enterprise-class switches and routers. The simulator should also include an innovative feature of device configuration using a graphical user interface instead of the command line interface. This GUI configuration capability will be used by networking novices instead of the command line interface which requires the correct use of appropriate commands. Another important aspect of the network simulator is to allow users to observe virtual packets in real time by modeling network traffic and packet behaviours. The real-

531

time packet flow between devices should be graphically represented to allow users to interactively view the packet flow across network topologies. This real-time simulation shall allow a better understanding of the operations of the network devices by simulating their operations. The network simulator should display a simplified routing table for each router in the network. This feature will be very useful to networking novices and will help them to understand the operations of the router. Moreover, a network simulator must provide for both static and dynamic routing protocols in the router devices. The Distance Vector routing protocol and Link State Advertisement protocol are two essential routing protocols that should be implemented. The loading and storing of network topologies and configurations of network devices are also important in order to allow the configuration of devices in a stepwise manner.

IV. SYSTEM STRUCTURE AND IMPLEMENTATION

Based on the above design issues of a high performance, real-time simulator software and taking into consideration the limitations of existing network simulators, JNetworkSimulator, abbreviated as JNS, a Java-based network simulator has been developed. Rather than making modifications to existing open-source simulator software or using customizable framework software with plug-in modularity, JNS has been developed from scratch to avoid any risk of existing framework limitations or component rewrites in the case the core component is changed in the event of a software update.

The JNS simulator software has been built in various component layers. For optimal structure and interaction between these components, a three-tier system architecture has been preferred. This architecture has three main component layers, namely the Presentation layer, the Business Logic layer and the Data layer as illustrated in Figure 1. This software architecture makes it an excellent way to enhance software modularity. In this respect, any changes to be done in JNS affects only a particular component for a specific layer.

The Presentation layer is made up of Swing and A WT components since these make up the user interface part of the simulator which will be interacting with the end-user, as well as handling all user inputs to the network simulator software.

AWl

--

SImulation ospr & RIP Padc.et lenlnl KouUOI vGUallutton

Protocol

)

Page 3: The Network Simulator of Tomorrow - JNS

Figure I. The Three-tier software architecture

The Business Logic layer is made up of the components crucial to the functionalities of JNS. For instance, the Add and Delete Devices and Connections component is used to handle virtual network device addition and deletion as well as creation and deletion of network connection links in the simulator. The Device Configuration component handles network devices configuration via specific configuration windows depending on the network device being configured. The Simulation Testing component handles the software simulation while providing meaningful network simulation result outputs to the user. The OSPF & RIP Routing Protocol component is the key component providing Link State routing and Distance Vector routing protocols to network routers in JNS. Perhaps one of the most interesting aspects of JNS comes from the Packet Visualization component, which handles the display of the real-time network simulation with graphical packet flows in the JNS simulation window so as to provide for a better understanding of the network simulation to users. It should be noted that the SecurityManager component is a very important part of the Business Logic layer of the system. This component is responsible for user data validation from the graphical user interface part of the simulator software as well as for ensuring the correctness of real-time network simulation.

The Database layer deals with the relevant database transaction between the Business Logic layer and the Database component of JNS.

Object Orientation is a programming paradigm whereby the use of objects and features are emphasized regarding the object properties and interaction [15]. This means that real world objects can effectively be modeled in the system and features can be added and extended. Hence an object oriented programming language is advantageous to the design and development of our network simulator JNS since all the components and layers of the JNS architecture can be regarded as objects.

For a high performance, real-time network simulator, a robust programming language is needed. The Java programming language provides for the best features which can be implemented more rapidly compared to programming language like C++ [11]. For instance, the Write-once-Run-Anywhere capability makes Java an ideal choice since this provides for multiplatform capability [14] as long as the platform on which JNS would run has support for the Java Virtual Machine and comes with a windowing system. Also, Java provides other valuable features like Automatic Garbage Collection [10].

A user friendly Graphical User Interface which allows rapid device configuration is very important. Java Swing has been chosen to design the user interface of the network simulator as well as for the graphical packet flow visualization feature. The Object Oriented nature of Java and the features available in Java Swing allow for the effortless integration of the packet flow visualization feature in the network simulator.

532

An Integrated Development Environment (IDE) is to be chosen which provides essential tools in helping to design and build the simulator software quickly and efficiently. NetBeans has been found as an ideal IDE since it has very good features and the most interesting feature is the ease of designing graphical user interfaces using Java Swing [12]. This is indeed an important aspect of the IDE since this will help designing the user interfaces within the least time possible.

By making a comparison between various databases available, MySQL has been found to be an excellent choice for a database to be used with a network simulator [9]. For instance, MySQL is reputed for its stability, robustness and performance since MySQL effectively uses a threaded model [23]. Also, MySQL is an ideal multiplatform component that can be used for the database part of a network simulator. JNS can also load and save network topologies where XML file contents are dynamically generated, containing the individual configuration of each saved network device in the network topology.

Dynamic device creation, deletion and configuration are among the most important functionalities of JNS. Device objects are created by simply dragging the device icon into the main workspace. A new device object is thus created and is represented by the new icon on the workspace. All device icons have associated menus when selected, which enable users to delete the device, delete connection links or open a configuration window. Device deletion removes the device object from the JNS workspace and deletes all connections to neighbouring network devices.

Different configuration windows exist in JNS for each device type. Thus, depending on the device type being selected, a specific configuration window is created where the device attributes are loaded and are available for further configuration.

Routing Information Protocol (RIP) has been chosen for the Distance Vector routing protocol. However, the most interesting and challenging implementation is that for the Open Shortest Path First (OSPF) routing protocol to be used for the Link State Advertisement protocol [7]. The OSPF routing protocol uses Dijkstra algorithm [16] which is independently used by each router device to compute the shortest path [8] for all interconnected routers running the OSPF routing protocol.

The OSPF protocol works by routing updates being sent to neighbouring routers on multicast IP address 224.0.0.5. Routers send updates to the Designated Router (DR) on the multicast address 224.0.0.6. The DR then calculates the network routes and updates its network topology information, which is sent to all other routers. The following part of this section describes the implementation of the non-recursive, list-based Dijkstra SPF algorithm.

The router currently running the algorithm is known as the rootNode. There are five lists to be used in the shortest path first (SPF) algorithm. The ShortestPath list contains all known connected routers for which the shortest path has been calculated. The TentativePath is a list containing

Page 4: The Network Simulator of Tomorrow - JNS

routers where the paths may not necessarily be the shortest path to the connected routers. The list nextRoutersList contains temporary information about neighbouring router nodes for the currently processed router node by the algorithm. The FinishedNodes list contains the router ID which has finished taking part in the SPF algorithm. Last, the list TopologyList is sent by the DR to all other routers containing information on all connected routers participating in the OSPF routing protocol.

First, the rootNode adds its own information in the ShortestPath list while pointing to itself with a link cost of zero.

In the second part of the algorithm, the last router added to the ShortestPath list is retrieved. The next hop router which the retrieved router points to is added to the FinishedNodes list, with all the next hop routers stored in nextRoutersList. If nextRoutersList is empty, there are no more neighbouring routers to investigate. This makes it the end of the Dijkstra algorithm and the algorithm stops. Otherwise, for every router in nextRoutersList, the link cost is calculated by making a sum of the link cost between the rootNode and the ShortestPath router and the link between the ShortestPath router and the neighbouring router in nextRoutersList. This is known as a Tentative link cost, and is not the final link cost. If the TentativeList is empty, the current next hop router is stored in it. Otherwise, if the current next hop router already exists in the list but with a higher link cost, then this router is replaced with the current router having lower link cost. At this point, all neighbouring router for the current ShortestPath router node have been added to TentativeList.

In the third part, all link costs of the neighbouring nodes in TentativeList are compared for each router having the smallest link cost value. Before adding this least cost router node to the ShortestPath list, the list is checked whether it already contains that particular least cost router node. If not, the router with the least cost is added to it.

If the TentativePath list is not an empty list then the second part of the algorithm is repeated again until the TentativePath list is empty. Otherwise, the algorithm ends.

V. TESTING AND Ev ALVA nON

After the development of JNS has reached completion, it was checked whether the simulator is consistent with the set of design issues presented earlier in the paper. The drag­and-drop feature of JNS proved to be very beneficial since it allows for the rapid creation of a network topology, as shown in figure 2.

533

n_ , " '

�---

�\ ...... '---.. /

// � -�

/ -� -

Figure 2. JNS - The network Simulator

A network topology was then prepared from which various tests were to be carried out. For the network devices in the test network topology, different IP addresses and link speed were configured for the different PCs and routers and different test cases were prepared. First, tests were carried out regarding the flow of packets moving between the relevant devices as shown in figure 3.

• Swrtch:l

PC:2

-

/ Rout.r.!

Swrtch:2

I Router.2

• Routed Swrtch:3

Figure 3. JNS - Packet flow visualisation - OSPF Test

The next testing phase was to test for OSPF shortest paths and related routing updates for the routers' Routing Tables as shown in figure 4.

IMRoutin9T,bl. [QJ�� Type N�ork A�, Subnet: Mil. Port Num . • Next Hop L M�tric Admlnisi:r.

C 1721616,0 25525525", Ethemetl 1721616.1 0 0

1721617,0 255.255.25 ... Ethernet2 1721617.2 0

1921681,0 255.2551.5 . .. Ethernet3 1921681.1 0 0.0.0,0 255.255.25". Ethemet4 0,0,0,0

0 1721618,0 255255,25". Ethernetl 1721616,2 10 lIO

0 192168.2.0 255,25525", Eth.metl 172.1616,2 10 lIO 0 1921683.0 25525525", Eth.metl 1721616,2 20 lIO

Figure 4. -Routing Table of router I

Finally, tests were carried out on routers Command Line Interface (as shown in figure 5) where static routes were added and removed and the resulting routing table being checked for consistent simulation results.

All tests carried out on JNS were successful. Furthermore, a load testing was performed with JNS and

Page 5: The Network Simulator of Tomorrow - JNS

MySQL running on a Pentium 3, lOOOMHz computer. It was noticed that for a very large network topology with many devices and with all routers running OSPF dynamic routing protocol, the simulator still yielded accepted results. We concluded that simulation of very large networks on old machines does not affect the simulation results but only makes the software execution slower.

There are many features present in JNS which makes it different from other network simulators. For instance, JNS has been built using the Java programming language, with the biggest advantage being its portability and features like the Automatic Garbage Collector. Network devices makes use of Threads using a Cached Thread Pool Executor and with each device Thread executing irrespective of others, it is thus possible to simulate real-life networks while delivering high performance simulation. Also, network simulation can take place in two modes, either the normal real-time mode or in simulation mode, where the packet flow visualization feature makes it easy to understand packet flow in simulated networks, a feature which not many network simulators have. Also, the rapid configuration of network devices through the graphical user interface (figure 6) makes JNS unique. No other network simulator provide for this innovative feature which allows the rapid and easy configuration of devices without the use of the command line interface. The advantage of object orientation makes it very easy to implement additional devices, protocols and other technologies.

Hence in our view, JNS network simulator is a complete and robust network simulator since all the critical features of a network simulator as identified in the Design Issues section were successfully implemented in JNS using available technologies. However, in this current version, JNS is only limited to simulation of local area networks.

�Q''''''''J '''''' C__ � �1

�IrConl�4t_ ,",Mt.c(� .... "itAW�L.�OSIf C--Wl_Ird�_(

m c-.. .... "-llI'f CenfVw. __

P..M1d�1fI\aWR �orl�.�_.""" Int"'_c ......... 0<7

........, IUiUU '"

",,,.,.., U1l611.l VB

, ..... """ I OU6l . .u

,- OJI" ,., �1Icl'«Wd''9U',t� lr'C.(�a.on(oI'l'llNtllh,Oftt paline. RoIoItIlcl.I(��,� �.,...I{(ont" • ..,._.,.-'cItf'(,

... �

...

...

Iowtn-UtenLq 1>"., ... 0' ltl.16&.lOJ �1o.1».l»lI IoI.cn'Hf0f'!h901}1:,. �",.J((OI'Ifog�

........

...

...

Figure 5. -The Command Line Interface

534

{!1RouterJ Router Configur,tJon lBTID� OtYICt ConfiQullIbon lnttrhct Confioumon SUbc Roub" RIP ("OSPFl Comm,nd lint lnterbet

rOSPfconfi9UIlItlOn

En.bltOSPF

rAdd OSPF NttwOrtc-===:::::;- rOSPF Network list N,two"'''''",,' 1;;2.li. · l. �

"-

2.,,-•. L

-0/

-25

-' .25

-, .2

-" .

-0/

-"',�'"

SubnttM'lk: 1255.255.255.0 192.168.2.0/2S5.2S5.2S5.0/Atn:O

Atu: 1,,-' ___ -'

� I � I L-______ ��. ______ ====�.

----- --- ---�

Figure 6. -GUI to add network routes to OSPF routing process

VI. CONCLUSION AND FUTURE WORKS

The use of Object Orientation and Java programming language for developing JNS makes it entirely possible to model real-world network devices as real-time network device objects. JNS features high performance and real-time simulation of Ethernet Local Area Networks. Some successfully implemented features are the easy drag and drop of network devices, interactive packet flow visualization system showing the configuration of routers via their routing tables, easy configuration of network devices through a GUI, real-life simulation using the command line configuration, static and dynamic routing protocols (RIP and OSPF) and loading and saving of network topologies using XML and MySQL. Our test also showed that simulation of very large networks on old machines does not affect the simulation results but only makes the software execution slower. All these features make JNS a robust, multiplatform and an ideal real-time Ethernet simulator.

In our view, JNS is a better network simulator compared to others. For instance, JNS provides for dynamic creation, deletion and configuration of devices and routing protocols in real-time simulation, compared to script-based simulation environments like in the ns simulator. Also, JNS provides for both command line interface configuration of routers as well as graphical user configuration, the latter providing for faster configuration since it is much easier to configure devices using the graphical user interface. JNS has been modelled according to real-world network devices through the notion of object orientation approach, and with the Three-tier System Architecture model, the addition of other network devices and protocols in JNS becomes easy compared to existing network simulators. JNS can also use both XML files and a MySQL database to load and store network topologies and device configurations, hence accounting for greater flexibility compared to other network simulators.

However, the development of JNS is not limited to the successful implementation of these features. Indeed, there are additional features that can enhance the existing

Page 6: The Network Simulator of Tomorrow - JNS

functionalities of JNS. As future works, the implementation of the next generation of the Internet Protocol, namely IPv6, will be one of our main focus. Also, the local area network limitation of JNS can be overcome by extending its ability to make Wide Area Network (WAN) interconnection possible between routers in JNS and provide relevant communication protocols for the WAN links. Furthermore, wireless devices can be implemented so as to take into consideration devices and protocols working with Wireless LANs. Another fascinating feature that could be implemented is the Cloud Collaboration System, where multiple users in a real LAN can participate in the setting up, configuration and testing of network devices in real-time in JNS. This would indeed be of considerable advantage for labs sessions on networking and in large organizations where different persons may be responsible for a network setup. Last but not least, a compact version of the software in J2ME can be developed so that administrators can move around the network with the topology on their mobile phone or PDA.

REFERENCES

[1] Cisco Systems, Inc., 200S. CCNA Discovery 4.0. Cisco Networking Academy, Cisco Systems, Inc. Retreived from: http://cisco.netacad.netl [Accessed 13 October 200S]

[2] Cisco Systems Inc., 200S. "Packet Tracer 5.0". Cisco Networking Academy, Cisco Systems, Inc. Retrieved from: http://www.cisco.comlwebllearninglnetacadlcourse _ cataloglPacketTr acer.html [Accessed 10 October 200S]

[3] OMNeT++ Home Page. Retrieved from: http://www.onmetpp.orgl [Accessed 15 October 200S]

[4] The Network Simulator ns-2. Retrieved from: http://www.isLeduinsnamlns/ [Accessed 15 October 200S]

[5] Georgia Tech Network Simulator (GTNetS), Georgia Institute of Technology. Retrieved from: http://www.ece.gatech.eduiresearch/labsIMANIACS/GTNetS [Accessed 15 October 200S]

[6] XStream Home Page, Retrieved from: http://xstream.codehaus.orglindex.html [Accessed 11 February 2009]

[7] Waldura, R. "Dijkstra's Shortest Path Algorithm in Java", 2007. Retrieved from: http://renaud.waldura.comldoc/javaldijkstral [Accessed 11 Febrnary 2009]

[S] Bhatia, M., "Dijkstra Algorithm Demystified", Routing Freak, WordPress. Retrieved from: http://routingfreak.wordpress.coml200S/03/06/shortest-path-first­algorithmdemystifiedl [Accessed 3 January 2009]

[9] Sun Microsystems, "MySQLTM Provides Scalability, Reliability, and Enterprise Support at a Lower Cost", April 2009

[10] Sun Microsystems, "Java SE 6 Performance White Paper, Java™ Platform Performance Engineering", Retrieved from: http://java.sun.comlperformance/reference/whitepapers/6...Performanc e.html [Accessed 10 Jan 2010]

[11] Ahuja S. P., Eggen, R., and Daucher, C., "Performance Evaluation of Java And C++ Distributed Applications In A CORBA Environment", Proceedings of the International Symposium on Performance Evalnation of Computer and Telecommunication Systems (SPECTS 2002), San Diego, CA, July 2002.

[12] Binstock A., "Eclipse 3.3 or NetBeans 6.0? Finally, there's a decision to make!", JavaWorld. Retrieved from: http://www.javaworld.comljavaworldljw-03-200S/jw-03-java­ides030S.html?page=1 [Accessed 25 September 2009]

[13] Emmanouil F., "Deadlock Avoidance with Virtual Channels, University of Barcelona", 2009

535

[14] Flanagan D., Java in a Nutshell, 5th Edition, O'Reilly Media, Inc., 2005.

[15] Lee R. C. and Tepfenhart W. M., Practical Object-Oriented Development with UML and Java, Prentice Hall, Pearson Education, Upper Saddle River, New Jersey, 2003

[16] Lucent Technologies, "OSPF and the Internet". Retrieved from: http://portmasters.comlmarketinglwhitepapers/ospf.pdf [Accessed 25 April 2009]

[17] Riley G. F., "The Georgia Tech Network Simulator", Proceedings of the ACM SIGCOMM 2003 Workshops, 2003

[IS] Meeneghan P. and Delaney D., "An Introduction to NS, Nam and OTc1 scripting", National University of Ireland, Maynooth, Maynooth, Co. Kildare, Ireland, 2004.

[19] Tanenbaum, A. S., Computer Networks, 4/E, Vrije University, Amsterdam, The Netherlands, 2003.

[20] Convery S. and Miller D., "IPv6 and IPv4 Threat Comparison and Best-Practice Evaluation (v1.0)", Cisco Systems, 2004.

[21] Wong S., "The evolution of wireless security in S02.11 networks: WEP, WPA and S02.11 standards", SANS Institute, 2003.

[22] Mayer C. P. and Gamer T, "Integrating real world applications into OMNeT++",200S.

[23] Liu X., Heo, J. and Sha, L, "Modeling 3-Tiered Web Applications", Proc. of 13th IEEE MASCOTS, Atlanta, Georgia, 2005.