Villanova University
Department of Computing Sciences
CSC 4900 Computer Networks
Spring 2000
I am in the office most days and you are welcome anytime you see the
door open. Call ahead if you want to be sure I am there. Otherwise, just
stop in.
Graduate Assistant:
Name: Sandeep Gandra
Office: G50
e-mail: sandeep_gandra@hotmail.com or sgandra@monet.csc.villanova.edu
Office hours: Monday and Friday afternoons -- times to be determined
Text book:
Cassel, Lillian N. And Richard H. Austing. Computer Networks
An Application Development Perspective
Due from the publisher "soon."
You will need regular access to the class web page and bulletin board.
You will need access to a computer system where you can prepare web materials
and make them accessible to the rest of the class. You will also need to
be able to write programs that use network resources and allow others in
the class to have access to your programs. You will have an account on
the department computers for this purpose. You may use other computers
as long as the access requirements are met.
Course content and grading:
This is a course in computer networks with a focus on becoming effective
users of the network. Just as you learned programming before you learned
details of computer organization and operating systems, you will learn
to use networks before you learn details of how they work. We will begin
with applications - the World Wide Web, electronic mail, file transfer,
and remote access. We will then look more deeply into networked systems
of computers to see how separated, disparate systems communicate effectively
and what changes to expect in networks.
This course requires the active involvement of all participants. Reading
and other assignments will be discussed in class. Questions that arise
will be addressed by everyone. Each student will make at least one presentation
to the class on a topic central to the course. Writing assignments and
class presentations will be evaluated for content and for effective presentation.
Each class member will critique the materials produced by other class members.
Conscientious attention to constructive feedback on these materials is
as important as producing your own materials.
The usual rule of thumb for course work is that 2 - 3 hours of work
outside of class time is needed for each one hour in class. Since this
is a 3 credit course, that translates to 6 to 9 hours of work outside of
class time each week. Of course, some weeks will be a bit lighter and some
a bit heavier. Some people will manage with somewhat less time; others
will require more. If you find you are spending much more than 10 hours
a week on this course on a regular basis, come see me about it.
Requirements:
| Assignments |
Points will vary |
300 |
| Exams |
2 @ 100 points |
200 |
| Paper
summaries |
2 @ 50 |
100 |
| Final Exam |
|
200 |
| Total points |
|
800 |
Very Tentative
Schedule. This schedule will be modified as the semester progresses.
Changes will result from spending more or less time than planned on a particular
topic or from changes as a result of requests by students to look into
some different topics. Make your wishes known.
| Week |
Date |
Topic |
Reading |
Assignment
(Unless otherwise noted, each assignment is due
one week from the date of assignment. Assignment is effective on
Thursday for the day classes.) |
| 1 |
1/11-13 |
Course introduction;
overview of computer networks; introduction to the Internet
and the World Wide Web
Slides
from Class Presentation
Hands-on: Tour the networks laboratory
(G50) and become aware of resources available for your use in this class. |
Cassel/Austing Chapter 1
Cassel/Austing Chapter 2 |
Make a directory called netclass
in your html directory on the SUN cluster machines. Make two subdirectories
of netclass: progress and portfolio. Copy the file
~cassel/html/4900/htaccess
as .htaccess
into your progress directory
Web search
exercise.
Begin design of your own web page |
| 2 |
1/18-20 |
HTML
documents and simple
forms
HTML
forms processing.
Review Web search exercise results
Hands-on: Install and configure a Web Server
(in G50) |
HTML
Reference
How to Write HTML files |
Create
a web page of your own (note that there are some specific requirements
for the page as well as ample opportunity for creativity.) |
| 3 |
1/25-27 |
Fundamentals of networked applications.
The OSI seven-layer model.
Abstract
Syntax Notation
Class Activity: Review and critique web pages |
Cassel/Austing
Chapter 3 |
Web form exercise: An interactive calendar
Do this project in groups of 2 or 3.
Due in week 7
Chapter 3 Homework # 6, 16, 17 due Feb. 9/3 |
| 4 |
2/1-3 |
The
Application Layer and Common Services:
ACSE,
ROSE, RTSE, CCR
Needs of remote execution
Class Activity: Review intermediate calendar
results; check for any problems. |
Cassel/Austing
Chapter 4 |
You must have a sketch of the calendar you plan to produce and a first
pass list of the objects and methods you will need.
Chapter 4 Homework # 5, 6, 8, 9 due Feb. 9/10 |
| 5 |
2/8-10 |
Specific Applications Services: Electronic
Messaging (class
slides),
Directory (class
slides)
and File Access(
class
slides)
Class Activity: Comparing e-mail clients
for offline, online, and disconnected mode support. Look at Address
books and other resources. |
Cassel/Austing
Chapters 5 & 7 |
Turn in first article
summary
In groups of 2 or 3, look at this list of topics
for class presentation. Make a choice anytime until February
23/24. After that date, topics will be assigned to anyone who has
not made a selection.
The topic list is a starting point. You are welcome to choose
a different topic to investigate and report on. Propose a topic of your
choice. |
| 6 |
2/15-17 |
Review and Examination |
|
|
| 7 |
2/22-24 |
Encryption
and Compression
Class Activity: Obtain and use your own
public key |
Cassel/Austing
Chapter 9 |
Calendar Assignment due.
Select
project for rest of the semester.
Groups of 2 or 3, but not the same group as before.
Due in Week 13 |
| Break |
2/27-3/3 |
Spring Break |
|
|
| 8 |
3/7-9 |
SIGCSE Symposium. Most of the CSC faculty will be away for this
important conference in Computer Science Education. Use the time to work
with the class assistant on your semester project. |
|
Prepare solution plan for semester project. |
| 9 |
3/14-16 |
Transport
Layer (class
notes)
Class activity: Review semester project solution
plans. Help each other with problems. |
Cassel/Austing
Chapter 11 |
|
| 10 |
3/21-23 |
Network
Layer: Addressing and Routing
(Class
notes) (Routing
supplement) |
Cassel/Austing
Chapter 12 |
|
| 11 |
3/28-30 |
Data Link Protocols and Medium
Access Control; Internetworking: (class
notes) |
Cassel/Austing
Chapter 13, 15 |
Turn in second article summary |
| 12 |
4/4-6 |
Bridges
(Tuesday day/ Wednesday night)
(class
notes on Bridges)
Review (Thursday day)
Network Security: Firewalls
(Wednesday night) (Class
notes on Firewalls) |
Cassel/Austing
Chapter 14 |
|
| 13 |
4/11-13 |
Examination (Tuesday day/ Wednesday night)
Network Security: Firewalls,etc.(Thursday
day) (Class
notes on Firewalls) |
|
|
| 14 |
4/18-19 |
Easter Break begins Thursday
Presentations (Tuesday day and Wednesday night) |
|
Semester Project due |
| 15 |
4/25 |
Presentations (day class) |
|
|
|
4/27-28 |
Reading Days |
|
|
|
5/3 (night) 5/4 (day) |
Final Examination -- Thursday May 4, 11:30-2:00 |
|
|
Watch the class web page and bulletin board for updates to the class schedule
and for detailed assignment descriptions. This schedule is tentative and
will be modified as appropriate to reflect the time we actually spend on
various topics.
Basic expectations of the Web page assignment:
This assignment has two purposes. One is to have you demonstrate
that you can create a suitable web page for some use.
-
For this purpose, the page must include at least the following characteristics:
-
A Title, suitably displayed.
-
An address section at the bottom identifying you as the author and providing
access to you if the reader wants to send feedback.
-
A good background image. Be careful that the text is still legible
when displayed on the background you choose.
-
At least one image.
-
Links of the following kinds: to another place in the page, to another
file in the same filespace as the web page, to another file that is not
on the same computer system as the web page itself.
-
A table or frames to organize the space of the page.
There is lots of room for creativity and imagination in this assignment.
These guides are given to describe a base expectation. Go on from
there in any way that seems appropriate for you.
The page will have a second purpose. That is to be a place where
your work for this course is collected. The page and its links will
serve as a portfolio of your work in this class. Consider that its
current status is subject to inspection and grading at any time.
Keep it up to date and be sure that the work is carefully done and well
presented.
-
For this purpose, the page must have the following characteristics:
-
The page must be located in a directory called netclass, from your root
html directory. The page must be named index.html in that directory.
(You will have a directory called html in your root directory. In
that html directory, you will have a directory called netclass. In
the netclass directory, all files related to this course will be found.
The file index.html in netclass will be the path through which your other
files are seen. If your login is kthomas, the address of your page
is www.csc.villanova.edu/~kthomas/netclass)
-
There will be a link on this page called Reports. That will link
to another file or to another location on this same page where the names
of the reports you do during the semester will be placed. Each report
will reside in this directory and will be pointed to by this list.
-
There will be another link for Projects.
-
We will add others as needed.
Guidelines and Suggested topics for Class Presentation
Guidelines:
Two or three people collaborate to make a presentation. .
Presentations should last 20 minutes. Aim for about 15 minutes
with time for a few questions.
Prepare the material well. Use PowerPoint or Word Perfect Presentations
or a Web-based interface.
Overhead transparencies are ok for some kinds of presentations.
I'll be happy to talk about it and advise if you plan ahead a bit.
Focus on content, make the syle of presentation your second concern.
Suggested topics:
-
MIME. This is an example of Presentation layer activity provided
in the Internet context. You should work from the RFC and other materials
readily available.
-
HTTP. What information is really exchanged in the interactions between
a browser and a server?
-
The new IP v6 and its 128 bit address scheme. Clearly the distribution
of the new IP throughout the Internet will be a monumental task.
There are several potential presentation topics. One might focus
on the 128 bit addresses and how the bits will be used. Another might
address the problems associated with the transition to the new scheme.
-
Multicast. Multicast means distributing communications to a selected
subset of all possible recipients. It supports conference "calls"
and group work, for example. Multicast is one of the issues addressed
in the new IP.
-
Security in electronic commerce applications
-
Connecting the Internet to your home: cable modems, ISDN, DSL, etc.
What are the requirements, what is available, how do you choose?
-
High speed LANs. How do 10Mbps and 100Mbps Ethernets compare?
What is the projection for higher speed Ethernets? Similar topics
for Token Ring, FDDI, etc.
-
ARP (Address Resolution Protocol) -- how a machine discovers its own identity.
The relationship between an IP address and a local network address
-
DNS (Domain Name Service) -- how machine names are converted to IP addresses.
-
Registering names in the Web. Procedures, costs, who is in charge.
-
Others......
Calendar scheduler project
Have you ever had to coordinate the schedules of several people in order
to have a meeting or get something done? You are to develop a web
application to address this problem.
Requirements: Your application will present a calendar that displays
a particular month. Each day of the month will have a text box where
a user can enter their name or initials indicating that they are NOT available
on that day. When the form is submitted, the calendar is displayed
to the user showing all dates and the list of people who are not availabe
on each day. The user can then see what days are still open.
As other users enter their information, the calendar will become more full.
If you wish, you may choose to change the display on days with a lot of
entries so that the entry just says "More than 5 people not available on
this day." if you wish. That will keep you from having to expand
the size of the day boxes indefinitely. Up to 5 people should display,
however.
The requirements above consititute the base requirements for this project.
Successful completion of this work with a good display will receive a grade
of B. To improve your grade, enhance your project with some or all
of the following features. You may add other features as well.
The best calendar will be used in the class to schedule the end-of-semester
presentations.
Enhancement 1: Make an initial form that asks the user what time
period they want to schedule. Display the month requested.
Even better, display the month or the week or the day (requires times as
below), as required by the user. Best, allow the user to specify
any time period, even if it begins in the middle of one week and ends in
the middle of another week, which may be in another month and/or year.
Enhancement 2: Include times on the days. Make the time
slots of fixed size (one hour, perhaps) or, better, allow the user to choose
the time slot size.
Semester Project
You may choose a project of interest to you. Anything that involves
deepening your knowledge of computer networks is a good candidate.
Talk to me about what interests you. The ideas below are just some
suggestions. Feel free to do something entirely different.
Base requirements:
-
Your project must involve an application that runs on two or more computers
and includes interaction between them.
-
Your project must be original work by your team.
You may refer to others' work, but must be very clear about what you get
from others. You will get credit for creating something. Building
on what others have done is ok in this project, but you will be judged
by what you accomplish. Any project
that includes work done by others, which is not clearly identified as such,
will result in a report of academic cheating and the serious consequences
outlined in the University's policy on academic integrity.
-
Each of these projects requires you to do some investigating to learn about
available resources. Spend some time at the beginning to find what
is available to help you. Don't reinvent standard network resources!
-
There are a lot of tools available to you in Java that will make these
projects easier than they have been for people who had to open sockets
directly and create the communication link between the systems. You
will probably want to investigate Java's RMI (Remote Method Invocation).
Plan your time so that you can learn to use these resources if you do not
already know how to use them.
-
You may choose a different project from anything suggested here.
However, the project must be something connected closely to the way the
lower layers of the network work. If you are not sure about the appropriateness
of a project, ask early.
Some ideas to start with:
-
Write a program to display the approximate round trip time for messages
exchanged between the client computer and a given remote host. Use
this information to choose which of several available servers is most accessible
at the present time. Your user should provide the names of the servers.
You should display the round trip time for each server and highlight the
shortest time. (There are several resources available that will help
with this. Look for a time service that runs on many machines and
learn how to convert from a host name to its IP address).
-
Implement a very basic authentication service and a resource manager that
uses the service. A user wishing to use a resource first contacts
the authentication service. The user provides an id (user name) and
password and the name of the desired resource. The authentication
server checks to see if the id/password pair is valid. The authentication
server computes a randomizing function (a ticket) on the id/password and
the IP address of the user's system. This ticket is then passed back
to the user and is also sent to the resource manager. The user then
has a fixed time, perhaps a minute, in which to contact the resource manager
and request the desired resource. If the ticket presented matches
one the manager expects, the resource is made available. For your
purposes, the resource can be a simple as being allowed to see the contents
of a file and report back what is stored there. The user should receive
the file contents displayed on the screen. The point here is the
interaction between the user, the authentication server, and the resource
manager. What is your opinion of this system as a security measure?
-
When you begin this project, we will not yet have discussed the transport
layer except in general principles. Here is a simple function of
the transport layer that you can implement in anticipation of further details.
The role of the transport layer is to provide the appearance of error-free
communication between two end systems. To do that, the transport
layer sends a messages to its peer and looks for acknowledgements that
those messages arrived safely. If a message did not arrive safely,
the transport layer must resend it. On the receiver side, the transport
layer must recognize that it has received a message, must acknowledge receipt
and pass the messages up to the user of the transport layer. A very
simple protocol for these acknowledgements is called stop-and-wait. In
this protocol, the sender transmits a message and then waits for an acknowledgement.
When the acknowlegement arrives, the sender transmits another message.
Even this simple protocol has some complications, however. If an
acknowledgement does not arrive, the sender must give up and retransmit.
How long should it wait? Suppose the acknowledgement is sent but
does not arrive safely? Then the sender will resend and the receiver
will have two copies of the same message. To address this problem,
each message has a sequence number: either a 0 or a 1. If the receiver
sees two messages numbered 0, it knows it has a duplicate and it discards
one. The question of the waiting period is handled with a timer.
When the sender transmits, a timer starts. If the timer expires,
the sender resends the message. Implement and test a stop-and-wait
protocol. Be sure to test cases where messages get through, messages
get lost and acknowledgements get lost.
-
The data link layer appends an error check sequence to the end of a message
before it is transmitted. The error check is created on the fly as
the bit stream is sent and the corresponding error check is generated while
the incoming message is arriving at the destination. An interesting
project is to do that error check (CRC). In other words, you would
receive a string of bits, say 40 bits, and calculate the CRC. You
send the bits with the CRC appended to another program which calculates
the CRC as the bits arrive and checks the last bits to see if they match
the value it calculated. You would write two programs, one to send
and one to receive. You should make the sender send some errors now
and then to test the receiver. To do this assignment, you will
probably want to look into the CRC a bit before we would get there.
There are lots of resources available in addition to the book. Use
the 32-bit CRC code. We will probably talk about the code in time
for you to complete the project, but getting a head start might be wise.
Lillian N. (Boots) Cassel
Department of Computing Sciences
Villanova University
Villanova, PA 19085-1699
+1 610 519 7341
cassel@vill.edu
4 January 2000