276 IEEE TRANSACTIONS ON EDUCATION, VOL. 45, NO. 3, AUGUST2002
Understanding and Implementing Computer Network
Protocols Through a Lab Project
Mohamed Watheq El-Kharashi, Student Member, IEEE, Glen Darling, Brent Marykuca, and
Gholamali C. Shoja, Senior Member, IEEE
Abstract—This paper describes a lab project in computer com-
munications and networks for senior undergraduate students in
computer science and engineering. Given detailed specifications,
students are asked to implement a data link layer (DLL) that in-
tegrates correctly with other provided layers to obtain a complete
working network stack. This lab gives the students the opportunity
to learn how to read formal specifications for a network project and
write a complete piece of source code. It provides a comprehensive
environment for students to write software for a network protocol,
test and debug it, and observe its working behavior. In this paper,
the authors present a technical description of the project and a dis-
cussion of related educational issues.
Index Terms—Computer communications and networks educa-
tion, data link layer (DLL), network architecture, network proto-
cols, open systems interconnection (OSI) reference model.
I. INTRODUCTION
C
OMPUTER communications and networks is a standard
topic in undergraduate computer science and engineering
curriculum. There has been an increasing interest in the course
because of the growing popularity of the Internet and the
importance of networking in business environments. A lab
project for a computer communications and networks course
that fourth-year undergraduate computer science and engi-
neering students take at the University of Victoria, Victoria,
BC, Canada, is described in this paper [1].
In the lab, the authors adopt a three-layer network architec-
ture that consists of a physical layer, a data link layer (DLL),
and an application layer. Provided with application and phys-
ical layer software, students design and implement the logical
link control software to interface between these two layers ac-
cording to detailed specifications [1]. For simplicity, the logical
link control software is referred to as the DLL.
The project uses the Java network stack [2]–[4]. From the
Java system point of view, the whole project is an application.
However, a layer at the bottom of the project provides a simu-
lated abstraction of an Ethernet LAN, a simulated media access
control (SMAC) layer.
Manuscript received June 28, 2001; revised February 19, 2002.
M. W. El-Kharashi is with the Department of Electrical and Computer
Engineering, University of Victoria, Victoria, BC V8W 3P6, Canada (e-mail:
watheq@engr.uvic.ca).
G. Darling is with Cisco Systems, San Jose, CA 95134 USA (e-mail: gdar-
ling@cisco.com).
B. Marykuca is with Art and Logic Software Engineering and Design, Glen-
dale, CA 91203 USA (e-mail: brentm@telus.net).
G.C. Shoja is with the Department of Computer Science, University of Vic-
toria, Victoria, BC V8W 3P6, Canada (e-mail: gshoja@csc.uvic.ca).
Publisher Item Identifier S 0018-9359(02)05048-3.
The software implemented by students compensates for those
communication errors not handled by the SMAC (or those intro-
duced for testing purposes). That is, the SMAC can simulate un-
reliable packet transmission by the physical layer by randomly
discarding packets. It is up to the student’s DLL software to ac-
count for the possibility that some packets may be lost.
The application code (the Tester) acts as a client of the stu-
dent’s DLL and is used to test the developed code. The Tester is
also provided to the students.
The paper is organized as follows. The course background
necessary for the project is suggested in Section II. Section III
gives an overview of the project and highlights the students’
tasks. The project technical specifications that students imple-
ment are discussed in Section IV. Section V presents the envi-
ronment in which the project is developed. The variety of tools
students use to develop their projects are summarized in Sec-
tion VI. Section VII shows how the project is scheduled and
evaluated. Finally, conclusions are drawn in Section VIII.
II. COURSE BACKGROUND
The project described here aims at providing the experimental
support for the computer communications and networks course
that is taken by computer science and engineering students in
the Faculty of Engineering, University of Victoria.
The lab requires that the related network theory be covered in
the classroom lecture before the implementation of the project
is attempted. This theoretical background is expected to form
the foundation of the generic network architecture targeted by
the project and to clarify the expected operation of the relevant
protocol stack.
Topics with which the students need to be familiar before
starting the project include basics of network hardware and soft-
ware, layered architecture of different reference models, func-
tionalities of different layers and the interaction between them,
and example networks and data communication services. The
pre-project stage also emphasizes the operation of the physical
and data link layers, which fully prepares the students for the
project.
III. OVERVIEW
In the open systems interconnection (OSI) reference model,
specific network or communication services are grouped into
layers according to their functions [5]–[7]. Fig. 1 compares the
project model versus the IEEE 802.3 and OSI models [5]. In
this project, the standard seven layers of the OSI model are
compressed into just three layers. These three layers [shown in
0018-9359/02$17.00 © 2002 IEEE