CS75 Network Protocols
David Morgan
Santa Monica College

Administrativa

Syllabus

Grade reports

Course outline


General Information

RFC lookup

Linux links

Remote Unix access with
telnet

TCP/IP Pocket Reference Guide

TCP/IP - Intro to the IP Protocols

"ip" command doc

Network calculators:
  here's one
  and another

IP addresses

IP packet delivery

MAC address assignments

Sockets: socket programming

Sockets: sample programs
 - letter-upgrader server
 - letter-upgrader's client

 - upper-echoback server
 - client for echo-back server

 - web (file-send) server
 - client for file-send server


Linux

Fundamental Unix Commands

Fedora vs Enterprise

vi - the Visual Editor

tcpdump filters

Sockets: socket programming

Sockets: sample programs
 - letter-upgrader server
 - letter-upgrader's client

 - upper-echoback server
 - client for echo-back server

 - web (file-send) server
 - client for file-send server

DNS - various resources


Protocols

data link:
Point-to-point protocol


ARP

network:
IP

IP-over-IP

ICMP

transport:
TCP

UDP

application:
DHCP

echo (port 7)

discard (port 9)

chargen (port 19)

security protocols:
ssh - secure shell

ppp over ssh

CIPE

IPSec

PPTP


Slide presentations

Technical overview:
Intro/installation

Preinstallation

Nuts & bolts

More nuts, more bolts

Changes


Networking:
Interfaces & Routes

IP Addresses

Suites & layers

Protocol interrlationships

Point-to-point protocol

Ethernet, a protocol example

ARP address resolution

proxy ARP

traceroute

packet injection - hping

internetworks

bridging

tcpdump

nmap - port scanner

netstat

ping

udp protocol

tcp protocol

Networks: services

Networks: sockets

Port forwarding methods

Firewalls

Apache (web server)

HTTP protocol

BIND (name server)

DNS protocol

dhcpd (address server)

DHCP protocol

DHCP denial-or-service

IP-over-IP tunneling

Samba (MS fileshare client) 

SMB (MS fileshare) protocol

ftp

nfs

socket demo

netcat


 



FALL 2009
Section 1657 10:00am-12:05pm Sat Bus 263

This Website (http://homepage.smc.edu/morgan_david/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 here.

Thank you - for taking interest in this specialized subject, and for taking the class. Best of luck in working (playing!) with the technology. (12/18)

Exam - is here. Please return answers in a single file, either txt or pdf, by the end of Saturday, 12/26. (For printing to pdf, e.g., cutepdf in Windows or OpenOffice Writer's "export to pdf" menu option.) (12/18)

Slides for today - those at links entitled "bridging" and "IP-over-IP tunneling" (12/19)

OpenVPN - please survey some of these sources of info about it.

http://openvpn.net/

http://www.itsatechworld.com/2006/01/29/how-to-configure-openvpn/

http://fedoranews.org/contributors/florin_andrei/openvpn/

http://www.shorewall.net/LinuxFest2006.pdf  (12/18)

Project files for Luca Robino's presentation about ARP spoofing this morning. (12/12)

Grades - are up-to-date. Please call my attention to any problems. (12/4)

Remaining topics: ppp ("dial-up") and vpn - apart from the time you will take in class for discussion of your projects there are 2 further protocols I want to talk about--
  1) point-to-point or ppp (frequently called "dial-up"). ppp  achieves data connection between a pair of endpoints-- typically yours and the one that answers the phone at your ISP)
 2) vpn. vpn is not exactly a protocol in itself but uses one or another protocol to achieve data confidentiality between a pair of endpoints. I will talk about the OpenVPN product. (11/30)

Homework - take a look at the following sources concerning these 2 protocols
 1) point-to-point
 - pp. 26-27 in Stevens
 - the "Point-to-point protocol" link under "Protocols" at left
 - the "Point-to-point protocol" link under "Slide presentations" at left
 - the "point-to-point" link under "Assignments" at right
 2) OpenVPN
 - http://openmaniak.com/openvpn.php - good summary article
 - http://openvpn.net/
 - http://www.itsatechworld.com/2006/01/29/how-to-configure-openvpn/
 - http://fedoranews.org/contributors/florin_andrei/openvpn/
 - http://www.shorewall.net/LinuxFest2006.pdf (11/30)

Remaining class meetings - after today are December 5, December 12. (11/21)

Projects -
December 5 - please give a 5-minute verbal summary to the class telling what you will present the following week, what you have done so far, what remains that you plan to do, and whatever surprises, discoveries, frustrations, or interjections you like.
December 12 - please give a 15-minute presentation of your topic. (11/21)

Internships at Jet Propulsion Lab (apply soon if interested) - I received email from SMC colleague Jinan Darwiche about student internship opportunities at JPL. She says:

"The majority of these projects do not require students to have a rocket scientist background. Most of them require computer literacy, with possibly MS office, but most importantly interest and discipline.... many students who complete these internships end up getting employed by their supervisors.... Ask any student who is interest to email me, so that I create an account for them to enable them to apply. Students must be at least 18 years of age, and a U.S. citizen."

See 

