前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >速读原著-TCP/IP(端口映射器)

速读原著-TCP/IP(端口映射器)

作者头像
cwl_java
发布2020-03-18 11:13:10
6480
发布2020-03-18 11:13:10
举报
文章被收录于专栏:cwl_Java

第29章 网络文件系统

29.4 端口映射器

包含远程过程的 R P C服务器程序使用的是临时端口,而不是知名端口。这就需要某种形式的“注册”程序来跟踪哪一个 R P C程序使用了哪一个临时端口。在 Sun RPC中,这个注册程序被称为端口映射器(port mapper)。

“端口”这个词作为I n t e r n e t协议族的一个特征,来自于T C P和U D P端口号。既然T I -R P C可以工作在任何运输层协议之上,而不仅仅是 T C P和U D P,所以使用T I - R P C的系统中(如S V R 4和Solaris 2.2),端口映射器的名字变成了r p c b i n d。下面我们继续使用更为常见的端口映射器的名字。

很自然地,端口映射器本身必须有一个知名端口: U D P端口111和T C P端口111。端口映射器也就是一个R P C服务器程序。它有一个程序号( 1 0 0 0 0 0)、一个版本号(2)、一个T C P端口111和一个U D P端口111。服务器程序使用 R P C调用向端口映射器注册自身,客户程序使用R P C调用向端口映射器查询。端口映射器提供四个服务过程:

  1. PMAPPROC_SET。一个R P C服务器启动时调用这个过程,注册一个程序号、版本号和带有一个端口号的协议。
  2. PMAPPROC_UNSET。R P C服务器调用此过程来删除一个已经注册的映射。
  3. PMAPPROC_GETPORT。一个R P C客户启动时调用此过程。根据一个给定的程序号、版本号和协议来获得注册的端口号。
  4. PMAPPROC_DUMP。返回端口映射器数据库中所有的记录(每个记录包括程序号、版本号、协议和端口号):

在一个R P C服务器程序启动,接着被一个 R P C客户程序调用的过程中,进行了以下一些步骤:

  1. 一般情况下,当系统引导时,端口映射器必须首先启动。它创建一个 T C P端点,并且被动打开T C P端口111。它也创建一个U D P端点,并且在U D P端口111等待着U D P数据报的到来。
  2. 当R P C服务器程序启动时,它为它所支持的程序的每一个版本创建一个 T C P端点和一个U D P端点(一个给定的 R P C程序可以支持多个版本。客户调用一个服务器过程时,说明它想要哪一个版本)。两个端点各自绑定一个临时端口( T C P端口号和U D P端口号是否一致无关紧要)。服务器通过 R P C调用端口映射器的 P M A P P R O C _ S E T过程,注册每一个程序、版本、协议和端口号。
  3. 当R P C客户程序启动时,它调用端口映射器的 P M A P P R O C _ G E T P O RT过程来获得一个指定程序、版本和协议的临时端口号。
  4. 客户发送一个R P C调用报文给第3步返回的端口号。如果使用的是 U D P,客户只是发送一个包含R P C调用报文(见图 2 9 - 1)的U D P数据报到服务器相应的 U D P端口。服务器发送一个包含R P C应答报文(见图2 9 - 2)的U D P数据报到客户作为响应。

如果使用的是T C P,客户对服务器的T C P端口号做一个主动打开,然后在建立的 T C P连接上发送一个R P C调用报文。服务器作为响应,在连接上发送一个 R P C应答报文。程序 r p c i n f o ( 8 )打印了端口映射器中当前的映射记录(它调用了端口映射器的P M A P P R O C _ D U M P过程)。这里给出的是典型的输出:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

可以看出一些程序确实支持多个版本。在端口映射器中,每一个程序号、版本号和协议的组合都有自己的端口号映射。

安装守护程序(mount daemon)的两个版本可以通过同样的 T C P端口号(7 0 2)和同样的U D P端口号(6 9 9)来访问,而加锁管理程序( lock manager)的每个版本都有各自不同的端口号。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/03/16 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 第29章 网络文件系统
    • 29.4 端口映射器
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档