速读原著-TCP/IP(端口映射器)
第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调用向端口映射器查询。端口映射器提供四个服务过程:
- PMAPPROC_SET。一个R P C服务器启动时调用这个过程,注册一个程序号、版本号和带有一个端口号的协议。
- PMAPPROC_UNSET。R P C服务器调用此过程来删除一个已经注册的映射。
- PMAPPROC_GETPORT。一个R P C客户启动时调用此过程。根据一个给定的程序号、版本号和协议来获得注册的端口号。
- PMAPPROC_DUMP。返回端口映射器数据库中所有的记录(每个记录包括程序号、版本号、协议和端口号):
在一个R P C服务器程序启动,接着被一个 R P C客户程序调用的过程中,进行了以下一些步骤:
- 一般情况下,当系统引导时,端口映射器必须首先启动。它创建一个 T C P端点,并且被动打开T C P端口111。它也创建一个U D P端点,并且在U D P端口111等待着U D P数据报的到来。
- 当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过程,注册每一个程序、版本、协议和端口号。
- 当R P C客户程序启动时,它调用端口映射器的 P M A P P R O C _ G E T P O RT过程来获得一个指定程序、版本和协议的临时端口号。
- 客户发送一个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)的每个版本都有各自不同的端口号。
速读原著-TCP/IP(端口映射器)相关推荐
- 速读原著-TCP/IP(BOOTP示例)
第16章 BOOTP:引导程序协议 16.3 一个例子 让我们看一个用 B O O T P引导一个X终端的例子.图 1 6 - 3显示了t c p d u m p的输出结果(例中客户名为p r o t ...
- 速读原著-TCP/IP(UDP首部)
第11章 UDP:用户数据报协议 11.2 UDP首部 U D P首部的各字段如图11 - 2所示. 端口号表示发送进程和接收进程.在图 1 - 8中,我们画出了 T C P和U D P用目的端口号来 ...
- 速读原著-TCP/IP(BOOTP 的分组格式)
第16章 BOOTP:引导程序协议 16.2 BOOTP 的分组格式 BOOTP 请求和应答均被封装在U D P数据报中,如图1 6 - 1所示. 图1 6 - 2显示了长度为3 0 0字节的B O ...
- 速读原著-TCP/IP(tcpdump的输出)
A.4 tcpdump的输出 t c p d u m p的输出是"原始的".在本书中包含它的输出时,我们对它进行了修改以便阅读.首先,它总是输出它正在监听的网络接口的名字.我们把这 ...
- SQL Server 默认和命名实例连接问题-TCP/IP 端口
TCP/IP的基本工作原理这里就不浪费口水了.现在这网络年代,谁不知道TCP/IP啊.不要跟我抬杠说你偏就没听说过TCP/IP阿,真是这样那你得自己去补补课了. TCP/IP协议有两个基本的东西,一个 ...
- 端口映射软件大-比较|内网端口映射器使用方法
[转载]端口映射软件大-比较|内网端口映射器使用方法 2010-05-15 13:34 功能多少作为顺序: PortTunnel 2.0.13 简体中文版 优点:功能最为强大,默认为服务模式. 缺点: ...
- Tcp/IP 端口耗尽
原文链接:http://msdn.microsoft.com/zh-cn/library/aa560610(v=bts.10).aspx 本文内容:1.查看端口使用状况的方法:2.端口耗尽所带来的问题 ...
- 何为固定IP和动态IP?快解析搞定固定IP端口映射!
目前,我们上网所使用的有动态IP和静态IP两种,IP地址就是我们上网时所使用的"门牌号".全国目前共有3亿左右的IP地址,我们平时上网拨号,网上冲浪大多数使用的是动态IP.那么,当 ...
- 如何让本地局域网IP端口映射到域名
外网用户不能通过访问内网IP来实现访问我们的FTP.Web.SVN等应用服务器,也不能直接通过内网IP来远程桌面到内网主机电脑.对于外网用户,起唯一地址作用的就是域名,你的服务器是需要让外网能够识别的 ...
- TCP/IP 端口号大全
端口:0 服务:Reserved 说明:通常用于分析操作系统.这一方法能够工作是因为在一些系统中"0"是无效端口,当你试图使用通常的闭合端口连接它时将产生不同的结果.一种典型的扫描 ...
最新文章
- Mac OS X 使用命令sed替换tab
- 英特尔挖走苹果M1芯片功臣,他主导苹果放弃x86架构
- 数据结构与算法 / 分治算法
- Redis 05_List列表 数组 Hash散列
- 实用程序类与函数式编程无关
- 【ElasticSearch】ElasticSearch 嵌套查询:如何搜索嵌入的文档
- node js、npm、homebrew、cocoapod、git、hexo
- 【MySQL】MySQL 5.7 sys Schema
- Alfresco安装与配置图解
- 如何将交叉引用参考文献批量变为上标
- 如何在linux上下载github项目,在linux上使用github
- 分布式锁的实现【转载】
- Linux shell实现阶乘
- splice、slice详解
- 亚马逊云科技 AI For Good-2022优秀方案开源分享——望楼
- 优化| 手把手教你学会杉树求解器(COPT)的安装、配置与测试
- 解决MAC系统字体模糊发虚,并更换默认中文字体为微软雅黑
- SSM+Vue+Element-UI实现网上跳蚤市场
- PMP考生注意了!你们最关心的问题都在这!
- 话说android端七牛图片上传