http://siri.jpl.nasa.gov/index.cfm?fuseaction=home.students&submenu=Student&CFID=46637673&CFTOKEN=e9c67cdb0c7c5359-1DCFCF7B-9BE2-0E3B-4027A7C66A774365

and click on "Announcements of Opportunity." Professor Darwiche's email address is DARWICHE_JINAN@smc.edu. (11/22)

No class meeting Saturday November 28 - for Thanksgiving. Next meeting a week later on 12/5. (11/21)

No class meeting Saturday November 14 - with apology, I got a call from the SMC office today telling me school's closed that day. Next meeting a week later on 11/21. (11/12)

Grades - published, at "Grade reports" link at left. Highest cumulative average is 60. Surprising on first glance, reasonable on second since most of you didn't do the 2 homework assignments. Bring that past homework with you Saturday. (10/22)

Homework - This week and next. TCP chapters in textbook, some specifics for chapters 17-20.

Reading topic portions for you to read
chapter 17 TCP all
chapter 18 connection establishment/termination sections 1-3,6-7
chapter 19 interactive data flow sections 1-3,5-6
chapter 20 bulk data flow sections 1-7,9

Locate parts of the TCP rfc that correspond to these topics and read or scan them.

read - also other readings shown in the course outline, abreast of our topic coverage.
 (10/22)

Class projects - before class next week send me email describing what protocol or technology you're going to focus on, what you plan to do with it, and what outcome/product/result. In class we will talk about the project topics you've suggested. Maybe we/you will reject, combine, alter the suggested projects. We'll strive to reach the point where project choices are firm, decided and assigned to particular teams or individuals. Then, I will ask you to briefly write up a description of what you plan to do, then have about 3 weeks to do it. Think about what you might want to do, whether you would need equipment and if so do you have it, with whom among your classmates you might like to work, what will be the product of your efforts.

If you are interested in what projects students chose when this class was taught in Summer 2008 there is information about it on the website for that class. It remains online at

http://homepage.smc.edu/morgan_david/cs75/cs75_summer08.htm
(10/16)

Important: special provisions for October 10 - I will be absent. Please attend class virtually. Listen to the lecture, do the in-class activity, and do the homework. See you October 17. (10/1)

Homework - do the reading about proxy arp shown in topic 5 of the Course outline. (10/1)

Grades - published, at "Grade reports" link at left. Look yourself up by number, the numbers are derived from your phone numbers. They are the 5 digits I got by taking your number's last 6 and truncating the final one (310-123-4567 would become 23456.)   (9/27)

Question I posed yesterday - why would anyone define a discard protocol or implement a server for it? Isn't running one equivalent to not running anything? (9/27)

Homework -
do - last week's homework. If you did it last week (see grade report), you don't have to do it again. If you didn't do it already, do it. If you are Elie, you don't have to do the "sock" part, just the "nc" part.
It's the exercise at the link entitled "netcat-simple" at right. The server to use is 66.159.240.70 (a.k.a. dmorgan.us but use the numeric address in the exercise). Do the exercise a second time using sock for a client instead of netcat. Since unlike netcat I can't provide a Windows version, that means you will need to get a copy of linux going  if you don't already have one (VMware is a possibility), in order to install/compile sock on it like we did in class. If you're an affected student next Saturday I want you to show me your packet trace open in Wireshark, plus two screenshots (on screen or paper) showing your local display activity while you did the exercise, one for netcat and one for sock. - due in class 10/3
read in full - the rfc for arp. You already looked at it when you did earlier homework. It's short enough to be digestible but long enough to provide a level of substance beyond what we saw in the rfc's for the simple protocols echo, discard, and chargen. It is revealing of the thought process when a technology is in gestation (1982 in this case). Note the references to "DOD [department of defense] internet." That's one and the same as "our" internet but at the time that network was a department of defense project.
review - the particular section about proxy arp in the related textbook chapter you read when you did earlier homework.
preview - the slides about proxy ARP at slide link entitled "proxy ARP" at left.
read - the 3 sources listed on the final "Info" slide in the presentation. (9/27)

Saturday itinerary - I have a flight scheduled to arrive at LAX 9:20am Saturday and will proceed to SMC from there. (9/21)

Course outline - I'm trying to construct one, to centralize information about topics, related resources and assignments covered week by week. Please see the "Course outline" link at left. (9/21)

Homework -
do - the exercise at the link entitled "netcat-simple" at right. The server to use is 66.159.240.70 (a.k.a. dmorgan.us but use the numeric address in the exercise). Bring with you to class the resulting "netcat-simple-udp.cap" packet capture file.
review/do - all work indicated in the newly posted course outline for the first 3 "topics." If you did not do or read some of it, catch up now. (9/21)

Get netcat for Windows if you want to use netcat on that platform. (9/21)

Topics - netcat, arp, udp (please preview slides),  funny things you can do with arp-- proxy arp and gratuitous arp (please google them). (9/12)

HOWTO's (practical implementation guides) - and other goodies at The Linux Documentation Project (www.tldp.org). See, for example, the Linux PPP HOWTO. (9/12)

