在 RPC 服务器机器上,有一个名为端点映射器的进程正在运行(这特别适用于 ONC RPC,但其他 RPC 机制将类似)。这个过程在一个已知端口上运行,所以任何人都可以连接到它(当然是安全和存在允许的)。
一个 RPC 服务器将启动并向端点映射器注册自己,提供其代码(例如,MULT)和端口号,端点映射器将尽职尽责地存储该信息以供以后使用:
+---------+ +--------+
| Mapper, | <- Register MULT, port Y -- | Server |
| known | | for |
| port X | | MULT |
+---------+ +--------+
当客户端随后使用 IP 地址连接到 endpoint mapper 时,它会提供所需的代码 (MULT),然后端点映射器会提供最终目的地 - 现在客户端知道 IP 地址和 MULT 服务的端口:
+--------+ +---------+
| Client | -- Request MULT -> | Mapper, |
| | <- Return port Y -- | known |
| | | port X |
+--------+ +---------+
此时,端点映射器可以让开,让客户端直接打开与 MULT 服务本身的会话。
+--------+ +--------+
| Client | -- Connect to MULT -> | Server |
| | <- Do stuff -> | for |
| | | MULT |
+--------+ +--------+