os2-sut– sem2-92-93; r. jalili communication chapter 2
DESCRIPTION
OS2-SUT– Sem ; R. Jalili Layered Protocols (1) Layers, interfaces, and protocols in the OSI model. 2-1TRANSCRIPT
![Page 1: OS2-SUT– Sem2-92-93; R. Jalili Communication Chapter 2](https://reader035.vdocuments.us/reader035/viewer/2022062219/5a4d1b0f7f8b9ab05998e487/html5/thumbnails/1.jpg)
OS2-SUT– Sem2-92-93; R. Jalili
Communication
Chapter 2
![Page 2: OS2-SUT– Sem2-92-93; R. Jalili Communication Chapter 2](https://reader035.vdocuments.us/reader035/viewer/2022062219/5a4d1b0f7f8b9ab05998e487/html5/thumbnails/2.jpg)
OS2-SUT– Sem2-92-93; R. Jalili
IPC• Inter-Process Communication is the heart of all
DSs.• Processes on different machines.• Always based on low-level message passing.• In this chapter:
– RPC– RMI– MOM (Message Oriented MiddleWare)– Streams (due to the advent of Multimedia DSs)
![Page 3: OS2-SUT– Sem2-92-93; R. Jalili Communication Chapter 2](https://reader035.vdocuments.us/reader035/viewer/2022062219/5a4d1b0f7f8b9ab05998e487/html5/thumbnails/3.jpg)
OS2-SUT– Sem2-92-93; R. Jalili
Layered Protocols (1)• Layers, interfaces, and protocols in the OSI model.
2-1
![Page 4: OS2-SUT– Sem2-92-93; R. Jalili Communication Chapter 2](https://reader035.vdocuments.us/reader035/viewer/2022062219/5a4d1b0f7f8b9ab05998e487/html5/thumbnails/4.jpg)
OS2-SUT– Sem2-92-93; R. Jalili
Layered Protocols• Protocol
– Connection Oriented
– Connectionless
• Protocol Stack• Description of the layers, Unit of exchange.
![Page 5: OS2-SUT– Sem2-92-93; R. Jalili Communication Chapter 2](https://reader035.vdocuments.us/reader035/viewer/2022062219/5a4d1b0f7f8b9ab05998e487/html5/thumbnails/5.jpg)
OS2-SUT– Sem2-92-93; R. Jalili
Layered Protocols (2)• A typical message as it appears on the network.
2-2
![Page 6: OS2-SUT– Sem2-92-93; R. Jalili Communication Chapter 2](https://reader035.vdocuments.us/reader035/viewer/2022062219/5a4d1b0f7f8b9ab05998e487/html5/thumbnails/6.jpg)
OS2-SUT– Sem2-92-93; R. Jalili
Data Link Layer
• Discussion between a receiver and a sender in the data link layer.
2-3
![Page 7: OS2-SUT– Sem2-92-93; R. Jalili Communication Chapter 2](https://reader035.vdocuments.us/reader035/viewer/2022062219/5a4d1b0f7f8b9ab05998e487/html5/thumbnails/7.jpg)
OS2-SUT– Sem2-92-93; R. Jalili
Transport Protocols• Makes the underlying layers usable by the
application layer.• Provide a reliable or unreliable connection for
the upper layer.• UDP :: TCP• RTP for real-time systems.
![Page 8: OS2-SUT– Sem2-92-93; R. Jalili Communication Chapter 2](https://reader035.vdocuments.us/reader035/viewer/2022062219/5a4d1b0f7f8b9ab05998e487/html5/thumbnails/8.jpg)
OS2-SUT– Sem2-92-93; R. Jalili
Client-Server TCP
a) Normal operation of TCP.b) Transactional TCP.2-4
![Page 9: OS2-SUT– Sem2-92-93; R. Jalili Communication Chapter 2](https://reader035.vdocuments.us/reader035/viewer/2022062219/5a4d1b0f7f8b9ab05998e487/html5/thumbnails/9.jpg)
OS2-SUT– Sem2-92-93; R. Jalili
Middleware Protocols• An adapted reference model for networked communication.
2-5
![Page 10: OS2-SUT– Sem2-92-93; R. Jalili Communication Chapter 2](https://reader035.vdocuments.us/reader035/viewer/2022062219/5a4d1b0f7f8b9ab05998e487/html5/thumbnails/10.jpg)
OS2-SUT– Sem2-92-93; R. Jalili
RPC• PC?
• R…………….PC?
• Simple idea
• Complexity in provision
![Page 11: OS2-SUT– Sem2-92-93; R. Jalili Communication Chapter 2](https://reader035.vdocuments.us/reader035/viewer/2022062219/5a4d1b0f7f8b9ab05998e487/html5/thumbnails/11.jpg)
OS2-SUT– Sem2-92-93; R. Jalili
Conventional Procedure Calla) Parameter passing in a local procedure call: the
stack before the call to read Count = read (fd, buf, nbytes);
b) The stack while the called procedure is active
![Page 12: OS2-SUT– Sem2-92-93; R. Jalili Communication Chapter 2](https://reader035.vdocuments.us/reader035/viewer/2022062219/5a4d1b0f7f8b9ab05998e487/html5/thumbnails/12.jpg)
OS2-SUT– Sem2-92-93; R. Jalili
Issues• Calling Method?
– Call by value– Call by reference– Call by Copy/Restore– Call by name
![Page 13: OS2-SUT– Sem2-92-93; R. Jalili Communication Chapter 2](https://reader035.vdocuments.us/reader035/viewer/2022062219/5a4d1b0f7f8b9ab05998e487/html5/thumbnails/13.jpg)
OS2-SUT– Sem2-92-93; R. Jalili
Client and Server Stubs• Principle of RPC between a client and server program.• The read stub is called on behalf of the real read procedure!
![Page 14: OS2-SUT– Sem2-92-93; R. Jalili Communication Chapter 2](https://reader035.vdocuments.us/reader035/viewer/2022062219/5a4d1b0f7f8b9ab05998e487/html5/thumbnails/14.jpg)
OS2-SUT– Sem2-92-93; R. Jalili
Steps of a Remote Procedure Call1. Client procedure calls client stub in normal way2. Client stub builds message, calls local OS3. Client's OS sends message to remote OS4. Remote OS gives message to server stub5. Server stub unpacks parameters, calls server6. Server does work, returns result to the stub7. Server stub packs it in message, calls local OS8. Server's OS sends message to client's OS9. Client's OS gives message to client stub10. Stub unpacks result, returns to client
![Page 15: OS2-SUT– Sem2-92-93; R. Jalili Communication Chapter 2](https://reader035.vdocuments.us/reader035/viewer/2022062219/5a4d1b0f7f8b9ab05998e487/html5/thumbnails/15.jpg)
OS2-SUT– Sem2-92-93; R. Jalili
Passing Value Parameters (1)• Steps involved in doing remote computation through RPC
• It works fine, while the scenario is simple and straightforward; but ….
2-8
![Page 16: OS2-SUT– Sem2-92-93; R. Jalili Communication Chapter 2](https://reader035.vdocuments.us/reader035/viewer/2022062219/5a4d1b0f7f8b9ab05998e487/html5/thumbnails/16.jpg)
OS2-SUT– Sem2-92-93; R. Jalili
Passing Value Parameters (2)• Different character set standards (ASCII vs EBCDIC)• Little-Endian vs Big-Endian Architecture.
a) Original message on the Pentium (L. E.)b) The message after receipt on the SPARC (B. E.)c) The message after being inverted. The little numbers in
boxes indicate the address of each byte
![Page 17: OS2-SUT– Sem2-92-93; R. Jalili Communication Chapter 2](https://reader035.vdocuments.us/reader035/viewer/2022062219/5a4d1b0f7f8b9ab05998e487/html5/thumbnails/17.jpg)
OS2-SUT– Sem2-92-93; R. Jalili
Call by Reference Parameter Passing
???
![Page 18: OS2-SUT– Sem2-92-93; R. Jalili Communication Chapter 2](https://reader035.vdocuments.us/reader035/viewer/2022062219/5a4d1b0f7f8b9ab05998e487/html5/thumbnails/18.jpg)
OS2-SUT– Sem2-92-93; R. Jalili
Parameter Specification and Stub Generation
• Both sides should agree on the content of passing data structures.
• Example in the next slide.• The way a message including the parameters is
interpreted is the main issue!!• Client and server should agree on the
representation of simple data structures.• Agreement on the actual exchange of the messages
(connection-oriented or connection-less)
![Page 19: OS2-SUT– Sem2-92-93; R. Jalili Communication Chapter 2](https://reader035.vdocuments.us/reader035/viewer/2022062219/5a4d1b0f7f8b9ab05998e487/html5/thumbnails/19.jpg)
OS2-SUT– Sem2-92-93; R. Jalili
Parameter Specification and Stub Generation
a) A procedureb) The corresponding message.
c) Interface Definition Language compiling into client stub and server stub
![Page 20: OS2-SUT– Sem2-92-93; R. Jalili Communication Chapter 2](https://reader035.vdocuments.us/reader035/viewer/2022062219/5a4d1b0f7f8b9ab05998e487/html5/thumbnails/20.jpg)
OS2-SUT– Sem2-92-93; R. Jalili
Extended RPC Models• RPC becoming as de facto standard for comm. in
DSs.• Popularity due to simplicity.• Two extensions
– Doors– Async RPC.
![Page 21: OS2-SUT– Sem2-92-93; R. Jalili Communication Chapter 2](https://reader035.vdocuments.us/reader035/viewer/2022062219/5a4d1b0f7f8b9ab05998e487/html5/thumbnails/21.jpg)
OS2-SUT– Sem2-92-93; R. Jalili
Doors• Equivalent to RPC for processes located on the
same machine.• A door is a name for a procedure in the address
space of a server process, called by colocated processes within the server.
• Idea was originally from the Spirit OS (1994)• Same as LightWeight RPC.• The server process must register a door before
use (calling door-create)
![Page 22: OS2-SUT– Sem2-92-93; R. Jalili Communication Chapter 2](https://reader035.vdocuments.us/reader035/viewer/2022062219/5a4d1b0f7f8b9ab05998e487/html5/thumbnails/22.jpg)
OS2-SUT– Sem2-92-93; R. Jalili
Doors• The principle of using doors as IPC mechanism.
![Page 23: OS2-SUT– Sem2-92-93; R. Jalili Communication Chapter 2](https://reader035.vdocuments.us/reader035/viewer/2022062219/5a4d1b0f7f8b9ab05998e487/html5/thumbnails/23.jpg)
OS2-SUT– Sem2-92-93; R. Jalili
Asynchronous RPC (1)
a) The interconnection between client and server in a traditional RPCb) The interaction using asynchronous RPC
2-12
![Page 24: OS2-SUT– Sem2-92-93; R. Jalili Communication Chapter 2](https://reader035.vdocuments.us/reader035/viewer/2022062219/5a4d1b0f7f8b9ab05998e487/html5/thumbnails/24.jpg)
OS2-SUT– Sem2-92-93; R. Jalili
Asynchronous RPC (2)• A client and server interacting through two
asynchronous RPCs2-13
![Page 25: OS2-SUT– Sem2-92-93; R. Jalili Communication Chapter 2](https://reader035.vdocuments.us/reader035/viewer/2022062219/5a4d1b0f7f8b9ab05998e487/html5/thumbnails/25.jpg)
OS2-SUT– Sem2-92-93; R. Jalili
Writing a Client and a Server• The steps in writing a client and a server in DCE RPC.
2-14
![Page 26: OS2-SUT– Sem2-92-93; R. Jalili Communication Chapter 2](https://reader035.vdocuments.us/reader035/viewer/2022062219/5a4d1b0f7f8b9ab05998e487/html5/thumbnails/26.jpg)
OS2-SUT– Sem2-92-93; R. Jalili
Binding a Client to a Server• Client-to-server binding in DCE.
2-15
![Page 27: OS2-SUT– Sem2-92-93; R. Jalili Communication Chapter 2](https://reader035.vdocuments.us/reader035/viewer/2022062219/5a4d1b0f7f8b9ab05998e487/html5/thumbnails/27.jpg)
OS2-SUT– Sem2-92-93; R. Jalili
Performing an RPC• The whole scenario!• Semantics
– At-most-once operation• Idempotency
![Page 28: OS2-SUT– Sem2-92-93; R. Jalili Communication Chapter 2](https://reader035.vdocuments.us/reader035/viewer/2022062219/5a4d1b0f7f8b9ab05998e487/html5/thumbnails/28.jpg)
OS2-SUT– Sem2-92-93; R. Jalili
Remote Object Invocation• OO technology in centralized systems.
• Promoting the idea of RPC to the OO technology.
• Proxy as the client delegate == Client stub.
• Skeleton == server stub
• The object state is normally not distributed remote object instead of distributed object
![Page 29: OS2-SUT– Sem2-92-93; R. Jalili Communication Chapter 2](https://reader035.vdocuments.us/reader035/viewer/2022062219/5a4d1b0f7f8b9ab05998e487/html5/thumbnails/29.jpg)
OS2-SUT– Sem2-92-93; R. Jalili
Distributed Objects• Common organization of a remote object with
client-side proxy.
2-16
![Page 30: OS2-SUT– Sem2-92-93; R. Jalili Communication Chapter 2](https://reader035.vdocuments.us/reader035/viewer/2022062219/5a4d1b0f7f8b9ab05998e487/html5/thumbnails/30.jpg)
OS2-SUT– Sem2-92-93; R. Jalili
Message-Oriented Communication• Sometimes both RPC and RMI is not appropriate• Synchronous nature of RPC and RMI!
Messaging.
![Page 31: OS2-SUT– Sem2-92-93; R. Jalili Communication Chapter 2](https://reader035.vdocuments.us/reader035/viewer/2022062219/5a4d1b0f7f8b9ab05998e487/html5/thumbnails/31.jpg)
OS2-SUT– Sem2-92-93; R. Jalili
Berkeley Sockets (2)
• Connection-oriented communication pattern using sockets.
![Page 32: OS2-SUT– Sem2-92-93; R. Jalili Communication Chapter 2](https://reader035.vdocuments.us/reader035/viewer/2022062219/5a4d1b0f7f8b9ab05998e487/html5/thumbnails/32.jpg)
OS2-SUT– Sem2-92-93; R. Jalili
The Message-Passing Interface (MPI)• Some of the most intuitive message-passing
primitives of MPI.Primitive Meaning
MPI_bsend Append outgoing message to a local send buffer
MPI_send Send a message and wait until copied to local or remote buffer
MPI_ssend Send a message and wait until receipt startsMPI_sendrecv Send a message and wait for replyMPI_isend Pass reference to outgoing message, and continue
MPI_issend Pass reference to outgoing message, and wait until receipt starts
MPI_recv Receive a message; block if there are noneMPI_irecv Check if there is an incoming message, but do not block
![Page 33: OS2-SUT– Sem2-92-93; R. Jalili Communication Chapter 2](https://reader035.vdocuments.us/reader035/viewer/2022062219/5a4d1b0f7f8b9ab05998e487/html5/thumbnails/33.jpg)
OS2-SUT– Sem2-92-93; R. Jalili
Stream-Oriented Communication• Till now, focus was on exchanging one or more
independent and complete units of info.• However, consider an audio stream, CD quality
is also required the original sound has been sampled at 44100 Hz a sample in each 1/44100 Sec is required to re-produce the original sound.
• Time-dependent and continuous media is required :: Temporal relationship between data items are crucial.
![Page 34: OS2-SUT– Sem2-92-93; R. Jalili Communication Chapter 2](https://reader035.vdocuments.us/reader035/viewer/2022062219/5a4d1b0f7f8b9ab05998e487/html5/thumbnails/34.jpg)
OS2-SUT– Sem2-92-93; R. Jalili
Data Stream (1)• Setting up a stream between two processes across a network.• Data stream is a sequence of data units.
![Page 35: OS2-SUT– Sem2-92-93; R. Jalili Communication Chapter 2](https://reader035.vdocuments.us/reader035/viewer/2022062219/5a4d1b0f7f8b9ab05998e487/html5/thumbnails/35.jpg)
OS2-SUT– Sem2-92-93; R. Jalili
Transmission Modes• Async Trans Mode: Sending regardless of time
• Synch Trans Mode: There is a max end-to-end delay for each unit: Sensor info!
• Isochronous Trans Mode: Data units should be transferred on time:: A max and min end-to-end delay (bounded jitter).
![Page 36: OS2-SUT– Sem2-92-93; R. Jalili Communication Chapter 2](https://reader035.vdocuments.us/reader035/viewer/2022062219/5a4d1b0f7f8b9ab05998e487/html5/thumbnails/36.jpg)
OS2-SUT– Sem2-92-93; R. Jalili
Data Stream (2)• Setting up a stream directly between two devices.
2-35.2
![Page 37: OS2-SUT– Sem2-92-93; R. Jalili Communication Chapter 2](https://reader035.vdocuments.us/reader035/viewer/2022062219/5a4d1b0f7f8b9ab05998e487/html5/thumbnails/37.jpg)
OS2-SUT– Sem2-92-93; R. Jalili
Data Stream (3)• An example of multicasting a stream to several receivers.
![Page 38: OS2-SUT– Sem2-92-93; R. Jalili Communication Chapter 2](https://reader035.vdocuments.us/reader035/viewer/2022062219/5a4d1b0f7f8b9ab05998e487/html5/thumbnails/38.jpg)
OS2-SUT– Sem2-92-93; R. Jalili
QoS• Time-Dependent requirement:: QoS• Next slide as a sample QoS specification• Formulation based on the token bucket algorithm• Basic idea is that tokens are generated at a
constant rate.• Token is a fixed # of bytes, an application is
allowed to pass to the network.
![Page 39: OS2-SUT– Sem2-92-93; R. Jalili Communication Chapter 2](https://reader035.vdocuments.us/reader035/viewer/2022062219/5a4d1b0f7f8b9ab05998e487/html5/thumbnails/39.jpg)
OS2-SUT– Sem2-92-93; R. Jalili
Specifying QoS (2)
• The principle of a token bucket algorithm.
![Page 40: OS2-SUT– Sem2-92-93; R. Jalili Communication Chapter 2](https://reader035.vdocuments.us/reader035/viewer/2022062219/5a4d1b0f7f8b9ab05998e487/html5/thumbnails/40.jpg)
OS2-SUT– Sem2-92-93; R. Jalili
Setting Up a Stream• The basic organization of RSVP (Resource reSerVation Protocol)
for resource reservation in a distributed system.
![Page 41: OS2-SUT– Sem2-92-93; R. Jalili Communication Chapter 2](https://reader035.vdocuments.us/reader035/viewer/2022062219/5a4d1b0f7f8b9ab05998e487/html5/thumbnails/41.jpg)
OS2-SUT– Sem2-92-93; R. Jalili
Synchronization Mechanisms (1)• The principle of explicit synchronization on the
level data units.
![Page 42: OS2-SUT– Sem2-92-93; R. Jalili Communication Chapter 2](https://reader035.vdocuments.us/reader035/viewer/2022062219/5a4d1b0f7f8b9ab05998e487/html5/thumbnails/42.jpg)
OS2-SUT– Sem2-92-93; R. Jalili
Synchronization Mechanisms (2)• The principle of synchronization as supported by
high-level interfaces.
2-41
![Page 43: OS2-SUT– Sem2-92-93; R. Jalili Communication Chapter 2](https://reader035.vdocuments.us/reader035/viewer/2022062219/5a4d1b0f7f8b9ab05998e487/html5/thumbnails/43.jpg)
End of Chapter 2
OS2-SUT– Sem2-92-93; R. Jalili