关于协议设计的一点想法:
1. 协议的设计分成两个主要部分:链路的管理以及数据的收发。
2. 链路管理就是链路的配置,建立,断开。
3.重要的一点,两个设备之间的链路建立是顺序的,一条链路没有建好是不能建立下一条链路的。
4.一个设备在接收其他设备的链接时,可以同时处理,不会因为一条链路阻塞而阻塞另外一条。
5. 每条链路都有一个状态机
6.两个设备之间链路建立好了之后,可以建立多个通道。
7.设备之间的通道的建立必须是顺序的,一个通道建立不成功是不允许建立下一条通道的。
8.这样当建立多个通道时,再建立新通道时,首先要判断先前的通道是否已经建立好,只有建立好了才能建立新的。
9. Tx和Rx的设计,协议栈采用统一的一块内存来管理分配和释放。
10.协议是有流程的,必须按照流程来走,如果发送的request没有response,那么会有超时处理的,可以重连或者断开连接。
11. 协议是异步的,不存在一个函数直接建立连接并成功,只会等待连接建立好的response,来表示连接建立成功。
12. 数据的TX也是异步的。