當(dāng)下任何一臺(tái)汽車,你會(huì)看到越來(lái)越多的網(wǎng)路裝置。當(dāng)然,在車內(nèi)有許多使用網(wǎng)路功能的關(guān)鍵應(yīng)用並不那麼容易被看到,但這並不會(huì)降低它們的重要性。在過(guò)去十年中,大量增加使用網(wǎng)路協(xié)定的應(yīng)用,使用於電子控制單元(ECU)的數(shù)量也在增長(zhǎng),這些ECU負(fù)責(zé)處理許多特定功能,例如主動(dòng)車距控制巡航系統(tǒng)、防鎖死煞車系統(tǒng)和中控門鎖功能等等。
增加頻寬的需求與時(shí)俱進(jìn),許多新的網(wǎng)路標(biāo)準(zhǔn)和拓樸架構(gòu)已經(jīng)應(yīng)用在車內(nèi),這導(dǎo)致ECU間通訊出現(xiàn)多種的技術(shù)和標(biāo)準(zhǔn),包括CAN、CAN-FD、FlexRay、LIN、以及MOST,乃至還包括USB和LVDS等其他技術(shù)和標(biāo)準(zhǔn)。
感測(cè)器數(shù)據(jù)能夠透過(guò)不同的匯流排實(shí)現(xiàn)即時(shí)分享,例如CAN和LIN等主流的方法是透過(guò)共享匯流排來(lái)運(yùn)作,但是沒(méi)有任何設(shè)備之間轉(zhuǎn)發(fā)的機(jī)置。在過(guò)去五年中,更多精細(xì)的功能進(jìn)入汽車,例如:先進(jìn)駕駛輔助系統(tǒng)(ADAS)要求更高程度的連接性。數(shù)據(jù)通訊的吞吐量也明顯提高,以降低網(wǎng)路的延遲為目標(biāo),促使人們考量應(yīng)採(cǎi)用何種網(wǎng)路技術(shù)。
這種趨勢(shì)與車載訊息娛樂(lè)系統(tǒng)、Wi-Fi網(wǎng)路性能的增長(zhǎng)以及未來(lái)對(duì)車與外界通訊(V2X)系統(tǒng)支援不謀而合。乙太網(wǎng)路已順勢(shì)成為新型汽車公認(rèn)的車連網(wǎng)協(xié)議,傳統(tǒng)網(wǎng)路協(xié)議很可能還會(huì)繼續(xù)使用一段時(shí)間,因此在乙太網(wǎng)路生態(tài)系統(tǒng)中支援這些傳統(tǒng)網(wǎng)路協(xié)議非常重要。
IEEE 1722已經(jīng)定義將傳統(tǒng)通訊(如CAN和LIN)封裝入乙太網(wǎng)路數(shù)據(jù)包中的方法,目的是使乙太網(wǎng)路成為汽車連網(wǎng)主要的技術(shù)。乙太網(wǎng)路在汽車市場(chǎng)之外已有長(zhǎng)其可靠的記錄,這些令人印象深刻之資歷,將有助於簡(jiǎn)化汽車網(wǎng)路的複雜性。
纜線是汽車內(nèi)成本最高和重量最重的五大元件之一,所以使用同一種通過(guò)驗(yàn)證的網(wǎng)路將有助於降低成本和重量。汽車乙太網(wǎng)路標(biāo)準(zhǔn)已經(jīng)定義100Mbps和1Gbps速率,可採(cǎi)用單對(duì)非屏蔽銅纜來(lái)實(shí)現(xiàn)。
汽車中互聯(lián)網(wǎng)的連接開啟了潛在的網(wǎng)路惡意攻擊面和入侵點(diǎn),因此對(duì)於安全性的關(guān)注更為重要,使用乙太網(wǎng)路交換機(jī)提供更多的網(wǎng)路功能分析數(shù)據(jù)流的可能。對(duì)於嵌入式開發(fā)人員來(lái)說(shuō),憑藉有限的計(jì)算能力,對(duì)所有傳入數(shù)據(jù)進(jìn)行即時(shí)分析且不增加任何延遲是一項(xiàng)挑戰(zhàn)。採(cǎi)用可定義的規(guī)則來(lái)檢查數(shù)據(jù)包用以實(shí)現(xiàn)必要的保護(hù)或附加功能,例如大量新的音訊/視訊應(yīng)用以及臨界時(shí)序敏感的網(wǎng)路需求。
在傳統(tǒng)的乙太網(wǎng)路交換機(jī)中,數(shù)據(jù)包應(yīng)轉(zhuǎn)發(fā)到哪個(gè)埠之決定取決於OSI網(wǎng)路模型的第2層(L2),參考圖1。

