The picture

CS70 Network Fundamentals & Architecture


David Morgan
Santa Monica College
see syllabus for email address
Our curious network:
Not any Damsel, which her vaunteth most
In skilful knitting of soft silken Twine;
Nor any Weaver, which his Work doth boast,
In Diaper, in Damask, or in Lyne;
Nor any skill'd in Workmanship emboss'd;
Nor any skill'd in Loups of Fingring fine;
Might in their diverse Cunning ever dare
With this so curious Net-work to compare.
       Edmund Spenser



Course outline

Zoom meeting recordings

Homework schedule

Grade information

Home network map


SMC dates/deadlines


Reading list, per chapter:
 6th edition
 5th edition

Remote Unix accounts


Textbook's website

RFC lookup

Remote Unix access with ssh

Protocols: non-cyber examples

MAC address assignments
 - listing
 - search

TCP/IP - Intro to the IP Protocols

TCP/IP Pocket
Reference Guide
 - IPv4 version
 - IPv6 version

Wireshark doc
html   pdf

Network calculators:
  here's one
  and another
  and a third

Real world DSL
  - a DSL order

commercial routers

Selected protocols






echo (port 7)

discard (port 9)

chargen (port 19)



FALL 2021
Section 1793 Online

This Website (  will be used extensively to communicate with you. Announcements, grade reports, and assignments will be posted here. You are responsible for awareness of the information posted here.

Announcements/grades/current topics

IPv4 Address Depletion - listen to these 2009-10 perspectives
 Steve Gibson says it's no big deal. (6 min.)
 John Curran says it's a huge, inevitable, immediate problem. (19 min.)
Address depletion rates were diminished by the advent of 1) CIDR as opposed to classfull address block assignments, 2) widespread use of NAT, 3) use of dynamic (recoverable) addresses. Steve says these solutions exceed the problem. John says the problem exceeds these solutions. (10/15)

Grades - have been published, at the link entitled "Grade reports" at left. They include the packet delivery ("Sally and Harry") assignment. Please call any anomalies to my attention. (10/14)

Homework - 
do - the activities in the "Homework" column of course outline section 9
 turning in "error detection," exercise there, due on sputnik by end of day Saturday 10/24,
don't forget - "MAC vs IP addresses" per 10/7 Homework posting below
listen - to the narrated slide presentation about the very important topic of internetworking. Find the link to it in course outline section 7. The link is entitled "(narrated version)". I will not make this presentation in our (Zoom) class. Instead I'll leave it to you to listen to it on your own. In class I will summarize these slides but you will need to see them fully, on your own, my abbreviated summary will not be enough. It is the foundation for the major lab exercise homework coming up in about a week. (10/14)

A real-world order for IP addresses from an ISP - We have been emphasizing what a "network" is in technical, mathematical terms. It's a range of numbers that people express by telling other people what the first number in the range is (network address), and how many numbers there are in it (netmask). This surfaces in the commnuique I received once when I ordered a subnet from an ISP. Please see the links in the column at left under the heading "Real world DSL." Read the analysis. (10/14)

Who was IANA? What about now? Where are they? What is their job? 
 (see also, RIRs) (10/14)

Homework - 
read - everything in the Reading column of course outline section 7
listen - to the recorded demo of forwarding behavior differences of hubs vs switches, Homework column of course outline section 6 (do this at your convenience over the next 2 weeks). During the demo I drew
a sketch. It's of poor quality but available if you want to review it.
listen - to the podcast segment at the link entitled "packet delivery" in the Homework column of course outline section 6
do - "IP packet delivery," course outline section 7 Homework column. It was originally an on-paper assignment. Please do it on paper per the instructions, then scan the resulting 4 pages into 4 image files. Name them: 


(or alternatively use .png instead of .jpg filename extensions) and upload them to your assignments directory on the server. Don't use any other format. due on server by end-of-day Wednesday October 13
do - "MAC vs IP addresses," course outline section 7 Homework column. due on server by end-of-day Tuesday October  19
(Both these assignments focus on the same understanding.) (10/7)

