Dubbo剖析-Dubbo協議

1、前言

TCP協議棧中,每層模型都有本身的協議報文格式,TCP協議是網絡七層模型中的傳輸層,在TCP上層是應用層,應用層協議常見的有telnet等,Dubbo協議做爲創建在TCP協議之上的一種協議,天然也有本身的協議包格式。微信

image.png網絡

2、Dubbo協議格式

以下圖Dubbo協議也是由header和body兩部分組成,spa


image.png.net


header用來存放一些協議信息,body具體存放要傳輸的通過序列化後的數據。3d

header格式以下:視頻

image.pngblog

  • 如上圖可知header總包含了16個字節的數據ci

  • 其中前兩個字節爲魔數,相似Class類文件裏面的做用,這裏用來標識一個幀的開始,固定爲0xdabb其中第一個字節固定爲0xda,第二個字節固定爲0xbb.get

  • 後面緊這的一個字節是請求和序列化標記的組合結果requstflag|serializationId。
    其中高四位標示請求的requstflag:it

其中低四位標示序列化方式serializationId:


  • 後面一個字節是響應報文裏面才設置(請求報文裏面不設置),用來標示響應的結果碼,具體定義以下:


  • 後面8個字節是請求id

  • 後面4個字節是body內容大小,單位是byte.

請求報文設置:

121.png

響應報文設置:

121.png

3、總結

本文主要講解了dubbo協議幀格式,另外深刻淺出dubbo視頻課程已經在放出了, 單擊閱讀原文 可進入觀看。


本文分享自微信公衆號 - 技術原始積累(gh_805ebfd2deb0)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。

相關文章
相關標籤/搜索