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