9. 停止测试 (Stopping a Test)
当服务器上的测试持续时间计时器 (testIntTime) 到期时, 它应将本地连接测试动作设置为 TEST_ACT_STOP1 (优雅终止的第 1 阶段). 这只是一个不可逆状态, 用于等待服务器发送下一条消息. 在此期间, 收到的任何 Load 或 Status PDU 都按正常方式处理.
在发送下一个 Load 或 Status PDU 时, 服务器应将本地连接测试动作设置为 TEST_ACT_STOP2 (优雅终止的第 2 阶段), 并用 TEST_ACT_STOP2 的 testAction 值标记任何外发 PDU. 在此状态下, 服务器可以将任何 Load PDU burst 减小到大小为 1.
当客户端收到带有 TEST_ACT_STOP2 指示的 Load 或 Status PDU 时, 它应最终完成测试, 显示测试结果, 并将其本地连接标记为测试动作 TEST_ACT_STOP2 (这样随后收到的任何 PDU 都可以被忽略).
当客户端连接的测试动作设置为 TEST_ACT_STOP2 时, 下一次 Load 或 Status PDU 的发送计时器到期, 应导致该 PDU 以及任何后续 PDU 都以 TEST_ACT_STOP2 的 testAction 值发送 (作为对服务器的确认). 在此状态下, 客户端可以将任何 Load PDU burst 减小到大小为 1. 然后, 客户端应为连接调度立即结束时间.
当服务器在 Load 或 Status PDU 中收到 TEST_ACT_STOP2 确认时, 服务器应为连接调度立即结束时间, 关闭套接字并释放相关资源. TEST_ACT_STOP2 交换构成测试的优雅终止.
如果由于路径故障而发生非优雅测试停止, 每个端点的 watchdog timeout 将到期 (有时某个端点先到期); 应在日志, STDOUT 和/或格式化输出中生成通知; 并且端点应为连接调度立即结束时间.
如果攻击者清除了 TEST_ACT_STOP2 指示, 则服务器和客户端上配置的测试持续时间计时器 (testIntTime) 应优先生效, 并且端点应为连接调度立即结束时间.