 Hello everyone, I am Mrs. Supriya Ambarkar from Walshchand Institute of Technology, Solaapur. Today we are going to cover a topic on communication protocols of RPC, its basics, events in RPC, the request protocol, request reply protocol and request acknowledgement reply protocols. The learning outcome of this session, the students will be able to state the different communication protocols of RPC. Also, the students will be able to describe the basic need of protocols for communication purpose. Now, first we will see the introduction of RPC in short. RPC is a remote procedure call which is a powerful technique for constructing distributed client-server-based applications. So, it is based on extending the conventional local procedure calling so that the called procedure need not exist in the same address space as a calling procedure. The two processes may be on the same system or they may be on the different system with a network connecting them. So, the RPC is a protocol that one program can use to request a service from a program which is located in another computer on a network without having to understand the network's details. So, the RPC uses the client-server model paradigm. So, here this is an introduction. Now, we will see the different events, how it will be occurred in RPC. So, this diagram shows us a client, how the call has been made and how the server has given the reply. So, here the client calls the client-stop. The call is a local procedure call which parameters pushed on to the stack in the normal way. So, then client-stop packs the parameters into a message and makes a system call to send that message. The client's local operating system sends the message from the client machine to the server machine. The local operating system on the server machine passes the incoming packets to the server-stop. Then at the server side, the server-stop unpacks the parameters from the message. Finally, the server-stop calls the server procedure. Then the reply traces the same steps in the reverse direction and appropriate procedure has been sent to the client. Here in this topic, we will be required some call semantics of RPC. So, here are the list of different call semantics, possibly or maybe call semantics, last one call semantics, last of many call semantics, at least once call semantics, exactly once call semantics. So, these are the list we will be required for the further session. Now, we will see the introduction of communication protocols. So, basically protocols are the set of rules which defines the format or the standard in which communication should take place. So, protocols are basically needed because it's important for the receiver to understand the sender. In computer communication protocols also make sure the message gets to its destination properly in entirely and without distortion. So, basically communication protocols are based on the needs of different systems. So, different systems developed on the basis of remote procedure calls have a different inter-process communication requirements and so on. So, protocols are simply rules for communication. So, these are the introduction of communication protocols. Now, we will see the different types of communication protocols. Here, the three types are there. First, the request protocol. Third, second, the request reply protocol and the third one, request reply, acknowledgement reply protocol. Next slide, we will see the details. First, we will see the request protocol. This protocol is also known as R protocol. It is used in RPC when a called procedure has nothing to return as a result of execution. And the requirement of client confirmation about procedure executions is not needed at all. So, as there is a no acknowledgement or reply message is involved in this protocol. Only a single message is transmitted from client to server server. Client proceeds after the request message is sent as there is no reply message. So, this protocol involves maybe call semantics and does not need retransmission of request messages. Here, the RPC that uses the R protocol is known as an asynchronous RPC, which helps to improve the combined performance of the client and server. This is done because the client does not wait for a reply and server does not need to send a reply. So, for an asynchronous RPC, the RPC runtime does not retray a request in case of communication failures. Here in this diagram, we will see the working of R protocol. First RPC maker call via a client, so request message has been sent. At server side, procedure has been executed. Similarly, second RPC or next RPC has been called. So, request has been made. Server has to execute a particular procedure. So, in this way, request protocol is going to work. Now, we will see the second protocol, the request reply protocol. This protocol is also known as RR protocol. It is useful for designing systems which involve simple RPCs. In a simple RPC, all the arguments and results fit in a single packet buffer, while the call duration and intervals between calls are short. This protocol is based on the idea of using implicit acknowledgement to eliminate explicit acknowledgement messages. In this protocol, a server reply is considered as an acknowledgement for a client request and a subsequent call from a client is considered as an acknowledgement of a client's previous call. So, timeout, retired techniques is used with RR protocol for failure handling. Retransmission of request message is done with there is no response. So, RR protocol and timeout techniques provides at least once call semantics on if duplicate requests are not filtered out. Exactly once semantics are supported by servers using reply cache, which store replies. So, in this weather, request reply protocol is worked. In this diagram, we are able to see the working of RR protocol. Here client and server side, first RPC has made a request message, procedure has been executed by server side, reply message is there and in this reply also server has to made acknowledgement that the request message has been delivered successfully. So, in this way, the acknowledgement we have to give in terms of the reply message. Then again the next RPC is going to work and so on. So, this is an RR protocol. Now pause the video and write down your answer in RPC. While a server is processing a call, the client is blocked until. First option is, unless the client sends an asynchronous request to the server. Second, unless the call processing is complete. Third, for the complete duration of the connection and none of the above. The answer is, in RPC while a server is processing the call, the client is blocked until and unless the client sends an asynchronous request to the server. Now third protocol we want to explain which is called as a request reply acknowledgement reply protocol. This protocol is also known as RRA protocol. The RR protocol implements exactly once semantics which requires storage of a lot of information in the server cache and can lead to lose of supplies that have not been delivered. So, to overcome these limitations of RRA protocol is used. Here in this client acknowledge the receipt of reply message and server deletes the information from its cache only after it receives an acknowledgement from the client. Sometimes the reply acknowledgement messages may get lost. Therefore RRA protocol needs a unique ordered message identifiers. So, this keeps a track of acknowledgement series sent. So, this is in terms of RRA protocol. Here in this diagram, the working of RRA protocol is held. So, first RPC has made a call. So, request message has been sent by client to the server. Server want to execute a particular procedure. And in terms of the reply message, he has to give that reply. Then again client has to made a acknowledgement reply message to the server. Means here the client has get that particular reply message successfully. So, in this way the first RPC of RRA protocol is going to work. When the next RPC has been called, again client want to do the similar procedure of the first RPC what has been held in the previous first RPC. So, in such a way the particular client and server is going to work in RRA protocol. So, this is an working of RRA. These are the references which I have referred for this particular topic. Thank you one and all. Thank you.