随着带宽需求的不断增长,汽车领域也引入了新的网络标准和拓扑结构。这催生了多种用于ECU间通信的技术和标准,包括CAN、CAN-FD、FlexRay、LIN、MOST,甚至还有USB和LVDS等。传感器数据交换一直以来都是通过不同的总线网络方式以临时的方式实现的。诸如CAN和LIN等常用方法,以共享总线的形式运行,无需在设备层面进行任何切换(转发)。在过去的五年里,随着高级驾驶辅助系统(ADAS)的推动,车载功能日趋复杂,对网络连接提出了更高的要求。为了显著提高数据通信吞吐量,降低网络延迟,人们开始重新审视应采用的网络方案。
随着车载信息娱乐系统的发展、Wi-Fi网络容量的提升以及对未来V2X系统的支持,以太网成为新型汽车平台事实上的车载网络协议也就不足为奇了。传统网络协议在未来一段时间内仍可能继续使用,因此在以太网生态系统中集成对这些传统网络协议的支持至关重要。IEEE 1722标准规定了一种将CAN和LIN等传统通信协议集成到以太网数据包中的方法,旨在使以太网成为汽车应用的主要网络方式。以太网在汽车以外的领域拥有悠久而成熟的应用历史,其卓越的性能将有助于简化汽车网络的复杂性。.
线束是汽车中最昂贵、最重的五大部件之一,因此使用单一且经过充分测试的网络有助于降低这两个因素。汽车以太网标准已制定为 100 Mbps 和 1 Gbps,适用于单对非屏蔽铜线。
汽车互联网连接的增强带来了潜在的攻击面和入口点,因此保持警惕至关重要。但同时,通过分析数据流,也为在以太网交换机内提供更多网络功能提供了可能。对于嵌入式开发人员而言,如何在有限的计算资源下,对所有传入数据进行实时线速分析而不引入任何延迟,可能是一项挑战。实现必要的保护或附加功能需要使用一组预定义的规则进行数据包检查。这是基于遇到的特定数据值或条件执行的。例如,各种新型音频/视频应用以及对时间敏感或关键的网络需求。
在传统的以太网交换机中,数据包转发到哪个端口的决策是在 OSI 网络模型的第二层 (L2) 做出的。参见图 1。
如图 1 所示,如果传入帧的源地址 (SA) 之前未出现过,则会将其与帧的传入端口号一起添加到地址数据库中。如果目标地址 (DA) 已存在于网桥的查找表中,则数据包会按预期转发;否则,帧将被泛洪。多年来,IEEE 标准(例如 802.1 MAC 桥接、VLAN 和基于端口的网络访问控制标准)一直专注于以太网帧的前 16 个字节。这些标准不断发展演进,最近新增了时间敏感型音频/视频传输 (AVB) 网络标准,例如 802.1AS。尤其是在汽车环境中,对确定性网络的需求日益增长,以确保网络传输的及时性和可靠性。将所有 ECU 锁定到单个主时钟源并保持 AV 内容质量只是其中的两个例子。此外,还引入了增强功能,以方便检查 OSI 第 3 层信息,例如 IPv4/IPv6 数据包优先级和 IPv4/IPv6 窃听。
虽然上述技术最初足以满足基于以太网的汽车应用的需求,但为了实现高级数据包分类、调试/诊断和安全功能,需要更大的灵活性,以实时、“线速”的方式检查数据包。然而,实现深度数据包检测 (DPI) 的可能性必须与汽车应用的空间限制和预算敏感性相权衡。过去,如果不使用大量计算密集型器件,就无法实现这种线速数据包分类,而这些器件会占用额外的电路板空间并影响物料清单 (BOM)。然而,现在的新型器件可以使用 DPI 引擎在紧凑的封装中提供此功能,这种方法借鉴自企业网络领域。Marvell
88Q5050 IC 交换机中的 DPI 引擎采用了一种称为 TCAM(三态内容寻址存储器)的技术。 TCAM 接收数据包并将其内容与预定义的过滤器进行匹配。根据匹配或不匹配的结果,DPI 引擎可以确定要执行的操作。这种方法为匹配二进制数据提供了三种可能性(因此称为三进制),其中每个比特的状态可以被确定为 0、1 或“X”(无关紧要)。“无关紧要”规则对于配置掩码非常有用,可以方便地验证数据范围。TCAM 通过位于桥接管道内的大量并行端口实现,支持跨多个端口的线速分类和数据修改。根据实现方式的不同,TCAM 可以操作数据包头部和有效载荷区域中特定数量的字节。DPI 可以执行诸如更改数据包的目标端口、丢弃帧、将帧复制到另一个端口或更改帧优先级或队列等操作。
让我们来看三个 DPI 在汽车领域的应用案例,第一个是调试/诊断。板载以太网诊断 (OBD) 通常设计为配备一个速度为 100 Mbps 的 100BASE-TX 端口。虽然这对于大多数应用来说似乎足够,但实际情况是,在交换机满负荷运行时,争用率会导致数据转发速度超过 100 Mbps,使得在不影响实际数据流的情况下无法在交换机上复制所有帧。这会导致数据包丢失,从而造成复制不完整。另一种方法是使用深度包检测 (DPI) 来识别和分类感兴趣的帧。参见图 2。在本例中,为了解决精确时间协议 (PTP) 帧的问题,可以配置一条 DPI 规则,将所有承载 PTP 消息的端口转发到 OBD 端口。例如,可以使用 EtherType (0x88F7) 或 MSG ID 来实现这一点。这样,即使交换机满负荷运行,所有与 PTP 相关的帧也会被转发到 OBD 端口。
DPI 的另一个应用领域是安全。识别有效的以太网数据包会消耗数据路径上 CPU 的大量计算资源,这意味着要实现实时低延迟分类,所需的处理能力将超出大多数汽车环境的规模、物料清单 (BOM) 和处理能力。然而,TCAM 提供了一种方法来验证进入以太网交换机的每个数据包是否符合网络要求。
如图 3 所示,TCAM 掩码配置为仅允许 MAC 地址段 (DA)、安全关联 (SA) 和 VLAN ID 符合特定范围的入站数据包。这些数据包的目标地址为 00:01:02:XX:XX:XX(匹配范围为 00:01:02:00:00:00 至 00:01:02:FF:FF:FF 的所有 MAC 地址段),源地址为 00:11:22:XX:XX:XX(匹配范围为 00:11:22:00:00:00 至 00:11:22:FF:FF:FF 的所有 MAC 地址段),VLAN ID 为 0x0XX(匹配范围为 0x000 至 0x0FF 的所有 VLAN ID)。
此示例仅使用数据包的第 2 层信息;但是,根据 TCAM 的具体实现,也可以使用第 3 层、第 4 层或更高层的信息进行 TCAM 匹配。![]()
TCAM 提供了一种经济高效、低延迟且资源占用低的验证进入交换机的每个数据包的方法。未通过上述测试的数据包可以被丢弃或进行进一步处理。
在最后一个用例示例中,DPI 用于为封装的以太网数据包做出路由决策。如前所述,目标是将许多不同的传统汽车网络协议(例如 LIN 和 CAN)集成到以太网中,其长期目标是降低汽车网络的复杂性和成本。虽然网关可以执行此类封装,但转发决策必须在封装之后做出。然而,使用 DPI 提供了一种基于封装数据做出转发决策的方法。数据包格式已根据 IEEE 1722-2016 标准定义,因此可以使用 TCAM 对数据包类型(例如 CAN)进行分类,并使用 CAN_BUS_ID 和 CAN_IDENTIFIER 来相应地创建路由操作。
在汽车网络环境中实施基于TCAM的DPI技术,可以为一系列此前不具备商业可行性的新应用、标准和功能提供支持。随着联网汽车的普及,制造商面临着既要集成更多安全功能,又要简化网络环境复杂性的双重挑战。DPI技术恰好能够同时实现这两点。
作者:克里斯托弗·马什,汽车应用与架构高级总监
