用OSI模型來看車載網(wǎng)絡

來源 | 一驥絕塵

 

用OSI模型來看車載網(wǎng)絡的圖1

OSI 7 層模型簡介


工作涉及過網(wǎng)絡工程的朋友,相信都會接觸過OSI 7層模型這個概念。汽車車載網(wǎng)絡作為一種重要的網(wǎng)絡用例,自然也會經常遇見這個概念。尤其近年來隨著車載以太網(wǎng)的普及以及車聯(lián)網(wǎng)技術的實現(xiàn),汽車網(wǎng)絡愈加復雜。而OSI 7層模型則可以說是用以理解和設計汽車網(wǎng)絡的利器。
 
OSI全稱是Open System Interconnect,即開放式系統(tǒng)互連。有時也叫OSI參考模型,是ISO組織在1985年研究的網(wǎng)絡互連模型。該體系結構標準定義了網(wǎng)絡互連的七層框架(物理層、數(shù)據(jù)鏈路層、網(wǎng)絡層、傳輸層、會話層、表示層和應用層)。
 
首先,這是一個互連模型,其目的在于研究網(wǎng)絡通訊。
其次,為什么要分層?其意義在于更好地解耦復雜問題,讓層與層之間各自獨立。
 
功能相仿的內容抽象到同一層里,讓每層專注于自己的任務和分工,各司其職提高效率。出了故障時也能順藤摸瓜,按層排查。各個制造商也可以按分層結構集中開發(fā)某一層或者某幾層的軟件或者硬件設備。
 
用OSI模型來看車載網(wǎng)絡的圖2
圖1:OSI 7 層模型
 
這個模型從80年代提出到今歷久不衰,可見其分層的合理性。該模型同時還適用于各類網(wǎng)絡通訊,為眾多網(wǎng)絡開發(fā)人員提供統(tǒng)一的語言。按照不同網(wǎng)絡的標準和規(guī)范,不一定都會全部應用完這7層(實際上用完7層的網(wǎng)絡不多),但是通過合并某些層次,該模型也可以退化成TCP/IP(4層)等模型。
 
接下來我們從上往下一層一層的來剖析這個模型。為了輔助參考,我們類比一個老板接收報告的例子。
 
第7層應用層:這是人機交互的一層。
應用層顧名思義就是被終端業(yè)務應用使用的一層,這一層提供的數(shù)據(jù)是能被一般人所理解的,例如我們平時瀏覽網(wǎng)頁或者查看郵件所看到的數(shù)據(jù),都是應用層所提供的。典型的應用層協(xié)議有HTTP,F(xiàn)TP,SMTP,DNS等。
 
以參考例子來看,應用層協(xié)議就像是一份呈現(xiàn)在老板桌上的市場分析報告,其編排都是按照老板所熟悉的模板來進行,對老板來說一目了然。
 
第6層表示層:這是確保數(shù)據(jù)格式可用的一層。
這一層會調整數(shù)據(jù)為應用可讀的格式。通訊上的加解密、解壓縮和編譯碼等工作都會在這一層進行。典型的表示層協(xié)議有ASCII碼到EBCIDC的轉換、SSL和MPEG等。
 
以參考例子來看,表示層協(xié)議就像是老板的秘書,把收到的原始報告按照老板熟悉的模板重新編排。
 
第5層會話層:這是維護連接和控制端口及會話的一層。
這一層主要功能是負責兩個通訊節(jié)點之間的傳輸聯(lián)接。過程中包括建立通訊通道、在使用時確保會話暢通并在使用結束后結束會話。會話層還可以在數(shù)據(jù)傳輸過程中設置檢查點,如果傳輸中斷,設備可以在最后一個檢查點處重傳。典型的會話層協(xié)議有RPC、SQL和NFS等。
 
以參考例子來看,會話層就像公司里的通訊助理,她負責與報告提供方聯(lián)系,確保報告通過快遞發(fā)出,并通過快遞單號追蹤物料情況,確認收貨等。
 
第4層傳輸層:這是通過協(xié)議傳輸數(shù)據(jù)的一層。
這一層主要功能是管理傳輸?shù)臄?shù)據(jù)包,提供端到端的數(shù)據(jù)傳輸服務。過程中可以采用面向連接或者無連接的方式來實現(xiàn)。如果需要數(shù)據(jù)分包整包、流量控制、錯誤控制等都會發(fā)生在這一層。傳輸層是承上啟下的一層,往上的更偏應用上層,往下的更偏底層軟硬件。典型的傳輸層協(xié)議有TCP(面向連接)和UDP(無連接)。
 
