Instructor: Doug Lea
Class: T-Th 8:00
Office/Lab hours. Normally every day 11-12
Prereqs: CSC241 (365 strongly encouraged) and CSC322 (or 222)
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.
- 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
- Analysis: Latency, throughput, messaging overhead, empirical
- Programming: Sockets, cluster and cloud frameworks.
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
- [Analysis.] Determine throughput, latency, security,
liveness, and/or fault tolerance properties for a given design and
- [Development.] Incorporate covered techniques when developing
- [Growth.] Learn about and present new ideas and techniques
open source versions of: Peterson, Larry, and Bruce Davie
Computer Networks: A systems approach Morgan Kaufmann,
5th edition, 2011.
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 (15%)
- When covering non-hands-on topics, some
text exercises will be assigned and discussed in class.
- Ch 1: ex 3, 4, 5, 6
- Ch 2: ex 1-3, 6, 7, 22
- Ch 3: ex 13-16, 46, 47, 55, 56, 72, 73
- Class presentation (10%)
- An approximately 15 minute presentation on a networking
technology that is covered at most only briefly in class and text.
Example topics include substrates such as radio links, broadband,
and satellites, alternative low-level protocols such as XNS and
Netware, and higher-level frameworks such as JXTA. Time slots for
these will scattered throughout the semester. You can choose to
either do a presentation alone, or together with another student.
- 3-4 programming assignments (if 3, the third has multiple parts) (45%)
- 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. You
must demo your program to me within 2 days of submitting it.
Five percent credit is taken off per day late.
- Assignment 1
- Assignment 2
- Assignment 3: As specified by your group.
Here are the targeted topics for lectures, many of them in two or
- 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: sessions, windowing, congestion
- RPC: protocols, marshalling
- Naming: DNS, network file systems, etc
- Groups: multicast, consensus protocols, fault tolerance
- Security: policies, keys, digests, authentication, frameworks
- Application layers: middleboxes, mail, streaming
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