The main aim of this project has been to develop teaching tools for network protocols using Java applets. Simulators have been created to introduce the user to various protocols like CSMA/CD, the Sliding Window Protocols and Routing Algorithms. These applets cover a number of aspects of these protocols and present these to the user in a simple and easily understandable form.
The basic requirement of any simulation is that it should imitate as closely as possible the working of the real-world entity in question. Only if this condition is satisfied can the simulation convey to the user the information correctly and comprehensively. Another property of a good simulator is ease of use. When a person uses a simulator, it is with the expectation that he will learn about the topic in a better and more convenient way than by merely reading about it. If the simulator is not easy to use, the user will have to first learn how to use it and in doing so he might lose interest, since he will have had to work more than expected for the same, or sometimes fewer gains. The applets have been developed with the above requirements in mind.
Each of the applets provides the user with a graphical interface, which is convenient to use and is also visually appealing. These features help in realising a relaxed and motivating learning environment. Online help is available at the click of a button. This guides the user through the working of the particular applet. Controlling the applets is straightforward and logical. The speed of the simulation can be regulated, where possible, so that a beginner does not find it too fast and a slightly experienced user does not find the delays frustrating. Another aspect of this speed regulation is that the performance of the applet can be made independent of processor speed so that it works well on a wider range of machines. Legends are provided in all the applets so that the various symbols and colors used for the objects can be easily interpreted by the user. All the applets provide the user with a number of options, which allow him to try out the protocols with different parameters so that a number of situations encountered in a real network can be simulated. Hence, the user can study the adaptive behavior of the respective protocol in a changing networking scenario by simulating ideal as well as practical situations.
In the Java applications developed for simulation of the Token-Ring protocol and the Distance Vector Algorithm, the applications depicts the exact working of both the protocol and the algorithm through the use of virtual terminals (DOS sessions), but, the user should realise that tokens/data packets are actually being passed between the ports and hence the application achieves a dual function of being a working ‘virtual’ model of a ring network employing the Token-Ring protocol or of a network using the Distance Vector Algorithm to dynamically resolve routing decisions, in case of the latter. This would not have been achieved, had a Java applet been designed to implement the same. Also, program-user interaction (at the command line) is much more in case of an application. But, the advantage of an applet is that it is extremely user-friendly (several services/features can be incorporated and realized with the click of a button) and can be made visually appealing, hence the user can clearly understand the features and the working of the protocol/algorithm being implemented. Thus an applet can be tagged as a relatively better teaching tool as compared to a Java application, inspite of obvious advantages of the latter.
In conclusion, this project fulfils its goal by providing a number of comprehensive tools which simulate various network protocols. The convenient interface provided ensures that these teaching tools will be used to good effect, thus conveying knowledge about the protocols to many students. Since the simulations have been done in Java, distribution over the World Wide Web will give this project a wider reach, allowing people in different countries as well as those working on different platforms to access it. The work done so far provides a sound base for the development of many more such tools, which should go a long way in accomplishing the objective of Computer-Aided Teaching.Suggestions for Further Work
A number of Java applets have been developed as part of this project. These include simulations of protocols like the sliding window protocols, routing algorithms, CSMA/CD and Token-Ring. While these tools provide a considerable level of functionality, there are several enhancements that can be made to add to the utility that they offer.
The implementation of the "Go Back n" protocol is along the lines of the sliding window protocol. The options offered are similar. Therefore here too the user can be allowed the option of lost acknowledgements. Since the protocol maintains a timer for each packet sent, timer management is an important issue. Including the working of the timers in the simulation will be beneficial to the user. The sliding window protocol using "Selective Repeat" is an extension of this protocol. Minor modifications in the modules of the Go Back n simulation can lead to a simulation of the Selective Repeat protocol. With this modification the user can clearly observe the increase in the efficiency of bandwidth utilization.
The applet that simulates the CSMA/CD protocol considers a 10Mbps Ethernet and implements the Binary Exponential Backoff Algorithm for collision resolution. To extend the functionality, the user should be allowed to select the bandwidth (10 or 100Mbps). Support can be provided for acknowledgements so that the working of the protocol can be observed for this variation too. Presently the simulation only displays the working of the protocol and shows some statistical data like number of packets sent by each node versus packets still to be sent. More such data can be collected and saved for later use. Once the user has stopped the simulation, he can retrieve the data gathered and study the performance under the various conditions simulated. This data can be represented in graphical form. An example could be a graph of channel efficiency against the number of stations in the network or a graph displaying average waiting time for each node against number of nodes. Based on this data the user can draw his conclusions on the working of CSMA/CD. The user should be allowed to change other parameters like packet size and slot duration. These options will bring out many more aspects of the protocol and will benefit the user.
The applet developed for the Routing Algorithms is functional only for basic static algorithms like Fixed Routing and Flooding. This can be extended to simulate other static algorithms like Flow-based Routing and also for dynamic algorithms like Distance Vector Routing and Link State Routing. Flooding can be enhanced by simulating Selective Flooding and implementing the other methods that flooding uses to limit the number of packets in the network, other than the one already shown.
Presently the user is presented with a pre-defined network that cannot be modified. He is only allowed to regulate the speed of the simulation by setting it to any of the three levels on offer. More options need to be available for the simulation to be truly effective in achieving its objective. The user should be allowed to make changes in the bandwidth across a link and the volume of traffic along a link. Network changes like addition or deduction of a link should be offered. This should give the user a clear picture of how the algorithm functions, what decisions the algorithm takes in different situations and what results are produced due to these decisions. The best enhancement would be to allow the user to construct the network completely instead of offering a pre-defined network. The pre-defined network may still be included in the simulation by giving the user the option of constructing the network himself or working with the standard network. These changes will result in a comprehensive simulation tool.
The Java applications developed to simulate the working of the Token-Ring protocol and the Distance Vector Algorithm are both efficient simulators in their own right, apart from acting as ‘virtual’ network models for their respective protocols. Though both the applications perfectly simulate the corresponding protocols, the user has to initially understand how the application is to be run. If the user is a novice, then there is the likelihood of him losing interest in studying the protocol if he first has to get oriented with the working of the application. So, in order to make these applications better teaching tools for both novices and experts alike, they can be improvised upon and enhanced by converting them to applets, though this means compromising on their functionality as virtual network models.
All the teaching tools developed provide the user with online help on using the simulator. While this definitely allows the user to learn how to control the simulator, a document explaining the particular protocol will help the user immensely. This can be integrated into the applet so that it is accessible like the online help or a separate HTML document can be prepared for this purpose. In this way the user can first gain a background on the protocol before the simulation. Similarly, if he has any doubts about the working of the protocol during the simulation, he can quickly refer to the document. Ideally the explanation should contain text as well as diagrams so that it is easier to correlate what was read with whatever was observed during the simulation.