CSC/ECE 573 — Internet Protocols
Lecture slides, assignments, and solutions are available from the course Moodle space
Lecture videos are available from the EOL site
Fall 2019 Schedule of Lectures
|Aug 22||1||Overview, goals, logistics|
|Aug 27||2||Introduction: Internet, network edge, packet vs circuit switching, network core Chapter 1.1-1.3||HW1 Project 1|
|Aug 29||3||Intro (cont'd): delay, loss, throughput, protocol layers, attacks, history Chapter 1.4-1.7|
|Sep 3||4||Application Layer (AL): principles, HTTP Chapter 2.1, 2.2|
|Sep 5||5||AL (cont'd): email (SMPT), directory service (DNS) Chapter 2.3-2.5||HW2||HW1|
|Sep 10||6||AL (cont'd): peer-to-peer (P2P) applications, content distribution networks (CDN), socket programming Chapter 2.5-2.7|
|Sep 12||7||Discussion of Project 1 Transport Layer (TL): overview, multiplexing/demultiplexing, UDP Chapter 3.1-3.3|
|Sep 17||8||TL (cont'd): reliable data transfer Chapter 3.4|
|Sep 19||9||TL (cont'd): TCP functionality Chapter 3.5|
|Sep 24||—||No class||HW3||HW2|
|Sep 26||10||TL (cont'd): Principles of congestion control, TCP congestion control Chapter 3.6,3.7|
|Oct 1||11||Congestion control in high-speed networks||Project 2||Project 1|
|Oct 8||—||Midterm exam (in-class for on-campus students) Oct 8 or 9 for DE students only|
|Oct 10||—||No class (fall break)|
|Oct 15||13||Discussion of Project 2 Network Layer-Data Plane (NL-DP): overview, router architecture Chapter 4.1,4.2|
|Oct 17||—||No class||HW4|
|Oct 22||14||Discussion of Midterm exam NL-DP (cont'd): Internet Protocol (IPv4, addressing, DHCP) Chapter 4.3.1-4.3.3|
|Oct 24||15||NL-DP (cont'd): NAT, IPv6, SDN Chapter: 4.3.4-4.3.5,4.4|
|Oct 29||16||Network Layer-Control Plane (NL-CP): link state and distance vector routing algorithms Chapter 5.1,5.2||Lab assignment||Project 2|
|Oct 31||17||NL-CP (cont'd): OSPF, BGP Chapter 5.3,5.4|
|Nov 5||18||NL-CP (cont'd): SDN control plane, ICMP, SNMP Chapter 5.5-5.7||HW5||HW4|
|Nov 7||19||NL-CP (cont'd): Broadcast and multicast routing|
|Nov 12||20||Data Link Layer (DLL): services, error detection, multiple access protocols Chapter 6.1-6.3|
|Nov 14||21||DLL (cont'd): multiple access protocols, LANs Chapter 6.3,6.4|
|Nov 19||22||DLL (cont'd): link virtualization, data center networking, retrospective Chapter 6.5-6.7 Passive Optical Networks (PON)||HW5|
|Nov 21||23||Security: Intro, Principles of cryptography Chapter 8.1,8.2|
|Nov 26||24||Security (cont'd): Message integrity, digital signatures, authentication, securing email Chapter 8.3-8.5||Lab assignment|
|Nov 28||—||No class (Thanksgiving Holiday)|
|Dec 3||25||Security (cont'd): SSL, IPsec, VPNs Chapter 8.6,8.7|
|Dec 5||26||Security (cont'd): firewalls and intrusion detection systems Chapter 8.9|
|Dec 10 1-4pm||—||Final exam (in-class for on-campus students) Dec 10 or 11 for DE students only|
Students who wish to take this course must have completed a graduate level course in Computer Networks (CSC/ECE 570 or equivalent).
Students must also have good working knowledge of a high-level programming language such as C, C++, or JAVA. The programming projects can be challenging, hence good programming experience is required.
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 internetworking 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.
At the conclusion of the course you should be able to:
- demonstrate understanding of the fundamental problems, tradeoffs, and design issues that arise in internetworking, as well as identify and critically evaluate internet technologies, solution approaches, and design methodologies for future network architectures;
- understand the details of several particular protocols, as example implementations of fundamental principles, and digest descriptions of specific protocols, extracting the fundamental concepts;
- design and implement complex networked applications, protocols, and algorithms, and use the socket interface;
- apply basic concepts to new networking environments; and
- engage in original research in the area of computer networks.
I encourage and expect you to participate actively in the learning process. In particular, I welcome your comments and questions as we cover material in class. One-way lectures quickly become boring, both for you and for me. By asking lots of questions your understanding of the material will be deepened significantly, and the course will be much more fun!
OutlineThe course will cover the application, transport, network, and data link layers of the Internet protocol stack (layers 5 through 2, in ISO parlance):
- application layer (web and HTTP, ftp, mail, DNS, P2P file sharing) and socket programming
- transport layer (UDP and TCP), congestion control
- network layer (virtual circuits vs. datagrams, router operation and design, Internet Protocol), routing algorithms, routing protocols in the Internet, broadcast and multicast routing
- data link layer (error detection and correction, multiple access protocols, addressing, technologies), Ethernet, PPP, hubs and switches, link virtualization
Students are required to purchase the following textbook:
- J. F. Kurose and K. W. Ross, Computer Networking, 7th ed., Pearson. ISBN: 0-13-359414-9
I also suggest the following two books as reference:
- W. R. Stevens, TCP/IP Illustrated, Vol. 1: The Protocols, Addison-Wesley.
- W. R. Stevens, UNIX Network Programming, Prentice Hall
- D. E. Comer, Internetworking with TCP/IP, Vol. 1: Principles, Protocols, and Architectures, Prentice Hall
I will also make available an extensive set of lecture slides.
Students are required to complete all assignments and show all work in order to receive full credit. The final grade will be determined using the following weights:
- 30% — Two programming projects (15% each)
- 10% — Lab assignment
- 15% — Homework assignments (of equal weight)
- 20% — Midterm exam (closed book)
- 25% — Final exam (comprehensive, closed book)
Attendance: Attendance is not mandatory but strongly encouraged. Students are responsible for making up any course material they miss.
Assignments: No hard copies of assignments or solutions will be handed out. New assignments and solutions will be announced in class and/or the course mailing list, and will be available on the course web page.
Submission: Students must submit their assignments as PDF or Word files using the submit facility. The deadline for submission is midnight (Eastern time) on the day due. Any deadline extensions are up to the discretion of the instructor, and will be announced to the whole class. Extensions may be provided to individual students only in advance of the submission deadline and only under extenuating circumstances.
Late Submission: No late assignments will be accepted and no partial credit will be given for late assignments without a valid excuse.
Cheating: Homework and projects are individual assignments and students are required to submit their own solutions. All students are bound by the University's academic integrity policies (refer to the relevant section below).
Niveditha Shankar, Nitin Kuncham, and Akhilesh Venkatasubramanian are the TAs for this course. Their office hours are:
- Niveditha (firstname.lastname@example.org): Tue/Thu 1:30-2:30pm in EB2 1229B.
- Nitin (email@example.com): Mon/Wed 11am-12noon in EB2 1229B.
- Akhilesh (firstname.lastname@example.org): Tue/Thu 11:30am-12:30pm in EB2 1229B.
Alternatively, you may contact them to arrange for a meeting or online chat at a mutually convenient time.
Feel free to contact the TAs for any questions about the course.
My office is in Room 2306 of the EB II building.
My office hours are 4:15-5:00pm on Tuesdays and Thursdays. Distance students may either call me during those times, or may arrange to stop by or call at a different mutually convenient time.
Students are required to respect the NC State academic integrity policies.