日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

DoIP协议设计思路浅析

發布時間:2023/12/9 编程问答 55 豆豆
生活随笔 收集整理的這篇文章主要介紹了 DoIP协议设计思路浅析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

智能化對車載網絡的通信效率要求大幅提升,CAN/LIN等傳統車載通信協議已經遠不能滿足需求,取而代之的是車載以太網通信協議。車載以太網正逐漸取代車載網絡中的傳統通信協議,這種通信基礎設施的更新換代,也催生了立足于車載通信網絡之上的診斷協議的變化。UDS是通用診斷協議的標準描述,在CAN網絡時代,UDS基于CAN協議實現,被稱為UdsOnCan,而基于以太網實現的UDS,則被成為DoIP協議,即Diagnose On Ip。

DoIP協議為車輛診斷協議提供了基于ip的標準實現方式,按照網絡分層的觀念,我們可以認為DoIP協議是工作在TCP/IP之上的又一個應用層協議,如果我們解析一個DoIP數據報文,會發現DoIP協議正是處于TCP/IP之上,如下圖所示:

展開DoIP協議,協議內容包含了DoIP版本號、版本號的逆、消息類型、UDS消息的長度、源地址及目的地址,如下圖所示:

DoIP的內容與TCP極為相似,都包含源地址與目的地址,以及負載的長度(和負載內容UDS數據),因此我們可以認為DoIP之于UDS的作用,類似于TCP之于HTTP的作用,明確這一點有助于我們理解DoIP通信協議的設計特點。

TCP為了建立傳輸通道,需要指定源端口地址及目的端口地址,并通過消息校驗碼、消息長度及消息序列號等一系列手段保證傳輸通道的可靠性,如下圖所示:

同理,DoIP協議為實現將消息從一個邏輯單元傳輸到另一個邏輯單元的目標,也包含了源邏輯地址(Source Address)、目標邏輯地址(Target Address)以及一個簡單的頭部。在協議字段的設計上,DoIP遠沒有TCP復雜,因此DoIP所實現的傳輸控制功能,也遠遠沒有TCP協議復雜,這是可以理解的,因為我們可以將DoIP看成一個嵌套的傳輸層控制協議,它嵌套在TCP之上,既然TCP已經實現了IP網絡層復雜的傳輸控制,那么留給DoIP的工作,就為數不多了,主要包含如三幾個方面:

  • 邏輯地址、網絡的有效性檢查;
  • UDS診斷消息的長度檢查;
  • 檢查是否造成內存溢出;
  • 如果上面的檢查全部通過,DoIP將把UDS請求消息從源邏輯地址傳輸至目標邏輯地址。目標ECU收到DoIP請求消息之后,會首先發送一幀ACK報文,然后才會發送實際的診斷報文,如下圖所示:

    對于DoIP單獨回復一次ACK的設計,初學者肯定會比較好奇,為什么要這么設計呢?結合前面的分析,如果我們理解了DoIP屬于UDS的傳輸控制層,那么我們就能參透其中的原因。因為UDS涉及到了邏輯尋址,類似與TCP協議中的尋址,因此通信中需要完成一些傳輸層的工作,如檢查邏輯地址的合法性、payload的長度等等,沒有問題則返回一幀ACK,如下圖所示:

    接著返回一幀帶UDS報文的消息,如下圖:

    否則返回NCK,附帶否定響應的具體原因。

    DoIP這種參考TCP的設計,是一種嚴格的分層設計思路,將通信控制和業務數據分開傳輸,DoIP專門負責通信傳輸,而UDS相對于DoIP則屬于應用層協議,專門負責診斷業務的實現。

    總結

    以上是生活随笔為你收集整理的DoIP协议设计思路浅析的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。