我是靠谱客的博主 调皮大山,最近开发中收集的这篇文章主要介绍portmap,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(46)

评论列表共有 0 条评论

立即
投稿
返回
顶部