CSE 342 Fundamentals of Internetworking (4)
Instructor: Brian Davison
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.
Textbook
Kurose and Ross, Computer Networking: A Top-Down Approach Featuring the Internet, 3rd. Ed, 2005, Addison Wesley.
References
Donahoo and Calvert, TCP/IP Sockets in C: Practical Guide for Programmers, 2001, Morgan Kaufmann.
Harbison and Stelle, C: A Reference Manual, 5th Ed., 2002, Prentice Hall.
Course Goals
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 (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
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
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.