[JT] 协议扫盲

125 阅读3分钟

github

测试: 218.112.100.47
端口:8088

一.2011

消息结构

标识位消息头消息体校验码标识位
1byte(0x7e)16byte1byte1byte(0x7e)

#消息头

  • 分包消息 的消息头长度为 16字节
  • 非分包消息 的消息头长度为 12字节

消息头的结构如下所示:

消息ID[0-2)	消息体属性[2-4)	终端手机号[4-10)	消息流水号[10-12)	消息包封装项[12-16)

byte[0-2) 	消息ID word(16)
byte[2-4) 	消息体属性 word(16)
		bit[0-10)	消息体长度
		bit[10-13)	数据加密方式
						此三位都为 0,表示消息体不加密
						第 10 位为 1,表示消息体经过 RSA 算法加密
						其它保留
		bit[13]		分包
						1: 消息体卫长消息,进行分包发送处理,具体分包信息由消息包封装项决定
						0: 则消息头中无消息包封装项字段
		bit[14-15]	保留
byte[4-10) 	终端手机号或设备ID bcd[6]
        根据安装后终端自身的手机号转换
        手机号不足12 位,则在前面补 0
byte[10-12) 消息流水号 word(16)
        按发送顺序从 0 开始循环累加
byte[12-16) 	消息包封装项
        如果消息体属性中相关标识位确定消息分包处理,则该项有内容
        否则无该项
        byte[0-2)	消息包总数(word(16)) 该消息分包后得总包数
        byte[2-4)	包序号(word(16))  从 1 开始

二.2013 和11版基本一致

三.2019

消息结构

标识位消息头消息体校验码标识位
1byte(0x7e)16byte1byte1byte(0x7e)

#消息头

  • 非分包消息 的消息头长度为 17字节
  • 分包消息 的消息头长度为 21字节

消息头的结构如下所示:

消息ID[0-2)	消息体属性[2-4)	协议版本号[4]   终端手机号[5-15)	消息流水号[15-17)	消息包封装项[17-21)

byte[0-2) 	消息ID word(16)
byte[2-4) 	消息体属性 word(16)
		bit[0-10)	消息体长度
		bit[10-13)	数据加密方式
						此三位都为 0,表示消息体不加密
						第 10 位为 1,表示消息体经过 RSA 算法加密
						其它保留
		bit[13]		分包
						1: 消息体卫长消息,进行分包发送处理,具体分包信息由消息包封装项决定
						0: 则消息头中无消息包封装项字段
		bit[14]	    版本标识
		bit[15]	保留
byte[4]     协议版本号
byte[5-15) 	终端手机号或设备ID bcd[10]
		根据安装后终端自身的手机号转换
		手机号不足12 位,则在前面补 0
byte[15-17) 	消息流水号 word(16)
		按发送顺序从 0 开始循环累加
byte[17-21) 	消息包封装项
        如果消息体属性中相关标识位确定消息分包处理,则该项有内容
		否则无该项
		byte[0-2)	消息包总数(word(16)) 该消息分包后得总包数
		byte[2-4)	包序号(word(16))  从 1 开始