<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>CS 4700 Network Fundamentals on CS 4700</title><link>/</link><description>Recent content in CS 4700 Network Fundamentals on CS 4700</description><generator>Hugo</generator><language>en-US</language><copyright>Copyright (c) 2020-2024 Thulite</copyright><lastBuildDate>Wed, 25 Aug 2021 15:24:08 -0400</lastBuildDate><atom:link href="/index.xml" rel="self" type="application/rss+xml"/><item><title>Syllabus</title><link>/docs/syllabus/</link><pubDate>Wed, 25 Aug 2021 15:23:30 -0400</pubDate><guid>/docs/syllabus/</guid><description>&lt;h2 id="course-description"&gt;Course Description&lt;/h2&gt;
&lt;p&gt;Computer networking is a rapidly advancing field, and the Internet is already an integral part of society. It is therefore important for computer scientists and computer engineers to be familiar with the fundamentals of computer networking. This course will focus on the &lt;ins&gt;architecture, algorithms, and protocols of the Internet&lt;/ins&gt;. Topics include local area networking, routing, congestion control, network security, and applications such as peer-to-peer and content distribution networks. This course will be systems oriented, and students will work on hands-on projects to learn how to build and understand Internet applications.&lt;/p&gt;</description></item><item><title>Schedule</title><link>/docs/schedule/</link><pubDate>Wed, 25 Aug 2021 15:23:42 -0400</pubDate><guid>/docs/schedule/</guid><description>&lt;p&gt;Note on the readings: the section (§) symbol refers to chapters from the &lt;em&gt;Computer Networks: A Systems Approach&lt;/em&gt; textbook.&lt;/p&gt;
&lt;table class="table-striped table-hover table-sm small"&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Week of&lt;/th&gt;
 &lt;th&gt;Slides&lt;/th&gt;
 &lt;th&gt;Readings&lt;/th&gt;
 &lt;th&gt;Homework&lt;/th&gt;
 &lt;th&gt;Projects &amp;amp; Exams&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Jan. 7-9&lt;/td&gt;
 &lt;td&gt;&lt;a href="/slides/Intro.pptx"&gt;Intro&lt;/a&gt;, &lt;a href="/slides/History.pptx"&gt;History&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;§1.1-1.6, 2.1-2.3, &lt;a href="https://beej.us/guide/bgnet/html/"&gt;Beej&amp;rsquo;s Guide&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Jan. 12-16&lt;/td&gt;
 &lt;td&gt;&lt;a href="/slides/Architecture.pptx"&gt;Architecture&lt;/a&gt;, &lt;a href="/slides/Physical.pptx"&gt;Physical Layer&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;§2.4-2.8&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Jan. 20-23&lt;/td&gt;
 &lt;td&gt;&lt;a href="/slides/Data_Link.pptx"&gt;Data Link Layer&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;§3.1, 3.4&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;&lt;a href="/docs/projects/project-1-socket-basics/"&gt;Proj. 1&lt;/a&gt; due Jan. 20&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Jan. 26-30&lt;/td&gt;
 &lt;td&gt;&lt;a href="/slides/Bridging.pptx"&gt;Bridging and Switching&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;§3.2-3.3&lt;/td&gt;
 &lt;td&gt;Hw. 1 due Jan. 30&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Feb. 2-6&lt;/td&gt;
 &lt;td&gt;&lt;a href="/slides/Network.pptx"&gt;Network Layer&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;§4.1&lt;/td&gt;
 &lt;td&gt;Hw. 2 due Feb. 6&lt;/td&gt;
 &lt;td&gt;&lt;a href="/docs/projects/project-2-ftp-client/"&gt;Proj. 2&lt;/a&gt; due Feb. 3&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Feb. 9-13&lt;/td&gt;
 &lt;td&gt;&lt;a href="/slides/Intra_Domain_Routing.pptx"&gt;Intra-domain Routing&lt;/a&gt;, &lt;a href="/slides/Inter_Domain_Routing.pptx"&gt;Inter-domain Routing&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;§5.1-5.2&lt;/td&gt;
 &lt;td&gt;Hw. 3 due Feb. 13&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Feb. 17-20&lt;/td&gt;
 &lt;td&gt;&lt;a href="/slides/Transport.pptx"&gt;Transport Layer&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;§6.1-6.4&lt;/td&gt;
 &lt;td&gt;Hw. 4 due Feb. 20&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Feb. 23-27&lt;/td&gt;
 &lt;td&gt;&lt;a href="/slides/Congestion_Control.pptx"&gt;Congestion Control&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;§9.1, 9.3, 9.4;&lt;/td&gt;
 &lt;td&gt;Hw. 5 due Feb. 27&lt;/td&gt;
 &lt;td&gt;&lt;a href="/docs/projects/project-3-bgp-router/"&gt;Proj. 3&lt;/a&gt; due Feb. 24&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Mar. 2-6&lt;/td&gt;
 &lt;td&gt;&lt;strong&gt;Spring Break&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Mar. 9-13&lt;/td&gt;
 &lt;td&gt;&lt;strong&gt;Midterms&lt;/strong&gt;, &lt;a href="/slides/NAT.pptx"&gt;NAT&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Mar. 16-20&lt;/td&gt;
 &lt;td&gt;&lt;a href="/slides/DNS.pptx"&gt;DNS&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;&lt;a href="/docs/projects/project-4-reliable-transport-protocol/"&gt;Proj. 4&lt;/a&gt; due Mar. 17&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Mar. 23-27&lt;/td&gt;
 &lt;td&gt;&lt;a href="/slides/Bootstrapping.pptx"&gt;DHCP and ARP&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;Hw. 6 due Mar. 27&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Mar. 30-Apr. 3&lt;/td&gt;
 &lt;td&gt;&lt;a href="/slides/Web.pptx"&gt;Web&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;&lt;a href="https://www.npr.org/2022/11/18/1137657496/third-party-cookie-data-tracking-internet-user-privacy"&gt;How the cookie became a monster&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;Hw. 7 due Apr. 3&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Apr. 6-10&lt;/td&gt;
 &lt;td&gt;&lt;a href="/slides/TLS.pptx"&gt;Transport Layer Security&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;Hw. 8 due Apr. 10&lt;/td&gt;
 &lt;td&gt;&lt;a href="/docs/projects/project-5-web-crawler/"&gt;Proj. 5&lt;/a&gt; due Apr. 7&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Apr. 13-17&lt;/td&gt;
 &lt;td&gt;&lt;a href="/slides/DNS_Security.pptx"&gt;DNS Security&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;Hw. 9 due Apr. 17 (&lt;strong&gt;slip day use prohibited&lt;/strong&gt;)&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Apr. 20-24&lt;/td&gt;
 &lt;td&gt;&lt;strong&gt;Final: 3:30 - 5:30pm&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;&lt;a href="/docs/projects/project-6-dns-server/"&gt;Proj. 6&lt;/a&gt; due Apr. 21 (&lt;strong&gt;slip day use prohibited&lt;/strong&gt;)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;</description></item><item><title>Project 1: Socket Basics</title><link>/docs/projects/project-1-socket-basics/</link><pubDate>Wed, 25 Aug 2021 15:24:08 -0400</pubDate><guid>/docs/projects/project-1-socket-basics/</guid><description>&lt;div class="alert alert-info" role="alert"&gt;
 &lt;b&gt;This project is due at 11:59pm on January 20, 2026.&lt;/b&gt;
