应用层通信报文设计

复制代码
/*
+---------------------------------------------------------------+
| 魔数 2byte | 协议版本号 1byte | 序列化算法 1byte | 报文类型 1byte  |
+---------------------------------------------------------------+
| 状态 1byte |        保留字段 4byte     |      数据长度 4byte     | 
+---------------------------------------------------------------+
|                   数据内容 (长度不定)          | 校验字段 2byte |
+---------------------------------------------------------------+
*/
协议框架

1、魔数: 通信双方协商 的一个暗号 ,通常采用固定的几个字节表示。魔数的作用是用于服务端在接收数据时先解析出前几个固定字节做正确性对比。

2、协议版本号 :应对业务需求的变化,可能需要对自定义协议的结构或字段进行改动。不同版本的协议对应的解析方法也是不同的。

3、序列化算法:序列化算法字段表示发送仿将对象转换成二进制流,以及接收方接受的二进制流准换成对象的方法。最常见的是,先构造文件流对象,选择二进制读取方法,将使用read()将文件对象读入string和vector<char>中,json和Hessian,java自带序列化。

**4、报文类型:**初始化请求,初始化确认响应,文件数据块,数据块接受确认,文件传输完成通知,传输完成确认,错误通知。

5、长度域字段 :长度域字段代表请求数据的长度 ,可以定义整个报文的长度,也可以是请求数据部分的长度,

6、请求数据:请求数据业务对象信息序列化后的二进制。是整个报文的柱体。

7、状态:状态字段用于表示请求是否正常,一般有被调用方设置。例如一次RPC调用失败,状态字段可被服务提供方设置为异常状态。

8、校验字段 :校验字段存放某种校验算法计算报文校验码,校验码用于验证报文的正确性

相关推荐
我爱cope6 小时前
【计算机网络 | 网络层11:ICMP 协议:Ping 和 Traceroute 的底层原理】
网络·学习·计算机网络
kkkkkkkkkk_Z10 小时前
学嵌入式和Linux应用编程|学习日记:计算机网络基础
linux·学习·计算机网络
zyf10441612 小时前
暑期实践日志 Day46:复盘第六章,规整对应实践成果
学习·计算机网络·剪辑·暑期实践·课题任务
啊阿狸不会拉杆13 小时前
《计算机网络-自顶向下方法》3.5 面向连接的运输:TCP 读书笔记
网络·tcp/ip·计算机网络
啊阿狸不会拉杆19 小时前
《计算机网络-自顶向下方法》3.6 拥塞控制原理 读书笔记
计算机网络·智能路由器·php
啊阿狸不会拉杆20 小时前
《计算机网络-自顶向下方法》3.8 运输层功能的演化
计算机网络·运输层
啊阿狸不会拉杆1 天前
《计算机网络-自顶向下方法》2.5 P2P 文件分发 读书笔记
计算机网络·wireshark·asp.net·p2p
白狐_7981 天前
408 计算机网络|TCP 可靠传输:ACK、重传、RTT、RTO
网络·tcp/ip·计算机网络
2501_915106321 天前
安卓抓包软件2026,免证书抓包 应用层抓包 代理抓包全解析
网络协议·计算机网络·网络安全·ios·adb·https·udp
啊阿狸不会拉杆2 天前
《计算机网络-自顶向下方法》3.3 无连接运输:UDP 读书笔记
网络协议·计算机网络·udp