有 5 种方法可选(如表 C-4 中所示),用户应用可选择其中任一方法来管理接收缓冲器完成空间。为方便起见,此处探讨的内容将这些方法称为 LIMIT_FC、PACKET_FC、RCB_FC 和 DATA_FC。每一种方法都有各自的优缺点,您需要在开发用户应用时妥善考量取舍。
方法 | 描述 | 优点 | 缺点 |
---|---|---|---|
LIMIT_FC | 限制未完成的非转发请求总数 | 此方法最便于在用户逻辑中实现 | 有大量完成容量闲置 |
PACKET_FC | 跟踪未完成的 CplH 和 CplD 信用值数量;可基于数据包来进行分配和取消分配 | 相对简单的用户逻辑;分配粒度更细,这意味着浪费的容量少于 LIMIT_FC | 与 LIMIT_FC 相同,非转发的信用值会被占用,直至完全满足请求为止 |
RCB_FC | 跟踪未完成的 CplH 和 CplD 信用值数量;可基于 RCB 来进行分配和取消分配 | 占用信用值的时间少于 PACKET_FC | 用户逻辑比 LIMIT_FC 或 PACKET_FC 更复杂 |
DATA_FC | 跟踪未完成的 CplH 和 CplD 信用值数量;可基于 RCB 来进行分配和取消分配 | 浪费的容量最少 | 用户逻辑比 LIMIT_FC、PACKET_FC 和 RCB_FC 更少 |