Homework
read - about Stevens' sock test/diagnostic program - appendix C of textbook and http://www.icir.org/christian/sock.html. sock is somewhat similar to nc.
visit - http://wiki.wireshark.org/SampleCaptures  (9/12)

Green light - for the class. It will be held, not canceled. (7/10)

Homework - some reading and another tool to look at
read - textbook chapters 1-4, but skip the part about SLIP in chapter 2. Note and study the architecture of the test network described in chapter 1 and depicted inside the front cover of the book. The author uses it as a reference net throughout the book.
read - the RFC for the arp protocol alongside the chapter 4 discussion of arp in the textbook.
tool - do your own research on netcat (nc). Start here:
 http://sectools.org/netcats.html
 http://en.wikipedia.org/wiki/Netcat
 slides, at link entitled "netcat" below left, which we will discuss
(9/5)

==========================================
BELOW THIS POINT IS FROM FALL 2007

Final - here is your final. It is open book, in class. (11/14)

OpenVPN - I'm going to review it and talk about it Saturday. Hopefully demonstrate it as well. Please survey some of these sources of info about it.

http://openvpn.net/

http://www.itsatechworld.com/2006/01/29/how-to-configure-openvpn/

http://fedoranews.org/contributors/florin_andrei/openvpn/

http://www.shorewall.net/LinuxFest2006.pdf  (12/3)

IP-over-IP in-class demo. Don't you admire the way IP carries itself? See slides at new link entitled "IP-over-IP tunneling." (11/30)

Homework -
- review dhcp denial-of-service slides from last Saturday at link entitled "DHCP denial-or-service"
- read textbook about TCP protocol
    Chapter 17, all
    Chapter 18, sections 1-6, 7
(11/21)

No class Saturday November 24 - Thanksgiving. (11/8)

No class Saturday November 10 - with apologies I just found out. The campus will be closed. Veterans day I believe. (11/8)

Homework - please read the blueprints for two protocols:
- UDP (RFC768)
- IP-over-IP, sometimes called ipencap (RFCs 2003 and 1853)
Find links to these RFCs at the links entitled "UDP" and "IP-over-IP" in the section headed "Protocols," left-hand column. IP-over-IP is the simplest tunneling protocol, in which one IP packet is carried as another's cargo. (11/5)

Proxy ARP slides - posted, link entitled "Proxy ARP" in the slideshows section lower left. (10/26)

Capture files from yesterday's proxy-arp experiment - I have uploaded them but have yet to look at them and tell you in more detail what you should do with them. For now, here they are. These are the two I generated on my laptop:

middle-eth0.cap

middle-eth2.cap

These are the student ones under the names by which you submitted them:

left-eth0.cap

right-eth0-109.cap

right-middle-eth0.cap  (don't know how to interpret the name of this one)

Here they are zipped as a group in case they don't download well individually.

(10/21)

Homework - some reading and another tool to look at
read - textbook chapters 1-4, but skip the part about SLIP in chapter 2.
tool - do your own research on netcat (nc). Start here:
 http://sectools.org/netcats.html
 http://en.wikipedia.org/wiki/Netcat
 slides, at link entitled "netcat" below left, which we will discuss
(9/23)

Richard Stevens' sock program, for linux - this downloadable binary version seems to work. This site offers an updated version in source code form, which I have not used so can't give an evaluation. (Extra credit: impress the class with one please.) (9/16)

 

Headers!

ethernet header ip header tcp header

Here are some headers, and here they are again.

Remote Unix system
Your username - your last name as it appears on my class list, all lowercase.
Your password - is 5 digits extracted from your phone number. If your phone number is 123-456-9876, then your password will be 56987 (final 2 digits from the 3-digit exchange, plus first 3 digits of the 4-digit number).
The target computer - is sputnik.smc.edu
Log in method - the assignment asks you to "log in." Translation: use telnet as discussed in class and described in the "Remote Unix access with Telnet" link at left. (8/30)

"Live linux" CDs - here's a list of various self-contained bootable linux CDs. They typically convert memory into a RAM-disk, populate it with foundation files for the operating system, and proceed to boot linux. They do not molest your hard disk. The best known is probably knoppix. FYI. There is a live CD version of Fedora 7. (8/30)

Welcome - you may view (almost) all of the presentations shown in class via the links to them as pdf files at the bottome of the column at left. See also the brief class syllabus, at the link entitled "Syllabus," upper left. The textbook is identified there. Its first 2 chapters relate to the first night's discussion. Please read them before next week. The next topic, fundamental commands, is the subject of Chapter 4. Please preview them. (8/30)

 

 


Eniac - 1946

Milestone in the history of computation

Did you get the 'L'?
 1969


Assignments/due


ethernet frames

MAC addresses

tcpdump/wireshark (in-class)

capture arp/ping session (in-class)

wireshark sniffer

tcpdump filters

install "sock"

netcat -simple

enable xinetd protocols

point-to-point
(in-class)

"arp" and "arping"
(in-class)

port behavior
(in-class)

packet injection with hping
(in-class)

tcp dataflow tracking
(in-class)

xinetd (in-class)

nmap scanner
(in-class)

port-forward  lab (in class)