&lt;/div&gt;
&lt;h2 id="description"&gt;Description&lt;/h2&gt;
&lt;p&gt;This assignment is intended to familiarize you with writing simple network code. You will implement a client program that plays a variant of the recently-popular game &lt;a href="https://www.powerlanguage.co.uk/wordle/"&gt;Wordle&lt;/a&gt;. Your program will make guesses for the secret word, and the server will give you information about how close your guess is. Once your client correctly guesses the word, the server will return a &lt;em&gt;secret flag&lt;/em&gt; that is unique for each student. If you receive the &lt;em&gt;secret flag&lt;/em&gt;, then you know that your program has run successfully.&lt;/p&gt;</description></item><item><title>Project 2: FTP Client</title><link>/docs/projects/project-2-ftp-client/</link><pubDate>Wed, 25 Aug 2021 15:24:08 -0400</pubDate><guid>/docs/projects/project-2-ftp-client/</guid><description>&lt;div class="alert alert-info" role="alert"&gt;
 &lt;b&gt;This project is due at 11:59pm on February 3, 2026.&lt;/b&gt;
&lt;/div&gt;
&lt;h2 id="description"&gt;Description&lt;/h2&gt;
&lt;p&gt;The goal of this project is to deepen your ability to write network code. At this point you can open a socket and send and receive simple messages. In this project, you will implement a client for a more complex protocol, that has more features, and uses two sockets rather than one.&lt;/p&gt;</description></item><item><title>Project 3: BGP Router</title><link>/docs/projects/project-3-bgp-router/</link><pubDate>Wed, 25 Aug 2021 15:24:08 -0400</pubDate><guid>/docs/projects/project-3-bgp-router/</guid><description>&lt;div class="alert alert-info" role="alert"&gt;
 &lt;b&gt;The final project is due at 11:59pm on February 24, 2026.&lt;/b&gt;