Grades - have been published, at the link entitled "Grade reports" at left. They include the subnet partitioning assignment. Please call any anomalies to my attention. Soon I would like to drop those students who have submitted no work. (10/7)

Golden rules for deciding how to ship a packet (Fore Systems "IP packet delivery"):

We reviewed the concept behind the "IP packet delivery": if IP thinks a destination IP address is local it arps for that IP address, if not it arps for the IP address of its default router (which comes from the routing table). Everything hinges on what "local" means. That is a function of the given destination address, the local address, and the local netmask. Network calculators and/or the linux "ipcalc" command can help you recreate IP's "thinking process" in this regard for particular subnets, addresses, and netmasks.

A related description of the thinking process comes from our textbook, Computer Networks and Internets, Douglas Comer (see p. 368 fifth edition). (10/7)

Grades - have been published, at the link entitled "Grade reports" at left. They include the "netmask legality" assignment. Please look yourself up by the same anonymous 5-digit value you derived in calculating your sputnik remote server password. Please call any anomalies to my attention. Soon I would like to drop those students who have submitted no work. (10/4)

Homework - 
read - material in course outline sections 5 and 7
listen - 
physical layer, narrated slides, links entitled "Transmission media" in course outline section 4, and "Signals" in section 5.
- "subnet partitioning," course outline section 7 Homework column. You can do it on paper and send a scan or photo of the paper as a jpg or png file. Or you can put the same information into a text file using txt file extension. Turn in to spunik by end-of-day Wednesday 10/6  (9/30)

Grades - I will defer posting grades (and grading) until Monday. The netmask legality assignment was due but you did not have benefit of last week's related lecture until last night. So please take additional time if you need it, finish and uploading that assignment by Monday. (The grades shown currently are those that I posted last week. Individual changes I made since are not yet reflected.) (9/30)

Double match?? - what would happen if an IP packet's destination address matched two entries in the routing table. To which of the two interfaces would it be sent? Is this even possible? (Hint: it's called "longest prefix match." Longest prefix equates to smallest network. You can look it up.) (9/30)

Packet capture files for you from the "wireshark" in-class exercise
I performed the exercise while running Wireshark and saved the traffic into capture files. You can open my files in Wireshark, to replay and analyze what I did.

The IP addresses of the machines I used were and Those are reflected in the captures. Get the files (unzip) then open them in Wireshark. You can then ponder the questions the exercise asks and use the captures to help you understand. The files are:
 for section 4:  echo-udp.cap  echo-tcp.cap
 for section 7:  login-telnet.cap  login-ssh.cap
 for section 8:  http.cap 

Satisfy yourself you have a pretty good idea what you are looking at. In particular, compare the header structures you see in the captured frames with the ones mapped out in the TCP/IP Pocket Reference Guide. And, practice using Wireshark's "Follow TCP stream" feature, found by right-clicking on packets in the packet list pane. It will starkly and unmistakably extract the password used in the telnet login session. And it will reveal the content of the web page obtained in the http browse session. There is nothing to turn in.  (9/30)

Packet encapsulation clarification - one of the slide presentations we viewed about ethernet has provoked questions. It was about the relationship in a frame among the various protocols that appear within it. The word is "encapsulation." Think Russian dolls. Think one-inside-the-other. Please revisit the slide presentation and view the two slides shown on its page 8. The first one shows the general concept. The second one shows a real-world frame from a Wireshark capture, and breaks its content down into the protocol components within it. This real-world frame is one that was captured while performing the Wireshark sniffing homework making a telnet connection. (9/30)

