在网络应用中会涉及到很多通讯协议的使用,比如车联网、V2X的通讯协议,APP与后台Server交互的协议。同时有些协议可能是没有标准的,需要我们自己设计一套通信协议,当然我们肯定在某些已有协议之上再进行自定义。比如我们要定义T-Box与车联网平台的通讯,那么肯定会使用TCP/UDP作为基础协议,再基于这一层的协议进行自定义。关于到底选择TCP还是UDP就不多讨论了,下面对协议的设计做一下简单讲解。
1.协议要素
其实协议设计也非常简单,只要把握住两点即可,第一是数据结构,第二是协议时序。数据结构是用于约定数据流的内容,协议时序也可以叫做交互流程是为了约定两个对象之间的通讯时序。还是使用T-Box与车联网平台的通讯举例,要实现车辆数据传输至平台,那么首先要定义传输数据的格式,使用二进制还是使用文本(如json),要传输哪些参数,数据字节怎样排列。然后还要规定T-Box上传数据包后,平台是否需要应答,终端检测应答是同步还是异步。协议内容如下图所示:
图1:协议要素
我们可以看一下一个简单的协议GB32960.3中的定义。协议流程一般都会使用时序图进行描述,并对应答机制进行规定。该上报标准中规定,数据校验正确平台不进行应答,校验错误&