Skip to main content

CSC 573 Internet Protocols

3 Credit Hours

(also offered as ECE 573)
This course deals with the principles and issues underlying the provision of wide area connectivity through the interconnection of autonomous networks. Emphasis will be placed on Internet architecture and protocols as they are today and as they are likely to evolve in the future. Case studies of particular protocols will demonstrate how fundamental principles are applied in practice. They will also provide the opportunity to practice a critical skill: shifting through details for the key idea. The functional requirements of inter-networking will be motivated by selected examples of networked client/server applications. The projects are designed to give you first hand experience in building networked applications and/or in analyzing and evaluating the performance of protocols and applications.

Prerequisite

Students must have good working knowledge of a high-level programming language such as C, C++, Python or JAVA. The programming project can be challenging, hence good programming experience is required.

Course Objectives

At the conclusion of the course you should be able to:

  1. Demonstrate understanding of the fundamental problems, tradeoffs, and design issues that arise in internetworking, as well as identify and critically evaluate Internet technologies and solution approaches.
  2. Understand the details of several Internet protocols, as example implementations of fundamental principles, and digest descriptions of specific protocols, extracting the fundamental concepts.
  3. Implement complex networked applications using the BSD sockets interface.
  4. Identify and employ appropriate tools for evaluating protocol performance.
  5. Apply basic concepts to new networking environments.

Course Outline

  • Week 1: Getting Started and Internet Structure
  • Week 2: Packet vs Circuit Switching – TCP/IP Protocol Stack
  • Week 3: Addressing
  • Week 4: The Internet Protocol (IP)
  • Week 5: ICMP
  • Week 6: UDP
  • Week 7: TCP
  • Week 8: Socket Programming
  • Week 9: Bootstrapping
  • Week 10: DNS
  • Week 11: NAT and VPN
  • Week 12: Mobile IP
  • Week 13: Multicasting
  • Week 14: Network Security
  • Week 15: Quality of Service

Course Requirements

There are five homeworks, two midterm exams, two programming projects, and a final exam, weighted as follows:

Homeworks25%
Project25%
Midterms25%
Final25%

Homeworks and the projects can be worked out in groups of two (at most).
All exams are cumulative.
All exams are closed book and notes.

Textbook

There is no textbook required for this course. The following books are just for your reference.

  1. Douglas E. Comer, Internetworking with TCP/IP: Principles, Protocols, and Architectures , Volume 1, Prentice Hall, ISBN 0-13-018380-6
  2. J. F. Kurose and K. W. Ross, Computer Networking, 6th ed., Pearson. ISBN: 0-13-285620-4
  3. Behrouz A. Forouzan, TCP/IP Protocol Suite, McGraw Hill.
  4. Douglas E. Comer, David L. Stevens, Internetworking with TCP/IP: Client-server Programming and Applications, Linux/POSIX Sockets Version, Volume 3, Prentice Hall, ISBN 0-13-032071-4
  5. Richard Stevens, UNIX Network Programming, Networking APIs: Sockets and XTI, Volume 1, Prentice Hall.
  6. Richard Stevens, TCP/IP Illustrated, The Protocols , Volume 1, Addison-Wesley.
  7. R. Perlman, Interconnections: Bridges, Routers, Switches, and Internetworking Protocols, Addison-Wesley.

Software Requirements

Any operating system and a compiler/interpreter of the programming language of your choice. 

Created: 03/31/2025