Grades - have been published, at the link entitled "Grade reports" at left. They include the "ethernet frames" assignment. (The majority of student haven't done it.) Please look yourself up by the same anonymous 5-digit value you derived in calculating your sputnik remote server password. Students are free and independent and I expect you to be aware of the grade you are earning, in particular your cumulative average, and that each student's grade will be that of his or her conscious choice. Please call any anomalies to my attention. (9/23)

Network Address  +  Netmask  =  Subnet
It's useful to think of a network (a.k.a. subnet) as being defined by a position, and an extent measured from that position, on the continuum of IP addresses represented as a number line. A network is definitively identified by a 2-component ID. The first is its network address and the second is its netmask. 

It is the network address that establishes the position or starting point of the address range or block that is the network. And it is the netmask that establishes its extent or size. As an example consider a network whose network address is and whose netmask is (the one that signifies "thirty-two" as size). The number line below is a microscopic segment of the number line for the whole internet. That number line is 4 billion addresses in length (because with 32 bits 4 billion is the number of distinct address values that can be composed). Here, with the first 24 bits of our address (64.52.25) we are narrowing in on a particular little 256-address segment within that number line. Within the segment, the network address further positions us with final precision. This idea of sectioning off the 4 billion addresses into separately addressable subordinate pieces is called subnetting, and the resulting pieces or address groups are called subnets.

A short accompanying, explanatory recorded explanation of performing subnetting.


Homework - 
see/do - the homework column of course outline, section 5 ("netmask legality"). due on sputnik in the "assignments" subdirectory of your home directory end-of-day Wednesday 9/29 
read, specifically -
the write-up at the link entitled "Masks, routing, and subnets" in course outline section 7
view - videos in course outline section 4 homework column
read, generally - readings shown in the course outline and link entitled "Reading list, per chapter." The latter is what I want you to read, from the textbook, for the whole course. Read forward to succeeding sections to prepare for upcoming topics. I will not further specify which items to read when. Read them all, for the entire course, in concert with in-class coverage as we proceed. By now you should have done the readings for sections 1-4 in the course outline. From that point, keep going independently week by week.
anticipate - our next subject, for next week, the arp protocol (address resolution protocol). arp interrelates the addresses of the internet and ethernet protocols in networks that use both (all our common networks do). See course outline topic 5 readings. If you read before next week, next week's lecture will be clearer to you.

Routing - important formulations of the "route" command
Three kinds of routes can appear in a routing table: host route for a specified individual machine, network route for a specified grouping of them, default route as catch-all for everything (unspecified) else. Here are the four key linux command formulations by which you add such routes to a routing table. Though there are 3 kinds of routes, note that 4 command formulations appear. We mentioned the concept of gateways (machines other than the destination, to which you would send the destination's packets for forwarding).  That accounts for there being 2 network route formulations below. One is for the case where the routed-to network is the one you yourself are plugged into, the other for the case where that network is "foreign" or "elsewhere" to you.

Add route to a machine (host route):
  route add -host eth0 
Add route to a group of machines (network route - local) 
  route add -net netmask eth0 
Add route to a group of machines (network route - gatewayed) 
  route add -net netmask gw 
Add route to "any and all" (default route) 
  route add default gw

Study these commands intently and try to internalize the semantic meaning they embody. (9/23)

Windows route command - differs in syntax and scope somewhat from the linux command of the same name. But it is kindred in spirit and operates on the very same internet protocol (though not the same coded implementation of it). The internet protocol is defined outside Microsoft and outside linux. Both Microsoft and linux programmers  have taken their hand to writing programs that do what the protocol defines. Including a "route" command to manipulate the protocol's route table. In Windows, open a command box and execute "route print" if you wish to see the route table. (9/23)

Small networks: sizes for some common netmasks:

Netmask: # of one bits: # of zero bits: Implied network size:  24 8 256 (254) 25 7 128 (126) 26 6 64 (62) 27 5 32 (30) 28 4 16 (14) 29 3 8 (6) 30 2 4 (2)


Lego project - make a router for your toy trains. (How is this an applicable analogy to the processing of frames within a computer router?) (9/23)

Wireshark, protocols, and people
--how many protocols does it support? - Apparently the number of protocols supported has reached about 3000.
--who pays these open-source people, anyway? - in most cases nobody. Open source is a labor of love and mostly programmers don't get paid. As for who they are in the case of Wireshark, a list of "contributors" appears at the bottom of the Wireshark man page (that means "manual" page, the traditional form of unix/linux documentation-- give the command "man wireshark" on a linux computer to see it). To my surprise it lists about 1300 people. (9/23)

Homework - 
view and listen - to the several video and audio links in course outline section 4 homework column.
view, listen, read - about undersea cabling at the several links in the post below.
- get started, readings shown in the course outline through section 4; also read forward to succeeding sections as you have time, to prepare for upcoming topics.
do - the "ethernet frames" assignment in course outline section 4 homework column.
due on sputnik in the "assignments" subdirectory of your home directory end-of-day Wednesday 9/22 (9/16)

Undersea cabling - former student Philip Postovoit did the service of researching cabling quite thoroughly. Of the many links about it he sent me, I found particularly interesting:
submarine cable map (click individual cables)
manufacture, shipboard loading, seabed laying youtube video
Haut debit en eau profonde (French)
Transatlantic data cable by Microsoft/Facebook/Telexius completed.
"Contrary to conventional wisdom, satellites play a minimal role in the operation of the internet. Nearly 99% of international phone and data traffic goes through [submarine cables] like ours." Patricia Boulanger, Alcatel Submarine Networks 

Undersea fiberoptic cable landing point (Spain)


What other data link protocols besides ethernet are out there? You might instead have
  point-to-point protocol ("dial up")
  frame relay
  asynchronous transfer mode (ATM)
  802.11 ("wi-fi") in part  

What's the difference?
ARPANet, Leonard Kleinrock's network (now, the Internet), used dedicated connections between computer nodes. He made a phone call to Stanford from UCLA. The wire employed belonged to the phone company. The wire was not used by any other nodes, during the phone call. It was not shared. It was dedicated. Nodes that used it owned it and did not have to compete for it with any other nodes.
ALOHAnet, Norm Abrahamson's satellite based network among islands in Hawaii, used a satellite that could service only one connection at a time, and that all participating computer nodes had to use. So necessarily, nodes had to share it. It was non-dedicated. Nodes that used it did not own it and had to compete for it with all other nodes.
Ethernet was derived from ALOHAnet, and relied on a shared medium too. But while the ALOHAnet medium was radio to the satellite, the ethernet medium was a copper wire. (9/16)

Norm Abramson    4/1/1932 - 12/1/2020 


Grades - have been published, at the link entitled "Grade reports" at left. They include the "exercising wireshark" assignment in addition to the initial wireshark screenshot upload. There is a cumulative (weighted) average of these two. The cumulative average will be maintained to incorporate future work, assignment by assignment as they are completed, over the semester. Please look yourself up by the same anonymous 5-digit value you derived in calculating your sputnik remote server password. Please call any anomalies to my attention. (9/16)

Grades - have been published, at the link entitled "Grade reports" at left. Please look yourself up by the same anonymous 5-digit value you derived in calculating your sputnik remote server password. Please call any anomalies to my attention. (9/13)

By popular demand - at least 2 students in class tonight expressed interest in this bash cheat sheet (summary by a former student of things you can do using the command line in linux or mac). (9/9)

Green light - go ahead and download the vmconfigure scripts for your platform ("bash" version for linux/apple, "batch" version for Windows). In class tonight I had asked you to wait till I could test and confirm them. I did. They are OK. They serve to set up machines for your wireshark homework, below. (9/9)

upload - for homework this past week you made a screenshot of Wireshark after it had captured some network traffic. Please upload that file to the "assignments" directory under your home directory on the remote server, using your remote Unix system account. (This is how you will routinely submit homework.) due on sputnik in the "assignments" subdirectory of your home directory end-of-day Sunday, September 12
do - the exercise at the link on the course outline's section 3 entitled "wireshark" It is labeled as "in-class exercise" but becomes homework you will do outside of class.
When you perform it the result will be 3 screenshot files that you produce in the course of performing the exercise:

statistics-udp.jpg (or .png)

I ask you to place these into a zip file named "" and upload it to your assignments directory. (Please ignore the questions you will see at the bottom of the assignment page. They are not for you. I only want the screenshots.) due on sputnik in the "assignments" subdirectory of your home directory end-of-day Wednesday, September 15  (9/9)

RFC process - how protocols get created. Here is a current example, HTTP 2 which was published as an RFC in May, 2015. See in particular the development timeline that has led it to this point. (9/9)

Screenshot of Microsoft Network Monitor. Compare the interface with Wireshark's. It demonstrates the product category (network "sniffers") to which both products belong.

Screenshot, Microsoft's Network Monitor sniffer

(Network Monitor comes with the Server editions of Windows and won't be found in our consumer editions.)  (9/9)

Remote server access how-to video. Several programs that provide login connection to a remote server, file transfer connection, or both, are discussed and demonstrated. These are the tools for accessing (9/3)

Homework - 
1) read all the announcements below and follow all the links they contain. I will expect you to be familiar with the information they convey.
2) do the reading and homework shown in the "Reading" and "Homework" columns of the course outline's topic #1.
3) make progress in installing VirtualBox on your computer, and my delivered VM in VirtualBox (see link below entitled "Obtaining and installing". (9/2)

Opportunity - ICANN (Internet Corporation for Assigned Names and Numbers) "Shaping the Future of the Internet: ICANN's Newcomer Programs"   (8/30)

Opportunity - NASA community college aerospace scholars program (8/30)

Course outline - with rough weekly topic coverage corresponded to related readings, homework assignments, and in-class slides I will use. Please follow this outline as we move through the topics, for assignments and reading I want to assign.

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.
- Obtaining and installing your VM
     (direct link to fedora31-spring21.ova file on Google Drive)
- Transferring files in and out of it if necessary (accompanying howto video)
- Your VM's configuration
- VirtualBox networking "complete guide" - a good website on the subject

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 client alternatives.

Distributing files from sputnik to the class as a whole,  publicly - the above file transfer discussion describes file movement to and from your own home directory, exclusive to you. Sometimes I will want to have someplace to put a file so everybody can get to it and download it. When I do that, here's how to download them.

Dates and deadlines
Class Census Day: SEP 13, 2021
Class 60% Day: NOV 4, 2021
Last Day to Withdraw to Receive a Refund: SEP 12, 2021
Last Day to Withdraw to Avoid a "W": SEP 12, 2021
Last Day to Withdraw to Guarantee a "W": NOV 20, 2021
Last Day to Request for Pass/No Pass Grade: NOV 20, 2021

Cover art on Tannenbaum textbook:

Networking textbook cover graphic

What is it??

"Number please?" asks the switchboard operator. The switchboard is a board. It's for switching. Switching changes a circuit between you and somebody. It can complete a circuit to your Aunt Bheulah in Iowa City so you can thank her for the knit socks. After you hang up if you want to call your uncle in Waco you'll need to switch circuits, to get a circuit to him instead of her. That's what the operator does for you. The "switch"ing in "switch"board is circuit switching. Nowadays in computer networks it's not circuit switching anymore, it's packet switching.

Phone swithboard operators c. 1950s


Functional layering - the famous "Open Systems Interconnect" model is depicted below. Somebody once had the idea that maybe there could be a way to get independent computer systems of different types to be able to exchange information with one another. The diagram blueprints the idea for "how in the world are we going to make that work??" That idea is the subject of this course.

The 7 layers of the OSI model

First-day administrative information you will need to know:

Running linux at home.

Slides available online - for most if not all slides I will show in class. Links to them can be found in the "Slides" column of the course outline.

Course-long textbook reading - a chapter-by-chapter list ( 6th edition, 5th edition ). The textbook is divided into chapters and they in turn into numbered sections. The list tells you which sections to read for this course when chapters are assigned. For example if I assigned chapter 10 and it had 17 sections, if this list specifies "10.1-100.5, 10.7, 10.12-17" it means I didn't feel sections 10.6 nor 10.8-11 were relevant enough so I only list the balance of the chapter. Read unlisted portions for your own interest if you wish, but the listed sections are what's officially assigned to you.

Textbook - Computer Networks and Internets, sixth edition, Douglas Comer, Pearson Prentice Hall , 2015.

Wireshark - is an excellent free packet capture utility. What is a packet, and why caputre it? We'll talk about that later. I will ask you to install and use Wireshark later in the semester, assuming you have a linux or windows computer available on which to do so. Please visit Wireshark's home page.




First message by telegraph 1844

"What hath God wrought?"
May 24, 1844

First message by telephone 1876

"Mr. Watson come here, I want to see you."
March 10, 1876

First message by internet 1969

October 29, 1969