Syllabus
This course covers concepts in the design and implementation of computer communication networks, their
protocols, the applications, and advanced principles of Computer Networks. Topics include layered network
architectures, network programming interfaces (e.g., sockets), transport protocols, congestion control,
routing algorithms, data link protocols, local area networks, wireless networks and network security. In
addition, advanced principles in protocol mechanisms and implementations will be discussed.
Textbook: Computer Networking - A Top-Down Approach Featuring the Internet,
by James F. Kurose & Keith W.Ross, Addison Wesley, 7th Edition
Prerequisites: You are required to have completed CSCI 272 or equivalent
programming experience with C, Java or Perl.
Part 1: Introduction
- The Internet and its layered architecture
- Delay and Loss in Packet-Switched Networks
- Internet Backbones, NAPs and ISPs
Part 2: The Application Layer
- Principles of Application-Layer Protocols
- Important application-layer protocols: HTTP, FTP, Electronic-Mails, DNS, etc.
- Socket Programming
Part 3: The Transport Layer
- Transport-Layer Services and Principles
- Multiplexing and Demultiplexing Applications
- Principle of Reliable Data Transfer
- Principle of Congestion Control
- UDP, TCP
Part 4: The Network Layer
- Routing Principles and Algorithms
- IP: the Internet Protocol
Part 5: The Link Layer and Local Area Networks
- Introduction on the Data Link Layer and its services
- Error Detection and Correction
- Multiple Access Protocols
- LAN and ARP
- PPP: Point-to-Point Protocol
- ATM
Part 6: Wireless Networks
- IEEE 802.11
- Handling Mobility
- Ad-hoc wireless networks
- Cellular networks
Part 7: Security in Computer Networks
- Principles of Cryptography
- Authentication and Authorization
- Key Management Protocols
- Firewalls
- Attacks and countermeasures