COMP 360: Special Topics in Computer Science (Computer Networks)|
Section 1, Fall 2016
This course will provide an introduction to the fundamentals of computer networks.
Computer networks have become embedded in our everyday lives, from the Internet
to cellular phones to cloud networking, enabling applications such as email,
texting, web browsing, on-demand video, video conferencing, peer-to-peer file
sharing, social networking, cloud computing, and more. This course will delve into
the infrastructure and protocols that have allowed computer networks to achieve
their current ubiquity. While the primary focus of the course will be on the
Internet's architecture, protocols, and applications, we will also touch on
other types of computer networks. Programming assignments will be done using
Python; prior knowledge of Python is not required.
|Professor:  ||Victoria Manfredi|
|vumanfredi [at] wesleyan.edu|
|Room and Time:  || Exley, Room 137|
|Tuesdays and Thursdays, 1:20-2:40p|
|Office Hours:  ||Mondays 4-5p, Thursdays, 3-4p, and by appointment|
|Exley, Room 627|
|Course website:  ||
|Mailing list:  ||We'll be using Piazza for discussions: sign up here |
|Grading:  || Final grades will be computed from 4 homeworks (24%),
|2 projects (30%), 2 exams (40%), and class participation (6%)|
|Required textbook:  ||
Computer Networking: A Top-Down Approach |
|7th Edition (2016), by James F. Kurose and Keith W. Ross |
|Other good references:  ||
Foundations of Python Network Programming |
| 3rd Edition (2014), by Brandon Rhodes and John Goerzen |
Computer Networking: Principles, Protocols, and Practice |
|2nd Edition (2015) By Olivier Bonaventure - Free download!|
Internet Measurement: Infrasructure, Traffic and Applications |
|1st Edition (2006) By Mark Crovella and Balachander Krishnamurthy |
Computer Networks: A Systems Approach |
|5th Edition (2011), By Larry L. Peterson and Bruce S. Davie |
Computer Networks |
|5th Edition (2010), By Andrew S. Tannebaum and David J. Wetherall |
Please come to class. You are not required to come to class, of course,
but you will get much more out of the class if you attend. To incentivize
your attendance, part of your grade is based on class participation.
Most of this grade will be based on attendance, but a small part will be based on
asking and answering questions in class. If speaking up in class makes you uncomfortable,
you can alternatively stop by my office to chat occasionally, or email me questions you have about the material
or interesting networking related things that you have seen in the news or come across elsewhere.
Homeworks should be typed and submitted by the start of class (either in class or email me a copy) on the day they are due.
Projects will be submitted online to a WesFiles directory that I will create for each of you.
I typically prefer that you do the assignment and turn it in late than not do it at all.
Hence, my default late policy is that you get four free late days, where you can extend an assignment 24 hours
without penalty. You can use at most two free late days on any assignment. Subsequently, you can extend an assignment for up to 48 hours getting a 15% penalty per 24 hours.
After 48 hours, an assignment will not be accepted, barring a valid medical or personal reason.
If for some reason you are unable to turn in an assignment on time please come talk to me, the earlier the better.
I encourage you to discuss course material, homeworks, and projects with each other.
However, any work you submit must be wholly your own work.
You should work out a solution by yourself on a blank piece of paper with no
other references before writing
or coding up an assignment. Wesleyan University has an
that you have agreed to and that I trust you will follow. To summarize,
googling for answers or exchanging answers is an honour code violation, googling
for deeper understanding of ideas discussed in class or working through
concepts with others is acceptable. For every assignment you must identify the
outside resources you used and the people with whom you spoke. Not
stating an outside resource is a violation of the honour code as is direct
copying from an outside resource you did identify.
No cell phones. No laptops. As we learn about the Internet, we are going to travel back to
the age before the Internet.
Much of this class will involve me writing on the board.
You will remember the course material much better if you copy by hand what I
am writing on the board. If your hand-writing is messy, then recopying your notes will
help you learn the material even better.
That said, if there are particularly complicated pictures or programming examples, I will make
them available online.
And please! Come talk to me if there is something you missed or didn't understand in class, or if
there is something I can do to otherwise improve your learning experience.
I have zero tolerance for harrassment or cheating.
We are all here to learn together and from each other. This should
be a safe learning environment for everyone: let's do our best to
make sure that it is. Please come talk to
me with any concerns you have and we will figure out a solution.
|| Lecture 1: Class overview, components of a network, Internet and internetworks
|| K & R: Sections 1.1-1.3
|| Lecture 2: Packet-switching vs. circuit-switching, delay
|| K & R: Sections 1.3-1.5,
RFC 3271: The Internet is for Everyone
|| Lecture 3: Throughput, Internet protocol stack, Wireshark and network Unix commands, probability review
[ Slides ]
HWK 1 assigned
HWK1 latex template,
|| Lecture 4: Recap of Wireshark and network Unix commands, probability review
[ Slides ]
| K & R: Sections 1.6-1.8
Probability intro, |
|| Lecture 5: Architecture of network applications, Hypertext Transfer Protocol (HTTP)
|| K & R: Sections 2.1-2.2
RFC 1958: Architectural Principles of the Internet
RFC 7230: Hypertext Transfer Protocol (HTTP/1.1)
|| Lecture 6: Web proxies, Simple Mail Transfer Protocol (SMTP), Domain Name System (DNS)
|| K & R: Sections 2.3-2.4
Technical Developmentt of Internet Email
|| Lecture 7: DNS wrap-up, Python tutorial
[ Slides ], [ Code ]
| Python tutorial
|| HWK 1 due
|| Lecture 8: Python for networking, socket programming, intro to threads
[ Code ]
| K & R: Section 2.7
| Project 1 assigned
RFC 7232: Conditional Requests
|| Lecture 9: Role of the transport layer, multiplexing and demultiplexing, User Datagram Protocol (UDP), Reliable data transfer principles
|| K & R: Sections 3.1-3.4.1
|| Lecture 10: Pipelined protocols: Selective Repeat and Go-Back-N
|| K & R: Sections 3.4.2-3.5
|| Lecture 11: Transmission Control Protocol (TCP): sequence #s and ACKs, RTT estimation, retransmissions
|| K & R: Sections 3.5-3.6
|| HWK 2 assigned
HWK2 latex template
|| Lecture 12: TCP connection management, flow control, congestion control
|| K & R: Section 3.7
|| Project 1 due
|| Lecture 13: TCP congestion control wrap-up, midterm review
|| Midterm exam: covers lectures 1-12
|| HWK 2 due
|| Fall break
|| Lecture 14: Network layer overview, forwarding and routing
|| K & R: Section 4.1
|| Lecture 15: Router functions, Internet Protocol (IP)
|| K & R: Sections 4.2-4.3
RFC791: Internet Protocol,
RFC1149: IP over Avian Carriers
|| Lecture 16: Network layer addressing, Network Address Translation (NAT)
|| K & R: Section 5.1
|| HWK 3 assigned
HWK3 latex template,
|| Lecture 17: Link state routing
|| K & R: Section 5.2.1
|| Lecture 18: Distance vector routing
|| K & R: Section 5.2.2
|| Project 2 assigned
|| Lecture 19: Open Shortest Path First (OSPF), Border Gateway Protocol (BGP), Software Defined Networks (SDNs), Internet Control Message Protocol (ICMP)
|| K & R: Sections 4.4, 5.3-5.6
The Road to SDN
| HWK 3 due
|| Lecture 20: Link layer services, multiple access protocols
|| K & R: Sections 6.1, 6.3
|| Lecture 21: Local Area Networks (LANs): Link-layer addressing, Address Resolution Protocol (ARP), ethernet, switches
|| K & R: Sections 6.4, 6.7-6.8
|| Project 2 due
|Security and Privacy|
|| Lecture 22: Network security overview, symmetric encryption
|| K & R: Sections 8.1-8.2.1
RSA Labs Reference
| HWK 4 assigned
HWK4 latex template
|| Lecture 23: Public key encryption, endpoint authentication
|| K & R: Sections 8.2.2, 8.4
|| Lecture 24: Message integrity, Secure Sockets Layer (SSL)
|| K & R: Sections 8.3, 8.6
RFC 5746: Transport Layer Security (TLS) Protocol Version 1.2
|| Lecture 25: Internet Protocol Security (IPSec), review for final exam
|| K & R: Section 8.7
|| HWK 4 due
RFC 4301: Security Architecture for IP
|| 7-10p: Final exam in SCIE 139