Title: David G. Messerschmitt
1Chapter 11
- by
- David G. Messerschmitt
2Algorithms and protocols
- by
- David G. Messerschmitt
3Algorithm
- Specified sequence of steps that
- accomplish a designated task
- in a finite number of steps
- Representation
- simple algorithm flowchart
- complicated algorithm program
4Example one turn at monopoly
Move token number of squares indicated on dice
Start turn
Throw dice
Land on go to jail?
Yes
Move to jail square
No
Do not move follow policies for square (like
pay rent)
Finish turn
5Algorithm building blocks
Start
Start
Start
Programming languages support these three
building blocks
Action
Action
Decision
Test
Action
Action
Action
Action
Finish
Finish
Finish
Loop
Sequence
Selection
6Protocol
- Distributed algorithm realized by two or more
modules to coordinate their actions or accomplish
some shared task - Module interoperability requires a protocol
- Prescribed order of method invocations
- Part of interface documentation
7Monopoly players protocol
Player 1
Player 2
One-turn algorithm
This is a protocol interaction diagram
Time
8Application and infrastructure
The application defines its own application-level
protocols
Internally, the network uses protocols to
implement the services it provides
9Three simple protocols
- One-way message send-receive
- Two-way interaction request-response
- Push publish-subscribe
10Client
Server
send
receive
request
response
subscribe
responses
Time
11Example HTTP
? User activates URL
? HTTP request
HTTP client (browser)
HTTP server
? HTTP response (embedded document)
? Browser displays document (if HTML) or invokes
helper application
HTML documents
12Example Stock trading
Customer wants to purchase 10 shares of MSFT if
price is below 90
StockTrader
Customer
What is application protocol?
13Locating things
- by
- David G. Messerschmitt
14Three ways of locating things
- Name
- Joe Bloe
- Address
- 1299 Hearst St, Berkeley, CA
- Reference
- Postmaster of Berkeley CA
15Name
- Symbolic (character string) representation
- Easy for people to remember or guess
- Identifies but does not locate directly
- Distinction important for mobile entities
- Not unique entities can have more than one name
(called aliases)
16Hierarchical names
- Hierarchy makes names easier to remember or guess
- Host domain names
- info.sims.berkeley.edu
- designates administrative hierarchy
- File names
- c\My Documents\Docs\Resume.doc
- designates folder hierarchy
17Address
- Route or path to entity
- is directly specified, or
- can be inferred
- Independent of who or what is locating entity
- Topological specification
18Example
4
1
3
2
Path from
to
is (1,2,2,2,1,1,1,1)
Not an address, because it depends on starting
point
19Example
(1,1) (1,2) (1,3) (1,4) (1,4)
(2,1)
(2,2)
(2,3)
(2,4)
(2,5)
Address of
is (2,5)
Route from
can be inferred
20Reference
- Abstract representation of an entity
- Interaction is with representation
- infrastructure arranges redirection to actual
entity - especially appropriate for things that move
21Reference
Client
Server
address
22Name services
3. interaction
1. name
2. address or reference
Name service