概述
port mapper
(rpc.portmap 或者 portmap, 抑或 rpcbind, 中文可称为“端口映射器”)是一个“开放式网络计算远程过程调用”(Open Network Computing Remote Procedure Call, ONC RPC) 服务,它运行在提供其它的 ONC PRC 服务的网络节点上。
port mapper 协议的第 2 版将 ONC RPC 程序的 "程序号/版本号" 对映射到相应版本程序的的端口号上。一个 ONC RPC 服务器启动后,它会告诉 port mapper,对于每一个特定的 “程序号/版本号”对都相应支持一个特定的传输协议(TCP 或 UDP),以及在该协议上所使用的端口号。客户端若希望对特定的 ONC RPC 服务版本发出一个 ONC RPC 调用,那么必须先与服务器上的 port mapper 取得联系,然后决定要使用的是 TCP 还是 UDP 上的端口。
协议的第 3 版与第 4 版,也称之为
rpcbind
协议,它把一个 “程序号/版本号”对 和一个指定了传输协议的指示器映射到传输层端点地址(如 IP 地址 或 socket 文件)上。
port mapper 服务总是使用 TCP 或 UDP 的 111 端口;一个固定的端口是必须的,因为一个客户端不能从 port mapper 本身获得 port mapper 服务的端口号。
在任何的 RPC 服务器启动之前,port mapper 必须已经启动。
port mapper 服务 第一次出现在 SunOS 2.0 上。
portmap 的一个实例
[root@groad.net ~]# rpcinfo -p
program vers proto port service
100000 4 tcp 111 portmapper
100000 3 tcp 111 portmapper
100000 2 tcp 111 portmapper
100000 4 udp 111 portmapper
100000 3 udp 111 portmapper
100000 2 udp 111 portmapper
100024 1 udp 57475 status
100024 1 tcp 38363 status
100011 1 udp 875 rquotad
100011 2 udp 875 rquotad
100011 1 tcp 875 rquotad
100011 2 tcp 875 rquotad
100005 1 udp 51781 mountd
100005 1 tcp 46651 mountd
100005 2 udp 39295 mountd
100005 2 tcp 44528 mountd
100005 3 udp 43831 mountd
100005 3 tcp 55580 mountd
100003 2 tcp 2049 nfs
100003 3 tcp 2049 nfs
100003 4 tcp 2049 nfs
100227 2 tcp 2049 nfs_acl
100227 3 tcp 2049 nfs_acl
100003 2 udp 2049 nfs
100003 3 udp 2049 nfs
100003 4 udp 2049 nfs
100227 2 udp 2049 nfs_acl
100227 3 udp 2049 nfs_acl
100021 1 udp 41408 nlockmgr
100021 3 udp 41408 nlockmgr
100021 4 udp 41408 nlockmgr
100021 1 tcp 34419 nlockmgr
100021 3 tcp 34419 nlockmgr
100021 4 tcp 34419 nlockmgr
上面的例子显示了不同的程序,使用的不同版本以及端口号。例如,NFS 共使用了版本2,版本3 及 版本4 这 3 个版本的服务,并且分别使用了 TCP 和 UDP 上的 2049 端口;还显示了 mount 协议,使用了版本1,版本2 以及 版本3,它们使用的是 TCP 和 UDP 上不同的端口;这些都依赖于客户端想要什么样的传输协议了。
最后
以上就是调皮大山为你收集整理的portmap的全部内容,希望文章能够帮你解决portmap所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复