This is an introductory graduate‐level course in computer networking. The course covers core concepts and major design and implementation techniques for large‐scale computer networks at the application, transport, network, and data link layers, as well as network security across these layers. It emphasizes the Internet as an open, decentralized, and interoperable infrastructure. The course may also cover selected current and advanced topics in computer network design and research. Knowledge and skill set acquired through this course is essential for understanding the techniques for the design of secure software and software/hardware systems including CPS and IoT devices.
By the end of the course, students will be able to:
Understand the design principles of large-scale computer networks including the Internet. Understand and analyze major network protocols, applications, and infrastructures such as DNS, HTTP and the web, emails, client-server and p2p networks, TCP, IP, and BGP.
Articulate the challenges and design principles of large-scale lnternetworks. Name and understand key networking concepts such as layering, hierarchy, client-server, p2p, statistical multiplexing, encapsulation, store-and-forward, hourglass design, and end-to-end arguments. Collect Internet measurements and understand their meanings. Understand and analyze key performance metrics of computer networks. Understand and critique design and implementation choices of major Internet protocols at different layers such as application, transport, network (including intra-domain and inter domain routing), and data link. Understand the problems and requirements of network security and apply core solution techniques to solve specific problems.
Mid-term and final exam