ECE 435
Computer Networking Laboratory

Displaying course information from Spring 2010.

Section Type Times Days Location Instructor
C LEC 1100 - 1220 T R     Benjamin Wah
Benjamin Wah
C LAB -     Benjamin Wah
Benjamin Wah
C1 LAB -     Benjamin Wah
C1 LEC 1100 - 1220 T R     Benjamin Wah
Official Description Design, application, analysis, and evalution of communication network protocols under both Linux and Windows NT operating systems. Emphasis on identifying problems, proposing alternative solutions, implementing prototypes using available network protocols and evaluating results. Multiple programming team projects. Course Information: Same as CS 436. 3 undergraduate hours. 3 or 4 graduate hours. Prerequisite: CS 438.
Subject Area Computer Engineering
Course Prerequisites Credit in ECE 438
Course Directors Steven Sam Lumetta
Detailed Description and Outline

To teach students design and evaluation techniques of computer network protocols at the operating system kernel level.


In depth study of TCP/IP protocols:
  • IP routing
  • Performance monitoring and evaluation
  • 2 laboratory projects
Network Layer Protocols
  • Network fault diagnosis and isolation
  • Evaluation of networks and related protocols
  • Routing algorithms
  • 2 laboratory projects
Data Link and Multi-access Protocols
  • Network fault analysis
  • Real-time multimedia transmission
  • Multi-access mobile network protocols
  • ATM Network protocols
  • Network emulation
  • Design of network device drivers
  • 1 laboratory project
  • 1 independent project

Graduate students may receive 4 graduate hours by performing independent design projects.


  • G.R. Wright and W.R. Stevens, TCP/IP Illustrated, Vol. 1-3, The Implementation, Addison-Wesley, 2001.
  • D. Comer, Internetworking with TCP/IP, Vol. 2, Prentice-Hall, 3rd edition, 1999.
  • D. Comer, Internetworking with TCP/IP, Vol. 3, Prentice-Hall, 2nd edition, 1996.
  • W. Richard Stevens, Unix Networking Programming, Prentice-Hall, 2nd edition, 1998.
  • K. Wehrle, P. Pahlke, H. Ritter, D. Muller, and M. Bechler, The Linux Networking Architecture, Design and Implementation of Network Protocols in the Linux Kernel, 1st ed., Prentice Hall, 2005.

Course Goals

This lecture/laboratory course aims to provide advanced undergraduate and graduate students in computer engineering and computer science with design, analysis, and evaluation skills of communication network protocols at the kernel and application levels. Special emphasis will be placed on design experience to identify problems, propose alternative solutions, implement prototypes using available network protocols, and evaluate results and performance. Students will be required to modify and instrument communication protocol stacks in operating-system kernels. The material taught requires some basic knowledge in computer communication networks and operating systems. In each objective below, the letter(s) in parenthesis represents the element(s) of ABET Criterion 3 met by the objective.

Instructional Objectives

A. After the first three weeks, students should be able to do the following:

1. Install and configure the Linux operating system. (b,d)

2. Set up and configure Ethernets, wireless networks, network routing, domain name service, Web service, NIS service, and Linux kernels. (b,d)

3. Install and understand kernel debugging tools (such as User Mode Linux). (b,d,k)

4. Understand timing issues in TCP (j)

B. After the first seven weeks, students should be able to do all of the items listed in Part A plus the following:

  1. Instrument the Linux kernel to monitor timing parameters and communicate measured values to users. (b,c,d,k)
  2. Understand SNMP and network monitoring concepts. (j)
  3. Apply SNMP to perform network fault diagnosis and isolation. (b,c,d,k)
  4. Understand the overall Linux kernel structure and its implementation. (j)
  5. Modify device drivers in the Linux kernel to capture workload statistics. (b,c,d,k)

C. After the first eleven weeks, students should be able to do all of the items listed in Parts A and B plus the following:

  1. Modify the Linux kernel in order to use the UDP protocol to implement new functionalities in the TCP protocol. (b,c,d,k)
  2. Understand video and audio coding algorithms and their relationships to network transmissions. (j)
  1. Understand voice-over-IP, real-time protocols, and various video conferencing standards. (j)
  2. Understand multiaccess wireless network protocols (802.11 standard). (j)
  3. Understand variations of the TCP and UDP protocols, including the Real-Time TCP Protocol and the Datagram Congestion Control Protocol. (j)
  4. Evaluate the performance of coded multimedia transmissions using various network protocol and transmission media, including gigabit Ethernet, wireless Ethernet, wire-based Ethernets, and the Internet. (b,c,d,k)

D. After fifteen weeks, students should be able to do all of the items listed in Parts A, B, and C, plus the following:

  1. Propose, analyze, develop, implement, evaluate, document, and present an independent software project that involves a combination of kernel modifications, performance instrumentations, and application-level protocols. (a,b,c,d,e,g,k
Last updated: 5/23/2013