圖1 : OSI模型和數(shù)據(jù)包轉(zhuǎn)發(fā) |
|
在圖1中,如果傳入封包的來(lái)源地址(SA)以前沒(méi)有記錄,則將其與封包的傳入埠號(hào)一起添加到地址表中。如果目標(biāo)地址(DA)已經(jīng)存在於交換機(jī)的查詢表中,則數(shù)據(jù)包會(huì)相應(yīng)地轉(zhuǎn)發(fā),否則封包將出現(xiàn)廣播方式。
多年來(lái),管理L2所用協(xié)議之IEEE標(biāo)準(zhǔn)(如802.1 MAC Bridge、VLAN和基於埠的網(wǎng)路存取控制標(biāo)準(zhǔn))都集中在乙太網(wǎng)路封包的前16個(gè)字元。這些標(biāo)準(zhǔn)也在不斷發(fā)展,最近增加了包括音訊/視訊廣播(AVB)時(shí)序敏感網(wǎng)路標(biāo)準(zhǔn)(如802.1AS)。特別是,在汽車環(huán)境中對(duì)確定性網(wǎng)路之需求正變得越來(lái)越急迫,以確保網(wǎng)路中的時(shí)序和確認(rèn)數(shù)據(jù)傳輸。將所有ECU同步在單一主時(shí)鐘來(lái)源並保持AV內(nèi)容品質(zhì)正是其中兩個(gè)例子,更多進(jìn)階功能在於檢查OSI 三層內(nèi)容,例如IPv4 / IPv6數(shù)據(jù)包優(yōu)先級(jí)和IPv4 / IPv6監(jiān)聽。
雖然上述技術(shù)已經(jīng)基本上滿足汽車乙太網(wǎng)路應(yīng)用,但未來(lái)卻需要更高的靈活性以即時(shí)「線速」方式檢測(cè)數(shù)據(jù)包,實(shí)現(xiàn)進(jìn)階數(shù)據(jù)包歸類、除錯(cuò)/診斷和安全特性。然而,實(shí)現(xiàn)深度數(shù)據(jù)包檢測(cè)(DPI)的可行性必須要同時(shí)權(quán)衡汽車應(yīng)用的有限空間和可用預(yù)算。過(guò)去不可能實(shí)現(xiàn)這種線速數(shù)據(jù)歸類,主要是由於需要使用大量密集型計(jì)算裝置,這些需要佔(zhàn)用更多電路板空間並影響物料成本(BoM)。Marvell安全千兆乙太網(wǎng)路交換機(jī)可以透過(guò)封裝,DPI引擎來(lái)提供這種功能,這是普遍用於企業(yè)網(wǎng)路的方法。
DPI引擎採(cǎi)用了一種名為三元內(nèi)容尋址記憶體(TCAM)的技術(shù)。 TCAM接收封包並以其內(nèi)容與預(yù)先定義的過(guò)濾器進(jìn)行比對(duì)以找到匹配的事件,基於匹配或不匹配之結(jié)果,DPI引擎可以確定要採(cǎi)取的行動(dòng)。這種方法用於匹配二進(jìn)制數(shù)據(jù)時(shí)提供了三種的可能性(因此稱為三態(tài)),它的狀態(tài)或每個(gè)位元可以被設(shè)定為0,1或「X」忽略。
「忽略」規(guī)則對(duì)設(shè)置遮置位元非常有用,可以輕鬆檢查數(shù)值範(fàn)圍。 TCAM透過(guò)位於橋器內(nèi)部眾多的平行陣列來(lái)實(shí)作,支援多個(gè)埠線速歸類和修改數(shù)據(jù)。具體來(lái)說(shuō),TCAM可以運(yùn)作在數(shù)據(jù)包表頭和有內(nèi)文區(qū)域一定數(shù)量的字元上。 DPI可以執(zhí)行某些操作,例如更改封包的目標(biāo)埠,丟棄封包,將封包鏡像到另一個(gè)埠,更改封包或其優(yōu)先級(jí)。
讓我們來(lái)看看DPI在汽車中的三個(gè)應(yīng)用案例。第一個(gè)用於除錯(cuò)/診斷。乙太網(wǎng)路車載診斷(OBD)通常採(cǎi)用速率為100Mbps的100BASE-TX埠設(shè)計(jì),雖然這似乎適用於大多數(shù)應(yīng)用,但實(shí)際情形卻是,滿載使用中的交換機(jī)配置爭(zhēng)用率以超過(guò)100Mbps的速率傳輸數(shù)據(jù),因此無(wú)法在不影響實(shí)際數(shù)據(jù)流性能表現(xiàn)的情形下鏡像交換機(jī)中的所有封包。鏡像數(shù)據(jù)導(dǎo)致封包丟失,因而不能鏡像所有數(shù)據(jù)流。取代方法是使用DPI來(lái)識(shí)別和歸類僅有興趣的封包,請(qǐng)參考圖2。
在此範(fàn)例中,分析Precision time協(xié)議(PTP)封包問(wèn)題,可以將DPI規(guī)則設(shè)置為將具有PTP訊息之所有埠鏡像到OBD埠,這可以透過(guò)EtherType(0x88F7)或MSG ID來(lái)實(shí)現(xiàn)。即使交換機(jī)工作在最大流量,所有與PTP相關(guān)的封包也會(huì)鏡像到OBD埠。

