CSC445
Instructor: Doug Lea
Class: T-Th 8:00
Office/Lab hours. Normally T-W-Th 11-12:30, but send mail at any time with questions or to set up online meeting
Prereqs: CSC241 (365 strongly encouraged) and CSC322 (or 222)
Overview
Feb 18 2025: remote at Google Meet
The design, analysis, and implementation of layered computer
networks and networked applications; including underlying
communication support, the development and use of network protocols,
and distributed systems.
Some materials and course notes may be found at the: CSC445 Google Drive
Topics
- Network Design and Implementation: Layered systems,
point-to-point and shared media, unicast and multicast protocols,
switching, routing, reliable delivery, windowing, congestion
control, security, quality of service.
- Distributed Systems: Remote services, naming,
caching. security, group communication, data consistency, fault
tolerance.
- Analysis: Latency, throughput, messaging overhead, empirical
measurement.
- Programming: Sockets, cluster and cloud frameworks.
Outcomes
Upon completion of this course, students will demonstrate ability to:
- [Design.] Choose among relevant design strategies to approach
problems; construct and use components and protocols that meet
given constraints.
- [Analysis.] Determine throughput, latency, security,
liveness, and/or fault tolerance properties for a given design and
implementation.
- [Development.] Incorporate covered techniques when developing
networked applications.
- [Growth.] Learn about and present new ideas and techniques
in networking
Textbook
Current version
(and sources) of
Peterson, Larry, and Bruce Davie
Computer Networks: A systems approach.
Lectures mainly follow the text up through chapter 5, but then
mainly rely
on course notes, including:
naming,
congestion,
middleboxes,
multicast,
consensus and fault tolerance,
security,
blockchains,
media,
application protocols.
QUIC, ntp,
crosscuts.
See also code samples: SimpleService.java, EchoClient.java.
Requirements
Subject to minor change:
- Two exams (one during final exam week) (30%)
- Exam questions cover the design and theory of operation of
protocols and components, as well as analysis in terms of
latency, security, liveness, fault tolerance, and appropriateness
for a given problem.
- Exercises (10%)
- When covering non-hands-on topics, some text exercises will be
assigned and discussed in class. Submit in 4 sets:
- Chapter 1
- Chapter 2A
- Chapter 3A (13-17)
- Chapter 3B (47,48) and
Chapter 3C (56)
- Class presentation (10%)
- An approximately 15 minute presentation on a networking
topic that is covered at most only briefly in class and text.
Examples include the technology and protocols for radio
links, satellites, NFC, IR, RFID, SPS, interplanetary,
factory automation, game systems, aviation, GPS, and quantum;
alternative general protocols such as XNS and Netware, and
higher-level frameworks. Time slots for these will scattered
throughout the semester. You can choose to either do a
presentation alone, or together with another student.
- 3 programming assignments (50%)
- At least one project focuses on performance measurement
across multiple hosts and networks; others require specialized
versions of covered techniques and components to develop
network services or systems. Programs may not be submitted
unless they successfully run according to specification.
Two percent credit is taken off per day late.
You must demo within 2 days of submitting. As a substitute for live demos.
you may accompany your program source and screenshots or remote
screenshare of successful operation with a brief (approx
one-page) design and experience account of your approach
and how it changed over time. (This may be embedded as
main program documentation.) If you maintain commit logs
or time logs every time you work on project, a lightly
edited collection of these should suffice. I may send
follow-up questions before accepting.
- Assignment 1 (new on-time date: March 4)
Lectures
Here are the targeted topics for lectures, many of them in two or
three parts:
- Point to Point communication: metrics, errors, APIs
- Shared media communication: ethernet, wireless protocols
- Switching: topologies, protocols
- Routing: paths, metric-based, policy-based (BGP)
- Internetworking: IP, ICMP, ARP, etc
- TCP and related protocols: sessions, windowing, congestion
- RPC: protocols, marshalling
- Naming: DNS, network file systems, etc
- Security: policies, authentication, encryption, blockchains
- Groups: multicast, consensus protocols, fault tolerance
- Application layers: middleboxes, mail, streaming
Campus references
See
the
CS and College course policies and resources.
If you have a disabling condition, which may interfere with your
ability to successfully complete this course, please contact the
Office of Disability Services.
SUNY Oswego is committed to Intellectual Integrity. Any form of
intellectual dishonesty is a serious concern and therefore prohibited.
The full policy can be found at http://www.oswego.edu/integrity
Clery Act /Title IX Reporting: SUNY Oswego is committed to
enhancing the safety and security of the campus for all its
members. In support of this, faculty may be required to report their
knowledge of certain crimes or harassment. Upon receipt of a report
of harassment or discrimination based on sex, gender, pregnancy
and/or related conditions, or familial status, all employees have a
responsibility to report to the Title IX Coordinator. For more
information about Title IX protections, go to
https://ww1.oswego.edu/title-ix/ or contact the Title IX
Coordinator, 407 Culkin Hall, 315-312-5604, titleix@oswego.edu, or
schedule a meeting here: tinyurl.com/MeetWithLisaE. For more
information about the Clery Act and campus reporting, go to the
University Police annual report:
https://www.oswego.edu/police/annual-report.