476 33 powerpoint-slides Distributed Computing2e …bhushanjadhav.webs.com/Chapter-2.pdfDesirable...

44
Chapter 3 Chapter 3 Interprocess Interprocess Interprocess Interprocess Communication Communication

Transcript of 476 33 powerpoint-slides Distributed Computing2e …bhushanjadhav.webs.com/Chapter-2.pdfDesirable...

Chapter 3Chapter 3

InterprocessInterprocessInterprocessInterprocess

CommunicationCommunication

• Message passing

• Group communication

OUTLINE

• API for Internet protocol

Message Passing vs Shared Memory

Desirable Features of Message Passing Systems

• Hardware approach

• Functionality

• Performance

• Uniform semantics

• Efficiency • Efficiency

• Reliability

• Correctness

• Flexibility

• Portability

• Security

Message Passing Process

IPC Message Format

IPC Message

IPC Synchronization

• Ensure message is received in the buffer:

– Polling

– Interrupt

• Message communication techniques

– Synchronous communication

– Asynchronous communication

IPC: Synchronous Communication

IPC: Asynchronous Communication

IPC Primitives

Message Buffering Strategies

Null Buffering

Null Buffering with Blocked Receiver

Null buffering with blocking mechanism

Null Buffering with Non-blocked Receiver

Null buffering with non-blocking mechanism

Message Buffering: Single Buffer

Single-message buffering

Message Buffering: Multiple Message Buffer

• Receiver overflow handled using

– Unsuccessful communication indication

– Flow control mechanism

Multidatagram Messaging • Concept of MTU

• Message sequencing and reassembly

• Message contents

• Message representation: tagged, untagged

Message Data Transmission

Process Addressing Techniques

• Explicit addressing :send (process_id, message) and receive

(process_id, message)

• Implicit addressing:send_any (service_id, message) and

receive_any (service_id, message)

– Two level addressing : machine_id@local_id (receiver – Two level addressing : machine_id@local_id (receiver

machine name)

– Three level addressing:

machine_id@local_id@machine_id (node where the

process was created @ generated by the first machine@

last known location of the machine)

Link-based Process Addressing

Failure Handling Mechanism

IPC Protocols

• 4-message reliable IPC protocol

• 3-message reliable IPC protocol

• 2-message reliable IPC protocol• 2-message reliable IPC protocol

IPC 4 Message Protocol

IPC 3 Message Protocol

IPC 2 Message Protocol

IPC Failure

Group Communication

• Unicast –one to one communication

• Many-to-one group communication

• One-to-many or multicast group communication• One-to-many or multicast group communication

Unicast Group Communication

Many-to-One Communication

Multicast Communication

Broadcast Communication

Types of Groups

• Closed group

• Open group

• Peer group• Peer group

• Hierarchical group

Group Management • Centralized approach

• Distributed approach

• High level naming

• For large LANs/

MANs: send

message to

• Send to all semantics

• Bulletin board

semantics

Group Addressing Message Delivery

message to

individual group

members

Reliability Mechanism

• Classified based on number of receivers from which sender

expects a response

Message Ordering

Message Ordering: Absolute Ordering

Message Ordering: Consistent Ordering

Message Ordering: Causal Ordering

API for Internet Protocol• Synchronous Communication

Both the sending and receiving processes synchronize at every message

so that both send and receive primitives are blocking operations. When

a send is issued, the sending process is blocked until the receive

command is issued, and the other process is blocked until the message

is received.is received.

• Asynchronous Communication

The send is a non-blocking command. The issuing process is allowed to

continue when the message is stored in a local buffer and then both the

transmission of the message and the sender process continues

simultaneously. The receive operation works both in blocking and non-

blocking modes.

Sockets

UDP Datagram Communication

• A datagram is transmitted from the client process and sent to

the server process, which receives it.

• To communicate messages to and fro, a process must first

create a process and bind it to a local port and to an Internet

address of the local host.address of the local host.

• The receive method includes the Internet address and the port

number so that the receiver can send a reply.

• UDP protocol may be used for some services where sometimes

the messages may be dropped.

• The main advantage lies in the fact that datagrams do not

require overheads for correct delivery.

TCP Datagram Communication• TCP is a connection-oriented protocol

• Sequencing: A data stream is divided into a sequence of data

segments with a sequence number attached to each and transmitted

as IP packets. It gives the byte number within the stream for the first

byte of the segment.

• Flow control: When a segment is received, its sequence number is

noted and periodically, the receiver sends the highest number of

received segments and also the window size to the sender. This is

sent in a special acknowledgement segment.

• Retransmission and buffering: The sender keeps track of the

sequence number of sent segments and retransmits them in case any

segment does not receive acknowledgement from the receiver. The

incoming buffer at the receiver’s site stores the incoming data

packets.

Services Using TCP Protocol• HTTP Hypertext transfer protocol is used to communicate

between Web browsers and Web server.

• FTP File transfer protocol allows files to be transferred

between the remote computer and the host computer. It also

allows directories from a remote computer to be accessed.allows directories from a remote computer to be accessed.

• Telnet It allows a user to log on to the remote computer

system and start a terminal session.

• SMTP Simple mail transfer protocol is used to send mail from

one computer to another.