shopex网站搬家,wordpress 爆路径,制作展示型网站的公司,少女免费观看完整电视电影1 Dubbo协议概述 Dubbo协议是建立在TCP#xff08;传输层协议#xff09;之上的一种应用程序协议。它参考了TCP协议栈中的协议#xff0c;协议内容由header和body两部分组成。 2 协议头header的组成
协议头组成如下所示。
header格式bit序号0-78-1516-2324-3132-9596-127内…1 Dubbo协议概述 Dubbo协议是建立在TCP传输层协议之上的一种应用程序协议。它参考了TCP协议栈中的协议协议内容由header和body两部分组成。 2 协议头header的组成
协议头组成如下所示。
header格式bit序号0-78-1516-2324-3132-9596-127内容magic hightmagic lowrequest flag and serialization idresponse statusrequest idbody length
由上可知协议头总共包含了16个字节的数据。具体内容如下所述。
2.1 魔数
前2个字节为魔数。这里用来标识一个帧的开始固定为0xdabb。第一个字节固定为0xda第二个字节固定为0xbb。
// header length.
protected static final int HEADER_LENGTH 16;
// magic header.
protected static final short MAGIC (short) 0xdabb;
protected static final byte MAGIC_HIGH Bytes.short2bytes(MAGIC)[0];
protected static final byte MAGIC_LOW Bytes.short2bytes(MAGIC)[1];
2.2 请求类型和序列化类型ID
第3个字节是请求类型和序列化类型ID的组合结果。
1高3位标示请求类型其枚举值如下所示。
protected static final byte FLAG_REQUEST (byte) 0x80; //10000000 100
protected static final byte FLAG_TWOWAY (byte) 0x40; //01000000 010
protected static final byte FLAG_EVENT (byte) 0x20; //00100000 001
2低5位标示序列化方式其枚举值如下所示。
/*** 序列化类型ID (用5个比特来存储该值)*/
public interface Constants {byte HESSIAN2_SERIALIZATION_ID 2; // 0010 (00010)/*** JavaSerialization 的 序列化类型ID */byte JAVA_SERIALIZATION_ID 3; // 0011 (00011)byte COMPACTED_JAVA_SERIALIZATION_ID 4;byte FASTJSON_SERIALIZATION_ID 6;byte NATIVE_JAVA_SERIALIZATION_ID 7;byte KRYO_SERIALIZATION_ID 8;byte FST_SERIALIZATION_ID 9;byte NATIVE_HESSIAN_SERIALIZATION_ID 10;byte PROTOSTUFF_SERIALIZATION_ID 12;byte AVRO_SERIALIZATION_ID 11;byte GSON_SERIALIZATION_ID 16;byte PROTOBUF_JSON_SERIALIZATION_ID 21;byte PROTOBUF_SERIALIZATION_ID 22;byte FASTJSON2_SERIALIZATION_ID 23;byte KRYO_SERIALIZATION2_ID 25;/*** 最大不超过31因为只有5个比特用于存储序列化类型ID*/byte CUSTOM_MESSAGE_PACK_ID 31; // 11111 (11111)
}