📄 rfc105.txt
字号:
有如下格式:
1 1 80
+-------+-------+ / +--------------------+ \
| | | / | | \
| x'00' | x'C0' | \ | card image | / ...
+-------+-------+ \ +--------------------+ /
这里每一个字段的长度都已经在字节中加以说明。 括号[尖括号]中的零或具体数字可
以在联接被用户关闭之前发送。
二、 远程输出返回(RJOR)
只要当任务提交后,任务卡片上记数参数的第八位为字符'T',则来自由RJE提交的,
在UCSB处批处理的任务的A类SYSOUT输出总可以通过与点三的套接字x'300'联系来获取。
输出根据请求进行检索,并通过其后的一个编址为套接字x'300'的称为RJOR的进程向网络
用户转播。 RJOR可以通过日志记录器触发。 本节旨在为程序员提供与RJOR通讯的必要信
息。
RJOR依据1970年8月3日的主机-主机传输协议,通过网络控制程序传递全部的网络
报文。 RJOR期待第一个接收到的消息报文是类型0,丢弃第一位并假定它为零,并且在其
后的连接期限内不考虑IMP消息报文的边界。 同样地,RJOR发送的第一个消息报文类型为
0:第一个字节由零组成,并且其后该联接周期内,IMP消息报文边界不是重要的。
2.1 RJOR登入
为了从批模式任务中获得计算输出,网络用户必须建立一个与RJOR之间全双工的联接。
RJOR仅当使用时存在于核心存储器常驻区(即当一个用户正在接收或发送控制信息或一个
文档时,或当RJOR等待之前的一个被请求的输出文档(或一些文档)时)。 其他时间里,
它保存在直接存取存储器,并必须由日志记录器触发。 一个登录序列总可以通过向套接字
x'300'发送联接请求报文来初始化。 如果当另一个用户正在登录时想套接字发送一个连接
申请,则网络控制程序将该信息排队。 在当前联接终止之后,RJOR将监听并接受它的信息
队列中的下一个请求报文(如果有的话);如果信息队列中没有它的请求报文,并且它已经
完成了它所有的输出文件请求报文,则它就会终止执行、释放它占领的主存储器。 当RJOR
不在内核中的时候,日志记录器监听从套接字x'300',剔除它收到的第一个调用,将RJOR
读入内核,并停止监听从,由RJOR继续在该套接字上监听从。 因此要初始化一个登录序列,
用户向套接字x'300'发送联接请求。 如果请求被接受,则他就与RJOR建立了联系。 如果
请求被拒绝,则他应该重新发送发连接请求;一旦请求被接受,他将被连接到RJOR。 再次
拒绝意味着网络控制程序的资源告罄。 一旦被请求的双工连接的前半部分被建立,RJOR就
认为该用户已经登录。
在第一个联接中(此后称为输入联接),用户发送标记指定由RJOR执行的函数,同时
函数要应用的任务名也被指定。 RJOR随后关闭这个联接。 RJOR发送控制信息,对用户请
求报文的配置和涉及位于点三、号码为x'301'的RJOR套接字的辅助联接的输出文件加以说
明。同时还对用户方套接字号码比与该用户连接的RJOR套接字号码小一的那些套接字进行
说明。 用户的请求报文不一定被立即执行。 如果是前一种情况,RJOR则向指定随用户接
收套接字发出一个联接请求,并如果需要的话,可以当联接建立起来以后,与用户输出一同
发送任何适当的控制信息。然后RJOR关闭该联接并且认为该用户已经注销。 如果该用户的
请求报文不能被立刻满足(例如,所寻找的任务输出尚未提交或还没有结束执行),则由
RJOR创建第二个足够长的联接,向该用户通知延迟信息,并随即关闭。 然后当请求报文可
用时,该联接被重新开放,发送所需数据,然后关闭该联接。用户即被认为已经注销。
为了防止RJOR被单个用户垄断,在软件中做了规定:如果该连接用户请求关闭,或者
一个RJOR等待的时间超过 传输完成的时限一定量时,则终止该联接。 现在,这一时间极
限已经被定为每个记录一分钟,但其可以在将来根据需要被缩短或延长。
2.2 输入联接
RJOR期待它收到的来自输入联接的数据的第一个字节的为0,即标记消息类型0;它将
这个字节丢弃而不去检验,并随后在IMP消息报文边界无效数字。 接收到数据的第二个字
节被解释为说明待执行函数的标识。 遵循该标记字节,RJOR期望一个八字节扩充的二进制
--十进制交换码任务名,并在必要时在右方填补空白字符。 标记字节翻译如下:
Bit 0 = 1: 发送由指定任务生成的输出。
Bit 1 = 1: 清除指定任务创建的输出文档。
Bit 2 = 1: 根据需要延迟,以执行于0-1位上标明的函数。
= 0: 如果0-1位上标明的函数不能被立刻执行,返回一简单消息,对该情况加
以说明。
Bit 3 = 1: 早前的一个属于指定任务的具有等待输出(位2)选项的请求将被取消。
Bits 4-7: 为检验,应为零。
0-2位的任一组合都是允许的。 如果第三位为1,则不继续检验其它数位。 如果第零
位等于1且第一位也等于一,则输出文档在发送,然后再将其清除。 如果二个同名的任务
顺次执行,则来自第二个任务的输出将会覆盖由第一个任务生产的输出。 在这种情况下,
用户应该在第一个任务发送完毕之后将输出从任务中清除,以使得来自第二个任务的请求不
会仅简单地返回第一个任务输出的另一份拷贝。
2.3 输出联接
RJOR可以开启输出联接一或两次,作为输出联接中的单个传输的结果。 在这两中情
况中的任意一种中,传输的第一个字节将由零组成,用以表明消息类型0,
并且其后该联接周期内,IMP消息报文边界不是重要的。 遵循第一个字节、RJOR将向
那些适用的响应发送任务名。 与用户通过输入联接所提供的一致,该任务名将存在与一个
8字节数字段内。 遵循该任务名,RJOR将发送可变长度的逻辑记录。<*每一个照理应该由
一个单字节操作码、一个说明随后的可变长度正文字段的无符号长度位的双字节长度字段组
成。正文字段的长度应为零或正字节数;该长度字段应该包含一个8的倍数的整数。
当前定义的操作码如图1所示。位于x'01'的一个操作码表明该正文字段包含一个由被
请求输出的任务创建的SYSOUT数据集之一的记录。 所有具有操作码x'01'的逻辑记录的字
段长度都是相同的。 对于那些记录长度不同于这一值的数据集,则在其标准记录长度右边
填补空字符或进行截取以满足要求。 通常出现在第一列的用于指定打印机的计算输出已被
丢弃而不复出现。记录按照它们在打印机上打印同样的顺序被传输到用户。总起来说,这些
记录包括了所有可能出现在打印输出中的信息,HASP分隔表单除外。
除了具有操作码x'01'之外的所有逻辑记录中,长度字段包含值零,并且该操作码传达
该逻辑记录的全部信息。*
操作码(十六进制数) 名 称 解 释
----------------- ------------ -------------------------------
00 文档末尾 所有来自该任务的输出都已发送(最后是一个操
作码为x'01'的逻辑记录)。
01 输 出 文本字段包含一个由该任务生成的SYSOUT数据
记录。
02 输出文档已清除。 来自该任务的输出已经按照请求被清除。
03 缓冲区内核空间不足。 用于传送该任务的输出的主存储空间不足。传
送任务被取消,并禁止任何清除请求。
04 文件I/O错误。 在读输出文档时遇到了一个不可恢复的I/O错
误。传送任务被取消,并禁止任何清除请求。
05 清除文件I/O错误。 在清除输出文档时出现了一个不可恢复的I/O
错误。传送任务被取消,并禁止任何清除请求。
06 请求队列空间已满。 来自任务的输出不存在,并已指定等待输出选
项,但RJOR的请求队列空间已满,已被禁止。
07 等候输出。 来自任务的输出不存在,并已指定等待输出选
项,RJOR在等候任务输出。
08 未发现被取消的请求 用户请求取消之前发送的指定等候输出选项的
请求命令。但RJOR未发现这样的请求。
09 请求被取消。 根据用户的请求,之前发送的指定等候输出选
项的请求命令被取消。
0A 搜索文档I/O错误。 试图定位任务的输出文档时发生了一个不可恢
复的I/O错误。用户请求被取消。
0B 未找到输出。 未找到来自该任务的输出。用户未指定等候输
出选项。
图 1. 输出联接操作码
[ 本RFC文档由Randy Dunlap于97年4月 ]
[ 编为机器可读形式录入RFC在线档案 ]
*本限制仅是暂时的,我们正在进行补丁工作。该补丁不久将发布。
RFC105——Network Specifications for Remote Job Entry andRemote Job Output Retrieval at UCSB
通过 UCSB 进行远程登录和远程输出返回的网络说明书
1
RFC文档中文翻译计划
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -