⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rfc3018.txt

📁 本程序为在linux下实现FTP传输文件的实现
💻 TXT
📖 第 1 页 / 共 5 页
字号:
组织:中国互动出版网(http://www.china-pub.com/)
RFC文档中文翻译计划(http://www.china-pub.com/compters/emook/aboutemook.htm)
E-mail:ouyang@china-pub.com
译者:王安鹏(anpengwang    anpengwang@263.net)
译文发布时间:2002-1-9
版权:本中文翻译文档版权归中国互动出版网所有。可以用于非商业用途自由转载,但
必须保留本文档的翻译及版权信息。


Network Working Group                                        A. Bogdanov
Request for Comments: 3018                                     NKO "ORS"
Category: Experimental                                     December 2000


统一内存空间协议规范
(RFC3018——Unified Memory Space Protocol Specification)

本文档的状态
本备忘录为Internet社区定义了一种实验性协议,但没有规定任何类型的Internet标准,
需要进一步讨论和建议以便改进。本备忘录的发布没有限制。
版权信息
   Copyright (C) The Internet Society (2000).  All Rights Reserved.
摘要
本文定义的统一内存空间协议(UMSP)用于实现直接访问远程节点的内存。
本文使用的约定
文中使用的关键字“MUST”、“MUST NOT”、“REQUIRED”、“SHALL”、“SHALL NOT”、
“SHOULD”、“SHOULD NOT”、“RECOMMENDED”、“MAY”和“OPTIONAL”的含义
参见RFC2119。文中的语法规范采用RFC2234描述的扩展BNF范式(ABNF)。

目录
1 简介	2
2  UMSP模型	3
2.1  128位地址空间	3
2.2  计算模型	4
2.3  系统架构	5
3  指令格式	6
3.1  指令首部	7
3.2  扩展首部	8
3.3  指令操作数	9
3.4  地址格式	10
4  对指令的响应	11
4.1  RSP, RSP_P	11
4.2  SND_CANCEL	12
5  工作管理	12
5.1   工作初启	13
5.2    启动任务	15
5.3   建立会话连接	16
5.4   关闭会话	19
5.5   终止任务	20
5.6    工作完成	21
5.7   节点的活动控制	23
5.8    不使用会话连接的工作方式	25
6  虚拟机之间交换的指令	26
6.1  数据读/写指令	26
6.2  比较指令	28
6.3  控制传输指令	28
6.4  内存控制指令	29
6.5  其它指令	30
6.6  操作对象	31
7  链	37
7.1 顺序链(Sequence)	37
7.2 事务(Transaction)	37
7.3 分段指令	39
7.4 缓冲	39
7.5 链的确认	40
7.6 基 - 偏移寻址方式	41
8  扩展首部	41
8.1 _ALIGNMENT	41
8.2 _MSG	41
8.3 _NAME	42
8.4 _DATA	42
8.5 _LIFE_TIME	42
9  资源搜索	43
9.1 VM_REQ	43
9.2 VM_NOTIF	44
10 安全性问题	45
11 文中使用的缩略语	45
12 参考	46
13 作者地址	46
14  版权声明	47

1 简介
UMSP是一种面向连接的网络协议,对应于OSI模型中的会话层和表示层。该协议适
用于各种不同类型的系统,从基于专用处理器的简单设备到通用计算机和计算机集群。该协
议采用提供可靠传输服务的传输层协议进行数据交换,但是对于不需要确认数据的传输也可
使用不可靠的传输协议。本文描述了TCP和UDP的使用。
为分布在网络节点上的以128位组织的内存地址空间创建网络环境是UMSP协议的根
本目的。协议定义了连接管理的算法和网络基本指令的格式,但不对节点上的本地内存进行
管理。与传统的网络协议相比,不同节点上的用户程序不再通过网络基本指令的交换相互作
用,或者说不再对数据流工作,而是对远程节点上的虚拟内存直接读写数据或者控制代码的
传输。用户程序不必关心协议和网络的存在,只要使用128位地址指令就可以了。
首先假定在虚拟机(VM)系统上使用UMSP执行伪代码。但是该协议也可在执行处理
器代码组织分布式虚拟地址空间的系统(如集群或者通用计算机)上使用,另外协议的最小
子集可用于没有操作系统的简单设备上。该协议提供了设置连接参数不同的方法,能够建立
高保护级别同时又不影响程序功能的系统。
原则上讲,USMP可以简化分布式系统的开发过程。通过USMP可以在不大幅度增加
程序标准化和开发代价的前提下,把大量、多型计算机上的信息和计算资源统一组织起来。

2  UMSP模型
2.1  128位地址空间
UMSP建立在128位分布式地址内存空间的基础上。128位地址包括网络类型信息、网
络节点地址和本地内存地址,格式如下:
   字节
   0      1                                                    16
   +------+--------------+--------------------+----------------+
   |头部  |     保留     |     节点地址       |    内存地址    |
   +------+--------------+--------------------+----------------+
整个地址长度固定为16个字节。其中:
1)首部(header):1个字节,地址首部字段完整定义了地址格式,其格式如下:
       0     1     2     3     4     5     6     7
      +-----+-----+-----+-----+-----+-----+-----+-----+
      |      地址长度         |  网络类型 | 地址码    |
      +-----+-----+-----+-----+-----+-----+-----+-----+
地址长度(ADDR_LENGTH)共4位,表示网络地址的长度,保存节点地址
(NODE_ADDR)字段中的字节数,不允许是0;网络类型(NET_TYPE)2位,表示节点
所在的网络类型;地址码(ADDR_CODE)2位,本地内存地址的长度编码,这个字段的值
规定了本地内存地址的长度。该字段的取值以及相应的MEM_ADDR字段的长度如下:
            %b00 - 16 bit
            %b01 - 24 bit
            %b10 - 32 bit
            %b11 - 64 bit
头部字段中的这三部分合起来称为地址格式码,明确的定义了节点所在的网络。格式码
的写法是“N  -  - ”,比如N 4-0-2表示节点网络地址长度为4个字节而内存地址为32位。
在本文中网络类型0表示该地址格式是为IPv4网络定义的。如果网络类型是0,在书写时
可以省略,比如N 4-0-2和N4-2 是等价的。如果网络类型和地址码都是0那么可以全部省
略不写,格式码就可以用一个数字表示。必须为每个全局网络指定一个或多个地址格式码,
即使单一系统也必须如此。
2)自由(FREE):0到12个字节,本协议没有使用这个字段,可以在这个字段中保存
节点内存控制系统所需要的信息。如果该字段没有使用,则所有的字节都必须设为0。加入
这个字段是为了保证网络指令必须使用16字节地址格式,而不能使用本地内存的短地址格
式。
3) 节点地址(NODE_ADDR):1到13个字节,每种地址格式码都单独定义了该字段
的格式。节点地址不一定与实际的网络地址完全一致,如果网络地址很长,就需要在网络内
组织一个能够支持UMSP地址的子集。
4) 内存地址(MEM_ADDR):16/24/32/64位,本地内存地址。该字段保存节点地址
所指定系统的内存地址,节点负责控制自身的内存。本协议没有定义该字段的使用顺序和格
式。
对于用户程序而言,这个128位地址是一个整体,用户代码并不了解所访问内存的物理
地址。像数据一样,128位内存地址也可以在节点之间传输,比如通过函数的参数缓冲区或
者复制数据的指令。因此对于所有节点而言每个节点必须是唯一标识的。并没有把实际的网
络和128位地址联系起来的具体算法,因此必须预先知道所使用的地址格式。
由于UMSP拥有自己的地址空间,因此能够把多个全球性网络统一起来。节点可以通
过内部的本地网或者下一级的可定地址设备与不使用网络通信的节点连接。地址格式码确定
的每个节点必须能够定义通过该地址时的网关响应方式。
2.2  计算模型
计算模型分为三层:工作、任务和控制线程。工作代表用户程序,工作是分布式的,可
以同时在多个节点上运行。工作控制由称为工作控制点(JCP)的节点集中执行,一个JCP
可以控制多项工作。JCP可以放在创建一项工作的同一个节点上,也可放在其他编址的网络
节点上。任务是工作在各节点上的表示,任务包括一个或多个控制计算线程。每项工作在同
一个节点上只能有一个任务。相应的用户程序结束后工作也就完成了,工作结束时它在各个
节点上的任务也同时完成。
工作拥有单独的128位地址空间。地址空间采用分段组织方式,一段就是一个节点的本
地内存。此外,本协议允许采用对象工作方式,对象就是节点上相互关联的单独的内存。
任务线程代表具体的特定节点上虚拟机执行的控制线程,该线程可以访问该项工作128
位地址空间内的任何地址。控制从一个(远程)节点转移到一个新地址,意味着在该地址所
属远程节点上创建一个新的线程。连续的代码段不能分布到多个节点上。另外,也不可能从
多个节点上获得分布式的连续内存空间。
本协议并不要求各虚拟机节点支持不涉及跨越不同内存空间的不同任务,也没有强制要
求对多线程的支持。
本协议定义了全局工作标识符(GJID),它由控制该项工作的JCP分配。任何时刻在这
个一体化系统中所有处于激活状态的GJID都是唯一的。工作可以包含不同类型的VM代码,
不同类型的虚拟机可以放在一或多个节点上。由于规定了一个节点上不同虚拟机类型的成组
关联机制,因此在特定的工作上下文中非标准代码也可以在节点上执行。第9章将详细讨论
成组技术。虚拟机和组必须在常规内存空间中工作(使用内存管理的常规子系统)。

