在上图中,如果传入帧的源地址(SA)以前没有记录,则将其与帧的传入端口号一起添加到地址数据库中。如果目标地址(DA)已经存在于网桥的查找表中,则数据包会相应地转发,否则帧将被泛洪处理。多年来,管理L2所用协议的IEEE标准(如802.1 MAC桥、VLAN和基于端口的网络访问控制标准)都集中在以太网帧的前16个字节。这些标准也在不断发展,最近增加的包括以太网音视频桥接技术(AVB)和时间敏感网络标准(如802.1AS)。特别是,在汽车环境中对确定性网络的需求正变得越来越急迫,以确保网络中及时和可靠的数据传输。将所有ECU锁定在单个主时钟源并保持AV内容质量只是其中两个例子,更多增强的功能还在引入以便于检查OSI 3层信息,例如IPv4 / IPv6数据包优先级和IPv4 / IPv6侦听。
虽然上述技术已经基本上足够用于汽车以太网应用,但却需要更高的灵活性并以实时“线速”方式检测数据包,以便实现高级数据包分类、调试/诊断和安全功能。然而,是否实现深度包检测(DPI)需要权衡汽车应用的有限空间和敏感预算。过去不可能实现这种线速数据包分类,主要是由于需要使用大量计算密集型设备,而这些则需要占用更多电路板空间并增加物料清单(BoM)。然而,Marvell业界领先的安全千兆以太网交换机能够以紧凑装置的形式,采用源自于企业网的DPI引擎即可提供这种功能。
DPI引擎使用了一种名为三态内容寻址存储器(TCAM)的技术。 TCAM接收数据包数据并使其内容与预定义的过滤器进行比较以找到匹配的事件,基于匹配或不匹配的结果,DPI引擎可以确定后续的处理。这种方法提供了三种用于匹配二进制数据的可能性(因此称为三态), 每个数据位可以被设置为0,1或“X”不关心。 “不关心”规则对设置掩码非常有用,可以轻松检查多个数据段。 通过在桥接流水线内放入大量的平行阵列,TCAM支持在多个端口上同时对数据线速的分类和修改。根据具体的配置,TCAM的处理能够延伸到数据包报头甚至有效载荷区域内的一些字节 。 DPI可以执行下述操作,例如更改数据包的目标端口,丢弃帧,将帧镜像到另一个端口,更改帧或队列优先级等。
我们来看看DPI在汽车中的三个应用案例。第一个用于调试/诊断。以太网车载诊断(OBD)接口被设计为速度为100Mbps的100base-TX端口,虽然这似乎适用于大多数应用,但实际情况却是,被完全使用的交换机中的争用率会产生超过100Mbps的速率传输数据,因此无法在不影响实际数据流性能的情况下镜像交换机中的所有帧。这导致数据包丢失,因而不是所有的包都能够镜像。另一种方法是使用DPI来识别和分类仅感兴趣的帧,请参见图2。在此示例中,精确时间协议(PTP)帧的出现了问题,可以将DPI规则设置为将所有端口上的PTP消息镜像到OBD端口,例如可以通过配置EtherType(088F7)或MSG ID来达到目的。即使交换机工作在最大负载下,所有PTP相关的帧都会被镜像到OBD端口。