以參考例子來看,傳輸層就像快遞公司。報告提供方找到對應的快遞公司來運送報告,把單號告訴公司通訊助理。至于這個信件具體怎么運輸,貨物會否丟失,公司通訊助理是否隔天能收到,就是靠快遞公司來管理保證了。
 
第3層網(wǎng)絡層:這是路徑選擇的一層。
這一層的主要功能是數(shù)據(jù)打包解包和路徑選擇,其目的是實現(xiàn)兩個端系統(tǒng)之間的數(shù)據(jù)透明傳送。它提供的服務使傳輸層不需要了解網(wǎng)絡中的數(shù)據(jù)傳輸和交換技術。網(wǎng)絡層一方面會把數(shù)據(jù)在發(fā)送端分段成單個的數(shù)據(jù)包,在接收端把數(shù)據(jù)包組合后提供給傳輸層。同時網(wǎng)絡層會尋找最佳的物理傳輸路徑,確定數(shù)據(jù)包的實際路由路徑。典型的網(wǎng)絡層協(xié)議有IP和ICMP等。
 
以參考例子來看,網(wǎng)絡層就相當于快遞公司里的城際運輸。例如報告提供方發(fā)給公司通訊專員的發(fā)件地址是廣州市XX路YY號,收件地址是上海市AA路BB號。城際運輸會先關注廣州到上海,選擇一條合理的運輸路線發(fā)往上海。到上海后再按照目標地址轉運到其附近的快遞站。
 
第2層數(shù)據(jù)鏈路層:這是連接軟硬件的一層。
這一層負責建立和終止兩個通訊節(jié)點之間的物理連接,定義在單個鏈路上如何傳輸數(shù)據(jù)。這一層協(xié)議與傳輸?shù)奈锢斫橘|有關,屬于軟硬件交互的一層。數(shù)據(jù)鏈路層還負責如何將數(shù)據(jù)組合成數(shù)據(jù)塊,在數(shù)據(jù)鏈路層中稱為幀。幀是數(shù)據(jù)鏈路層的傳送單位。同時這一層還會負責控制幀在物理信道上的傳輸,包括如何處理傳輸差錯,如何調節(jié)發(fā)送速率以使與接收方相匹配等。典型的數(shù)據(jù)鏈路層協(xié)議有Ethernet、IEEE802.3和CSMA/CD等。
 
以參考例子來看,數(shù)據(jù)鏈路層就像地方快遞員,將信件從快遞站送到公司門口。
 
第1層物理層:這是通過物理介質傳輸原始二進制碼流的一層。
這一層就是具體的物理介質,例如是同軸線纜或是無線電磁波等。這一層定義了物理網(wǎng)絡接口的規(guī)格,設備間線纜或無線連接的規(guī)格,確保原始二進制碼流(0101000…)和位速率控制等。典型的物理層協(xié)議有100BASE-T1 和1000BASE-T1等。
 
這一層相信不需要配合參考例子理解。硬要以參考例子來看的話,物理層就是這個信件寄送過程所經歷的物理介質,就是整個物理世界。
 
OSI 7層模型是最廣泛的一種網(wǎng)絡通訊分層抽象。而針對具體不同的通訊網(wǎng)絡,我們可能需要著重關注其中一層,然后再細分幾個子層。又或者將OSI 7層的某幾個層次合并為一個來處理。這就像公司里我們經常把員工分為基層員工、中層干部和高管,便于我們能有統(tǒng)一的語言交流和分析。但是根據(jù)實際的工作任務,有時候可能需要把基層員工細分為實習生、工程師、資深工程師等才能分析討論問題,而中層干部和高管都統(tǒng)一歸類為領導就足以完成討論。
 
分層模型本質上是一個工具,我們還是應該以解決問題為導向,靈活應用這個工具。接下來我們以汽車上常用的兩種通訊方式為例子,看看怎么應用OSI 7層模型分析和理解這兩種通訊方式。
 
用OSI模型來看車載網(wǎng)絡的圖3

以CAN通訊為例


CAN全稱是Controller Area Network的縮寫,即控制器局域網(wǎng)絡,屬于工業(yè)現(xiàn)場總線,是ISO國際標準化的串行通信協(xié)議,在汽車網(wǎng)絡通訊上廣泛使用。
 
