Section 1196 online
This Website (http://classpage.dmorgan.us/cs75/cs75.htm) will be used
to communicate with you.
Announcements, grade reports, and assignments will be posted here. The
site can be viewed from an internet-connected browser anywhere. You are responsible for awareness of the information posted
Homework #12 - protocol evolution
listen - course outline section 14 link entitled "httpd & spdy"
nothing to turn in
Homework #11 - TCP 2nd look
listen - to the resources in course outline sections 9-12 at the various links
"Principles of Reliable Data Transfer"
"Connection-oriented Transport: TCP"
"TCP Part 1 - Getting Connected"
"Principles of Congestion Control"
"TCP Congestion Control"
"tcp traffic control"
"Retransmission Timeout Problems"
"Out of order segements"
"TCP Pt.3 - Necessary Refinements"
in that suggested order.
view - course outline section 12 Homework column link entitled "simulation,
congestion avoidance phases"
nothing to turn in
read - the "Use of the fork( )..." paragraph below
listen - the backgrounder in course outline section 21
Reading column at link entitled "how processes get run"
do - exercise at link entitled "concurrent
servers" in course outline
section 21 Homework column. due
2/11, upload to Canvas
Use of the fork( ) system function without
accompanying exec( ) to allow concurrent servers:
"There are two typical uses of fork:
"A process makes a copy of itself so that one copy can handle one operation while the other
copy does another task. This is typical for network servers....
"A process wants to execute another program. Since the only way to create a new process is
by calling fork, the process first calls fork to make a copy of itself, and then one of the copies (typically the child process) calls exec
... to replace itself with the new program. This is typical for programs such as shells."
UNIX Network Programming, Stevens, Fenner, Rudoff,
Instructional emphasis is usually on the second use, where there is an exec( )
function call in the mix, along with the fork( ). But sometimes, you actually want
the child to be a copy of the parent unchanged in terms of its code, not
some other program. Network servers that want to be able to
honor/handle/process multiple "hits" are a good example. They
are programmed to be so-called concurrent, rather than iterative:
With concurrent service every connection gets its own process; and since
you can have multiple processes, you can have multiple connections. All
clients at the other ends of these connections will be receiving service simultaneously. Most real-world network servers are
concurrent. When a website is being visited by five visitors for example, there are
six copies of the serving program (perhaps apache). One program, six processes. Five
of them are doing whatever the server does, for a single client. The other
one is waiting (blocked at the accept( ) call) to hear from a further
client that might ring the doorbell. (2/7)
listen - the five narrated slide presentation, links entitled "tunnels:..." in course outline section
7 Slides column
[ !! scripts for this exercise will be
provided tomorrow !! scripts are now available,
from link within exercise's instructions ] exercise at link entitled "tunneling" in course outline
section 18 Homework column.
What to turn in for this is a file
named "written-answers.txt" in which you answer the questions
found in the assignment under the link entitled "Questions for you to
answer". due 2/7, upload to Canvas
read - selections in course outline section 7 Reading
listen - narrated slide presentation, link entitled "tftp" in course outline section
7 Slides column
do - exercise at link entitled "tftp" in course outline
section 7 Homework column due 2/3, upload to Canvas
read - Forouzan selection in course outline section 17 Reading
do - exercise at link entitled "bridging" in course outline
section 17 Homework column
due 1/31, upload to Canvas (1/24)
Homework #6 - I
- how many plans have gone bad?
what happens when a UDP client talks to a server that isn't there??
what happens when a TCP client talks to a server that isn't there???
do - exercise at link entitled "port behavior" in course outline
section 4 Homework column
due 1/28, upload to Canvas (1/24)
listen - the 13-minute Jim Kurose segment on ipv6 in course outline
section 3 Homework column.
do - exercise at link entitled "ipv6 address autoconfiguation"
in course outline section 3 Homework column.
due 1/26, upload to Canvas (1/21)
do - exercise at link entitled "clientserver-socket types"
in course outline section 13 homework column. It extends an earlier
foundation exercise performed in the CS70 course. If you did not take CS70
please first listen also to the slide lectures at the links entitled
"part1" and "part2".The product of doing the exercise
is three packet capture files. Produce and hold the files. I will later
let you know what to do further.
==> screenshot file due
1/23, upload to Canvas (posted 1/20)
read - the selections from Forouzan chapters 13 and 14 related to udp, and chapters 26 and 27 related to
ipv6, which appear in the course outline sections 3 and 4's Reading
column. This is a lot of material. For the ipv6 chapters in particular, you need not read them for
mastery. You should read them over to see what they contain, and to become exposed to what the issues are concerning this protocol. You should read the udp
and transport layer related chapters more closely. (1/18)
read - the Forouzan selection on NAT in course outline section 3
listen - the 7-minute Jim Kurose segment on NAT in course outline
section 3 Homework column
do - "Network address translation" exericse in course outline section
3 Homework column
due 1/18, upload to Canvas (1/12)
Your homework is about a certain hands-on exercise that you are not
to do. That's because you can't. You don't have the equipment to do it,
nor will virtual machines work. So I must do it as a demonstration.
read - the exercise instructions, link entitled "ppp data-link
protocol" in course outline section 2 Homework column.
watch - the exercise being conducted, link entitled "video
demo" in course outline section 2 Homework column.
listen - YouTube video (6m), link entitled "null-modem cable" in course outline section
1 Homework column.
listen - narrated slide presentation, link entitled "ppp
protocol" in course outline section 2 Slides column.
examine - the items in course outline section 2 Reading
There is nothing to turn in. Completion due by 1/14.
Previous email "welcome
messages" - these messages about this course were sent to all
students enrolled at the time of sending, on December 10 and December 24.
If you did not receive them (perhaps because you were not then enrolled
yet) please read them now.
December 10 message
December 24 message
A virtual machine (VM) for you
- hands-on lab exercises will be performed on a virtual machine that
you can run in your own computer. Familiarize yourself with this
and installing your VM
link to fedora31-spring21.ova file on Google Drive
video - historical help
session about getting the VM environment up and running
- Your VM's configuration
- Transferring files
in and out of it if necessary
howto videos, per method:
networking "complete guide" - a good website on the
- get infrastructure installed. Do, in the following order:
install - VirtualBox (VB)
import - into VB, my provided virtual machine
per "Obtaining..." link
run - my scripts for producing "sniffing"
howto video: setting
up experiments using provided scripts (26m)
read - above link "Your VM's
configuration" to learn your way around the VMs I have given you,
once up and running.
install - the sock
program in sniffing's CLIENT and SERVER VMs
due 1/11, upload to Canvas
read - sock's documentation
do - "enable diagnostic protocols" in course outline section 6 Homework column
due 1/11, upload to Canvas
do - "exercise diagnostic protocols" in course outline section 6 Homework column
due 1/11, upload to Canvas
Assumed familiarity - this course
assumes familiarity with networking at the level of a first networking
course, such as the CS70 course I teach here at Santa Monica College. Two
things from CS70 in particular we will extend in CS75. First, the main
transport protocols, udp and tcp. Second, a pair of demonstration programs
used in CS70 to model client-server computing (socket api). If you did not
take CS70 you may well know about udp and tcp, but won't know about those
demonstration programs. At your leisure early in this course, to prepare
or review, you can avail yourself of this information on those topics:
udp - this
recording from the 20:00-1:22:00 timing mark
tcp - the above recording continuing from 1:22:30 to 1:47:00,
followed by this
client-server demo programs - are described at the
"part1" and "part2" lecture links in the course
outline, section 13, homework column. We will modify the programs
described there. (If you took CS70 you remember these programs.)
A Remote Unix system
account is available for your use.
Using ssh (secure shell). ssh is an important tool you will use
for interacting with remote computers. For that you will need an ssh
client. There are a number of ssh