Design, Implementation and Use of a Remote Network Lab with Multiple Users Support as an Aid Teaching Computer Networks

This article presents the design, implementation and use of a remote network lab with multiple users support as an aid to teaching computer networks. The purpose is to enable multiple students complement their theoretical learning with practical experimentation in networking devices which can be carried out synchronously to theoretical classes and from any room with internet access. Unlike the current solutions based on mainly software emulation and simulation, the students interact remotely with commercial network devices, such as cutting-edge and widely used switches, routers and firewalls at the workplace. This proposal reduces the expenses or installing new laboratories in all the campuses where lectures are held and also moving the students to laboratories that are not located near their classrooms. The use of the remote laboratory has been tested with senior students majoring information technology engineering. The results shows that a remote network lab is an effective aid for teaching computer networks in a remote and secure way.


Introduction
The Computing Engineering Curriculum consists of a group of areas that develop basic skills to be used when the graduated engineer works. These topics are divided into 5 specialized disciplines: Computing Engineering, Computer Science, Information Systems, Information Technologies and Software Engineering. The study program of an engineer should comprise all these disciplines.
The ACM IEEE in [1] shows each of the topics that should be taught in each discipline along the years of study. In this document, the importance of the network and connectivity teaching can be appreciated for each of them in the study plan of a computer science engineer. Then the arising questions are: what are the most relevant topics that should be taught? Is it necessary to do lab practices or is it enough with the theoretical approaches?.
The answers to these questions are found in the document called "Guidelines to computer support in a network environment" ACM [2], where some content areas and the topics associated to them are identified, such as, organization environment, documentation and technical reference, hardware and software, among others. In this document, it is remarked the need to have the necessary elements to allow the student to interact with different devices of connectivity. The above is reinforced by Workshop on Computer Networking: Curriculum Designs and Educational Challenges [3], where the participants agree on the need to have laboratories implemented with connectivity elements, to teach networks.
Moreover, IEEE ACM in [1][2], as well as in the different organizations participating in the Workshop on Computer Networking [4] agree with the idea that teaching computer networks should be divided into 60% theory and 40% practice. Therefore, it can be concluded that it is important to teach theory and practice to engineer students, being more relevant in Information and Communications Technologies (ICT), the engineer has to deal directly with both network software and hardware.

Use of Laboratories as a Teaching Aid
A network lab consists of a room that has network equipment such a switch, router, firewall and computers. With this equipment the students can put into practice the knowledge learned from theory about computer network. However, the purchase of these devises and lab maintenance is expensive. The implementation and maintenance of a laboratory like this is around US$ 50,000 and the maintenance about US$1,000 per year. This laboratory can be used by several courses like Networking Lab, Digitals Systems and System Administration. In Table 1 is listed, as example, the equipment of the Network Laboratory of the Computer Department, of Universidad de Valparaiso, Chile. Due to the high costs, it is not possible to implement a network laboratory in all physical locations where they are teaching computer networks.
The traditional approach to teach network computers, that includes theory and practice, consists of implementing a network lab, lecturing network in a classroom and later taking the students to a network lab (see Fig. 1)

Fig. 1: Traditional Teaching in Networks Computers
The approach showed in Fig. 1has the following problems: a) A teacher or assistant, to monitor the activities achieved by the students, is always required at the lab. This reduces the availability of the lab to the students. b) Lab activities can only be done face to face. There is no option of distance working.
In case teaching is done away from the lab: d) Students can not be transferred from the classroom to the place where the lab is located because of student´s availability or because of geographic distances. e) Labs can not be carried to the teaching place. f) It s not possible to implement a lab in each room where teaching is held because it is very expensive.

Existing Methods and Tools to Remote Support for Teaching
There are several solutions to meet the requirements of equipment to support network teaching. Some of them are shown in Table 2. However, none of these tools is a teaching aid system based on interaction and configuration of commercial network equipment as the equipment of Universidad de Valparaíso described here.
In [15] the authors presented a new methodology for a remote network lab as a tool to support teaching of computer network. That proposal allows the student to complement the learning of the theory and practical (hands-on) experimenting in network devices simultaneously, but it has the following disadvantages: • There can be only one student using the application. However there are many devices in the lab.
• It doesn´t have a secure communication channel between server (system) and client (student).
This article presents the design, implementation and use of a remote network laboratory with multiple users support to aid teaching computer networks. The main objective is that the multiple students simultaneously be able to complement his/her theoretical learning through practical experiences with network devices located in a network laboratory using a secure channel communication (see Fig. 2).

Figure 2:
Remote networks laboratory as an aid to teaching computer networks.
The proposal of using a remote laboratory presents the following advantages: • It reduces the costs of implementation. It only requires installing a network lab to be shared by different lecturers simultaneously form any place with Internet access.
• It increases the schedule availability of the laboratory. The students can access to the lab simultaneously with the network lecture, anytime and from anywhere.
• It increases the geographic availability. A network course with theoretical and practical classes, can be taught from anywhere with internet connection.
• There is independence to choose any make and model devices. Any brand name or type of device can be useful for interacting.
• It increases the security using an encrypted channel to communicate server and client.

Implementing the Proposal
The setting up is a system that allows the access to a remote lab from Internet. The student plays the role of clients who accesses via Internet to a connectivity server. This server lets the students interact with the equipment located in the network lab (router, firewall, switch, computers, etc) since this is connected with the laboratory devices. This system consists of the elements indicated in Table 3 and their interconnection is shown in Fig 3. Secure Channel (multiple users) (Real Devices)   Using JAVA APPLET and TCP/IP protocol makes the interaction between client (client socket) and networking equipment (server socket) through Internet using an encrypted channel (Fig. 5). There are 4 sets (2 host + 1 Firewall + 1 Router + 1 switch each one) connected to server using serial port (RS-232) in the network laboratory and a thread for each device.

Testing and Results
The development was based on the fundamentals of three-tier architecture, applying the Model-View-Controller design pattern, which allows to separate the user´s view from the business logic.
Being a new implementation, it is necessary to perform testing of software to detect errors or defects that may exist during development, the main activities of this phase are: unit, integration and acceptance tests.
The unit tests were made using the followings open source tools (see Fig. 6    In both, unit and integration tests, the results are excellent and the objectives are reached at 100%. In the acceptance tests, the users (10 students) are consulted about reliability, correctness/consistence and subjective satisfaction. In Table 4 is showed the percentage of users who responds from 1 (very bad) to 5 (very good) for each kind of test. The students are consulted too about the software use. The results are showed in Table 5. As we can see, the results are more than satisfactory in almost every test, especially in reliability and general acceptance. The results show the proposal is accepted for the users (students).

Conclusions
In this article, is presented the design, implementation and use of a remote network lab with multiple users support as an aid to teaching computer networks. This proposal allows multiple students to complement the learning of the theory and practical (hands-on), experimenting in real network devices simultaneously with theoretical classes from any room with Internet access using a secure channel communication. Unlike the current solutions, this proposal allows the interaction with cutting edge commercial devices widely used at the workplace. The implementation of the proposal is based in a 3-layer JAVA web developing model, allowed to keep the business logic separated from the view, thus the development of the necessary objects was simpler and problems could be detected beforehand. Open source tools are used to automatization of testing, including unit, integration and acceptance tests. The use of the remote laboratory has been tested with senior students majoring information technology engineering. The results show a great acceptance of the proposal demonstrating that a remote network lab is an effective aid for teaching computer networks in a remote and secure way.