Date Topic Notes/Reading
Week 1
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
Network Performance Ch. 1 - Sections 1.5 and 1.6
Week 3
Local Links and Encoding, More Socket Programming Ch. 2 - Sections 2.1 - 2.5
Assignment #1 Due
Week 4
Ethernet and Wireless Ch. 2 - Sections 2.6 - 2.8
Week 5
Switching and Bridging Ch. 3 - Section 3.1
Exam #1 (Online)
Week 6
Basic Internetworking (IP) Ch 3. - Section 3.2
Bootstrapping with BOOTP and DHCP
Assignment #2 Due
Week 7
Routing Ch. 3 - Section 3.3 and 3.5
Week 8
Simple Demultiplexer (UDP), Reliable Byte Stream (TCP) Ch. 5 - Section 5.1 and 5.2
Week 9
Remote Procedure Call (RPC), Real Time Protocol (RTP) Ch. 5 - Section 5.3 - 5.5
Week 10
Congestion Control Ch 6. - Sections 6.1, 6.3, 6.5, and 6.6
Exam #2 (online)
Week 11
(11/8 )
Presentation Formatting Ch. 7 - Section 7.1
Assignment #3 Due
Week 12
Multimedia Data Ch. 7 - Sections 7.2 - 7.3
YouTube network traffic at a campus network
(11/22) Thanksgiving Break  
Week 13
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)
Week 14
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
Week 15
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.

Course Matierials

  • Project 3 - BitClone (Peer to Peer)


    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.

    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.

  • 3 - Internetworking (slides)

  • Project 2 - HTTP Server


    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


    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