圖2 : 使用TCAM進(jìn)行調(diào)試/診斷應(yīng)用。 |
|
DPI的另一個(gè)應(yīng)用是安全性。識(shí)別有效乙太網(wǎng)路數(shù)據(jù)會(huì)消耗位於數(shù)據(jù)路徑中的CPU的大量計(jì)算資源,這意味著為了實(shí)現(xiàn)即時(shí)、低延遲的歸類,對(duì)處理能力的要求將超出多數(shù)汽車環(huán)境所能夠提供的空間、材料成本和功能。於是,TCAM提供了解決方式,未佔(zhàn)用計(jì)算資源下檢查每個(gè)數(shù)據(jù)包得正確性。

圖3 : TCAM丟包超出可接受範(fàn)圍的Wireshark截圖。 |
|
在圖3所示的例子中,TCAM遮罩位元被設(shè)置為僅允許在一系列目標(biāo)地址,來(lái)源地址和VLAN ID內(nèi)的輸入數(shù)據(jù)包,這些是目標(biāo)地址為00:01:02:XX:XX:XX(匹配所有來(lái)源地址範(fàn)圍為00:01:02:00:00:00至00:01:02:FF:FF:FF),來(lái)源地址為00:11:22:XX:XX:XX(匹配所有MAC SA地址範(fàn)圍為00:11:22:00:00:00至00:11:22:FF:FF:FF)和VLAN ID:0x0XX(匹配從0x000至0x0FF的所有VLAN ID)。
本例僅使用來(lái)自數(shù)據(jù)包的二層訊息,然而,依TCAM的實(shí)施情形而定,也可以使用第三層,第四層或更高層的資訊來(lái)組成TCAM匹配的成份。
TCAM提供了能夠檢查每個(gè)進(jìn)入交換機(jī)數(shù)據(jù)包的高效益、低延遲和占用少量資源的方法,未匹配數(shù)據(jù)包可以被丟棄或啟動(dòng)其他操作。
在最後一個(gè)應(yīng)用案例中,DPI用於執(zhí)行乙太網(wǎng)路的路由決策。如前所述,此舉是為了將不同的傳統(tǒng)汽車網(wǎng)路協(xié)議(如LIN和CAN)整合到乙太網(wǎng)路,長(zhǎng)期目標(biāo)為降低汽車網(wǎng)路的複雜性和成本。雖然有閘道器來(lái)執(zhí)行這樣的封裝,但是一旦它們完成封裝,就必須做出轉(zhuǎn)發(fā)決定。而使用DPI則提供了根據(jù)封裝數(shù)據(jù)來(lái)做轉(zhuǎn)發(fā)決策之方法。數(shù)據(jù)包格式已經(jīng)根據(jù)IEEE1722-2016進(jìn)行了定義,因此TCAM可用於對(duì)數(shù)據(jù)包(例如CAN)進(jìn)行歸類,並使用CAN_BUS_ID和CAN_IDENTIFIER來(lái)相應(yīng)建立路由動(dòng)作。
在汽車網(wǎng)路環(huán)境中實(shí)現(xiàn)TCAM基礎(chǔ)的DPI技術(shù)能夠支援許多先前不具備商業(yè)可行性的新應(yīng)用、標(biāo)準(zhǔn)和功能。隨著互連汽車成為現(xiàn)實(shí),如何在安全方面融入更多功能,同時(shí)又簡(jiǎn)化網(wǎng)路的複雜度,製造商們?cè)谶@些領(lǐng)域正面臨著巨大挑戰(zhàn)。 DPI正是實(shí)現(xiàn)這兩個(gè)目標(biāo)的機(jī)會(huì)。
(作者Christopher Mash為Marvell公司汽車應(yīng)用和架構(gòu)部高級(jí)總監(jiān))