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源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。