Lecture: 3 hours
Discussion: 1 hour

Catalog Description:
TCP/IP protocol suite, computer networking applications, client-server and peer-to-peer architectures, application-layer protocols, transport-layer protocols, transport-layer interfaces, sockets, network programming, remote procedure calls, and network management.

Prerequisite: ECS 150; (ECS 152A or EEC 173A)

Summary of course contents

  1. Preliminaries
    1. TCP/IP protocol suite
    2. Client-Server architecture
    3. Peer-to-Peer architecture
    4. Inter-Process Communications (IPC)
  2. Networking Applications and Protocols
    1. File Transfer Protocol (FTP)
    2. Hypertext Transfer Protocol (HTTP)
    3. Telnet / Remote Login
    4. Domain Name System (DNS)
    5. Remote Procedure Calls (RPC)
  3. Transport Layer Protocols
    1. User Datagram Protocol (UDP)
    2. Transmission Control Protocol (TCP)
  4. Transport Layer Interfaces
    1. Socket API
    2. Socket related system calls
    3. I/O Multiplexing
  5. Other Topics
    1. Security
    2. Network management
    3. Design and performance issues

Computer usage: Students will have access to the workstations in the Computer Science Department’s Instructional Facility.

Laboratory Projects: Through a number of assignments/projects (approximately 4-5 over a 10-week period), students will gain hands-on experience by designing and analyzing network and transport layer protocols and computer networking applications.

Goals: Students will: (1) learn the principles of upper-layer protocol stack and the design and implementation of computer networking applications; (3) learn the transport layer protocols and the services they provide to networking applications and the application layer protocols; (2) learn the basics in designing and developing networking applications and determine improvements by critically examining some existing applications; and (3) gain hands-on experience in designing network and transport layer protocols and computer networking applications.

Illustrative reading

  • W. R. Stevens, TCP/IP Illustrated, Volume1: The Protocols, Addison-Wesley Professional; 2 edition 2011.
  • J. Kurose and K. Ross, Computer Networking: A Top-Down Approach Featuring the Internet, 6th Edition, Pearson/Addison Wesley, 2012.
  • D. E. Comer, Internetworking with TCP/IP, Vol. I: Principles, Protocols, and Architecture, 5th edition, 2006.
  • D. E. Comer and D. L. Stevens, Internetworking with TCP/IP, Vol. II: Design, Implementation, and Internals, Third Edition, Prentice-Hall, 2009.

Engineering Design Statement:
The laboratory projects are design-oriented and experimental in nature. Sample projects include: (1) design and analysis of a reliable transport protocol over UDP, (2) design and analysis of a distributed database over a TCP/IP network, and (3) design of a network time protocol using which clients can synchronize their clocks to a universal time server.

ABET Category Content:
Engineering Science: 1 unit
Engineering Design: 2 units

GE3: Science & Engineering

Overlap: None

Instructors: D. Ghosal, N. Matloff, P. Mohapatra, and B. Mukherjee

History: Reviewed 2018.9.7 (CSUGA): no updates. Reviewed by D. Ghosal (2012.10.25): 1) Updated and reorganized the course content, removed cross listing statement, updated reading list, updated the prerequisite statement, removing ECS 150 as a required course. Prior version by D. Ghosal, March 2003.


1 an ability to apply knowledge of mathematics, science, computing, and engineering
2 X an ability to design and conduct experiments, as well as to analyze and interpret data
3 X an ability to design, implement, and evaluate a system, process, component, or program to meet desired needs, within realistic constraints such as economic, environmental, social, political, ethical, health and safety, manufacturability, and sustainability
4 X an ability to function on multi-disciplinary teams
5 an ability to identify, formulate, and solve computer science and engineering problems  and define the computing requirements appropriate to their solutions
6 an understanding of professional, ethical, legal, security and social issues and responsibilities
7 X an ability to communicate effectively with a range of audiences
8 X the broad education necessary to understand the impact of computer science and engineering solutions in a global and societal context
9 a recognition of the need for, and an ability to engage in life-long learning
10 X knowledge of contemporary issues
11 X an ability to use current techniques, skills, and tools necessary for computing and engineering practice
12 an ability to apply mathematical foundations, algorithmic principles, and computer science and engineering theory in the modeling and design of computer-based systems in a way that demonstrates comprehension of the tradeoffs involved in design choices
13 X an ability to apply design and development principles in the construction of software systems or computer systems of varying complexity