55. Function oriented: one function for all products in a cell. Design dept for a product company for example 11/21/2009 IT703D: Distributed Computing Debasis Das
93. Piggybacking of acknowledgement for previous message through the next message from the receiver11/21/2009 IT703D: Distributed Computing Debasis Das
94.
95. Must be able to guarantee delivery, guard against lost packets through ack and retransmission (lost packets)
106. Flexibility to permit any kind of control flow; including synchronous and asynchronous send/receive primitives11/21/2009 IT703D: Distributed Computing Debasis Das
109. Encryption of message before transmission over the network11/21/2009 IT703D: Distributed Computing Debasis Das
110.
111. The application that uses the IPC primitives should be portable. IPC will need to take care of differences due to heterogeneity of systems. The higher level message passing primitives need to hide the differences.11/21/2009 IT703D: Distributed Computing Debasis Das
118. Type & length of message (internal or external)11/21/2009 IT703D: Distributed Computing Debasis Das
119. Structural Information Actual data/ Pointer to data Addresses Sequence Number/ Message id Type No. of Bytes/ elements Receive Process addr Send Process addr 11/21/2009 IT703D: Distributed Computing Debasis Das Typical Message Structure
138. Indicate that there are no messages11/21/2009 IT703D: Distributed Computing Debasis Das
139. Synchronous Communication with Blocking Send/Receive Primitives Receive process message Reply Sending process Blocked here Unblocked here 11/21/2009 IT703D: Distributed Computing Debasis Das
158. Either in kernel or application address space11/21/2009 IT703D: Distributed Computing Debasis Das
159.
160. Unbounded buffers required to ensure all the messages sent are received, even if several may be outstanding11/21/2009 IT703D: Distributed Computing Debasis Das
178. Many a time ca introduce a reliability issue complicating communication11/21/2009 IT703D: Distributed Computing Debasis Das
179.
180. Absolute pointers lose meaning. For example a tree object with all the node values and information about structure is required. The sender and receiver may be different architectures. Receiver needs to reconstruct
263. If machines are not on same LAN, one to one messages will have to be sent. Lower level address then is a list of machines running processes in the group11/21/2009 IT703D: Distributed Computing Debasis Das
264.
265. Sender kernel contacts group server that has lower level id and the process ids of members of the group
287. M-out-of-n reliability: m that is greater than 1and less than n response required, e.g. majority voting for consistency check
288. All-reliable: all responses required, e.g. files copied to file servers11/21/2009 IT703D: Distributed Computing Debasis Das
289.
290. Usual time out repeats until all have been acknowledged
291. Fails if either the sender or one or more receivers fail during the process
292. One way around (Tannenbaum) is for every receiver to do an atomic multicast of the message received
293. Eventually all will receive message. Use in rare cases11/21/2009 IT703D: Distributed Computing Debasis Das
294.
295. However, to find the lower level address there could be confusion. What should be contacted name server or a group server?
296. Separate primitives like send and send_group could allow send_group to have parameters such as level of reliability and atomicity11/21/2009 IT703D: Distributed Computing Debasis Das
306. In many to one the receiver has to order the messages received
307. In many to many message can arrive at different times at different nodes, due to different delays seen over LAN/WAN11/21/2009 IT703D: Distributed Computing Debasis Das
320. Each receiver accepts the messages in a buffer. Delivers only if there are no gaps in the sequence, else waits for the other messages to arrive11/21/2009 IT703D: Distributed Computing Debasis Das
321.
322. ABCAST protocol is better, it is a distributed algorithm and hence not subject to a single point failure
323. Sender assigns a sequence number greater than any assigned earlier, a simple counter will do. Send to all members of the group.
324. All the members return a proposed sequence number based on max(Fmax, Pmax)+1+i/N, i is the member no., N is the total no. of members, Fmax is the largest sequence no. proposed by the group, Pmax is the max no. proposed by the member
325. Sender choose the largest proposed no. and lets everyone know as the committ no.
326. All members use this final committed no as the sequence no. Delivery to applications use this no.11/21/2009 IT703D: Distributed Computing Debasis Das
327.
328. If there is an “happened-before” relationship the messages must be delivered in order, otherwise order need not be maintained11/21/2009 IT703D: Distributed Computing Debasis Das
329.
330. A vector of n is maintained, value at each position is the sequence no. of last message in sequence received from that node
331. When sending message, increment own element in vector and send the vector along with message
334. S[i]=R[i]+1, S[j] is less or eq to R[j] all j not eq is11/21/2009 IT703D: Distributed Computing Debasis Das
335. D B C A 3 2 5 1 2 2 5 1 3 2 4 1 3 2 5 1 Fails first test A[1]=C[1] + 1 Fails second test at A[3] <= D[3] 11/21/2009 IT703D: Distributed Computing Debasis Das Causal Ordering- Example