|Introduction, Syllabus, Foundations, and Socket Programming||Ch. 1 - Sections 1.1 - 1.4
A Brief History of the Internet
There and Back Again: A Packet’s Tale (video)
Beej’s Guide to Network Programming (C)
The Java Tutorial: All About Sockets
Python Network Programming
|Network Performance||Ch. 1 - Sections 1.5 and 1.6|
|Local Links and Encoding, More Socket Programming||Ch. 2 - Sections 2.1 - 2.5
Assignment #1 Due
|Ethernet and Wireless||Ch. 2 - Sections 2.6 - 2.8|
|Switching and Bridging||Ch. 3 - Section 3.1
Exam #1 (Online)
|Basic Internetworking (IP)||Ch 3. - Section 3.2
Bootstrapping with BOOTP and DHCP
Assignment #2 Due
|Routing||Ch. 3 - Section 3.3 and 3.5|
|Simple Demultiplexer (UDP), Reliable Byte Stream (TCP)||Ch. 5 - Section 5.1 and 5.2|
|Remote Procedure Call (RPC), Real Time Protocol (RTP)||Ch. 5 - Section 5.3 - 5.5|
|Congestion Control||Ch 6. - Sections 6.1, 6.3, 6.5, and 6.6
Exam #2 (online)
Ch. 7 - Section 7.1
Assignment #3 Due
|Multimedia Data||Ch. 7 - Sections 7.2 - 7.3
YouTube network traffic at a campus network
|Network Security||Ch. 8 - Sections 8.1, 8.4, 8.5, 8.6
A Look Inside Network Address Translators and Virtual Local Area Networks (VLANs)
|Traditional Applications, Overlay Networks||Ch. 9 - Sections 9.1, 9.5
The Internet Under Crisis Conditions: Learning from September 11
An analysis of the Skype peer-to-peer Internet telephony protocol
|Graduate Presentations||Final Exam (online)
Graduate Presentations Due
Graduate Research Papers Due
Assignment #4 Due
Please see the Syllabus for more details on the course, grading, schedule, etc.. This page is meant only as a summary and quick-reference.
For the next two projects we will be creating a lightweight, stripped down, [BitCoin] clone called BitClone. The project is broken into two parts and focuses on the networking protocols not the cryptocurrency portions. In this first of two assignments, you will create the peer to peer network protocol. In the second part you will implement the distributed database protocol.
To begin work on Project 3 accept the assignment in GitHub Classroom.
You may work in teams of two on this and the next project. Please email or talk to me if you want to do this and we can setup GitHub to make it happen.
In this assignment your goal is to create your own simple HTTP (web) server. Your server must allow (serve) files and subdirectories from a “document root” folder over a TCP port to HTTP clients (web browsers). Both the document root and TCP port must be configurable via command line parameters or a configuration file. Your server must be able to serve concurrent (simultaneous) requests as well as multiple requests over time.
Your goal is to develop a TCP/IP based server that implements a number guessing game. This assignment is an introduction to TCP/IP socket programming and connecting clients and servers together. You will only be responsible for the server side of things, you can use “telnet” for testing and validation. Additionally you can use telnet, a simple text-based client to interact with your server.
USM Course Catalog: A description of computer networks organized as a layered architecture based on the OSI Reference Model. Protocols and services of each layer are examined in detail. Specific local area networks, metropolitan area networks, and wide area networks will be considered. Prerequisites: COS 285, COS 251. Cr 3.
The focus of the course will be on understanding and utilizing the Internet (TCP/IP) protocol stack. Students will write network client and server applications in addition to reading and discussing the theory behind modern data communication networks.
The class is dual-listed as an undergraduate (COS 460) and graduate course (COS 540); graduate students will have additional reading and must prepare a presentation for the class (see below).
subscribe via RSS