Classic CAN的一種經典應用是信號傳輸。如下圖所示,這種CAN總線的信號傳輸只用到了物理層、數(shù)據(jù)鏈路層和應用層。CAN的數(shù)據(jù)幀直接可以解析成應用報文和信號。但是考慮到車載網(wǎng)絡的可靠性要求和器件通用標準化要求,CAN通訊針對物理層和數(shù)據(jù)鏈路層作了更詳盡的分析和協(xié)議標準規(guī)定。
 
用OSI模型來看車載網(wǎng)絡的圖4
圖2:基于CAN的信號通訊與OSI模型
 
具體來看,CAN的數(shù)據(jù)鏈路層分為邏輯鏈路控制(LLC)子層和媒體訪問控制(MAC)子層。MAC子層的功能主要是傳送規(guī)則,即控制幀結構、執(zhí)行仲裁、錯誤檢測、出錯標定和故障界定;LLC子層的功能主要是報文濾波、超載通知和恢復管理。物理層則由收發(fā)器、傳輸介質(線纜)和接口實現(xiàn),負責定義總線電壓和容錯性能等。
 
當然除了簡單的信號傳輸,CAN通訊還可以用來做診斷等應用。這種場景下,則需要細分網(wǎng)絡層、傳輸層等其他層次,以支撐更復雜的通訊應用。
 
用OSI模型來看車載網(wǎng)絡的圖5

以SOME/IP通訊為例


SOME/IP (Scalable service-Oriented MiddlewarE over IP),即“運行于IP之上的可伸縮的面向服務的中間件”。它是車載以太網(wǎng)通信引入的一個概念,本身屬于OSI 模型第4層之上的應用層協(xié)議,主要為針對汽車電子的應用層提供API接口,并已經納入了AutoSAR標準體系。
 
如下圖所示,對于4層及以下的協(xié)議,SOME/IP可以復用互聯(lián)網(wǎng)相對成熟的協(xié)議。下層的MAC Header、IP Header、TCP/UDP Header都可以基于現(xiàn)有協(xié)議定義,底層的尋址邏輯、建鏈邏輯、流量控制、錯誤控制等都可以較好地復用現(xiàn)有硬件設備或者軟件協(xié)議棧。
 
用OSI模型來看車載網(wǎng)絡的圖6
圖3:SOME/IP通訊與OSI模型
 
SOME/IP協(xié)議實際上對數(shù)據(jù)的序列化和反序列化、遠程調用機制和服務發(fā)現(xiàn)機制等都進行了定義,也涉及到會話層和表示層的部分功能。但是整個協(xié)議沒有特殊的細分層次需求,所以在通訊協(xié)議上無需再劃分不同的子層協(xié)議。回到開頭的例子,這就像一間小型公司,可能看分析報告、整編模板和追蹤快遞都由同一個人來負責,而不是三個崗位。
 
通過CAN和SOME/IP通訊這兩個例子,我們可以進一步理解OSI參考模型在我們分析網(wǎng)絡通訊時能起的作用。這個通用模型實際上更像一個指導工具,把網(wǎng)絡操作分成低復雜性單元,幫助設計和理解新網(wǎng)絡。層次的劃分使各層獨立,減少相互影響。例如設計應用層SOME/IP協(xié)議的同時,可以復用原有的下層協(xié)議而不干涉。這種靈活性也使得根據(jù)網(wǎng)絡特性而單獨替換某層協(xié)議十分方便,解決了異種網(wǎng)絡互連時所遇到的兼容性問題。
 
當然除了CAN和SOME/IP通訊,OSI 模型也用于DoCAN、DoIP、藍牙、5G、Wi-Fi等多種汽車相關的網(wǎng)絡通訊。希望這篇文章能讓大家有所收獲,在遇到更多的網(wǎng)絡通訊問題時能使用到OSI模型這個利器。
 
參考來源:
1. What Is the OSI Model https://www.imperva.com/learn/application-security/osi-model/
2. SOME/IP in a Nutshell
https://assets.vector.com/cms/content/events/2019/VH/VIC2019/Track_1_5_Glancing_Ethernet_communication_for_Automotive_4.pdf
登錄后免費查看全文
立即登錄
App下載
技術鄰APP
工程師必備
  • 項目客服
  • 培訓客服
  • 平臺客服

TOP