2.3  系统架构
基于虚拟机的系统架构如下图所示:

             节点 1                              节点 2
             --------                            --------

      +--------------------+              +--------------------+
      |      用户程序1    |               |      用户程序1    |
      +-----------------------+           +-----------------------+
         |      用户程序N    |               |      用户程序N    |
         +--------------------+              +--------------------+

   +-----+  +-----+       +-----+      +-----+  +-----+       +-----+
   | VM1 |  | VM2 | . . . | VMn |      | VM1 |  | VM2 | . . . | VMn |
   +--+--+  +--+--+       +--+--+      +--+--+  +--+--+       +--+--+
      |        |             |            |        |             |
    +--------------------------+        +--------------------------+
    |                          |        |                          |
    | +-----+  U M S P         |        |          U M S P         |
    | | JCP |                  |        |                          |
    | +-----+                  |        +-------------+------------+
    +-------------+------------+                      |
                  |                             +-----+-----+
            +-----+-----+                       |    TCP    |
            |    TCP    |                       +-----+-----+
            +-----+-----+                             |
                  |                                   |
                  +-----------------/                 |
                                   /------------------+
                                  /
                                  |
                            +-----+-----+
                节点 N      |    TCP    |
               --------     +-----+-----+
                                  |
                     +------------+------------+
                     | +-----+                 |
                     | | JCP | U M S P         |
                     | +-----+                 |
                     +-------------------------+

         图1:基于虚拟机(VM)的系统结构
一个或多个虚拟机在UMSP的高层工作,虚拟机的层并不是网络层,最后一层网络层
是UMSP。因此虚拟机层并没有自己的网络成分,它与UMSP使用同一个操作码字段。该
协议的最终服务用户是用户代码,用户代码运行在虚拟机上。用户代码采用128位地址指令,
虚拟机把这些指令转化成网络命令,转化通过在远程机器上运行的UMSP协议完成。虚拟

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -