前两篇分别讲清了反射内存卡和反射内存交换机各自的工作原理。在真实工程里,把它们拼成一张可用的实时网络,还要回答一系列架构问题:节点之间到底用环串起来还是用交换机星型汇聚?要不要做双环冗余?几十上百个节点怎么分区?多模和单模光纤怎么选?大型系统怎么级联?本文从拓扑结构、冗余设计、节点数与距离限制、光纤选型、分区级联和典型案例几个维度,系统讨论反射内存网络的架构设计方法。
环型(环形串联)是反射内存最早、最朴素的组网方式。每个节点卡有一个光入和一个光出,节点 1 的出接节点 2 的入,节点 2 的出接节点 3 的入……最后一个节点的出接回节点 1 的入,形成闭合环。SCRAMNet+ 系列手册明确把网络描述为环型拓扑,数据在一对光纤上以约 150 Mbit/s 速率传送,每个环可容纳多达 256 个节点。
环型的优点是省设备:不需要任何交换机,节点间直接光纤对接,成本最低,时延路径固定。缺点也很突出:一是“串串相扣”,理论上任一节点或一段光纤故障都可能断环,实际工程中要靠节点卡自带的环旁路(bypass)继电器来保证掉电节点把环直通;二是数据要逐节点绕行,头节点写完后,尾节点要等报文绕完一圈才能收到,节点越多首尾时延差越大;三是维护不便,拆装某台节点往往要重新挪动光纤接头。
星型拓扑用一台或多台反射内存交换机作为中心,每个节点单独用一根光纤连到交换机。它的优点是:布线清晰,所有光纤汇聚到机房配线架,运维时动一个节点不影响其它节点;交换机自动旁路故障端口,单节点故障不扩散;每跳信号再生,各节点收到数据的时延一致、与节点数无关;距离上每段光纤可独立按 300 m(多模)或 10 km(单模)预算。缺点是交换机成为新增成本和单点。节点数在十几个以上、或分布在多个机柜/房间时,工程上通常优先选星型。
实际大型系统很少是纯环或纯星,而是混合拓扑。典型做法是:在某个机柜内部、距离很近的几台节点卡先用一个小环串起来(省掉一台交换机端口),再从这个环引出一对光纤接到中心交换机上;或者用多台交换机级联,每台交换机下面既挂节点、也下挂一个小环。这样既利用了环型的低成本近距离串联,又利用了星型的易维护和长距延伸。设计混合拓扑时,关键是控制“报文要走的逻辑跳数”,级数越多、分发时延越大,尾节点相对头节点的偏差也越大。
对可靠性要求极高的场合(如核电、武器控制、飞行控制),单环或单交换机是不能接受的,因为一处断裂就全网瘫痪。常见做法是双冗余:部署两张完全独立的反射内存网络(网络 A 与网络 B),每个节点装两块反射内存卡,分别接入 A 网和 B 网。关键数据同时写到两张卡上,任一时刻只要有一张网正常,数据就能送达。当某根光纤或某台交换机故障时,系统在另一张网上继续运行,故障对上层应用透明。
另一种思路是双环自愈:用两根反向旋转的光纤环把节点连成闭合回路,正常时主环工作、备用环空闲,主环某处断裂时节点把环在断点处“折回”,让通信沿备用环反向绕行一周维持连通。具体实现因产品而异,是否支持双环、双交换机冗余需以具体产品手册为准;工程上更稳妥、也更常见的还是“双卡双网”的物理冗余方案。
在节点规模上,公开资料显示 5565 系列与 SCRAMNet+ 单个反射内存网络(单环或经交换机级联后的一个广播域)最多支持约 256 个节点。这个上限来自协议对节点编号位宽和环定时的约束,不是靠交换机端口能无限突破的。
在传输距离上,决定因素是光纤类型和链路预算:多模光纤配合短波光模块典型约 300 米,单模光纤配合长波光模块典型约 10 公里。需要特别注意,环型拓扑里这段距离是“逐段累加”的——因为报文要绕行一周,整条环上所有光纤段的长度都要计入传播时延和光功率预算;而星型拓扑里,交换机每跳再生信号,每个“交换机端口到节点”的线段独立按 300 m 或 10 km 计算,不再累加。这就是为什么跨楼宇、跨厂区的系统更倾向星型加单模光纤。
短距、低成本、机房内布线多选多模光纤(如 OM3/OM4 多模),配合短光模块,成本低、接头易维护,距离通常在 300 米以内。长距、跨楼、跨厂区选单模光纤,配合长距 SFP 光模块,可到约 10 公里。5565 系列采用 SFP 可插拔光模块,因此同一台交换机、同一块节点卡上可以通过更换光模块来切换多模/单模,而不必更换板卡,这给工程变更带来很大灵活性。布线时还应注意光纤收发方向(TX/RX)不要接反,以及远离强电桥架以减少干扰——虽然光纤本身抗干扰,但接头和配线架仍需规范施工。
当节点数逼近 256 上限,或者不同子系统对实时性要求差异很大时,就需要做“分区”。所谓分区,是把一张大网络按功能拆成若干个独立的反射内存广播域,每个域用一组交换机(或一个环)单独组网,域与域之间通过少量“网关节点”做数据交换。网关节点同时挂在两个域上,把需要跨域共享的数据从一张网读到本地内存,再写到另一张网上。这样做的好处是:每个域的广播流量被限制在本地,不会因为全网节点太多而增大分发时延和尾节点偏差;不同子系统可以独立维护、独立升级。
在域内,端口不够就用交换机级联:ACC-5595 这类集线器最多 8 口,多台级联可凑到上百个端口,但级联级数应尽量压平,避免“树”太深。级联端口本身占用一个口,且每加一级多一跳固定转发延迟(亚微秒量级),对时延敏感的核心节点应尽量挂在第一级交换机上。
一个常见的中等规模仿真系统架构是这样的:中心机房放两台反射内存交换机做冗余(A/B 网),每台交换机挂 8–16 个节点,节点分布在主控机柜、接口机柜、实时仿真机柜里,机柜内用多模光纤短跳,跨机房用单模光纤长跳。每个实时计算节点装两块 5565 系列反射内存卡,分别接入 A、B 两台交换机。全局内存按功能分区:仿真计算机写状态量到偏移 0 段,接口机写 IO 量到 0x4000 段,各节点只订阅自己关心的分区,并在收到对应地址的中断后才去读取。这种“双星型 + 双卡冗余 + 地址分区”的架构,兼顾了确定性、可维护性和故障容忍能力,是军工仿真、半实物测试领域的主流做法。
反射内存网络的拓扑设计,本质是在“成本、时延确定性、可维护性、可靠性”四个目标之间做权衡:小规模近距离用环型省钱,中大规模易维护用星型,跨楼跨厂用单模光纤星型汇聚,高可靠场合上双卡双网冗余,超大规模则分区自治。把节点数上限(约 256)、距离上限(多模约 300 m、单模约 10 km)、光纤选型和级联级数这几条约束守住,就能搭出一张既快又稳的反射内存实时网络。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。