数据包结构
数据包头部:数据包头部是必须的,在粘包的时候可以作为的分隔符进行分包。
数据包长度:数据包长度最好加上,可以判断数据包是否完整。
版本号: 版本号有时也很重要,例如LORA网络中,不同项目之间的数据包可以通过版本号进行甄别。
目的地址:目的地址根据硬件特性决定加不加。例如CAN总线通讯过程中已经有硬件地址,就可以不加。
源地址:源地址根据硬件特性决定加不加。例如CAN总线通讯过程中已经有硬件地址,就可以不加。
包标识符:包标识符最好加一下,这对于问答模式下的重发机制或者网络导致的重复收包问题,都有极大的好处。
协议码:协议码可包含请求/响应位、是否需要应答位、协议类型位。
有效数据:有效数据承载传输信息。
校验:数据包校验字节根据硬件特性决定加不加。硬件部分已经有校验的可以不加,硬件部分没有的最好加上。
数据包尾部:数据包尾部并非必须的,很多协议已经不再使用数据包尾部。