Computer Networks (CIS-2151) Home Page
This is the home page for Peter Chapin's Computer Networks course notes for the Spring 2023
semester. Here you will find electronic versions of class handouts, homework assignments,
lecture slides, and links to other references of interest. If you are a student taking Computer
Networks consider bookmarking this page.
- The Zoom
meeting URL gives you access to the live lectures.
- The homework submission area and grade book are on Canvas but all other course resources
are here.
- The course syllabus gives an overview of the course and
its content, lists course resources, and describes the grading policy and related issues.
- Vermont State University's Policy
502 puts restrictions on the ways in which university owned networks can be used. See, in
particular, Part IV in the document linked above. These policies are intended to promote a
more secure environment by documenting activities that are considered inappropriate and
subject to sanction. Unfortunately, certain activities need to be done in some of our CIS
classes, such as this one, that violate Policy 502. The administration is aware of this and
has granted the CIS department a limited
exemption to Policy 502 as applied to computers directly connected (with a wire) to two
subnetworks controlled by the department, one on the Williston campus, and one on the Randolph
campus.
- I've prepared some general information on submitting
assignments.
- My home page contains other resources of potential interest.
Lecture Topics
The lectures for this course are on Zoom. The labs for the course will be face-to-face.
- 2023-01-17.
Course introduction and overview. Preparations for Lab #1.
- 2023-01-19.
Number systems. More preparations for Lab #1.
- 2023-01-24.
Introduction to the layered architectures and IPv4 addresses.
- 2023-01-26.
Discussed Lab #2, and the IPv4 header format. Demonstrated how to
use tshark to capture and dissect packets. Discussed time-to-live (TTL).
- 2023-01-31.
Introduced IPv6.
- 2023-02-02.
Discussed Lab #3. Continued discussion IPv6.
- 2023-02-07.
Discussed IPv4 address classes, CIDR, and ICMP.
- 2023-02-09.
Discussed Lab #4, traceroute, and ARP.
- 2023-02-14.
Discussed IPv4 fragmentation, MTUs, and path MTU discovery.
- 2023-02-16.
Demonstrated the IPv6 tunnel between Lemuria and Twilight.
- 2023-02-21. No class (Vacation).
- 2023-02-23. No class (Vacation).
- 2023-02-28.
Started discussion of TCP: background, and opening and closing connections.
- 2023-03-02.
Continued discussion of TCP: receiver window.
- 2023-03-07.
Discussed the TCP congestion window, slow start, and retransmission timeouts.
- 2023-03-09.
Discussed Lab #7. Introduced UDP.
- 2023-03-14.
Finished discussing UDP and DNS. Discussed Lab #8 on the DNS
protocol.
- 2023-03-16.
Discussed TLS, character sets, and introduced SMTP and email protocols.
- 2023-03-21.
Additional discussion of character sets, particularly Unicode. Discussed the Simple Mail
Transport Protocol (SMTP) with a demonstration.
- 2023-03-23.
Discussed Lab #9. Discussed the format of mail messages and MIME.
- 2023-03-28.
Started discussion of link layer issues (Ethernet and IEEE 802.11).
- 2023-03-30.
Briefly discussed other network protocols to create a more complete context around the TCP/IP
protocol stack.
- 2023-04-04. No class (Vacation).
- 2023-04-06. No class (Vacation).
- 2023-04-11.
Discussed error correction and detection.
- 2023-04-13.
Started discussing analog communications: modulation schemes.
- 2023-04-18.
Discussed noise and the Shannon-Hartley Theorem.
Slides
Lab Assignments
The lab set is summarized in the lab summary document, along with links
to specific lab handouts and supporting code samples.
Samples
- This packet capture shows the effect of doing tracert
on a Windows system to Google. This capture was done on Comcast's network and IPv6 was used by
default. Notice that in this case tracert used ICMP echo requests to probe the
network at ever increase hop distances. This is different from what traceroute on
Linux does (which is to use UDP datagrams as probes).
- This zip archive contains Windows executables for both a daytime
client and a daytime server, with versions for both IPv4 and IPv6.
- Here are some examples of MIME encoded email messages: Sample1.eml, Sample2.eml, Sample3.eml, Sample4.eml. MIME is a kind of
protocol that exists above SMTP. It describes the way in which email messages are formatted.
- This packet capture shows the IEEE 802.11 wireless
frames on my home network. This capture was done using Wireshark on a Mac.
Resources/Articles
Linux
- PuTTY is a free SSH client
program for Windows. It is relatively simple, yet provides a rich collection of features. I
have a document that describes how to set up and use PuTTY to
access Lemuria. If you are a Mac user, you might find these notes about SSH on the Mac useful.
- I wrote an overview of Unix that provides some
conceptual background and describes some basic commands. It is an old document, and rather too
long, but you may still find it useful. There are many other descriptions of basic Linux commands online. There are also
cheat sheets.
- For transferring files to and from Lemuria, you might find WinSCP useful. Use the "SFTP" transfer method
(file transfer over SSH) and don't forget to specify the non-standard port 2221 and host of
lemuria.cis.vtc.edu.
- Although outside the scope of this course, this reference on different
tunnel types that can be set up on a Linux system is interesting.
Tools
Other
- An Introduction to Computer Networks is a
free textbook about networking by Peter L. Dordal. You might find it a useful supplement to
the text for this class.
- The ASCII character set is commonly used, although
many modern systems use the much larger (and more complex) Unicode character set.
- A list of IPv4 network masks.
- IP address
classes are, to some extent, now obsolete thanks to classless inter-domain routing (CIDR).
However, you should still be aware of them. Take note of the private address ranges in the
different classes.
- The RFC Editor page is where you can find a
complete collection of all RFC ("Request For Comments") documents. These documents are the
output of the Internet Engineering Task Force (IETF) that manages the various networking
standards used on the Internet. IPv4 is described in RFC-791. Here are some additional
notes about the IP protocol and header fields:
- There is a nice page on Wikipedia describing the Type of Service field in the
original RFC and how its meaning has evolved over time.
- Here is more information about the Time to Live
field.
- Details on how the IPv4
header checksum is calculated.
- The Internet
Control Message Protocol is defined by RFC-792. It is used by routers and
hosts to exchange control information.
- Here are some details about IP fragmentation.
Wikipedia's description of maximum transmission
units (MTUs) is a good overview of the topic. Path MTU discovery is a method
for finding the minimum MTU on a path from the source to a destination. It is used to avoid IP
fragmentation. Its use is required with IPv6 since IPv6 packets can't be fragmented by
routers. Here is another article that
describes MTUs and path MTU discovery.
- The Domain Name System (DNS) is described by a variety of RFCs. RFC-1035 describes the protocol.
- ASCII, ISO-646, ISO-8859, C0 and C1, ISO-2022
- Unicode Consortium, Unicode Technical Site
- UTF-32, UTF-16, UTF-8, BOM
- RFC-1149. A Standard for the
Transmission of IP Datagrams on Avian Carriers.
- Wikipedia's article on Ethernet frame
format.
- Some notes on how to get Wireshark to
see the IEEE 802.11 frames (they are normally translated into "fake" Ethernet frames by
the network driver).
- A nice video on YouTube that demonstrates
Hamming error correcting codes.
- The Wikipedia article on the radio
spectrum gives an overview of the various ranges or radio frequencies and what they are
called.
- The Wikipedia article on the electromagnetic spectrum
puts the radio spectrum in a larger context and shows where optical frequencies fit into the
picture.
- Here is a page that shows a simple form of Shannon's
formula relating digital bandwidth to analog bandwidth and signal-to-noise ratio.
Wikipedia also has a good page
on the Shannon-Hartley Theorem.
Last Revised: 2023-04-18
© Copyright 2023 by Peter C. Chapin <pchapin@vtc.edu>