ECE/COMPSCI 356 – Fall 2019

Overview: This course introduces students to the fundamentals of computer networks. The layered architecture of the network protocol stack is the focus of discussion. A variety of case studies will be drawn from the Internet, combined with practical programming exercises. At the end of the semester, students will have an understand of core networking concepts, including the Internet architecture, HTTP, DNS, P2P, Sockets, TCP/IP, BGP, Routing protocols, and wireless/mobile networking. The students will be able to answer questions such as how to achieve reliable/secure communications over unreliable/insecure channels, how to find a good path through a network, how to share network resources among competing entities, how to find an object in the network, and how to build network applications.

Lecture times: Mondays, Wednesdays 01:25 PM – 02:40 PM, Hudson Hall 125

Professor office hours: Mondays 10:30 AM – 11:30 AM, Wednesdays 04:00 PM – 05:00 PM, CIEMAS 2471
Professor contact: Maria Gorlatova maria.gorlatova@duke.edu

Textbooks: Larry L. Peterson, Bruce S. Davie, Computer Networks: A Systems Approach. 5th or 4th edition. In-progress “6th edition” of the book is available online at https://book.systemsapproach.org/. Additional recommended reading material: Kurose and Ross, Computer Networking: A Top-down Approach, 6th edition.
Piazza: https://piazza.com/duke/fall2019/compsciece356/home

Lectures credits: Lecture materials build up on the materials made available by course’s textbooks and on additional materials of Professor Xiaowei Yang. November 20th lecture was prepared by our guest speaker, William Brockelsby.

Lecture 1: Aug. 26th. Introduction to the course.
Lecture 2: Aug. 28th. Network Design Principles. Internet Architecture.
Lecture 3: Sept. 2nd. Introduction to Network Programming Hardware and Physical Layer.
Lectures 4 and 5: Sept. 4th and 9th. Link Layer: encoding, framing, error detection.
Lecture 6: Sept. 11th: Ethernet and WiFi medium access.
Lecture 7: Sept. 16th: Wireless communications.
Lecture 8: Sept. 16th: Switching technologies.
Lecture 9: Sept. 18th: Bridges and LAN switches.
Lecture 10: Sept. 23rd: The IP protocol.
Lecture 11: Sept. 25th: IP fragmentation, ARP, and ICMP.
Lecture 12: September 30th. Distance vector routing. RIP protocol.
Lecture 13: October 2nd. OSPF.
Lecture 14: October 2nd. Interdomain routing  Border Gateway Protocol (BGP).
Lecture 15: October 9th. Routing wrap-up and review. October 14th. Midterm review.
Lecture 16. October 14th, 16th: Miscellaneous IP-related topics: DHCP, NAT, IPv6, IP tunneling.
Lecture 17: October 21st. Transport control. UDP. Introduction to TCP.
Lecture 18: October 28th, 30th. TCP: reliability, flow control, congestion management.
Lecture 19: November 6th. TCP congestion control.
Lecture 20: November 11th. Queue management and congestion avoidance.
Lecture 21: November 13th. Internet QoS.
Lecture 22: November 18th: DNS and content distribution.
Lecture 23: November 20th: Guest lecture: Duke OIT networks.
Lecture 24: November 25th: Application-layer protocols. HTTP and electronic mail.
Lecture 25: December 2nd, 4th: Network Security.
Lecture 26: December 9th: Final review.