CSCI 234 Design Of Internet Protocols
Class schedule: 9:30am - 12:00am, Saturday, Virginia Campus 222
Office hours: before class by appointment (703.622.2315)

Please click here to subscribe to the class mailing list

 

syllabus

textbook

Useful Books

Lecture Notes

Related Links

 

Syllabus: html pdf

 

Required textbook: Gerard J. Holzmann: Design and Validation of Computer Protocols

 

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:

Date


 

Lesson

Notes

Homework

Homework due date

8/23/08

Lesson 1

Introduction to CSCI 234 (pdf)
Introduction to Design of Internet Protocols (pdf)
Protocol (pdf)

Homework #1

9/13/08

8/30/08

(no class)

(Labor Day holiday)    

9/6/08

Lesson 2

Error Detection and Correction (pdf)
Flow Control (pdf)

Homework #2

9/20/08

9/13/08

Lesson 3

State Machines (pdf)

Homework #3

9/27/08

9/20/08

Lesson 4

Spin Downloading and Installation (pdf)
Concurrency (pdf)

Homework #4

10/4/08

9/27/08

 

(Concurrency continued)

   

10/4/08

Lesson 5

Database Recovery (pdf)

(tbd)

 

10/11/08

Lesson 6

Protocol Testing (pdf)

(tbd)

 

10/18/08

Lesson 7

PROMELA and SPIN (pdf)    

10/25/08

  (PROMELA and SPIN continued)    

11/1/08

Lesson 8

Implementation Validation (pdf)

Formal Validation (pdf)

Medical Transaction protocol verification and validation (pdf)

   

11/8/08

Midterm

Review for midterm (pdf)

   

11/15/08

(in Europe)

(Prepare project -  presentation and report)    

11/22/08

Presentations

All students are expected to be present.    

11/29/08

(no class)

(Thanksgiving holiday)

-

-

12/06/08
12/13/08

Presentations

All students are expected to be present.

All work must be submitted by midnight of the Monday after the last class.

All solutions will be posted by midnight

 -

-

 

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)

  1. (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.)
  2. (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)? 
  3. (Blankenship 1.2)  Why did I waste your time exploring these two basic problems?  What do they have to do with this course?
  4. (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?
  5. (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)?
  6. 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.
  7. (Holtzmann 2-6) Explain the difference between bit stuffing and character stuffing.
  8. (Stallings 2.2) List the major disadvantages with the layered approach to protocols.
  9. (Tanenbaum 1.11) What are two reasons for using layered protocols?
  10. (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.
  11. (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)

  1. (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.
  2. (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.
  3. (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.
  4. (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?
  5. (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.
  6. (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.
  7. (Holtzmann 4-1) Consider the adequacy of the alternating bit protocol under message loss, duplication, and reordering.
  8. (Holtzmann 4-5) Show what happens if the timeout period in the alternating bit protocol is not chosen correctly.
  9. (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?
  10. (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)

  1. (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>

 

Lesson 4 (Introduction to Concurrency Control)

Concurrent Processes
Locks
Synchronization
Semaphores
Producer/Consumer Algorithms

 Homework #4: (Do 5, 2 extra credit)  (solution)

  1. (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.
  2. (Silberschatz 7.2) Explain why spinlocks are not appropriate for uniprocessor systems yet may be suitable for multiprocessor systems.
  3. (Silberschatz 7.7) Show that, if the wait and signal operations are not executed atomically, then mutual exclusion may be violated.
  4. (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.
  5. (Silberschatz 8.2) Is it possible to have a deadlock involving only one single process? Explain your answer.
  6. (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.
  7. (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>

 

Lesson 5 (Oracle7 Server Concepts Manual and introduction to backup and recovery)

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)