摘要

  • 1997 年 5 月的 RFC 2143 是 Experimental 提案:它为近距离工作站设计了用 SCSI SEND MESSAGE(10) 承载 IPv4 的格式,没有制定互联网标准。
  • 常规 SCSI 发起端通常只接收自己发出命令的响应。要接收别的主机主动发来的命令,适配器必须支持目标模式,驱动还须把消息交给上层。
  • SCSI 没有链路广播地址,提案只能依次询问各个目标并借助缓存减少重复探测。文中的 64 主机结构和应用场景是设想,不是部署或性能实测。

格式清楚,权限未必具备

Ben Elliston 在 RFC 2143 中选用十字节的 SEND MESSAGE 命令,而不是六字节或十二字节版本。首字节操作码为 0x2A;第七、八字节以高位在前的方式记录 IPv4 报文长度;“stream select”的低四位用于区分协议类型。随后接上完整 IP 报文。长度字段同为 16 位,是该选择的理由之一。

这是一份可讨论的封装方案,却不是链路已经可用的证明。字段对齐不说明适配器能接收别人的命令,不说明驱动能交付 IP,也不说明作者提到的接近 360 Mbit/s 已由某个 IP 集群测得。RFC Editor 的记录 将文件列为 Experimental,并注明它不是互联网标准。

谁可以先说话

普通 SCSI 事务有发起端和目标端。发起端下达命令,目标端回应;发起端通常只把先前命令的回应视为发给自己的消息。若两台工作站要异步互发 IP,一方发出的命令必须被另一方作为目标端接纳。RFC 因此要求适配器具备目标模式,并有相应驱动把收到的内容向上交给网络层。这是协议角色的约束,不是电缆带宽的约束。

把几台电脑插在同一总线上,不能据此说它们已经处于同等网络地位。物理连接、可接收的事务角色、驱动接口和 IP 处理链缺一不可。最先要验证的不是报文有没有正确编码,而是另一个主机能否真正收到它。

没有广播,就逐个敲门

IP 选出下一跳以后,还须找到对应的 SCSI ID。以太网上的 RFC 826 ARP 可以向整个网段广播询问。RFC 2143 明确指出,SCSI 没有这样的链路广播地址;它提出轮流向各目标发送查询,视 SCSI 类型可能需要七次以上独立访问。已知映射可以缓存;失败的映射也可暂时缓存,以免马上重复查询。

缓存减少的是重复成本,不会凭空产生广播。原始 SCSI 的 ID 是 0 至 7,Wide SCSI 扩展至 0 至 15;文件讨论的总线距离不足十米。这些数字体现局部互连的边界,不应被误读为可随意扩大的 IP 局域网。

RFC 又设想八台主机各用附加适配器和 IP 路由,把若干短总线连成可达 64 台主机的布局。这里的“可达”依赖路由,并不意味着 64 台共用一条 SCSI 线。分布式计算、容错 NFS、Web 和数据库服务只是可能用途;文件没有提供它们在该设计上的运行记录。

证据边界

  • RFC 2143 第 2—7 节支持角色、封装、寻址与拓扑的描述。
  • RFC 826 仅用于说明以太网 ARP 广播如何工作。
  • RFC Editor 状态页 确认日期与 Experimental 分类。

本证据包没有设备测试、抓包、集群基准或采用率资料。RFC 的简短安全讨论也不能当作认证、保密或隔离保证。配图是概念性历史插画,并非部署照片。