ES-TCPTransport 3 - ES通信协议解析

1.wireshark提取数据elasticsearch协议包

设置抓取本机通信包:

  • a.以管理员身份打开命令提示符
  • b.输入 route add [本机ip] mask 255.255.255.255 [网关ip]
  • c.将我们程序里面的localhost或者127.0.0.1替换成本机ip

提取数据包信息:

使用程序发送es协议进行通信

  • a.打开抓取整个系统包:


  • b.过滤获取elasticsearch协议
  • c.通过程序进行es协议通讯获取es报文


  • d.提取整理es报文信息


注意:ES协议会议ES开头,ES是之前都是tcp/ip协议,ES(4553)开头才是应用层协议

提取整理后如上4个报文包的16进制结果如下:

handshake-request(原包-9704):

0000   3c 8c 40 5e c6 c2 48 0f cf 45 47 aa 08 00 45 00
0010   00 55 5c b6 40 00 80 06 00 00 0a 64 21 9b 0a 64
0020   21 9b e2 dd 24 54 ca 23 d3 03 c0 82 f6 ae 50 18
0030   40 29 58 45 00 00 [45 53 00 00 00 27 00 00 00 00
0040   00 00 00 01 08 00 4c 4b a3 00 00 16 69 6e 74 65
0050   72 6e 61 6c 3a 74 63 70 2f 68 61 6e 64 73 68 61
0060   6b 65 00]

提取整理

0030   40 29 58 45 00 00 [45 53 00 00 00 27 00 00 00 00
0040   00 00 00 01 08 00 4c 4b a3 00 00 16 69 6e 74 65
0050   72 6e 61 6c 3a 74 63 70 2f 68 61 6e 64 73 68 61
0060   6b 65 00]

handshake-response(原包-9706):

0000   3c 8c 40 5e c6 c2 48 0f cf 45 47 aa 08 00 45 00
0010   00 41 5c b7 40 00 80 06 00 00 0a 64 21 9b 0a 64
0020   21 9b 24 54 e2 dd c0 82 f6 ae ca 23 d3 30 50 18
0030   01 00 58 31 00 00 [45 53 00 00 00 13 00 00 00 00
0040   00 00 00 01 09 00 4c 4b a3 00 00 81 9b ee 02]

提取整理

0030   01 00 58 31 00 00 [45 53 00 00 00 13 00 00 00 00
0040   00 00 00 01 09 00 4c 4b a3 00 00 81 9b ee 02]

自定义-UserRequest(原包-9708):

0000   3c 8c 40 5e c6 c2 48 0f cf 45 47 aa 08 00 45 00
0010   00 58 0b 9a 40 00 80 06 00 00 0a 64 21 9b 0a 64
0020   21 9b c4 08 24 54 7a d4 2d d6 bd 49 49 a6 50 18
0030   40 29 58 48 00 00 [45 53 00 00 00 2a 00 00 00 00
0040   00 00 00 2a 00 00 5b 8d 81 00 00 08 61 63 74 69
0050   6f  6e 5f  31 00 00 00 01 00 00 00 06 e7 8e 8b e4
0060   ba 94 00 00 00 17]

提取整理:

0030   40 29 58 48 00 00 [45 53 00 00 00 2a 00 00 00 00
0040   00 00 00 2a 00 00 5b 8d 81 00 00 08 61 63 74 69
0050   6f 6e 5f 31 00 00 00 01 00 00 00 06 e7 8e 8b e4
0060   ba 94 00 00 00 17]

自定义-UserResponse(原包-9710):

0000   3c 8c 40 5e c6 c2 48 0f cf 45 47 aa 08 00 45 00
0010   00 48 0b 9b 40 00 80 06 00 00 0a 64 21 9b 0a 64
0020   21 9b 24 54 c4 08 bd 49 49 a6 7a d4 2e 06 50 18
0030   01 00 58 38 00 00 [45 53 00 00 00 1a 00 00 00 00
0040   00 00 00 2a 01 00 5b 8d 81 00 00 00 00 00 03 06
0050   31 39 39 39 39 39]

提取整理:

0030   01 00 58 38 00 00 [45 53 00 00 00 1a 00 00 00 00
0040   00 00 00 2a 01 00 5b 8d 81 00 00 00 00 00 03 06
0050   31 39 39 39 39 39]

2.分析ES协议包

ES协议格式如下:

以handshake协议为例通过源码分析:

handshake的通信开始于TcpTransport.connectNode的方法,调用层次如下:

TcpTransport.connectNode()
    -openConnection()
        -executeHandshake() 
            -sendRequestToChannel() //发送请求
                -buildMessage() //根据请求(request)构建ES协议

由buildMessage代码片段可知ES协议传输有header和messageBody两部分构成:

header构建代码如下:

以handshake协议为例通过字节码分析:

提取整理handshake-request:

0030   40 29 58 45 00 00 [45 53 00 00 00 27 00 00 00 00
0040   00 00 00 01 08 00 4c 4b a3 00 00 16 69 6e 74 65
0050   72 6e 61 6c 3a 74 63 70 2f 68 61 6e 64 73 68 61
0060   6b 65 00]

ES协议标记(2):45 53 = (ES)
报文长度(4):00 00 00 27 = (39)
requsteId(8):00 00 00 00 00 00 00 01 = 1
status(1):08 = 握手请求
注意:状态1=请求,2=异常,4=压缩,8=握手

version(4):00 4c 4b a3 = 5000099 = 5.0.0版本
messageBody:00 00 16 69 6e 74 65 72 6e 61 6c 3a 74 63 70 2f 68 61 6e 64 73 68 61 6b 65 00 = internal:tcp/handshake(可通过转码工具转换获取16进制结果)

附录:

使用程序地址:http://git.oschina.net/walleipt/es-cluster/blob/master/src/main/java/com/waleipt/api/es/tcptransport/Custom_protocol_test.java?dir=0&filepath=src%2Fmain%2Fjava%2Fcom%2Fwaleipt%2Fapi%2Fes%2Ftcptransport%2FCustom_protocol_test.java&oid=0226388674e92713b36d07b460a4f00d1936658d&sha=dab1c380bea009dcbed74985e6718226889253ee
wireshake样本文件:https://pan.baidu.com/s/1dF6DvW1
转码工具:http://www.bejson.com/convert/ox2str/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,372评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,368评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,415评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,157评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,171评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,125评论 1 297
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,028评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,887评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,310评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,533评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,690评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,411评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,004评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,659评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,812评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,693评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,577评论 2 353

推荐阅读更多精彩内容

  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 10,954评论 6 13
  • 1.这篇文章不是本人原创的,只是个人为了对这部分知识做一个整理和系统的输出而编辑成的,在此郑重地向本文所引用文章的...
    SOMCENT阅读 13,063评论 6 174
  • 名词延伸 通俗的说,域名就相当于一个家庭的门牌号码,别人通过这个号码可以很容易的找到你。如果把IP地址比作一间房子...
    杨大虾阅读 20,600评论 2 57
  • 个人认为,Goodboy1881先生的TCP /IP 协议详解学习博客系列博客是一部非常精彩的学习笔记,这虽然只是...
    贰零壹柒_fc10阅读 5,054评论 0 8
  • 0 01、网络管理的五大功能(包括每项功能的具体情况) 1.配置管理:ISO定义的管理功能域中,配置管理包括视图管...
    哈熝少主阅读 3,053评论 1 20