RPC means Remote Procedure Call, while RMI stands for Remote Method Invocation. They are mechanisms that help a user to call or invoke processes that will run on another system from the user's system. A major difference between the two is in the paradigm used or approach invoked.
The RMI works in such a way that it makes use of an object oriented paradigm where the user makes studies and invokes the right object and method. On the other hand, RPC works in such a way that it calls particular subroutines that are established already.
The RPC protocol seems to be an old one that is based on C language, hence inheriting its paradigm. The RPC usually passes a procedure call which looks similar to that of a local call. Whereas, the RMI makes use of the Java virtual machine. It passes a reference to the specific object as well as the method that is being called.