Computer Networks

EN.601.414/614, Fall 2023, In person.


Topics covered will include application layer protocols (e.g. HTTP), transport layer protocols (UDP, TCP), network layer protocols (e.g. IP), link layer protocols (e.g. Ethernet) and wireless protocols (e.g. IEEE 802.11). The course will also cover routing protocols such as link state and distance vector, multicast routing, and path vector protocols (e.g. BGP). The class will examine security issues such as firewalls and denial of service attacks. We will also study DNS, NAT, Web caching and CDNs, peer to peer, and protocol tunneling. We will explore security protocols (e.g. TLS, SSH, IPsec), as well as some basic cryptography necessary to understand these. Finally, we will learn about a few selected state-of-the-art topics such as cloud networking and software-defined networks. Grading will be based on hands-on programming assignments, homeworks, and two exams. [Systems]
Prerequisites: EN.601.220 and EN.601.229 or permission. Students can only receive credit for one of 601.414/614.

Instructor Information


I'm currently in my fifth year as a Ph.D. student within the computer science department. If you'd like to discuss the course content, you can arrange a meeting through this link. It's important to note that office hours are available by request, and only on Tuesdays and Thursdays. Apart from these hours, the best way to reach me is sending email at Sougol Gheissi. When sending an email, kindly include [Computer Networks] in the subject line. I'll be addressing emails on Tuesdays and Thursdays exclusively, so please plan your inquiries accordingly. Additionally, for assignment-related concerns, I recommend reaching out to TA Atheer Almogbil.

Course resources


Assessments & Grading


Expectation & Policies


Acknowledgment: This course is based on Princeton COS461 and Cougarnet.