美文网首页后端汇总
dubbo wireshark抓包分析

dubbo wireshark抓包分析

作者: 杭州_mina | 来源:发表于2018-06-13 21:29 被阅读0次

    1.dubbo头部协议

    1.1.协议图

    image

    1.2.协议说明

    • 1.2.1 描述:
      dubbo的协议头部是16字节的定长数据
    • 1.2.2 wireshark抓包: 1.png
    1. 2字节的Magic 【da bb】 其实就是标志改协议就是dubbo协议

    2. 1个字节的消息标志位【c2】其二进制的表示 1100 0010 从左到右解释如下
      2.1 左1位 表示请求/响应 1/0
      2.2 左2位 表示双向/单向 1/0 (意思就是请求是否需要返回值,有些请求是不需返回值)
      2.3 左3位 表示心跳/正常 1/0
      2.4 左4~8位 0 0010 表示使用的是Hessian2序列化协议 dubbo序列化0 0001、fastjson序列化0 0110、java序列化0 0011

    3. 1个字节的消息标志位【00】只有响应的消息才会设置这个值,20表示响应成功 下图是响应数据抓包 2.png
    4. 8个字节的消息ID 3.png
    5. 4个字节的数据长度【00 00 01 9e】= 414

    6. 剩下的【05 32 2e....一直到最后】都是实际序列化的内容。

    2.dubbo 包体协议

    2.1.协议说明

      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 (协议版本)


        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 (参数类型)


        8.png
      1. 【59 01 ae 6c d7】【59】 表示实际是long类型但是用int表示第一位参数 【01 ae 6c d7】<<==>>[28208343] (参数值)


        9.png
      1. 【10 73 ... 64 64】【10】 表示 【73 ... 64 64】<<==>>[stock.income.add] 的长度16 (参数值)


        10.png
      1. 【48 04 ... 30 50】【48】 表示 map 属性 (参数值)


        11.png
        12.png

    相关文章

      网友评论

        本文标题:dubbo wireshark抓包分析

        本文链接:https://www.haomeiwen.com/subject/isyseftx.html