當下任何一台汽車,你會看到越來越多的網路裝置。當然,在車內有許多使用網路功能的關鍵應用並不那麼容易被看到,但這並不會降低它們的重要性。在過去十年中,大量增加使用網路協定的應用,使用於電子控制單元(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中,如果傳入封包的來源地址(SA)以前沒有記錄,則將其與封包的傳入埠號一起添加到地址表中。如果目標地址(DA)已經存在於交換機的查詢表中,則數據包會相應地轉發,否則封包將出現廣播方式。
多年來,管理L2所用協議之IEEE標準(如802.1 MAC Bridge、VLAN和基於埠的網路存取控制標準)都集中在乙太網路封包的前16個字元。這些標準也在不斷發展,最近增加了包括音訊/視訊廣播(AVB)時序敏感網路標準(如802.1AS)。特別是,在汽車環境中對確定性網路之需求正變得越來越急迫,以確保網路中的時序和確認數據傳輸。將所有ECU同步在單一主時鐘來源並保持AV內容品質正是其中兩個例子,更多進階功能在於檢查OSI 三層內容,例如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。
在此範例中,分析Precision time協議(PTP)封包問題,可以將DPI規則設置為將具有PTP訊息之所有埠鏡像到OBD埠,這可以透過EtherType(0x88F7)或MSG ID來實現。即使交換機工作在最大流量,所有與PTP相關的封包也會鏡像到OBD埠。
DPI的另一個應用是安全性。識別有效乙太網路數據會消耗位於數據路徑中的CPU的大量計算資源,這意味著為了實現即時、低延遲的歸類,對處理能力的要求將超出多數汽車環境所能夠提供的空間、材料成本和功能。於是,TCAM提供了解決方式,未佔用計算資源下檢查每個數據包得正確性。
圖3 : TCAM丟包超出可接受範圍的Wireshark截圖。 |
|
在圖3所示的例子中,TCAM遮罩位元被設置為僅允許在一系列目標地址,來源地址和VLAN ID內的輸入數據包,這些是目標地址為00:01:02:XX:XX:XX(匹配所有來源地址範圍為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)。
本例僅使用來自數據包的二層訊息,然而,依TCAM的實施情形而定,也可以使用第三層,第四層或更高層的資訊來組成TCAM匹配的成份。
TCAM提供了能夠檢查每個進入交換機數據包的高效益、低延遲和占用少量資源的方法,未匹配數據包可以被丟棄或啟動其他操作。
在最後一個應用案例中,DPI用於執行乙太網路的路由決策。如前所述,此舉是為了將不同的傳統汽車網路協議(如LIN和CAN)整合到乙太網路,長期目標為降低汽車網路的複雜性和成本。雖然有閘道器來執行這樣的封裝,但是一旦它們完成封裝,就必須做出轉發決定。而使用DPI則提供了根據封裝數據來做轉發決策之方法。數據包格式已經根據IEEE1722-2016進行了定義,因此TCAM可用於對數據包(例如CAN)進行歸類,並使用CAN_BUS_ID和CAN_IDENTIFIER來相應建立路由動作。
在汽車網路環境中實現TCAM基礎的DPI技術能夠支援許多先前不具備商業可行性的新應用、標準和功能。隨著互連汽車成為現實,如何在安全方面融入更多功能,同時又簡化網路的複雜度,製造商們在這些領域正面臨著巨大挑戰。 DPI正是實現這兩個目標的機會。
(作者Christopher Mash為Marvell公司汽車應用和架構部高級總監)