Current Catalog Description

Architecture and protocols of computer networks. Protocol layers; network topology; data-communication principles, including circuit switching, packet switching and error control techniques; sliding window protocols, protocol analysis and verification; routing and flow control; local and wide area networks; network interconnection; client-server interaction; emerging networking trends and technologies; topics in security and privacy. Prerequisite: CSE109.

Instructor: Mark Erle (Fall 2022)

 

Textbook

James Kurose, "Computer Networking", 8th Edition, 2021, Addison Wesley, ISN 978-0136681557

References

  • Donahoo and Calvert, TCP/IP Sockets in C: Practical Guide for Programmers, 2001, Morgan Kaufmann.
  • Harbison and Steele, C: A Reference Manual, 5th Ed., 2002, Prentice Hall.

COURSE OUTCOMES

  • To provide a practical and theoretical understanding of computer networks that comprise the Internet, with respect to system architectures, protocols, and client-server interaction.

Prerequisites by Topic:

  • Strings and arrays
  • Pointers
  • Makefiles
  • Modular programming design
  • Digital (binary) representations of data

Major Topics Covered in the Course

  • Computer Networks and the Internet
  • Application Layer
  • Transport Layer
  • Network Layer and Routing
  • Link Layer and Local Area Networks
  • Wireless and Mobile Networks
  • Multimedia Networking
  • Security in Computer Networks
  • Network Programming in C
  • Laboratory Projects(see below)
  • Prior to the final multi-player network game project, the students are assigned two additional significant programming projects. The first is the development of an Web client and server (based on sample code provided in class). The second is an implementation of a distributed routing protocol (within the context of a simulator written for that purpose).
  • Estimate CSAB Category Content

Laboratory projects (specify number of weeks on each):

  • UNIX, C, File I/O – 2 weeks
  • DNS – 1 week
  • TCP – 1 week
  • UDP – 2 weeks
  • Network simulation – 1 week
  • Packet capture and analysis – 1 week
  • Reliable protocol implementation – 1 week
  • Interactive multi-player network game development – 4 weeks

 

CORE ADVANCED

  • Data Structures
  • Computer Organization and Architecture 1 1
  • Algorithms Software Design 0.5
  • Concepts of Programming Languages 0.5

Oral and Written Communications

Every student is required to submit at least __0__ written reports (not including exams, tests, quizzes, or commented programs) of typically _____ pages and to make __0__ oral presentations of typically _____ minutes duration. Include only material that is graded for grammar, spelling, style, and so forth, as well as for technical content, completeness, and accuracy.

Social and Ethical Issues

  • We cover the basics of network security, including various ways that network communications can be attacked, and some of the countermeasures available. This is covered in approximately three hourly lectures (1 week), and is part of the content on which they are tested.
  • In one lab we discuss the implications on privacy from the capture and analysis of raw packets on a shared network. The students are not tested on their understanding.

Theoretical Content

  • Protocol analysis – 2 lectures
  • Reliable data transfer – 6 lectures
  • Congestion control – 4 lectures
  • Routing techniques – 4 lectures
  • Multicast algorithms – 3 lectures
  • Error-detection and correction – 2 lectures
  • Multiple access protocols – 5 lectures
  • Scheduling – 3 lectures
  • Encryption – 4 lectures

Problem Analysis

Many of the homework problems create a realistic situation in which some quantity is needed to be calculated. Students must apply knowledge and procedures acquired from the lecture or text. Each of the programming projects requires some analysis of the problem to be solved. In the Web client and server (the first project), the project is broken down into sub-steps, each of which can be implemented and tested independently. The second (distributed routing) requires a global understanding that includes the limited perspective of each element. The last (multi-player network game) is broken into four stages which must be implemented consecutively, but can be tested independently.

Solution Design

In the first and last programming project, the students must consider exactly the data that is sent and received.Details of representation necessarily become clear in order for proper functionality