1# Introduction to IPC Kit 2<!--Kit: IPC Kit--> 3<!--Subsystem: Communication--> 4<!--Owner: @xdx19211@luodonghui0157--> 5<!--SE: @zhaopeng_gitee--> 6<!--TSE: @maxiaorong2--> 7 8 9## Basic Concepts 10 11|Abbreviation |Full Name |Description |Meaning | 12| -------|----------------------------|-------------|------| 13|IPC |Inter Process Communication |Inter-process communication |Inter-process communication within a device.| 14|RPC |Remote Procedure Call |Remote procedure call|Inter-process communication across devices.| 15|Client |Client |Client |A proxy that requests services.| 16|Server |Server |Server |A stub that provides services.| 17 18 19> **NOTE** 20> 21>- Before using IPC and RPC for inter-process communication, you need to call the ability API for service connection to obtain the proxy object. IPC and RPC are typically used in the following scenarios: 22> 23> - IPC is typically used in background services, which use the IPC mechanism to provide the capability of cross-process API calling and data transfer on a single device. 24> 25> - RPC is used <!--Del-->[<!--DelEnd-->in multi-device collaboration<!--Del-->](../application-models/hop-multi-device-collaboration.md)<!--DelEnd--> to implement remote API calls and data transfer cross devices. 26 27 28## Working Principles 29 30Both IPC and RPC implement cross-process communication. IPC uses the Binder driver to implement cross-process communication in a device, while RPC uses the DSoftBus driver to implement cross-process communication across devices. Each process has its own resources and independent memory space, and one process is not allowed to access the resources and memory space of other processes. That is why cross-process communication is required. 31 32IPC and RPC use the client-server model where the client process obtains the proxy of the process where the server is located. The stub object uses the proxy to read and write data to implement inter-process communication. The proxy and stub provide a group of APIs defined by services. The proxy implements each specific request method, and the stub implements the processing method of each specific request and the content of the response data. 33 34## Constraints 35 36- A maximum of 200 KB data can be transferred in cross-process communication on a single device. If the amount of data to be transmitted is larger than 200 KB, use [anonymous shared memory](../reference/apis-ipc-kit/js-apis-rpc.md#ashmem8). 37 38- Subscription to [death notifications](subscribe-remote-state.md) of anonymous stub objects (not registered with SAMgr) is not supported in RPC. 39 40- During cross-process communication, a proxy object cannot be passed back to the device that hosts the stub object pointed to by the proxy object. 41 42- The proxy object pointing to the stub object of the remote device cannot be passed across processes twice on the local device. 43