|
|
|
|
Useful books:
Gerard J. Holzmann:
The SPIN Model
Checker
William Stallings: Data & Computer
Communications (Sixth Edition)
Douglas E. Comer: Computer Networks and Internets with
Internet Applications (Third Edition)
Youlu Zheng and Shakil Akhtar: Networks for Computer Scientists and Engineers
Jan L. Harrington: Ethernet Networking Clearly Explained
Alexis Ferrero: The Eternal Ethernet (Second Edition)
Uyless Black: Frame Relay Networks
Bruce Hallberg: Networking: A Beginner's Guide
James F. Kurose and Keith W. Ross: Computer
Networking A Top-Down Approach Featuring the Internet
Benny Bing: Wireless Local
Area Networks - The New Wireless Revolution
|
|
Lecture:
|
|
Lesson 1 Introduction (Chapters 1 and 2 and Appendix A)
Overview of the course
Why study the design of protocol?
What is protocol?
Protocol (introduction to OSI model)
Homework #1: (do 6, 5 extra credit) (solution)
- (Stallings 2.1) Two
blue armies are each poised on opposite hills preparing to attack a
single red army in the valley. The red army can defeat either of
the blue armies separately but will fail to defeat both blue armies if
they attack simultaneously. The blue armies communicate via an
unreliable communications system (a foot soldier). The commander,
with one of the blue armies, would like to attack at noon. His
problem is this: If he sends a message ordering the attack, he cannot be
sure it will bet through. He could ask for acknowledgment, but
that might not get through. Is there a protocol that the two blue
armies can use to avoid defeat? (See also Holtzmann 4-8 as a
variation. This is a classic problem for a class in protocol analysis
and design.)
- (Blankenship 1.1)
Consider a slightly different problem. An individual wishes to
withdraw a amount of money from her account using an ATM. Is there a
protocol that will allow the transaction to be made? If so, how does it
differ from the protocol suggested for problem one (above)?
- (Blankenship 1.2)
Why did I waste your time exploring these two basic problems? What do
they have to do with this course?
- (Holtzmann 1-1) The
transmission code developed by Polybius for his torch telegraph divided the
24-letrter Greek alphabet into five groups. The first four groups had
five letters each, and the fifth group had the remaining four.
The telegraph worked with two groups of torches: one was used to encode the
group number, the other to transmit the character number within that group.
Transmission took place character by character, by raising and lower torches
in the two groups. There were no codes for spaces to separate words,
nor for any kind of punctuation. (Punctuation was not used yet in
written Greek either.) There was, however, one additional control
message to signal the start of a message: two torches raised simultaneously
(see the quotation from Polybius on page 3).
What are the possible synchronization problems, in the absence of proper
agreement on the order in which the torches in the two groups are to be
lowered and raised?
- (Holtzmann 1-7) (Jon
Bentley) If a telephone call is unexpectedly terminated, there is an informal
"telephone protocol" which says that the caller should redial the call.
If the called party is unaware of this protocol a curious problem results.
A "Lover's Paradox" prevents contact from being made when both parties try to
establish it simultaneously. What is the protocol flaw? Assume
the callers are machines, how could the machines be programmed to prevent the
problem from repeating itself ad infinitem? What happens to this protocol
if both parties have a "call interrupt" feature (the ability to take an extra
call when already offhook)?
- Holtzmann 2-1) Identify
the five protocol elements from Section 2.2 for the torch telegraph of
Polybius, discussed in Chapter 1. List at least three cases of
incompleteness in the protocol.
- (Holtzmann 2-6) Explain
the difference between bit stuffing and character stuffing.
- (Stallings 2.2) List
the major disadvantages with the layered approach to protocols.
- (Tanenbaum 1.11) What
are two reasons for using layered protocols?
- (Tanenbaum 1.24) The
Internet is roughly doubling in size every 18 months. Although no
one really knows for sure, one estimate put the number of hosts on it at
100 million in 2001. Use these data to compute the expected number
of Internet hosts in the year 2010. Do you believe this?
Explain why or why not.
- (Tanenbaum 1.36) Go to
IETF's Web site, www.ietf.org, to see
what they are doing. Pick pa project you like and write a
half-page report on the problem and the proposed solution.
<Back>
|
|
Lesson 2 Link Layer Protocol Issues (Chapters 3 and 4)
Effect of transmission errors
Detection and corrections of transmission errors
Hamming error protection and forward error
correction example
Data link layer functions and environment
Connection oriented and connectionless operation
Flow control
Sliding window
Homework #2: (do 6, 4 extra credit) (solution)
- (Holtzmann 3-1) A phone
company recently considered running new 56 Kbit/sec data lines at an
end-to-end rate of 9600 bits/sec, using the extra bandwidth to enhance
reliability. The method chosen was to transmit each single byte five
times in succession. By a majority vote, comparing the five
successive bytes and choosing the most frequent one from each set, the
receiver would then decide which byte had been transmitted. Comment on
the code rate and the protection against burst errors.
- (Holtzmann 3-2) A
simple error control scheme has the receiver retransmit all the messages it
receives back to the sender. Each message then has to survive two
successive transmissions to be accepted. Try to build a protocol that
works this way.
- (Holtzmann 3-3) The
protocol in Exercise 3-2 is modified to have the receiver merely return a CRC
checksum field to the sender by way of acknowledgement. The checksum is
returned for every message received, distorted or not, and is used by the
sender to decide upon retransmission. Comment upon this improvement.
- (Holtzmann 3-4) (Jon
Bentley) The two sentences "the dog runs" and "the dogs run" are both valid
in English. The sentences "the dogs runs" and the "the dog run" are
both invalid. Would this classify English grammar as a feedback or as a
forward error control method?
- (Holtzmann 3-6) List
the circumstances under which an error-correcting code with a code rate of
0.1 can be more attractive than an error-detecting code with feedback error
control? Consider error rates and roundtrip message propagation delays.
- (Holtzmann 4-1)
Describe in detail the conditions under which an X-on/X-off protocol
and a Ping-Pong (stop-and-wait) protocol can fail.
- (Holtzmann 4-1)
Consider the adequacy of the alternating bit protocol under message loss,
duplication, and reordering.
- (Holtzmann 4-5) Show
what happens if the timeout period in the alternating bit protocol is not
chosen correctly.
- (Holtzmann 4-6) If the
acknowledgment message in the alternating bit protocol is delayed long enough
to trigger the sender's timeout, a duplicate mesg from the sender is
created, which in turn triggers a duplicate ack message, and so on.
How would you change the protocol to solve this problem?
- (Holtzmann 4-7)
Describe your favorite traffic control problem (for example, grid lock, right
of way problems, traffic circles) as a protocol problem.
<Back>
|
|
Lesson 3 (Chapter 8)
•Background
Terminology
Notation
Examples
Homework #3: (Do 1, no extra credit) (solution)
- (Blankenship 3.1) Describe problem
1 in homework #1 as a Finite
State Machine. What are the key states and transitions for a working
machine? What are the problem states or transitions for a machine that
does not work?
<Back>
|
|
•Concurrent
Processes
Locks
Synchronization
Semaphores
Producer/Consumer Algorithms
Homework #4: (Do 5, 2 extra credit) (solution)
- (Silberschatz 7.1) What is the
meaning of the term busy waiting? What other kinds of
waiting are there in an operating system? Can busy waiting be avoided
altogether? Explain your answer.
- (Silberschatz 7.2) Explain why spinlocks are not appropriate for uniprocessor systems yet may be suitable for
multiprocessor systems.
- (Silberschatz 7.7) Show that, if
the wait and signal operations are not executed
atomically, then mutual exclusion may be violated.
- (Silberschatz 7.8) The Sleeping-Barber
Problem. A barbershop consists of a waiting room with n
chairs, and the barber room containing the barber chair. If there are no
customers to be served, the barber goes to sleep. If a customer enters
the barbershop and all chairs are occupied, then the customer leaves the
shop. If the barber is busy, but chairs are available, then the customer
sits in one of the free chairs. If the Barber is asleep, the customer
wakes up the barber. Write a program to coordinate the barber and the
customers.
- (Silberschatz 8.2) Is it possible
to have a deadlock involving only one single process? Explain your
answer.
- (Silberschatz 8.8) Consider a
system consisting of four resources of the same type that are shared by
three processes, each of which needs at most two resources. Show that the
system is deadlock-free.
- (Silberschatz 8.12) Can a system
detect that some of its processes are starving? If you answer
"yes," explain how it can. If you answer "no,"
explain how the system can deal with the starvation problem.
<Back>
|
|
Database recovery
Logging
Logging algorithms
Transaction checkpoints
Transaction rollback
Homework #5: (there is no homework assignment)
<Back>
|
|
Lesson 6 (Holzmann - Chapter 8 and 9)
Protocol testing
Testing of telecommunications systems
Conformance testing
Testing notation (TTCN)
Test equipment
Interoperability testing
Traffic theory
Homework #6: (there is no homework assignment)
<Back>
|
|
Lesson 7 (Holzmann - Chapter 11 and 12)
Promela and Spin
Verification and validation
History and motivation
Spin
Promela language
Promela model
ProcessInstantiation
(with problem)
ProcessInstantiation
(without problem)
AtomicSequence
RaceAndDeadlock
AlternatingBit (short)
AlternatingBit (with
message loss)
ChannelFilling
ChannelFilling (DO)
ChannelFilling (IF)
ChannelPassing
ChannelPassing (updated)
Critical
dijkstra
DOexample
IFexample
HelloWorld
Lynch
Lynch (updated)
Homework #7: (there is no homework assignment)
<Back>
|
|
Lesson 8 (Holtzman - Part II and III)
Implementation validation
Validation verses Implementation
Design validation
System behavior
Claims of correctness
State analysis
AlternatingBit
Homework #8: (there is no homework assignment)
<Back>
|
|
Lesson 9 (Blankenship)
HL7 introduction
Operational environment
Anticipated problems
Objectives of the verification
Verification tool
Homework #9: (there is no homework assignment)
<Back>
|
|
Midterm (Review for midterm exam)
•Error
detection and correction
•Flow
control
•Concurrency
•Protocol
verification and validation
Glossary
<Back>
|
|
Research project
Research paper:
The research paper is to be 20 pages studying an
integration topic. The central object is to
discuss the protocols used in the topic and what considerations should be made
when using the protocols. For example, if the topic is an individual
product that implements a protocol for integration with other products, then
your paper should have a discussion on the validation of an integration of the
product. How would you validate that the product is achieving the
objectives of the integration. The topic is the integration of a number
of products, then the paper should discuss the approach to the validation of
the achievement of the integration objective. In both cases, you should
state the objective and how you would measure the achievement of the
objective.
The paper should be divided
into standard sections (introduction, body, and conclusion). The
introduction should give an overview of the topic and salient items to be
covered in the paper. The body should address the roots of the topic
(standards and impetus for the subject), the use of the subject area, and
protocols that are used. The conclusion should address its scope
and limitations, where it fits in the overall networking arena.
Research report:
The research report should be
a presentation of 30 minutes or less. If possible, a demonstration of
the topic should be given, or screen shots. The presentation will be
given on the last class and will replace the final exam. The research
report is independent of the research paper. (The paper cannot be read
as the report.)
<Back>
|
|
Final (there is no final exam)
Glossary
<Back>
|
|
Related Links:
CSCI 234
Glossary
Federal
Government Glossary
Unix environment for Windows
OSI Reference
Model
Charles Spurgeon's Ethernet
Web Site
The Internet Engineering Task Force
Connected: An Internet
Encyclopedia
RFC Editor
Internet Assigned Numbers Authority
Routing Information
Protocol (RIP)
Open Shortest Path First
(OSPF)
CERT Coordination Center
<Back>
|
|
This web page format is compliments
of a prior student Yang Dong (last update by George
Blankenship on
October 30, 2008)