在上圖中,如果傳入幀的源地址(SA)以前沒有記錄,則將其與幀的傳入端口號一起添加到地址數(shù)據(jù)庫中。如果目標地址(DA)已經(jīng)存在于網(wǎng)橋的查找表中,則數(shù)據(jù)包會相應地轉(zhuǎn)發(fā),否則幀將被泛洪處理。多年來,管理L2所用協(xié)議的IEEE標準(如802.1 MAC橋、VLAN和基于端口的網(wǎng)絡訪問控制標準)都集中在以太網(wǎng)幀的前16個字節(jié)。這些標準也在不斷發(fā)展,最近增加的包括以太網(wǎng)音視頻橋接技術(shù)(AVB)和時間敏感網(wǎng)絡標準(如802.1AS)。特別是,在汽車環(huán)境中對確定性網(wǎng)絡的需求正變得越來越急迫,以確保網(wǎng)絡中及時和可靠的數(shù)據(jù)傳輸。將所有ECU鎖定在單個主時鐘源并保持AV內(nèi)容質(zhì)量只是其中兩個例子,更多增強的功能還在引入以便于檢查OSI 3層信息,例如IPv4 / IPv6數(shù)據(jù)包優(yōu)先級和IPv4 / IPv6偵聽。
雖然上述技術(shù)已經(jīng)基本上足夠用于汽車以太網(wǎng)應用,但卻需要更高的靈活性并以實時“線速”方式檢測數(shù)據(jù)包,以便實現(xiàn)高級數(shù)據(jù)包分類、調(diào)試/診斷和安全功能。然而,是否實現(xiàn)深度包檢測(DPI)需要權(quán)衡汽車應用的有限空間和敏感預算。過去不可能實現(xiàn)這種線速數(shù)據(jù)包分類,主要是由于需要使用大量計算密集型設備,而這些則需要占用更多電路板空間并增加物料清單(BoM)。然而,Marvell業(yè)界領先的安全千兆以太網(wǎng)交換機能夠以緊湊裝置的形式,采用源自于企業(yè)網(wǎng)的DPI引擎即可提供這種功能。
DPI引擎使用了一種名為三態(tài)內(nèi)容尋址存儲器(TCAM)的技術(shù)。 TCAM接收數(shù)據(jù)包數(shù)據(jù)并使其內(nèi)容與預定義的過濾器進行比較以找到匹配的事件,基于匹配或不匹配的結(jié)果,DPI引擎可以確定后續(xù)的處理。這種方法提供了三種用于匹配二進制數(shù)據(jù)的可能性(因此稱為三態(tài)), 每個數(shù)據(jù)位可以被設置為0,1或“X”不關心。 “不關心”規(guī)則對設置掩碼非常有用,可以輕松檢查多個數(shù)據(jù)段。 通過在橋接流水線內(nèi)放入大量的平行陣列,TCAM支持在多個端口上同時對數(shù)據(jù)線速的分類和修改。根據(jù)具體的配置,TCAM的處理能夠延伸到數(shù)據(jù)包報頭甚至有效載荷區(qū)域內(nèi)的一些字節(jié) 。 DPI可以執(zhí)行下述操作,例如更改數(shù)據(jù)包的目標端口,丟棄幀,將幀鏡像到另一個端口,更改幀或隊列優(yōu)先級等。
我們來看看DPI在汽車中的三個應用案例。第一個用于調(diào)試/診斷。以太網(wǎng)車載診斷(OBD)接口被設計為速度為100Mbps的100base-TX端口,雖然這似乎適用于大多數(shù)應用,但實際情況卻是,被完全使用的交換機中的爭用率會產(chǎn)生超過100Mbps的速率傳輸數(shù)據(jù),因此無法在不影響實際數(shù)據(jù)流性能的情況下鏡像交換機中的所有幀。這導致數(shù)據(jù)包丟失,因而不是所有的包都能夠鏡像。另一種方法是使用DPI來識別和分類僅感興趣的幀,請參見圖2。在此示例中,精確時間協(xié)議(PTP)幀的出現(xiàn)了問題,可以將DPI規(guī)則設置為將所有端口上的PTP消息鏡像到OBD端口,例如可以通過配置EtherType(088F7)或MSG ID來達到目的。即使交換機工作在最大負載下,所有PTP相關的幀都會被鏡像到OBD端口。
