Held Monday, January 24, 2000
Overview
Today, we begin our study of networks by considering some basic
issues: what computer networks are, why we have computer networks,
and what criteria we use in designing and building computer networks.
We also begin the course by considering the normal range of
administrative issues.
Notes
- Assignments (for Wednesday):
- Make sure to complete the
Introductory survey
for Wednesday's class! (A few students always seem to miss this.)
- At noon on Thursday, January 27 in Science 2424 I'll be giving a presentation
on summer opportunities in computing and computer science. Some
opportunities are available for non-majors.
- I know that many of you are prospective majors worrying about how
to put together a major, so please feel free to come talk to me
about scheduling. It is possible to be a CS major and still take
a semester abroad.
- As usual, I'll start the course with a number of questions, some
of which are answered in the course outline. Please don't refer
to the outline when coming up with your answers.
Contents
Summary
- About computer networks
- Some key issues: reliability, routing, resources, round-trip,
and rate
- Network architecture, from bottom to top
- Course overview
- Handouts:
- I believe that we should begin the study of any subject by considering
how we (and others) define the subject and what that tells us about
what we expect to study.
- So ... What is a computer network?
- My ``quick and dirty'' definition is that
A computer network is the combination of hardware, software, and
protocols that allows computers to communicate. Like computers,
computer networks are general-purpose devices.
- In his textbook, Tanenbaum says
The old model of a single computer serving all of the organization's
computational needs has been replaced by one in which a large number of
separate but interconnected computers do the job. These systems are
called computer networks. The design and organization of these networks
are the subjects of this book.
- Tanenbaum also says
Throughout this book we will use the term "computer network" to mean an
interconnected collection of autonomous computers.
- Peterson and Davie said (in their first edition)
Before we can understand how to design a computer network, we should
first agree on exactly what a computer network is. At one time, the term
network meant the set of serial lines used to attach dumb terminals to
mainframe computers. To some, the term implies the voice telephone
network. To others, the only interesting network is the cable network
used to disseminate video signals. The main thing these networks have in
common is that they are specialized to handle one particular kind of
data (key strokes, voice, or video) and they typically connect to
special-purpose devices (terminals, hand receivers, and television
sets).
&nbps;
What distinguishes a computer network from these other types of
networks? Probably the most important characteristic of a computer
network is its generality. Computer networks are built primarily from
general-purpose programmable hardware, and they are not optimized for a
particular application like making phone calls or delivering television
signals. Instead, they are able to carry many different types of data
and they support a wide, and ever growing, range of applications.
- They say something fairly similar in this edition
- This question may be as simple (and as difficult) as
``Why Build Computers?''. However, it is useful to
consider what outcomes we hope from having computer networks.
- Why are networks useful?
- Networks permit the sharing of resources. Computers can share
computation, data, storage, peripherals, ....
- Networks can support increased reliability
- Networks support human-human communication, such as e-mail, WWW,
chat, videoconferencing, telephony, radio, ...
- It may also be helpful to contrast modern networks to the old
``one large server plus many dumb terminals'' model.
- Why use the new model?
- Why are people seeming to return to the old model?
- Are they really returning?
- What are the goals, requirements, and other issues we must
consider when designing a
network to support all of the applications above (and others
we've not yet thought about)?
- How do I make sure the network is reliable or measure
reliability?
- How do I route information between computers that
are not directly connected?
- How do I ensure that resources are used fairly,
efficiently, and appropriately?
- What is the rate I can transmit data?
- What is the round-trip time for my network? (More precisely,
the latency of a network is an imporant factor to consider).
- [This is probably the first of many attempts to shoehorn
related issues into words that with the same letter.]
- What Makes a computer network good?
- Well, it depends on your perspective
- Users:
- Broad range of services
- Predictable/reliable
- ...
- Designers
- Good use of resources
- Fair allocation
- Scalable (?)
- ...
- Implementers
- Simple / understandable
- Small
- ...
- Providers
- Easy to manage
- Faults detectable
- Scalable
- ...
- ...
- Let's sketch the steps involved in building a computer
network. Along the way (or afterwards), we'll try to
identify key issues we might consider.
- We start by connecting computers by a wire.
- How do we represent data?
- How do we deal with errors?
- As we add more computers, not all are connected. We need to
think about how to deal with groups of computers?
- How do we route information?
- How do we deal with errors (and what kinds of errors)?
- Eventually, we want to treat the group of computers as a logical
whole. We need to think about how to connect the groups.
- How do we route information?
- How do we deal with errors (and what kinds of errors)?
- Then we need to think about how to provide different views of
the network to applications, and what views to provide.
- We'll return to this issue on Wednesday.
- A pair of background questions:
- Why are you taking this course?
- What do you expect out of the course?
- Please refer to the course web site and
the introductory handout
for details.
- Teaching philosophy: I support your learning
- Policies
- Attendance: I expect you to attend every class. Let me know
when you'll miss class and why.
- Grading: I'm a hard grader. I don't grade everything.
- Course web
- Etc.
- The exams
- Midterm and final
- In-class
- The books
- One general text
- One on Unix Network Programming
- One optional reference
- The project
- Still under development
- Likely to emphasize transportable agents
- Design first half of semester, implement second half