出站速度

如果应用程序具有足够的资源来使处理出站数据的速度与网络提供它(例如,屏幕)的速度一样快,或者如果较高级别的协议(例如,即时请求模式)限制数据流,则应用程序无需支持该速度,且本地节点可以透明地处理出站速度。

但是,某些类型的应用程序可能需要支持出站速度。 如果应用程序具有有限的资源(例如,打印机),则应用程序应在 Open(PLU) OK 响应上的连接信息控制块 (CICB) 中指定“应用程序速度”选项。 (有关详细信息,请参阅打开 PLU 连接。)应用程序还应定期使用状态资源消息提供本地节点,其中包含有关最初位于 Open(PLU) OK 响应上的资源的状态的信息。

为了帮助应用程序在“Open(PLU) OK 响应”中计算初始额度字段,本地节点会在 Open(PLU) 请求上提供速度窗口大小,以及主要和次要最大请求/响应单位 (RU) 大小。 初始额度必须至少与主要到次要速度窗口大小相同。 否则,将拒绝绑定,并向应用程序发送 Open(PLU) 错误确认消息。 本地节点将建议的初始额度值填充到不止一个速度窗口中(尝试避免停止-启动情况)。

请注意,如果应用程序指定它需要参与速度(任何初始额度),则本地节点也会拒绝绑定,但是绑定指定不存在出站速度。

只有函数管理数据 (FMD) 请求是额度计划的一部分,因此除了初始额度计数指定的 RU 数外,应用程序还必须在其缓冲区内为每个 RU 的一个 Status-Control 请求保留空间。 (Status-Control 消息占用 36 个字节。)

应用程序向本地节点传送的每个额度单位都允许本地节点为应用程序提供单个 RU(如果使用区块,则为单个区块)。 请注意,如果应用程序正在接收段,这可能对应于多个 DATAFMI 消息。 应用程序可以使用开始基本信息单位 (BBIU) 和结束基本信息单位 (EBIU) 标志对 RU 进行计数来实现出站流控制的目的。

应用程序应保留已用额度计数,应在 Status-Resource 消息中向本地节点报告该计数。 应用程序需要执行以下操作:

  • 处理(未接收)设置了 EBIU(对应于 FMD 请求)的 DATAFMI 消息时,按 1 递增已用额度计数。

  • 处理 Status-Control 消息以及来自本地节点的所有其他消息时,不递增已用额度计数。

  • 在 Status-Resource 消息中定期报告当前已用额度计数。

  • 在缓冲区为空时报告已用额度计数(无论已处理的最后一条消息为何),除非已用额度计数为零。

  • 向本地节点报告已用额度计数时,将其重置为零。

    应用程序提供 Status-Resource消息的频率不是构建的。 但是,本地节点只会向应用程序发送与接收额度数一样多的 Data 消息。 当应用程序的已用额度计数达到初始额度值时,本地节点不会发送任何其他数据。 应用程序应在出现这种情况之前尝试发送 Status-Resource 消息,因为如果本地节点不能向应用程序发送 Data 消息,并且主机仍在发送请求,则本地节点可能无法在需要时向主机发送速度响应,进而使得性能下降。

    如果速度窗口较小(例如 1 或 2),则应用程序应在处理每个 DATAFMI 消息后发送 Status-Resource,以使本地节点能够发送适当的速度响应。

    下图显示了在应用程序不参与 (APPLPAC = 0x00) 时处理出站速度的本地节点。 速度窗口假设为 2。

    显示处理出站节奏的本地节点的图像。
    处理出站速度的本地节点

    下图显示了处理出站速度的本地节点和应用程序,其中出站速度窗口假设为 2,来自本地节点的初始额度假设为 4。 请注意,在应用程序具有足够的额度用于剩余的当前窗口和下一窗口后,本地节点即可将独立速度响应 (IPR) 发送到主机以使另一个窗口充满数据。

    显示处理出站节奏的本地节点和应用程序的图像。
    处理出站速度的本地节点和应用程序

另请参阅

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