Computer Networking Laboratory Projects
Computer Networking Laboratory Projects
Computer Networking Laboratory Projects
ABSTRACT
The formidable task of not only trying to balance application and theory but also to
keep up with the rapid advancement in technology is always upon Computer
Science mentors. This paper presents a series of laboratory project descriptions that
are used in a laboratory model for a curriculum that strives to meet the challenges
presented by the rapid advancement of telecommunication technology. These
laboratory projects are divided in two main categories: hands-on network
configuration and network programming.
INTRODUCTION
The formidable task of not only trying to balance application and theory but also to keep
up with the rapid advancement in technology is always upon Computer Science mentors. The
rapidly evolving telecommunications technology presents an ever increasing demand from the
industry to better prepare future scientists and technicians who are adept in the field.
This paper presents a series of laboratory project descriptions that are used in a
laboratory model for a curriculum that strives to meet the challenges presented by the rapid
advancement of telecommunication technology. These laboratory projects are divided in two
main categories: hands-on network configuration and network programming.
___________________________________________
*
Copyright © 2003 by the Consortium for Computing Sciences in Colleges. Permission to copy
without fee all or part of this material is granted provided that the copies are not made or
distributed for direct commercial advantage, the CCSC copyright notice and the title of the
publication and its date appear, and notice is given that copying is by permission of the Consortium
for Computing Sciences in Colleges. To copy otherwise, or to republish, requires a fee and/or
specific permission.
226
CCSC: Southeastern Conference
227
JCSC 19, 3 (January 2004)
For the network monitoring part, the students are required to use the following systems
programs: ipconfig, netstat, arp, and an open source software: ethereal. These system tools
are used to gather pertinent network configurationinformation. After performing an investigation
of various network configurations, the students need to interpret and analyze the collected data.
These data are classified into two main classes: static and operational. The static information
include, among others, hostnames, IP addresses, hardware addresses, gateway addresses,
DNS server addresses, subnet masks, and DHCP statuses. The dynamic or operational
information include a) network interface statistics on the number and size of packets sent and
received, and b) IP/TCP/UDP statistics on the number of received packets, the number of
failed connections, and the number of retransmissions.
For both components of the project, the students are required to submit a written report
on all the data gathered, the experiences gained, and detailed analyses and interpretations of the
results.
228
CCSC: Southeastern Conference
229
JCSC 19, 3 (January 2004)
230
CCSC: Southeastern Conference
}//end of run
231
JCSC 19, 3 (January 2004)
The GUI displays the TicTacToe board and provides manual entry for data that is
required by TCP communication. Before the start of the game, a player selects a game piece
232
CCSC: Southeastern Conference
(an O or an X) and enters the remote IP address and port number needed for communication.
The game is started by clicking on the Start Game button. Figure 6 depicts a message dialog
window that pops out as soon as a game winner is determined.
A source code for this project is provided to help the students get a quick start on their
implementations. This assignment, which is comparable to the previous project, has two (2)
main class implementations. However, this project requires a more elaborate implementation
and the completion of both classes. The first class, TicTacToeGUI, is a semi-complete
implementation of a GUI based TicTacToe game using the Java Swing APIs. The methods that
need to be completed on this class are: the checkWinner( ) and the showMove( ) methods.
The code snippet for both is shown in Figure 7.
233
JCSC 19, 3 (January 2004)
//
// 2. Check who made the move. Thus,
// if (myMove) { //it is a local move
//
// ............ omitted code snippet in here. Check the
// source supplied for the omissions!
}//end of showMove
The second class implementation, TCPThread, extends a Thread class. This class has
been stripped of some important code implementation of a client-server TCP communication.
The students need to complete the methods, run( ) and sendMsg( ), in order to make it
functional. The specifications for these methods are shown in the code snippet in Figure 8.
}//end of try
catch (SocketException se){
System.out.println("Socket Exception : " + se);
}
catch (IOException e) {
System.out.println("Exception : " + e);
}//end of catch
}//end of while
}//end of run
234
CCSC: Southeastern Conference
The students are advised to test their implementations by running the application on two
(2) computers and play a game of TicTacToe!
235
JCSC 19, 3 (January 2004)
ACKNOWLEDGEMENTS
This paper is based upon a project partly supported by the National Science Foundation
under grants DUE-9950946 and DUE-0125635. Opinions expressed are those of the authors
and not necessarily of the Foundation.
REFERENCES
[ACM91] Computing Curriculum 1991. Report of the ACM/IEEE-CS Joint Curriculum
Task Force. ACM Press. 1991.
[Darb01] Darby, C., et. al. Beginning Java Networking. WROX Press Ltd. Birmingham,
UK. 2001.
[Davi97] Davis, G., et al., IS'97 Model Curriculum and Guidelines for Undergraduate
Degree Programs in Information Systems. 1997.
[Deer89] Deering, S. "Host Extensions for IP Multicasting," RFC 1112. Website:
http://www.rfc-editor.org. 1989
[Fink94] Finkel, D. and Chandra, S. NetCP-A Project Environment for an Undergraduate
Computer Networks Course. SIGSE Bulletin, Vol 26 No. 1, 1994.
[Haro00] Harold, Elliotte R. Java Network Programming. O'Reilly & Associates, Inc.
Sebastopol, CA. 2000
[Lank98] Lankewicz, L., Resources for Teaching Computer Networks. The Proceedings of
the Twenty-ninth SIGCSE Technical Symposium on Computer Science
Education. Atlanta, GA, 1998.
[Post80] Postel, J.B. "User Datagram Protocol," RFC 768. Website:
http://www.rfc-editor.org. 1980.
[Post81] Postel, J.B. "Transmission Control Protocol," RFC 793. Website:
http://www.rfc-editor.org. 1981.
[Reil02] Reilly, D and Reilly, M. Java Network Programming and Distributed
Computing. Addison-Wesley. Boston, MA,. 2002.
[Reyn96] Reynolds, Charles and Fox, Christopher. Requirement for a Computer Science
Curriculum Emphasizing Information Technology Subject Area: Curriculum Issues.
SIGSE Bulletin, Vol 28, No.1. March 1996.
[Siva99] Sivalingam, K., Rajaravivarma, V., Education of Wireless and ATM Networking
Concepts Using Hands-On Laboratory Experience. The Proceedings of the
Thirtieth SIGCSE Technical Symposium on Computer Science Education.
New Orleans, LA, 1999.
236
CCSC: Southeastern Conference
237