浅谈汽车电子的深度包检测技术
扫描二维码
随时随地手机看文章
留意一下当今的任何一台汽车的内部,您会看到越来越多的网络设备。当然,在车内使用网络功能的许多关键应用并不那么容易被看到,但这并不会降低它们的重要性。在过去十年中,网络协议的应用大大增加,部分原因在于电子控制单元(ECU)的数量也在增长,这些ECU负责处理许多特定的功能,例如自适应巡航控制、防抱死制动系统和中控锁功能等等。
随着带宽需求的日益增加,车内已经引入了多种新的网络标准和拓扑架构。这导致多种技术和标准用于ECU之间的通信,包括CAN、CAN-FD、FlexRay、LIN、以及MOST,甚至还包括USB和LVDS等其他技术和标准。传感器数据共享能够根据不同的总线联网方法以特定的方式实现,例如CAN和LIN等是用共享总线的方式来传输,不存在任何设备级别的数据交换(或转发)。在过去的五年中,受高级驾驶辅助系统(ADAS)驱动,汽车内部更复杂的功能已经在要求更高级别的连接性。数据传输的吞吐量显著提高,同时还要求更低的网络延迟,这促使人们考虑应采用哪种网络技术。这种趋势与车载信息娱乐系统的增长、Wi-Fi网络功能的提升以及对车物通信(V2X)系统未来易用性的支持非常一致。以太网已经成为新型汽车事实上的车联网协议标准,这也许并不奇怪。传统网络协议仍然还会继续使用一段时间,因此在以太网生态系统中增加对这些传统网络协议的支持非常重要。IEEE 1722已经定义了一种将传统通信(如CAN和LIN)封装在以太网数据包中的方法,目的是使以太网成为首要的汽车联网技术。凭借在汽车之外领域的长久验证,以太网拥有令人印象深刻的能力,将帮助简化汽车网络的复杂性。
线束是汽车内成本最高和重量最重的五大元件之一,所以使用单一经过验证的网络将有助于降低成本和重量。100Mbps和1Gbps汽车以太网标准都已经要求采用一对非屏蔽铜缆来实现传输。
汽车中互联网连接的增加也带来了潜在的网络攻击面和入侵点,因而对于安全性的关注更加重要,但这也为通过分析数据流让以太网交换机提供更多网络功能提供了可能。对于嵌入式开发人员来说,凭借有限的计算资源,在不引入任何延迟的情况下,对所有传入数据进行实时线速分析极具挑战。为了实现必要的保护或其它功能需要使用一组预先确定的规则来检测数据包,这可以根据指定的数据值或条件来具体执行,例如新的音频/视频应用以及对时间关键或敏感的网络需求场景。
在传统的以太网交换机中,有关数据包应转发到哪个端口的决定取决于OSI网络模型的第2层(L2),参见图1。
图1:OSI模型和数据包转发。
在图1中,如果传入帧的源地址(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(0x88F7)或MSG ID来达到目的。即使交换机工作在最大负载下,所有PTP相关的帧都会被镜像到OBD端口。
图2:使用TCAM进行调试/诊断应用。
DPI的另一个应用是安全性。 识别合法的以太网数据包可能会耗费掉位于数据路径中CPU的大量计算资源。这意味着为了实现实时、低延迟的分类,对处理能力的要求将超出大多数汽车环境所能够提供的空间、BOM和处理能力。 但是,TCAM提供了一种方法来检查每个进入以太网交换机数据包的网络格式是否正确。
图3: TCAM丢包超出可接受范围的Wireshark截图。
在图3所示的例子中,TCAM掩码被设置为仅允许在一系列MAC DA,SA和VLAN ID内的输入数据包,这些是目标地址为00:01:02:XX:XX:XX(匹配所有MAC DA地址范围为00:01:02:00:00:00至00:01:02:FF:FF:FF),源地址为00:11:22:XX:XX:XX(匹配所有MAC SA地址范围为00:11:22:00:00:00至00:11:22:FF:FF:FF)和VLAN ID:0x0XX(匹配从0x000至0x0FF的所有VLAN ID)。
本例仅使用来自数据包的L2信息,然而,TCAM通过适当的配置,也可以把L3,L4或更高层面的信息来作为TCAM匹配的一部分。
TCAM提供了唯一一种经济有效、低延迟和占用少量资源的方法来检查每个进入交换机数据包的,未通过上述检查的数据包可以被丢弃或被其它方式处理 。
在最后一个应用案例中,DPI用于执行以太网数据包封包的路由决策。如前所述,此举是为了将许多不同的传统汽车网络协议(如LIN和CAN)整合到以太网,而长期目标则是降低汽车网络的复杂度和成本。虽然有网关来实现这类的封包,但是一旦它们完成封包,就必须做出转发决定。而使用DPI则提供了一种根据封包内的数据来做转发决策的方法。数据封包的格式已经根据IEEE1722-2016进行了定义,因此TCAM可用于对数据封包(例如CAN)进行分类,并使用CAN_BUS_ID和CAN_IDENTIFIER来相应地创建路由操作。
在汽车网络环境中使用基于TCAM的DPI技术能够开启许多先前不具备商业可行性的新应用、标准和功能。随着联网汽车成为现实,如何在安全方面融入更多功能,同时又要降低网络环境的复杂度,制造商们在这些领域正面临着巨大挑战。DPI为实现这两个目标提供了可能。