Computer Network Systems
- Describe the architectural principles underlying the Internet design.
- Explain LAN interconnects, routing algorithms and congestion control algorithms.
- Identify, formulate, and solve problems encountered in the design of networks.
- Implement networking systems and rigorously evaluate them using systematic empirical methods.
The goal of this course is to provide students with a proper grounding in the basic concepts and seminal work in computer network protocols and systems, and to introduce students to research in the field. The course will cover classical concepts such as network architecture, switching, routing, congestion control, and quality-of-service, and discuss recent developments in these areas.
The course will also cover new developments in networking such as network measurements, network management, overlay networking and peer-to-peer systems, network security, and new network architectures. The course will emphasize a system-oriented and empirical view of Internet architecture.
- Internet Architectural Principles
- Layer 2 Interconnects and Switching
- Internet Addressing, ARP and DNS
- Intra-domain Routing
- Inter-domain Routing (BGP)
- End-to-End Congestion Control (TCP)
- Router Mechanisms for Congestion Control
- Quality of Service
- Internet Video
- Network Security
- Software-Defined Networking
- Content Delivery Networks
- Data-center and Enterprise Networks
- ECE 264 (Advanced C Programming) or equivalent
- ECE 368 (Data Structures) with B or higher or equivalent
- Strong proficiency in programming and data structures is required given the heavy programming requirements. Students should be strongly independent when it comes to coding/debugging.
- A broad and strong foundation in undergraduate computer engineering courses and good programming skills is essential. A prior course in operating systems or networking will be useful but not essential.