Course Websites

ECE 435 - Computer Networking Laboratory

Last offered Fall 2018

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.

Related Faculty

Subject Area

  • Computer Engineering

Course Director

Description

This is a lecture/laboratory course that focuses on the design and understanding of communication network protocols. Students will be required to design, apply, analyze, and evaluate communication network protocols. Special emphasis will be placed on design experience to identify a problem, propose alternative solutions, implement a prototype using available network protocols, and evaluate the results. Experiments will be carried out under the Linux operating system. Students work in pairs on six programming projects in the semester.

Notes

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

Goals

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

Topics

In depth study of TCP/IP protocols:

  • ARP, TCP, UDP, RARP, BOOTP, SNMP
  • 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

Detailed Description and Outline

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

Topics:

In depth study of TCP/IP protocols:

  • ARP, TCP, UDP, RARP, BOOTP, SNMP
  • 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.

Texts

  • 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. (5, 6)

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

3. Install and understand kernel debugging tools (such as User Mode Linux). (1, 5, 6)

4. Understand timing issues in TCP (6)

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. (1, 2, 5, 6)
  2. Understand SNMP and network monitoring concepts. (6)
  3. Apply SNMP to perform network fault diagnosis and isolation. (1, 2, 5, 6)
  4. Understand the overall Linux kernel structure and its implementation. (6)
  5. Modify device drivers in the Linux kernel to capture workload statistics. (1, 2, 5, 6)

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. (1, 2, 5, 6)
  2. Understand video and audio coding algorithms and their relationships to network transmissions. (6)
  1. Understand voice-over-IP, real-time protocols, and various video conferencing standards. (6)
  2. Understand multiaccess wireless network protocols (802.11 standard). (6)
  3. Understand variations of the TCP and UDP protocols, including the Real-Time TCP Protocol and the Datagram Congestion Control Protocol. (6)
  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. (1, 2, 5, 6)

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. (1, 2, 3, 5, 6)
TitleSectionCRNTypeHoursTimesDaysLocationInstructor
Computer Networking LaboratoryC69187PKG30930 - 1045 M W  0216 Siebel Center for Comp Sci  Matthew Caesar
Computer Networking LaboratoryC69187PKG3 -  0218 Siebel Center for Comp Sci  Matthew Caesar
Computer Networking LaboratoryC169188PKG40930 - 1045 M W  0216 Siebel Center for Comp Sci  Matthew Caesar
Computer Networking LaboratoryC169188PKG4 -  0218 Siebel Center for Comp Sci  Matthew Caesar
Computer Networking LaboratoryONL70720ONL4 -     Matthew Caesar