NOTE: This offering of the course is past. It is no longer maintained here. Links may break.

Date Topic Notes/Reading
Week 1
(8/30)
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
Week 2
(9/6)
Network Performance Ch. 1 - Sections 1.5 and 1.6
Week 3
(9/13)
Local Links and Encoding, More Socket Programming Ch. 2 - Sections 2.1 - 2.5
Assignment #1 Due
Week 4
(9/20)
Ethernet and Wireless Ch. 2 - Sections 2.6 - 2.8
Week 5
(9/27)
Switching and Bridging Ch. 3 - Section 3.1
Exam #1 (Online)
Week 6
(10/4)
Basic Internetworking (IP) Ch 3. - Section 3.2
Bootstrapping with BOOTP and DHCP
Assignment #2 Due
Week 7
(10/11)
Routing Ch. 3 - Section 3.3 and 3.5
Week 8
(10/18)
Simple Demultiplexer (UDP), Reliable Byte Stream (TCP) Remote Procedure Call (RPC), Real Time Protocol (RTP) Ch. 5 - Section 5.1 - 5.5
Week 9
(10/25)
Part II Review
Week 10
(11/1)
Presentation Formatting and Multimedia Data Ch. 6. - Sections 6.1, 6.3, 6.5, and 6.6
Ch. 7 - Sections 7.1 - 7.3
Exam #2 (online)
Week 11
(11/8 )
Network Security Ch. 8 - Sections 8.1, 8.4, 8.5, 8.6
Week 12
(11/15)
Blockchain and BitCoin articles Bitcoin (Wikipedia)
Blockchain (Wikipedia)
Blockchains: How They Work and Why They’ll Change the World
Assignment #3 Due
(11/22) Thanksgiving Break
Week 13
(11/29)
Traditional Applications, Overlay Networks Ch. 9 - Sections 9.1, 9.5
A Look Inside Network Address Translators and Virtual Local Area Networks (VLANs)
Week 14
(12/6)
Project Work (no class)
Week 15
(12/13)
Finals Week Final Exam (online)
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.

Course Matierials

  • Project 4 - BitClone (Blocks)

    COS 460/540 - Computer Networks

    Project 4: BitClone (Blocks)

    Specification

    For the next two projects we will be creating a lightweight, stripped down, [BitCoin][1] 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.

  • 9 - Application (slides)

  • 8 - Network Security (slides)

  • 6 - Review (slides)

  • 7 - Presentation (slides)

  • 5 - End to End Protocols (slides)

  • Project 3 - BitClone (Peer to Peer)

    Specification

    For the next two projects we will be creating a lightweight, stripped down, [BitCoin][1] 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.

    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.

  • 3 - Internetworking (slides)

  • Project 2 - HTTP Server

    Specification

    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.

  • 2 - Direct Link Networks (slides)

  • Project 1 - Number Guessing Server

    Specification

    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.

  • 1 - Foundations (slides)

  • 0 - Introduction (slides)

  • COS 460/540 Computer Networks Syllabus

    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