分块

分块可以视为类似于分段。 (有关详细信息,请参阅 Segment Delivery.) 区别在于,分段由本地节点和远程系统之间的通信链接决定,而分块则由应用程序和本地节点之间的通信链接决定。

应用程序在 打开 (SSCP) 请求 中指示它是否支持分块,如果是,则指示它要使用的区块大小(以字节为单位)。 然后,本地节点使用请求/响应单元 (RU) 大小、区块大小和段大小 ((如果适用)) 来确定是否需要分块。 然后,它指定用于入站和出站流 (的区块大小,这些大小不需要与 Open (PLU) 请求上的) 相同。 这些值以元素单位指定。 (有关详细信息,请参阅 Messages.) 其中任一大小的值为零表示不需要分块,因为区块大小不是限制因素。 请注意,在分块数据中,不会在元素中间拆分 RU。 这可避免数据复制。

例如,假设本地节点使用的 RU 大小为 8 KB (KB) ,段数为 2 KB,而应用程序的 Open (SSCP) 请求 指定段传递和区块大小为 4 KB。 分块将用于入站数据流 (,因为区块大小小于 RU 大小) ,但在出站数据流 (没有必要,因为数据将以小于区块大小) 的段传送。

如果在任一方向使用分块,则所有信用值都指定可向该方向发送的区块数,而不是 RU 数。 请注意, 开放 (SSCP) 请求 中包含段传递选项,使本地节点能够在相应的 PLU 连接上计算初始区块信用值。 应用程序还必须在 “打开 (PLU) 响应”上设置此选项。 如果 Open (SSCP) RequestOpen (PLU) Response 具有不同的此选项设置,则将使用 Open (PLU) Response 中的设置。 这可能意味着使用的初始信用额度值不合适。

如果使用会话级节奏,则本地节点将此链接到分块额度。 特别是,如果应用程序扣留信用额度,本地节点将延迟向主机发送节奏响应,从而向主机施加回压。 此链接由本地节点处理,无需涉及应用程序。

RU 区块上的应用程序标志的处理方式与段上的应用程序标志处理方式相同。 (有关详细信息,请参阅 应用程序标志段传递。) 具体而言:

  • FMHI、BCI、COMMIT、BBI、EBI、CODE、ENCRYP、ENPAD、QRI 和 CEI 仅在 RU 的第一个区块上设置。

  • ECI 和 CDI 仅在 RU 的最后一个区块上设置。

  • BBIUI 始终在 RU 的第一个区块上设置。

  • EBIUI 始终在 RU 的最后一个区块上设置。

    请注意,EBI 设置在括号中最后一个 RU 的第一个区块上,而不是按预期设置的最后一个区块。 这与段传送的行为相同。 应用程序应使用 状态会话 (BETB) 消息,而不是 EBI 标志来确定括号何时结束。

    区块是使用分段标志 BBIUI 和 EBIUI 标识的,因此,如果正在出站使用分段和分块,则应用程序无法区分区块和段。 但是,通常不需要进行区分。 无论数据单位是段还是区块,应用程序都可以通过在接收数据时显示每个数据单元来执行窗口着色。 (有关详细信息,请参阅 Segment Delivery.)

注意

本文档的早期版本将此项作为未来功能。 在 Host Integration Server 中启用支持。 在使用分块系统之前,应用程序可以测试在调用 sepdgetinfo 时返回的产品版本(适用于版本 1.2 或更高版本)。

在某些情况下,本地节点使用的 RU 大小对于本地节点和 FMI 应用程序之间的路径长度而言可能太大,例如,使用 16 兆字节 (MB) 令牌环链接时,该链接可支持 16 KB (KB) 帧。 本地节点允许 FMI 应用程序指定数据传输应采用较小的单位(称为区块)。

另请参阅

打开 PLU 连接
PLU 会话
出站链接
入站链接
段传递
Brackets
方向
速度和区块
确认和拒绝数据]
关闭和静止
恢复
应用程序启动的终止
LUSTAT]
响应时间监视器数据