dubbo wireshark抓包分析


1.dubbo頭部協(xié)議

1.1.協(xié)議圖

image

1.2.協(xié)議說明

  • 1.2.1 描述:
    dubbo的協(xié)議頭部是16字節(jié)的定長數(shù)據(jù)
  • 1.2.2 wireshark抓包:
    1.png
  1. 2字節(jié)的Magic 【da bb】 其實就是標志改協(xié)議就是dubbo協(xié)議

  2. 1個字節(jié)的消息標志位【c2】其二進制的表示 1100 0010 從左到右解釋如下
    2.1 左1位 表示請求/響應(yīng) 1/0
    2.2 左2位 表示雙向/單向 1/0 (意思就是請求是否需要返回值,有些請求是不需返回值)
    2.3 左3位 表示心跳/正常 1/0
    2.4 左4~8位 0 0010 表示使用的是Hessian2序列化協(xié)議 dubbo序列化0 0001、fastjson序列化0 0110、java序列化0 0011

  3. 1個字節(jié)的消息標志位【00】只有響應(yīng)的消息才會設(shè)置這個值,20表示響應(yīng)成功 下圖是響應(yīng)數(shù)據(jù)抓包
    2.png
  4. 8個字節(jié)的消息ID
    3.png
  5. 4個字節(jié)的數(shù)據(jù)長度【00 00 01 9e】= 414

  6. 剩下的【05 32 2e....一直到最后】都是實際序列化的內(nèi)容。

2.dubbo 包體協(xié)議

2.1.協(xié)議說明

    1. 【05 32 2e 35 2e 32】【05】 表示【32 2e 35 2e 32】<<==>>[2.5.2] 的長度為5 (dubbo版本)
      4.png
    1. 【30 3c ...63 65】【30】 表示標志位 【3c】表示 【63 6f ... 65】<<==>>[com.xxx.xxx.xxx.api.xxx.service.XXXService] 的長度60 (類路徑)


      5.png
    1. 【05 30 2e 30 2e 30】【05】 表示【30 2e 30 2e 30】<<==>>[0.0.0] 的長度為5 (協(xié)議版本)


      6.png
    1. 【0f 63 68 .. 65 77】【0f】 表示【30 63 68 .. 65 77】<<==>>[checkXXXNew] 的長度為15 (類方法名稱)


      7.png
    1. 【30 22 4c...67 3b】【30】 表示標志位 【22】表示 【4c...67 3b】<<==>>[Ljava/lang/Long;Ljava/lang/String;] 的長度34 (參數(shù)類型)


      8.png
    1. 【59 01 ae 6c d7】【59】 表示實際是long類型但是用int表示第一位參數(shù) 【01 ae 6c d7】<<==>>[28208343] (參數(shù)值)


      9.png
    1. 【10 73 ... 64 64】【10】 表示 【73 ... 64 64】<<==>>[stock.income.add] 的長度16 (參數(shù)值)


      10.png
    1. 【48 04 ... 30 50】【48】 表示 map 屬性 (參數(shù)值)


      11.png

      12.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容