&lt;/div&gt;
&lt;h2 id="description"&gt;Description&lt;/h2&gt;
&lt;p&gt;In this project, you will implement a simple BGP router. There are several educational goals of this project:&lt;/p&gt;</description></item><item><title>Project 4: Reliable Transport Protocol</title><link>/docs/projects/project-4-reliable-transport-protocol/</link><pubDate>Wed, 25 Aug 2021 15:24:08 -0400</pubDate><guid>/docs/projects/project-4-reliable-transport-protocol/</guid><description>&lt;div class="alert alert-info" role="alert"&gt;
 &lt;b&gt;This project is due at 11:59pm on March 17, 2026.&lt;/b&gt;
&lt;/div&gt;
&lt;h2 id="description"&gt;Description&lt;/h2&gt;
&lt;p&gt;You will design a simple transport protocol that provides reliable datagram service. Your protocol will be responsible for ensuring data is delivered in order, without duplicates, missing data, or errors. Since the local area networks at Northeastern are far too reliable to be interesting, we will provide you with access to a virtual environment that will emulate an unreliable network.&lt;/p&gt;</description></item><item><title>Project 5: Web Crawler</title><link>/docs/projects/project-5-web-crawler/</link><pubDate>Wed, 25 Aug 2021 15:24:08 -0400</pubDate><guid>/docs/projects/project-5-web-crawler/</guid><description>&lt;div class="alert alert-info" role="alert"&gt;
 &lt;b&gt;This project is due at 11:59pm on April 7, 2026.&lt;/b&gt;
&lt;/div&gt;
&lt;h2 id="description"&gt;Description&lt;/h2&gt;
&lt;p&gt;This assignment is intended to familiarize you with the HTTP protocol. HTTP is (arguably) the most important application level protocol on the Internet today: the Web runs on HTTP, and increasingly other applications use HTTP as well (including Bittorrent, streaming video, Facebook and Twitter&amp;rsquo;s social APIs, etc.).&lt;/p&gt;</description></item><item><title>Project 6: DNS Server</title><link>/docs/projects/project-6-dns-server/</link><pubDate>Wed, 25 Aug 2021 15:24:08 -0400</pubDate><guid>/docs/projects/project-6-dns-server/</guid><description>&lt;div class="alert alert-info" role="alert"&gt;
 &lt;b&gt;This project is due at 11:59pm on April 21, 2026. &lt;/b&gt;
&lt;/div&gt;
&lt;h2 id="description"&gt;Description&lt;/h2&gt;
&lt;p&gt;You will design and implement an recursive DNS server. Your server will be (a) the authoritative server for a specified domain, and be (b) responsible for serving as a recursive resolver for a number of local clients. In doing part (b), your server will be required to interact with other DNS servers, maintain an (accurate) DNS cache, and avoid succumbing to any security vulnerabilities. You will use the real DNS protocol, though you should &lt;em&gt;not&lt;/em&gt; communicate directly with any real DNS servers.&lt;/p&gt;</description></item><item><title>Privacy Policy</title><link>/privacy/</link><pubDate>Tue, 06 Oct 2020 08:47:36 +0000</pubDate><guid>/privacy/</guid><description>&lt;p&gt;This website is hosted on a server at Northeastern University. This webserver collects logs of routine usage. No data is shared or sold with third parties.&lt;/p&gt;</description></item></channel></rss>